[数字逻辑] 全加器的多种电路设计方案
0x00 全加器全加器是根据被加数AiA_{i}Ai、加数BiB_{i}Bi与低位进位Ci−1C_{i-1}Ci−1计算出本位和SiS_{i}Si与进位CiC_{i}Ci。其真值表如下:AiA_{i}AiBiB_{i}BiCi−1C_{i-1}Ci−1SiS_{i}SiCiC_{i}Ci00000001100101...
0x00 全加器
全加器是根据被加数 A i A_{i} Ai、加数 B i B_{i} Bi与低位进位 C i − 1 C_{i-1} Ci−1计算出本位和 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} Ci−1 | 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=Ai⊕Bi⊕Ci−1
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=(Ai⊕Bi)Ci−1⋅AiBi
根据表达式可以构建使用与非门以及异或门组成的全加器:
总计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}
A⊕B=AB+AB=AAB+ABB=AAB⋅ABB
替换后的逻辑表达式为:
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}}
Ai⊕Bi=AiBi⋅Ai⋅AiBi⋅Bi
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=Ai⊕Bi⋅Ci−1⋅Ci−1⋅Ai⊕Bi⋅Ci−1⋅Ai⊕Bi
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=Ai⊕Bi⋅Ci−1⋅AiBi
根据这一逻辑表达式,我们可以先在电路中使用4个与非门求出异或,再使用异或的结果进行下一步计算,所做电路图如下:
只需要使用与非门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=m3⋅m5⋅m6⋅m7
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=m1⋅m2⋅m4⋅m7
译码器第
i
i
i个位置输出的值为
m
i
‾
\overline{m_i}
mi,只需要将对应的输出再进行一次与非即可。
对应的使用二位二进制译码器的电路如下:
需要使用到二位二进制译码器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=Ai⋅Bi⋅Ci−1+Ai⋅Bi⋅Ci−1+Ai⋅Bi⋅Ci−1+Ai⋅Bi⋅Ci−1
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=Ai⋅Bi⋅0+Ai⋅Bi⋅Ci−1+Ai⋅Bi⋅Ci−1+Ai⋅Bi⋅1
四选一多路选择器会根据
i
=
B
∗
2
+
A
i=B*2+A
i=B∗2+A选择第
i
i
i个输入作为输出,合理利用这一特性,做出的电路图如下:
需要使用四选一多路选择器74153以及二输入与非门74LS00。
0x05 电路图附件
所使用的设计软件为Quartus II 8.1。
https://pan.baidu.com/s/1HR0s8n8dPrir12pvIMcnpQ (提取码: s4er)
更多推荐
所有评论(0)