CN110598235B - 芯片设计中修复时序违例的方法及系统 - Google Patents
芯片设计中修复时序违例的方法及系统 Download PDFInfo
- Publication number
- CN110598235B CN110598235B CN201910551840.XA CN201910551840A CN110598235B CN 110598235 B CN110598235 B CN 110598235B CN 201910551840 A CN201910551840 A CN 201910551840A CN 110598235 B CN110598235 B CN 110598235B
- Authority
- CN
- China
- Prior art keywords
- time sequence
- violation
- target
- time
- path
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本发明公开了芯片设计中修复时序违例的方法及系统,涉及集成电路设计技术领域。所方法包括步骤:从时序违例的路径中选取目标修复路径,抓取目标修复路径上所有的基本单元和其对应的延时值并进行排序,根据排序依次选取其中的基本单元作为目标单元;判断前述违例是建立时间违例还是保持时间违例,基于不影响其他时序路径的规则对目标单元进行依次替换,获取满足要求的修复操作;将修复操作转换为布局布线工具能够识别的操作命令,并在布局布线工具上执行上述操作,验证上述操作后的时序分析结果满足时序要求的情况下结束修复。本发明进行时序违例修复时无需重新布局布线,能够快速迭代实现时序的收敛。
Description
技术领域
本发明涉及集成电路设计技术领域,尤其涉及芯片设计中修复时序违例的方法。
背景技术
集成电路芯片设计中,决定集成电路芯片的运行速度和设计面积主要影响因素有如下方面:生产工艺、代码编写风格、代码到版图的物理实现过程等。在代码到版图的物理实现过程中,修复时序是非常重要的关键步骤之一。随着深亚米技术的发展,芯片的设计工艺越来越小,器件和器件间的连线的延时越来越不稳定性,芯片设计的规模越来越大,设计频率越来越高。种种因素导致芯片的时序收敛越来越困难。所述时序收敛,是指芯片时序路径的真实延时时间满足设计者对这条路径要求的延时时间。
由于在芯片物理布局布线阶段和芯片时序验收阶段,对时序路径的分析通常采用不同的工具完成,不同的工具对时序分析的算法通常不同。芯片生产前的时序验收是以时序分析工具为标准。在芯片布局布线完成后,对同一条时序路径,布局布线工具和时序分析工具可能会计算出不同的延时值,可能出现在布局布线工具中时序收敛的路径,但是在时序分析工具中时序违例的问题。所述时序违例,是指芯片中时序路径的真实延时时间不满足设计者对这条路径要求的延时时间。
针对上述问题,目前常用的解决方法是把时序分析工具分析出来的所有违例路径中最大违例值作为保护时间,通过在布局布线过程中针对所有路径增加保护时间来重新进行布局布线,完成布局布线后重新进行时序分析,如果存在违例路径,按照此方法反复迭代达到时序收敛的目的。上述方法存在如下缺陷:
1)对于已经满足设计要求的时序路径如果增加额外的保护时间再次布局布线,会导致时序路径中增加大量冗余的基本单元,增加了芯片的面积,提高的设计成本。
2)对于没有满足设计要求的时序路径再次布局布线如果增加额外的保护时间再次布局布线,由于布局布线阶段和时序分析阶段的使用的工具不同,还可能出现某一条时序路径在布局布线工具中满足设计要求但是在时序分析工具分析不满足设计要求的问题,接下来同种方法的反复迭代会浪费大量的时间。不仅拉长设计周期,而且不能保证下次布局布线结果一定会完全满足时序分析,既浪费时间又缺乏对结果的把控性。
发明内容
本发明的目的在于:克服现有技术的不足,提供了一种芯片设计中修复时序违例的方法及系统。本发明针对时序违例路径,能够在不影响其他时序路径的前提下,通过替换基本单元的方式在时序分析的环境下进行模拟时序修复,并将满足时序要求的模拟修复操作过程转化为布局布线工具可以识别的命令在布局布线工具中操作,快速高效的完成时序收敛的工作。
为实现上述目标,本发明提供了如下技术方案:
一种芯片设计中修复时序违例的方法,包括如下步骤:
步骤100,芯片布局布线后,基于时序分析工具进行时序分析获取所有时序违例的路径;
步骤200,按照违例值从大到小排序,选取最大违例值对应路径为目标修复路径;
步骤300,抓取前述目标修复路径的数据路径上所有的基本单元和其对应的延时值,按照延时值进行排序,根据排序依次选取其中的基本单元作为目标单元;
步骤400,判断前述目标修复路径的违例是建立时间违例还是保持时间违例并分别修复;修复时,基于不影响其他时序路径的规则对目标单元进行依次替换,直至时序收敛或者所有目标单元完全替换后,获取上述所有修复操作;
步骤500,将前述修复操作转换为布局布线工具能够识别的操作命令,并基于此版布局布线数据在布局布线工具上执行上述操作;
步骤600,验证上述操作后的时序分析结果是否满足时序要求,不满足的情况下回归步骤200,满足的情况下结束修复。
进一步,所述步骤400中,基于不影响其他时序路径的规则对目标单元进行替换的方式为,
在建立时间违例的情况下,判断经过该目标单元的所有时序路径在延时最快环境下的保持时间是否有余量,有余量时对该目标单元进行替换,否则不替换;
在保持时间违例的情况下,判断经过该目标单元的所有时序路径在延时最慢环境下的建立时间是否有余量,有余量时对该目标单元进行替换,否则不替换。
进一步,所述步骤300中,针对目标修复路径上所有的基本单元,按照延时值从大到小排序生成列表,选取列表中的第一个基本单元作为目标单元。
进一步,所述步骤400中,判定为建立时间违例时的修复步骤包括,
获取经过前述目标单元的所有时序路径在延时最快环境下的保持时间时序余量;
判断前述保持时间时序余量是否大于预设保护值;
小于预设保护值的情况下,选取前述列表中下一个基本单元作为目标单元,回归执行步骤400;
大于预设保护值的情况下,通过相同功能更快速器件替换前述目标单元,并记录上述替换操作,执行下面步骤;
分析替换目标单元后目标修复路径的建立时间时序余量值,判断所述建立时间时序余量值是否大于0以及上述列表中的所有基本单元是否完全选择;
在所述建立时间时序余量值大于0或者上述列表中的所有基本单元已经全部选择时,执行步骤500;否则,选取上述列表中下一个基本单元作为目标单元回归执行步骤400。
进一步,所述步骤400中,判定为保持时间违例时的修复步骤包括,
获取经过前述目标单元的所有时序路径在延时最慢环境下的建立时间时序余量;
判断前述建立时间时序余量是否大于预设保护值;
小于预设保护值的情况下,选取前述列表中下一个基本单元作为目标单元,回归执行步骤400;
大于预设保护值的情况下,通过相同功能更慢速器件替换前述目标单元,并记录上述替换操作,执行下面步骤;
分析替换目标单元后目标修复路径的保持时间时序余量值,判断所述保持时间时序余量值是否大于0以及上述列表中的所有基本单元是否完全选择;
在所述保持时间时序余量值大于0或者上述列表中的所有基本单元已经全部选择时,执行步骤500;否则,选取上述列表中下一个基本单元作为目标单元回归执行步骤400。
进一步,所述更快速器件为驱动倍数更大或者阈值更低的器件;所述更慢速器件为驱动倍数更小或者阈值更高的器件。
进一步,所述步骤100中,在芯片完成布局布线后,提取芯片布局布线后的网表信息和SPEF信息,基于预设的时序约束条件进行时序分析,根据前述时序分析的结果列出所有时序违例的路径。
本发明还提供了一种芯片设计中修复时序违例的系统,所述系统包括如下结构:
分析模块,用以在芯片布局布线后,基于时序分析工具进行时序分析获取所有时序违例的路径,按照违例值从大到小排序,选取最大违例值对应路径为目标修复路径;以及抓取前述目标修复路径的数据路径上所有的基本单元和其对应的延时值,按照延时值进行排序,根据排序依次选取其中的基本单元作为目标单元;
模拟修复模块,用以判断前述目标修复路径的违例是建立时间违例还是保持时间违例并分别修复;修复时,基于不影响其他时序路径的规则对目标单元进行依次替换,直至时序收敛或者所有目标单元完全替换后,获取上述所有修复操作;
转换模块,用以将前述修复操作转换为布局布线工具能够识别的操作命令,并基于此版布局布线数据在布局布线工具上执行上述操作;
验证模块,用以验证上述操作后的时序分析结果是否满足时序要求,以及反馈验证结果。
进一步,所述模拟修复模块被配置为,
在建立时间违例的情况下,判断经过该目标单元的所有时序路径在延时最快环境下的保持时间是否有余量,有余量时对该目标单元进行替换,否则不替换;
在保持时间违例的情况下,判断经过该目标单元的所有时序路径在延时最慢环境下的建立时间是否有余量,有余量时对该目标单元进行替换,否则不替换。
进一步,所述分析模块被配置为,
在芯片完成布局布线后,提取芯片布局布线后的网表信息和SPEF信息,基于预设的时序约束条件进行时序分析,根据前述时序分析的结果列出所有时序违例的路径。
本发明由于采用以上技术方案,与现有技术相比,作为举例,具有以下的优点和积极效果:
1)节约面积。相比现有技术中增加额外的保护时间来重新布局布线的方法一一对于已经满足设计要求的时序路径如果增加额外的保护时间再次布局布线,会导致时序路径中增加大量冗余的基本单元一一本发明根据时序分析工具获取的时序结果仅修复时序违例路径,不会增加任何冗余单元,节约了芯片的面积,降低了设计成本。
2)节约时间。本发明主要应用在时序收敛的最后阶段,基于时序分析工具对违例路径进行模拟修复,然后把操作转换为布局布线工具可执行命令进行实际修复,此方法不必重新布局布线,显著节约了设计时间。
3)优化效果好,减少迭代次数。基于时序分析工具的时序分析结果进行时序修复,减少了由于工具算法不一致引起的时序违例的问题。
附图说明
图1为本发明实施例提供的时序分析示意图。
图2为本发明实施例提供的修复时序违例的方法流程图一。
图3为本发明实施例提供的修复时序违例的方法流程图二。
图4为本发明实施例提供的时序路径电路图。
附图标记说明:
G——时钟源;
B1、B2、B3——时钟路径上的驱动单元;
B4、B5、B6——数据段上驱动单元;
M1、M2——数据段上组合逻辑单元。
具体实施方式
以下结合附图和具体实施例对本发明公开的芯片设计中修复时序违例的方法及系统作进一步详细说明。应当注意的是,下述实施例中描述的技术特征或者技术特征的组合不应当被认为是孤立的,它们可以被相互组合从而达到更好的技术效果。在下述实施例的附图中,各附图所出现的相同标号代表相同的特征或者部件,可应用于不同实施例中。因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
需说明的是,本说明书所附图中所绘示的结构、比例、大小等,均仅用以配合说明书所揭示的内容,以供熟悉此技术的人士了解与阅读,并非用以限定发明可实施的限定条件,任何结构的修饰、比例关系的改变或大小的调整,在不影响发明所能产生的功效及所能达成的目的下,均应落在发明所揭示的技术内容所能涵盖的范围内。本发明的优选实施方式的范围包括另外的实现,其中可以不按所述的或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为授权说明书的一部分。在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。
本发明中,参见图1所示,示例了时序分析时建立时间和保持时间的时段位置。涉及的技术术语的定义如下:
建立时间(setup time,简称tsu):是指在寄存器的时钟信号上升沿到来之前,数据达到稳定不变的时刻与时钟信号上升沿之间的时段。如果建立时间不够,数据将不能在这个时钟上升沿被打入寄存器。
保持时间(hold time,简称th):是指在寄存器的时钟信号上升沿到来以后,数据保持稳定不变的时段,如果保持时间不够,数据同样不能被打入寄存器。
实施例
参见图2所示,提供了一种芯片设计中修复时序违例的方法,包括如下步骤:
步骤100,芯片布局布线后,基于时序分析工具进行时序分析获取所有时序违例的路径。
在完成芯片布局布线后,提取芯片布局布线的网表信息和SPEF(标准寄生参数交换格式)信息,在时序分析工具下基于预设的时序约束条件进行时序分析,根据前述时序分析的结果列出所有时序违例的路径。
所述预设的时序约束条件,作为举例而非限制,比如可以来自于设计规范中的时序约束文件。
步骤200,按照违例值从大到小排序,选取最大违例值对应路径为目标修复路径。
基于时序分析结果列出的所有时序违例路径,按照违例值的大小,从大到小进行排序,选取最大违例值对应路径为目标修复路径。
步骤300,抓取前述目标修复路径的数据路径上所有的基本单元和其对应的延时值,按照延时值进行排序,根据排序依次选取其中的基本单元作为目标单元。
由于延时越大的基本单元替换单元后的优化效果越明显,为了减少替换操作的次数,提高修复效率,选择从大到小排序依次选取目标单元。具体实施时,针对目标修复路径上所有的基本单元,按照延时值从大到小排序生成列表,选取列表中的第一个基本单元作为目标单元。
步骤400,判断前述目标修复路径的违例是建立时间违例还是保持时间违例并分别修复;修复时,基于不影响其他时序路径的规则对目标单元进行依次替换,直至时序收敛或者所有目标单元完全替换后,获取上述所有修复操作。
本实施例中,基于不影响其他时序路径的规则对目标单元进行替换的方式为:
在建立时间违例的情况下,判断经过该目标单元的所有时序路径在延时最快环境下的保持时间是否有足够余量,有足够余量时对该目标单元进行替换,否则不替换;
在保持时间违例的情况下,判断经过该目标单元的所有时序路径在延时最慢环境下的建立时间是否有足够余量,有足够余量时对该目标单元进行替换,否则不替换。
步骤500,将前述修复操作转换为布局布线工具能够识别的操作命令,并基于此版布局布线数据在布局布线工具上执行上述操作。
在步骤400中,是通过替换基本单元进行模拟修复操作,当模拟后的结果达到时序收敛的目标后,还需要把模拟修复操作过程转化为布局布线工具可以识别的操作命令,然后基于此版布局布线数据在布局布线工具中依次执行修复操作。
步骤600,验证上述操作后的时序分析结果是否满足时序要求,不满足的情况下回归步骤200,满足的情况下结束修复。
在布局布线工具中完成修复操作后,提取芯片布局布线后的网表信息和SPEF信息,基于预设的时序约束条件进行时序分析。并判断时序分析结果是否满足要求,如果不满足则返回步骤200重新进行修复,如果满足则结束修复。
本实施例中,作为举例而非限制,所述时序分析工具优选为synopsys公司的primetime,布局布线工具优选为cadence公司的innovus或者synopsys公司的ICC/ICC2。
对于步骤400,判定为建立时间违例时,优选的修复方式如下:
获取经过前述目标单元的所有时序路径在延时最快环境下的保持时间时序余量。
判断前述保持时间时序余量是否大于预设保护值。
小于预设保护值的情况下,选取前述列表中下一个基本单元作为目标单元,回归执行步骤400。
大于预设保护值的情况下,通过相同功能更快速器件替换前述目标单元,并记录上述替换操作,执行下面步骤。所述更快速器件为驱动倍数更大或者阈值更低的器件。
分析替换目标单元后目标修复路径的建立时间时序余量值,判断所述建立时间时序余量值是否大于0以及上述列表中的所有基本单元是否完全选择。
在所述建立时间时序余量值大于0或者上述列表中的所有基本单元已经全部选择时,执行步骤500;否则,选取上述列表中下一个基本单元作为目标单元回归执行步骤400。
对于步骤400,判定为保持时间违例时,优选的修复方式如下:
获取经过前述目标单元的所有时序路径在延时最慢环境下的建立时间时序余量。
判断前述建立时间时序余量是否大于预设保护值。
小于预设保护值的情况下,选取前述列表中下一个基本单元作为目标单元,回归执行步骤400。
大于预设保护值的情况下,通过相同功能更慢速器件替换前述目标单元,并记录上述替换操作,执行下面步骤。所述更慢速器件为驱动倍数更小或者阈值更高的器件。
分析替换目标单元后目标修复路径的保持时间时序余量值,判断所述保持时间时序余量值是否大于0以及上述列表中的所有基本单元是否完全选择。
在所述保持时间时序余量值大于0或者上述列表中的所有基本单元已经全部选择时,执行步骤500;否则,选取上述列表中下一个基本单元作为目标单元回归执行步骤400。
所述建立时间时序余量,是指在最慢速的分析环境下,时序路径需要的延时时间减去实际的延时时间。所述保持时间时序余量,是指在最快速的分析环境下,时序路径实际的延时时间减去需要的延时时间。
所述建立时间违例,是指上述建立时间时序余量为负值。所述保持时间违例,是指上述保持时间时序余量为负值。
下面结合图3和图4来详细描述本实施例。
参见图3所示,示例了利用上述方案进行时序违例修复的详细操作流程。
步骤1,首先,在芯片完成布局布线设计后,用时序分析工具基于预设的时序约束条件对布局布线后的数据进行时序分析。
步骤2,基于上述结果列出所有时序违例路径,把违例值最大路径作为目标修复路径。
步骤3,针对目标修复路径,获取其路径数据段上所有的基本单元和其对应的延时值,按照延时值由大到小排序生成列表,选取第一个单元作为目标单元。
步骤4,判断上述违例是建立时间违例还是保持时间违例。
判定为建立时间违例时,执行如下步骤:
步骤5,使用时序分析工具分析出在延时最快环境下,经过目标单元的所有时序路径的保持时间时序余量,判断前述保持时间时序余量是否大于预设保护值;判定为否时,选取前述列表中下一个基本单元作为目标单元,返回执行步骤4;判定为是时,执行步骤7;
步骤7,通过相同功能更快速器件(比如驱动倍数更大或者阈值更低的器件)替换前述目标单元,然后用时序分析工具分析目标修复路径的建立时间时序余量值,执行步骤9;
步骤9,判断(建立时间)时序余量值是否大于0以及上述列表中的所有基本单元是否完全选择;在所述时序余量值大于0或者上述列表中的所有基本单元已经全部选择时,执行步骤10;否则,选取上述列表中下一个基本单元作为目标单元回归执行步骤4。
步骤10,将前述所有替换操作转换为布局布线工具能够识别的操作命令,并基于此版布局布线数据在布局布线工具上执行上述操作。
步骤11,用时序分析工具基于预设的时序约束条件对布局布线后的数据进行时序分析。
步骤12,验证上述时序分析结果是否满足时序要求,不满足的情况下回归步骤2,满足的情况下结束修复。
判定为保持时间违例时,执行如下步骤:
步骤6,获取经过目标单元的所有时序路径的建立时间时序余量,判断前述建立时间时序余量是否大于预设保护值;判定为否时,选取前述列表中下一个基本单元作为目标单元,返回步骤4;判定为是时,执行步骤8;
步骤8,通过相同功能更慢速器件替换前述目标单元,然后分析目标修复路径的保持时间时序余量值,执行步骤9;
步骤9,判断(保持时间)时序余量值是否大于0以及上述列表中的所有基本单元是否完全选择;在所述时序余量值大于0或者上述列表中的所有基本单元已经全部选择时,执行步骤10;否则,选取上述列表中下一个基本单元作为目标单元回归执行步骤4。
步骤10,将前述所有替换操作转换为布局布线工具能够识别的操作命令,并基于此版布局布线数据在布局布线工具上执行上述操作。
步骤11,用时序分析工具基于预设的时序约束条件对布局布线后的数据进行时序分析。
步骤12,验证上述时序分析结果是否满足时序要求,不满足的情况下回归步骤2,满足的情况下结束修复。
作为典型方式的举例而非限制,下面结合图4举例描述本实施例的时序修复过程。
参见图4所示,示例了两条时序路径:路径1——寄存器1-M1-B6-寄存器3;路径2——寄存器2-B4-M1-B5-M2-寄存器4。
假设数据段上所有单元,对应的延时值,以及相应替换快速和慢速器件后的延时值如下表所示。
其中,建立时间时序分析是在最慢速环境下分析,保持时间时序分析是在最快速环境下分析。
在一种应用场景中,假设路径2为建立时间违例路径,违例值为16ps,保持时间收敛余量为50ps,路径1为建立时间收敛路径,保持时间收敛且余量为5ps。进行时序修复的方法如下:
确定路径2为目标修复路径且为建立时间违例,违例值为16ps,数据段上基本单元按照延时值排序M1、B4、B5、M2依次作为目标单元。选取目标单元时按照延时值从大到小排序可以减少替换操作次数,节约操作时间。
根据排序,首先以单元M1为目标单元进行分析,假定此时预设的保护值为10ps;经过M1的路径有两条路径1和路径2,其中路径1的保持时间余量小于预设值,所以不满足要求,M1不执行替换操作。然后,选取下一个单元B4作为目标单元。
以单元B4为目标单元进行分析,经过单元B4的路径有一条——路径2。路径2的保持时间余量大于预设值,可执行替换快速器件操作。替换后建立时间违例即在慢速环境改善10ps,保持时间余量即在快速环境下减少8ps,即建立时间违例值变为6ps,保持时间余量变为42ps,建立时间仍然不满足要求,然后继续选定单元B5作为目标单元。
以单元B5为目标单元进行分析,经过单元B5的路径有一条路径2。路径2的保持时间余量大于预设值,可执行替换快速器件操作。替换后建立时间违例即在慢速环境改善8ps,在保持时间余量即在快速环境下减少5ps,建立时间满足时序要求并有2ps余量,保持时间余量为37ps,即满足设计要求。
在时序分析工具中完成模拟修复,替换单元B4和单元B5即可完成时序修复。
在另一种应用场景中,假设路径1为保持时间违例路径,违例值为5ps,建立时间收敛余量为50ps,路径2为保持时间收敛路径,建立时间收敛余量为3ps。
按照本发明中时序修复的思路:
路径1确定为目标修复路径且为保持时间违例,违例值为5ps,按照延时值排序M1、B6依次作为目标单元。
以首位的单元M1为目标单元进行分析,假定此时预设保护值为10ps;经过M1的路径有两条——路径1和路径2,其中路径2建立时间余量小于预设保护值,所以不满足要求,单元M1不执行替换操作,选取下一单元B6作为目标单元。
以单元B6为目标单元进行分析,经过单元B6的路径有一条——路径1,路径1的建立时间余量大于预设保护值,可执行替换慢速器件操作。替换后建立保持违例即在快速环境改善6ps,在建立时间余量即在慢速环境下减少9ps,此时保持时间慢足时序要求且有1ps的余量,建立时间余量变为41ps,即满足设计要求。
在时序分析工具中完成模拟修复,替换单元B6即可完成时序修复。
本发明的另一实施例,还提供了一种芯片设计中修复时序违例的系统。
所述系统包括如下结构:
分析模块,用以在芯片布局布线后,基于时序分析工具进行时序分析获取所有时序违例的路径,按照违例值从大到小排序,选取最大违例值对应路径为目标修复路径;以及抓取前述目标修复路径的数据路径上所有的基本单元和其对应的延时值,按照延时值进行排序,根据排序依次选取其中的基本单元作为目标单元;
模拟修复模块,用以判断前述目标修复路径的违例是建立时间违例还是保持时间违例并分别修复;修复时,基于不影响其他时序路径的规则对目标单元进行依次替换,直至时序收敛或者所有目标单元完全替换后,获取上述所有修复操作;
转换模块,用以将前述修复操作转换为布局布线工具能够识别的操作命令,并基于此版布局布线数据在布局布线工具上执行上述操作;
验证模块,用以验证上述操作后的时序分析结果是否满足时序要求,以及反馈验证结果。
本实施例中,所述模拟修复模块被配置为,
在建立时间违例的情况下,判断经过该目标单元的所有时序路径在延时最快环境下的保持时间是否有足够余量,有足够余量时对该目标单元进行替换,否则不替换;
在保持时间违例的情况下,判断经过该目标单元的所有时序路径在延时最慢环境下的建立时间是否有足够余量,有足够余量时对该目标单元进行替换,否则不替换。
所述分析模块被配置为,
在芯片完成布局布线后,提取芯片布局布线后的网表信息和SPEF信息,基于预设的时序约束条件进行时序分析,根据前述时序分析的结果列出所有时序违例的路径,按照违例值从大到小排序。
具体实施时,模拟修复模块在判定为建立时间违例时,执行如下操作:
获取经过前述目标单元的所有时序路径在延时最快环境下的保持时间时序余量。
判断前述保持时间时序余量是否大于预设保护值。
小于预设保护值的情况下,选取前述列表中下一个基本单元作为目标单元进行模拟修复。
大于预设保护值的情况下,通过相同功能更快速器件替换前述目标单元,并记录上述替换操作,所述更快速器件为驱动倍数更大或者阈值更低的器件。然后,分析替换目标单元后目标修复路径的建立时间时序余量值,判断所述建立时间时序余量值是否大于0以及上述列表中的所有基本单元是否完全选择。在所述建立时间时序余量值大于0或者上述列表中的所有基本单元已经全部选择时,执行后续的转换步骤;否则,选取上述列表中下一个基本单元作为目标单元进行模拟修复。
所述模拟修复模块在判定为保持时间违例时,执行如下操作:
获取经过前述目标单元的所有时序路径在延时最慢环境下的建立时间时序余量。
判断前述建立时间时序余量是否大于预设保护值。
小于预设保护值的情况下,选取前述列表中下一个基本单元作为目标单元进行模拟修复。
大于预设保护值的情况下,通过相同功能更慢速器件替换前述目标单元,并记录上述替换操作,所述更慢速器件为驱动倍数更小或者阈值更高的器件。然后,分析替换目标单元后目标修复路径的保持时间时序余量值,判断所述保持时间时序余量值是否大于0以及上述列表中的所有基本单元是否完全选择。在所述保持时间时序余量值大于0或者上述列表中的所有基本单元已经全部选择时,执行后续的转换步骤;否则,选取上述列表中下一个基本单元作为目标单元进行模拟修复。
其它技术特征参见在前实施例的描述,在此不再赘述。
在上面的描述中,本发明的公开内容并不旨在将其自身限于这些方面。而是,在本公开内容的目标保护范围内,各组件可以以任意数目选择性地且操作性地进行合并。另外,像“包括”、“囊括”以及“具有”的术语应当默认被解释为包括性的或开放性的,而不是排他性的或封闭性,除非其被明确限定为相反的含义。所有技术、科技或其他方面的术语都符合本领域技术人员所理解的含义,除非其被限定为相反的含义。在词典里找到的公共术语应当在相关技术文档的背景下不被太理想化或太不实际地解释,除非本公开内容明确将其限定成那样。本发明领域的普通技术人员根据上述揭示内容做的任何变更、修饰,均属于权利要求书的保护范围。
Claims (8)
1.一种芯片设计中修复时序违例的方法,其特征在于包括如下步骤:
步骤100,芯片布局布线后,基于时序分析工具进行时序分析获取所有时序违例的路径;
步骤200,按照违例值从大到小排序,选取最大违例值对应路径为目标修复路径;
步骤300,抓取前述目标修复路径的数据路径上所有的基本单元和其对应的延时值,按照延时值进行排序,根据排序依次选取其中的基本单元作为目标单元;
步骤400,判断前述目标修复路径的违例是建立时间违例还是保持时间违例并分别修复;修复时,基于不影响其他时序路径的规则对目标单元进行依次替换,直至时序收敛或者所有目标单元完全替换后,获取上述所有修复操作;
步骤500,将前述修复操作转换为布局布线工具能够识别的操作命令,并基于此版布局布线数据在布局布线工具上执行上述操作;
步骤600,验证上述操作后的时序分析结果是否满足时序要求,不满足的情况下回归步骤200,满足的情况下结束修复;
其中,所述步骤400中,基于不影响其他时序路径的规则对目标单元进行替换的方式为:
在建立时间违例的情况下,判断经过该目标单元的所有时序路径在延时最快环境下的保持时间是否有余量,有余量时对该目标单元进行替换,否则不替换;
在保持时间违例的情况下,判断经过该目标单元的所有时序路径在延时最慢环境下的建立时间是否有余量,有余量时对该目标单元进行替换,否则不替换。
2.根据权利要求1所述的方法,其特征在于:所述步骤300中,针对目标修复路径上所有的基本单元,按照延时值从大到小排序生成列表,选取列表中的第一个基本单元作为目标单元。
3.根据权利要求2所述的方法,其特征在于:所述步骤400中,判定为建立时间违例时的修复步骤包括,
获取经过前述目标单元的所有时序路径在延时最快环境下的保持时间时序余量;
判断前述保持时间时序余量是否大于预设保护值;
小于预设保护值的情况下,选取前述列表中下一个基本单元作为目标单元,回归执行步骤400;
大于预设保护值的情况下,通过相同功能的更快速器件替换前述目标单元,并记录上述替换操作,执行下面步骤;
分析替换目标单元后目标修复路径的建立时间时序余量值,判断所述建立时间时序余量值是否大于0,以及判断上述列表中的所有基本单元是否完全选择;
在所述建立时间时序余量值大于0或者上述列表中的所有基本单元已经全部选择时,执行步骤500;否则,选取上述列表中下一个基本单元作为目标单元回归执行步骤400。
4.根据权利要求3所述的方法,其特征在于:所述步骤400中,判定为保持时间违例时的修复步骤包括,
获取经过前述目标单元的所有时序路径在延时最慢环境下的建立时间时序余量;
判断前述建立时间时序余量是否大于预设保护值;
小于预设保护值的情况下,选取前述列表中下一个基本单元作为目标单元,回归执行步骤400;
大于预设保护值的情况下,通过相同功能的更慢速器件替换前述目标单元,并记录上述替换操作,执行下面步骤;
分析替换目标单元后目标修复路径的保持时间时序余量值,判断所述保持时间时序余量值是否大于0,以及判断上述列表中的所有基本单元是否完全选择;
在所述保持时间时序余量值大于0或者上述列表中的所有基本单元已经全部选择时,执行步骤500;否则,选取上述列表中下一个基本单元作为目标单元回归执行步骤400。
5.根据权利要求4所述的方法,其特征在于:所述更快速器件为驱动倍数更大或者阈值更低的器件;所述更慢速器件为驱动倍数更小或者阈值更高的器件。
6.根据权利要求1所述的方法,其特征在于:所述步骤100中,在芯片完成布局布线后,提取芯片布局布线后的网表信息和SPEF信息,基于预设的时序约束条件进行时序分析,根据前述时序分析的结果列出所有时序违例的路径。
7.一种芯片设计中修复时序违例的系统,其特征在在于包括:
分析模块,用以在芯片布局布线后,基于时序分析工具进行时序分析获取所有时序违例的路径,按照违例值从大到小排序,选取最大违例值对应路径为目标修复路径;以及抓取前述目标修复路径的数据路径上所有的基本单元和其对应的延时值,按照延时值进行排序,根据排序依次选取其中的基本单元作为目标单元;
模拟修复模块,用以判断前述目标修复路径的违例是建立时间违例还是保持时间违例并分别修复;修复时,基于不影响其他时序路径的规则对目标单元进行依次替换,直至时序收敛或者所有目标单元完全替换后,获取上述所有修复操作;
转换模块,用以将前述修复操作转换为布局布线工具能够识别的操作命令,并基于此版布局布线数据在布局布线工具上执行上述操作;
验证模块,用以验证上述操作后的时序分析结果是否满足时序要求,以及反馈验证结果;
其中,所述模拟修复模块被配置为:
在建立时间违例的情况下,判断经过该目标单元的所有时序路径在延时最快环境下的保持时间是否有余量,有余量时对该目标单元进行替换,否则不替换;
在保持时间违例的情况下,判断经过该目标单元的所有时序路径在延时最慢环境下的建立时间是否有余量,有余量时对该目标单元进行替换,否则不替换。
8.根据权利要求7所述的系统,其特征在在于:所述分析模块被配置为,
在芯片完成布局布线后,提取芯片布局布线后的网表信息和SPEF信息,基于预设的时序约束条件进行时序分析,根据前述时序分析的结果列出所有时序违例的路径。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910551840.XA CN110598235B (zh) | 2019-06-25 | 2019-06-25 | 芯片设计中修复时序违例的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910551840.XA CN110598235B (zh) | 2019-06-25 | 2019-06-25 | 芯片设计中修复时序违例的方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110598235A CN110598235A (zh) | 2019-12-20 |
CN110598235B true CN110598235B (zh) | 2023-04-18 |
Family
ID=68852648
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910551840.XA Active CN110598235B (zh) | 2019-06-25 | 2019-06-25 | 芯片设计中修复时序违例的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110598235B (zh) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111881637B (zh) * | 2020-07-08 | 2021-05-04 | 广芯微电子(广州)股份有限公司 | 一种数字电路功耗优化的方法、系统及存储介质 |
CN111931453A (zh) * | 2020-07-15 | 2020-11-13 | 深圳市紫光同创电子有限公司 | 数据路径的修复方法、fpga电路、fpga电路设计装置 |
CN111931448B (zh) * | 2020-08-07 | 2022-06-17 | 山东云海国创云计算装备产业创新中心有限公司 | 芯片电路的时序修复方法、系统、电子设备及存储介质 |
CN111950214A (zh) * | 2020-08-14 | 2020-11-17 | Oppo广东移动通信有限公司 | 一种时序分析方法、装置、设备以及计算机存储介质 |
CN112232005B (zh) * | 2020-09-25 | 2023-03-28 | 山东云海国创云计算装备产业创新中心有限公司 | 一种保持时间违例修复方法、系统、设备及存储介质 |
CN112115676B (zh) * | 2020-09-29 | 2021-10-26 | 飞腾信息技术有限公司 | 静态电压降修复方法、装置、设备及存储介质 |
CN112131810B (zh) * | 2020-09-29 | 2024-03-22 | 飞腾信息技术有限公司 | 建立时间违例修复方法、装置、电子设备及可读存储介质 |
CN112069763B (zh) * | 2020-09-29 | 2022-11-29 | 上海兆芯集成电路有限公司 | 修正电路的方法 |
CN112214097B (zh) * | 2020-10-20 | 2021-11-05 | 飞腾信息技术有限公司 | 减少低阈值单元的实现方法、装置、设备及存储介质 |
CN112270156B (zh) * | 2020-10-21 | 2021-10-12 | 成都海光集成电路设计有限公司 | 一种时序分析方法、装置、电子设备及存储介质 |
CN112001140B (zh) * | 2020-10-27 | 2021-03-30 | 浙江大学 | 一种基于pso算法的有用偏差时序优化方法 |
CN112597716B (zh) * | 2020-12-14 | 2023-09-15 | 南京华大九天科技有限公司 | 一种基于sta与spice模型仿真筛选瓶颈单元的方法 |
CN112671378B (zh) * | 2020-12-24 | 2023-04-14 | 中国人民解放军国防科技大学 | 一种无频率损耗的集成电路抗单粒子翻转加固方法 |
CN113343622B (zh) * | 2021-06-23 | 2023-06-13 | 海光信息技术股份有限公司 | 一种电路优化方法、装置、电子设备和可读存储介质 |
CN113781354B (zh) * | 2021-09-18 | 2023-09-22 | 北京环境特性研究所 | 图像噪点抑制方法、装置、计算设备及存储介质 |
CN114580342B (zh) * | 2022-03-03 | 2024-02-09 | 东科半导体(安徽)股份有限公司 | 一种解决金属填充Metal Fill引起芯片时序恶化的方法 |
CN114861578B (zh) * | 2022-07-05 | 2022-10-11 | 飞腾信息技术有限公司 | 保持时间违例修复方法、装置、设备及存储介质 |
CN115081386B (zh) * | 2022-08-11 | 2022-12-13 | 飞腾信息技术有限公司 | 一种集成电路的布线优化方法、优化装置和相关设备 |
CN116681011B (zh) * | 2023-08-03 | 2023-11-07 | 飞腾信息技术有限公司 | 时间违例修复方法、装置、计算机设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7971169B1 (en) * | 2008-08-13 | 2011-06-28 | Lsi Corporation | System and method for reducing the generation of inconsequential violations resulting from timing analyses |
CN104881507A (zh) * | 2014-02-28 | 2015-09-02 | 国际商业机器公司 | 修复电路中的保持时间违例的方法和装置 |
CN105787213A (zh) * | 2016-04-01 | 2016-07-20 | 中国人民解放军国防科学技术大学 | 一种保持时间违反的修复方法 |
CN106066919A (zh) * | 2016-06-13 | 2016-11-02 | 中国科学院微电子研究所 | 应用于近/亚阈值数字电路的统计静态时序分析方法 |
CN107315863A (zh) * | 2017-06-12 | 2017-11-03 | 深圳市国微电子有限公司 | 布局优化方法及装置、终端及存储介质 |
CN108983870A (zh) * | 2017-05-31 | 2018-12-11 | 深圳市中兴微电子技术有限公司 | 一种时间修复方法和装置 |
-
2019
- 2019-06-25 CN CN201910551840.XA patent/CN110598235B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7971169B1 (en) * | 2008-08-13 | 2011-06-28 | Lsi Corporation | System and method for reducing the generation of inconsequential violations resulting from timing analyses |
CN104881507A (zh) * | 2014-02-28 | 2015-09-02 | 国际商业机器公司 | 修复电路中的保持时间违例的方法和装置 |
CN105787213A (zh) * | 2016-04-01 | 2016-07-20 | 中国人民解放军国防科学技术大学 | 一种保持时间违反的修复方法 |
CN106066919A (zh) * | 2016-06-13 | 2016-11-02 | 中国科学院微电子研究所 | 应用于近/亚阈值数字电路的统计静态时序分析方法 |
CN108983870A (zh) * | 2017-05-31 | 2018-12-11 | 深圳市中兴微电子技术有限公司 | 一种时间修复方法和装置 |
CN107315863A (zh) * | 2017-06-12 | 2017-11-03 | 深圳市国微电子有限公司 | 布局优化方法及装置、终端及存储介质 |
Non-Patent Citations (1)
Title |
---|
布线后修复时序违规的方法研究;曾宏;《中国集成电路》;20100405;第19卷(第04期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN110598235A (zh) | 2019-12-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110598235B (zh) | 芯片设计中修复时序违例的方法及系统 | |
TWI746678B (zh) | 早期積體電路佈局設計drc處理工具 | |
CN108170956B (zh) | 一种保持时间的时序签核方法及装置 | |
CN109783984B (zh) | 一种适用于cpu核频率提升的布局布线方法 | |
US10776547B1 (en) | Infinite-depth path-based analysis of operational timing for circuit design | |
CN107908884B (zh) | 一种通过调整时钟树分支改善时序的交互式eco方法 | |
CN114861578B (zh) | 保持时间违例修复方法、装置、设备及存储介质 | |
CN104620242A (zh) | 相关时序架构 | |
JP2009517764A (ja) | 階層的soc設計でマージするタイミング規制 | |
CN115577675B (zh) | 时序违例修复方法、装置、服务器及可读存储介质 | |
US10346579B2 (en) | Interactive routing of connections in circuit using auto welding and auto cloning | |
CN109902318B (zh) | 生成标准延时格式文件的方法和装置 | |
CN110738019B (zh) | 一种利用负载单元自动结群修复时序违反的方法及装置 | |
US11042678B2 (en) | Clock gate latency modeling based on analytical frameworks | |
US7340697B2 (en) | Integrated computer-aided circuit design kit facilitating verification of designs across different process technologies | |
CN115964974A (zh) | 一种基于遗传算法的建立时间优化方法及其系统 | |
US7971169B1 (en) | System and method for reducing the generation of inconsequential violations resulting from timing analyses | |
CN108090288B (zh) | 一种通过机器学习获取时序参数的方法 | |
CN116681011B (zh) | 时间违例修复方法、装置、计算机设备及存储介质 | |
JP2006164132A (ja) | 半導体集積回路のネットリスト作成方法およびレイアウト設計方法 | |
WO2013071480A1 (zh) | 用于模拟电路移植的电路优化方法和装置 | |
JP2009122732A (ja) | 動作タイミング検証装置及びプログラム | |
CN108038312B (zh) | 集成电路半定制后端设计时序预算方法 | |
CN112131810B (zh) | 建立时间违例修复方法、装置、电子设备及可读存储介质 | |
CN110489814B (zh) | 一种通过在代码中提取数据流辅助芯片布局规划的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 201210 8th floor, building 1, 298 Xiangke Road, Pudong New Area, Shanghai Applicant after: MOUXIN TECHNOLOGY (SHANGHAI) Co.,Ltd. Address before: Room 507, building 1, No. 800, Naxian Road, pilot Free Trade Zone, Pudong New Area, Shanghai 201210 Applicant before: MOUXIN TECHNOLOGY (SHANGHAI) Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |