采样沿到达数据开始的位置,称为建立时间。理想情况下,建立时间为一个时钟周期。采样沿到达数据结束的位置,称为保持时间。
建立时间为整个时钟周期,采样沿和数据起始位置的差值,建立时间最大值,保持时间为0。
采样沿和数据起始位置对齐,保持时间最大值,这种现象称为沿打沿。
上升沿到达数据起始位置和上升沿到达数据结束位置,保持一个平衡的状态,使得建立时间和保持时间是一个平衡。如果建立时间越大,保持时间就越小,那么保持时间越大,建立时间就越小。
数据实际到达时间Data arrival time = Tclk1 + Tco + Tdata
数据没办法被寄存器稳定的锁存,可能会产生亚稳态,数据出错。
数据要求到达时间Data Require time = Tcycle + Tclk2 -Tsu
建立时间的余量:数据要求到达的时间和实际到达的时间差值
Setup Slack = Tcycle + Tclk2 - Tsu - ( Tclk1 + Tco + Tdata)
接下来对应vivado工程实现之后的结果,Open Implemented Design:
这一点到目的端点连接了两个,fanout=2
源时钟路径就是tclk1,然后进入到IBUF缓冲器,增加驱动能力。
然后mark一下IBUF,打开device就可以看到:
上图表示IBUF走线的延迟。
Tco,数据到达时间
采样沿8ns,源时钟取最大值,目的时钟取最小值
要求到达时间11.695 - 实际到达时间5.634 = 6.061ns
本文参考尤老师的FPGA时序课程,所对应工程链接:https://pan.baidu.com/s/1u1BPxzjxpFZCiAFKc-R34Q
提取码:0qmp