ImageVerifierCode 换一换
格式:DOCX , 页数:24 ,大小:292.64KB ,
资源ID:10418017      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10418017.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(8位乘法器毕业设计论文.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

8位乘法器毕业设计论文.docx

1、8位乘法器毕业设计论文本科生毕业论文(设计)8位乘法器的设计姓 名: 吴小东 指导教师: 华婷婷 院 系: 信息工程学院 专 业: 计算机科学与技术 提交日期: 2010/4/30 目 录中文摘要2外文摘要31.绪论41.1概述41.2 VHDL和MAX+PIUS简介51.3 实验平台62乘法器初步设计7 2.1 设计思想7 2.2乘法器原理7 2.3乘法器设计流程83. 乘法器具体设计93.1右移寄存器的设计93.2 加法器模块的设计10 3.2.1 4位加法器的设计10 3.2.2 8位加法器的设计113.3 乘1模块设计133.4锁存器模块设计144. 乘法器仿真174.1 8位加法器仿

2、真174.2 乘1模块仿真174.3 锁存器模块仿真184.4 8位乘法器仿真 18结束语19参考文献 20致谢218位乘法器的设计吴小东指导老师:华婷婷(黄山学院信息工程学院,黄山,安徽 245041)摘 要:在微处理器芯片中,乘法器是进行数字信号处理的核心,同时也是微处理器中进行数据处理的关键部件,它已经是现代计算机必不可少的一部分。本文主要是在于如何运用标准硬件描述语言(VHDL)完成八位乘法器,以及如何做二进制位相乘的运算过程。该乘法器是由八位加法器构成的以时序方式设计八位乘法器,通过逐项移位相加来实现乘法功能,并以MAX+Plus II 软件工具进行模拟,仿真并予以显示。关键字:乘法

3、器;标准硬件描述语言(VHDL);移位相加;MAX+Plus II 8-bit multiplier designWu xiaodongDirector:hua tingting(College of InformationEngineering,HuangshanUniversity,Huangshan,Anhui,245041)Abstract:In the microprocessor chip, the multiplier is a digital signal processing core microprocessor is also a key component of dat

4、a processing, it is already an essential part of the modern computer. This article is on how to use standard hardware description language (VHDL) to complete eight multipliers, as well as how to make the process of a binary bit multiplication operation. The multiplier is composed of eight adder to t

5、iming approach in designing eight multiplier, achieved by adding the multiplication-by-shift function, and in MAX + Plus II software tools for simulation, emulation and be displayed.Keywords: multiplier; standard hardware description language (VHDL); shift sum; MAX + Plus II1.绪论1.1概述本课题的设计来源是基于标准硬件描

6、述语言(Very High Speed Integrated Circuit Hardware Description Language,VHDL)及MAX + Plus II(Multiple Array Matrix Programmable Logic User System)软件开发工具的进行模拟仿真的8位乘法器,用于实现8位移位相加乘法器的乘法运算功能。本课题的研究现状是基于乘法器是定点处理器的主要组成部分,其速度是影响CPU速度的关键因素。乘法器也是数字信号处理(DSP)、系统级芯片(SOC)的关键部件。在最新的处理器中乘法器除了直接作为运算部件外,还用于加速地址转换、数组寻址和其

7、他整数操作。随着科研生产地运算速度要求的提高,对乘法器性能的要求也在不断地提升。BOOTH算法、WALLACE树、CLA等技术的出现也使得乘法器设计的技术日益成熟。而不同的应用背景又要求在不同的算法和实现之间进行选择,权衡电路性能,达到特定条件下的最优设计。本次设计的目的就是在掌握移位相加八位乘法器的工作原理,了解并学习掌握VHDL硬件描述语言的设计方法和思想,通过自己学习的VHDL语言结合以前电子电路的设计知识理论联系实际,掌握所学的课程知识,学习VHDL基本单元电路的综合设计应用。通过对八位二进制乘法器的设计,巩固和综合运用所学课程,加深对数字电路和VHDL基本单元的理解,并借助MAX +

8、 Plus II软件开发工具这个平台进行仿真,理论联系实际,提高设计能力,提高分析、解决计算机技术实际问题的独立工作能力。通过课程设计深入理解VHDL语言的精髓,达到课程设计的目标,加法器的设计可以加深对门电路的理解,乘法器的设计可以使对计算机怎样工作有了更深了解。本设计的主要难点包括:1)了解乘法器的工作原理和乘法器的各个子模块的功能实现,并分析其内部构造。2)根据设计的功能要求,使用标准硬件描述语言(VHDL)设计出移位相加8位乘法器3)利用MAX + Plus II软件工具完成8位乘法器的仿真。1.2 VHDL和MAX+PlusII简介 VHDL是超高速集成电路硬件描述语言的中文缩写,它

