四位二进制乘法器课程设计报告剖析_第1页
四位二进制乘法器课程设计报告剖析_第2页
四位二进制乘法器课程设计报告剖析_第3页
四位二进制乘法器课程设计报告剖析_第4页
四位二进制乘法器课程设计报告剖析_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

1、 4位二进制乘法器课程设计报吿目录TOC o 1-5 h z HYPERLINK l bookmark4 o Current Document 1设计任务2 HYPERLINK l bookmark6 o Current Document 1.1设计的目的21.2设计要求32硬件描述语言VHDL3 HYPERLINK l bookmark8 o Current Document 2.1VHDL简介3 HYPERLINK l bookmark12 o Current Document 3设计规划过程5 HYPERLINK l bookmark14 o Current Document 3.1四位

2、二进制乘法器的组成原理6 HYPERLINK l bookmark16 o Current Document 3.2乘法器的设计6 HYPERLINK l bookmark20 o Current Document 4心得体会9 HYPERLINK l bookmark22 o Current Document 5参考文献101设计任务1.1设计的目的本次设计的目的就是在掌握EDA实验开发系统的初步使用基础上,了解EDA技术,了解并掌握VHDL硬件描述语言的设计方法和思想,通过学习的VHDL语言结合电子电路的设计知识理论联系实际,掌握所学的课程知识,学习VHDL基本单元电路的综合设计应用。通过

3、对四位二进制乘法器的设计,巩固和综合运用所学课程,加深对数字电路和VHDL基本单元的理解,理论联系实际,提高设计能力,提高分析、解决计算机技术实际问题的独立工作能力。通过课程设计深入理解VHDL语言的精髓,达到课程设计的目标,乘法器的设计可以使对计算机怎样工作有了更深了解,其实当初想到设计这个课题。1.2设计要求1)构造一个4位二进制乘法器;2)受按键控制由4bit输入端口先后输入四位乘数和被乘数(乘数,被乘数均由HDB3码表示);3)用两个七段数码管显示积,以十进制显示;2硬件描述语言VHDL2.1VHDL简介VHDL语言是一种用于电路设计的高级语言。它在80年代的后期出现。最初是由美国国防

4、部开发出来供美军用来提高设计的可靠性和缩减开发周期的一种使用范围较小的设计语言。但是,由于它在一定程度上满足了当时的设计需求,于是他在1987年成为AI/IEEE的标准(IEEESTD1076T987)。1993年更进一步修订,变得更加完备,成为AI/IEEE的AI/IEEESTD1076-1993标准。目前,大多数的CAD厂商出品的EDA软件都兼容了这种标准。VHDL的英文全写是:VHSIC(VeryHigheedIntegratedCircuit)HardwareDescriptiongLanguage.翻译成中文就是超高速集成电路硬件描述语言。因此它的应用主要是应用在数字电路的设计中。目

5、前,它在中国的应用多数是用在FPGA/CPLD/EPLD的设计中。当然在一些实力较为雄厚的单位,它也被用来设计ASIC。VHDL主要用于描述数字系统的结构,行为,功能和接口。除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可是部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是VHDL系统

6、设计的基本点。VHDL比其它硬件描述语言相比有以下优点:(1)与其他的硬件描述语言相比,VHDL具有更强的行为描述能力,从而决定了他成为系统设计领域最佳的硬件描述语言。强大的行为描述能力是避开具体的器件结构,从逻辑行为上描述和设计大规模电子系统的重要保证。(2)VHDL丰富的仿真语句和库函数,使得在任何大系统的设计早期就能查验设计系统的功能可行性,随时可对设计进行仿真模拟。(3)VHDL语句的行为描述能力和程序结构决定了他具有支持大规模设计的分解和已有设计的再利用功能。符合市场需求的大规模系统高效,高速的完成必须有多人甚至多个代发组共同并行工作才能实现。(4)对于用VHDL完成的一个确定的设计

7、,可以利用EDA工具进行逻辑综合和优化,并自动的把VHDL描述设计转变成门级网表。(5)VHDL对设计的描述具有相对独立性,设计者可以不懂硬件的结构,也不必管理最终设计实现的目标器件是什么,而进行独立的设计。2.2VHDL语言特点应用VHDL进行系统设计,有以下几方面的特点。(一)功能强大VHDL具有功能强大的语言结构。它可以用明确的代码描述复杂的控制逻辑设计。并且具有多层次的设计描述功能,支持设计库和可重复使用的元件生成。VHDL是一种设计、仿真和综合的标准硬件描述语言。(二)可移植性VHDL语言是一个标准语言,其设计描述可以为不同的EDA工具支持。它可以从一个仿真工具移植到另一个仿真工具,

8、从一个综合工具移植到另一个综合工具,从一个工作平台移植到另一个工作平台。此外,通过更换库再重新综合很容易移植为ASIC设计。(三)独立性VHDL的硬件描述与具体的工艺技术和硬件结构无关。设计者可以不懂硬件的结构,也不必管最终设计实现的目标器件是什么,而进行独立的设计。程序设计的硬件目标器件有广阔的选择范围,可以是各系列的CPLD、FPGA及各种门阵列器件。(四)可操作性由于VHDL具有类属描述语句和子程序调用等功能,对于已完成的设计,在不改变源程序的条件下,只需改变端口类属参量或函数,就能轻易地改变设计的规模和结构。(五)灵活性VHDL最初是作为一种仿真标准格式出现的,有着丰富的仿真语句和库函

