什么是硬件乘法器

硬件乘法器你听过吗?哈哈,小编也是最近才听过这个词的 。下面将由我们小编带大家一起来学习学习下吧,希望对大家有所收获!
什么是硬件乘法器
硬件乘法器,其基础就是加法器结构,它已经是现代计算机中必不可少的一部分 。[1] 乘法器的模型就是基于“移位和相加”的算法 。在该算法中,乘法器中每一个比特位都会产生一个局部乘积 。第一个局部乘积由乘法器的LSB产生,第二个乘积由乘法器的第二位产生,以此类推 。如果相应的乘数比特位是1,那么局部乘积就是被乘数的值,如果相应的乘数比特位是0,那么局部乘积全为0 。每次局部乘积都向左移动一位 。
乘法器可以用更普遍的方式来表示 。每个输入,局部乘积数,以及结果都被赋予了一个逻辑名称(如A1、A2、B1、B2),而这些名称在电路原理图中就作为了信号名称 。在原理图的乘法例子中比较信号名称,就可以找到乘法电路的行为特性 。
在乘法器电路中,乘数中的每一位都要和被乘数的每一位相与,并产生其相应的乘积位 。这些局部乘积要馈入到全加器的阵列中(合适的时候也可以用半加器),同时加法器向左移位并表示出乘法结果 。最后得到的乘积项在CLA电路中相加 。注意,某些全加器电路会将信号带入到进位输入端(用于替代邻近位的进位) 。这就是一种全加器电路的应用;全加器将其输入端的任何三个比特相加 。
【什么是硬件乘法器】随着乘数和被乘数位数的增加,乘法器电路中的加法器位树也要相应的增加 。通过研究CLA电路的特性,也可以在乘法器中开发出更快的加法阵列 。
DSP中的专用硬件乘法器
在DSPs中具有硬件连线逻辑的高速“与或”运算器(乘法器和累加器),取两个操作数到乘法器中进行乘法运算,并将乘积累加到累加器中,这些操作都可以在单个周期内完成 。
在数字信号处理算法中,乘法和累加是基本的大量的运算 。例如:在卷积运算、数字滤波、FFT、相关计算和矩阵运算等算法中,都有大量的类似于ΣA(k)B(n-k)的运算 。DSPs中设置的硬件乘法器和MAC(乘法并累加)一类的指令,可以使这些运算速度大大提高 。乘法速度越快,DSPs性能就越好 。在通用的微处理器中,乘法指令是由一系列加法来实现的,故需许多个指令周期来完成 。相比而言,DSPs芯片的特征就是有一个专用的硬件乘法器 。
硬件乘法器的实现原理
首先,分析一下两个二进制数相乘的过程:

什么是硬件乘法器


由此可见,硬件乘法器的实现本质是“移位相加” 。对于二进制,乘数和被乘数的每一位非0即1,相当于乘数中的每一位分别和被乘数的每一个体位进行与运算,并产生其相应的乘积位 。这些局部乘积左移一位与上次的和相加 。即从乘数的低到位开始,若其为1,则被乘数左移一位并与上一次的和相加;若为0,左移后以全零相加,如此循环至乘数的高到位 。
硬件乘法器的电路结构
从理论上讲,两个二进制N位操作数相乘,乘积的总宽度为2N,因此需要一个宽度为2N的移位寄存器和加法器 。但在实际执行过程中,一是每个部分积的宽度和移位相加的有效宽度都为N位,从资源的利用率角度考虑,仅需N位宽度的加法器即可;二是按照先移位再相加的原理,两个N位操作数则需要2N个时钟周期才能完成整个运算,在此考虑将移位和相加两个运算步骤合并,从速度上就可在N个时钟周期内完成 。
根据上述分析,8位移位相加型硬件乘法器应包括16位锁存器、8位移位寄存器、8位乘法器、8位加法器等4个组成部分 。具体电路结构如图1所示 。

推荐阅读