• 时序分析(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教程

  • 相关阅读:
    mysql json 字符串
    《滕王阁序》
    Jmeter(四十八)MQ测试(转!)
    Echarts 实线与虚线一起使用
    Oracle表空间自动扩展设置
    sql注入条件判断bypass系列
    Jmeter分布式压力测试(史上最全)
    Nginx生产环境配置、elasticsearch生产环境配置、rocketmq生产环境配置 (史上最全)
    Websocket协议 详解(rfc6455)
    Flux 和 Mono 、reactor实战 (史上最全)
  • 原文地址:https://www.cnblogs.com/xianyufpga/p/13442332.html
Copyright © 2020-2023  润新知