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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

EDA实习之8位乘法器设计.docx

1、EDA实习之8位乘法器设计学号:常州大学EDA技术课程设计报告题 目: 移位相加8位硬件乘法器设计 学生: 朱京 学院係):信息科学与工程学院专业班级: 电子102 指导教师: 李文杰一、 设计题目 移位相加8位硬件乘法器设计二、 设计背景纯组合逻辑构成的乘法器虽然工作速度比较快,但过于占用硬件资源,难以实现 宽位乘法器。基于PLD器件外接ROM九九表的乘法器则无法构成单片系统,也不实用。 由8位加法器构成的以时序逻辑方式设汁的8位乘法器,具有一定的实用价值。其乘 法通过逐项移位相加来实现,从被乘数最低位开始,若为1,则乘数左移后与上次的 和相加,若为0,左移后与全0相加,直至被乘数的最高位。

2、三、 设计内容及要求设计内容:设计移位相加8位硬件乘法器,完成8位被乘数AE7.0和8位乘数B7. 0的乘法运 算,得到16位的乘法运算输出D0UT15. 0。(1)设汁8位移位寄存器SREG8B,当被乘数加载于SREG8B后,随时钟节拍,最低位 在前,由低位至高位逐位移出。(2)设讣与门,根据移位寄存器输出是否为1,决定输入加法器的是8位乘数还是全 零。(3)设计8位加法器,将8位乘数或全零与16位锁存器的高8位进行相加。(4)设计16位锁存器REG16B,在时钟到来时,锁存来自加法器的输岀至高8位,并 右移低8位。要求:1)根据系统设计要求,釆用自顶向下的方法,划分系统主要模块,画出整体设

3、计原理 框图。2)根据工作原理、用硬件描述语言对设计内容实现,列出设计程序清单,给出仿真波 形图和调试中存在问题及解决方法。3)设计内容下载至口标芯片,在EDA的GW48型实验箱进行功能验证。4)谈谈该课题的课程设计中遇到的问题,获得哪些技能和体会,以及建设性意见。四、设计步骤和安排:(1)题LI安排;图书馆查相关资料;(2)设计原理研究,总体设计;(3)各主要模块的VHDL设计。各模块的设计仿真分析。(4)完成系统顶层文件设计,系统总体功能的仿真分析。(5)将设计内容进行硬件配置,在GW48实验箱上进行调试。(6)撰写课程设计报告、答辩并提交报告。1产品设计介绍 1概念: 1意义: 1主要功

4、能: 1设计平台: 1硬件平台: 1软件平台: 12方案设计及实现 2系统实现原理 2设计步骤 2系统介绍: 2原理框图: 2主要模块之8位右移寄存器模块的设计 4源代码: 4仿真图: 5仿真分析: 5主要模块之8位加法寄存器模块的设计 6源代码: 6仿真图: 6主要模块之选通与门模块的设计 7源代码: 7仿真图: 8仿真分析: 8主要模块之16位锁存器的设计 9仿真图: 10仿真分析: 10系统总体仿真 11仿真图: 11仿真分析: 113硬件调试 11调试方法: 11调试步骤: 11调试结果及分析: 124心得体会及总结 125参考文献 126附录 13引脚锁定 13功能扩展 131产品设

5、计介绍概念:该乘法器是由8位加法器构成的以时序方式设计的8位乘法器。意义:纯组合逻辑构成的乘法器虽然工作速度比较快,但过于占用硬件资源,难以实现宽位乘法器 基于PLD器件外接ROM九九表的乘法器则无法构成单片系统,也不实用。由8位加法器构成的以时 序逻借方式设汁的8位乘法器,具有一左的实用价值。英乘法通过逐项移位相加来实现,从被乘数 最低位开始,若为1,则乘数左移后与上次的和相加,若为0,左移后与全0相加,直至被乘数的最 高位。主要功能:乘法通过逐项移位相加原理来实现,从被乘数的最低位开始,若为1,则乘数左移后 与上一次的和相加;若为0,左移后以全零相加,直至被乘数的最高位。设计平台:硬件平台

6、:GW48 EDA实验系统软件平台:MAX+plus II; Windows?2方案设计及实现系统实现原理在下图中,START信号的上跳沿及其高电平有两个功能,即16位寄存器清零和 被乘数A17.0向移位寄存器SREG8B加载;它的低电平则作为乘法使能信号。CLK 为乘法时钟信号。当被乘数被加载于8位右移寄存器SREG8B后,随着每一时钟节拍, 最低位在前,由低位至高位逐位移出。当为1时,与门ANDER打开,8位乘数B7. 0 在同一节拍进入8位加法器,与上一次锁存在16位锁存器REG16B中的高8位进行 相加,其和在下一时钟节拍的上升沿被锁进此锁存器。而当被乘数的移出位为0时, 与门全零输出

