《16×16位移位相加乘法器设计毕业论文.doc》由会员分享,可在线阅读,更多相关《16×16位移位相加乘法器设计毕业论文.doc(39页珍藏版)》请在优知文库上搜索。
1、本科学生毕业论文论文题目:1616位移位相加乘法器设计学 院:电子工程学院年 级:专 业:姓 名:学 号:指导教师: 年 月 日1616位移位相加乘法器摘要随着集成电路设计技术的不断进步,乘法器的芯片设计实现的研究与应用越来越广泛,对乘法器进行ASIC芯片设计,具有设计实现过程简单、所用到的EDA工具完善而且成熟、硬件开销小、易于在VLSI电路或系统级芯片中集成。通常,数字电路设计的流程对于芯片的实现而言,需要RTL级的HDL描述,并要对各层次的设计进行功能仿真验证,在验证电路能按预期设计功能工作后,即可对RTL级的HDL描述进行综合、优化,形成门级网表。整个设计流程可称为数字电路的前端设计。
2、本课题基于移位相加算法的研究,设计16位移位相加乘法器,并在功能仿真通过后,将所设计的Verilog RTL级代码进行综合,采用Synopsys公司Design Compiler EDA工具进行电路综合,获得16位移位相加乘法器的门级网表与电路实现。关键词数字电路设计;移位相加乘法器;综合;Abstract Abstract abstract abstract abstract abstract abstract abstract abstract abstract abstract abstract abstract abstract abstract abstract abstract a
3、bstract abstract abstract abstract abstract abstract abstract abstract abstract abstract abstract abstract abstract abstract abstract abstract abstract.(英文摘要内容必须与中文摘要完全对应。英文摘要采用Times New Roman小四号字书写,毕业论文、毕业设计行与行之间、段落和层次标题以及各段落之间均为1.5倍行距。)Key wordsKey words;key words; key words(英文关键词内容必须与中文关键词完全对应。英文
4、关键词采用Times New Roman小四号字书写,毕业论文、毕业设计行与行之间、段落和层次标题以及各段落之间均为1.5倍行距。关键词与关键词之间用“;”隔开)目录摘要1Abstract2第一章 乘法器研究的背景与意义41.1乘法器的发展现状41.1.1国内乘法器现状51.1.2国外乘法器现状51.2乘法器概述61.3乘运算61.4乘法器结构71.5乘法器端口定义8第二章 移位相加乘法器设计的基本原理92.11 移位相加算法92.12 乘法器设计原理102.2移位相加乘法器原理11第三章 1616位移位相加乘法器设计与仿真123.1 16位移位相加乘法器的设计123.2 16位移位相加乘法器
5、Verilog文件设计123.3 1616位移位相加乘法器Modelsim仿真143.3.1 1616位移位相加乘法器经典数组运算结果153.3.2 1616位移位相加乘法器一般情况运算结果17第四章 1616位移位相加乘法器Verilog设计综合184.1 RTL级概念184.2 RTL级综合结果与分析204.3 16位移位相加乘法器电路图22结论26参考文献27附录一28致谢38第一章 乘法器研究的背景与意义数字信号处理中需要频繁进行大数据量的乘法运算。乘法器作为数字信号处理器的重要部件,它的速度直接决定了整个处理器的性能。本课题采用verilog HDL设计了一个16位移位相加乘法器。首
6、先介绍了移位相加乘法器的算法以及比较移位相加乘法器,Booth乘法器,Wallace Tree乘法器各自的特点。介绍了本课题在综合时需用到的Design Compiler(DC)综合工具。随后提出了自己的乘法器设计架构设计了一个16位移位相加乘法器。并用Design Compiler(DC)进行了优化。所设计的乘法器是1616位,基于Altera公司的Modelsim平台上用Verilog_HDL软件进行功能仿真,验证了功能正确,达到了预期的目标。微处理器的发展随着集成电路的迅猛发展而日新月异。在微处理器芯片中乘法器是进行数字信号处理的核心同时也是微处理器中进行数据处理的关键部件,它已经是现代
7、计算机必不可少的一部分。乘法器的算法也有很多种,例如移位相加算法、布斯(Booth)算法、华莱士树(Wallace Tree)算法等。其中移位相加算法是乘法器最基础的算法,其它的算法都是在它的基础上为了压缩和优化这种算法延伸出来的算法,目的是提高乘法器的运算速度以及实现更多的乘法器功能。虽然不断有关于32位、64位乘法器的研究出现, 但由于大量的媒体信号处理只需16位运算就能胜任, 因此对16位乘法器的研究仍有着相当的应用价值。1.1乘法器的发展现状过去的十年中,研究者扩展了Booth编码算法的空间,提高了乘法器的性能;改进了部分积压缩技术,使乘法器结构更加规则;以传输管逻辑、多路选择器和动态
8、技术为基础的各种电路实现方法也持续刷新高性能乘法器的实现记录;与此同时,与物理实现紧密相关的乘法器拓扑结构的研究也硕果累累。但不断提高的高性能运算需求使得高性能乘法器的设计和实现仍然是当前的热门话题。1.1.1国内乘法器现状乘法器的设计与应用在国内研究领域也取得了很好的成绩,1993年中科院声学研究所应用于18位乘法器,实现工作频率38MHZ.。随着应用要求的领域与性能不断提高,1997年国防科技大学完成应用于数字神经处理的16位乘法器,频率30MHZ。2001年西安微电子技术中心于敦山实现了32位定/浮点乘法器延时56/76ns。进入新世纪以来,集成电路工艺水平不断提升,2002年西安交通大
9、学袁寿财实现了0.25um下延时40ns。2003年中科院计算研究所周旭采用0.18um的工艺实现54位浮点乘法器384MHZ。2004年复旦大学武新宇采用0.18um的工艺实现64位乘法器延时2.82ns。2005年上海大学王田采用0.18um的工艺实现32位乘法器延时3.15ns。2007年东南大学王定采用FPGA设计24位乘法器延时18.81ns。乘法器的设计一直是集成电路设计研究领域的一个热点,也有着广泛的应用。1.1.2国外乘法器现状理论方面乘法器研究上的里程碑应该从Booth AD在1951年提出的Booth编码方法和Wallace的树型压缩开始。随后出现了Booth2算法、压缩器
10、(进位保留加法)、延迟平衡树等各种算法结构。国外乘法器在电路方面的发展同样迅猛,1995年Ohkubo基于传输管逻辑实现了44ns 54位乘法器,同时提出了新的4:2压缩单元结构和进位选择加法器结构。1996年Hanawa实现了43nS的54位乘法器,同一年,Makino实现了88ns54位冗余二进制编码乘法器。1997年Inoue提出了符号选择Booth解码和改进的4:2压缩单元结构,实现了41ns的54位乘法器。1998年Hagihara基于动态技术和传输管逻辑实现了27 ns的54位乘法器。同年Carlson介绍了60 ns的64位乘法器实现方法。2001年Itoh实现了一个600MHz
11、的两级流水线的54位乘法器。2003年Cho基于标准单元库实现了一个325ns的54位乘法器,并提出了改进的进位选择加法器结构。1.2乘法器概述乘法器在当今数字信号处理以及其他诸多应用领域中起着十分重要的作用。随着科学技术的发展,许多研究人员已经开始试图设计一类拥有更高速率和低功耗,布局规律占用面积小,集成度高的乘法器。这样,就能让它们更加适用于高速率,低功耗的大规模集成电路的应用当中。通常的乘法计算方法是添加和位移的算法。在并行乘法器当中,相加的部分乘积的数量是主要的参数。它决定了乘法器的性能。为了减少相加的部分乘积的数量,修正的Booth算法是最常用的一类算法。为了实现速度的提高Walla
12、ce树算法可以用来减少序列增加阶段的数量。我们进一步结合修正的booth算法和Wallace树算法,可以看到将它们集成到一块乘法器上的诸多优势。但是,随着并行化的增多,大量的部分乘积和中间求和的增加,会导致运行速度的下降。不规则的结构会增加硅板的面积,并且由于路由复杂而导致中间连接过程的增多继而导致功耗的增大。另一方面串并行乘法器牺牲了运行速度来获得更好的性能和功耗。因此,选择一款并行或串行乘法器实际上取决于它的应用性质。在本文中,我们将介绍乘法算法以及在应用结构方面的速度比较,占用面积,功率和这些情况的组合绩效指标。1.3乘运算考虑两个没有符号的二进制数X和Y,分别为M位宽和N位宽。为了说明
13、乘法运算,可以用二进制形式来表示X和Y: 。于是乘法运算定义如下: 执行一个乘法运算最简单的方法是采用一个两输入的加法器。对于M和N位宽的输入,乘法采用一个N位加法器时需要M个周期。这个乘法的移位相加算法把M个部分积(partial product)加在一起。每一个部分积是通过将被乘数与乘数的一位相乘(这本质上是一个“与”操作),然后将结果移位到这个乘数的位置得到的。实现乘法的一个更快的办法是采用类似于手工计算乘法的方法。所有的部分积同时产生并组成一个列阵。运用多操作数相加来计算最终的积。这一方法如图所示。这一组操作可以直接映射到硬件。所形成的结构称为阵列乘法器(array multiplie
14、r),它结合下面三个功能:产生部分积、累加部分积和最终相加。例如: 1101 被乘数1101 乘数1101 部分积00001101110110010101 结果 二进制乘法的例子1.4乘法器结构乘法器的结构种类很多,在此我只介绍一种乘法器结构供接下来设计移位相加乘法器结构的设计做参考。浮点数包括尾数和指数两部分,尾数部分进行的是乘法运算,指数部分进行的是加法运算,并依据尾数运算结果进行指数调整。图2-1 乘法器结构尾数处理部分主要进行尾数扩展和一些数据正负的判断以及负数的生成,以备在进行Booth编码的时候使用。部分积的产生采用修正的Booth算法产生6个部分积,然后采用3:2和4:2压缩器将结构压缩为两个,高速相加得到结果。之后通过符号修正、尾数舍入、规格化等操作对指数进行调整即可完成乘法功能。1.5乘法器端口定义 通常,根据乘法器的功能计算要求定义乘法器的端口如下:mul_16_unsignedain15.0 startbin15.0 done clk youtrst_n ain :16位乘数输入bin :16位被乘数输入clk :工作时钟输入res_n :复位信号输入start:开始位done:结束位 yout:乘积输出