文章目录

  • 基本概念
  • 建立时间和保持时间的检查
  • 解决建立时间和保持时间不满足的情况
    • 1.建立时间不满足
    • 2.保持时间不满足

基本概念

  • 建立时间:即setup time,时钟上升沿之前数据要保持稳定的时间。
  • 保持时间:即hold time,时钟上升沿之后数据要保持稳定的时间。
  • 裕量:即Time Slack,如果数据到来的时间点早于建立时间要求的时间点,那么这个时间差称为建立时间的裕量;同理数据变化的点晚于保持时间要求的时间点,那么这个时间差称为保持时间的裕量。裕量≥0,表明数据是可以安全传输的。

建立时间和保持时间的检查

如下图所示,这是典型的时序结构。

解释图中的符号:

  • Tlaunch:时钟源点到第一个触发器的时钟网络延迟,也就是时钟偏斜(skew);
  • Tcapture:为时钟源点到第二个触发器的时钟网络延迟,也就是时钟偏斜(skew);
  • Tck2q:是触发器的延迟,即D端到Q端的延迟,这是由触发器本身的电气特性所决定的;
  • Tcycle:是时钟周期,即时钟频率 1\fclk
  • Tdp:是第一个触发器的输出端到第二个触发器的输入端之间的组合逻辑电路部分的电路延迟;

我们分析这个电路,由下图可看出:
解释上图,第二个触发器要想满足setup time,就必须要满足:

  • 上图中绿色竖线为时钟源点经过延迟,到第二个触发器的时间(对应绿色路径)
  • 对应红色的路径部分,经过组合逻辑,到达第二触发器的Q端,最晚只能到达上图的红色竖线部分,否则就没办法,满足建立时间。

由此,我们可以推迟公式:
Tlaunch + Tck2q + Tdp ≤ Tcapture + Tcycle - Tsetup

因为Tlaunch和Tcapture都表示为时钟偏斜(clock skew),所以我们合并之后就可得:

  • 建立时间约束Tsetup ≤ Tcycle +Tskew - Tdp - Tck2q

  • 保持时间约束Thold ≤ Tdp + Tck2q

其中参数意义:

  • Tclock:也就是时钟偏斜(clock skew);
  • Tck2q:是触发器D端到Q端的延迟;
  • Tcycle:是时钟周期,即时钟频率 1\fclk
  • Tdp:是组合逻辑电路部分的电路延迟;

PS:这里可能你会觉得建立时间有点难记,我多啰嗦一句:

  • Tcycle + Tskew 是表示第二个触发器的时钟到达的时间;
  • Tdp + Tck2q是表示经过第一个触发器+组合逻辑到达的时间;
  • 二者的差值就是建立时间最大的时间要求

解决建立时间和保持时间不满足的情况

由上面推导的不等式,我们可以得出结论:

1.建立时间不满足

当建立时间不满足时,即Tsetup值要大于实际的Tcycle +Tskew - Tdp - Tck2q,为了满足建立时间:

  • 可以通过改进工艺,采取具有更小的Tsetup值的芯片;
  • 采用延迟更低的触发器,降低Tck2q
  • 增大时钟周期Tcycle和时钟偏斜Tskew,但这会降低电路的性能;
  • 尽量减小两个触发器之间的组合逻辑电路的使用,从而降低Tck2q

2.保持时间不满足

当保持时间不满足时,也就是Thold要小于Tdp + Tck2q,可以通过:

  • 理论上,可以增加Tdp和Tck2q来解决,也就是增加触发器的D端到Q端的延时,以及两级触发器之间的组合逻辑电路部分。
  • 目前大部分芯片的Thold时间都可以做到0ns。所以当保持时间不满足时,通常采用的做法是在传输路径上插入buffer,在不影响逻辑功能前提下,只具有增加延迟的作用。

PS:尤其注意,保持时间Thold和时钟频率之间是没有关系,故降低时钟速度不能解决保持时间不满足的问题,很多面试题喜欢在这里挖坑。

