CS61C学习笔记(九)-组合逻辑模块
组合逻辑模块-Combinational_Logic_Blocks
数据多路复用器(Data Multiplexor)
Data Multiplexor (here 2-to-1, n-bit-wide)
- 当S = 0,C的值为A的值
- 当S = 1,C的值为B的值
N instances of 1-bit-wide mux
如何构建1位宽的mux?
4-to-1 Multiplexor
Mux:是否有其他方法可以做到这一点?
运算和逻辑单元(Arithmetic and Logic Unit\ALU)
Our simple ALU
加法器/减法器(Adder/subtracter)
如何构建
- 真值表,然后确定标准式,然后最小化并实现如我们所见
- 看看把问题分解成更小的片断,我们可以级联或分层
Adder / Subtractor – One-bit adder LSB…
N 1-bit adders -> 1 N-bit adder
将N个1-bit adders串联起来后就变成了1个N-bit的加法器了!
接下来我们来考虑溢出问题
两个2 - bit数之和.. ..
减法器设计
极巧减法:A-B = A + ( - B )
A-B = A + ( - B ),因此我们只需要将B的只在输入加法器前变为-B即可,我们可以考虑补码:
- B取反后加一
在取反这个步骤中,我们可以想到我们的XOR逻辑门来实现,然后将C
0设为1,即可实现减法器!
总结
使用muxes在输入中进行选择
- S个输入位选择2^S^个输入
- 每个输入可以是n位宽,indep为S
可以分层实施muxes
ALU可以使用mux实现
- 与基本块体单元耦合
N位加减器是使用N个1位加法器在输入端使用异或门完成的
- XOR作为条件反相器
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 云泥小窝!
评论