从三极管到CPU
一、三极管
-
三极管的饱和与放大特性
二、基础门:与、或、非
与门真值表:
输入端口A | 输入端口B | 输出端口R |
---|---|---|
1 | 1 | 1 |
1 | 0 | 0 |
0 | 1 | 0 |
0 | 0 | 0 |
或门真值表:
输入端口A | 输入端口B | 输出端口R |
---|---|---|
1 | 1 | 1 |
1 | 0 | 1 |
0 | 1 | 1 |
0 | 0 | 0 |
非门真值表:
输入端口A | 输出端口R |
---|---|
1 | 0 |
0 | 1 |
三、复合门:异或
- 使用logicCircuit搭建仿真电路,推荐学习UP“踌躇月光”的视频:一个8位二进制CPU的设计和实现
- 软件官网 www.logiccircuit.org
异或门真值表:
输入端口A | 输入端口B | 输出端口R |
---|---|---|
1 | 1 | 0 |
1 | 0 | 1 |
0 | 1 | 1 |
0 | 0 | 0 |
四、半加器
半加器已经可以处理处理两个位长为1的二进制数的加法
半加器真值表:
输入端口A | 输入端口B | 输出端口C(加法产生的和) | 输出端口S(加法产生的进位) |
---|---|---|---|
1 | 1 | 1 | 0 |
1 | 0 | 0 | 1 |
0 | 1 | 0 | 1 |
0 | 0 | 0 | 0 |
logicCircuit仿真
五、全加器
增加进位处理
- 在半加器的基础上很容易的构建出全加器
半加器真值表:
输入 CI | 输入 A | 输入 B | 输出 CO | 输出 S |
---|---|---|---|---|
0 | 0 | 0 | 0 | 0 |
0 | 0 | 1 | 0 | 1 |
0 | 1 | 0 | 0 | 1 |
1 | 0 | 0 | 0 | 1 |
0 | 1 | 1 | 1 | 0 |
1 | 0 | 1 | 1 | 0 |
1 | 1 | 0 | 1 | 0 |
1 | 1 | 1 | 1 | 1 |
等效为 CI + A +B = CO
×
\times
× 21 + S
×
\times
× 20
放放两个仿真图(就不举出全部情况了)
1+1+1=11
0+1+1=10
六、四位加法器
只能处理长度为1bit的数据?有点弱?现在将四个全加器串联得到一个4bit加法器!能处理长度为4的数据!
依然封装一下,不改变内部结构和功能,但更好使用:
如何使用这个加法器来完成计算 十进制的10+3 ?
如果你觉得四位加法器还是太弱(的确若,只能处理两个0 ~15之间的整数的加法),可以串联1更多的全加器能够扩大加法器的运算范围。串联8个全加器实现8位加法器将范围扩大到了0 ~255,串联16位的16位加法器则将范围扩大到了0 ~65535 😃
七、CPU
门电路组成了具有不同功能的单元,这些单元共同组成了强大的CPU。
加油学习!了解硬件的编程!
串联会叠加延迟 ↩︎