解决建立时间与保持时间不满足的问题相关推荐

  1. 关于建立时间与保持时间的本质

    建立时间与保持时间的概念? 建立时间:触发器在时钟上升沿到来之前,其数据输入端的数据必须保持不变的最小时间.保持时间:触发器在时钟上升沿到来之后,其数据输入端的数据必须保持不变的最小时间. 建立时间裕 ...

  2. FPGA中建立时间和保持时间不满足如何解决

    问题: 建立时间和保持时间不满足如何解决 回答一: setup violation 主要就是设法剪掉critical path的delay,要么pipeline,要么retiming,要么把combi ...

  3. 一文解决关于建立时间和保持时间的困惑

    公众号[TechDiary],专注技术分享,手把手教你成为技术大神 之前介绍数字电路复位信号设计的文章中有提到过很多次建立时间.保持时间的概念,事实上建立/保持时间(setup time & ...

  4. 【亚稳态、建立时间和保持时间】亚稳态的产生原因、危害及解决方法

    一.亚稳态的产生原因 如图所示,当 sys_clk 时钟信号上升沿踩到 Rx 信号的变化间隙时,此时输出的 Rx_reg1 信号就会出现亚稳态,其输出信号就会出现震荡.毛刺或者固定在某一电压值,而不是 ...

  5. (8)FPGA面试题触发器满足建立时间和保持时间的原因

    1.1 FPGA面试题触发器满足建立时间和保持时间的原因 1.1.1 本节目录 1)本节目录: 2)本节引言: 3)FPGA简介: 4)FPGA面试题触发器满足建立时间和保持时间的原因: 5)结束语. ...

  6. 静态时序分析-建立时间和保持时间违例分析

    文章目录 单一分析模式 setup公式 hold公式 1.建立时间分析 2.保持时间分析 单一分析模式 时序分析模式分别为:单一分析模式(single mode).最好-最坏分析模式(BC_WC mo ...

  7. 寄存器建立时间与保持时间分析

    首先先介绍几个概念: 建立时间(Tsu):即时钟有效沿到来前数据应该保持的稳定的时间. 保持时间(Th):即时钟有效沿到来后数据应该保持的稳定的时间. 建立时间余量(Tsu_slack):数据要求到达 ...

  8. 【综合】数字IC设计需要考虑的时序参数;Race Hazard;同步系统时序要求;建立时间、保持时间;偏斜;抖动;毛刺、竞争冒险;亚稳态

    [综合]数字IC设计需要考虑的时序参数:Race Hazard:同步系统时序要求:建立时间.保持时间:偏斜:抖动:毛刺.竞争冒险:亚稳态 数字设计时需要考虑的时序参数 传播延迟 propagation ...

  9. javascript requestAnimationFrame 解决 setTimeout、setInterval 时间不准的方法。

    javascript requestAnimationFrame 解决 setTimeout.setInterval 时间不准的方法. 取代 setInterval <!DOCTYPE html ...

最新文章

  1. Struts2笔记——result结果类型
  2. java: -source 1.5 中不支持 diamond 运算符 (请使用 -source 7 或更高版本以启用 diamond 运算符)
  3. 处理数字_3_计算表的行数
  4. 有一说一,确实。。 | 今日最佳
  5. spring-初始化完成后运行指定内容
  6. Linux内核学习-字符设备驱动学习(二)
  7. 【java】java String 源码
  8. echo 单引号和双引号
  9. 入参对象有LocalDateTime类型的参数,swagger该如何传参
  10. Modelbuilder进阶教程
  11. 超详细的springBoot学习教程
  12. 字节码编程 | 使用Javassist生成JavaBean
  13. CUDA组件 -- nvidia driver驱动与toolkit
  14. 服务器损坏文件怎么办,“该文件可能已损坏或者文件所在的服务器没有响应或者该文件是只读的”怎么解决?...
  15. H5纯页面方式手机端实现“扫一扫”功能(不是直接调起摄像头)
  16. 手机php文件怎么修改,安卓手机上pdf文件怎么修改
  17. 微信小程序自带地图_微信小程序API 地图组件控制
  18. 约瑟夫环:设编号为1,2,…n的n个人围坐一圈,约定标号为k的人从1考试报数,数到m的那个人出列,他的下一位又从1开始报数,数到m的那个人又出列,依次类推,直到所有人出列为止
  19. Android Studio使用技巧系列教程(七)
  20. 中国传媒大学计算机与网络安全学院研究生,林卫国 - 中国传媒大学 - 计算机与网络空间安全学院...

热门文章

  1. 教学ppt设计与制作
  2. 安装vm12+CentOS7+Docker以及常见问题解决
  3. ASCII与Unicode
  4. 赶紧收藏,影视剪辑月赚6000多,常用的素材和工具分享
  5. 计算机e盘丢失了,电脑E盘突然不见了怎么找回_电脑的E盘突然不见了的解决方法...
  6. 生化危机4(来生/恶灵古堡IV)DVD/700M发布
  7. Wi-Fi安全与攻击案例分析
  8. 使用智能合约实现自动分账
  9. USNews大学排名遭美国计算机研究学会怒怼,指排名荒谬要求撤回
  10. 中山大学自考网校招生简章