关于时序约束input delay 和output delay 个人理解

先抄下思考源,菜鸟花了半天多时间想大神写的博客:

IO约束
IO的约束主要是指input_delay与output_delay这两种,编译软件(ISE/Quartus)是个很强大而又很傻的工具,在设计的时候,你务必要告诉他在FPGA外部的信号时序关系,他才能够知道怎么去优化内部的时序,以满足时序设计要求。

Set Input_delay
从输入来看,无非有以下两种情况:SDR与DDR。

SDR是指,数据只在时钟的上升沿更新,而DDR是时钟的上升沿与下降沿都会更新。按照时钟与数据对齐方式来划分,又可以分为沿对齐与中心对齐两种。对于输入延迟的获取,一般来说有以下三种途径:文中直接给出Tco、Tdata等参数;通过查阅上级器件的数据手册;通过示波器来实测。查上游的器件手册(主要看Tsu 与Th),那么可以推算出,FPGA输入延迟的最值,为了方便描述,这里设定时钟与数据在PCB上的传输延迟一致:

Input delay max = T – Tsu;

Input delay min = Th;

当时钟与数据到达FPGA的延时不一致时,计算公式如下:

Input_delay_min = Th_min+ (T_data_max -T_clk_min)

Input_delay_max = T-Tsu_max+ (T_data_min -T_clk_max)

其中T_data是数据延时,T_clk是时钟延时,由此可见在PCB布线的时候,务必让时钟与数据的走线尽可能等长。这样不容易导致时序违例现象。(这个公式无论是中心对齐或者边沿对齐都适用,只不过中心对齐与边沿对齐他们的建立时间和保持时间计算不一样而已,稍后说明。) 其中T为FPGA用于采集上游器件发送过来的数据时钟。又或者直接通过示波器观察时钟与数据的延迟关系。有些情况,例如给定了相关数值的话(Tco ,data_delay等数值),可以直接算出输入延迟。跟上一篇计算数据到达时间里一样,这里就不展开论述。
————————————————
版权声明:本文为CSDN博主「meper」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/wenjia7803/article/details/78335253

笔记:
记不管是上级芯片到fpga还是fpga到下级芯片,在输出时都是采用寄存器输出的,里边的时序约束要我们自己去计算然后告诉fpga,fpga芯片根据这些信息去pr

上级芯片到fpga 端口称作为input delay:
把他们想象成经典时序模型,下面有两种情况:
1.记输出到fpga的data和clk是同时到达的,理想状态 T_su和Th是上游期间的触发器参数
此时: input delay max = t - T_su ; 形象化理解下:采集周期减去数据产生建立的时间 即理想化最大延时,也能满足fpga建立的要求
input delay min = Th ; 在保证最大延时下,min值一定可以满足,所以在pt分析时发现改变min值对路径时间无影响
t:为latch - lunch的间隔时间

2.记上级输出到fpga的data 和 clk是不同时间到达呢:
此时 : input delay max = t - tsu -(t_data_min - t_clk _max_max)
input delay min = Th +(t_data_max - t_clk_min)
这个区间都是告诉fpga内部,外部输入信号 clk 和data 的相位关系。

你可能感兴趣的:(fpga)