举例说明亚稳态在FPGA中的危害

什么是亚稳态

什么是亚稳态,相信看到这篇文章的同学都已经比较清楚,这里稍微说明一下。在FPGA中最主要的硬件就是D触发器,这里想要彻底搞懂亚稳态需要一点时序概念,即保持时间和建立时间,关于时序约束的知识会在后面的文章中讲,需要的同学可以关注我。假设D触发器的时钟沿与数据沿同时到来,因为不满足触发器的建立时间,有可能会导致D触发器的输出端在0和1中随机选择。然而,这还不是亚稳态最主要的危害,D触发器的输出还有可能是既不是0也不是1的中间态,如果该中间态传输到FPGA的内部,那么就会出现意料之外的情况。

为什么出现亚稳态

同学们从上面应该就可以知道,亚稳态产生的原因是,FPGA的外部输入与时钟沿同时到达了D触发器导致D触发器不能判断输出状态。

举例说明亚稳态的危害

这里我们使用按键输入FPGA为例说明D触发器的危害。如下图:
在这里插入图片描述
从上面的第一个图可以看到,当按键的输入与系统时钟同时到达,D触发器如果把key误判成0,那么按键的下降沿便检测不到,进而会导致FPGA内部的程序发生错误或卡死。

亚稳态的避免方法

首先这里说明亚稳态是电路的特性,我们没法消除,只能尽可能避免亚稳态。最常用的方法就是打拍,也就是对外部输入经过几个D触发器,但是这里需要注意的是,千万不要用到外部输入在D触发的中间信号,否则该方法无效。具体的例子如上图2,我们对按键的输入延迟了一拍,便可以检测到按键的下降沿。

经学者研究,对于变化频率不太高的外部输入信号,一般打两拍便可以尽可能避免亚稳态。这里注意,亚稳态只是对FPGA的外部输入信号来说的,因为FPGA内部的D触发器的设计不会使得D触发器的时钟沿和数据沿同时变化,除非时序不满足,但这是另一个问题,不在这篇文章中讨论。

结束语

创作不易,认为文章有帮助的同学们可以收藏点赞支持。对文章有什么看法或者需要更近一步交流的同学,可以加入下面的群:
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值