本技术涉及集成电路设计领域,具体而言,涉及一种时序路径修复方法、装置、电子设备及存储介质。
背景技术:
1、在对芯片版图设计的布局布线完成后,会对该芯片时序进行验证,若时序不满足要求,即存在时序违例的情况,则需对涉及时序违例的电路路径进行调整与修复,以使得芯片的时序满足要求。
2、目前,在进行时序优化时,会在版图中未设置电路单元的区域插入新的电路单元或调整电路单元,插入新的电路单元会占用芯片的空余位置,调整电路单元可能使得电路单元原本的面积发生变化,从而占用更多芯片面积。而被占用的位置可能用于布线,该位置可能存在着较多的绕线,若被占用,则可能使得该区域的绕线和电路单元出现短路,或不符合物理设计规则,需人工耗时间去解决,影响时序违例的修复效率。
技术实现思路
1、有鉴于此,本技术旨在提供一种时序路径修复方法、装置、电子设备及存储介质,以提高时序违例路径的修复效率。
2、第一方面,本技术实施例提供一种时序路径修复方法,包括:基于芯片设计文件与预设裕度计算规则确定芯片中各区域的布局裕度和布线裕度;所述芯片被划分为多个区域;对于每一个所述区域:该区域的布局裕度表征该区域的空余布局空间,该区域的布线裕度表征该区域的空余布线空间;所述芯片设计文件包括所述芯片的电路单元信息和绕线信息;所述预设裕度计算规则包括:电路单元信息与布局裕度之间的计算关系,以及绕线信息与布线裕度之间的计算关系;判断各所述区域的所述布局裕度和所述布线裕度是否满足预设阈值条件;对各所述区域中不满足所述预设阈值条件的各目标区域增加约束;增加的所述约束用于在时序违例路径修复时限制所述约束所属的目标区域内的电路单元的调整方式;基于各所述区域的约束对所述芯片内的时序违例路径的进行修复。
3、本技术实施例中,在进行时序违例路径修复前,考虑布局裕度和布线裕度,对布局裕度和布线裕度不满足预设阈值条件的区域增加约束,限制其参与时序违例路径修复时的调整方式,以减少在修复时因空间不足引起新的问题,从而减少时序违例路径修复所需的迭代次数,提高修复效率,进而提高芯片设计效率。
4、一实施例中,所述对各所述区域中不满足所述预设阈值条件的各目标区域增加约束,包括:对各所述目标区域增加第一约束;所述第一约束禁止通过增大该目标区域内电路单元的面积的方式修复时序。
5、本技术实施例中,为目标区域增加第一约束,使其在参与时序违例路径修复时不会因电路单元面积变化从而引发新的问题,由此,可以减少时序违例路径修复所需的迭代次数,提高修复效率。
6、一实施例中,所述对各所述区域中不满足所述预设阈值条件的各目标区域增加约束,包括:对各所述目标区域增加第二约束;所述第二约束禁止通过在所述时序违例路径在该目标区域的绕线中插入新的电路单元修复时序。
7、本技术实施例中,对目标区域增加第二约束,使得修复时禁止在该区域的绕线中间插入新的电路单元,从而避免新增电路单元对该区域已有的电路单元和绕线造成影响,从而有效减少因修复时序违例路径而引发的新的问题,减少时序违例路径修复所需的迭代次数,提高修复效率。
8、一实施例中,所述预设阈值条件包括第一阈值、第二阈值、第三阈值和第四阈值,所述第三阈值小于等于所述第一阈值,所述第四阈值小于所述第二阈值;所述对各所述区域中不满足所述预设阈值条件的各目标区域增加约束,包括:对于任意一个所述目标区域,若该目标区域的布局裕度在所述第一阈值和所述第三阈值之间,和/或,该目标区域的布线裕度在所述第二阈值和所述第四阈值之间,则对该目标区域增加第一约束;所述第一约束禁止通过增大该目标区域内电路单元的面积的方式修复时序;若该目标区域的布局裕度小于所述第三阈值,和/或,该目标区域的布线裕度小于所述第四阈值之间,则对该目标区域增加第二约束;所述第二约束禁止通过在所述时序违例路径在该目标区域的绕线中插入新的电路单元修复时序。
9、本技术实施例中,对于不同裕度下目标区域,分别设置不同约束,对于一些裕度较大的目标区域,设置第一约束,以在该区域可以采用更多类型的修复方式,提高修复效率。对于一些裕度较小的目标区域,设置第二约束,严格禁止在该目标区域绕线中增加电路单元,以避免对该区域原有的电路单元和绕线造成影响,从而有效降低新问题发生的可能性,以提高时序违例路径修复效率。
10、一实施例中,所述基于各所述区域的约束对所述芯片内的时序违例路径的进行修复之后,所述方法还包括:若所述芯片内存在时序违例路径无法修复的情况,则放宽所述预设阈值条件。
11、本技术实施例中,若时序违例路径时钟无法修复,则可能是当前的预设阈值条件设置太小,使得一些裕度较大的区域不允许被调整,在此类区域上进行时序违例路径的修复较为复杂,可能需要调整过多的区域,容易引发新的问题,因此,可以放宽预设阈值条件,减少不满足预设阈值条件的区域,以减少修复时引发的新问题。
12、一实施例中,所述基于芯片设计文件与预设裕度计算规则确定芯片中各区域的布局裕度和布线裕度,包括:针对每一所述区域:从所述芯片设计文件提取该区域的所述电路单元信息;所述电路单元信息包括的该区域内的电路单元类型、各所述电路单元类型对应的数目及各所述电路单元类型占用芯片的面积;基于所述电路单元信息与布局裕度之间的计算关系、所述电路单元类型、所述数目、所述面积计算该区域的布局裕度;以及,从所述芯片设计文件提取该区域的所述绕线信息,所述绕线信息包括通过该区域的绕线数量、绕线线宽、线间距及该区域的边长;基于绕线信息与布线裕度之间的计算关系、所述绕线数量、所述绕线线宽、所述线间距及该区域的边长计算该区域的布线裕度。
13、本技术实施例中,布线裕度与绕线的数量、线宽、线间距、区域面积等相关,因此,可以基于绕线信息与布线裕度之间的计算关系、绕线数量、绕线线宽、线间距及该区域的边长实现该区域布线裕度的计算。通过计算布局裕度和布线裕度,使得在设置约束时考虑布局裕度和布线裕度均进行考虑,相较于仅考虑布局裕度,可以有效减少对一些布线资源紧张的区域进行变动,从而减少布线资源紧张的区域因时序违例路径修复导致的新的问题。
14、一实施例中,所述多个区域按照预设的目标尺寸划分得到;其中,所述目标尺寸基于以下方式得到:利用多个的预设尺寸分别将所述芯片划分为多个区域;计算各所述预设尺寸下所述芯片的各区域的布局裕度和布线裕度;根据各所述预设尺寸下所述芯片的各区域的布局裕度和布线裕度,确定出各所述预设尺寸对应的划分评价值;所述划分评价值最高的预设尺寸为所述目标尺寸。
15、芯片划分的方式有多种,不同划分方式下的布局裕度和布线裕度不同,若被划分后被约束的区域过多,则修复时的可选余地较小,对各区域的利用率较低,本技术实施例中,选择划分评价值最高的预设尺寸为目标尺寸,使划分后各区域的布局裕度和布线裕度较大,以降低被约束的区域的比例,从而便于修复时区域的选择,提高区域的利用率。
16、一实施例中,所述方法还包括:对所述芯片进行静态时序分析,确定所述芯片中的所有时序违例路径及各所述时序违例路径中存在时序违例的电路单元和存在时序违例的绕线;对各所述时序违例路径涉及到的区域进行标记;对存在时序违例的电路单元和所述存在时序违例的绕线进行标记。
17、一实施例中,对时序违例路径涉及区域、存在时序违例的电路单元、绕线进行标记,以便于用户快速获取时序违例路径中所存在的问题,从而便于用户确认当前所采用的时序违例路径的修复方式是否合理,以对不合理的修复方式及时调整,从而提高时序违例路径的修复效率。
18、第二方面,本技术实施例还提供一种时序路径修复装置,包括:裕度分析模块,用于基于芯片设计文件与预设裕度计算规则确定芯片中各区域的布局裕度和布线裕度;所述芯片被划分为多个区域;对于每一个所述区域:该区域的布局裕度表征该区域的空余布局空间,该区域的布线裕度表征该区域的空余布线空间;所述芯片设计文件包括所述芯片的电路单元信息和绕线信息;所述预设裕度计算规则包括:电路单元信息与布局裕度之间的计算关系,以及绕线信息与布线裕度之间的计算关系;判断模块,用于判断各所述区域的所述布局裕度和所述布线裕度是否满足预设阈值条件;约束模块,用于对各所述区域中不满足所述预设阈值条件的各目标区域增加约束;增加的所述约束用于在时序违例路径修复时限制所述约束所属的目标区域内的电路单元的调整方式;修复模块,用于基于各所述区域的约束对所述芯片内的时序违例路径的进行修复。
19、第三方面,本技术实施例提供一种电子设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行,以执行如第一方面所述的方法。
20、第四方面,本技术实施例提供一种计算机可读存储介质,所述可读存储介质中存储有计算机程序,当所述计算机程序在计算机上运行时,使得所述计算机执行如第一方面所述的方法。