一、基本概念
1.时序:时钟和数据的对应关系
2.约束:告诉综合工具,我们希望时序达到什么样的标准
3.违例:时序达不到需要的标准
4.收敛:通过调整布局布线方案来达到这个标准
5.静态时序分析:电路未跑起来时,延时等已知,以此分析时序
6.动态时序分析:电路跑起来,如Modelsim软件(理想状态)
二、时序分析基本模型
模型分为以下四种:(注:PAD指管脚)
知识补充:
1、全局时钟:FPGA时钟到各个寄存器的时间非常接近。
2、自分频时钟:走的是数据线,到各个寄存器的时间差异非常大。
三、理想状态的建立时间和保持时间
1、建立时间 Time setup
(1) 接收时钟上升沿前,发送数据要准备好的时间
(2) Tsu = 数据锁存沿(Latch)- 数据发送沿(Lanch)= 时钟周期
2、保持时间 Time hold
(1) 接收时钟上升沿后,发送数据要保持住的时间
(2) Th = 发送端数据变化时 - 接收端数据锁存 = 0
3、补充
(1) D触发器本身也有建立/保持时间的概念,称之为寄存器建立时间门限和寄存器保持时间门限,这是一个固有属性,是确定的、不变的。当理想状态时,我们讨论建立/保持时间就相当于讨论D触发器的这一固有属性。
(2) FPGA所有时序问题,根本原因都是“建立时间和保持时间”的问题。
(3) 解决建立时间不足的方法是“减少延时”,而解决保持时间不足的方法是“增加延时”。
4、符号说明
四、建立时间余量和保持时间余量
Lunch edge:发射沿,以 clk_pad 为基准。实际时间是上一个寄存器所用的时间,因此用 clk1,看数据到达下一个寄存器的 D 端用了多久时间,结束时间又是多久。
Latch edge:接收沿,以 clk_pad 为基准。要求时间是下一个寄存器计算的时间,所以用 clk2,看它自身需要的到达时间和结束时间是什么时候。
1、时间
建立时间余量:Tsu slack = Data Required Arrival time - Data Arrival Time = Tcyc + Tskew -(Tco + Tdata)- Tsu
保持时间余量:Th slack = Data Finish time - Data Required Finish time= (Tco + Tdata) - Tskew - Th
2、最小时间
最小建立时间 Tsu ≤ Tcyc + Tskew -(Tco + Tdata)
最小保持时间Th ≤ Tco + Tdata-Tskew
3、扩展公式
最小时钟周期 Tcyc = Tco + Tdata + Tsu (去除时钟偏移Tskew)
参考资料:V3学院FPGA教程
原文:https://www.cnblogs.com/xianyufpga/p/13442332.html