亚稳态和毛刺 - Metastability and Hazard(CN)(二)

2024-06-07 14:38

本文主要是介绍亚稳态和毛刺 - Metastability and Hazard(CN)(二),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

我们在芯片设计与调试中,一定曾经遇到过一些诡异的问题。比如芯片的某一部分莫名其妙的复位却并没有故障记录、比如有的问题上下电和复位表现不一。甚至在有的FPGA项目后期,每一次重布局布线都是对人品的考验,祈祷在下一个版本中,Voldemort不会出现。根本原因是多方面的,但是不难发现亚稳态和毛刺的影子。

幸运的是,这些问题难以定位但容易在设计中避免,只需我们在设计中稍加关注即可避免。任何一个成熟的团队都应该有自己的“checklist”。最近的一次检视中,发现一个设计可能同时受亚稳态和毛刺影响。那个有4年经验的工程师漫不经心的说“如果完全照教科书做,的确应该像你说的那样”。与遵守规则同样重要的是对规则的理解

1亚稳态

1.1亚稳态的定义
亚稳态是指触发器无法在某个规定时间段内达到一个确定的状态。当一个触发器进入亚稳态时,该触发器的输出何时能稳定以及会稳定在哪个状态都不能确定。在达到稳定之前的时间,触发器输出一些中间电平或者处于震荡状态,并且这种无用的输出电平可以沿着信号通路上级联的触发器传播下去。


1.2
亚稳态的产生机制

如果触发器的setup timehold time不满足,就可能产生亚稳态,此时触发器的输出端Q在有效时钟沿之后比较长的一段时间处于不确定的状态,这段时间称为决断时间(resolution time)。经过resolution time之后Q端将稳定到0或者1,但究竟是0还是1和输入没有关系。

1是一个处于亚稳态的寄存器的输出的例子。


fig1. oscilloscope sketch of metastable behavior.jpg



1.3
亚稳态的危害与避免

亚稳态会导致逻辑误判,如果发生亚稳态的部位对系统的稳定至关重要同时缺少防错机制,则可能导致系统崩溃(逻辑挂死)。

逻辑误判可以通过特殊设计减轻危害,例如异步fifogray设计。比发生部位本身的逻辑误判更严重的是亚稳态传递。亚稳态传递会扩大故障面,让问题变得复杂。

在完全同步的设计中,CAD工具可以方便的分析每一个触发器的建立保持时间。理论上一个时序完全收敛的纯同步设计不会有亚稳态问题。和有赖于时序分析的完备性,例如所使用的timing mode与实际芯片及其工作条件的吻合度,实际时钟抖动、偏斜与预期是否一致等。扩大时序裕量可以降低亚稳态发生的概率。

当前一个数字芯片上往往有多个时钟域,时钟域之间的异步设计是必不可少的。只要系统中存在异步设计,则亚稳态无法避免,但我们可以尽量限制亚稳态的影响范围并通过特殊的逻辑设计容忍可能的逻辑误判。


1.3.1
缩小亚稳态的影响范围

a.将异步输出寄存器的扇出限制为1

          fig2.handle async input.jpg



如图
2所示,让异步输出寄存器的扇出为1相当于减少了异步路径的条数。

若异步信号有多个输出,则可能因为路径延迟和时钟偏斜导致有的寄存器采到有效值,有的寄存器进入不确定的状态,如图2和图3所示。

                  fig3. disabled wave by async input.jpg


b.异步信号参与逻辑运算前先同步两拍

如图2所示,异步信号直接参与逻辑运算可能会导致亚稳态传递,而先将其用2级寄存器同步则基本可以把亚稳态限制在这2级寄存器内。经过两级触发器同步,在右边的输出将是同步的,而且该输出基本不存在亚稳态。其原理是即使第一个触发器的输出端存在亚稳态,经过一个CLK周期后,第二个触发器D端的电平仍未稳定的概率非常小,因此第二个触发器Q端基本不会产生亚稳态。值得注意的是,这会大大降低亚稳态的发生概率但是并不是说一定不会出现,如果是关键信号,在接下来的设计中采用防错设计依然是必要的。


1.3.2 
通过设计容忍逻辑误判

通过设计容忍逻辑误判的典型例子是异步fifogray设计Fiforam的读写地址是012…连续的,而相邻二进制数的格雷码只相差1bit。也就是,对读写地址来说,任何一个时钟沿只有一个bit跳变,而且这1bit出现暂时的逻辑误判无关紧要。

