什么是m叉树_数字IC校招基础知识点复习(七)——超前进位加法器、Wallace树、Booth乘法器...

1.超前进位加法器

看了一些面经,提到会让你用基础的门搭加法器,因此首先得熟悉半加器,全加器等最基础的加法器才能理解之后的超前进位加法器,树型加法器等复杂的加法器。

半加器的输入为a,b,输出为结果s和进位c,则其关系为

全加器的输入多了一个进位cin,输出为结果位s和进位输出cout,则其关系为

使用多个全加器级联,把每一级的进位输出作为下一级的进位输入即构成了行波进位加法器,其加法过程是很好理解的,就是从最低位开始一位一位运算,并且把低位的进位加到高位上,与手算的思路是一致的。其结构如图所示。

cc2f7b41ccfbf923450d417a1ad454d2.png

但若是画出其门级的电路图我们会发现,由于采用级联结构,行波进位加法器的关键路径非常长,N比特行波进位加法器的最长路径位

个门电路延迟,在高速处理器中将极大地限制电路的性能。因此诞生了超前进位加法器以改善关键路径,其主要思想是将所有的进位都并行进行,为此需对原始的加法器计算公式做一些改动。令

则对于N比特超前进位加法器,其结果位和进位可写成如下的形式

则通过迭代

的表达式,可将其写成只包含
的表达式,从而完成并行计算。以4bit超前进位加法器为例,其进位链公式计算如下

290b1f0b20ce731d14612a929e9d92a7.png

则对应的,超前进位加法器结构如图所示。

57952a68a21796d3c79bef4f4cd11d6e.png

对于更大位宽的,例如32,64bit的加法运算,为了避免造成电路的扇入扇出过大,会用多个4bit超前进位加法器级联,从而获得一个折中的解决方案。

从关键路径上来看,4bit超前进位加法器的进位都只需要经过3级门电路延迟即可得到,相比较于行波进位加法器有巨大的优势,即使级联构成更大位宽的加法器仍然缩短了关键路径的长度。

2.Wallace树型结构

话说这Wallace是不是该翻译成华莱士呢,嗯~亦可赛艇啊。

要理解Wallace树需要先理解进位保存加法器。进位保存加法器以三个树作为输入,输出两个数,这两个数相加即为最终的加法结果,因此进位保存加法器相当于进行了一次压缩过程,将三个数的加法压缩为两个数的加法。然而进位保存加法器并不是什么新奇的黑科技,而是全加器的一个变形,如下图所示。

45cd5798111f628848f44461da3eb4e7.png

从图中可以看出,进位保存加法器就是对全加器进行重新包装。

熟悉了进位保存加法器后我们就可以来看Wallace树型结构了,其总体结构如下图所示。

42e2fcfbe1c35fda8b0b018029ae3e7e.png

可以看出,树型结构就是将多个加数分组,每三个分为一组后,经过进位保存加法器压缩为2个数,如此迭代循环得到最终加法的结果。

在乘法器中,乘法的积是多个部分和之和,若使用普通加法器,则需等待前面的部分和计算完成才能计算后面的部分和,延迟较高,因此可以使用Wallace树型结构,对部分和进行分组计算得到最后的总和结果,即为乘法的积。

3.Booth乘法器

若是用补码表示一个数,则其转换为十进制的计算方式为

将其展开,并令

,则可以得到

此时再计算乘法

可得

从上式可以看出,这样变化的优势是若B的某相邻两位相同,则可以省去运算而只进行移位即可。如果

,则为
,如果
,则为
,从而简化了运算过程。

以上是Radix-2 Booth算法的推导,其算法流程如下

1.被乘数和乘数分别放入A,B寄存器,中间结果放入M,B寄存器。
2.另设置一个1bit的
寄存器。将M,
寄存器初始为0。

3.在每个周期检查
寄存器。

4-1.若
= 00 或 11,将{
}直接右移1bit。

4-2.若{
} = 01,则A与M相加,将{
}直接右移1bit。

4-3.若{
} = 10,则A与M相减,将{
}直接右移1bit。

5.最终的结果即为{M,B},是乘法积的补码表示。

需要注意的是,上述所有数都是补码表示,且上述右移操作需保留符号位,即保持M的最高位不变。

在实际应用中较常用的是Radix-4 Booth乘法器,与Radix-2类似,其算法可通过原始的补码计算式展开得到

上式中的

设置为0。Radix-4 Booth编码表如下表所示。

4c837ed411f3c0d6978fd873b8ba88bc.png

不难看出,相较于Radix-2 Booth算法,Radix-4 Booth算法需要的循环次数更少,因此在实际中应用更加广泛。

参考链接

关于乘法器和加法器,如下的专栏讲述的非常详细,可以作为参考。

纸上谈芯:【HDL系列】超前进位加法器原理与设计​zhuanlan.zhihu.com
dfcc158d6e6b3f9956db0447814fde1b.png
纸上谈芯:【HDL系列】乘法器(4)——图解Wallace树​zhuanlan.zhihu.com
81361350de7fca57291879ef6fe30a30.png
纸上谈芯:【HDL系列】乘法器(5)——Radix-2 Booth乘法器​zhuanlan.zhihu.com
2b68baf6d2e1aad324d4351c5a44f2fe.png
纸上谈芯:【HDL系列】乘法器(6)——Radix-4 Booth乘法器​zhuanlan.zhihu.com
d888da844c2e088504033f9e6b7edbee.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值