目录
背景介绍?
产生电路误操作的原因主要有:竞争与冒险(产生毛刺、非预期的值),建立时间和保持时间违规(亚稳态等)等。
关于竞争和险象(冒险)的博文已经写了很多:
这五部曲详细的讲解了竞争和险象问题,竞争和险象可能导致毛刺,防止毛刺发生的策略,简单说来有:
1、输出信号使用寄存器消除毛刺
2、.采用格雷码消除毛刺
3、卡诺图消除毛刺(添加冗余逻辑)
这篇博文不是讲解组合逻辑中的毛刺消除方法的文章,这里告一段落。
本博文旨在总结稳态和亚稳态的问题。
什么是亚稳态?
如果触发器的输入电压采样时间过短,即时序不够,则触发器需要花很长时间来实现输出逻辑达到标准电平,也就是说,电路处于中间态的时间变长,使得电路“反应”迟钝,这就是“亚稳态”。(例如输入信号在时钟有效沿的建立时间和保持时间之间改变了,导致不满足触发器的建立时间或保持时间,导致输出有一段时间的不稳定态,就是亚稳态。)
一个触发器一旦进入亚稳态状态,则无法预测触发器的输出电平,也无法预测什么时候可以稳定在某个确定的电平上,此时触发器的输出端Q在较长时间内处于振荡状态,不等于输入端D。稳定之前的这段时间称作决断时间(resolution time)。经过resolution time之后,输出端Q将会稳定在某个电平上,但是这个稳定之后的电平与输入端D是没有关系的。
在同步系统中,如果触发器的建立时间和保持时间不满足,就可能产生亚稳态,此时触发器输出端Q在有效时钟沿之后比较长的一段时间内处于不确定的状态,在这段时间中Q端会出现毛刺,振荡或者固定在某一电压值,而不一定等于数据输入端D的值。这段时间成为决断时间。亚稳态实质是介于“0”和“1”电平之间的一个状态。
亚稳态是触发器的一个固有特性,正常采样也会有一个亚稳态时间。当建立时间和保持时间满足时,触发器会经历采样,亚稳态后,进入一个正确的状态。
这句话值得斟酌,亚稳态是触发器的固有特性,是触发器需要经历的过程,但是正常采样,即使会有一个亚稳态时间,但是亚稳态后,会进入一个正确的状态。于此对比,也即是非正常采样时的亚稳态之后的固定电平不一定是一个正确的状态。
亚稳态是复杂时序电路中无法避免的现象,设计电路时首先要减少亚稳态发生的概率,其次要使系统对产生的错误不敏感。
前者靠同步来实现,后者需要根据不同的设计应用采取不同的处理办法。