9、是电子系统硬件行为描述、结构描述、数据流描述的高级语言。它在20世纪80年代的后期出现。最初是由美国国防部开发出来供美军用来提高设计的可靠性和缩减开发周期的一种使用范围较小的设计语言 ,并于1987年成为IEEE的一种标准语言,1993年VHDL重新修订,变得更加完备,形成新的标准。该语言设计技术齐全、方法灵活、功能强大、与制作工艺无关、编程易于共享,所以成为硬件描述语言的主流,成为标准硬件描述语言。VHDL作为EDA的重要组成部分,提供了借助计算机进行数字系统设计的一种很好的手段。用VHDL进行有很多优点,VHDL的硬件描述很强,可以用于从门级、电路级直至系统级的描述、仿真、综合和调试。利用

10、VHDL丰富的仿真语句和库函数,对大系统的早期设计,可在远离门级的高层次上进行模拟,以利于设计者确定整个设计结构和功能的可行性。VHDL强大的描述能力和程序结构,使其具有支持多大规模设计进行分解,以及对已有的设计进行再利用的功能。VHDL标准、规范、语法较为严格、便于重复利用和交流。它所具有的类属描述语句和子程序调用等功能,使设计者对完成的设计不必改变程序,只需改变类属于参数或函数,就可改变设计的规模和结构。从ASIC的设计到PCB系统的设计,VHDL语言都能派上用场,都能够轻易地达成设计供者的要求。目前,VHDL语言已经成为FPGD/CPLD编程最常用的工具。MAX+plusII是美国Alt

11、era公司自行开发的,一种针对其公司生产的系列CPLD和FPGA器件的设计、仿真、编程的工具软件。MAX+PlusII是CPLD/FPGA应用软件中比较典型的一种工具,目前已发行到10.2版本。它所提供的灵活性和高效性事无可比拟的,其丰富的图形界面,辅之以完整的、可即时访问的在线文档,使设计人员能够轻松愉快的使用它。使用MAX+PlusII的设计者不需精通器件内部的复杂结构。设计者可以用自己熟悉的设计工具(如原理图输入或硬件描述语言)建立设计,MAX+PLUSII把这些设计转自动换成最终所需的格式。其设计速度非常快。对于一般几千门的电路设计,使用MAX+PlusII,从设计输入到器件编程完毕,

12、用户拿到设计好的逻辑电路,大约只需几小时。设计处理一般在数分钟内内完成。特别是在原理图输入等方面,MaxplusII被公认为是最易使用,人机界面最友善的PLD开发软件,特别适合初学者使用。在Max+plusII上可以完成设计输入、元件适配、时序仿真和功能仿真、编程下载整个流程,它提供了一种与结构无关的设计环境,具有多平台、全集中化、模块组合式工具软件、硬件描述语言、开放的界面等特点,是设计者能方便地进行设计输入、快速处理和器件编程。1.3实验平台软件环境:1操作系统:Windows 72仿真软件:MAX+PLUSII硬件环境:1CPU Intel2内存 DDR3 2G3硬盘 250GB2乘法器

13、初步设计2.1设计思想 本设计首先要了解乘法器的基本原理 ,我所设计的8位乘法器采用移位和加法来实现,主要用到原码一位乘运算规则。然后对乘法器的进行顶层设计,把乘法器的设计分成几个功能模块,并逐步细化,因此需要了解各个模块的引脚含义以及它们的内部构造,并对各个模块的实现功能进行分析,通过标准硬件描述语言对它们模块进行编程,调试。最后在MAX+PlusII应用软件进行模拟仿真,得出正确的运行结果。2.2乘法器原理8位乘法器可用移位和加法来实现,两个8位数相乘,总共需要执行8次加法运算和8次移位运算。由乘数的末位值确定被乘数是否与原部分积相加,从乘数的最低位开始,若乘数为1,加被乘数,然后右移一位

14、,形成新的部分积,乘数同时右移一位;若乘数为0,加上零值,然后右移一位,形成新的部分积,乘数同时右移一位,直到乘数的最高位为止,从而得出最终的乘积结果。实现原码一位乘法的硬件逻辑结构图如图2-1所示。用寄存器R0存放部分积,R1存放乘数Y,并且最低位Yn作判断位。R0和R1都具有右移功能并且是连通的,寄存器R2存放被乘数X,加法器完成部分积与位积求和,计数器记录相加移位的操作次数。 图2-1 硬件逻辑结构图8位乘法器的顶层设计主要分成四大功能模块 ,并可根据分解的层次进行设计, 各个功能模块作用介绍如下: 1) 右移寄存器模块:是指寄存器中所存的代码能够在移位脉冲的作用下依次左移或右移。本设计

