zoukankan      html  css  js  c++  java
  • 【原创】建立与保持时间裕量详细分析

      笔者这段时间在找工作中发现,关于时序分析的基础概念,时序关系表达式及时序违例计算几乎是每个IC/FPGA岗位笔试面试的必考内容。就此,从建立保持时间裕量出发,夯实基础。本文主要是对之前转载博客【时序约束学习笔记1】Vivado入门与提高--第12讲 时序分析中的基本概念和术语 做一些总结和个人理解。

        还是直接用之前转载博客中图片:

      图中的两个寄存器中间加一段组合逻辑电路是时序分析的经典模型,主时钟clk前后两个上升沿分别叫启动沿和锁存沿,是时序分析的起点和终点。下边一步步推导出建立时间和保持时间裕量及常用通式。要注意,下边的“时间”均表示一个时刻。且为了方便,将启动沿时刻定义为0时刻,故锁存沿为T时刻。

    1 时钟到达时间:时钟有效沿到达带二个寄存器的时刻。

      Tcd = capature Edge + Tclkb = T + Tclkb

    2 数据到达时间:数据到达第二个寄存器的时刻。

      Tdd = launch Edge + Tclka + Tco + Tdata = Tclka + Tco + Tdata

    3 数据需求时间(建立时间需求):为满足建立时间要求,数据最晚到达的时刻。

      Tsu,req = Tcd - Tsu = T+ Tclkb - Tsu

    4 数据需求时间(保持时间需求):为了满足保持时间要求,数据最早更新的时刻。

      Th,req = Tcd + Th = T + Tclkb + Th

    5 建立时间裕量:为满足建立时间要求,富余出来的时间段长度。

      setup slack = 建立时间需求 - 数据到达时间

                              = Tdd - Tsu,req = T+ Tclkb - Tsu - Tclka - Tco - Tdata 

                                       =  T + T△ - Tco - Tdata - Tsu

    6 保持时间裕量:为了满足保持时间要求,富余出来的时间长度。

      hold slack = 数据到达时间(下一次)- 保持时间需求

                            = Tdd' - Th,req = Tclka + Tco + Tdata + T - T - Tclkb - Th

                                                     = -T△ + Tco + Tdata - Th

      同步数字电路就系统中,每条时序路径必须满足建立时间裕量和保持时间裕量 ≥ 0,否则无法满足建立与保持时间要求,引起系统不稳定甚至无法正常工作。常用通式(不考虑时钟偏抖):

    1 通过建立时间裕量引出系统最高时钟频率

      setup slack≥0:T - Tco - Tdata - Tsu  ≥ 0 -->T ≥ Tco + Tdata + Tsu 

    2 通过保持时间裕量得到保持时间与时序参数关系

      hold slack≥0:-T△ + Tco + Tdata - Th ≥ 0 --> Th ≤ Tco + Tdata

      还不赶紧背下来!

  • 相关阅读:
    shell test -n -z
    java -d64
    shell export
    topngroupcollector
    stat 查看文件修改时间
    随机30道小学计算题02(修改)
    设计四则运算2程序单元测试用例
    学习进度02
    随机30道小学计算题02
    随机30道小学计算题01
  • 原文地址:https://www.cnblogs.com/moluoqishi/p/9673557.html
Copyright © 2011-2022 走看看