zoukankan      html  css  js  c++  java
  • 时序分析(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教程

  • 相关阅读:
    touch测试
    JS动画代码
    前端css、javascript在线工具
    横向广告(商品)滚动
    写点js的小函数(一)
    HTML5 css reset
    JS新API标准 地理定位(navigator.geolocation)
    写点js的小函数(二、文本框的提示)
    传说中的comet(ajax版)?
    lhgdialog 4.2.0 正式版发布
  • 原文地址:https://www.cnblogs.com/xianyufpga/p/13442332.html
Copyright © 2011-2022 走看看