在通用微处理器中,乘法是由软件实现的,它其实是由时钟控制的一连串“移位—加法”操作。而对于DSP乘法器,则应具有以下基本基本功能:
-
要求在一个时钟周期里对两个字长为b位的输入由硬件作快速并行乘法;
-
应能通过格式控制来执行无符号或带符号或混合的乘法操作、小数或整数乘法操作以及扩展精度或双精度运算,并有合适的舍位方法;
-
应有输入和输出寄存器,这样可以锁存数据,配合流水线操作。也可不用寄存器,使乘法器在透明方式下工作,这样可以有最小的等待时间。
在数字信号处理的滤波器、FFT、卷积及各种矢量运算中,由于要执行
Σb(n)*x(n - k)
一类的运算,这类运算的乘法和加法总是同时出现,因此DSP中就希望将乘法器和加法器相结合,在一个时钟周期完成一次乘、加运算,并且累加乘法运算的结果。这样的运算单元称为乘法累加器。
对于乘法累加器,除了要求能在一个时钟周期完成一次乘、加运算外,为了在累加时保证运算精度,还应在累加输出寄存器中包括足够的保护位,因其在2b位的乘法输出宽度之外,所以称为扩展位。扩展位中的逻辑应该能用来预测累加器的溢出,并且能紧急通知作重新定标度操作,即防溢出处理。