何为裕量?

裕量,英文名称叫做“Slack”。我们在Vivado实现后的报告中常常能看到这样一栏:

因为都是缩写,所以我们来解释一下前四栏的含义:

  1. WNS,即Worst Negative Slack,最差负时序裕量。这个表征了我们设计的电路中,最差的那条路径的时序裕量,如果为正,则说明满足建立时间要求,如果为负,则说明建立时间时序出现问题。
  2. TNS,即Total Negative Slack,也就是所有负时序裕量路径之和,数字的含义和上面是一样的。
  3. WHS,即Worst Hold Slack,代表最差保持时序裕量 ,为正则说明满足保持时间要求,为负则说明保持时序出现问题。
  4. THS, 即Total Hold Slack,也就是总的负保持时序裕量路径之和。

上面我们一直提到了一个词:裕量。究竟如何理解“裕量”这个词呢?所谓的裕量字面上理解就是多出来的量,之前的文章中我们讨论过建立时间和保持时间的概念。

对于建立时间,我们要求信号在建立时间之前就要稳定下来,至于具体提前了多久,那就得用“建立裕量”WNS和TNS进行衡量。

对于保持时间,我们要求信号要在保持时间之后才可以变换,至于延后了多久,那就得用“保持裕量” WHS,THS进行衡量。

多说一嘴,建立时间要满足时序路径中最慢的信号也要符合要求,因此称为最大分析。保持时间要保证时序路径中最快的信号也要满足要求(不能在保持时间之前变换),因此称为最小分析。

在理解了裕量的概念之后,我们可以开始研究“裕量”究竟应该怎么进行计算了。

建立时间裕量

         在图示的时序路径中,Clock是时钟源的时钟,由于布局布线等因素,该时钟上升沿到达reg1的时钟端口Clock1时会有一小段延时,Clock1的上升沿也被我们称为启动沿。

从启动沿到寄存器Q输出数据还有一小段延时,即,并且数据经过寄存器间的数据通路时还会有一小段延时,即。因此我们可以得出:

数据到达时间 =时钟基准(0ns)+ (3.2ns)++(0.8ns) = 4ns

同理,很容易计算数据被捕获的时间边界为:

数据锁存时间 = 时钟基准2(10ns)+(2ns) - 建立时间(1.4ns)= 10.6ns

因此可以知道,

建立时间余量 =  数据锁存时间 - 数据到达时间 = 6.6ns(即图中蓝色部分)

只要建立时间裕量是正值,则说明我们的设计是符合要求的,如果为负值则说明不满足建立时间的要求,容易产生亚稳态等问题。

保持时间裕量

保持裕量的计算和建立裕量差不多,其核心为:

保持时间裕量 = 数据保持时间 - 数据锁存时间

对于数据保持时间:

数据保持时间 = 数据到达时间(4ns) + 数据周期时间(Sig In = 10ns) = 14ns

对于数据锁存时间:

数据锁存时间 =  时钟基准2(10ns)+(2ns) + 保持时间(1.4ns)= 13.4ns

因此,数据的保持时间裕量:

保持时间裕量 = 数据保持时间 - 数据锁存时间 = 0.6ns

如果保持时间裕量为负,则说明数据在保持时间之前就发生了改变,因此将不满足保持时间的要求。

学习计算裕量的目的

其实,在开发过程中并不需要我们去手工计算裕量,因为EDA软件将帮助我们计算。那为什么我们还要学习裕量的计算呢?其实这就是一种“从哪里来,到哪里去”的道理,我们心中要明白,这个时序裕量是怎么计算的,当我们遇到不满足裕量要求的情况时,我们能明确地知道问题的出处,以及解决问题的方法。

