Altifigence Academy

3 / 63 · 概念

基本逻辑门:AND、OR、NOT、BUFFER

将电路符号与真值表对应起来,用多个逻辑门组合条件。

逻辑门定义了所有输入组合的函数

对于输入 a,b∈{0,1}a,b\in\{0,1\},AND 在两者均为 1 时输出 1,OR 在至少一个为 1 时输出 1。NOT 将输入取反取反 将 0 变为 1、1 变为 0 的 NOT 运算。表达式上方的横线表示对其覆盖的整个表达式应用 NOT。了解更多,BUFFER 原样传递逻辑值。实际 BUFFER 也有驱动能力和延迟,这里只考察其逻辑功能。

abANDORNOT aBUFFER a
000010
010110
100101
111101

在布尔代数布尔代数 处理 0、1 及 AND、OR、NOT 的代数。这里的加号通常表示 OR,因此规则与整数加法不同。了解更多中,abab 表示 AND,a+ba+b 表示 OR,a‾\overline a 表示 NOT。因此这里的 1+1=11+1=1 不是整数加法。同样的含义也可写作 a∧ba\land b、a∨ba\lor b、¬a\neg a。

结合符号、输入和真值表阅读

在下方选择 AND 和 OR,逐一检查 00→01→10→11。比较 AND 平直的输入侧、圆弧形的输出侧与 OR 弯曲的输入侧。NOT 用三角形尖端的小圆圈表示反相;BUFFER 是没有该圆圈的三角形。这里采用常见逻辑符号,其他标准也可能使用矩形符号。

切换 AND、OR、NOT、BUFFER
AND · 真值表
aby
000
010
100
111

OR 表示“至少一个”,而非“恰好一个”。两个输入都为 1 时,OR 为 1,而下一课的 XOR 为 0。漏查真值表真值表 完整列出所有可能输入组合及每种组合输出的表格。随时间的变化需要另行通过波形检查。中的一行,就可能错过这个差别。

将条件连接起来就形成了电路

设有使能输入 ee,当两个检测器 a,ba,b 中至少一个激活时输出有效,则电路为:

y=e(a+b)y=e(a+b)

首先由 OR 生成 a+ba+b,再由 AND 将其与 ee 结合。e=0e=0 时,无论检测器状态如何,输出都为 0。三个输入共有 23=82^3=8 种组合,应在真值表的八行中检查规格与实现是否一致。

把表达式的括号读成电路连接
  1. a 与 b: 定义两个检测器的输入值
  2. OR: 至少一个激活:t = a + b
  3. AND: 与使能 e 结合:y = e · t

阅读 RTL 运算符的基本规则

a & b、a | b、~a 分别是按位 AND、OR、NOT。若向量为 a=0010、b=0100,则 a & b=0000;但逻辑条件 a && b 为 1,因为两个向量都非零。一元 &a 是将全部位进行 AND 的归约运算。按位运算、逻辑条件运算和归约运算的结果位宽与含义各不相同。

真值表描述的是输入稳定后的值。符号和表达式正确,并不意味着传播延迟传播延迟 从输入变化到输出稳定为正确值所需的时间。逻辑表达式等价与时间特性是两回事。了解更多或瞬时毛刺会消失。

更改输入

自己试试

在 y=e(a+b) 中,说明 e=0 时四种输入组合为何得到相同结果。若误实现为 y=eab,哪两个输入能暴露错误?

阅读解释

e=0 时,无论 OR 的结果如何,最后的 AND 都输出 0。当 e=1 且 (a,b)=(0,1) 或 (1,0) 时,正确电路输出 1,错误电路输出 0。

你的选择适用于此浏览器,可随时在页脚更改。