章节内容概述重点程度
Ch.5 Combinational Logic Analysis 组合逻辑分析电路分析和实现
Ch.6 Functions of Combinational Logic 组合逻辑电路加法器、选择器、译码器等

5 组合逻辑分析

5.1~5.2 组合逻辑电路

  • 与-或逻辑:产生乘积项之和表达式
  • 与-或-非逻辑:产生和项表达式
  • 异或逻辑:异或门实际上是与门、或门、非门的组合 $$A \oplus B = A \overline{B} + \overline{A}B$$
  • 同或逻辑:同或门也是与门、或门、非门的组合 $$\overline{A \oplus B} = \overline{A \overline{B} + \overline{A}B} = AB + \overline{A}·\overline{B}$$

5.3~5.4 使用与非门和或非门的组合逻辑

  • 与非门可以产生任意逻辑函数:
    • $\overline{A} = \overline{AA}$:将 $A$ 连接到两个输入内
    • $AB = \overline{\overline{AB}}$:连用两次取反
    • $A + B = \overline{\overline{A}·\overline{B}}$:先对 $A, B$ 取反,再用一个与非门
    • $\overline{A + B} = \overline{\overline{\overline{A}·\overline{B}}}$:先对 $A, B$ 取反,再用一个与非门,再取反
  • 或非门可以产生任意逻辑函数:
    • $\overline{A} = \overline{A + A}$:将 $A$ 连接到两个输入内
    • $A + B = \overline{\overline{A + B}}$:先用一个或非门,再取反
    • $AB = \overline{\overline{A} + \overline{B}}$:先对 $A, B$ 取反,再用一个或非门
    • $\overline{AB} = \overline{\overline{\overline{A} + \overline{B}}}$:先对 $A, B$ 取反,再用一个或非门,再取反
  • 与-或逻辑电路转与非逻辑电路:先转与非/非-或电路,然后将非-或门转成与非门
  • 或-与逻辑电路转或非逻辑电路:先转或非/非-与电路,然后将非与-门转成与非门
  • 双重符号:
    • 对于使用与非门的逻辑框图,需要用与非门或者等价的非-或符号来表示每一个门,来表示与-或逻辑运算。
    • 对于使用或非门的逻辑框图,需要用或非门或者等价的非-与符号来表示每一个门,来表示与-或逻辑运算。

6 组合逻辑电路

6.1~6.3 加法器

  • 半加器 (Half Adder):实现两数相加,产生和与进位 $$ \begin{aligned} \Sigma &= A \oplus B = A \overline{B} + \overline{A} B \\ C_{out} &= AB \end{aligned}$$
  • 全加器(Full Adder):给定输入进位,实现两数相加,产生和输出与进位输出 $$ \begin{aligned} \Sigma &= A \oplus B \oplus C_{in} \\ C_{out} &= AB + AC_{in} + BC_{in} = AB + (A \oplus B) C_{in} \end{aligned}$$
  • 用两个半加器实现全加器:视作三个数相加。将第一个半加器的和与第三个输入继续相加,而进位输出则是两个半加器进位输出的或。
  • 并行加法器:将低位的进位输出作为高位的进位输入,即可计算多位二进制加法
  • 4 位并行加法器芯片:74XX283
  • 加法器级联:将低位加法器的进位输出作为高位加法器的进位输入即可(异步进位)
  • 异步进位加法器:将每个全加器的进位输出连接到下一个高一级全加器的进位输入。
    • 这样的电路会造成加法过程的时间延迟,延迟时间正比于全加器的数量。
  • 超前进位加法器:直接计算每个进位输出关于 $A, B$ 的逻辑表达式
    • 进位生成和传输:$C_{g,i} = A_iB_i$,$C_{p,i} = A_i + B_i$,判断是否可以产生或传递进位
    • 进位输出:$C_{out,i} = C_{g, i} + C_{p, i} C_{in, i}$,要么当前位生成,要么从低位进位传递而来
    • 进位传递:$C_{in, i} = C_{out, i - 1}$,全加器级联
    • 这样的电路可以立即获得所有位的进位,除了门电路的延迟。

6.4 比较器

  • 相等:$X = \overline{A_0 \oplus B_0} · \overline{A_1 \oplus B_1} \cdots \overline{A_{n - 1} \oplus B_{n - 1}}$,使用同或门 + 与门(或者异或门 + 与非门)
  • 不相等:从高到低依次比较,高位均相等,到某一位不相等的时候,根据 $A\overline{B}, \overline{A}B$ 的情况输出电平。
  • 4 位大小比较器芯片:74XX85

6.5~6.7 译码器、编码器、代码转换器

  • 译码器:
名称功能原理对应芯片
基本二进制译码器
(译码门)
判断输入是否为某个二进制数用一个与函数即可实现
三八译码器
四十六译码器
判断输入是否为某个二进制数需要使用 8 / 16 个译码门74XX138
74XX154
BCD-十进制译码器将 BCD 码转换为十进制数输出需要使用 10 个译码门74XX42
BCD-7段译码器将 BCD 码转换为 7 段码的输出需要使用 7 个译码门74XX47
  • 注意在 74XX47 中,可以灭零(删除前导零 / 后导零),对应功能接口为 $\overline{RBI}, \overline{BI} / \overline{RBO}$ 的级联。
  • 编码器:
名称功能原理对应芯片
十进制 - BCD 编码器将十进制数输入转换为 BCD 码用多个或门即可实现
十进制 - BCD 优先编码器功能相同。但是可以按照最高位的十进制数有效输入来产生输出74XX147
  • 代码转换器:
    • BCD - 二进制转换:将 BCD 码中的每个位为 $1$ 对应的权表示的二进制数 $2^i \times 10^j$ 相加,这个可以用多个加法器实现。
    • 二进制 - 格雷码转换:$G_{n - 1} = B_{n - 1}, G_{i} = B_{i + 1} \oplus B_i$,可以使用多个异或门实现。
    • 格雷码 - 二进制转换:$B_{n - 1} = G_{n - 1}, B_i = B_{i + 1} \oplus G_{i}$,可以使用多个异或门实现。

6.8~6.9 多路复用器、多路分配器

  • 多路复用器 (MUX):数据从多条数据线传送到一条线路上。可以使用与-非逻辑实现
    • 如四选一数据选择器 $Y = D_0\overline{S_1}\overline{S_0} + D_1 \overline{S_1} S_0 + D_2 S_1 \overline{S_0} + D_3 S_1 S_0$
    • 对应芯片 74XX153(双四选一数据选择器)、74XX151(八选一数据选择器)、74XX157(四二选一数据选择器)
  • 逻辑函数发生器:将真值表对应的数据线设为对应的高/低电平,那么地址输入作为变量输入,则输出的就是对应的逻辑函数值
  • 多路分配器 (DEMUX):数据从一条数据线传送到多条数据线上。可以使用多个与门实现
    • 如一四多路分配器:$D_0 = D\overline{S_1}\overline{S_0}, D_1 = D\overline{S_1} S_0, D_2 = D S_1 \overline{S_0}, D_3 = DS_1 S_0$
    • 将译码器的片选输入作为 $D$ 的输入,即可做到多路分配器。

6.10 奇偶发生器/校验器

  • 奇偶校验就是将所有位取异或函数,看是否为 $0 / 1$
  • 奇偶校验器:对应芯片 74XX280
  • 奇偶发生器:如果是偶发生器,则取 74XX280 的奇数输出作为偶校验位;如果是奇发生器,择取 74XX280 的偶数输出作为奇校验位。