在做FPGA项目时主要包括两种仿真,即前仿真和后仿真。前仿真主要是对RTL代码的功能仿真,而后仿真却考虑了实现具体功能时的延时的仿真。在做后仿真时既然考虑了整个项目的延时,因此必须要知道时序分析和时序约束两方面的东西。
下面主要是对时序分析方面的内容进行学习:
首先看下面一个基本的RTL图
时钟延时和信号延时在上图整个传输过程中是随处存在的。例如:对于时钟clk而言,时钟到达reg1的时间clk_reg1与时钟到达reg2的时间clk_reg2是不同的,存在延时这一概念。同样信号在寄存器reg1、reg2和组合逻辑Comb- logic中传输也都存在延时。下面结合具体的时序图对时序进行分析。时序图如下:
现对图中的各符号进行说明。此说明是按照自己的理解进行解释的,并不是严格的定义。
Tclk1/Tclk2:时钟clk从源端口出发到reg1/reg2花费的时间。
Tco:clk_reg1时钟上升沿到来后,数据从reg1的D端口到Q端口所用的时间。
Tdata:数据从reg1的Q端口到reg2的D端口所用的时间。
Tskew:时钟clk从源端口出发到reg1和reg2花费时间的时间差,即Tskew=Tclk2-Tclk1。
Tsu:建立时间。
Tslack:时间余量(裕量)。
在进行时序分析时,若要保证传输数据的正确,则必须保证Tslack≥0;等价于Tco+Tdata+Tsu≤T+Tskew;
上述若有错误之处,望不吝赐教!