基于金属线的时序修复方法、设备及介质转让专利

申请号 : CN202210683243.4

文献号 : CN114781319B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 黄薇栾晓琨金文江孙永丰王翠娜边少鲜蒋剑锋

申请人 : 飞腾信息技术有限公司

摘要 :

本申请提供一种基于金属线的时序修复方法、设备及介质,涉及芯片技术领域。该方法包括:获取目标集成电路的时序违反关键路径,目标集成电路包括多个逻辑单元,时序违反关键路径上包括至少一条金属线路径;确定时序违反关键路径上各金属线的线延时以及各金属线所在的金属层;根据时序违反关键路径上各金属线的线延时,更新至少一条目标金属线所在的金属层,以使更新后的时序违反关键路径符合预设修复要求,应用本申请实施例,可以从金属线的角度对时序违反关键路径进行时序修复,相较于现有技术,可以提高时序修复能力。

权利要求 :

1.一种基于金属线的时序修复方法,其特征在于,包括:获取目标集成电路的时序违反关键路径,所述目标集成电路包括多个逻辑单元,所述时序违反关键路径上包括至少一条金属线路径;

确定所述时序违反关键路径上各金属线的线延时以及各金属线所在的金属层;

根据所述时序违反关键路径上各金属线的线延时,更新至少一条目标金属线所在的金属层,以使更新后的所述时序违反关键路径符合预设修复要求;

所述更新至少一条目标金属线所在的金属层,包括:

获取所述目标金属线的初始起点和初始终点;

根据所述初始起点和所述初始终点,确定所述目标金属线所在的区域;

若第二金属层的所述目标金属线所在的区域已有信号线,且所述目标金属线的线延时大于第一预设阈值,则将所述第二金属层的所述信号线部署于第一金属层,并将所述目标金属线部署于所述第二金属层,其中,所述第二金属层的层级高于所述第一金属层的层级;

或,则部署所述目标金属线在所述第二金属层并绕开所述信号线。

2.根据权利要求1所述的方法,其特征在于,若所述时序违反关键路径上包括多条金属线路径,所述根据所述时序违反关键路径上各金属线的线延时,更新至少一条目标金属线所在的金属层,包括:根据所述时序违反关键路径上各金属线的线延时,确定线延时最大的初始目标金属线;

更新所述初始目标金属线所在的金属层,并判断更新后的所述时序违反关键路径是否符合预设修复要求;

若确定更新后的所述时序违反关键路径仍不符合预设修复要求,则根据当前最新的时序违反关键路径上各金属线的线延时,更新至少一条目标金属线所在的金属层。

3.根据权利要求2所述的方法,其特征在于,所述根据所述时序违反关键路径上各金属线的线延时,确定线延时最大的初始目标金属线,包括:根据所述时序违反关键路径上各金属线的线延时,对各所述金属线进行排序,确定金属线修复顺序;

根据所述金属线修复顺序,确定线延时最大的初始目标金属线。

4.根据权利要求1所述的方法,其特征在于,每个金属线对应一优先级,所述金属线的优先级越高,则所述金属线所在的金属层越高;

所述根据所述时序违反关键路径上各金属线的线延时,更新至少一条目标金属线所在的金属层,包括:根据所述时序违反关键路径上各金属线的线延时,调整至少一条目标金属线的优先级;

根据调整后至少一条所述目标金属线的优先级,更新至少一条目标金属线所在的金属层。

5.根据权利要求1所述的方法,其特征在于,所述方法还包括:若确定第四金属层的所述目标金属线所在的区域已有时钟线,且所述目标金属线的线延时大于第二预设阈值,则将所述目标金属线部署于第三金属层,其中,所述第四金属层的层级高于所述第三金属层的层级;

或,则将所述目标金属线部署于所述第四金属层并绕开所述时钟线。

6.根据权利要求1所述的方法,其特征在于,所述方法还包括:若确定所述目标金属线所在的区域未使用最高金属层,则更新所述目标金属线所在的金属层为所述最高金属层。

7.根据权利要求1‑6任一项所述的方法,其特征在于,所述获取目标集成电路的时序违反关键路径,包括:获取所述目标集成电路的多条时序关键路径;

从多条所述时序关键路径中确定时序违反最大的路径作为所述时序违反关键路径。

