补码一位乘法浮点运算器--课程设计报告-公开DOC·毕业论文

上传人:zhuma****mei1 文档编号:134661192 上传时间:2020-06-07 格式:DOC 页数:35 大小:1.39MB
返回 下载 相关 举报
补码一位乘法浮点运算器--课程设计报告-公开DOC·毕业论文_第1页
第1页 / 共35页
补码一位乘法浮点运算器--课程设计报告-公开DOC·毕业论文_第2页
第2页 / 共35页
补码一位乘法浮点运算器--课程设计报告-公开DOC·毕业论文_第3页
第3页 / 共35页
补码一位乘法浮点运算器--课程设计报告-公开DOC·毕业论文_第4页
第4页 / 共35页
补码一位乘法浮点运算器--课程设计报告-公开DOC·毕业论文_第5页
第5页 / 共35页
点击查看更多>>
资源描述

《补码一位乘法浮点运算器--课程设计报告-公开DOC·毕业论文》由会员分享,可在线阅读,更多相关《补码一位乘法浮点运算器--课程设计报告-公开DOC·毕业论文(35页珍藏版)》请在金锄头文库上搜索。

1、计算机科学与工程学院课程设计报告 题目全称: 用硬件描述语言设计浮点乘法器(补码一位乘法) 课程名称: 计算机组成原理 指导老师: 职称: 序号学生姓名学号班号成绩123指导老师评语:指导教师签字: 摘 要数字乘法器,作为现代计算机中必不可少的一部分,其设计工作越来越受到人们的重视。本文采用硬件描述语言verilog HDL设计了一个基于补码一位乘法的浮点乘法器,设计功能完善,灵活性较好。理论依据包括浮点运算和补码一位乘法运算。本文对开发环境,测试环境做了简要介绍,并对设计过程进行了详细的描述分析,使用Modelsim软件的Simulator模块进行了功能仿真。关键字:浮点运算;补码一位乘法;

2、乘法器;verilog HDLAbstractDigital multiplier,as an essential part of modern computer,its design has been paid more and more attention.In this paper,we use the hardware description language verilog HDL-based to design a complement of multiplication of floating-point multiplier whose function and flexibi

3、lity are good.Theoretical basis includes floating-point operations and complement multiplication.In this paper,we introduce the environment of development and test briefly,and the design process is described in detail analysis,using the Simulator modules of Modelsim software to carry the functional

4、simulation.Key words: floating-point operations; complement of multiplication; multiplier;verilog HDL目 录第一章 引言41.1课题背景41.1.1应用领域41.1.2国内外研究现状41.2课题意义及价值51.3 理论依据51.3.1浮点运算原理51.3.2补码一位乘法运算原理61.4课题的难点、重点、核心问题及方向91.5本组所做的工作91.6主要内容与章节安排9第二章 课题设计与实现112.1开发工具简介112.1.1 Verilog HDL硬件描述语言112.1.2 Quartus II1

5、12.2需求分析与概要设计122.3设计框架与流程图132.3.1设计框图132.3.2设计流程图132.4详细设计162.4.1补码一位乘法模块设计162.4.2规格化模块设计192.4.3控制模块及加法模块设计212.4.3.1加法模块设计212.4.3.2控制模块设计21第三章 仿真测试223.1仿真测试环境223.2模块仿真测试243.2.1(补码一位)乘法模块仿真测试243.2.2规格化模块仿真测试253.2.3加法模块仿真测试273.3总测试(控制模块测试)29第四章 总结与展望334.1问题及解决方案总结334.1.1乘法模块编写问题334.1.2规格化模块编写问题334.2结论

6、及展望33参考文献34致 谢34第一章 引言1.1课题背景1.1.1应用领域近三十年来,随着数字信号处理技术(DSP)的广泛应用和超大规模集成电路工艺的不断进步,数字乘法器的设计越来越受到人们的重视。该技术是上世纪60年代发展起来的一门新兴学科,当时主要采用计算机模拟的方法研究数字滤波器,现在已经广泛用于需要对信号进行谱分析、滤波、压缩的众多学科和工程领域。1.1.2国内外研究现状当今数字信号处理技术领域里较好,运用较为广泛的带符号数乘法的算法本文列出三个:上世纪50年代,VLSI技术发展出的由门阵列和二维加法器阵列组成的阵列乘法器;之后是由A.D.Booth在1951年提出的Booth算法,

7、十年后由MacSorely提出了修正之后的Booth算法,并一直广泛运用至今;再有就是1977年由Ron Rivest、Adi Shamirh和LenAdleman开发的当今通信领域广发运用的加密算法之一的RSA算法,其主要涉及到的计算为: (1)下面简要介绍一下上文提到过的三种算法:阵列乘法器:早期计算机中为了简化硬件结构,采用串行的1位乘法方案,即反复执行“加法-移位”操作来实现,这种方法并不需要很多的器件。而阵列乘法器的出现就是为了解决这种因串行执行方式而消耗大量时间的问题,所以自从大规模集成电路问世以来,出现了各种形式的流水式阵列乘法器,它们属于并行乘法器。带符号数的阵列乘法器在逻辑结

8、构中,由两个求补器作无符号数乘法处理,和一个算后求补器作符号位处理。RSA算法:它主要涉及公式(1)的计算,而用反复平方法可使上述计算时间只与log2(e)线性相关。在超大规模集成电路的发展中,高速、低功耗、版图设计规则、占用芯片面积小等成为乘法器研究的重点。Booth算法:它采用相加和相减的操作计算补码数据的乘积。Booth算法对乘数从低位开始判断,根据两个数据位的情况决定进行加法、减法还是仅仅移位操作。判断的两个数据位为当前位及其右边的位(初始时需要增加一个辅助位0),移位操作是向右移动。其核心思想是通过对乘数编码,压缩部分积个数,进而缩短乘法运算的时间,而修正后的Booth算法将部分积的

