set_input_delay中-add_delay的作用

在设置input_delay时,通常会为输入端口指定最小(min)和最大(max)延迟。当添加-add_delay参数时,可以为同一端口设置多个不同边沿的延迟约束,这在处理如DDR接口等双沿采样场景中尤其重要,避免了新的约束覆盖旧的约束,确保了多个时钟边沿的正确约束。
摘要由CSDN通过智能技术生成

        在设置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、付费专栏及课程。

余额充值