嵌入式学习-04_嵌入式技术之从零搭建计算机
1设计计算机硬件
1.1 实现一个ALU
ALU(算术逻辑单元)是计算机中的一种关键组件,负责执行算术运算和逻辑运算。它是中央处理器(CPU)内部的一个重要功能模块,用于处理数据和执行指令。
1)选择器
在ALU中我们会用到复用器,两相复用器原理和封装如下图:
输出Q会跟随sel来决定是取输入A还是输入B。而四相复用器就是两相复用器的叠加:
2)16位ALU实现
查看如下电路:
该电路可以求A、B两数的加,减,按位与和按位或,最终的输出取决于sel。映射关系如下表:
sel | 结果 |
---|---|
0b00 | A+B |
0b01 | A-B |
0b10 | A&B |
0b11 | A|B |
Cin和Cout是输入输出的进位标志,ZF是A和B是否相等的标志。右键点击A、B、加法器,减法器,与门,或门,比较器、S,将它们的位数改为16bit,这个ALU的位数就被设置成了16bit。
1.2 实现一个简单的计算单元
现在我们希望使用刚刚创建的ALU来计算一下13+45+27+6,实现的步骤如下:
(1)A输入13,B输入45,然后可以看到S是累加后的结果。
(2)记录S的结果,并将其输入到A,在B输入27,那么S的结果就是13+45+27,记录这个结果。
(3)将上一步S的结果输入到A,B输入6,最终得到S结果 13+45+27+6。