一种时序关键路径感知的ECO优化方法与流程

摘要: 本发明属于eco,具体涉及一种时序关键路径感知的eco优化方法。背景技术:1、传统的eco流程通常包括:rtleco,根据rtl代码的修改找到需要修改的模块和修...
一种时序关键路径感知的ECO优化方法与流程

本发明属于eco,具体涉及一种时序关键路径感知的eco优化方法。

背景技术:

1、传统的eco流程通常包括:rtleco,根据rtl代码的修改找到需要修改的模块和修改点;syneco,根据rtleco的修改点修改综合阶段的网表;dfteco,根据syneco的修改点修改dft阶段的网表;fpeco,根据功能修改需求或前序阶段eco结果对芯片floorplan相关信息进行调整;preco,根据dfteco的修改点修改布局布线阶段的网表。在上述流程中,每个阶段的eco以功能等价为目标生成修改点,并通过逻辑等价性验证确认eco结果正确。

2、然而,现有的eco方法在执行过程中主要关注功能等价性以及patchsize的优化,缺少对eco修改点与时序关键路径之间关联关系的提前分析。

3、一方面,对于同一功能修改需求,在rtl阶段以及后续不同eco阶段通常存在多种实现方式,不同实现方式会引入不同的逻辑结构变化或连接关系变化,从而对关键路径产生不同程度的影响。由于时序关键路径通常由复杂的组合逻辑和寄存器连接关系构成,某些eco修改点虽然能够满足功能需求,但可能改变关键路径上的逻辑结构或连接关系,例如在关键路径的连线上插入逻辑级、在关键路径的单元上增加扇出负载,从而导致关键路径延迟增加,降低芯片的工作频率。

4、另一方面,仅以patchsize最小作为优化目标同样存在不足。patchsize为0的eco结果在某些情况下并不是最优的,例如虽然没有新增和删除单元,但改动的连线恰好位于时序关键路径上,同样有可能降低芯片的工作频率。

5、由于现有方法通常需要在eco完成后通过静态时序分析sta才能确认eco是否影响关键路径,因此存在以下缺点:第一,eco对关键路径的影响无法提前预测,只能事后发现;第二,高风险的eco修改点无法提前规避,工具在生成修改点时对关键路径没有感知能力;第三,eco完成后一旦发现时序问题,需要重新生成修改点并重新进行eco,而重新eco又可能引入新的时序问题,导致迭代次数不可控,增加了迭代成本和流片周期风险;第四,即使发现了时序问题,由于缺少修改点与关键路径之间关联关系的量化描述,也难以定位到究竟是哪一个修改点造成了时序退化,只能整体重做。

技术实现思路

1、本发明针对现有eco过程中无法提前评估修改点对时序关键路径影响的问题,创新性地提出了一种时序关键路径感知的eco优化方法,通过建立eco修改点与关键路径之间的量化影响评估模型,在eco执行前预测潜在时序风险,在eco过程中指导修改点的选择与替代,在eco完成后结合实际时序结果进行验证并反馈修正评估模型,使eco流程由传统的先修改后验证转变为先预测再修改,从而提高eco结果的时序可靠性。

2、本发明的方案如下:

3、一种时序关键路径感知的eco优化方法,用于集成电路设计的eco阶段,所述方法包括以下步骤:

4、步骤s1,对当前设计阶段的待eco网表进行静态时序分析,提取关键路径集合,所述关键路径集合中的每条关键路径包括起点寄存器、终点寄存器、该关键路径上的单元序列以及该关键路径的时序裕量slack;由所述关键路径集合得到关键单元集合和关键寄存器集合。

5、步骤s2,根据功能修改需求对新旧设计进行差异分析,得到候选eco修改点集合,所述候选eco修改点集合被划分为至少两个候选实现方案,每个候选实现方案由一组候选eco修改点构成,且每个候选实现方案单独施加于待eco网表后均与所述功能修改需求逻辑等价。