15、采用的一个8位寄存器,能存放8位二进制代码,需用8个触发器来构成,它可将乘法运算中的被乘数加载于其中,同时进行乘法运算的移位操作。2) 加法器:本设计用到一个8位加法器,主要进行操作数的加法运算。3) 乘1模块:主要实现8位与1位的乘法运算。4) 锁存器:它所实现的功能是把当前的状态锁存起来,使CPU送出的数据在接口电路的输出端保持一段时间锁存后状态不再发生变化,直到解除锁定。本次设计采用16位锁存器,同时也是一个右移寄存器,在时钟信号作用下,进行输入值的移位与锁存。2.3乘法器设计流程 本设计采用移位和加法来实现两个8位二进制数相乘。由乘数的末尾值来确定被乘数是否与原部分积相加,然后右移一位

16、,形成新的部分积,同时,乘数也右移一位,由次低位作新的末位,空出最高位放部分积的最高位。例如被乘数为00000101,乘数为01101111,初始条件下,部分积为0,乘数最低位为1,加被乘数,和为00000101,使其右移一位,形成新的部分积为00000010,乘数同时右移一位,原和最低位1被放到乘数的最高位,此时,乘数最低位为1,加00000101,和为00000111,使其右移一位,形成新的部分积为0000011,依次类推,循环8次,总共需要进行8次相加和8次移位操作,最终得出乘积结果。其设计流程图如2-2所示: 图2-2 乘法器设计流程图3乘法器设计模块3.1右移寄存器的设计8位右移寄存

17、器是当时钟信号CLK处于上升沿时,当LOAD=1时,将8位被乘数加载进去;而当LOAD=0时,数据进行移位操作。同时定义一个信号REG8用来装载新数据及移位后的操作数,在完成这些操作后,寄存器的最低位REG8(0)传送给QB输出。该模块的元件符号图如3-1所示: 图3-1 右移寄存器元件符号图如上图所示,8位右移寄存器包括4个引脚分别为:CLK、LOAD、DIN70、DOUT70。在定义8位右移寄存器实体时,定义CLK为输入时钟信号,LOAD为输入加载信号,DIN为8位数据输入,DOUT为8位数据输出。以下是8位右移寄存器构造体行为的定义描述:ARCHITECTURE behav OF SRE

18、G8B IS SIGNAL REG8:STD_LOGIC_VECTOR(7 DOWNTO 0);-定义信号量REG8BEGINPROCESS(CLK,LOAD)BEGIN IF CLKEVENT AND CLK=1THEN -当CLK上升沿到来时 IF LOAD=1THEN -装载新数据到REG8中 REG8=DIN; ELSE REG8(6 DOWNTO 0)=REG8(7 DOWNTO 1);-数据右移 END IF;END IF END PRECESS; QB=REG8(0);-输出最低位到电路输出端END behave;3.2 加法器模块的设计(ADDER8B)加法器模块是由两个4位二

19、进制加法器U1和U2组成的8位加法器逻辑电路,其中U1用来装载8位加法器中两个加数的低四位,而U2则用来装载高4位。3.2.1 4位二进制加法器设计在设计4位加法器时,定义信号量SITN 、AA及BB,将加数A与0并置后赋给BB,形成5位二进制数,这是为了在做加法时发生溢出所做的处理,然后将加数AA与BB以及进位位CIN相加赋给SINT,并将SINT的低四位赋给加数和S输出,同时将SINT最高位传送给COUT输出。4位加法器的元件符号图如3-2所示: 图3-2 4位加法器元件符号图在定义实体ADDER4B端口中 , 定义CIN为进位输入信号,A、B端口为4位数的输入端口,S为存储两个4位数相加

20、结果的输出端口,COUT引脚主要用于将存储SINT的最高位的输出端口。在定义ADDER4B构造体行为时,定义三个信号量:REG8 、AA、BB,都是5位,主要是在做加法时发生溢出时所做的处理。下面是定义ADDER4B构造体行为的描述:ARCHITECTURE behav OF ADDER4B ISSIGNAL REG8:STD_LOGIC_VECTOR(4 DOWNTO 0);SIGNAL AA,BB:STD_LOGIC_VECTOR(4 DOWNTO 0);BEGINAA=0&A;BB=0&B; SINT=AA+BB+CIN; S=SINT(3 DOWNTO 0); COUT=CIN A=A

