建立时间:时钟有效沿到来之前,数据必须保持稳定的最小时间;
保持时间:时钟有效沿到来之后,数据必须保持稳定的最小时间;
建立和保持时间的概念是相对于FPGA内部D触发器而言的,每一款FPGA的手册会给出其所支持建立保持时间的最小值;在FPGA中触发器的建立保持时间是否满足,指的是输入到FPGA中的D触发器的有效数据和时钟有效之间的偏差,是否满足根据时序模型分析给出的建立保持时间的范围。
建立和保持时间的约束一般可以通过静态时序分析的通用模型得出,我们可以通过该模型分析出建立、保持时间的公式,从而根据公式直观的给出结果。
上述模型的时序惯性系如下所示:
其中:Tskew是两个触发器时钟的skew偏差,Tdq为触发器输出延迟,Tcomb为在组合逻辑延迟;
建立时间满足:Tsetup+Tdq+Tcomb<=Tclk+Tskew;Tsetup <=Tclk+Tskew-Tdq-Tcomb;
当建立时间不满足时:通过工艺减小Tsetup,增加Tclk、Tskew;减小Tdq,Tcomb;
保持时间满足:Thold<=Tdq+Tcomb;( 还是Thold<=Tdq+Tcomb-Tskew???)
保持时间不满足时:当保持时间不满足时,增加Tdq和Tcomb来解决。目前大部分芯片的Thold时间都可以做到0ns。所以当保持时间不满足时,通常采用的做法是在传输路径上插入buffer,不影响逻辑功能,只增加延迟;