首页 > 其他分享 >【《硬件架构的艺术》读书笔记】01 亚稳态的世界

【《硬件架构的艺术》读书笔记】01 亚稳态的世界

时间:2022-11-12 22:46:38浏览次数:48  
标签:触发器 01 读书笔记 同步器 MTBF 亚稳态 信号 时钟

听说这本书对数字IC设计中的常见问题讲的非常清楚易懂,看了目录感觉确实都是数字设计中一些关键问题,而且一共才217页,争取这个月看完吧。

书的PDF资源:

链接:https://pan.baidu.com/s/1b981albw_aZwLOhBvlHqpw
提取码:80zc

1.1简介

同步系统中如果数据和时钟满足建立保持时间的要求,不会发生亚稳态(meastable)。

异步系统中数据和时钟关系不固定,可能违反建立保持时间,就会输出介于两个有效状态之间的中间级电平,且无法确定停留在中间状态的时间,或者过了一定的延迟后才能正常转换,这就是亚稳态。

1.2亚稳态理论

亚稳态产生原因:违背了触发器的建立时间和保持时间。

现象:触发器的输出产生毛刺,或者暂时保持在不稳定状态且需要较长时间才能回到稳定状态。

 

tsu:建立时间(setup)

th:保持时间(hold)

tco:时钟到输出的延迟(clock-to-output delay)

tMET:亚稳态输出恢复到稳定状态所需的超过tco的额外时间部分(settling time)

 

 并非所有不满足建立时间和保持时间的输入变化都会导致亚稳态,还取决于生产工艺和外界环境。

一般来说,触发器会在一两个周期返回稳态。

同步失败:信号再一个时钟域里变换,在另一个时钟域内采样,导致输出变成亚稳态。

1.3亚稳态窗口

 

 

 这里书上讲亚稳态窗口内信号和时钟都应该保持不变,但是这里时钟肯定是上升沿呀,怎么可能不变,我理解的应该只是数据不变。

窗口越大,进入亚稳态概率越高,一般新器件会有更小的亚稳态窗口。

1.4计算MTBF

MTBF(Mean/Average Time Between Failures,平均无故障时间),即故障率倒数.

 

 

 公式成立条件:给定时钟频率,在该时钟周期内具有均匀概率密度的异步数据信号边沿的单级同步器。

 

 

 两级同步器:

 

可以看出,增大同步级数可以显著提高MTBF

1.5避免亚稳态

以下条件中,信号可能违背时序要求。

 

 

 亚稳态不能根除,但是可以减小亚稳态发生的概率。

最简单的情况下减小亚稳态概率的方法:确保时钟周期足够长,但是会影响性能,并不实用。

另一种方法是使用同步器。

1.5.1使用多级同步器

避免亚稳态最常见的方法:在跨时钟域的信号上加一个或多个同步触发器。

缺点:增加了观察同步逻辑输入的延迟。

1.5.2使用时钟倍频电路的多级同步器

多级同步器缺点:系统需要花较长时间去响应异步输入。

解决方法:使用倍频时钟作为两个同步触发器的时钟输入。Altera的FPGA中就具有这项技术。

 

这样不仅能让系统一个周期响应一个异步输入,而且改善了MTBF。然而倍频时钟会降低MTBF,这个影响比两个触发器引起的偏移量要大。

1.6亚稳态测试电路

 

 

 

 当发生亚稳态时,异或非门会输出高电平,所以FFD捕捉到高电平就代表检测到亚稳态,时序图如下。

 

 

由于中间两个触发器是下降沿触发,所以高电平时间减去FFA的tco和FFB和FFC的建立时间等于稳定时间tMET

 

 

 1.7同步器的类型

一个异步信号不应被两个或者多个同步器所同步,一开始不太理解这句话,google了一下:一个信号扇出到多个同步器之后同步所需的时间不同,可能出现竞争冒险。

模式A当异步输入信号比时钟周期大得多时最有效:(这里书上两幅图总感觉有问题,根据书上描述的确定是给反了,迷惑了好久。。。)

 

 

模式B:第一级触发器输入直接与Vcc相连,输入信号直接连触发器时钟。输入信号短脉冲把q1置为1之后,便会一直保持,直到输出高电平。

 

 

总结:

1、信号跨时钟,要采用同步器。

2、clk1<clk2,采用模式A,否则采用模式B。

 

 

 1.8亚稳态/综合性建议

 

 

 这里面abde都很好理解,无非就是针对MTBF公式各个因子的优化,c亚稳态硬化触发可以理解为针对亚稳态专门优化设计的一种触发器,f则是增大输入信号摆率,使信号不稳定的时间减少。

 

第一章看完感觉有点蒙,感觉很多问题都没讲清楚,不像是之前看的国外书那种特别详细的模式,感觉有点像国内教材,就直接把结论告诉你。。。。碰到问题最好google,百度全是csdn各种复制粘贴怪。

标签:触发器,01,读书笔记,同步器,MTBF,亚稳态,信号,时钟
From: https://www.cnblogs.com/magnolia666/p/16884915.html

相关文章

  • L01.linux技术-bond
    一、bonding技术bonding(绑定)是一种linux系统下的网卡绑定技术,可以把服务器上n个物理网卡在系统内部抽象(绑定)成一个逻辑上的网卡,能够提升网络吞吐量、实现网络冗余、负......
  • 卡巴斯基发布2016年2季度DDoS报告:Linux僵尸网络“挑大梁”
     据外媒报道,Linux僵尸网络已占2016年2季度发起的“分布式拒绝服务攻击”(DDoS)中的70.2%。过去三个月时间里,安全研究人员发掘出了运行基于Linux的固件、能够发起DDoS攻击、......
  • 102、网络学习-Vlan的知识——2022年11月12日22:01:33
    Vlan的知识2022年11月12日21:23:53https://www.bilibili.com/video/BV1ZT411j7Tj?p=12&vd_source=8ab0c2a7dfdc563f1e313e6d3cead7ca1、概念:VLAN(VirtualLAN),翻译成中文......
  • 洛谷P5309 Ynoi 2011 初始化 题解
    题面。我也想过根号分治,但是题目刷得少,数组不敢开,所以还是看题解做的。这道题目要用到根号分治的思想,可以看看这道题目和我的题解。题目要求处理一个数组a,支持如下操作......
  • java——继承与多态——继承001
    继承的概述:          继承的格式:            继承中成员变量的访问特点:              ......
  • java——静态static关键字001
    stataic关键字概述:           static关键字修饰成员变量:              static关键字修饰成员方法:    ......
  • kubernetes-001
    1、介绍kubernetes(简称K8S)是一个以“应用”为中心,管理容器生命周期,容器之间关系,集群资源调度的容器编排工具,是一个面向平台的平台。为什么要简称K8S呢? 1、字母k和字母s中间......
  • 2022-2023-1 20221401 《计算机基础与程序设计》第十一周学习总结
    2022-2023-120221401《计算机基础与程序设计》第十一周学习总结作业信息这个作业属于哪个课程<班级的链接>https://edu.cnblogs.com/campus/besti/2022-2023-1-CFA......
  • Java——对象和类—封装001
                                                        ......
  • [Ynoi2010] y-fast trie
    [Ynoi2010]y-fasttrie思路考虑在插入所有元素的时候对\(C\)取模。那么可以分类讨论了:\(0\leqx+y<C\)\(x+y\geqC\)考虑第二种情况等价于取集合中前两大的数,可......