竞争冒险

竞争冒险的产生及其原因
在没有考虑信号通过导线和逻辑门的传输延迟时间的理想情况下,门电路的输入与输出
为稳定状态。但实际情况是信号通过导线和门电路时,都存在时间延迟;信号发生变化时也有
一定的上升时间或下降时间。这样,同一个门的一组输入信号,由于它们在此前通过不同数目
的门,经过不同长度导线的传输,到达门电路输入端的两个信号,同时向相反的逻辑电平跳变
(一个从1 变为0,另一个从0 变为1),而变化时间有差异的现象称为竞争[3]
在组合逻辑电路中,当输入信号的状态改变时,输出端可能会出现不正常的干扰信号,使
电路产生错误的输出,这种现象称为竞争冒险。对于同一个门电路来说,当有两个输入信号同
时向两个相反的逻辑状态变化时,由于两个输入信号到达开门、关门电平的时间不同,就有可
能在电路的输出端产生干扰脉冲。可见,门电路存在延迟时间是组合逻辑电路产生竞争冒险
现象的根本原因。
毛刺的消除:

1、输出加D 触发器
这是一种比较传统的去除毛刺的方法。原理就是用一个 D 触发器去读带毛刺的信号,
利用 D 触发器对输入信号的毛刺不敏感的特点,去除信号中的毛刺。在实际中,对于简单
的逻辑电路,尤其是对信号中发生在非时钟跳变沿的毛刺信号,去除效果非常的明显。
但是如果毛刺信号发生在时钟信号的跳变沿,D 触发器的效果就没有那么明显了(加 D
触发器以后的输出 q,仍含有毛刺)。另外,D 触发器的使用还会给系统带来一定的延时,
特别是在系统级数较多的情况下,延时也将变大,因此在使用 D 触发器去除毛刺的时候,
一定要视情况而定,并不是所有的毛刺都可以用 D 触发器来消除。

2、信号同步法
设计数字电路的时候采用同步电路可以大大减少毛刺。由于大多数毛刺都比较短(大
概几个纳秒),只要毛刺不出现在时钟跳变沿,毛刺信号就不会对系统造成危害了。因此一
般认为,只要在整个系统中使用同一个时钟就可以实现系统同步。但是,时钟信号在FPGA
器件中传递时是有延时的,我们无法预知时钟跳变沿的精确位置。也就是说我们无法保证在
某个时钟的跳变沿读取的数据是一个稳定的数据,尤其是在多级设计中,这个问题就更加突
出。因此,做到真正的"同步"就是去除毛刺信号的关键问题。所以同步的关键就是保证在时
钟的跳变沿读取的数据是稳定的数据而不是毛刺数据。以下为两种具体的信号同步方法。
(1)信号延时同步法
信号延时法,它的原理就是在两级信号传递的过程中加一个延时环节,从而保证在下一
个模块中读取到的数据是稳定后的数据,即不包含毛刺信号。这里所指的信号延时可以是数
据信号的延时,也可以是时钟信号的延时。

(2)状态机控制
使用状态机也可以实现信号的同步和消除毛刺的目的。在数据传递比较复杂的多模块系
统中,由状态机在特定的时刻分别发出控制特定模块的时钟信号或者模块使能信号,状态机
的循环控制就可以使得整个系统协调运作,同时减少毛刺信号。那么只要我们在状态机的触
发时间上加以处理,就可以避免竞争冒险,从而抑制毛刺的产生。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值