竞争与冒险

您所在的位置:网站首页 卡诺图怎么看竞争冒险 竞争与冒险

竞争与冒险

2024-07-12 13:07| 来源: 网络整理| 查看: 265

竞争与冒险不光会出现在实际的电路中,在仿真时也会存在信号竞争。下面我将展开分析。

文章目录 一、电路中的竞争冒险1.竞争冒险的定义2.判断竞争冒险的方法方法一:逻辑代数法方法二:卡诺图法 3.消除竞争冒险的方法 二、仿真时的竞争与冒险。

一、电路中的竞争冒险 1.竞争冒险的定义 竞争: 在组合电路当中,当某个输入变量具有两条以上的路径到达输出端的时候,由于每条路径上的延迟时间的不同,到达终点的时间就会有先有后,这一现象称作竞争。所以这是一个输入级的概念。冒险:组合逻辑电路中有两个输入信号A和B,当A、B同时向相反的逻辑电平跳变(A : 1—> 0 ; B : 0 —> 1),有可能导致输出端可能产生毛刺的现象,称为冒险。这是一个输出级概念。

这里解释一下为了竞争可能会产生毛刺的原因?

例如在与门中,稳态时,只要A为高、B为低,则输出Y为低。如果A由高拉低,同时B由低拉高。注意:有效点位是一个范围值,而非一个确定值。如果B率先达到点位高有效的最低有效点位,则会在极短的时间内使得电路的输出为高,产生一个毛刺(称为1型冒险),这就使得电路的逻辑发生错误。同样的在或门中,如果同时向相反跳变,也可能会产生一个低电位毛刺(称为0型冒险)。 这里我推荐阅读亚稳态的产生和消除就,进一步了解竞争冒险与亚稳态之间的联系。

2.判断竞争冒险的方法 方法一:逻辑代数法

技巧:若某个变量以原变量(A)和反变量(A’)的形式同时出现,就有可能出现冒险现象。

可能产生竞争与冒险的逻辑代数可以化简分为两类:

Y = A · A’ ,产生1型冒险Y = A + A’ ,产生0型冒险

由这两种类型也可以扩展出或非门( Y = (A + A’)’ )和 与非门( Y =(A · A)’ )也存在竞争冒险。

方法二:卡诺图法

技巧:输入变量在卡诺圈上相切处发生电平跳变,可能发生冒险。

如图所示:

当A=1,B=1时,也就是两个卡诺圈相切处,C发生1 —> 0跳变,这就可能发生冒险。

在这里插入图片描述

其他方法

实验法:用实验来检查输出端是否产生毛刺;计算机辅助分析观察法 3.消除竞争冒险的方法

方法一:接入滤波电容

在输出端并接一个滤波电容Cf,可以将毛刺的幅度削弱至有效点平范围之下。

缺点:增加了输出电压波形的上升时间和下降时间,使波形变坏。适合对输出波形前后无严格要求的场合。

方法二:引入选通脉冲

设法得到一个与输入信号同步的选通脉冲,对这个脉冲的宽度和作用时间有严格要求。

方法三:增加冗余项

例如:Y = AB +A’C,在B=C=1的条件下,会产生竞争冒险。通过增加冗余项BC来消除。

由于BC=1,所以Y = AB +A’C + BC成立。

此时,无论A的状态如何变化,都不会引起竞争与冒险。

二、仿真时的竞争与冒险。

采样时发生竞争(delta cycle的存在),会导致采样数据错误。为了避免在RTL仿真中发生信号竞争的问题,可以通过非阻塞赋值或者特定的信号延迟来解决同步问题。也可以使用时钟块来决定信号的驱动和采样的方式,避免采样时的信号竞争。 这里推荐阅读clocking时钟块消除采样时的信号竞争一文; 如果想要更深层次的了解time-slot,推荐大佬的文章time-slot,仿真的竞争与冒险

PS:什么是delta cycle? 在RTL仿真时,由于无法确定具体电路的延迟时间,默认情况下时钟驱动电路时会添加一个无限最小的时间(delta cycle)的延迟,这个延迟要比最小时间单位精度还要小(可以理解成远小于1ps)。 在一个时间片(time - slot)中可以发生很多的事,例如在仿真时输入run0,即让仿真器运行一个delta-cycle的时间。由于各种可能性,clk与被采样数据之间如果只存在若干个delta-cycle的延迟,那么采样就会出问题。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3