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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
楼主: ZHZIC

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

[复制链接]
发表于 2020-11-16 08:15:35 | 显示全部楼层


ZHZIC 发表于 2020-11-15 02:09
这是cstate_reg_0_那个cell的波形,上面两个是时钟和复位,下面两个就是输入和输出了。这是一个状态机, ...


你这里还需要打开 removal_recovery_check 那个选项
发表于 2020-11-16 15:29:49 | 显示全部楼层
Title
Fixing Recovery and Removal Violations in Design Compiler
Description
Fixing Recovery and Removal Violations in Design Compiler

Question:

Does Design Compiler fix recovery and removal violations?

Answer:

If the enable_recovery_removal_arcs variable is set to true, Design Compiler
times and optimizes for timing checks along timing arc paths that end at an
asynchronous pin.

Design Compiler does not work on paths on which asynchronous timing arcs go
through sequential cells, such as the following:

input SET;
:
FD4 u0 (.D(din), .CP(clk), .SD(SET), .Q(regout1));
FD1 u1 (.D(regout1), .CP(clk), .Q(dout));

During synthesis, Design Compiler will not optimize the path from  u0/SD -to u1/D,
because starting from the SET port and ending at u1/D, the path is not visible
to the tool.



Question:

Can you provide a simple example of recovery fixing?

Answer:

Recovery fixing is equivalent to setup time fixing, and removal
fixing is equivalent to hold time fixing. In Design Compiler, it
is essential to use set_fix_hold to fix the hold time.

Following is a small test case, which demonstrates how to use Design Compiler
to correct a recovery violation.  

====== Commands to show the violation ============================

set target_library lsi_10k.db
set link_library "* $target_library"

set enable_recovery_removal_arcs true

read_ver simple.v
create_clock -p 10 CLK
set_input_delay 9 -clock CLK RESET
report_timing
compile -inc
report_timing

====== test module simple.v ======================================

module simple (CLK, A, RESET, Z);

input CLK, A, RESET;
output Z;
IV U1 (.A(RESET), .Z(RESET_BAR));
FD2 REG (.CP(CLK), .CD(RESET_BAR), .D(A), .Q(Z));

endmodule

====== Commands to fix the violation =============================

set target_library lsi_10k.db
set link_library "* $target_library"

set enable_recovery_removal_arcs true

read_ver simple.v
create_clock -p 10 CLK
set_input_delay 9 -clock CLK RESET
report_timing
set_fix_hold CLK
compile -inc
report_timing



Question:

Can you recommend some related SolvNet articles?

Answer:

See the following articles for more information on recovery and removal timing:

SolvNet article 901257, "How to Check Recovery and Removal Timing for Asynchronous set/reset Signals"

发表于 2020-11-16 23:48:37 | 显示全部楼层


lingshao986 发表于 2020-11-16 01:29
Title
Fixing Recovery and Removal Violations in Design Compiler
Description


友情提示,这个做法其实有个坑。
set_input_delay 9 -clock CLK RESET
大多实际运用场景是无法保证这个 9ns 固定延迟的。 工具即使修正了 9ns 延迟的情况,实际延迟如果是 8ns, 那就白干了。

发表于 2020-11-17 11:37:22 | 显示全部楼层


jake 发表于 2020-11-16 23:48
友情提示,这个做法其实有个坑。
set_input_delay 9 -clock CLK RESET
大多实际运用场景是无法保证这个  ...


实际没处理过这个情况,多谢提醒,对于处理同步release的处理,学习了~
抛出来一个疑问 :   这类的问题能否在综合的时候报出来呢,有没有什么好办法能尽早发现问题?



发表于 2020-11-17 12:30:51 | 显示全部楼层


lingshao986 发表于 2020-11-16 21:37
实际没处理过这个情况,多谢提醒,对于处理同步release的处理,学习了~
抛出来一个疑问 :   这类的问题能 ...


通常 RTL 写完后应该用 Spyglass 这样的工具检查一遍,把电路结构上的问题都找出来,改完以后再去综合。
规范一些的公司会有一个 RTL checklist,包括这些常见的电路问题。

发表于 2020-11-17 12:36:35 | 显示全部楼层


jake 发表于 2020-11-17 12:30
通常 RTL 写完后应该用 Spyglass 这样的工具检查一遍,把电路结构上的问题都找出来,改完以后再去综合。  ...


了解,多谢
发表于 2021-2-2 14:32:33 | 显示全部楼层
学习了
发表于 2021-2-24 12:22:40 | 显示全部楼层


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

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


受教 谢谢
发表于 2021-2-24 12:34:53 | 显示全部楼层


jake 发表于 2020-11-16 23:48
友情提示,这个做法其实有个坑。
set_input_delay 9 -clock CLK RESET
大多实际运用场景是无法保证这个  ...


请教下,如果用了异步复位 同步释放的电路,这个RESET 是不是可以false path的。 set_false_path -from [get_ports RESET_IN]后面开启enable_recovery_removal_arcs 即可
发表于 2021-2-24 22:43:14 | 显示全部楼层


fangwang85 发表于 2021-2-23 22:34
请教下,如果用了异步复位 同步释放的电路,这个RESET 是不是可以false path的。 set_false_path -from [ ...


是的,经典做法

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

×

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

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

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