set_input_delay中-add_delay的作用

在设置input_delay时,我们经常会使用下面的方式:

set_input_delay -clock clk -min 2 [get_ports data_in]
set_input_delay -clock clk -max 4 [get_ports data_in]

但有时也会在后面增加一个-add_delay的参数:

set_input_delay -clock clk -max 2.1 [get_ports data_in]
set_input_delay -clock clk -max 1.9 [get_ports data_in] -clock_fall -add_delay
set_input_delay -clock clk -min 0.9 [get_ports data_in]
set_input_delay -clock clk -min 1.1 [get_ports data_in] -clock_fall -add_delay

在默认情况下,一个port只需要一个min和max的dealy值,如果我们设置两次,那么第二次设置的值会覆盖第一次的值:下面的第一行就无效了。

set_input_delay -clock clk -max 2.1 [get_ports data_in]
set_input_delay -clock clk -max 2.5 [get_ports data_in]

但如果是加了-add_delay参数,就可以多个约束同时存在:

set_input_delay -clock clk -max 2.1 [get_ports data_in]
set_input_delay -clock clk -max 2.5 [get_ports data_in] -add_delay

但其实,第一行也是无效的,因此2.5比2.1要大,如果满足2.5了,那一定满足2.1。

因此,-add_delay参数一般都是用于双沿采样的场景:

set_input_delay -clock clk -max 2.1 [get_ports data_in]
set_input_delay -clock clk -max 1.9 [get_ports data_in] -clock_fall -add_delay

如果不增加-add_delay参数,那么第二条会覆盖第一条约束,那么上升沿的约束就没有了。

在UG903中,也有下面的描述:

Add Delay Input Delay Command Option
The -add_delay option must be used if:
• A max (or min) input delay constraint exists, and
• You want to specify a second max (or min) input delay constraint on the same port.
This option is commonly used to constrain an input port relative to more than one clock 
edge, as, for example, DDR interface

微信公众号:傅里叶的猫

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值