zl程序教程

您现在的位置是:首页 >  后端

当前栏目

【Xilinx Vivado时序分析/约束系列2】FPGA开发时序分析/约束-建立时间

开发 分析 系列 时间 建立 FPGA 约束 时序
2023-09-14 09:16:20 时间

目录

基本概念

数据结束时间(Data finish time)

保持时间门限

保持时间余量(Hold Slack)


 

基本概念

数据结束时间(Data finish time)

之前解释了数据达到的时间,对于data arrival time = Tclk1+Tco+Tdata。

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBATGluZXN0LTU=,size_20,color_FFFFFF,t_70,g_se,x_16

而数据结束时间,按照时钟周期来看的话,数据结束的时间是数据达到的时间的下一个时钟,也就是

data finish time = data arrival time + Tcycle = Tclk1+Tco+Tdata+Tcycle

从时序图上看会更加清晰明了

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBATGluZXN0LTU=,size_20,color_FFFFFF,t_70,g_se,x_16

时钟到达时间(Clock arrival time)

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBATGluZXN0LTU=,size_20,color_FFFFFF,t_70,g_se,x_16

保持时间门限

之前定义过建立时间门限,它表示的是数据到来之前,数据所需要最小一段时间的稳定,这段时间就被称为建立时间,体现在公式上,数据所被要求达到的时间为:Tcycle+Tclk2-Tsu,在公式上是减去。

而保持时间门限表示的是,在数据到达之后需要最小一段时间的稳定,因为数据到来之后不能立马发生变化,需要维持一段时间的稳定,这段时间就被称为保持时间门限,体现在公式上,数据所被要求结束的时间为:Tcycle+Tclk2+Th,在公式上是加上。

从下图可以清晰的看出,在锁存沿到来之后还需要延后一个Th的时间。数据所被要求结束的时间表示的是,数据可以此时间之后结束但是不能早于这个时间,如果比这个时间更早就结束的话,数据就没办法被锁存了。

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBATGluZXN0LTU=,size_20,color_FFFFFF,t_70,g_se,x_16

保持时间余量(Hold Slack)

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBATGluZXN0LTU=,size_20,color_FFFFFF,t_70,g_se,x_16

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBATGluZXN0LTU=,size_20,color_FFFFFF,t_70,g_se,x_16

从时序图上可以看出,数据实际结束的时间是Tcycle+Tclk2+Th,也就是时序图中的深蓝色的线,而数据所被要求结束的时间是Tcycle+Tclk1+Tco+Tdata,而数据所被要求结束的时间减去数据实际结束的时间的差值就是保持时间余量(Hold Slack)

Hold Slack = Tcycle+Tclk1+Tco+Tdata-(Tcycle+Tclk2+Th)

从上面保持时间余量的公式可以看出,保持时间余量与整个时钟频率是无关的,反过来说,改变整个时钟频率并不能改变保持时间余量。

往期系列博客:

【Xilinx Vivado时序分析/约束系列1】FPGA开发时序分析/约束-寄存器间时序分析