一种时序性能调整方法及装置与流程
未命名
08-15
阅读:106
评论:0
1.本发明属于电子设计自动化(eda)技术领域,具体涉及一种时序性能调整方法及装置。
背景技术:
2.集成电路布局是电子设计自动化(eda)中非常重要的一环,其目的是将电路元件合理地布置在芯片上,以实现电路的最优性能。在集成电路的设计中,时序分析也是非常重要的一步,其目的是分析电路中最长的关键路径,以确定电路的最大工作频率和时序性能。随着芯片工艺的提升,fpga的规模也越来越大,布局、布线这些流程显得愈发重要,它们对芯片的使用面积、功耗、用户电路的工作频率等性能有着直接的影响,尤其是满足用户电路的时序约束的时序性能,是一个非常重要的目标,它将直接影响到设计功能是否能够实现。
3.现有的eda编译流程是先执行布局,布局完成之后再依据布局结果进行布线;在现有技术中没有时序分析这一环节导致了在布局、布线后往往会发现布线的集成电路不满足设计要求,导致需要推倒重来大大降低了集成电路设计的效率;同时现有技术中也存在使用启发式算法进行集成电路优化验证的方法,但是由于集成电路布局具有极高的复杂性,仅以运算的方式进行布局优化很难保证效率和质量,出现设计效率低下和优化结果不符合用户预期的现象。
4.所以目前需要开发一种时序性能调整方法,可以达到提高时序性能调整效率、提升时序性能调整效果的目的。
技术实现要素:
5.本发明是为解决上述现有技术的全部或部分问题,提出一种时序性能调整方法,以提升时序性能调整效率和效果。本发明还提供了一种时序性能调整装置。
6.本发明提供的一种时序性能调整方法,包括:预定义优化次数阈值和关键路径延时预期值;执行优化:步骤s1.对当前电路进行时序分析并返回关键路径延时信息;步骤s2.基于所述关键路径延时信息和当前优化次数判断所述当前电路是否满足所述优化次数阈值或关键路径延时预期值,若满足,则对所述当前电路进行优化后的编译操作,若不满足,则执行时序优化操作,得到本次优化后的电路,执行步骤s3;步骤s3.对所述本次优化后的电路进行时序分析,判断时序性能是否提升。
7.所述预定义优化次数阈值是指设置一个优化次数的上限值,由于集成电路布局的复杂性往往难以达到最优布局,也无法验证现有布局是否是最优布局,此时就需要通过设置一个最大的优化次数来防止由于无限制地反复优化导致的效率低下问题;所述关键路径延时信息指的是对集成电路性能制约能力最强的一条路径,通过设置关键路径延时预期值,使得集成电路优化至设置程度后不再进行再次优化,提升设计效率;通过布局优化后再次进行时序分析,保留正向优化结果,放弃无优化效果或负优化效果的新布局,保证了优化的效率。
8.首次时序分析前进行:对所述当前电路进行布局;对所述当前电路进行布线,其中所述布局需要调用所述布局模块,所述布线需要调用所述布线模块。
9.所述步骤s2中,进行编译操作后,结束执行;所述步骤s3中,判断时序性能是否提升;若提升,则保留所述本次优化结果,返回步骤s1,基于此次优化的结果继续执行;若无提升,则放弃所述此次优化的结果,返回步骤s1,重新执行。由于集成电路具有高度的复杂性,信号之间高度复杂,每次对所述关键路径进行优化时难以一步到位,为了取得相较于传统集成电路优化方式更好的优化效果,采用了累次优化的方法,通过循环进行时序分析、时序优化、再次时序分析以确认保留或者放弃此次时序优化的结果,这几个步骤,保证每次循环均对所述电路进行了正向优化或不作改动,使得时序优化的正向结果不断累加,得到性能更优的电路布局。
10.所述时序分析的方法包括:建立两个时序参数:第一参数和第二参数,分别表征接收数据到达时间、建立时间数据要求到达时间;基于第一参数、第二参数,计算得到关键路径的slack值作为所述关键路径信息,其中,第一参数和第二参数通过静态时序分析获取,所述静态时序分析包括:建立时间(set up time)分析和保持时间(hold time)分析,更具体的是指通过静态时序分析中的建立时间分析完成的,所述关键路径是集成电路中最长的路径,所述关键路径很小的浮动也能够影响整个电路的工作效率,关键路径所需的时长决定了整个电路所需的时长。
11.计算得到关键路径的slack值的方法包括,设置延时公式;所述延时公式为:slack值=第二参数-第一参数。
12.所述关键路径指所述slack值最小的一条路径,其中关键路径制约了电路的性能,电路的频率高低取决于所述关键路径slack的值的大小,所述slack值大于等于零时所述电路频率能够达到用户期望值,所述slack值小于等于零时,所述电路频率无法达到用户期望值,此时就需要对所述电路进行优化,所述slack值越小电路的频率越低,效率越低。
13.所述逻辑块分为空逻辑块和非空逻辑块。
14.所述时序优化操作包括:交换逻辑块;所述交换逻辑块的方法包括:划定逻辑块的交换范围;优先遍历所述交换范围中的空逻辑块,依次与所述关键路径上的逻辑块交换位置直到计算得出的slack值增加;遍历所有所述空逻辑块后,slack值未增,则所述关键路径上的逻辑块与所述交换范围内的非空逻辑块进行交换,直到计算得出的slack值增加;所述交换范围内所有逻辑块均被交换过后,slack值仍未增加,则按预定义执行:交换所述交换范围外相邻的逻辑块或直接返回交换失败;执行交换所述交换范围外相邻的逻辑块的过程包括:若经交换使得所述slack值增加,则保留使得slack值增加的布局并输出,若经交换未使得所述slack值增加,则直接输出原有布局。所述预定义是指优化开始前用户设置的当所述交换范围内所有逻辑块均被交换过后slack值未增加时执行的操作,其中,相邻的逻辑块指,所述交换范围向四周外扩一个逻辑块形成的新范围中不属于所述交换范围内逻辑块的部分,交换后所述逻辑块间的曼哈顿距离之和小于交换前的初始距离之和,基于所述预定义,能够使用户灵活选择逻辑块交换遍历的程度,按需进行时序优化操作。
15.所述布线操作使用的是不协商的增量布线方法。其中所述不协商的增量布线方法能够提高所述布线操作的效率。
16.所述优化次数阈值是用户自定义的最大优化次数;所述步骤s2中,获取当前优化
次数判断是否达到所述阈值,若是,则不满足优化条件直接进行编译,若不是,则执行步骤s3;所述关键路径的延时预期值是slack值的预期值,所述步骤s2中,获取当前电路的slack值是否大于预期值,若是,则不满足优化条件直接进行编译,若不是,则执行步骤s3。其中所述阈值限制了最大循环次数,使得优化次数得以控制在合理范围内,防止出现过度优化的情况,有效提高了效率;同时所述slack预期值的设置控制了优化效果,当所述关键路径的延时优化至预期程度时优化循环即停止优化进入编译流程,一方面防止过度优化,另一方面也保证了优化效果。
17.本发明另一方面提供了一种装置,包括:布局模块用于将打包的逻辑块,依照物理约束规则映射到芯片上;布线模块用于获取逻辑块的位置和延时信息反馈至所述布局模块,通过所述布局模块和所述布线模块,所述装置能够达到高效优化电路的目的。
18.本发明通过使用时序分析和预设的逻辑块移动方法提高了集成电路的布局效率;通过设置阈值防止循环优化的集成电路过度优化、节约资源;同时由于基于实际电路的时序分析能够相对于理论运算有更高的精确度,本发明能达到提高集成电路优化精度的效果。
附图说明
19.图1为本发明实施例中时序性能调整方法的流程示意图。
实施方式
20.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
21.通过本实施例所解决的技术问题主要包括:1.如何提高时序性能调整效率;2.如何防止使用循环优化方法的时序性能调整方法过度优化;3.如何精确移动逻辑块以优化布局;4.如何提高时序性能调整精度。
22.如图1所示,一种时序性能调整方法其具体实施方式可以为:预定义优化次数阈值和关键路径延时预期值,在首次时序分析前进行:使用布局模块对当前电路进行布局;使用布线模块对当前电路进行布线;执行后续步骤:步骤s1对当前完成布局布线的电路进行时序分析并返回关键路径延时信息;步骤s2基于关键路径延时信息和当前优化次数判断当前电路是否满足优化次数阈值或关键路径延时预期值,若满足,则直接执行编译并结束进程,若不满足,则执行步骤s3;步骤s3获取关键路径上逻辑块的位置并优化逻辑块的排布;对本次优化后的电路进行时序分析,判断时序性能是否提升,若有提升,则保留优化后的电路布局并返回步骤
s1,优化后的电路布局作为当前电路布局;若无提升,则放弃优化后的电路布局并返回步骤s1,当前电路布局为未优化前的电路布局。
23.步骤s2中,布线操作使用的是不协商的增量布线方法。
24.步骤s3中,时序分析的方法包括:建立两个时序参数:第一参数和第二参数,分别表征data arrival time(接收数据到达时间)、data required time(建立时间数据要求到达时间);基于用户设定的延时公式(slack值=第二参数-第一参数。)、第一参数、第二参数,计算关键路径的slack值;得到slack值作为关键路径信息;其中关键路径是指集成电路中最长的路径,同时也是完成功能所需时长最长的路径,故而关键路径所需的时长决定了整个电路所需的时长,关键路径的效率影响了整个集成电路的效率;slack值表征了集成电路的频率和运行速度,slack值越小则频率越低集成电路的效率越低延时越严重,slack值越高频率越高集成电路的效率越高延时越轻微,同时相较于通过计算方法优化集成电路的传统方法,基于时序分析的优化方法更贴近实际情况,避免来了由于集成电路布局复杂造成的计算结果不可靠的问题,提高了优化质量。
25.步骤s2中,优化次数阈值是用户自定义的最大优化次数;步骤s4中,通过计数器获取当前优化次数,比对当前优化次数和自定义的最大优化次数,判断是否达到阈值,若是,则直接进行编译;关键路径的延时预期值是slack值的预期值,步骤s4中,获取当前电路的slack值是否大于预期值,若是,则不直接进行编译,若不是,同时优化次数也未达到阈值,则执行步骤s3。
26.步骤s3中,时序优化操作包括:交换逻辑块;所述时序优化操作包括:交换逻辑块;所述逻辑块分为空逻辑块和非空逻辑块;所述交换逻辑块的方法包括:划定逻辑块的交换范围;优先遍历所述交换范围中的空逻辑块,依次与所述关键路径上的逻辑块交换位置直到计算得出的slack值增加;遍历所有所述空逻辑块后,slack值未增加,则所述关键路径上的逻辑块与所述交换范围内的非空逻辑块进行交换,直到计算得出的slack值增加;所述交换范围内所有逻辑块均被交换过后,slack值仍未增加,则按预定义执行:交换所述交换范围外相邻的逻辑块或直接返回交换失败;执行交换所述交换范围外相邻的逻辑块的过程包括:若经交换使得所述slack值增加,则保留使得slack值增加的布局并输出,若经交换未使得所述slack值增加,则直接输出原有布局;所述预定义是指优化开始前用户设置的当所述交换范围内所有逻辑块均被交换过后slack值未增加时执行的操作,中交换后逻辑块间的曼哈顿距离之和小于交换前的初始曼哈顿距离之和,曼哈顿距离指两个逻辑块在二维坐标系下横纵方向上的距离总和,由于使用曼哈顿距离相对于直接使用欧几里得距离(直线距离)无需进行浮点运算,只需要进行加减运算,使用曼哈顿距离能够提供更高的稳定性和更低的运算成本。
27.本实施例中还提供一种装置,用于执行时序性能调整方法;包括:布局模块用于将打包的逻辑块,依照物理约束规则,使用相应算法,合理地映射到芯片上;布线模块用于获取逻辑块的位置和延时信息反馈至布局模块。
28.虽然本发明已以较佳实施例披露如上,然其并非用以限定本发明,本领域的技术人员在不脱离本发明的精神和范围的前提下,可作若干的更动与润饰,因此本发明的保护范围以本发明的权利要求为准。
技术特征:
1.一种时序性能调整方法,其特征在于,包括:预定义优化次数阈值和关键路径延时预期值;执行优化:步骤s1.对当前电路进行时序分析并返回关键路径延时信息;步骤s2.基于所述关键路径延时信息和当前优化次数判断所述当前电路是否满足所述优化次数阈值或关键路径延时预期值,若满足,则对所述当前电路进行优化后的编译操作;若不满足,则执行时序优化操作,得到本次优化后的电路,执行步骤s3;步骤s3.对所述本次优化后的电路进行时序分析,判断时序性能是否提升。2.根据权利要求1所述的一种时序性能调整方法,其特征在于:首次时序分析前进行:对所述当前电路进行布局;对所述当前电路进行布线。3.根据权利要求1所述的一种时序性能调整方法,其特征在于:所述步骤s2中,进行编译操作后,结束执行;所述步骤s3中,判断时序性能是否提升;若提升,则保留所述本次优化结果,返回步骤s1,基于此次优化的结果继续执行;若无提升,则放弃所述此次优化的结果,返回步骤s1,重新执行。4.根据权利要求3所述的一种时序性能调整方法,其特征在于:所述时序分析的方法包括:建立两个时序参数:第一参数和第二参数,分别表征接收数据到达时间、建立时间数据要求到达时间;基于第一参数、第二参数,计算得到关键路径的slack值作为所述关键路径信息。5.根据权利要求4所述的一种时序性能调整方法,其特征在于:计算得到关键路径的slack值的方法包括,设置延时公式;所述延时公式为:slack值=第二参数-第一参数。6.根据权利要求4所述的一种时序性能调整方法,其特征在于:所述关键路径指所述slack值最小的一条路径。7.根据权利要求3所述的一种时序性能调整方法,其特征在于:所述时序优化操作包括:交换逻辑块;所述交换逻辑块的方法包括:划定逻辑块的交换范围;优先遍历所述交换范围中的空逻辑块,依次与所述关键路径上的逻辑块交换位置直到计算得出的slack值增加;遍历所有所述空逻辑块后,slack值未增加,则将所述关键路径上的逻辑块与所述交换范围内的非空逻辑块进行交换,直到计算得出的slack值增加;所述交换范围内所有逻辑块均被交换过后,slack值仍未增加,则按预定义执行:交换所述交换范围外相邻的逻辑块或直接返回交换失败;执行交换所述交换范围外相邻的逻辑块的过程包括:若经交换使得所述slack值增加,则保留使得slack值增加的布局并输出,若经交换未使得所述slack值增加,则直接输出原有布局。8.根据权利要求2所述的一种时序性能调整方法,其特征在于:
所述布线操作使用的是不协商的增量布线方法。9.根据权利要求1所述的一种时序性能调整方法,其特征在于:所述优化次数阈值是用户自定义的最大优化次数;所述步骤s2中,获取当前优化次数判断是否达到所述阈值,若是,则不满足优化条件直接进行编译,若不是,则执行步骤s3;所述关键路径的延时预期值是slack值的预期值,所述步骤s2中,获取当前电路的slack值是否大于预期值,若是,则不满足优化条件直接进行编译,若不是,则执行步骤s3。10.一种装置,其特征在于:用于执行权利要求1-9任意一项所述的一种时序性能调整方法;包括:布局模块,用于将打包的逻辑块,依照物理约束规则映射到芯片上;布线模块,用于获取逻辑块的位置和延时信息反馈至所述布局模块。
技术总结
本发明提供一种时序性能调整方法,包括:预定义优化次数阈值和关键路径延时预期值;对当前电路进行时序分析并返回关键路径延时信息;基于所述关键路径延时信息和当前优化次数判断所述当前电路是否满足所述优化次数阈值或关键路径延时预期值,若满足,则对所述当前电路进行优化后的编译操作,若不满足,则执行时序优化操作,得到本次优化后的电路,判断其时序性能是否提升。通过定义优化次数阈值,防止优化死循环,如果一直无法满足电路时序要求,无法退出,和关键路径延时预期值有效防止过度优化,提高整体电路布局效率;提高布局优化效果和提高布局优化效率,提高电路的性能。本发明提供的装置具有相应优势。本发明提供的装置具有相应优势。本发明提供的装置具有相应优势。
技术研发人员:李玉洁 刘洋 蔡刚 魏育成
受保护的技术使用者:中科亿海微电子科技(苏州)有限公司
技术研发日:2023.07.11
技术公布日:2023/8/13
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
