[数字逻辑] 全加器的多种电路设计方案

0x00 全加器

全加器是根据被加数 A i A_{i} Ai、加数 B i B_{i} Bi与低位进位 C i − 1 C_{i-1} Ci1计算出本位和 S i S_{i} Si与进位 C i C_{i} Ci。其真值表如下:

A i A_{i} Ai B i B_{i} Bi C i − 1 C_{i-1} Ci1 S i S_{i} Si C i C_{i} Ci
0 0 0 0 0
0 0 1 1 0
0 1 0 1 0
0 1 1 0 1
1 0 0 1 0
1 0 1 0 1
1 1 0 0 1
1 1 1 1 1

0x01 与非门、异或门

通过真值表,我们可以化简得到以下两条逻辑表达式:
S i = A i ⊕ B i ⊕ C i − 1 S_{i}=A_{i} \oplus B_{i} \oplus C_{i-1} Si=AiBiCi1
C i = ( A i ⊕ B i ) C i − 1 ‾ ⋅ A i B i ‾ ‾ C_{i}=\overline{\overline{(A_{i} \oplus B_{i})C_{i-1}} \cdot \overline{A_{i} B_{i}}} Ci=(AiBi)Ci1AiBi
根据表达式可以构建使用与非门以及异或门组成的全加器:
[数字逻辑] 全加器的多种电路设计方案_第1张图片
总计5个门电路,其中2个双输入异或门,3个双输入与非门,可以使用74LS86与74LS00。这是使用基础门电路实现全加器最简单的方案之一。

0x02 与非门

异或门可以使用4个与非门来实现,我们只需要对上文中的异或门进行替换便可:
A ⊕ B = A B ‾ + A ‾ B = A A B ‾ + A B ‾ B = A A B ‾ ⋅ A B ‾ B ‾ A \oplus B=A\overline{B}+\overline{A}B=A\overline{AB}+\overline{AB}B=\overline{A\overline{AB}\cdot \overline{AB}B} AB=AB+AB=AAB+ABB=AABABB
替换后的逻辑表达式为:
A i ⊕ B i = A i B i ‾ ⋅ A i ‾ ⋅ A i B i ‾ ⋅ B i ‾ ‾ A_i \oplus B_i=\overline{\overline{\overline{A_iB_i} \cdot A_i}\cdot\overline{\overline{A_iB_i} \cdot B_i}} AiBi=AiBiAiAiBiBi
S i = A i ⊕ B i ⋅ C i − 1 ‾ ⋅ C i − 1 ‾ ⋅ A i ⊕ B i ⋅ C i − 1 ‾ ⋅ A i ⊕ B i ‾ ‾ S_{i}=\overline{\overline{\overline{A_i \oplus B_i\cdot C_{i-1}}\cdot C_{i-1}}\cdot\overline{\overline{A_i \oplus B_i\cdot C_{i-1}}\cdot A_i \oplus B_i}} Si=AiBiCi1Ci1AiBiCi1AiBi
C i = A i ⊕ B i ⋅ C i − 1 ‾ ⋅ A i B i ‾ ‾ C_{i}=\overline{\overline{A_i \oplus B_i \cdot C_{i-1}} \cdot \overline{A_{i} B_{i}}} Ci=AiBiCi1AiBi
根据这一逻辑表达式,我们可以先在电路中使用4个与非门求出异或,再使用异或的结果进行下一步计算,所做电路图如下:
[数字逻辑] 全加器的多种电路设计方案_第2张图片
只需要使用与非门74LS00。

0x03 二位二进制译码器

通过真值表,可以轻松得到以下两条逻辑表达式:
C i = m 3 ‾ ⋅ m 5 ‾ ⋅ m 6 ‾ ⋅ m 7 ‾ ‾ C_{i}=\overline{\overline{m_3} \cdot \overline{m_5} \cdot \overline{m_6} \cdot \overline{m_7}} Ci=m3m5m6m7
S i = m 1 ‾ ⋅ m 2 ‾ ⋅ m 4 ‾ ⋅ m 7 ‾ ‾ S_{i}=\overline{\overline{m_1} \cdot \overline{m_2} \cdot \overline{m_4} \cdot \overline{m_7}} Si=m1m2m4m7
译码器第 i i i个位置输出的值为 m i ‾ \overline{m_i} mi,只需要将对应的输出再进行一次与非即可。
对应的使用二位二进制译码器的电路如下:
[数字逻辑] 全加器的多种电路设计方案_第3张图片
需要使用到二位二进制译码器74139与四输入与非门74LS20以及二输入与非门74LS00。

0x04 四选一多路选择器

S i = A i ‾ ⋅ B i ‾ ⋅ C i − 1 + A i ‾ ⋅ B i ⋅ C i − 1 ‾ + A i ⋅ B i ‾ ⋅ C i − 1 ‾ + A i ⋅ B i ⋅ C i − 1 S_i=\overline{A_i}\cdot\overline{B_i}\cdot C_{i-1}+\overline{A_i}\cdot B_i\cdot \overline{C_{i-1}}+A_i\cdot\overline{B_i}\cdot \overline{C_{i-1}}+A_i \cdot B_i \cdot C_{i-1} Si=AiBiCi1+AiBiCi1+AiBiCi1+AiBiCi1
C i = A i ‾ ⋅ B i ‾ ⋅ 0 + A i ‾ ⋅ B i ⋅ C i − 1 + A i ⋅ B i ‾ ⋅ C i − 1 + A i ⋅ B i ⋅ 1 C_i=\overline{A_i}\cdot\overline{B_i}\cdot 0+\overline{A_i}\cdot B_i\cdot C_{i-1}+A_i\cdot\overline{B_i}\cdot C_{i-1}+A_i \cdot B_i \cdot 1 Ci=AiBi0+AiBiCi1+AiBiCi1+AiBi1
四选一多路选择器会根据 i = B ∗ 2 + A i=B*2+A i=B2+A选择第 i i i个输入作为输出,合理利用这一特性,做出的电路图如下:
[数字逻辑] 全加器的多种电路设计方案_第4张图片
需要使用四选一多路选择器74153以及二输入与非门74LS00。

0x05 电路图附件

所使用的设计软件为Quartus II 8.1。
https://pan.baidu.com/s/1HR0s8n8dPrir12pvIMcnpQ (提取码: s4er)

你可能感兴趣的:(数字逻辑)