7、。如此往复,直至8个时钟脉冲后,乘法运算过程中止。此时SREG16B 的输出值即为最后的乘积。此乘法器的优点是节省芯片资源,它的核心元件只是一 个8位加法器,其运算速度取决于输入的时钟频率。本设计釆用层次描述方式,且用原理图输入和文本输入混合方式建立描述文件。 下图是乘法器顶层图形输入文件,它表明了系统山8位右移寄存器(SREG8B)、8位 加法器(ADDER8)、选通与门模块(ANDER)和16位锁存器(SREG16B)所组成,它 们之间的连接关系如下图所示。设计步骤系统介绍:此移位相加8位硬件乘法器分为四大部分。第一部分:8位寄存器设计第二部分:选通与门设计第三部分:8位带进位加法器第四部

8、分:16位锁存器原理框图:移位相加硬件乘法器电路原理图主要模块之8位右移寄存器模块的设计模块说明:输入为elk、load和din,输出为q; 模块功能:模块的主要功能是数据右移。8位右移寄存器工作流程图开始装载新数据 数据右移输出最低位结束源代码:library ieee;use SREG8B isport (elk, load:in std_logic;din:in std_logic_vector(7 downto 0); q:out std_logic):end SREG8B;architecture behave of SREG8B issignal reg8:std_logic_ve

9、ctor(7 downto 0): beginprocess (load, elk)beginif (elk5 event and elk二T)then 辻(load=,O) thenreg8=din;elsereg8(6 downto 0)=reg8(7 downto 1); end if:end if;end process;q=reg8(0);end behave;仿真图:仿真分析:在上升沿脉冲到来且load为0的时候,装载新数据,并输出din (0); 在load为1的时候,进行数据右移,并输出din(0)。主要模块之8位加法寄存器模块的设计模块说明:输入为d、b,输岀为q:模块功能:

