移位相加型8位硬件乘法器设计_第1页
移位相加型8位硬件乘法器设计_第2页
移位相加型8位硬件乘法器设计_第3页
移位相加型8位硬件乘法器设计_第4页
移位相加型8位硬件乘法器设计_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

1、合肥学院程设计报告移位相加型8位硬件乘法器别:电子信息与电气工程系业:通信工程级:13通信工程(1)班名:师:石朝毅绩:2016年6月11日移位相加型8位硬件乘法器设计摘要本次设计是基于时序结构的8位移位相加型乘法器,使用as软件QuartusII进行仿真设计。完成此乘法器,我们需要首先设计该乘法器的组件,包括REGSHT莫块、SREG8B莫块、AND8B模块和ADDER8B1模块,并对所有元件进行仿真,无误后可进行乘法器的设计。设计方法使用的是元件例化,具体原理是通过逐项相加来实现乘法功能,最终完成整体的VHDL程序设计并仿真。关键词:时序;乘法器;元件例化!未定义书签。!未定义书签。!未定

2、义书签。!未定义书签。!未定义书签。!未定义书签。!未定义书签。!未定义书签。!未定义书签。!未定义书签。!未定义书签。!未定义书签。!未定义书签。!未定义书签。!未定义书签。目录第i章前言错误设计概述错误问题提出与原理错误设计需要错误第二章设计过程及结果错误设计思路错误设计须知错误基本步骤错误设计代码及仿真错误元件REGSHT设计代码及仿真结果错误元件SREG8BT设计代码及仿真结果错误元件AND8B设计代码及仿真结果错误元件ADDER8BT设计代码及仿真结果错误总模块设计代码及仿真结果错误第三章总结错误致谢错误!未定义书签。第一章前言设计概述问题提出与原理采用元件例化的设计方法,设计一个移

3、位相加型8位硬件乘法器设计。下图所示为一个基于时序结构的8位移位相加型乘法器。图1设计原理图设计需要元件REGSH设计,并仿真;2)元件SREG8BT并仿真;3)元件AND8B,并仿真;元件ADDER8B,T并仿真;5)整体VHDL程序设计,包括元件例化,并仿真。第二章设计过程及结果设计思路设计须知首先建立文件夹在软件工作的环境下,注意对于不同的器件的设计不能放在同一个文件夹当中这样会造成编译时出现混乱的错误现象。对于每个元器件的设计有两种方法:可以利用原理图输入法,或者利用文本输入法进行设计。本次设计使用的是文本输入法。要注意在写文本输入时要注意实体名与你程序中名字一致。然后,依次按照实验指

4、导书的步骤进行设计。先功能仿真,然后时序仿真,最后下载编译。基本步骤(1)为本项设计建立文件夹任何一项设计都是一项工程(Project),都必须首先为此工程建立一个放置与此工程相关的所有文件的文件夹,此文件夹将被EDA软件默认为工作库(WorkLibrary)o一个设计项目可以包含多个设计文件,一般不同的设计项目最好放在不同的文件夹中。注意:文件名不能用中文,且不可带空格。(2)输入设计项目和存盘a.打开QuartusII单击"File"菜单,将鼠标移到NewProjectWizard选项并单击,b.选择FileNew,选择原理图编辑器,双击“BlockDiagram/Sc

5、hematicFile,”或者选中该项后单击“0K按钮。(或者选择FileNew,选择VHDLFile进行文本设计)(3)选择目标器件并编译,在Assignments选项的下拉菜单中选择器件选择项Device.,在Family(器件序列栏)中选定目标器件对应的序列名,EP1C6对应的是Cyclone系列。在AvailableDevices里选择EP1C6Q240C&有时需要把Showadvaneeddevices的勾消去,以便显示出所有速度级别的器件)。注意:所选器件必须与目标板的器件型号完全一致。(4)在总VHDL程序中需要将要用到的之前设计好的元件添加到当前工程中来,添加方法如下:

