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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 27825|回复: 19

[讨论] [已解决]set_output_delay与set_min_delay的区别

[复制链接]
发表于 2012-1-11 15:57:04 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
本帖最后由 ayuan1027 于 2012-1-16 10:10 编辑

我一直不明白set_input/output_delay与set_min/max_delay的差别。同事说set_input/output_delay仅对setup有约束,set_min/max_delay分别对setup,hold约束,所以建议我用后者。我看手册上只说了set_min/max_delay优先级别高。其中的max/min真的分别指的是setup,hold吗?
发表于 2012-1-11 20:08:11 | 显示全部楼层
回复 1# ayuan1027


   我的觀點剛好相反。我建議用set_input_delay與set_output_delay,而不是用set_max_delay與set_min_delay。而你朋友說前者僅constrain max delay time這是不正確的,它們也有constrain min delay time。
你可以man set_input_delay,會發現它有-max與-min的選項,並請看它的解釋。

為何不建議用後者?
因為後者相對於前者的一個很大的差異是:後者沒有參照任何clock,而前者有-clock的選項。
所以若有對clock加上如latency、uncertainty、...,就應該使用前者並加上-clock,然後STA才會考量這些constraints。

舉個例子:
若有一設計想限制input到flip-flop (FF)的path的最大delay為10ns。
又input是接到另一設計的FF輸出。且這兩個FF都接到同一clock。且此clock有設1ns的latency。

如果用set_max_delay,我們很直覺的會設10ns的delay。
但STA的結果是:data從起點input出發,沒考量到1ns的clock latency,而終點的FF卻有1ns 的clock latency,
所以STA會認為這條path有(約)11ns可以給path上的comb logic作運算,
就可能合成出一條11ns的path,導致最終這設計只能操作在11ns,而不是10ns。
但若用set_input_delay,它就會考慮起點的1ns clock latency。

然而,若要synthesize combinational circuit,也可使用set_input_delay/set_output_delay再加上virtual clock。
要建立一virtual clock,就是使用create_clock然後不指定pin/port。

所以說一般只要用set_input_delay/set_output_delay就可以取代set_max_delay/set_min_delay。
至於set_max_delay/set_min_delay的用途我就不太清楚了。
发表于 2012-1-11 20:19:08 | 显示全部楼层
本帖最后由 zxvc 于 2012-1-11 20:21 编辑

還有一個要注意的差異是,
若要constrain input to FF為10ns。
set_max_delay要指定10ns。
但set_input_delay要指定"前一級的combinational logic接到這input的delay"。
若"前一級的combinational logic接到這input的delay"為0ns,
就代表input to FF的path可以算10ns。

所以這以下這兩種是"差不多"的(若不考量clock latency, uncertainty, ...):
1.set_max_delay 10 [get_port foo]

2.
create_clock -p 10 [get_port clk]
set_input_delay 0 -clock clk [get_port foo]
发表于 2012-1-12 09:15:14 | 显示全部楼层
补充一点,set_input/output_delay只是针对PORT的设置,
set_max/min_delay可以针对任意两点(有很多OPTION),很灵活。
发表于 2012-1-12 10:09:26 | 显示全部楼层
同意2楼的, set_max/min_delay 属于 exception constrain,  他不仅仅约束data path, 连clock period一并改变, 你可以试验一下让PT报一条path看看, 如果你仅仅想约束某段data path, 而clock不变的话, 这条约束显然不合适。
 楼主| 发表于 2012-1-12 10:14:12 | 显示全部楼层
本帖最后由 ayuan1027 于 2012-1-12 10:44 编辑




这么厉害?如果我加的约束全在输入输出端口,也就不会对时钟产生影响,这样两种约束的差别也就不大了吧?
发表于 2012-1-12 11:31:14 | 显示全部楼层
本帖最后由 zxvc 于 2012-1-12 20:02 编辑


同意2楼的, set_max/min_delay 属于 exception constrain,  他不仅仅约束data path, 连clock period一并改 ...
chris_li 发表于 2012-1-12 10:09



"clock period一並改變"這句話怪怪的。set_max_delay/set_min_delay應該不會改變create_clock的period。
只是遇到需要考量clock delay(latency, uncertainty, skew, ...)的STA起點或終點,它們就不太適合使用。
因為使用者在使用set_max_delay/set_min_delay很容易忘記考量clock delay,而做出timing不正確的電路。
 楼主| 发表于 2012-1-12 17:04:20 | 显示全部楼层
再问一个问题,而偶们怎么确定哪个时钟是和端口相关的呢?
发表于 2012-1-12 19:59:12 | 显示全部楼层
本帖最后由 zxvc 于 2012-1-12 20:01 编辑


再问一个问题,而偶们怎么确定哪个时钟是和端口相关的呢?
ayuan1027 发表于 2012-1-12 17:04



看input與output分別與誰相接。假如個有三個design A, B, C。A輸出接B輸入,B輸出接C輸入。
要設定B的input delay所相對的clock,就是找出這條path: A flip-flop>A output port>B input port>B flip-flop,
而B input delay所相對的clock就是path起點的A flip-flop所接的clock。

B的output delay與C的flip-flop依此類推。
 楼主| 发表于 2012-1-13 09:18:31 | 显示全部楼层


看input與output分別與誰相接。假如個有三個design A, B, C。A輸出接B輸入,B輸出接C輸入。
要設定B的 ...
zxvc 发表于 2012-1-12 19:59




也就是说,每个端口的相关联时钟就是端口前一级FF的时钟?那A input的关联时钟怎么算呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-11-26 00:52 , Processed in 0.021087 second(s), 7 queries , Gzip On, Redis On.

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