数字电路中的危险(如果存在)会导致电路输出的暂时波动。换句话说,数字电路中的危险是电路理想操作中的暂时干扰,如果给定一段时间,它会自行解决。当从输入到输出的不同路径具有不同的延迟时,就会发生这些干扰或波动,因此,输入变量的变化不会立即改变输出,而是在电路构建元件引起的小延迟后出现在输出上,即,逻辑门。
在数字电路中发现了三种不同的危害
- 静电危害
- 动态危险
- 功能危害
我们将在这里仅讨论静态危害以完全理解它。
形式上,当输入的变化导致输出在稳定到其正确值之前暂时发生变化时,就会发生静态危险。根据正确的值,有两种类型的静态危害,如下图所示:
- 静态 1 危险:如果输出当前处于逻辑状态 1,并且在输入更改其状态后,输出在稳定为 1 之前暂时变为 0,则为静态 1 危险。
- 静态 0 危险:如果输出当前处于逻辑状态 0,并且在输入更改其状态后,输出在稳定为 0 之前暂时变为 1,则它是静态 0 危险。
使用 K-map 检测静态危害:
让我们首先考虑静态 1 危险。要检测数字电路的静态 1 危险,请使用以下步骤:
- 步骤 1:记下数字电路的输出,例如Y。
- 第 2 步:绘制此函数Y的 K 映射并注意所有相邻的 1。
- 步骤 3:如果存在任何一对不属于同一组的 1 的单元格(即主要蕴涵),则表明存在静态 1 风险。每个这样的对都是静态 1 危险。
让我们举个例子:
示例——考虑下图所示的电路。
我们有输出,比如说 F,如下:
让我们为这个布尔函数绘制 K-map,如下所示:
用绿色圈起来的一对 1 不是此布尔函数输出提供的分组/配对的一部分。这将在该电路中导致静电 1 危险。
消除静电 1 危害:
一旦检测到,可以通过向函数(电路)引入更多项(逻辑门)来轻松消除静态 1 危险。最常见的想法是在现有的布尔函数添加缺失的组,因为添加此项不会以任何方式影响函数,但会消除危险。由于在上面的例子中,一对被蓝色包围的 1 导致了静态 1 的危险,我们只需将其作为主要蕴涵添加到现有函数,如下所示:
请注意,此函数的最小项数没有区别。原因是静态 1 危险基于我们如何对 K 图中给定的一组 1 对 1(或静态 0 危险为 0)进行分组。因此,它对 K-map 中 1 的数量没有任何影响。电路看起来如下图所示,但为了消除静电 1 危险而进行了更改。
类似地,对于静态 0 危害,我们需要考虑 0 而不是 1,并且如果 K-map 中的任何相邻 0 未分组到可能导致静态 0 危害的同一组中。检测和解决静态 0 危害的方法与我们对静态 1 危害所遵循的方法完全相同,只是在这种情况下我们将使用 POS 代替 SOP,因为我们正在处理 0。