首页 > 其他 > 详细

【原创】建立与保持时间裕量详细分析

时间:2018-09-19 13:17:19      阅读:214      评论:0      收藏:0      [点我收藏+]

  笔者这段时间在找工作中发现,关于时序分析的基础概念,时序关系表达式及时序违例计算几乎是每个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

  还不赶紧背下来!

【原创】建立与保持时间裕量详细分析

原文:https://www.cnblogs.com/moluoqishi/p/9673557.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!