21、(3 DOWNTO O), B=B(3 DOWNTO 0), S=S(3 DOWNTO 0), COUT=CARRY_OUT ); U2:ADDER4B -例化(安装)1个4位二进制加法器U2PORT MAP( CIN=CARRY_OUT,A=A(7 DOWNTO 4), B=B(7 DOWNTO 4), S=S(7 DOWNTO 4),COUT=COUT);3.3.乘1模块设计(ANDARITH) 乘1模块即1位乘法器,可通过选通与门逻辑,利用FOR_LOOP循环语句完成8位二进制数与1位二进制数的乘法运算,即8位二进制DIN从最低位到最高位与1位二进制数ABIN分别做与运算,最后将结果依次

22、传送到DOUT的最低位到最高位输出,即当ABIN为1时,DOUT直接输出DIN,位0时,DOUT输出全零。1位乘法器的元件引脚图如3-4所示: 图3-4 乘1模块元件符号图 在定义一个实体 ANDARITH端口中, ABIN、DIN70作为输入端口,DOUT70作为输出端口。1位乘法器构造体程序代码如下:ARCHITECTURE behav OF ANDARITH IS -定义ANDRITH构造体行为BEGIN PROCESS (ABIN,DIN) BEGIN FOR I IN 0 TO 7 LOOP -循环8次,完成8位与1位的乘法运算 DOUT(I)=DIN(I) AND ABIN; -当

23、ABIN为1时,DOUT直接输出DIN,当ABIN=0时,DOUT输出全零END LOOP; END PROCESS;END behav3.4锁存器模块设计(REG16B) 此处锁存器模块即16位右移寄存器,可利用IF语句来完成其输入值的锁存,当清零(CLR=1)信号到来时,定义的信号量R16S锁存输入值,即R16S清零;否则在时钟信号CLK上升沿作用下,将R16S的低8位进行移位操作,同时将8位输入数据D锁存到R16S的高8位,最后传送给Q输出。在乘法器的顶层设计中,乘数与被乘数的乘积也将出现在REG16B端口。16位锁存器的元件符号图如3-5所示: 图3-5 锁存器元件符号图如上图所示:1

24、6位右移寄存器包括3个输入引脚,一个输出引脚。在定义REG16B实体端口中,定义D为8位输入数据,CLK为输入时钟信号,CLR为输入清零信号,Q为16位输出数据。下面是REG16B的构造体行为描述:ARCHITECTURE behav OF REG16 IS SIGNAL R16S:STD_LOGIC_VECTOR(15 DOWNTO 0);BEGIN PROCESS (CLK,CLR) BEGIN IF CLR=1THEN -当有效时,全部清零 R16S=“0000000000000000”;-锁存输入值,并右移低8位 ELSEIF CLKEVENT AND CLK=1THEN R16S(6

25、 DOWNTO 0) =R16S(7 DOWNTO 1); R16S(15 DOWNTO 7)=D; -将输入锁到高8位 END IF; END PROCESS; Q=R16S;END behave;3.5 8位乘法器的顶层设计 8位移位相加乘法器的原理图如3-6所示。在图中,START信号的上升沿及其高电平有两个功能,即16位寄存器清零和被乘数A70向移位寄存器SREG8B加载,它的低电平则作为乘法使能信号。CLK位乘法时钟信号。当被乘数被加载于8位右移寄存器SREG8B后,随着每一时钟节拍,最低位在前,由低位至高位逐位移出。当为1时,1位乘法器ANDARTIH打开,8位乘数B70在同一节拍

26、进入8位加法器,与上一次锁存在16位锁存器中的高8位进行相加,其和在下一时钟节拍的上升沿被锁进此锁存器。而当被乘数的移出位为0时,与门全零输出。如此反复,直至8个时钟脉冲后,最后乘积完整出现在REG16B端口。移位相加乘法器的原理图如下: 图3-6 8位移位相加乘法器原理图 8位乘法器元件符号图如3-7所示:图3-7 8位乘法器元件符号图 如上图所示,8位乘法器包括4个输入引脚和1个输出引脚。在8位乘法器的顶层设计中,在定义8位乘法器实体端口中,定义CLKK为输入时钟信号,A、B为8位输入数据,START为输入信号,DOUT为16位输出数据。由于在前面已经定义各个子模块的功能,所以在8位乘法器的顶层设计中直接用元件例化的方法直实现。下面是CLKK和START两个信号作用下的8位乘法器功能实现的VHDL描述: SIGNAL GNDINT,NEWSTART,QB:STD_LOGIC;SIGNAL ANDSD:STD_LOGIC_VECTOR(7 DOWNTO 0);SIGNAL DTBIN:STD_LOGIC_VECTOR(8DOWNTO 0);SIGNAL DTBOUT:STD_LOGIC_VECTOR(15 DOWNTO 0); BEGIN DOUT=DTBOUT; GNDINT=0; PROCESS( CLKK,START) BEGIN IF START=1TNEN N

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1