8.一种电子设备,其特征在于,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述机器可读指令,以执行如权利要求1‑7任一所述基于金属线的时序修复方法的步骤。

9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如权利要求1‑7任一所述基于金属线的时序修复方法的步骤。

说明书 :

基于金属线的时序修复方法、设备及介质

技术领域

[0001] 本申请涉及芯片技术领域,特别涉及一种基于金属线的时序修复方法、设备及介质。

背景技术

[0002] 在集成电路芯片的设计过程中,时序问题是最受关注的问题之一,无论是从性能角度还是稳定性角度考虑,均要求设计的芯片具有较好的时序收敛效果。比如,高频率模块中设计选择的频率往往接近设计的极限频率,在设计后期接近时许收敛阶段,微乎其微的时序优化也可能在设计的收敛过程中起决定性作用。
[0003] 现有技术中,主要通过减少单元延时以实现对时序路径的优化,其中,具体可以通过更换阈值单元和调整阈值单元的驱动能力来减少单元延时以达到时序修复的目的。
[0004] 可以看出,现有的时序修复方法比较单一,修复能力比较有限。

发明内容

[0005] 本申请的目的在于,针对上述现有技术中的不足,提供一种基于金属线的时序修复方法、设备及介质,可以提高时序修复能力。
[0006] 为实现上述目的,本申请实施例采用的技术方案如下:
[0007] 第一方面,本发明提供一种基于金属线的时序修复方法,包括:
[0008] 获取目标集成电路的时序违反关键路径,所述目标集成电路包括多个逻辑单元,所述时序违反关键路径上包括至少一条金属线路径;
[0009] 确定所述时序违反关键路径上各金属线的线延时以及各金属线所在的金属层;
[0010] 根据所述时序违反关键路径上各金属线的线延时,更新至少一条目标金属线所在的金属层,以使更新后的所述时序违反关键路径符合预设修复要求。
[0011] 在可选的实施方式中,若所述时序违反关键路径上包括多条金属线路径,所述根据所述时序违反关键路径上各金属线的线延时,更新至少一条目标金属线所在的金属层,包括:
[0012] 根据所述时序违反关键路径上各金属线的线延时,确定线延时最大的初始目标金属线;
[0013] 更新所述初始目标金属线所在的金属层,并判断更新后的所述时序违反关键路径是否符合预设修复要求;
[0014] 若确定更新后的所述时序违反关键路径仍不符合预设修复要求,则根据当前最新的时序违反关键路径上各金属线的线延时,更新至少一条目标金属线所在的金属层。
[0015] 在可选的实施方式中,所述根据所述时序违反关键路径上各金属线的线延时,确定线延时最大的初始目标金属线,包括:
[0016] 根据所述时序违反关键路径上各金属线的线延时,对各所述金属线进行排序,确定金属线修复顺序;
[0017] 根据所述金属线修复顺序,确定线延时最大的初始目标金属线。
[0018] 在可选的实施方式中,每个金属线对应一优先级,所述金属线的优先级越高,则所述金属线所在的金属层越高;
[0019] 所述根据所述时序违反关键路径上各金属线的线延时,更新至少一条目标金属线所在的金属层,包括:
[0020] 根据所述时序违反关键路径上各金属线的线延时,调整至少一条目标金属线的优先级;
[0021] 根据调整后至少一条所述目标金属线的优先级,更新至少一条目标金属线所在的金属层。
[0022] 在可选的实施方式中,所述更新至少一条目标金属线所在的金属层,包括:
[0023] 获取所述目标金属线的初始起点和初始终点;
[0024] 根据所述初始起点和所述初始终点,确定所述目标金属线所在的区域;
[0025] 若第二金属层的所述目标金属线所在的区域已有信号线,且所述目标金属线的线延时大于第一预设阈值,则将所述第二金属层的所述信号线部署于第一金属层,并将所述目标金属线部署于所述第二金属层,其中,所述第二金属层的层级高于所述第一金属层的层级;
[0026] 或,则部署所述目标金属线在所述第二金属层并绕开所述信号线。
[0027] 在可选的实施方式中,所述方法还包括:
[0028] 若确定第四金属层的所述目标金属线所在的区域已有时钟线,且所述目标金属线的线延时大于第二预设阈值,则将所述目标金属线部署于第三金属层,其中,所述第四金属层的层级高于所述第三金属层的层级;
[0029] 或,则将所述目标金属线部署于所述第四金属层并绕开所述时钟线。
[0030] 在可选的实施方式中,所述方法还包括:
[0031] 若确定所述目标金属线所在的区域未使用最高金属层,则更新所述目标金属线所在的金属层为所述最高金属层。
[0032] 在可选的实施方式中,所述获取目标集成电路的时序违反关键路径,包括:
[0033] 获取所述目标集成电路的多条时序关键路径;
[0034] 从多条所述时序关键路径中确定时序违反最大的路径作为所述时序违反关键路径。
[0035] 第二方面,本发明提供一种基于金属线的时序修复装置,包括:
[0036] 获取模块,用于获取目标集成电路的时序违反关键路径,所述目标集成电路包括多个逻辑单元,所述时序违反关键路径上包括至少一条金属线路径;
[0037] 确定模块,用于确定所述时序违反关键路径上各金属线的线延时以及各金属线所在的金属层;
[0038] 更新模块,用于根据所述时序违反关键路径上各金属线的线延时,更新至少一条目标金属线所在的金属层,以使更新后的所述时序违反关键路径符合预设修复要求。
[0039] 在可选的实施方式中,若所述时序违反关键路径上包括多条金属线路径,所述更新模块,具体用于根据所述时序违反关键路径上各金属线的线延时,确定线延时最大的初始目标金属线;
[0040] 更新所述初始目标金属线所在的金属层,并判断更新后的所述时序违反关键路径是否符合预设修复要求;
[0041] 若确定更新后的所述时序违反关键路径仍不符合预设修复要求,则根据当前最新的时序违反关键路径上各金属线的线延时,更新至少一条目标金属线所在的金属层。
[0042] 在可选的实施方式中,所述更新模块,具体用于根据所述时序违反关键路径上各金属线的线延时,对各所述金属线进行排序,确定金属线修复顺序;
[0043] 根据所述金属线修复顺序,确定线延时最大的初始目标金属线。
[0044] 在可选的实施方式中,每个金属线对应一优先级,所述金属线的优先级越高,则所述金属线所在的金属层越高;所述更新模块,具体用于根据所述时序违反关键路径上各金属线的线延时,调整至少一条目标金属线的优先级;
[0045] 根据调整后至少一条所述目标金属线的优先级,更新至少一条目标金属线所在的金属层。
[0046] 在可选的实施方式中,所述更新模块,具体用于获取所述目标金属线的初始起点和初始终点;
[0047] 根据所述初始起点和所述初始终点,确定所述目标金属线所在的区域;
[0048] 若第二金属层的所述目标金属线所在的区域已有信号线,且所述目标金属线的线延时大于第一预设阈值,则将所述第二金属层的所述信号线部署于第一金属层,并将所述目标金属线部署于所述第二金属层,其中,所述第二金属层的层级高于所述第一金属层的层级;
[0049] 或,则部署所述目标金属线在所述第二金属层并绕开所述信号线。
[0050] 在可选的实施方式中,所述更新模块,具体用于若确定第四金属层的所述目标金属线所在的区域已有时钟线,且所述目标金属线的线延时大于第二预设阈值,则将所述目标金属线部署于第三金属层,其中,所述第四金属层的层级高于所述第三金属层的层级;
[0051] 或,则将所述目标金属线部署于所述第四金属层并绕开所述时钟线。
[0052] 在可选的实施方式中,所述更新模块,还用于若确定所述目标金属线所在的区域未使用最高金属层,则更新所述目标金属线所在的金属层为所述最高金属层。
[0053] 在可选的实施方式中,所述获取模块,用于获取所述目标集成电路的多条时序关键路径;
[0054] 从多条所述时序关键路径中确定时序违反最大的路径作为所述时序违反关键路径。
[0055] 第三方面,本发明提供一种电子设备,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述机器可读指令,以执行如前述实施方式任一所述基于金属线的时序修复方法的步骤。
[0056] 第四方面,本发明提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如前述实施方式任一所述基于金属线的时序修复方法的步骤。
[0057] 本申请的有益效果是:
[0058] 本申请实施例提供的基于金属线的时序修复方法、设备及介质中,包括:获取目标集成电路的时序违反关键路径,目标集成电路包括多个逻辑单元,时序违反关键路径上包括至少一条金属线路径;确定时序违反关键路径上各金属线的线延时以及各金属线所在的金属层;根据时序违反关键路径上各金属线的线延时,更新至少一条目标金属线所在的金属层,以使更新后的时序违反关键路径符合预设修复要求,应用本申请实施例,可以从金属线的角度对时序违反关键路径进行时序修复,相较于现有技术,可以提高时序修复能力。