6、步骤s3,对所述候选eco修改点集合中的每个候选eco修改点,确定该候选eco修改点与所述关键路径集合中各条关键路径之间的关联关系,所述关联关系包括逻辑关联关系、空间距离关系和结构扰动关系;根据所述关联关系以及相应关键路径的slack,计算该候选eco修改点的影响评分,并根据所述影响评分与预设的影响等级阈值确定该候选eco修改点的影响等级。

7、步骤s4,在保持逻辑等价的前提下,根据步骤s3得到的影响评分确定eco修改方案,具体包括:以一个候选实现方案中各候选eco修改点的影响评分的最大值作为该候选实现方案的方案影响评分,选择方案影响评分最小的候选实现方案;对所选候选实现方案中影响评分大于第一阈值的候选eco修改点,生成与其逻辑等价、且与关键路径之间的逻辑关联关系或空间距离关系被削弱的替代修改点,对所述替代修改点重新执行步骤s3得到替代修改点的影响评分,当所述替代修改点的影响评分小于原候选eco修改点的影响评分时,以所述替代修改点替换原候选eco修改点;按照所述eco修改方案对待eco网表执行eco操作,得到eco结果网表。

8、步骤s5,对所述eco结果网表进行静态时序分析,得到各关键路径的实际时序变化量;将所述实际时序变化量与步骤s3得到的相应候选eco修改点的影响评分进行比较,得到预测误差,并利用所述预测误差更新步骤s3中计算影响评分所使用的权重系数。

9、进一步的,所述步骤s1中提取关键路径集合的方式为以下任意一种:将slack小于预设slack阈值的时序路径确定为关键路径;或者将全部时序路径按slack由小到大排序后取前条确定为关键路径。提取关键路径集合后,为所述关键单元集合中的每个关键单元建立索引,所述索引记录该关键单元所属的关键路径的编号。

10、进一步的,所述逻辑关联关系由逻辑级数距离表征,逻辑关联度;当候选eco修改点既不属于该关键路径、也不位于该关键路径上任一单元的扇入锥或扇出锥内时,判定二者不存在逻辑关联关系,取0。

11、进一步的,所述空间距离关系由空间关联度表征,在布局布线阶段基于曼哈顿距离计算,在综合阶段或dft阶段基于设计层次树中的层次距离计算。

12、进一步的,所述结构扰动关系由结构扰动度表征,。

13、进一步的,所述影响评分,其中,为时序敏感度权重。

14、进一步的,所述影响等级阈值包括第一阈值、第二阈值和第三阈值,据此将影响等级划分为高、中、低、极低四级。

15、进一步的,所述替代修改点的生成方式包括驱动复制隔离、位置迁移、非关键分支实现、备用单元复用和等价结构改写中的至少一种。

16、进一步的,对生成的替代修改点执行逻辑等价性验证,仅在通过验证时才允许替换;无法生成更优替代修改点时,将原候选eco修改点加入受控风险点列表并在步骤s5中优先验证。

17、进一步的,所述步骤s3还包括计算本次eco任务的关键路径影响比例,当大于预设的影响比例阈值时扩大候选实现方案的搜索范围。

18、进一步的,所述步骤s5中,当预测误差大于预设的误差阈值时,按梯度下降方式更新权重系数并归一化,更新后的权重系数用于后续的eco任务。

19、进一步的,所述步骤s5中,当eco后的最差slack恶化量大于预设的时序恶化阈值时,回退所述eco修改方案并选择方案影响评分次小的候选实现方案重新执行。

20、进一步的,所述步骤s4中选择候选实现方案时,还结合patchsize进行联合评估,计算综合评分,选择综合评分最小的候选实现方案。

21、进一步的,所述eco的当前设计阶段包括综合阶段、dft阶段和布局布线阶段中的任意一个阶段;所述eco操作包括rtleco、syneco、dfteco、fpeco、preco中的至少一种。

22、本发明与现有技术相比,其有益效果是:

23、本发明在eco执行前即可预测候选修改点对关键路径的潜在影响,避免了传统方法只能在eco完成后通过sta才发现时序问题的被动局面,把时序风险的发现时刻从eco之后提前到了eco之前;通过与patchsize的联合评估,避免了单纯追求patchsize最小而牺牲时序的情况,在patchsize与时序质量之间取得平衡,整体上获得更佳的eco结果。