6、ProjectAdd/RemoveFileinProjeet,找到之前的元件add即可,之后方可进行总程序的编译。(5)仿真时,首先选择EditEndTime设置时间为30us,之后导入输入输出端口,选择Pins:All将需要的端口添加,之后给输入端口进行赋值或添加时钟进行时序仿真。设计代码及仿真元件REGSHTS计代码及仿真结果LIBRARYIEEE;USEregshtISPORT(CLK,CLR:INSTD.LOGIC;D:INSTD_L0GIC_VECT0R(8DOWNTO0);Q:OUTSTD_L0GIC_VECT0R(15DOWNTO0);ENDregsht;ARCHITECTURE

7、behavOFregshtISSIGNALR16S:STD_L0GIC_VECT0R(15DOWNTO0);BEGINPROCESS(CLK,CLR)BEGINIFCLR=T'THENRI6s<二(OTHERS二)'O');ELSIFCLK'EVENTANDCLK=,TTHENR16S(6DOWNTO0)<=R16S(7DOWNTO1);R16S(15DOWNTO7)<=D;ENDIF;ENDPROCESS;Qv=R16S;ENDbehav;TirCd.IIVIJEHlX«XrtwLalxF1I-Ta:P"LeoPf=2IO

8、P1300»IttCTlT400PrjifjnnnnvuuiTjminmirnfuinROinRnnwuirjinnfuinRmiuirLJinnRrmj图2REGSHT寸序仿真图分析:此处锁存器模块即16位右移寄存器可利用IF语句来完成其输入值的锁存当清零CLR'信号到来时定义的信号量R16S锁存输入值即R16S清零否则在时钟信号CLK上升沿作用下将R16S的低8位进行移位操作同时将8位输入数据D锁存到R16S的高8位最后传送给Q输出。在乘法器的顶层设计中乘数与被乘数的乘积也将出现在REG16B端口。元件SREG8B设计代码及仿真结果LIBRARYIEEE;USEsreg8

9、btISPORT(CLK,LOAD:INSTD.LOGIC;DIN:INSTD_L0GIC_VECT0R(7DOWNTO0);QB:OUTSTD.LOGIC);ENDsreg8bt;ARCHITECTUREbehavOFsreg8btISSIGNALREG8:STD.LOGIC.VECTOR(7DOWNTO0);BEGINPROCESS(CLK,LOAD)BEGINIFCLK'EVENTANDCLK=T'THENIFLOAD='1'THENREG8<=DIN;ELSEREG8(6DOWNTO0)v=REG8(7DOWNTO1);ENDIF;ENDIF;EN

10、DPROCESS;QB<=REG8(0);ENDbehav;lfoan<Tl-irlUIrtt1rmtr-JWXmXru-WlI1Jh81rcKlLvlApL*TIKQfhDQTLY190pf惘M.TAr立?Z0国SO.0ni-SirLrlrLnLrLrLrLrLrLrLrLrLr_rLrL-LrLrLrLnrLrirLrurLrLrLJuflnn5曰.图3SREG8BT寸序仿真图分析:8位右移寄存器是当时钟信号CLK处于上升沿时当LOAD=1时将8位被乘数加载进去而当LOAD='。时数据进行移位操作。同时定义一个信号REG8用来装载新rEG8(0)数据及移位后的操作数在完

11、成这些操作后寄存器的最低位传送给QB输出。元件AXD8B设计代码及仿真结果LIBRARYIEEE;USEand8bISPORT(ABIN:INSTD.LOGIC;DIN:INSTD_LOGIC_VECTOR(7DOWNTO0);DOUT:OUTSTD_L0GIC_VECT0R(7DOWNTO0);ENDand8b;ARCHITECTUREbehavOFand8bISBEGINPROCESS(ABIN,DIN)BEGINFORIIN0TO7LOOPDOUT(l)v=DIN(l)ANDABIN;ENDLOOP;ENDPROCESS;ENDbehav;Ujih££liTaOjiM

12、ClDhHrte*SXUizxenF:Ii*End4UJV42加LSXXMW.fnix»tiIVTK|F.nDOmVuKTunUOU0QKurrfEi«图4AND8B时序仿真图分析:加法器是由两个4位二进制加法器U1和U2组成的8位加法器逻辑电路其中U1用来装载8位加法器中两个加数的低四位而U2则用来装载高4位。元件ADDER8BT设计代码及仿真结果USEadder8btISPORT(CIN:INSTD.LOGIC;A,B:INSTD_L0GIC_VECT0R(7DOWNTO0);S:OUTSTD_L0GIC_VECT0R(7DOWNTO0);COUT:OUTSTD.LOG

13、IC);ENDadder8bt;ARCHITECTUREbehavOFadder8btISSIGNALSINT,AA,BB:STD_LOGIC_VECTOR(8DOWNTO0);BEGINAA号'O'&A;BB(二,0,&B;SINT<=AA+BB+CIN;S<=SINT(7DOWNTO0);C0UT<=SINT(8);ENDbehav;SioTiniKc图5ADDER8BT时序仿真图分析:8位加法器的设计是由两个4位加法器UI,U2所形成的在下面程序中定义一个信号量CARRY_OUT将4位加法器U1的COUT赋给CARRY_OUT再将CARR

14、Y.OUT的值赋给4位加法器U2的进位CIN,8位加法器的高四位低四位分别来自于4位加法器U2和UL总模块设计代码及仿真结果LIBRARYIEEE;USEMULT8BISPORT(CLKO,LD:INSTD.LOGIC;A,B:INSTD_L0GIC_VECT0R(7DOWNTO0);Q0:BUFFERSTD_L0GIC_VECT0R(15DOWNTO0);ENDENTITYMULT8B;ARCHITECTUREBEHAVOFMULT8BISCOMPONENTSREG8BTPORT(CLK,LOAD:INSTD.LOGIC;DIN:INSTD_L0GIC_VECT0R(7DOWNTO0);QB

15、:OUTSTD.LOGIC);ENDCOMPONENT;COMPONENTAND8BPORT(ABIN:INSTD.LOGIC;DIN:INSTD_LOGIC_VECTOR(7DOWNTO0);DOUT:OUTSTD_L0GIC_VECT0R(7DOWNTO0);ENDCOMPONENT;COMPONENTADDER8BTPORT(CIN:INSTD_LOGIC;A,B:INSTD_L0GIC_VECT0R(7DOWNTO0);S:OUTSTD_L0GIC_VECT0R(7DOWNTO0);COUT:OUTSTD.LOGIC);ENDCOMPONENT;COMPONENTREGSHTPORT(

16、CLK,CLR:INSTD.LOGIC;D:INSTD_L0GIC_VECT0R(8DOWNTO0);Q:OUTSTD_L0GIC_VECT0R(15DOWNTO0);ENDCOMPONENT;SIGNALNET1:STD_LOGIC;SIGNALNET4:STD_L0GIC;SIGNALNET3:STD_L0GIC_VECT0R(7DOWNTO0);SIGNALNET2:STD_L0GIC_VECT0R(8DOWNTO0);BEGINU1:SREG8BTPORTMAP(CLK=>CLKO,LOAD=>LD,DIN=>A,QB=>NET1);U2:AND8BPORTMA

17、P(DIN=>B,ABIN=NET1,DOUT二)NET3);U4:ADDER8BTPORTMAP(A=>Q0(15DOWNTO8),B=>NET3,CIN=>NET4,S=>NET2(7DOWNTO0),C0UT=>NET2(8);U3:REGSHTPORTMAP(CLK=>CLKO,CLR=>LD,D=>NET2,Q=>QO);ENDARCHITECTUREBEHAV;8nHSiitnlBUoBTif»Lrd03soy2*Ca909B3yoP-IW.pmnMn?CUD)0LBB0IdA20Q(d。E00QMlhmif(MICSPfOtXP31E图6总模块时序仿真图第三章总结本次设计是个综合性设计,我们需要熟悉很多知识才能完成本次设计。通过本次项目的设计,我对一个项目开发的基本流程有了更深层次的了解,也让我加深对EDA的了解,我也开始喜欢上了EDA在此次设计的过程中,遇到了很多问题,如写端口时将小括号写成大括号,有些部分还少了分号导致了编译出错,最后根据错误提示信息找到了错误并改正,还有仿真的时候找不到

温馨提示

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

评论

0/150

提交评论