1.全加器

既然我们在上节得到了半加器,那么理所应当的,这节我们引出了全加器(多路一位信号相加),这里以三路一位信号为例,可以代表多种情况:1+1+1/1+2/1+0+1/2+1等,其本质还是上上节中的对三路信号进行计数,其真值表如下:

进位有两种情况,一个是全为1时,一个三路与门即可实现;一个是三路中有两路1时,可以用上上节中的使能信号量判断中的办法----卡诺图来解决,卡诺图如下:

AB\C 0 1
00 0 0
01 0 1
11 1 1
10 0 1

公式得ABC+AB+ABC,由该公式可以画出电路:

所以我们便可以发现,复杂电路不过是多个基础电路的融合罢了。

进位(高位)解决后,接下来看低位的问题:由真值表可知,其也是之前的电路---奇偶判断的奇电路,不过之前花的是四路的,而今天的是三路,我们可以截取之前的一半,先用一个异或门链接两路,第三路和一二路异或的结果再次异或即可,上述电路综合结果如下:

这样,我们便实现了多路的加法器----全加器。

2.加法

有了加法器,我们便可以运算加法,但三路加法可运算的值无疑还是太少了,接下来,我们先把8路加法器制作出来,以便实现两个八位值的加法:

两个8位,无非为16位,将其拆解如下:

一看是16路的电路的构建,是不是完全没有思路?但你如果仔细观察,可以注意到,除去每一路代表的值的含义后,其无非就是有8*8种组合方式而已,上1路可以和下面8路相加,上2路同样如此,这么一看,可以将其整理为一个8阶矩阵,可能出现的情况如下:

 下\上 1 2 3 4 5 6 7 8
1 1
2 1 1
3 1 1 1
4 1 1 1 1
5 1 1 1 1 1
6 1 1 1 1 1 1
7 1 1 1 1 1 1 1
8 1 1 1 1 1 1 1 1

上1+下1,无非进一位到2,或者为1,或者为0三种情况,若为0或1,那么结果的第一为便定下来了,因为结果的第一位肯定只受两个加数的影响;若为2,则第一位也必然确定,但会影响第二位,则结果的第二位受两个因素影响----一位的进位和两个加数的结果,那么我们要确定结果的第二位,就要先考虑两个加数的第二位的结果,再将第二位的结果与第一位的进位相加,同理,这样也会影响第三位,则第三位需要考虑三种情况......,以此类推,我们便可以得到电路图如下:

注:ADD为全加器

此时,我们还需考虑最高位的进位问题,即结果大于128的情况,我们为结果添加一个进位,如果你注意力惊人,那么可以注意到这个进位的触发条件是其中一个加数的值大于128,或者第八位的进位被触发,所以可以得到电路图如下:

该电路就可以运算两个255以下值的和了

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