文档详情

基于FPGA的流水线乘法器设计.pdf

发布:2017-05-10约4.71千字共1页下载文档
文本预览下载声明
科技信息 博士 ·专家论坛 基于 FPGA硇流水线乘法器设计 绥化学院计算机系 尤菲菲 [摘 要]采用verilogHDL-~ ,在FPGA上实现了32位单精度浮点乘法器的设计,该乘法器对booth编码算法、4:2压缩器算法、 及简化部分积的符号扩展等方法进行扩展,进一步提高了乘法器的运算速度。通过对该乘法器进行各种设计分析,得出改进后的32 位乘法器结构。整个设计采用4级流水线结构,并在软件开发平台上通过了编译、仿真及综合验证。 [关键词]乘法器 VerilogHDL 仿真 1.引言 countcount2c(lock,suml,carryl,PP4,PP5,PP6,PP7,eout1,cout0); verilogHDL是当今最流行的硬件描述语言之一,能够对最复杂的 芯片和最完整的电子系统进行描述。乘法器是现代微处理器中的重要 countcount3(clock,sum,carry,sum0,caHy0,suml,carryl,cout,cin0); 部件,乘法器完成一次乘法操作的周期基本上决定了微处理器的主频。 本文采用VerilogHDL语言设计实现浮点乘法器,并对其进行改进,使 3_3改进的Wallace树型乘法器结构的设计 系统具有高速度,低功耗的特点,并且结构规则,易于实现。 为了能够结合CSA灵活性好 ,单级时延小,以及 4—2压缩器路径 2.Booth算法 较平衡 ,对称性好的优点,本论文在设计乘法器结构时,采用了一种以 Booht编码是A.D.Booth在 1951年为了解决由符号乘法运算中复 CSA和4—2压缩器共同作为基本加法单元的混合电路结构 ,构建了一 杂的符号修正问题而提出的一种乘数编码方法。它是 目前被广大设计 种改进的Wallace树型结构的乘法器,其具体结构如图1所示。 者所普遍采用的乘法器编码算法之一,该算法原理如下所示。 如果直接考虑符号位,两个n位补码表示的有符号数相乘A×B, 那么乘数B可以表示为: B=一B【1】×2n_+Bn司×22l+…+Bl【】X21+B阿×2o : ∑((一Bm+Bti-I])×2) 则: P=AXB=A×(一B l】×2n_+B㈣ X2—2+…+BtI】×2%Bto~×2o) = ((一BD】+BIi-l1)A×2i) i=O 乘法器中若乘数为有符号数 ,扩展其最高位 ;而若是无符号数,则 图1改进的wallace树型乘法结构 做一位0扩展。这样就可利用Booht算法的优点:无论乘数的符号如何, 4.流水线乘法器的实现 都可以采用同样的Booht编码模块来实现。 MIPS体系结构是流水线体系结构。本设计执行每条MIPS指令就 Booth算法将有符号数和无符号数乘法很好的统一起来。然而对于 被分成四个阶段——称为流水段。在各流水阶段中,一般完成如下工 n位有符号乘法来说,这种算法虽然每次考虑乘数的两位,但同样会形 作: 成n个编码项和n个需要求和的部分积,所以它并不能很好的减少完 IF(InstruetionFeteh)取指令。从指令缓存中获取下一条指令。 成一次乘法所需要的时钟周期数。相反 ,在做无符号数乘法的时候,因 ID(InstmefionDecoding)指令译码。对指令进行译码 ,并读取所用 为符号扩展的缘故,还需要一个额外的时钟周期来完成对增加的部分 CPU寄存器中的内容。 积的累加工作。
显示全部
相似文档