基于FPGA的16位乘法器的实现_第1页
基于FPGA的16位乘法器的实现_第2页
基于FPGA的16位乘法器的实现_第3页
基于FPGA的16位乘法器的实现_第4页
基于FPGA的16位乘法器的实现_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2014学年第2学期

物电学院期末考试卷《微型计算机控制技术》号:

:

:说明:本人是FPGA学者,希望有共同爱好者一起探讨,加说明FPga装订线

(考试题目及要求)基于FPGA的乘法器的实本设计以16位乘法器的设计为基础,从而掌握现代大规模集成数字逻辑电路的应用设计方法进一步掌握电子仪器的正确使用方法以及掌握利用计算机进行电子设计自动化(EDA)的基本方法。由16位加法器构成的以时序逻辑方式设计的位乘法器,乘法通过逐向移位加原理来实现,从被乘数的最低位开始,若为1,则乘数左移与上一次和相加;若为0,左移后以全零相加,直至被乘数的最高位。从而实现乘法的移位运算。word档可自由复制编辑引摘

目录.......................................................................................................................................-1-.......................................................................................................................................-2-一、乘法器概.......................................................................................................................31.1EDA术的概........................................................................................................-31.2EDA术的特........................................................................................................-31.3EDA计流............................................................................................................-51.4硬件描述语言(VerilogHDL................................................................................-5二、16乘法器的设计要求与设计思..............................................................................--2.2设计要....................................................................................................................-616乘法器的总体框..................................................................................................--16乘法器的综合设..................................................................................................--4.116乘法器功........................................................................................................74.216乘法器设计思................................................................................................--4.3基于VerilogHDL硬件语言的乘法器设计............................................................-8-输入模.........................................................................................................8乘法模.........................................................................................................9五、总体调试与仿真结.....................................................................................................-105.1乘法器的RTLViewer..........................................................................................105.216乘法器的系统程序-5.3计算结果仿真结...................................................................................................-12仿真测试程序(,..............................................................................--总.........................................................................................................................................16参考文.................................................................................................................................--word档可自由复制编辑引言随着微电子技术的飞速发展集成电路工艺进入深亚微米阶段特征尺寸变得越来越小。基于工艺水平提高,的容量变的越来越大,同时也集成了大量功能单元模块,如硬核处理器、数字信号处理器(Digitalsignalprocessing,、专用乘法器等。在用作电路设计时,这些模块使得复杂化电路设计变得非常容易。因此,提升能的根源在于提升这些专用模块的性能。乘法器是硬核处理器、DSP、滤波器、高性能微控制器等器件重要的运算部件之一。它能够提供强大的数学运算以进行实时性信号处理。同时,高性能乘法除了直接用于运算单元外还在图像、语音、加密等信号处理领域扮演着非常重要的角色。高性能乘法器的结构复杂、延时大、运算周期较长,往往处于系统的关键路径上。特别是在DSP中乘法累加运算的实现速度几乎完全决定着数字信号处理的速度而在一般的硬核处理器中完成一次乘法运算所需要的时间也基本上决定了硬核处理器的工作频率。word档可自由复制编辑摘

要在集成电路设计领域中各类微处理器已经成为了整个芯片系统的核心人们对其性能要求越来越高使得微处理器中的每一个部件的性能都在不断的提升乘法器作为微处理器中的核心部件已经成为衡量现代高性能计算和数字信号处理的重要指标它的设计与实现直接影响着微处理器的性能关于提高乘法器性能的研究一直是国内外高微处理器性能的重要课题本文对微处理器中核心运算部件乘法器进行了较为深入研究算法和逻辑两个方面对乘法器的子模块和乘法器整体进行了优化算法方面,提出了重新设计部分积产生电路单元的方法细分析究了部分积压缩器阵列结构,发现了其存在结构不规整的缺点提出了一种减少部分积压缩器级数降低电路和版图实现复杂度的方法终实现了两种不同结构的乘法器性能均优于传统结构乘法器,达到了优化设计,提高乘法器性能的目的。关键词:Booth算法WalIace树加法器并行乘法器word档可自由复制编辑一乘器述1.1EDA技术概念EDA是电子设计自动化(Electronic)的缩写,在世纪90代初从计算机辅助设计CAD计算机辅助制造CAM算机辅助测试CAT)和计算机辅助工程CAE)的概念发展而来的EDA技术就是以计算机为工具,设计者在EDA软件平台上用硬件描述语HDL完成设计文然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。1.2EDA技术特点利用EDA技术进行电子系统的设计具有以下几个特点①用软件的方式设计硬件;②用软件方式设计的系统到硬件系统的转换是由有关的开发软件自动完成的;③设计过程中可用有关软件进行各种仿真;④系统可现场编程,在线升级;⑤整个系可集成在一个芯片上,体积小、功耗低、可靠性高。因此EDA技术是现代电子设计的发展趋势。()II软件Quartus

II

是Altera公司的综合性PLD/FPGA开发软件,支持原理图、VHDL、VerilogHDL以及AHDL(AlteraDescription)等多种设计输入形式,内嵌自有的综合器以及仿真器可以完成从设计输入到硬件配置的完整PLD设计流程。QuartusII以在XP、Linux以及Unix上使用,除了可以使用Tcl脚本完成设计流程外,提供了完善的用户图形界面设计方式。具有运行速度快,界面统一,功能集中,易学易用等特点。QuartusII持Altera核,包含了LPM/MegaFunction宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。对第三方工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三方工具。此外,QuartusII通过和具与相结合,可以方便地实现各种应用系统支持Altera片上可编程系(开发集系统级设计、word档可自由复制编辑嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。MaxplusII作为Altera的上一代设计软件,由于其出色的易用性而得到了广泛的应用。目前Altera已经停止了对II的更新支持,QuartusII与之相比不仅仅是支持器件类型的丰富和图形界面的改变。Altera在QuartusII中包含了许多诸如SignalTapIIChipEditor和Viewer的设计辅助工具,集成和设计流程,并且继承了MaxplusII友好的图形界面及简便的使用方法。AlteraQuartusII作为一种可编程逻辑的设计环由于其强大的设计能力和直观易用的接口,越来越受到数字系统设计者的欢迎。()ModelSim仿真软件Mentor公司的是业界最优秀的HDL语言仿真软件,它能提供友好的仿真环境,是业界唯一的单内核支持VHDLVerilog混合仿真的真器。它采用直接优化的编译技术、Tcl/Tk技、和单一内核仿真技术,编译仿真速度快,编译的代码与平台无关,便于保护IP核,个性化的图形界面和用户接口,为用户加快调错提供强有力的手段,是FPGA/ASIC设计的首选仿真软件。主要特:·RTL和门级优化,本地编译结构,编译仿真速度快,跨平台跨版本仿真;·单内核VHDL和Verilog混合仿真;·源代码模版和助手,项目管理;·集成了性能分析、波形比较、代码覆盖、数据流ChaseX、SignalSpy、虚拟对象VirtualObject、Memory窗口、口、源码窗口显示信号值、信号条件断点等众多调试功能;·C和Tcl/Tk接,调试;·对的直接支持,和HDL任意混合;·支持SystemVerilog的设计功能;·对系统级描述语言的最全面支持,SystemVerilog,SystemC;·ASICoff。·可以单独或同时进行行为(behavioralRTL级、和门级(gate-level)的代码。word档可自由复制编辑1.3EDA计流程典型的EDA设计流程如下文本/原理图编辑与修改。首先利用EDA工具的文本或图形编辑器将设计者的设计意图用文本或图形方式表达出来。编译。完成设计描述后即可通过编译器进行排错编译,变成特定的文本格式,为下一步的综合做准备。综合将软件设计与硬件的可实现性挂钩将软件转化为硬件电路的关键步骤。4、为仿真和功能仿真。利用产生的网表文件进行功能仿真,以便了解设计描述与设计意图的一致性。适配。利用FPGA/CPLD布局布线适配器将综合后的网表文件针对某一具体的目标器件进行逻辑映射操作,其中包括底层器件配置、逻辑分割、逻辑优化、布局布线。适配报告指明了芯片内资源的分配与利用、引脚锁定、设计的布尔方程描述情况。功能仿真和时序仿真。下载。如果以上的所有过程都没有发现问题,就可以将适配器产生的下载文件通过FPGA/CPLD下载电缆载入目标芯片中。硬件仿真与测试。1.4硬件描语言(VerilogHDL)主要用于描述数字系统的结构,行,功能和接口。除了含有许多具有硬件特征的语句外,Verilog的语言式和描述风格与句法是十分类似于一般的计算机高级语言Verilog的程序结构特点是将一项工程设计或称设计实可以是一个元件,一个电路模块或一个系统)分成外部(或称可是部,及端口和内部(或称不可视部分既涉及实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是Verilog系统设计的基本。用代码而不是用原理图进行设计,味着整个电路板的模型及性能可用计算机模拟进行验证。元件的设计与工艺无关,与工艺独立,方便工艺转换。支持各种设计方法,自顶向下、自底向上或者混合的都可以。可以进行从系统级到逻辑级的描述,即混合描述。区别于其他的已形成标准其代码在不同的系统中可交换建模。word档可自由复制编辑二乘器设要与计路2.1设计的本次设计的目的就是通过实践深入理解技术并掌握HDL硬件描述语言的设计方法和思想。通过学习的VerilogHDL语言结合电子电路的设计知识理论联实际,掌握所学的课程知识和基本单元电路的综合设计应用。通过对位乘法器的设计,巩固和综合运用所学知识,提高设计能力,提高分析、解决计算机技术实际问题的独立工作能力。2.2设计求在该实验中利用时序逻辑设计方法来设计一个16位乘法器的模块,当给定启动/清零指令时,能自动发出CLK号驱动乘法运算,当输入乘数和被乘数时,自动锁存,实现乘法运算,正确输出结果。通过对位乘法器的设计,掌握所学课的基本知识和对HDL语言的综合设计应用。通过课程设计,提高设计能力,提高分析解决实际问题的能力并在设计中了解硬件编程的流程和思路为以后工作和发挥技术打下基础。三乘器总框word档可自由复制编辑说:

此电路由五部分组成它们分别是控制器,锁存器,寄存器,加法器,乘法器。1.控制器是一个乘法器的控制模块,用来接受实验系统上的连续脉冲。2.锁存器起锁存的作用,它可以锁存位乘数。移位寄存器起移位的作用,便于被乘数可以逐位移出。乘法器功能类似一个特殊的与非门。加法器用于16乘数和高位相加。四乘器综设4.116位乘法器功能由16加法器构成的以时序逻辑方式设计的16乘法器此乘法器具有一定的实用价值。其乘法原理是:乘法通过逐项位移相加原理来实现,从被乘数的最低位开始,若为1,则乘数左移后与上一次和相加;若为0左移后以全零相加,直至被乘数的最word档可自由复制编辑高位。乘法运算控制电路中,它S信号的上跳沿与高电平有两个功能,32寄存器清零和被乘数A[15..0]向移位寄存器加载:它的低电平则作为乘法使能信号。乘法时钟信号由CLK输入。当被乘数加载于16位右移寄存器后,随着每一时钟节拍,最低位在前,由低位至高位逐位移出。当为1时,与门打开,8为乘数B[15..0]在同一节拍进入16加法器,与上一次锁存在32锁存器中的高位进行相加,其和在下一时钟节拍的上升沿被锁进此锁存器。而当被乘数移出位为0,与门全零输出。如此往复,直至16个时钟脉冲后,乘法运算过程自动中止。出高电平,以此可点亮一发光管,以示乘法结束。此时乘法器的输出值即为最后乘积。4.216位乘法器设计思路纯组合逻辑构成的乘法器虽然工作速度较快但过于占用硬件资源难以实现宽位乘法器由16加法器构成的以时序逻辑方式设计的16乘法器具有一定的使用价值而且由FPGA成实验系统后可以很容易的用ASIC大型集成芯片来完成,性价比高,可操作性强。其乘法原理是:乘法通过逐项移位相加原理来完成,从被乘数的最低位开始,若为1,则乘数左移后于上一次的和相加;若左移后以全零相加,直至被乘数的最高位。4.3基于VerilogHDL硬件语的乘法设计()输入输出模块该模块为复位信号以及乘数和被乘数输入,同时还包括乘法运算的控制信号的输入,具体输入输出端口及相应的功能如下:word档可自由复制编辑()乘法模块将乘数b每一位与被乘数a相乘,如果b该位为0则相乘得0,时将所得结果右移一位并且锁存到32位锁存器中如果的该位为则相乘后左移相应的位数并寄存反复迭代上述步骤直到计算出最终乘积。相应程序如下:reg[15:0]areg;reg[15:0]breg;reg[31:0]youtr;always(posedgebeginif(!reset)begin<=16'h0000;<=16'h0000;word档可自由复制编辑youtr<=32'h0000_0000;//上以后清零if(start)//启动运算beginif(i==5'd0)begin<=ain;//锁存乘数被乘<=bin;if(i>5'd0&&i<5'd16)begin相加移位youtr<=youtr>>1;//移位相加if(i==5'd16&&areg[15])youtr[31:16]<=youtr[31:16]+breg;//相加不移位End五总调与真果5.1乘法的RTLViewer如下图为乘法器的RTLViewer由图可知综合后的R视图很好的表现出了代码设计中移位累加的设计思想。word档可自由复制编辑乘法器综合后RTL视图5.216位乘法器的系统程:multi(clk,reset_n,start,ain,bin,yout,done);inputclk,reset_n;//50M全局时钟低电平有效inputinput[15:0]input[15:0]bin;output[31:0]yout;//wire[7:0]outputdone;//---------------------------------------------------------------------------------------//位寄存器[4:0]i;always(posedgebeginif(start&&i<5'd17)if(!start)i<=5'b0;//复位以后从零开始计时//---------------------------------------------------------------------------------------//法运算完成标志信号产生doner;always(posedgebegindoner<=1'b0;word档可自由复制编辑if(i5'd16)doner<=志信号产生if(i5'd17)doner<=销标志信号done=doner;//---------------------------------------------------------------------------------------//法实现,移位相乘areg;reg[15:0]breg;reg[31:0]youtr;always(posedgebeginbegin<=16'h0000;<=16'h0000;youtr<=32'h0000_0000;//上以后清零Endif(start)//启动运算beginif(i==5d0)begin<=ain;//锁存乘数被乘<=bin;if(i>5'd0&&i<5'd16)begin相加移位youtr<=youtr>>1;//移位不相加Endif(i==5'd16&&areg[15])相加不移位5.3计算果仿真果仿真测试序(a=6,b=10)`timescale1ns/1psmulti1_tb();ain;bin;word档可自由复制编辑clk;reset;start;[31:0]yout;multii1(.ain(ain),.bin(bin),.yout(yout));begin#10clk=~clk;begin=1'b0;=1'b0;start=1'b0;#1000rese

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论