10、模块的主要功能是实现两个8位数的加法运算8位加法寄存器的工作流程图源代码:library ieee;use ADDER8 isport(a:in std_logic_vector(7 downto 0): b:in std_logic_vector(7 downto 0); q:out std_logic_vector(8 downto 0);end ADDER8:architecture behave of ADDER8 isbeginq=a+b;end behave:仿真图:Name. Value. f100.0n$1 V10001111-11110000-101111111erOWala

11、a7.0-100011110/ de(0|gcp2.2B00$ oddcrB-scf Waveform xdi:orRef: |O.Ons 11创 Time: 710ns Interval:卩1.阮仿真分析:这是一个8位带进位加法器,输出q为输入a与输入b的和,最高位q(8) 是进位位主要模块之选通与门模块的设计模块说明:输入为dbin和din,输出为q:模块功能:模块的主要功能是完成8位与1位运算。源代码:library ieee;use ANDER isport (abin:in std_logic;din:in std_logic_vector(7 downto 0): q:out st

12、d_logic_vector(7 downto 0): end ANDER;architecture behave of ANDER isbeginprocessbeginif(abin 二 i)then q=din;elseqU00000000;end if:end process;end behave:仿真图:.Aarder.scf-Wefcrm EditorRef. StO.Onshl Time:Interal:ISI.fe4Name:Value:80Uiisinrabin0衫血-mmw帚q-mmmmw3 I仿真分析:在abin为 T 的时候,输出q二din;在abin为 的时候,输出q

13、二“00000000”。主要模块之16位锁存器的设计模块说明:输入为elk、clr和din,输出为q: 模块功能:模块的主要功能是将数据锁存。16位锁存器工作流程图源代码:library ieee;use SREG16B isport (elk,clr:in std_logic;din:in std_logic_vector(8 downto 0); q:out std_logic_vector(15 downto 0);end SREG16B;architecture behave of SREG16B is signal regl6:std_logic_vector(15 downto 0

14、);beginprocess (clr, elk)begin辻(clr 二O) thenregl6二0000000000000000;elsif (clk event and elk二T)then regl6(15 downto 7)=din;regl6(6 downto 0)二regl6(7 downto 1); end if:end process;q=regl6;end behave:仿真图:仿真分析:当clr为0的时候,输出清零;在clr为1且上升沿脉冲到来的时 候,输入din锁存至输出的高9位且将低8位右移一位。系统总体仿真仿真图:仿真分析:将输入A设定为21,输入B设定为32,按下

15、START (键8),连续来8个脉冲 后,输出为0672,与理论计算结果相同。3硬件调试调试方法:在GW48 EDA实验箱上选择电路模式1, 8位输入A、B分别锁定键1、2、3、4, START信号锁定键& 16位输出锁定数码管5、6、7、8, CLK信号选择2KHz。调试步骤:1 .输入A设定为21,输入B设定为32;选择2KHz,按下START (键8);3观察数码管5、6、7、8o调试结果及分析:结果:在第8个脉冲到来时,数码管上显示0672;分析:与仿真波形的结果相同,更改输入A, B的数据,数码管的输出结果与仿 真波形都相同,达到设计要求。4心得体会及总结总结在长达十天的课程设计当中

16、,我更加熟悉了 MAX+plus II软件的使用,比如说 实体、结构体的作用、保存的时候不能还有中文及文件名要和实体名相同等。加深了对VHDL编程语言的理解,尤其是本课题中锁存器的设计让我更清楚进程、 变量.信号的使用及它们之间的区别。EDA这门课程还是非常重要的。通过这次EDA课程设计,意识到了其重要性。 当然,团队合作也很重要,非常感谢其他组员的配合,才能让这次的EDA课程设计快速 的完成。遇到的问题10在调试过程中,其输出结果与仿真波形总是不一致,但是一直找不到错误。后来,想 到了原因是因为引脚锁定时锁定错误。一个非常低级的错误,让我多走了一些弯路。提 醒自己在做各种事情的时候要小心谨慎

17、,不要粗心大意。5参考文献(1)朱正伟编着EDA基础及应用2韩学超,张小鸣编着EDA技术开发系统GW48实验指导书6附录引脚锁定选择器件 FLEX EPF10K10-PLCC84-4名称引脚号名称引脚号A(0)5B(0)17A(l)6B(l)18A (2)7B(2)19A (3)8B(3)21A (4)9B(4022A (5)10B(5)23A (6)11B(6)24A (7)16B(7)25START81CLK43DOUT(0)27DOUT(l)28DOUT(2)29DOUT(3)30DOUT(4)35DOUT(5)36DOUT(6)37DOUT(7)38DOUT(8)39DOUT(9)47

18、DOUT(10)48DOUT(11)49DOUT(12)50DOUT(13)51DOUT (14)52DOUT(15)5311功能扩展 以下内容是为了显示本次课程设讣的题l_T4:MUTIPLYS采用verilog语言。代码如下: module lcd(clk, rs, rw, en, dat);input elk;output 7:0 dat;output rs, rw, en;reg e;reg 7:0 dat;reg rs;reg 15:0 counter;set0=4, hO; setl二4 hl; set2 二 4h2;set3=4 h3;dat0=4J h4; dat1二4 h5;

19、dat2=4, h6; dat3=4J h7;dat4=4 h8;dat5=4? h9;dat6=4J hA;dat 7=4hB;dat8=4 hC;dat9=4J hD; dat10二4 hE; datll 二 5hlOparameter nul=4, hF; always (posedge elk) begin counter=counter+l; if(counter=16, hOOOf) clkr二、clkr;endalways (posedge clkr) begincurrent二next;case(current)setO: begin rs=0; dat二8h30; next=

20、setl; endsetl: begin rs=0; dat二8hOc; next=set2; end12set2:beginrs=0datset3:beginrs=0datdatO:beginrs=ldatdatl:beginrs=ldatdat2:beginrs=ldatdat3:beginrs=ldatdat4:beginrs=ldatdat5:beginrs=ldatdat6:beginrs=ldatdat7:beginrs=ldatdat8:beginrs=ldatdat9:beginrs=ldatITL next二set3;endnext=datO;endnext二datl;end

21、next=dat2;endnext二dat3;endnext二dat4;endnext二dat5;endnext二dat6;endnext=dat7;endnext二dat8;endnext二dat9;endnext=datlO;end8h6;8hl;4datlO:datll:nul:rs=l: dat= “; nex二datll; end rs=l; dat=,z “; next二nul; end dat=8,h00;default:endcasebeginbeginbegin rs=0;if (ent!二 2h2)begine=0;next二setO;ent=cnt+l;endelsebegin next二nul; e=l:endendnext=setO;endassign en=clkr e; assign rw=0;endmodule13

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

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