购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.8 毛刺产生及消除

传播延迟不仅限制电路工作的速度,它们也会在输出端引起不期望的跳变,这些不期望的跳变称为“毛刺”。当其中一个信号发生改变时,将会给信号提供两条或更多的电流路径,并且其中一条路径的延迟时间比其他路径长。当信号路径在输出门重组时,这个在一条路径上增加的时间延迟会产生毛刺。如图1.109所示,当一个输入信号通过两条路径或多条路径驱动一个输出,其中一条路径有反相器而另外一条没有时,通常会出现非对称的延迟。对图1.109所示的电路执行SPICE瞬态分析的结果如图1.110所示。从图1.110中可知,所有的逻辑门都会对输入逻辑信号添加一些延迟,延迟量由它们的结构和输出时延决定。这个例子使用一个反相器来清楚地说明反相器在产生输出毛刺时的作用。

图1.109 包含反相器会产生毛刺的组合逻辑电路

读者需要注意的是,不管延迟时间多长,都会产生毛刺。仔细观察图1.110,可以清楚地知道反相器时延与输出毛刺之间的关系。

图1.110 对图1.109所示的电路执行SPICE瞬态分析的结果

注: (1)读者进入本书配套提供例子的\eda_verilog\glitch.ms14路径下,用Multisim 14工具打开该设计,执行仿真,观察仿真结果。

(2)对图1.110进行局部放大,进一步观察信号延迟和毛刺之间的关系。

如图1.111所示,当一个逻辑输入变量用于两个乘积项(或者 POS 表达式的两个和项),以及在其中一项中有反相器而另一项中没有时,将会产生毛刺。在该卡诺图中,两个圆圈确定了最简逻辑表达式。B·C独立于A,即如果变量B和C都为逻辑“1”时,那么不管A如何变化输出,都是逻辑“1”。同样, 也独立于C,即如果变量A为逻辑“1”且变量B为逻辑“0”时,不管C如何变化输出,都是逻辑“1”。但是,如果变量A为逻辑“1”,变量C为逻辑“1”时,输出总是逻辑“1”,并且与B没关系。但是,没有任何一个驱动输出的信号项独立于B。这是问题的所在之处。当变量A和变量C都为逻辑“1”时,两种不同的积项使输出保持为逻辑“1”,即一种是当变量B为逻辑“1”(B·C);另一种是当变量B为逻辑“0”(A· )。所以,当变量B变化时,两种不同的积项必须在输出时重组,以保持输出为高,这就是引起毛刺的原因。

图1.111 毛刺的卡诺图表示

可以通过原理图、卡诺图或者逻辑等式验证电路产生毛刺。在原理图中,输入后面有多条到达输出的路径,并且其中一条路径包含反相器而其他路径没有这样就会产生毛刺。在卡诺图中,假如画的圈是相邻的但不重叠,那么那些没有被圈圈住的相邻项将有可能产生短时脉冲干扰。如图1.112所示,图1.112(a)表示的逻辑电路会产生毛刺,而图1.112(b)和图1.112(c)表示的逻辑电路不会产生毛刺。

图1.112 毛刺的卡诺图分析

如果两项或更多的项包含了同一个逻辑信号,并且这个信号在一项中取反,但在其他项不取反,那么就可以在逻辑等式中识别毛刺。为了讨论这个问题,每一对包含一个信号变量的项称为“耦合项”,其中这个信号变量在其中一项里取反,在另一项里不取反,这个取反/不取反的变量是“耦合变量”,其他的变量称为“残留项”。下面给出例子:

该逻辑表达式没有耦合项,不会产生毛刺。

该逻辑表达式有耦合项,会产生毛刺。

该逻辑表达式有耦合项,会产生毛刺。