附图说明

[0059] 为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
[0060] 图1为本申请实施例提供的一种时序违反关键路径的路径结构示意图;
[0061] 图2为本申请实施例提供的一种基于金属线的时序修复方法的流程示意图;
[0062] 图3为本申请实施例提供的另一种基于金属线的时序修复方法的流程示意图;
[0063] 图4为本申请实施例提供的又一种基于金属线的时序修复方法的流程示意图;
[0064] 图5为本申请实施例提供的另一种基于金属线的时序修复方法的流程示意图;
[0065] 图6为本申请实施例提供的又一种基于金属线的时序修复方法的流程示意图;
[0066] 图7为本申请实施例提供的另一种基于金属线的时序修复方法的流程示意图;
[0067] 图8为本申请实施例提供的一种基于金属线的时序修复装置的功能模块示意图;
[0068] 图9为本申请实施例提供的一种电子设备结构示意图。

具体实施方式

[0069] 为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。
[0070] 因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0071] 应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
[0072] 在集成电路芯片的设计过程中,现有技术中,主要通过减少单元延时以实现对时序路径的优化,然而,在芯片设计后期,减少单元延时可优化的空间较小,往往存在通过更换阈值单元、调整阈值单元的驱动能力等方式来减少单元延时后,仍存在不满足预设时序要求的时序关键路径。有鉴于此,本申请实施例提供一种基于金属线的时序修复方法,从金属线的角度对时序违反关键路径进行时序修复,相较于现有技术,可以提高时序修复能力。
[0073] 图1为本申请实施例提供的一种时序违反关键路径的路径结构示意图,图2为本申请实施例提供的一种基于金属线的时序修复方法的流程示意图,该方法的执行主体可以为具有计算处理能力的电子设备,例如服务器、计算机、台式电脑等。如图2所示,该方法可以包括:
[0074] S101、获取目标集成电路的时序违反关键路径,目标集成电路包括多个逻辑单元,时序违反关键路径上包括至少一条金属线路径。
[0075] 其中,时序关键路径可以指目标集成电路设计中从输入到输出延时最长的逻辑路径;时序违反关键路径可以指时序关键路径中真实延时时间不满足预设延时要求的路径。可选地,该逻辑单元中可以包括时序电路中的基本逻辑门,例如:与门、或门、非门等,还可以包括缓冲器(buffer)、寄存器等,其中,各逻辑单元之间可以通过金属线互连。
[0076] 参考图1所示,该时序违反关键路径从左到右依次可以包括:第一缓冲器(buffer1)11、第二缓冲器(buffer2)12、第一寄存器13、非门14、与门15、或门16、第三缓冲器(buffer3)17、第二寄存器18、第四缓冲器(buffer4)19、第五缓冲器(buffer5)20,其中,CLK可以表示时序违反关键路径所接入的时钟信号,各逻辑单元之间可以通过金属线22连接。当然,本申请在此并不限定第一缓冲器(buffer1)11的输入端、与门15的输入端A以及或门16的输入端B所接入的信号,根据实际的应用场景,可以是其他集成电路的输出端信号,在此不作限定。当然,时序违反关键路径的路径结构图并不以图1所示出为限。
[0077] 在一些实施例中,时序关键路径可以通过静态时序分析工具(比如,EDA工具)获得,具体地,可以使用静态时序分析工具获得建立时间违例路径报告,并基于该建立时间违例路径报告,获得时序关键路径。其中,静态时序分析工具是芯片时序验收阶段所使用的工具,利用该静态时序分析工具,能够分析出集成电路中存在建立时间违例的时序电路,并输出建立时间违例路径报告。在一些实施例中,在获取了时序关键路径之后,则可以根据预设筛选规则从该时序关键路径中确定时序违反关键路径。
[0078] S102、确定时序违反关键路径上各金属线的线延时以及各金属线所在的金属层。
[0079] 基于上述说明,可选地,通过静态时序分析工具获得的建立时间违例路径报告中可以包括所对应的时序关键路径的路径信息,那么在确定时序违反关键路径后,可以根据该路径信息进一步获取该时序违反关键路径上各金属线的线延时以及各金属线所在的金属层。
[0080] 可选地,该路径信息可以包括但不限于:时序关键路径上各逻辑单元的名称、类型、单元延时信息、排列顺序、逻辑单元的总数量、金属线的数量、各金属线的线延时、各金属线所在的金属层等,在不作限定,根据实际的应用场景可以包括不同类别的信息。
[0081] S103、根据时序违反关键路径上各金属线的线延时,更新至少一条目标金属线所在的金属层,以使更新后的时序违反关键路径符合预设修复要求。
[0082] 在一些应用场景下,金属层越高,金属越厚,对应的电阻越小,则金属线在该金属层上的信号传输越快,即代表同样长度的金属线,延时越小,那么,在获取到时序违反关键路径上各金属线的线延时之后,则可以根据各金属线的线延时,更新至少一条目标金属线所在的金属层,实现了可以将时序违反关键路径上的每条金属线的线延时考虑进来,以使通过更新可以降低该目标金属线的线延时,进而使得更新后的时序违反关键路径符合预设修复要求。
[0083] 综上,本申请实施例提供的基于金属线的时序修复方法,包括:获取目标集成电路的时序违反关键路径,目标集成电路包括多个逻辑单元,时序违反关键路径上包括至少一条金属线路径;确定时序违反关键路径上各金属线的线延时以及各金属线所在的金属层;根据时序违反关键路径上各金属线的线延时,更新至少一条目标金属线所在的金属层,以使更新后的时序违反关键路径符合预设修复要求,应用本申请实施例,可以从金属线的角度对时序违反关键路径进行时序修复,相较于现有技术,可以提高时序修复能力。
[0084] 图3为本申请实施例提供的另一种基于金属线的时序修复方法的流程示意图。可选地,若时序违反关键路径上包括多条金属线路径,如图3所示,上述根据时序违反关键路径上各金属线的线延时,更新至少一条目标金属线所在的金属层,包括:
[0085] S201、根据时序违反关键路径上各金属线的线延时,确定线延时最大的初始目标金属线。
[0086] 其中,在获取了时序违反关键路径上各金属线的线延时之后,则可以从该多条金属线中确定线延时最大的金属线作为初始目标金属线。
[0087] 值得说明的是,金属线所在的金属线层低、电阻大等原因均可导致金属线的线延时较大,又或者,金属线换孔频繁、绕弯不合理、与其附近区域的其他金属线存在串扰等原因也会导致金属线的线延时较大。
[0088] S202、更新初始目标金属线所在的金属层,并判断更新后的时序违反关键路径是否符合预设修复要求。
[0089] 可以理解的是,由于初始目标金属线对应的线延时最大,因此,通过优先更新线延时最大的初始目标金属线所在的金属层,可以使得时序违反关键路径通过最少的更新次数尽可能地符合预设修复要求,可以提高修复效率。
[0090] S203、若确定更新后的时序违反关键路径仍不符合预设修复要求,则根据当前最新的时序违反关键路径上各金属线的线延时,更新至少一条目标金属线所在的金属层。
[0091] 当然,需要说明的是,某些场景下,也存在更新初始目标金属线所在的金属层之后,更新后的时序违反关键路径仍不符合预设修复要求的情况,那么在该情况下,可以将该更新后的时序违反关键路径当作当前最新的时序违反关键路径,并参见前述的方法获取该当前最新的时序违反关键路径上各金属线的线延时以及各金属线所在的金属层,进一步地,可以参见上述S201和S202的步骤,更新当前最新的时序违反关键路径上至少一条目标金属线所在的金属层,也即不断进行迭代更新,直至时序违反关键路径符合预设修复要求。
[0092] 值得说明的是,若目标集成电路中包括多条时序违反关键路径,那么对于每条时序违反关键路径可以参见步骤S201至S203进行更新。
[0093] 图4为本申请实施例提供的又一种基于金属线的时序修复方法的流程示意图。可选地,如图4所示,上述根据时序违反关键路径上各金属线的线延时,确定线延时最大的初始目标金属线,包括:
[0094] S301、根据时序违反关键路径上各金属线的线延时,对各金属线进行排序,确定金属线修复顺序。
[0095] S302、根据金属线修复顺序,确定线延时最大的初始目标金属线。
[0096] 其中,对各金属线进行排序,确定金属线修复顺序时,可以根据各金属线的线延时取值,对各线延时进行升序或降序排序,通过排序则可以确定时序违反关键路径对应的金属线修复顺序,其中,金属线修复顺序中各金属线的修复次序可以表征各金属线的修复优先级。
[0097] 以降序排序为例进行说明,若金属线的线延时越大,则排序越靠前、对应的修复优先级越高,可以理解的是,优先选取修复优先级较高的金属线进行修复时,可以减少修复次数、进而提高修复效率。
[0098] 图5为本申请实施例提供的另一种基于金属线的时序修复方法的流程示意图。在一些实施例中,每个金属线可对应一优先级,金属线的优先级越高,则金属线所在的金属层越高。可以理解的是,通过该设置可以建立金属线的优先级和金属线所在的金属层之间的关系,为更新至少一条目标金属线所在的金属层提供了可选的实施方式。可选地,如图5所示,上述根据时序违反关键路径上各金属线的线延时,更新至少一条目标金属线所在的金属层,包括:
[0099] S401、根据时序违反关键路径上各金属线的线延时,调整至少一条目标金属线的优先级。
[0100] S402、根据调整后至少一条目标金属线的优先级,更新至少一条目标金属线所在的金属层。
[0101] 其中,参见前述说明可知,金属层越高,金属线在该金属层上的延时越小,那么,可以根据时序违反关键路径上各金属线的线延时,调整至少一条目标金属线的优先级,使得通过调整可以提升至少一条目标金属线的优先级;进一步地,可以理解的是,若调整提升了至少一条目标金属线的优先级,也即调整后该至少一条目标金属线对应的金属层的层级,将高于调整前其所对应的金属层的层级。
[0102] 举例来说,若调整前,某目标金属线对应的优先级为a、所在的金属层为N;调整后,该目标金属线对应的优先级为a+1(高于a优先级,相当于提升了优先级),则调整后,该目标金属线所在的金属层的层级可以为N+1(高于N层),可以看出,应用本申请实施例,可以建立金属线的优先级和金属线所在的金属层之间的关系,具有更新方式简单的特点。
[0103] 图6为本申请实施例提供的又一种基于金属线的时序修复方法的流程示意图。可选地,如图6所示,上述更新至少一条目标金属线所在的金属层,包括:
[0104] S501、获取目标金属线的初始起点和初始终点。
[0105] S502、根据初始起点和初始终点,确定目标金属线所在的区域。
[0106] 其中,确定目标金属线所在的区域时,可以将目标金属线的初始起点作为起点、初始终点作为终点,两点确定一条直线,根据该直线所经过的区域确定目标金属线所在的区域。
[0107] 可以理解的是,根据不同的应用场景,目标金属线所在的区域可能包括信号线,也可能包括时钟线,下面分情况说明不同场景下的走线方式。
[0108] S503、若第二金属层的目标金属线所在的区域已有信号线,且目标金属线的线延时大于第一预设阈值,则将第二金属层的信号线部署于第一金属层,并将目标金属线部署于第二金属层,其中,第二金属层的层级高于第一金属层的层级;或,则部署目标金属线在第二金属层并绕开信号线。
[0109] 第一预设阈值可以表征部署于第二金属层的金属线的线延时符合预设时序要求时对应的最大线延时,若第二金属层的目标金属线所在的区域已有信号线,可以理解的是,此时有必要调整信号线和目标金属线之间的位置,以避免两者重叠设置导致其他问题。
[0110] 其中,若目标金属线的线延时大于第一预设阈值,说明目标金属线的线延时不符合第二金属层对应的预设时序要求,在该情况下,可以考虑将位于第二金属层的信号线部署于第一金属层,并将目标金属线部署于第二金属层,通过该设置可以避免信号线对目标金属线的干扰,且还可以保证目标金属线处于较高的金属层,进而可以降低该目标金属线的线延时,使得更新后的时序违反关键路径符合预设修复要求。需要说明的是,将信号线部署于第一金属层时,还应当考虑是否会导致该信号线的线延时不满足预设信号线延时要求或影响其他单元功能的实现。
[0111] 在一些实施例中,若将信号线部署于第一金属层,将导致该信号线的线延时不满足预设信号线延时要求影响其他单元功能的实现,那么在该情况下,也可以部署目标金属线在第二金属层并绕开信号线,以保证目标集成电路的整体设计效果。
[0112] S504、若确定第四金属层的目标金属线所在的区域已有时钟线,且目标金属线的线延时大于第二预设阈值,则将目标金属线部署于第三金属层,其中,第四金属层的层级高于第三金属层的层级;或,则将目标金属线部署于第四金属层并绕开时钟线。
[0113] 在一些实施例中,第一预设阈值和第二预设阈值可以相同或不同,在此不作限定,根据实际的应用场景可以灵活设置。第一预设阈值可以表征部署于第四金属层的金属线的线延时符合预设时序要求时对应的最大线延时。其中,若目标金属线的线延时大于第二预设阈值,说明目标金属线的线延时不符合第四金属层对应的预设时序要求,那么在该情况下,有必要对该目标金属线所在的金属层进行调整,其中,调整过程中,可以将目标金属线部署于第四金属层并绕开时钟线,也即目标金属线和时钟线均在第二金属层,但两者相互不影响。
[0114] 当然,在一些实施例中,若调节过程中,受时钟结构的影响,不可将时钟线部署至其他金属层,否则将影响目标集成电路的整体设计,那么在该情况下,可以将目标金属线部署于第三金属层,也即降层部署,以保证目标集成电路的整体设计效果、保持稳定的时钟结构。
[0115] 值得说明的是,本申请实施例提供的基于金属线的时序修复方法可以应用在芯片物理设计后期,剩余关键路径不多的情况,特别是遇到时序非常紧张,最高层走线资源不足的情况,可以根据本申请实施例有效利用金属层级较高的金属层,从而达到关键路径时序修复的目的。
[0116] 可选地,上述方法还包括:若确定目标金属线所在的区域未使用最高金属层,则更新目标金属线所在的金属层为最高金属层。
[0117] 其中,参见前述说明可知,金属层越高,金属线在该金属层上的延时越小,可选地,若某些应用场景下,目标金属线所在的区域未使用可布线的最高层,那么在该场景下,可以更新目标金属线所在的金属层为最高金属层,通过该设置可以降低该目标金属线的线延时,进而使得更新后的时序违反关键路径符合预设修复要求。
[0118] 图7为本申请实施例提供的另一种基于金属线的时序修复方法的流程示意图。可选地,如图7所示,上述获取目标集成电路的时序违反关键路径,包括:
[0119] S601、获取目标集成电路的多条时序关键路径。
[0120] S602、从多条时序关键路径中确定时序违反最大的路径作为时序违反关键路径。
[0121] 根据不同的应用场景,目标集成电路的时序关键路径可以包括多条,在该场景下,综合考虑时序违反大小,为了对目标集成电路实现快速修复,可以从多条时序关键路径中确定时序违反最大的路径作为时序违反关键路径进行优先修复,可以理解的是,该时序违反关键路径是多条时序关键路径中可优化空间最大的金属线,如此,可以实现快速修复。
[0122] 图8为本申请实施例提供的一种基于金属线的时序修复装置的功能模块示意图,该装置基本原理及产生的技术效果与前述对应的方法实施例相同,为简要描述,本实施例中未提及部分,可参考方法实施例中的相应内容。如图8所示,该时序修复装置200包括:
[0123] 获取模块210,用于获取目标集成电路的时序违反关键路径,所述目标集成电路包括多个逻辑单元,所述时序违反关键路径上包括至少一条金属线路径;
[0124] 确定模块220,用于确定所述时序违反关键路径上各金属线的线延时以及各金属线所在的金属层;
[0125] 更新模块230,用于根据所述时序违反关键路径上各金属线的线延时,更新至少一条目标金属线所在的金属层,以使更新后的所述时序违反关键路径符合预设修复要求。
[0126] 在可选的实施方式中,若所述时序违反关键路径上包括多条金属线路径,所述更新模块230,具体用于根据所述时序违反关键路径上各金属线的线延时,确定线延时最大的初始目标金属线;
[0127] 更新所述初始目标金属线所在的金属层,并判断更新后的所述时序违反关键路径是否符合预设修复要求;
[0128] 若确定更新后的所述时序违反关键路径仍不符合预设修复要求,则根据当前最新的时序违反关键路径上各金属线的线延时,更新至少一条目标金属线所在的金属层。
[0129] 在可选的实施方式中,所述更新模块230,具体用于根据所述时序违反关键路径上各金属线的线延时,对各所述金属线进行排序,确定金属线修复顺序;
[0130] 根据所述金属线修复顺序,确定线延时最大的初始目标金属线。
[0131] 在可选的实施方式中,每个金属线对应一优先级,所述金属线的优先级越高,则所述金属线所在的金属层越高;所述更新模块230,具体用于根据所述时序违反关键路径上各金属线的线延时,调整至少一条目标金属线的优先级;
[0132] 根据调整后至少一条所述目标金属线的优先级,更新至少一条目标金属线所在的金属层。
[0133] 在可选的实施方式中,所述更新模块230,具体用于获取所述目标金属线的初始起点和初始终点;
[0134] 根据所述初始起点和所述初始终点,确定所述目标金属线所在的区域;
[0135] 若第二金属层的所述目标金属线所在的区域已有信号线,且所述目标金属线的线延时大于第一预设阈值,则将所述第二金属层的所述信号线部署于第一金属层,并将所述目标金属线部署于所述第二金属层,其中,所述第二金属层的层级高于所述第一金属层的层级;
[0136] 或,则部署所述目标金属线在所述第二金属层并绕开所述信号线。
[0137] 在可选的实施方式中,所述更新模块,具体用于若确定第四金属层的所述目标金属线所在的区域已有时钟线,且所述目标金属线的线延时大于第二预设阈值,则将所述目标金属线部署于第三金属层,其中,所述第四金属层的层级高于所述第三金属层的层级;
[0138] 或,则将所述目标金属线部署于所述第四金属层并绕开所述时钟线。
[0139] 在可选的实施方式中,所述更新模块230,还用于若确定所述目标金属线所在的区域未使用最高金属层,则更新所述目标金属线所在的金属层为所述最高金属层。
[0140] 在可选的实施方式中,所述获取模块210,用于获取所述目标集成电路的多条时序关键路径;
[0141] 从多条所述时序关键路径中确定时序违反最大的路径作为所述时序违反关键路径。
[0142] 上述装置用于执行前述实施例提供的方法,其实现原理和技术效果类似,在此不再赘述。
[0143] 以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(Application Specific Integrated Circuit,简称ASIC),或,一个或多个微处理器,或,一个或者多个现场可编程门阵列(Field Programmable Gate Array,简称FPGA)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(Central Processing Unit,简称CPU)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上系统(system‑on‑a‑chip,简称SOC)的形式实现。
[0144] 图9为本申请实施例提供的一种电子设备结构示意图,该电子设备可以集成于上述时序修复装置中。如图9所示,该电子设备可以包括:处理器310、存储介质320和总线330,存储介质320存储有处理器310可执行的机器可读指令,当电子设备运行时,处理器310与存储介质320之间通过总线330通信,处理器310执行机器可读指令,以执行上述方法实施例的步骤。具体实现方式和技术效果类似,这里不再赘述。
[0145] 可选地,本申请还提供一种存储介质,存储介质上存储有计算机程序,计算机程序被处理器运行时执行上述方法实施例的步骤。具体实现方式和技术效果类似,这里不再赘述。
[0146] 在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0147] 作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0148] 另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
[0149] 上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(英文:processor)执行本申请各个实施例方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(英文:Read‑Only Memory,简称:ROM)、随机存取存储器(英文:Random Access Memory,简称:
RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
[0150] 需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0151] 以上仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。以上仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。