9、数。使其在任何大系统的设计中,随时可对设计进行仿真模拟。所以,即使在远离门级的高层次(即使设计尚未完成时),设计者就能够对整个工程设计的结构和功能的可行性进行查验,并做出决策。3设计规划过程3.1四位二进制乘法器的组成原理本实验学习VHDL中乘法的使用。在VHDL语言中,一般有c(7downto0)=a(3downto0)*b(3downto0)。所以4位二进制数的乘积是8位二进制数,为了更符合习惯,我们把结果转化成了十进制。所以结果范围是0225,即015*15。本实验采用的三位数在数码管上显示的方法是:分别确定百位、十位和个位。送数码管动态显示。采用与各个数逐一比较的方法确定。如百位的确定

10、可以将结果与200和100比较,若比200大则百位为2,在100到200之间则百位为1,小于100则百位为0,不显示。十位的确定可以将结果去掉百位,然后与10,20,.90比较而得。本文设计的四位二进制乘法器系统框图如图3.2所示。multiplyclkled_data7.Oa3.Oseg_sel2.Ob3.O图3.2乘法器系统框图3.2乘法器的设计四位二进制加法器和乘法器由VHDL实现后,利用EDA工具对各模块进行了时序仿真(TimingSimulation),其目的是通过时序可以更清楚的了解程序的工作过程。VHDL语言设计如下:libraryieee;useieee.std_logic_1

11、164.all;useieee.std_logic_unsigned.all;entitymultiplyis-构造体描述4位乘法器port(clk:instd_logic;a,b:instd_logic_vector(3downto0);led_data:outstd_logic_vector(7downto0);seg_sel:outstd_logic_vector(2downto0);endmultiply;architecturertlofmultiplyissignalled_data2,led_datal,led_data0:std_logic_vector(7downtoO);-

12、LED显示代码,寄存十位个位的数signaldisplayclk:std_logic;beginprocess(a,b)variables:std_logic_vector(7downto0);-乘积variablebai,shiwei,gewei:std_logic_vector(3downto0);-乘积的十位个位begins(7downto0):=a(3downto0)*b(3downto0);ifs=11001000thenbai:=0010;s:=s-11001000;-200以上elsifs=01100100thenbai:=0001;s:=s-01100100;-100以上els

13、ebai:=0000;endif;ifs=01011010thenshiwei:=1001;s:=s-01011010;gewei:=s(3downto0);-90以上elsifs=01010000thenshiwei:=1000;s:=s-01010000;gewei:=s(3downto0);-80以上elsifs=01000110thenshiwei:=0111;s:=s-01000110;gewei:=s(3downto0);-70以上elsifs=00111100thenshiwei:=0110;s:=s-00111100;gewei:=s(3downto0);-60以上elsifs

14、=00110010thenshiwei:=0101;s:=s-00110010;gewei:=s(3downto0);-50以上elsifs=00101000thenshiwei:=0100;s:=s-00101000;gewei:=s(3downto0);-40以上elsifs=00011110thenshiwei:=0011;s:=s-00011110;gewei:=s(3downto0);-30以上elsifs=00010100thenshiwei:=0010;s:=s-00010100;gewei:=s(3downto0);-20以上elsifs=00001010thenshiwei:

15、=0001;s:=s-00001010;gewei:=s(3downto0);-10以上elsegewei:=s(3downto0);shiwei:=0000;endif;casebaiiswhen0001=led_data2led_data2led_data2led_data1led_data1led_data1led_data1led_data1led_data1led_datalv=10000010;when0111=led_data1v=11111000;when1000=led_data1led_data1led_data1led_data0led_data0led_data0led

16、_data0led_data0led_data0led_data0led_data0led_data0led_data0led_data0=11111111;endcase;endprocess;process(clk)variablecnt:integerrange0to20000;-1KHZ扫描显示时钟beginifclkeventandclk=Tthencnt:=cnt+1;ifcnt10000thendisplayclkv=T;elsifcnt20000thendisplayclkv=0;elsecnt:=0;displayclkv=0;endif;endif;endprocess;p

17、rocess(displayclk)-显示两位variablecnt2:stdogic_vector(1downto0);beginifdisplayclkeventanddisplayclk=Tthencnt2:=cnt2+1;ifcnt2=01thenseg_sel=001;led_data=led_data0;elsifcnt2=010thenseg_sel=010;led_data=led_data1;elsifcnt2=11thencnt2:=00;seg_sel=100;Ied_datav=led_data2;endif;endif;endprocess;endrtl;NodeNa

18、meDirectionLocationI/OBank3J日InputPIN1033斗a3InputPIN35一b0Input36JblInput37b2InputPIN38b3Input39一dkInput110妙leddata7Output211妙leddata6OutputPIN10212妙leddata5OutputPIN11213妙leddata4OutputPIN1221斗妙leddata3OutputPIN132四位二进制乘法器仿真冬如下所示:PIN1斗216妙leddatalOutputPIN192Interval:-931.0ns100.Ona200.0ns300.0ns400

19、.Ona500.0ns600.0ns700.0ns800.0ns900.OnEETime:山帖Ref:931.0nsName:Value:_zelkA1_卢aDO_卢bDO=yl&d_dataD164y3&g_s&lD1-_/displayclk112.实验引脚分配如下:164a,elk为时钟脉冲输入信号,a,b是输出信号表示要参与运算的两个数,仿真分析:Led_data,seg_set为输出信号,表示计算的结果。4心得体会通过这一段时间的紧张学习,最后完成了我的设计任务一一四位二进制乘法器的设计。通过本次课程设计的学习,我深深的体会到设计课的重要性和目的性所在。本次设计课不仅仅培养了我们实际

20、操作能力,也培养了我们灵活运用课本知识完成工作的能力。加法器和乘法器虽然是比较简单的设计课程,但它给了我一个锻炼的机会和检验的机会,也给我复习计算机组成原理这门课提供了方便。希望学校以后多安排一些类似的实践环节,让同学们学以致用。加法器和乘法器的设计让我对门电路更有清楚了解,对VHDL语言也有了一定的了解。加法器是计算机运算中的重要组成部分,而且是其他运算实现的基础。在设计中要求我要有耐心和毅力,还要细心,稍有不慎,一个小小的错误就会导致结果的不正确,感谢肖晓丽老师耐心的给我指出了错误,让我面对错误的检查有足够的耐心,通过这次设计和设计中遇到的问题,也积累了一定的经验,对以后从事设计工作会有一

21、定的帮助。在应用VHDL的过程中让我真正领会到了其并行运行与其他软件顺序执行的差别及其在电路设计上的优越性。VHDL语言具有多层次描述系统硬件功能的能力,可以从系统的数学模型直到门级电路,用来进行数字系统的设计方便灵活。5参考文献DavidA.Patterson.计算机组成和设计M.清华大学出版社,2003年12月WilliamStallings计算机组织与结构M.高等教育出版社,2001年8月曾繁泰,陈美金.VHDL程序设计M.清华大学出版社,2001计算机毕业设计网.VHDL实用教程M.2012王爱英计算机组成与结构M清华大学出版社.2001年2月附件:加法器的VHDL语言设计:libra

22、ryieee;useieee.std_logic_1164.all;useieee.std_logic_arith.all;useieee.std_logic_unsigned.all;entityadd1is-1位全加器port(a,b:instd_logic;cin:instd_logic;cout:outstd_logic;s:outstd_logic);endadd1;architecturertlofadd1isbeginprocess(a,b,cin)-列举所有情况对应的输出variabletemp,temp1:std_logic;begintemp:=axorb;temp1:=t

23、empxorcin;couta0,-模块的名称映射b=bO,cin=cingnd,cout=cout1,s=sO);u2:addlportmap(a=a1,b=b1,cin=cout1,cout=cout2,s=s1);u3:add1portmap(a=a2,b=b2,cin=cout2,cout=cout3,s=s2);u4:add1portmap(a=a3,b=b3,cin=cout3,cout=cout,s=s3);endrtl;乘法器的VHDL语言设计:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.a