在某些应用中,当耦合变量改变状态时,期望移除毛刺来保持输出稳定。如图1.111所示,只有当变量B和C同时为逻辑“1”时才会使Y产生毛刺。这种情况可以推广,对于毛刺的产生,一个逻辑电路必须对驱动所有输入到适当电平的耦合变量“很敏感”,这样就只有耦合变量可以影响输出。在一个SOP电路中,意味着除耦合输入外所有的输入必须被驱动到“1”,这样它们对第一级与门的输出就不会产生影响。

图1.113 添加冗余项消除毛刺

这种情况为逻辑电路消除毛刺提供了一个直观的方法,即将所有多余的输入信号组合到一个新的第一级的逻辑输入(如SOP电路的与门),并将这个新增加的门添加到电路中。例如,逻辑表达式:

耦合项是A,多余项可以组合成B·C项的形式,将这项添加到电路中,构成下面的等式:

如图1.113所示为上述逻辑表达式的卡诺图。注意原等式是最小逻辑表达式,为了不产生毛刺,在最小逻辑表达式中添加了一个冗余项。

总是这样,即消除毛刺需要一个更大的具有冗余逻辑项的电路。实际中,大多数设计都偏向于设计一个最小电路,并用其他方法(后面的模型中讨论)处理毛刺。也许最好的教学方法是意识到在一般情况下,组合电路的输入无论何时变化,都可能产生毛刺(至少,在未证明之前)。

在如图1.112(a)所示的问题中,原始的SOP 表达式画圈并没有重叠,这就是毛刺潜在的特点。当增加了冗余项的圈时,每个圈至少重叠其他一项,这样就不会产生毛刺。

如图1.112(c)所示,如果在不相邻的卡诺图单元中存在不重叠的圈,即没有耦合项,没有耦合变量,那就不可能增加一个或多个圈使所有的圈至少有一个和其他的圈重叠。在这样的情况下,输入信号改变不会引起毛刺。在这种类型的电路中,两个或更多的输入可能“在同一时刻”直接改变状态,该图所表示的方程式为

在电路中,可能希望所有的输入变量同时从逻辑“0”变化到逻辑“1”。作为响应,输出持续保持为逻辑“1”。实际中,不可能同时改变所有的输入(至少,在一个皮秒内)。因此,输出变量会在输入变量不同时变化的时间段内出现毛刺跳变。像这样不期望的跳变不能通过增加多余项消除。当然,必须通过重定义电路或采样进行处理。此处,将进一步处理由于多输入变化引起的不期望的输出跳变。

到目前为止,大部分讨论的毛刺都是关于SOP 的电路。但是,POS的电路现象也是一样的。POS电路出现毛刺的原因与SOP 电路(到达多输入门的一个输入的不对称的路径延迟)一样。正如所期望的,需要的条件相似,但是和SOP电路的情况不完全相同。

这些简单的实验证明了门延迟对数字电路的基本影响,即输入变量的跳变可能使输出变量产生毛刺,通过不对称电路路径延迟提供输入形成输出。在更一般的情况下,任何时候一个输入变量通过两条不同的电路路径,并且这两条路径在电路的“下游”节点重组,就可能产生像毛刺一样的时间问题。再者,这里是为了意识到信号在逻辑电路中传输时消耗的时间,不同的电路路径具有不同的延迟。在某些特定的情况下,这些不同的延迟可能出现问题。

思考与练习1-41: 请分析下面的逻辑表达式是否会产生毛刺,以及能否消除毛刺。

思考与练习1-42: 图1.114给出的电路是在图1.109的基础上添加了额外的逻辑门,用于消除潜在的毛刺,请读者说明该电路的原理,并对该电路执行SPICE瞬态分析,观察分析结果,看看是否去除毛刺。

图1.114 可以消除毛刺的组合逻辑电路

注: 读者进入本书配套提供例子的\eda_verilog\glitch_remove.ms14路径下,用Multi-sim 14工具打开该设计,执行仿真,观察仿真结果。 mk6W4GB0rinDkTnmNKodckbLhzaPx7FocCXlSvnInwEla+S++TWh2dj3gLmfnZ41

点击中间区域
呼出菜单
上一章
目录
下一章
×