在没有考虑信号通过导线和逻辑门的传输延迟时间的理想情况下,门电路的输入与输出
为稳定状态。但实际情况是信号通过导线和门电路时,都存在时间延迟;信号发生变化时也有
一定的上升时间或下降时间。这样,同一个门的一组输入信号,由于它们在此前通过不同数目
的门,经过不同长度导线的传输,到达门电路输入端的两个信号,同时向相反的逻辑电平跳变
(一个从1
在组合逻辑电路中,当输入信号的状态改变时,输出端可能会出现不正常的干扰信号,使
电路产生错误的输出,这种现象称为竞争冒险。对于同一个门电路来说,当有两个输入信号同
时向两个相反的逻辑状态变化时,由于两个输入信号到达开门、关门电平的时间不同,就有可
能在电路的输出端产生干扰脉冲。可见,门电路存在延迟时间是组合逻辑电路产生竞争冒险
现象的根本原因。
毛刺的消除:
利用 D 触发器对输入信号的毛刺不敏感的特点,去除信号中的毛刺。在实际中,对于简单
的逻辑电路,尤其是对信号中发生在非时钟跳变沿的毛刺信号,去除效果非常的明显。
触发器以后的输出 q,仍含有毛刺)。另外,D 触发器的使用还会给系统带来一定的延时,
特别是在系统级数较多的情况下,延时也将变大,因此在使用 D 触发器去除毛刺的时候,
一定要视情况而定,并不是所有的毛刺都可以用 D 触发器来消除。
2、信号同步法
概几个纳秒),只要毛刺不出现在时钟跳变沿,毛刺信号就不会对系统造成危害了。因此一
般认为,只要在整个系统中使用同一个时钟就可以实现系统同步。但是,时钟信号在FPGA
器件中传递时是有延时的,我们无法预知时钟跳变沿的精确位置。也就是说我们无法保证在
某个时钟的跳变沿读取的数据是一个稳定的数据,尤其是在多级设计中,这个问题就更加突
出。因此,做到真正的"同步"就是去除毛刺信号的关键问题。所以同步的关键就是保证在时
钟的跳变沿读取的数据是稳定的数据而不是毛刺数据。以下为两种具体的信号同步方法。
个模块中读取到的数据是稳定后的数据,即不包含毛刺信号。这里所指的信号延时可以是数
据信号的延时,也可以是时钟信号的延时。
统中,由状态机在特定的时刻分别发出控制特定模块的时钟信号或者模块使能信号,状态机
的循环控制就可以使得整个系统协调运作,同时减少毛刺信号。那么只要我们在状态机的触
发时间上加以处理,就可以避免竞争冒险,从而抑制毛刺的产生。