一起学时序分析之建立/保持时间裕量相关推荐

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

    笔者这段时间在找工作中发现,关于时序分析的基础概念,时序关系表达式及时序违例计算几乎是每个IC/FPGA岗位笔试面试的必考内容.就此,从建立保持时间裕量出发,夯实基础.本文主要是对之前转载博客[时序约 ...

  2. Vivado如何计算关键路径的保持时间裕量?

    关于Vivado的建立时间分析,写了两篇,如下: Vivado如何计算关键路径的建立时间裕量?(理论分析篇) Vivado如何计算关键路径的建立时间裕量?(实践篇) 保持时间,就简短一点. 总之,关于 ...

  3. 建立时间裕量与保持时间裕量的简单理解

    之前刚接触FPGA时候,了解到时序约束这一块,遇到一个概念就是建立时间裕量以及保持时间裕量,让人十分费解: 如今秋招已过,也见过许多这种类型的题目,但是大多类似,都是如下模型: 很久以前也有过仔细分析 ...

  4. 建立时间裕量和保持时间裕量

    前面的博客里面有讲解建立时间Tsetup和保持时间Tholdon的概念以及要满足的和时钟之间的关系,这里不再重复,在了解建立时间裕量和保持时间裕量之前我们先来了解一下触发沿Launch Edges 和 ...

  5. FPGA的设计艺术(5)STA实战之时钟偏斜对建立保持时间的影响以及时序报告分析

    前言 本文首发:FPGA的设计艺术(5)STA实战之时钟偏斜对建立保持时间的影响以及时序报告分析. STA回顾 70年代的时序是通过Spice仿真执行的.80年代的时序包括在Verilog仿真中,以确 ...

  6. FPGA的设计艺术(4)STA实战之不同时序路径的建立保持时间计算

    前言 本文首发:FPGA的设计艺术(4)STA实战之不同时序路径的建立保持时间计算 STA定义 STA定义为:时序验证,可确保各种电路时序是否满足各种时序要求. ASIC / FPGA设计流程中最重要 ...

  7. 〖每天学点管理〗——GTD时间管理

    [每天学点管理]--GTD时间管理 什么是GTD时间管理? GTD英文全拼就是get thing done ,中文的意思就是把事情做完,GTD时间管理是由美国作家戴维.艾伦在<搞定>这本书 ...

  8. 时钟抖动(jitter)和时钟偏移(skew)的理解和建立/保持时间slack的计算

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.什么时钟抖动和时钟偏移? 二.包含时钟抖动和时钟偏移的建立/保持时间余量的计算 1.带时钟延迟的计算 2.带时钟抖 ...

  9. 北京矿大计算机考研每年分数线,2021中国矿业大学北京考研国家线公布时间_国家线是多少分...

    中国矿业大学北京考研国家线怎么看?中国矿业大学北京考研国家线是多少分?山西人事考试网整理中国矿业大学北京考研考研国家线怎么看.国家线公布时间.历年中国矿业大学北京考研国家线,希望考生及时关注考研成绩国 ...

最新文章

  1. Oracle 11G RAC:生产环境下架构
  2. python必学的模块_Python必学的模块有哪些?
  3. 应用性能问题解决实际案例
  4. 编写hive udf函数
  5. 【渝粤教育】国家开放大学2018年秋季 0689-22T老年心理健康 参考试题
  6. 天翼云高可用虚拟IP(HAVIP)实践
  7. 搭建IPv6网络环境
  8. (转)C#中 DirectoryEntry组件应用实例
  9. mysql导出表所有数据库,plsql导出所有数据库表
  10. 计算机怎么调整桌面图标的大小,电脑显示器屏幕图标大小如何设置_电脑显示屏内图标大小怎么调...
  11. 我是一只幼鸟,望着那蓝蓝的天空时不时就想翱翔起来
  12. 笔记本电脑使用的11个酷炫技巧
  13. 开发资源总结 (转载)
  14. 【JavaBeans中的属性!】
  15. 配置小程序项目的第一个页面—小程序入门与实战(五)
  16. HTC 重力感应传感器编程资料总结
  17. 【朝花夕拾】Android自定义View篇之(一)View绘制流程
  18. 前端用户关闭浏览器时,后端判断是否退出
  19. 爱奇艺RN低代码引擎:千变万化、快速搭建的万花筒
  20. 一款不错的开源屏幕(窗口)录制软件 CamStudio

热门文章

  1. (附源码)SSM学生档案管理系统JAVA计算机毕业设计项目
  2. 网站分析实战——如何以数据驱动决策,提升网站价值(大数据时代的分析利器)...
  3. 全能android按钮,《按键精灵安卓版全能宝典》
  4. 知乎口碑营销方式有几种?知乎口碑营销可靠性高吗?
  5. 贴片电阻、瓷片电容标号对应的计算方法
  6. NQI质量基础设施一站式服务平台建设,高质量提升系统开发
  7. vue中更换字体,本地存储字体非引用在线字体库
  8. 怎样才能快速地将爱奇艺qsv格式转换成mp4视频
  9. Windows7声卡驱动安装不上问题
  10. 计算机二级在线模拟考试免费,全国计算机等级考试模拟试题集(二级QBASIC).pdf...