四位加法器原理与构建方法详解
四位加法器原理与构建方法详解
四位加法器
一个四位加法器的原型如下:
相对于两位的加法器,两个输入和输出都扩展为了 4 位:
- 两个四位的输入:A3, A2, A1, A0 和 B3, B2, B1, B0;
- 一个进位输入 Cin (Carry in);
- 一个四位的输出:S3, S2, S1, S0;
- 一个进位的输出,C (Carry out)。
注:这里直接用的就是系统自带的4位加法器的原型。
直接由全加器去构建
四位加法器的构建有几种方式。一种还是直接从四个全加器开始构建:
四位加法器, 四个全加器 在线可互动操作示例
具体创建子电路的过程此处从略,读者可以自行实验。此处使用的二极管是为了规避模拟器实现上的缺陷。下同。
通过两位加法器去构建
除了直接使用多个全加器的方式,考虑到先前已经有了两位加法器,也可以以它为基础去构建,其效果如下:
左边的模块处理高两位,右边的模块处理低两位。可以说,相对而言更加简单了些。归根结底,都是用了全加器。
最后,仍旧是利用前面说到的创建子电路的方式标识出各个节点名称:
四位加法器, 输入与输出标识 在线可互动操作示例
然后创建子电路,最后添加子电路实例:
也即是最开头处看到的原型。配合上显示等模块,可以说,现在的电路也不再是只能做 1 + 1 = 2 之类的了。
下图演示了 4 + 5 的情形:
四位加法器, 计算演示 4 + 5 在线可互动操作示例
事实上,扩展到了多位加数后,又不得不面对新的显示问题。比如,假如执行 5 + 5,那么结果是 10,输出展示处首先就需要两个 LED 了。此外,还面临着如何把二进制的输出切割成两段十进制输出的问题等。
注:目前的 LED 译码显示支持 16 进制,对于 5 + 5,它会显示一个类似 A 字母的图案,因为 在 16 进制中,A 代表 10。
而且,如果我们愿意的话,还可以继续拓展为 8 位,乃至 16 位,如此一来,能加的数就很大了。
输入的问题
不过,尽管能加比较大的数了,但当位数拓展之后的面临的另一个问题是输入的便利性。现在依然是使用逻辑输入开关以二进制的方式给出要加的两个数。如果我们把这个多位加法器提供给用户,说它能帮助你做加法,但你首先得把要加的两个十进制数转换为二进制数。那么用户可能就不乐意使用了,而且他们不一定知道怎么转换这个进制。必须给用户一个便利的方式指定要加的数,在下一章节,再来具体讨论这个问题及其解决方案。