在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
楼主: ZHZIC

[求助] 急!!STA和形式验证都过了,后仿却报出了关于recrem的时序违例

[复制链接]
发表于 2020-11-15 04:01:22 | 显示全部楼层
贴一个简单复位同步电路,供参考。 为了简略,这个图没有画出时钟的 DFT MUX.  

如果时钟在复位撤销时还在跑,这种场景一般都是要加复位同步电路的。 在约束里,复位输入仍旧是 false path。 复位同步电路的输出到其他 flop 的复位端是同步路径,place & route, STA 工具都会自动检测这些同步路径。 注意: 综合工具不查复位路径时序。

如果你的设计真的是复位按键,通常应该加 deglitch,复位同步电路更复杂一些。
reset_synchronizer.png
发表于 2020-11-15 11:42:09 | 显示全部楼层


ZHZIC 发表于 2020-11-14 22:31
你好,我在测试文件里改了一下复位信号转换的时间,跟时钟信号错开之后,虽然还是会报时序的违例,但后仿 ...


STA里是不能继续false path 复位信号的,反而要使能 timing_enable_preset_clear_arcs
发表于 2020-11-15 13:54:44 | 显示全部楼层


phoenixson 发表于 2020-11-14 21:42
STA里是不能继续false path 复位信号的,反而要使能 timing_enable_preset_clear_arcs


如果设计里加了 reset synchronizer, set_false_path -from reset_input 是可以的。
set_false_path -to *_reg/CDN 肯定是不可以的。我估计楼主应该没有加这一句。



发表于 2020-11-15 14:44:52 | 显示全部楼层


phoenixson 发表于 2020-11-14 21:42
STA里是不能继续false path 复位信号的,反而要使能 timing_enable_preset_clear_arcs



通常设计里加了 reset synchronizer, timing_enable_preset_clear_arcs 应该设成 false。 Innovus 里默认也是 false.
reset synchronizer 输出的复位是 asynchronously assert, synchronously de-assert.  Assert 的沿是不需要查 timing 的, de-assert 那个沿才需要查 removal, recovery.
timing_enable_preset_clear_arcs true 是让工具查 assert 那个沿的 timing,大部分设计是不需要的。  

timing_enable_preset_clear_arcs.png

lib_build_async_de_assert_arc 倒是应该设成 true。 这个默认已经是 true 了。

 楼主| 发表于 2020-11-15 16:51:49 | 显示全部楼层


jake 发表于 2020-11-15 04:01
贴一个简单复位同步电路,供参考。 为了简略,这个图没有画出时钟的 DFT MUX.  

如果时钟在复位撤销时还在 ...


这个异步复位,同步释放,需要经过两个flop,然后用寄存器后面的复位信号进行全局复位嘛?
这个需要在最开始的rtl就需要写好嘛
发表于 2020-11-15 22:07:32 | 显示全部楼层


ZHZIC 发表于 2020-11-15 02:51
这个异步复位,同步释放,需要经过两个flop,然后用寄存器后面的复位信号进行全局复位嘛?
这个需要在最 ...


经过两个flop, 最后出来的作为“全局”复位。 这个“全局”只限同一个时钟域 -- 这两个flop用哪个时钟,出来的复位只能用于同一个时钟域。 不同的时钟域,需要不同的 reset synchronizer 电路。
这个电路很常用,最好做成一个小模块,例化到 RTL 里。是的,应该在一开始就放到 RTL 里,不应该是后端加的。  



 楼主| 发表于 2020-11-15 23:08:08 | 显示全部楼层
嗯嗯,我应该是明白啦,谢谢啦
发表于 2020-11-15 23:50:56 | 显示全部楼层


ZHZIC 发表于 2020-11-15 09:08
嗯嗯,我应该是明白啦,谢谢啦


兄弟,加油
 楼主| 发表于 2020-11-15 23:53:15 | 显示全部楼层
好的
发表于 2020-11-16 08:14:43 | 显示全部楼层


jake 发表于 2020-11-15 14:44
通常设计里加了 reset synchronizer, timing_enable_preset_clear_arcs 应该设成 false。 Innovus 里默 ...


除此之外还要看timing_disable_removal_recovery_check 是否已经打开,这里看应该是没有打开
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条

×

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-5-7 23:10 , Processed in 0.029374 second(s), 7 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表