本文主要是介绍CPU和内存的电路设计04-全加器的内部电路实现,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
本文将制作一个加法器电路,这个加法器支持5bit位,最大能表示25,也就是十进制的32
现有两个二进制01
和11
相加,如图1
从图1中可以非常清楚的看出,两个2进制数相加会产生下面2中情况
1.绿色方框中的位(最低位)一定不会有来自其他位的进位
2.红色方框中的位(非最低位)有可能接收来自右侧的进位
进一步得出结论:两个bit位相加,应该需要三个输入端,正如图1的表示,我们肯定是以红色方框内的位标准,必须考虑从其他位得到的进位
那么我们的加法器的输入端应该图2这个样子,下面解释图2的三个输入
加数:例如图1中红色方框的0
被加数:例如图1中红色方框的大1
右边的进位:例如图1中红色方框的小1,如果没有进位,则为0
输入端设计完毕了,那么接下来设计输出端,从图1结果中可以看到,两个bit位相加,得到0或者1之后,还有可能产生进位(图1蓝色方框),所以得出结论:输出端应该有2个输出,图3表示了一个加法器
现在假设
加数的格式是:A4 A3 A2 A1 A0,其中A0表示低位,A4表示高位
被加数的格式是:B4 B3 B2 B1 B0,其中A0表示低位,A4表示高位
则一个5位加法器的电路图如下
现在假设
加数是:10010
被加数:01111
结果为:100001
现在全加器的理论阶段已经结束了,那么具体如何实现一个加法器呢,只要实现了一个加法器,那么按照图4将5个加法器连接起来,就制作了一个5位的全加器了,根据之前文章,我们使用门电路来实现加法器,先画一个真值表(此处涉及到真值表的知识,如果不了解,应该先从网上找找),用A代表加数,B代表被加数,C代表进位,S表示结果,根据蓝色四行,那么有如下公式
根据图5可以得到:S= A B ‾ \overline{AB} ABC+ A ‾ \overline{A} AB C ‾ \overline{C} C+A B C ‾ \overline{BC} BC+ABC
根据图6可以得到:L=ABC+ A ‾ \overline{A} ABC+AB C ‾ \overline{C} C+A B ‾ \overline{B} BC
根据上述公式,我们要做的就是补全图7中绿色里的内容
最终,一个加法器芯片的内部电路图如图8所示
这篇关于CPU和内存的电路设计04-全加器的内部电路实现的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!