9、个数压缩至原来的1/2左右,且与乘数无关。本次课程设计所选用的设计算法就是Booth算法,所以会在正文中作详细的说明。1.2课题意义及价值乘法运算在数字信号处理算法中占有重要地位。因为在数字信号处理中存在着大量形如Y=AX+B的运算,即两个数相乘后与另一个数相加,而且这种运算往往是反复进行的。因此,研究硬件乘法器是实时数字信号处理器中乘法实现的需要。自数字信号处理技术诞生之日起,实时处理就是人们奋斗不懈的目标。实时处理的实现,一方面在于采用先进算法降低运算量,另一方面在于提高硬件运算的速度。根据查阅资料并显示,假设每条基本指令按1us计算(乘除指令除外),软件执行完成一次4位4位(2二进制)的

10、乘法需要约100us,协处理器(如8087),执行定点和浮点乘法运算需要20us,而硬件乘法器作为专用运算单元,可以在几十ns内完成一次浮点乘法运算。由此可见,乘法的硬件实现对于提升DSP系统性能有重要意义。目前再来看一组数据,“目前,嵌入式设计中约有38%已经采用了DSP芯片代替传统的MCU芯片,以制造具有更高性能的产品;另外约有49%正计划采用(Fig1.7)。全国DSP市场的年增长率超过30%,是集成电路平均增长速度的两倍(Fig1.8)。”由上可以看出,数字乘法器的技术发展推动着DSP的发展。研究本课题,于组内成员而言的意义在于,通过查阅相关的资料,能使我们进一步透彻的掌握补码一位乘法

11、的计算原理,分析乘法的计算过程及整个运算中涉及到的各模块的工作原理。本课题实现的是浮点一位乘法运算,这是一个从简到繁的过程,对以后涉及多位乘法器打下了好的基础。此外,本课程设计还是我们学习、熟悉了新的一种硬件编程语言Verilog HDL。1.3 理论依据1.3.1浮点运算原理设浮点数A=,则 即阶码相加,尾数相乘。其运算可按以下步骤进行。 检测能否简化操作,并置结果数符。如果操作数中有一个为0,乘积必为0,不需做其他操作。如果两数均不为0,才进行乘法运算。结果数符按同号相乘为正、异号相乘为负的规则确定。 阶码相加。如果阶码用补码表示,则阶码相加可按常规补码加法进行。如果阶码用移码(增码)表示

12、,由于阶码本身已有一个偏移量,相加后偏移量将加倍,所以移码相加后应作修正(即减去)。阶码相加有可能产生溢出,同号相加可能上溢(正阶码),也可能下溢(负阶码)。当产生溢出时,浮点运算器将发出溢出信号,使机器转入溢出处理。 尾数相乘,可以用任何一种定点小数乘法实现。可见浮点数乘法包含两组定点运算,即定点整数的阶码运算与定点小数的尾数运算。这两组运算可以共用一个加法器,分步执行;也可以在常规加法器的基础上再设置一个专门的阶码加法器,并行执行,以提高运算速度。 乘积规格化。尾数相乘后,可能需要左规。由于尾数是定点小数,相乘后不会出现需右规的情况。左规时阶码减1,有下溢的可能。1.3.2补码一位乘法运算

13、原理补码乘法是指操作数与结果均以补码表示,连同符号位一起,按相应算法运算。实现补码乘法有两种方法。一种是先按原码乘法那样直接乘,再根据乘数符号进行校。其算法规则如下:1)、不管被乘数X补的符号如何,只要乘数Y补为正,则可像原码乘法一样进行运算,其结果不需要校正。2)、如果乘数Y补为负,则先按原码乘法运算,结果再加一个校正量-X补。这种算法称为校正法。另一种方法是将校正法的两种情况统一起来,演变为比较法。由于它是Booth夫妇首先提出的,所以又称为Booth算法。这是现在广泛采用的补码乘法,如果不加说明,一般所指的补码算法就是比较法。(1)比较算法分析补码一位乘比较法可用下式表示: (1)式(1

14、)概括了校正法的两种情况:如果乘数为正,即,Y的尾数乘以被乘数(X)补,不需校正。若乘数为负,即,则(X)补乘以(Y)补的尾数后,再减(X)补校正。 将式(1)改写为:(2)在机器实现中可在末位Yn之后再增设一个附加位Yn+1,其初始值为0,对乘数Y的值并无影响。若定义(A0)补为初始部分积,A1补-An补依次为各步求得累加并右移后的部分积,则式(2)改写为如下递推公式,它更接近于乘法的分步运算形式。(3) 式(3)表明了补码一位乘法的基本操作:被乘数X补乘以对应的相邻两位乘数之差值,再与原部分积累加,然后右移一位,形成该步的部分积累加和。由于根据相邻两位乘数之差(低位减高位),即两位的比较结果来决定相应操作,所以称为比较法。因为每步要右移1位,所以参与比较的两位始终位于最末的Yn、Yn+1,可根据这两位的值决定操作,规则如表1-1所示。 表1-1 补码一位乘规则(2)运算实例X=-0.1101,Y=-0.1011,求(XY)补。初值:A=00.0000,B=X补=11.0011, -B=(-X)补=00.1101,C =Y补=1.0101图1-1 补码一位乘实例本例以分步算式的形式表明了补码一位乘法的运算过程,下面再对有关要点进行说明。1、初始值和符号位 A

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 毕业论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号