推荐FPGA的8位硬件乘法器设计 精品文档格式.docx
《推荐FPGA的8位硬件乘法器设计 精品文档格式.docx》由会员分享,可在线阅读,更多相关《推荐FPGA的8位硬件乘法器设计 精品文档格式.docx(33页珍藏版)》请在冰豆网上搜索。
本文基于FPGA,采用VHDL语言,结合MAX+plusⅡ这个强大的软件平台设计了8位二进制乘法器,并对其进行符号扩展,使其可以统一处理8位带符号数和无符号数。
高速乘法器设计通常分为三个关键步骤:
部分积产生、部分积累加和最终结果获得。
本文对部分积产生过程采用改进Booth算法,有效减少部分积加法项;
为了统一带符号和无符号数,对部分积进行符号扩展;
而对部分积的累加则采取3-2压缩器和4-2压缩器进行压缩;
最终结果的获得则以一个根据部分积累加结果到达时间的不同进行延迟优化的选择进位加法器将累加结果和累加进位相加而得。
关键词:
乘法器改进Booth算法压缩器选择进位加法器
TheCircuitDesignof8-bitHardwareMultiplierBasedonFPGA
KeXiuyan
(CollegeofEngineering,SouthChinaAgriculturalUniversity,Guangzhou510642,China)
Abstract:
VHSICHardwareDescriptionLanguage,oneoftoday'
smostpopularhardwaredescriptionlanguages,isusedtodescribethemostplexchipandmostpleteelectronicsystems.
Themultiplierisnotonlythebasichardwarestructureoftheprocessorforscientificputinganddigitalsignalprocessingbutalsoanimportantponentofmodernmicroprocessors.Thisdesignfor8-bitbinarymultiplierisbasedonFPGA,usingVHDLlanguage,andprovedbytheMAX+plusⅡsoftwareplatform.Themultiplicandhasanextendedsignbitsothatthemultipliercanunify8-bitsignedandunsigned.
High-speedmultiplierdesignisusuallydividedintothreekeysteps:
partialproductgenerationcircuit,accumulatorandadder.Inthispaper,thepartialproductgenerationprocessusesthemodifiedBoothalgorithm,sothatthepartialproductadditiontermscanbeeffectivelyreduced.Theaccumulationofpartialproductstakes3-2pressorand4-2pressortopress.Thefinalresultisobtainedwithselectcarryadder.
Keywords:
multiplierthemodifiedBoothalgorithmpressorselectcarryadder
成绩评定表
1前言
1.1乘法器的研究背景和意义
微电子技术的迅猛发展,计算机技术的不断进步,带动了集成电路工艺的不断增进,数字芯片的集成度不断提高。
在经历了小规模、中规模、大规模的发展过程之后,目前集成电路已经进入超大规模和甚大规模集成电路阶段,SOC(SystemonChip)时代也已经到来。
数字芯片的发展一直遵循着英特尔公司的主要创始人戈登·
摩尔(GordonMoore)提出的摩尔定律:
芯片的集成度每三年翻两番,特征尺寸缩小
倍。
由于可使用的芯片面积增加,为了进一步提高运算性能,目前越来越多的处理器包含多个运算单元,算术运算单元已经成为处理器结构中的一个重要组成部分。
而乘法器又是运算器不可或缺的重要组成单元,所以对乘法器的研究具有一定的意义。
在高速数字信号处理器、微处理器等各类芯片中,乘法器是必不可少的算术逻辑单元。
乘法器往往处于关键延时路径中,它对系统的运算速度有很大影响。
为实现流水线的正常工作,乘法运算往往需要在一个时钟周期内完成,另一方面,随着便携式可移动数字产品市场和芯片集成度的不断增加,要求系统在保持高速的同时,具有较低的功耗,才能保持设备的长时间可靠工作。
因此,高速低功耗的乘法器的设计是运算器系统设计中的关键。
目前在乘法器的实现中,制约其性能提高的因素主要有以下几个方面:
部分积生成速度与面积的冲突、部分积的相加延迟过大、版图实现的规则性和紧凑性难以提高。
乘法器的设计思想,就是在乘法器设计的结构复杂度,以及乘法器最终的运算速度,电路完成后的占用芯片的面积这几个因素之间进行均衡。
1.2乘法器的研究发展状况
迄今为止,关于乘法器实现研究的著作和已经有很多。
乘法器作为处理器最主要的模块之一,在大量文献中均有研究。
过去的十年,修正Booth算法进一步扩展了Booth编码算法的空间,以传输管逻辑、多路选择器和动态技术为基础的各种电路实现方法持续刷新着高性能乘法器的实现记录。
与此同时,与物理实现紧密相关的乘法器拓扑结构的研究也硕果累累。
乘法器研究上的里程碑应该从A.D.Booth在1951年提出的Booth编码方法和Wallace的树型压缩开始。
其中Wallace介绍了著名的用于压缩部分积的Wallace树结构。
随后在1961年O.L.Mcsorley把Booth算法中的每次交叠检验乘法的两位推广到每次交叠检验三位,即著名的修正Booth算法,或称Booth2算法,这种方法使得部分积数目减少一半。
1965年Dadda提出的计数器的概念,可将3:
2计数器推广到4:
2,5:
2和9:
2等,进一步减少Wallace树所需计数器个数。
进入上世纪九十年代之后,Bewick提出了冗余Booth3算法,使得Booth3可以在略多于Booth2的时间内完成。
进一步扩展到基16、基32、乃至基256的Booth算法也被提出和研究。
拓扑结构方面,进位保留加法器被广泛使用,双阵列、高阶阵列用于提高阵列拓扑结构的速度。
Shen和Weinberger提出了4:
2压缩器用于构成较Wallace树更规整的二进制树,延迟平衡树Zuras和McAllister首先提出,倒阶梯树也可用于改善树型结构的规整性。
乘法器算法方面已经日趋完善。
与此相应的,可用于乘法器最后求和运算的各种加法器结构层出不穷。
在电路实现方面,1981年,Weinberger提出了具有更高压缩比和对称性的4:
2压缩单元以代替全加器和半加器完成部分积的求和工作。
此举不仅降低了布局困难,而且可以缩短关键路径,平衡端口延迟,极大的提高了运算速度。
1995年Ohkubo基于传输管逻辑实现了4.4ns的54位乘法器,同时提出了新的4:
2压缩单元结构和进位选择加法器结构。
1996年,Hanawa实现了4.3ns的54位乘法器,同一年,Makino实现了8.8ns的54位冗余二进制编码乘法器。
1997年Inoue提出了符号选择Booth解码和改进的4:
2压缩单元结构,实现了4.lns的54位乘法器。
1998年Hagihara基于动态技术和传输管逻辑实现了2.7ns的54位乘法器,同年Carlson介绍了6.0ns的64位乘法器实现方法。
20XX年Itoh实现了一个600MHz的两级流水线的54位乘法器。
20XX年,Cho基于标准单元库实现了一个3.25ns的54位乘法器,并提出了改进的进位选择加法器结构。
除了提高乘法器的速度以外,各种结构的编码单元,改进的规整的树型压缩结构,以及乘法器的低功耗设计等也得到了广泛而深入的研究。
2总体方案确定
2.1乘法器设计方案
本文采用了一种改进Booth编码算法,实现8位带/无符号并行乘法器,并选择3-2压缩器和4-2压缩器组成的部分积累加器及选择进位加法器为最终加法器结构实现乘法器的设计(王定,等,20XX)。
高速乘法器的关键就是要提高并行计算量,减少后续的计算量。
Booth编码算法是广泛采用的算法,它可以减少一半的乘法乘积项,大大提高运算速度。
而部分积的相加采用3-2压缩器和4-2压缩器,它可以将乘法的时间复杂度降低。
最终加法器则用选择进位加法器实现。
算法运算可分为3部分来实现:
Booth编码和译码;
压缩器;
最终加法器(李磊,等,20XX)。
2.2硬件描述语言VHDL
2.2.1硬件描述语言
所谓硬件描述语言,就是利用该语言可以描述硬件电路的逻辑功能、电路结构和连接形式。
硬件描述语言是一种用于设计硬件电子系统的计算机语言,适合大规模电路系统的设计。
例如一个32位的加法器,利用传统的图形输入软件需要输入500至1000个门,而利用VHDL语言只需要书写一行代码A=B+C即可。
而且VHDL语言可读性强,易于发现错误和修改。
硬件描述语言可以在不同的层次上描述数字系统。
比如,描述电阻、晶体管及其之间相互连线关系的,称为开关级描述;
描述基本逻辑门、触发器及其之间相互连线关系的,称为门级描述;
在更高层面上描述寄存器及其之间数据传递的,称为寄存器传输级描述。
目前得到广泛认可的硬件描述语言有VHDL和Verilog两种。
2.2.2VHDL语言简介
VHDL的英文全名是VHSIC(VeryHighSpeedIntegratedCircuit)HardwareDescriptionLanguage,于1983年由美国国防部正式推出,1986年VHDL被建议作为IEEE标准,经过多次更改后,直到1987年12月,它才被IEEE接纳为硬件描述语言标准(IEEESTD1076),该标准经过不断完善和更新,最近的标准为IEEE1164标准,己经被IC生产厂家和EDA工具提供商所接受。
当前几乎所有的EDA软件,比如SYNOPSYS,MENTORGRAPHICS,PASS,CADANCE等都支持该项标准。
VHDL已经成为硬件描述语言的业界标准之一。
VHDL是一种全方位的硬件描述语言,包括系统行为级、寄存器传输级和逻辑门级多个设计层次,支持结构、数据流、行为三种描述形式的混合描述,因此VHDL几乎覆盖了以往各种硬件描述语言的功能,整个自顶向下或自底向上的电路设计过程都可以用VHDL来完成。
VHDL主要用于描述的结构、行为、功能和接口。
除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法是十分类似于一般的。
VHDL的程序结构特点是将一项工程设计,或者称作设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或者称可视部分,及端口)和内部(或者称不可视部分),既涉及实体的内部功