提问人:Kaka Pin 提问时间:1/19/2018 最后编辑:Kaka Pin 更新时间:1/19/2018 访问量:465
查找仅具有 AND、OR 和 NOT 门的布尔电路
finding a boolean circuit with AND, OR and NOT gates only
问:
我正在尝试找到一个带有 AND、OR 和 NOT 门的布尔电路,只是为了计算 ¬((A → ¬B) ∧ (C → A)) 的布尔函数。我的尝试是:
我在两个关节上放箭头的地方(我相信“→或暗示”在函数中的位置)是我想问的,我如何在电路上表示它?如果我走在正确的轨道上,请指导我,因为我是新手。谢谢。
答:
您不能在地图上表示这些点:顶部的点是非法的,因为它将输入连接到中间输出,而底部的点将两个输入连接在一起。
一种方法是将隐含 X → Y 替换为表达式中的逻辑等价物 ¬X ∨ Y,并简化结果:
¬((¬A ∨ ¬B) ∧ (¬C ∨ A))
解决此问题的另一种方法是为表达式构建一个真值表,将其放入 Karnaugh 映射中,然后读取由 AND、OR 和 NOT(规范析取正态形式)组成的简化表达式。
初始表达式:¬((A → ¬B) ∧ (C → A))
让我们分解一下:A→B = ¬AvB 将其应用于您的表达式:
¬((¬Av¬B)∧(¬CvA))
符号的定义:
¬ = NOT v = OR ∧ = AND
现在我们需要分解这个表达式:
- 括号外的 NOT 表示将 NOT 操作应用于括号中的所有内容(实质上是反转值)。我们现在可以忽略这一点,专注于括号中的内容。新表达式:
(¬Av¬B)∧(¬CvA)
同样,这是由另外两个子表达式和手段组成的:将 AND 运算应用于 (¬Av¬B) 的结果和 (¬CvA) 的结果。为此,我们需要为括号中的每个表达式定义逻辑电路。
现在我们已经定义了它们,我们可以回到 (¬Av¬B)∧(¬CvA) 的原始子表达式。现在,这告诉我们使用AND门组合我们制作的逻辑电路的输出。为了更易于理解,让我们让 (¬Av¬B) = E 和 (¬CvA) = F,现在我们有表达式 E∧F 或 E 和 F。见下图。
现在我们已经为表达式 (¬Av¬B)∧(¬CvA) 创建了一个逻辑电路,我们可以将其称为 G。我们最初的表达式是¬((¬Av¬B)∧(¬CvA)),它可以定义为¬(G)或NOT(G),它正在反相(或应用非门)到我们刚刚制作的逻辑电路的输出。见下图:
正如你所看到的,创建一个逻辑电路有多层的“抽象”,这些逻辑电路由分隔表达式的括号定义。这如何帮助。以下是一些可能对您有所帮助的进一步阅读链接:
布尔代数: wiki: https://en.wikipedia.org/wiki/Boolean_algebra
Karnaugh 图:https://en.wikipedia.org/wiki/Karnaugh_map
上一个:使用逻辑门设计超级解码器
下一个:如何有效地减少这个逻辑句?
评论