时序分析(2):时序约束原理

一、基本概念

1.时序:时钟和数据的对应关系

2.约束:告诉综合工具,我们希望时序达到什么样的标准

3.违例:时序达不到需要的标准

4.收敛:通过调整布局布线方案来达到这个标准

5.静态时序分析:电路未跑起来时,延时等已知,以此分析时序

6.动态时序分析:电路跑起来,如Modelsim软件(理想状态)

 

二、时序分析基本模型

 

模型分为以下四种:(注:PAD指管脚

  • 寄存器与寄存器之间
  • 输入PAD寄存器之间
  • 寄存器与输出PAD之间
  • 输入PAD 与输出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 为基准,一般看成 0 时刻。实际时间是上一个寄存器所用的时间,因此用 clk1,看数据到达下一个寄存器的 D 端用了多久时间,结束时间又是多久。
  • Latch edge:接收沿,以 clk_pad 为基准,一般看成 0+Tcyc 时刻,要求时间是下一个寄存器计算的时间,所以用 clk2,看它自身需要的到达时间和结束时间是什么时候。

1、时间

  • 建立时间余量:Tsu slack = Data Required Arrival time  -  Data Arrival Time =   Tskew -Tco + Tdata- Tsu  + Tcyc
  • 保持时间余量Th slack =  Data Finish time - Data Required Finish time      = Tco + Tdata- Tskew - Th

2、最小时间(余量为0)

  • 最小建立时间 Tsu  ≤  Tskew - (Tco + Tdata) +Tcyc
  • 最小保持时间 Th   ≤ (Tco + Tdata)- Tskew

3、最小时钟周期

  •  Tcyc = (Tco + Tdata) - Tskew  + Tsu + Tjitter

4、组合逻辑最大延时

  • Tdata = Tcyc - (Tsu + Th)

 

参考资料:V3学院FPGA教程

 

posted @ 2020-04-02 11:09  咸鱼IC  阅读(1922)  评论(0编辑  收藏  举报