24、ll;entitymultiplyis-构造体描述4位乘法器port(clk:instd_logic;a,b:instd_logic_vector(3downto0);led_data:outstd_logic_vector(7downto0);seg_sel:outstd_logic_vector(2downto0);endmultiply;architecturertlofmultiplyissignalled_data2,led_data1,led_data0:std_logic_vector(7downtoO);-LED显示代码,寄存十位个位的数signaldisplayclk:std

25、ogic;beginprocess(a,b)variables:stdogic_vector(7downto0);-乘积variablebai,shiwei,gewei:stdogic_vector(3downto0);-乘积的十位个位begins(7downto0):=a(3downto0)*b(3downto0);ifs=11001000thenbai:=0010;s:=s-11001000;-200以上elsifs=01100100thenbai:=0001;s:=s-01100100;-100以上elsebai:=0000;endif;ifs=01011010thenshiwei:=1

26、001;s:=s-01011010;gewei:=s(3downto0);-90以上elsifs=01010000thenshiwei:=1000;s:=s-01010000;gewei:=s(3downto0);-80以上elsifs=01000110thenshiwei:=0111;s:=s-01000110;gewei:=s(3downto0);-70以上elsifs=00111100thenshiwei:=0110;s:=s-00111100;gewei:=s(3downto0);-60以上elsifs=00110010thenshiwei:=0101;s:=s-00110010;gewei:=s(3downto0);-50以上elsifs=00101000thenshiwei:=0100;s:=s-00101000;gewei:=s(3downto0);-40以上elsifs=00011110thenshiwei:=0011;s:=s-00011110;gewei:=s(3downto0);-30以上elsifs=00010100thenshiwei:=0010;s:=s-00010100;gewei:=s(3downto0);-20以上elsifs=00001010thenshiwe

温馨提示

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

评论

0/150

提交评论