浅谈时序:set_input_delay

1、set_input_delay的本质

set_input_delay是对模块input信号在模块外部延迟的约束,本质上EDA工具会根据约束调整设计内部的器件类型,摆放的位置以及优化内部组合逻辑保证满足约束要求。

约束指导原则:尽量照顾设计外部逻辑延时

set_input_delay -max delay_vaule 中delay_vaule 数值尽量大

    set_input_delay -max delay_vaule : delay_vaule 数值越大,对自身的约束越严格,对外部的要求越宽松,本质上是对setup time的约束。

    set_input_delay -min  delay_vaule : delay_vaule 数值越小,要求自身有足够的延时,能够cover住hold time,本质上是对hold time的约束。delay_vaule 为0 表示要求input 信号的自身的延时至少要大于hold time的。

2、set_input_delay示意图 

图7-21显示了DUA(the design under analysis )的输入路径。触发器UFF0在DUA外部,并向DUA内部的触发器UFF1提供数据。数据通过输入端口INP1连接。触发器UFF0和触发器UFF1的采样时钟均为CLKA。不考虑CLKA时钟偏移,该时钟周期是两个触发器UFF0和UFF1之间采样时间差。外部逻辑的delay有Tclk2q(即启动触发器UFF0的CK到Q延迟)和Tc1(即通过外部组合逻辑的延迟)。针对DUA输入管脚INP1设置的set_input_delay指的就是相对于时钟CLKA的Tclk2q+Tc1延时。假设CLKA的时钟周期为2ns,Tclk2q+Tc1延时为1.5ns,则INP1引脚的逻辑在设计中只有500ps(=2ns-1.5ns)可用于内部传播,即UFF1的Tc2加Tsetup必须小于500ps,才能保证触发器UFF1可靠地捕获由触发器UFF0输出的数据。

 

3、set_input_delay 简单案例

如图7-22所示Tclk2q的延时范围为0.8ns~1.1ns,组合逻辑Tc1的延时为2.2ns~5.6ns,此时Tclk2q+Tc1 最大延迟为6.7ns(=1.1ns+5.6ns)。最小延迟为3ns(=0.8ns+2.2ns)。请注意,这些延时都是相对于时钟采样沿设置的。我们用-max和-min参数描述最大延时和最小延时。-min 3.0 要求INPA内部时延加上3ns能够大于hold time,-max 6.7要求INPA内部时延加上Setup time要求小于8.3ns(=15-6.7)

create_clock -period 15 -waveform {5 12} [get_ports CLKP] 
set_input_delay -clock CLKP -max 6.7 [get_ports INPA] 
set_input_delay -clock CLKP -min 3.0 [get_ports INPA]

 

 

  • 6
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值