时序约束之偏移约束

偏移约束包括 OFFSET_IN_BEFORE、OFFSET_IN_AFTER、OFFSET_OUT_BEFORE、OFFSET_OUT_AFTER 4中约束。偏移约束规定了外部时钟和数据输入输出引脚之间的时序关系,只用于与PAD相连的信号,不能用于内部信号。通过设置偏移约束,告诉综合工具输入信号到达的时间输出信号需要保持稳定的时间,从而保证输入FPGA/CPLD的信号满足建立时间的要求,同时保证由FPGA/CPLD输出的信号满足下一级电路的时序要求。


偏移约束的语法是:

OFFSET = {IN|OUT}  "offset_time" [units] {BEFORE|AFTER} "clk_name" [{RISING|FALLING}]

命令解释:

  • IN|OUT 说明约束的是输入还是输出;
  • offset_time 为偏移时间差值;
  • BEFORE|AFTER 说明该时间差值是在有效时钟沿之前,还是在有效时钟沿之后;
  • clk_name 是时钟名;
  • RISING|FALLING 指定时钟有效沿是上升沿还是下降沿。

设置偏移约束最重要的一步就是如何计算偏移时间差值,在ISE中对各种偏移差值都有明确的规定。


下面分别叙述上面的4中偏移约束:

一、OFFSET_IN_BEFORE 和 OFFSET_IN_AFTER 约束设置

OFFSET_IN_BEFORE 说明输入信号在有效时钟沿到来提前了多少时间准备好,用于约束芯片内部与输入引脚之间的组合逻辑,使其延时不能大于该时间,否则当时钟有效沿到来时信号还没有稳定,将导致寄存器信号采样错误;

而OFFSET_IN_AFTER 指的是输入信号在时钟有效沿后多少时间到达输入引脚,同样是用于约束输入引脚到芯片内部之间的组合逻辑的延时上限。

如下图:

信号从上一级电路输出到达芯片输入引脚的延时计算公式为:

T_{arrive} = T_{cko} + T_{out} + T_{logic}

没写完,有时间接着写。

猜你喜欢

转载自blog.csdn.net/Reborn_Lee/article/details/81669796