一.概述
时序违例的解决可以分为几个阶段,布局前,布线前,布线后。我们从这几个阶段对时序违例进行分析以及提出解决方法。(参考ug1292和ug949)。时序违例包括建立时间违例和保持时间为例,主要关注建立时间违例,保持时间违例是由于组合逻辑太短和时钟偏移造成的,可以通过布线时绕线以及BUFG解决。但是布线时过多的绕线会影响布线时对拥塞的解决程度。可以通过在布线前插入LUT(布局后使用phys_opt_design -hold_fix ),使关键路径的保持时间符合要求,减少布线时的绕线,而专注解决拥塞。
二.分析
2.1布局前
布局前的时序分析可以打开综合后的dcp或者opt以后的dcp文件,然后控制台输入report_time_summary,即可看到列出了时序路径,该阶段时序报告反映的是以下情况下的设计性能:假定每条逻辑路径均达到最理想逻辑布局 。如果出现不符合的路径,则关注扇出和资源利用率,进行设计的初步检查:
是否有太多阻碍逻辑优化的综合属性(mark_debug,keep,dont_touch)
是否扇出过大(report_high_fanout_nets)
关键路径的RTL代码设计是否合理
资源利用率是否符合要求(块 RAM 利用率较高,而 LUT/FF 利用率较低,那么 设计仍可能出现布局问题 ,对于块 RAM 利用率达 70% 的设计,如果在 SLR 间未平衡块 RAM 资源并且其中 1 个 SLR 的块 RAM 利用率超过 85% ,也可能出现时序问题)
时序约束是否合理。
逻辑级数和延时是否太高(通常要求:逻辑级数<时钟周期(ns)* 2)
解决方法:
对于a,去除没有必要的综合属性。
对于b,可以使用max_fanout综合属性进行约束,或者手动复制寄存器,对于复位的高扇出,可以使用BUFG,以及少用复位,多用reg赋初值。
对于c:

本文详细介绍了时序违例的解决过程,包括布局前、布线前和布线后三个阶段的分析与优化方法。重点关注了建立时间违例,提出通过插入LUT、调整扇出、优化逻辑设计和资源分配等手段来改善时序性能。同时,文章强调了时钟路径、拥塞管理、时钟不确定性等因素对时序的影响,并给出了相应的解决建议,如使用CLOCK_DELAY_GROUP、优化时钟源等。
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