4是常用的将总线数据传递到异步时钟域的例子。(分析原理,理解电路原理

                        fig4. an example about async bus input.jpg

    

组合逻辑毛刺


2.1
概念

毛刺是一种现象的说法,它的产生归因于组合逻辑的竞争与冒险

竞争:在组合逻辑中,信号经由不同的路径达到某一会合点的时间有先有后,这种现象称为竞争。

冒险:由于竞争而引起电路输出发生瞬间错误现象称为冒险。表现为输出端出现了设计预期之外的窄脉冲,常称其为毛刺


2.2
毛刺的产生机制

组合逻辑的多个输入端到达某一汇合点的时间有先后,导致组合逻辑电路的输出出现瞬间错误。图5是一个动态冒险的例子,即使假设线延迟为0,毛刺依然存在。关于动态冒险和静态冒险本文不作详细解析。

                           fig5. an example of dynamic hazard.jpg



2.3
针对毛刺的设计


与亚稳态不同,在我们的设计中,毛刺几乎是无法避免的。不过有一点相同的是,在一个纯同步的设计中,毛刺不会带来问题。因为针对寄存器的建立保持时间的时序分析是“全路径”的。也就是说,时序分析
EDA工具会认为组合逻辑的输出f在它稳定的时刻才是有效的,保证不会在组合逻辑输出f为毛刺时采样。

当然,这并不是说我们可以高枕无忧了。在包含异步的设计中,毛刺依然可能带来严重的问题。让我们回到文章前面那个工程师遇到的问题吧。

他需要用3个信号组合运算产生一个复位信号,对一个小模块复位。他的HDL代码可以表示为图6中的电路,正确的做法读者应该早已经  知道了,这里就不给出答案了。

                             fig6. circuit suffering from metastability and hazard.jpg


两个基本概念竟然啰嗦了这么长,而且它还引出了另一个同样有意思的问题,复位。又是一个基础但却非常关键的问题。


转自:http://www.cnblogs.com/liuokay/archive/2011/05/28/2061015.html

这篇关于亚稳态和毛刺 - Metastability and Hazard(CN)(二)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1039462

相关文章

IEEE会议投稿资料汇总http://cadcg2015.nwpu.edu.cn/index.htm

最近投了篇IEEE的顶级会议文章,一下是比较有用的一些资料,以供参考。 1.会议主页:http://cadcg2015.nwpu.edu.cn/index.htm     (The 14th International Conference on Computer-Aided Design and Computer Graphics (CAD/Graphics 2015)) 2.I

Hibernate插入数据时,报错:org.springframework.dao.DataIntegrityViolationException: could not insert: [cn.itc

在用junit测试:插入数据时,报一下错误: 错误原因: package junit;import org.junit.Test;import cn.itcast.crm.container.ServiceProvinder;import cn.itcast.crm.dao.ISysUserDao;import cn.itcast.crm.domain.SysRole;

智能码二维码产品标签ZHINENGMA.CN有哪些应用场景?

智能码二维码产品标签的应用场景广泛,涵盖了零售、物流、制造等多个行业,以下是其具体的应用场景: 零售行业 商品标识:提升商品的识别度和品牌形象。库存管理:通过扫描二维码实现快速库存盘点和补货。 物流行业 货物追踪:实时掌握货物的运输状态和位置信息。签收确认:简化签收流程,提高物流效率。 制造业 生产追溯:实现产品从原材料到成品的全流程追溯。质量监控:及时发现并处理生产过程中的质量问题。

安装Visio 2013 :安装程序找不到Office.zh-cn\osetupui.dll

引言 计算机上已经安装Office 2013和Visual Studio 2013,在安装Visio 2013的时候,安装程序提示找不到Office.zh-cn\osetupui.dll,但是在查看Office.zh-cn文件发现有osetupui.dll这个文件。这篇文章就是为了解决这个问题。 解决 这里介绍一种解决方法: 加载Office 2013镜像 首先找到Office 2013

为什么 CNC 加工会产生毛刺?

在现代机械加工领域,CNC(计算机数控)加工以其高精度、高效率的特点被广泛应用。然而,在 CNC 加工过程中,毛刺的产生常常是一个令人困扰的问题。时利和将解析为什么 CNC 加工会产生毛刺呢?   一、刀具磨损   刀具在长时间的使用过程中会逐渐磨损。当刀具磨损到一定程度时,切削刃的锋利度降低,切削力增大,容易在工件表面产生毛刺。例如,铣刀的刀刃变钝后,在铣削加工中,切削刃不能有效地将材料

用智能码二维码zhinengma.cn做设备标牌

智能码二维码用于设备标牌,主要是为了实现设备管理的智能化和精细化,通过为每台设备分配一个唯一的二维码,可以快速获取设备的基本信息,实现设备信息的实时更新和查询,从而提高设备管理的效率和准确性。以下是其相关情况介绍: 智能码二维码用于设备标牌的优势 提高管理效率和准确性:通过扫描二维码,可以快速获取设备的基本信息,避免了手工录入或查阅纸质档案的繁琐操作。增强设备管理的安全性和可追溯性:每个设备都

awesome-python-cn

Python 资源大全中文版 我想很多程序员应该记得 GitHub 上有一个 Awesome - XXX 系列的资源整理。awesome-python 是 vinta 发起维护的 Python 资源列表,内容包括:Web 框架、网络爬虫、网络内容提取、模板引擎、数据库、数据可视化、图片处理、文本处理、自然语言处理、机器学习、日志、代码分析等。由伯乐在线持续更新。 Awesome 系列虽然挺全,

本博客停止更新所有内容转到www.fddcn.cn

www.fddcn.cn 欢迎访问奋斗的IT菜鸟博客

elasticsearch-cn-out-of-box

https://github.com/hangxin1940/elasticsearch-cn-out-of-box/   为elasticsearch集成一些实用插件以及配置的开箱即用的版本。 Dockerfile docker-elasticsearch-cn docker pull hangxin1940/docker-elasticsearch-cn:v2.1.1 elastic

.CN 根域名被攻击至瘫痪,谁之过?

.CN根域名遭受有史以来最大规模DDoS攻击 2013年8月25日凌晨,.CN域名凌 晨出现大范围解析故障,经分析.CN的根域授权DNS全线故障,导致大面积.CN域名无法解析。事故造成大量以.cn和.com.cn结尾的域名无法访 问。直到当日凌晨4点左右,CN根域名服务器的解析才有部分恢复。此后,经CNNIC确认,国家域名解析节点遭受到有史以来规模最大的拒绝服务攻击,导致 访问延迟或中断,部