基于可编程逻辑器件的高速乘法器IP设计
关键字:IP 可编程逻辑器件 乘法器
作者 :(宁波大学信息科学与工程学院,浙江宁波)邬杨波、李宏
摘要:介绍了一个八位高速并行乘法器的IP设计,该乘法器的部分积产生电路采用非重叠的三位编码方式,并且改进了Wallace加法树内部的连线方式。用VHDL语言描述了整个设计,并在Altera公司EPF10K10LC84-3上实现了该乘法器。
1 引言
专用集成电路(ASIC),是指特定用途的集成电路,大体上可分为全定制、半定制和可编程三大类。近年来随着微电子工艺的进步,可编程逻辑器件有了飞速的发展[5],如Altera公司于1999年推出的APEX20KE系列,其可用门数已达到了10万到100万门级,其中EP20K1500E最大可用门数高达250万门,而且在该芯片中,除了集成大量的逻辑门和寄存器外,还置入了嵌入式系统块ESB。因此使用该芯片不仅可以实现一般的逻辑功能,还可以把微处理器、DSP、存储器、标准接口等功能部件全部集成在其中,实现片上系统。各种可编程逻辑器件都有先进的EDA开发工具的支持。同时可编程专用集成电路相对于全定制、半定制专用集成电路具有研制周期短、设计成本低、设计灵活性高等特点[6]。
虽然可编程专用集成电路存在以上这些优点,但是它仍然面临着电路规模越来越大而电子产品的生命周期却在不断的缩短,即设计任务越来越重而设计周期越来越短的矛盾。因此对已经通过设计验证的功能模块重用无疑是解决这个矛盾的最佳方案。IP(Intellectual Property)核就是一个可重复利用的模块。IP核也有人称为系统宏单元、虚拟部件、芯核,是指一个经过精心设计、通过具体电路验证的能提供正确的接口信号的可重用的功能模块[1~4]。IP模块的再利用,除了缩短SOC芯片设计时间外,还可以降低设计和制造的成本,提高可靠性,因而将会给IC产业和电子工业带来巨大的经济效益。
2 高速乘法器的总体结构
高速乘法器在很多实时信号处理场合有着广泛的应用,特别是在数字信号处理中,乘法器是一个重要的功能部件。因此高速乘法器的IP设计对于涉及到高速乘法运算的系统设计具有重要意义。
现有的并行乘法器结构多采用Booth 算法或改进的Booth算法产生部分积,利用Wallace加法树减少部分积的数目,最后用超前进位加法器来产生乘积[7,8]。这种结构乘法器的主要缺点是部分积产生单元编码电路比较复杂,而且当乘数位数增加时电路的扩展不方便。本文提出一个新的乘法器结构,其部分积的产生采用新的非重叠的三位编码方式,并对Wallace加法树内部的连线方式作了改进,最后运用流水线方式提高运行的速度。
8位并行流水线乘法器的总体结构如图1所示。
乘法器由部分积单元、三层Wallace加法树、16位超前进位加法器组成。为了进一步提高运算速度,加入了包括输入寄存器在内的三级流水线寄存器。对于一个8位乘法器共需要三个部分积单元,每一个部分积单元将输入所有的被乘数和三位乘数。如果乘数A是n位的二进制数,那么,其部分积单元数近似为P=[n/3]。部分积单元输出被移位了的被乘数,送入到三层Wallace加法树产生最终的和、进位阵列,最后由超前进位加法器相加产生乘积。Wallace加法树的层数取决于部分积的多少,而部分积的数目又决定于乘数的位数,因此被乘数位数的改变并不影响乘法器的结构,此乘法器可以进行8 bit×m bit乘法运算。并且,当被乘数位数增加时,部分积单元和Wallace加法树的延迟不会随之增加,所引起的延迟是超前进位加法器相加数位数增加造成的。另外,当乘数位数增加时,只需要增加部分积单元的个数和Wallace加法树的层数即可,因此,可以很容易地扩展到12×m bit、15×m bit 的乘法器。
3 乘法器各功能模块的设计
3.1 部分积单元的结构
部分积的产生采用非重叠三位编码方式来实现[9]。其基本思路为:被乘数(B)和一个三位的二进制乘数(A)的乘积可以通过移位和加法运算实现。如表1所示,被乘数(B)和一个三位的二进制数(A)相乘可以表示为对两个固定移位的被乘数的一个加法运算。例如,被乘数(B)乘上6(110),可以表示为(B×4)加上(B×2),而B乘上2的指数可以简单地通过移位来实现。被乘数(B)乘7(111)则需要三个加数。这个操作可以由B×(8-1)=B×8-B来实现。为了避免求(-B)的补码而带来的延迟,可以将被乘数左移三位然后把最低位置‘1’,然后加上被乘数的反码。表达式如下:
B × 111= B × 1000 + /B + 1=B 000 + /B + 1= B 001 +/B,这里B000表示被乘数B左移三次,/B表示B的反码。
在表1中相加的两个部分积可以作为加法器的左右操作数。左操作数是被乘数乘以2,4或8,而右操作数乘1,2或1,最后一个可以表示为2的补码。
部分积单元的结构如图2所示。部分积的输出由编码器的输出控制。
对于一个9-bit宽的乘数,需要三个这样的部分积单元。每一个单元包含被乘数和三位的乘数。即对于一个乘法器其部分积单元数P=[n/3],这里n是乘数A的二进制位数。
3.2 改进的Wallace加法树
3.2.1 Wallace加法树[7]
Wallace加法树是部分积化简的一种树型结构,其结构如图3所示。 基本算法为:一个全加器有三个输入A,B,CI(进位)和两个输出S,CO。三个进位对两个输出而言是对称的,即输入相互交换位置,结果不受影响。如果将一串全加器简单地排成一行,它们之间进位线不连,这样的一串全加器称为保留进位加法器(CSA)。它的特点是:三个输入数之和等于两个输出数之和,即三个相加数每通过一次保留进位加法器其个数就减少一个。Wallace加法树就是利用这一特点减少部分积产生电路产生的部分积。在第一级把这些相加数三个分为一组,每组送入一个保留进位加法器,产生的输出数为原相加数个数的2/3,在第二级再将上一级产生的输出数三个为一组,分别送入到保留进位加法器相加。如此,直到最后形成两个操作数,再用一般的加法器相加。
3.2.2 全加器输入/输出的延迟分析[10]
在这里我们主要分析一般结构的全加器其输入/输出的延迟关系。对于一个全加器其三个输入与两个输出之间的延迟并不是相同的。由图4可知,从输入A或B到S的延迟相当于两个异或门的延迟;而从CI到S的延迟相当于一个异或门的延迟。可以看到输入A、B到输出S的延迟是输入CI到输出S的两倍。然而,三个输入到输出CO的延迟却是一样的,相当于一个异或门。因此,对于Wallace加法树,如果恰当地安排各级CSA之间的连线,就可以减少Wallace加法树输入/输出的延迟。
3.2.3 改进连线的Wallace加法树
图5所示的Wallace加法树其输入/输出的关键路径延迟相当于6个异或门的延迟。按照前面的分析,我们对连线作了修改其结构如图4所示,其关键路径的延迟相当于五个异或门,比原来缩短了六分之一,提高了Wallace加法树速度。
4 实现与验证
本文选用Altera公司的EPF10K10LC84-3作为目标器件,用VHDL语言描述了整个设计,并在MUX+plus II开发系统中完成整个设计的输入、功能仿真、时序仿真,最后生成编程文件。乘法器的资源占用情况和工作频率如表2所示。由表2可见,乘法器工作频率为26.5MHz,工作速度并不很高,其原因是超前进位加法器延时较大,影响整个乘法器的速度,如果在超前进位加法器中加入几级流水线寄存器,则可以进一步提高乘法器运算的速度。
5 结 论
本文讨论了一种高速并行乘法器的IP设计,并在Altera公司的EPF10K10LC84-3器件实现了该乘法器。这种乘法器的主要优点是:部分积单元采用一种新的编码方式,结构简单,扩展方便,特别适合于可编程逻辑器件的实现 ;改进了Wallace加法树的连线方式,减少了加法树输入/输出的延时,并且这种方式对于提高专用集成电路中乘法器的速度更为有效。此乘法器的IP模块可以方便地被调用于其他数字系统。
参考文献
1 李涛,高德远,樊晓桠.可编程DMA控制器IP设计.计算机工程与应用,2000; 8
2 龚雪皓,郑学仁,刘百勇.专用集成电路设计中的芯核和设计复用技术.微电子学,2000;30 (1)
3 梁合庆.当今嵌入式系统综述与新的投资机遇.测控技术,2000;19 (4)
4 王效平,刘捷臣.集成电路进入片上系统.微处理器, 2000;(1)
5 王金明.基于IP核的片上系统设计技术.军事通信技术, 2000;21 (3)
6 李建中.从掩膜ASIC到可编程ASIC设计军事通信技术, 2000;21 (3)
7 罗莉,胡守仁.一个并行高速乘法器芯片的设计与实现. 计算机工程与科学,1999;19 (4)
8 Sunder S. A fast multiplier based on modified Boothalgorithm. Int,J,Electronics,1993;75 (2)
9 Sait S M, Farooqui A A , Beckhoff G F. A novel technique for fast multiplication ; Int J Electronics,1999;86 (1)
10 Oklobdzija V G, Villeger D et at. A method for speed optimized partial product reduction and generation of fast parallel multipliers using an algorithmic approach. IEEE Transactions on computers, 1996;45 (3)
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。