您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > 四位二进制乘法器课程设计报告
4位二进制乘法器课程设计报告目录1设计任务31.1设计的目的31.2设计要求32硬件描述语言——VHDL32.1VHDL简介33设计规划过程63.1四位二进制乘法器的组成原理63.2乘法器的设计74心得体会105参考文献101设计任务1.1设计的目的本次设计的目的就是在掌握EDA实验开发系统的初步使用基础上,了解EDA技术,了解并掌握VHDL硬件描述语言的设计方法和思想,通过学习的VHDL语言结合电子电路的设计知识理论联系实际,掌握所学的课程知识,学习VHDL基本单元电路的综合设计应用。通过对四位二进制乘法器的设计,巩固和综合运用所学课程,加深对数字电路和VHDL基本单元的理解,理论联系实际,提高设计能力,提高分析、解决计算机技术实际问题的独立工作能力。通过课程设计深入理解VHDL语言的精髓,达到课程设计的目标,乘法器的设计可以使对计算机怎样工作有了更深了解,其实当初想到设计这个课题。1.2设计要求1)构造一个4位二进制乘法器;2)受按键控制由4bit输入端口先后输入四位乘数和被乘数(乘数,被乘数均由HDB3码表示);3)用两个七段数码管显示积,以十进制显示;2硬件描述语言——VHDL2.1VHDL简介VHDL语言是一种用于电路设计的高级语言。它在80年代的后期出现。最初是由美国国防部开发出来供美军用来提高设计的可靠性和缩减开发周期的一种使用范围较小的设计语言。但是,由于它在一定程度上满足了当时的设计需求,于是他在1987年成为AI/IEEE的标准(IEEESTD1076-1987)。1993年更进一步修订,变得更加完备,成为AI/IEEE的AI/IEEESTD1076-1993标准。目前,大多数的CAD厂商出品的EDA软件都兼容了这种标准。VHDL的英文全写是:VHSIC(VeryHigheedIntegratedCircuit)HardwareDescriptiongLanguage.翻译成中文就是超高速集成电路硬件描述语言。因此它的应用主要是应用在数字电路的设计中。目前,它在中国的应用多数是用在FPGA/CPLD/EPLD的设计中。当然在一些实力较为雄厚的单位,它也被用来设计ASIC。VHDL主要用于描述数字系统的结构,行为,功能和接口。除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可是部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。VHDL比其它硬件描述语言相比有以下优点:(1)与其他的硬件描述语言相比,VHDL具有更强的行为描述能力,从而决定了他成为系统设计领域最佳的硬件描述语言。强大的行为描述能力是避开具体的器件结构,从逻辑行为上描述和设计大规模电子系统的重要保证。(2)VHDL丰富的仿真语句和库函数,使得在任何大系统的设计早期就能查验设计系统的功能可行性,随时可对设计进行仿真模拟。(3)VHDL语句的行为描述能力和程序结构决定了他具有支持大规模设计的分解和已有设计的再利用功能。符合市场需求的大规模系统高效,高速的完成必须有多人甚至多个代发组共同并行工作才能实现。(4)对于用VHDL完成的一个确定的设计,可以利用EDA工具进行逻辑综合和优化,并自动的把VHDL描述设计转变成门级网表。(5)VHDL对设计的描述具有相对独立性,设计者可以不懂硬件的结构,也不必管理最终设计实现的目标器件是什么,而进行独立的设计。2.2VHDL语言特点应用VHDL进行系统设计,有以下几方面的特点。(一)功能强大VHDL具有功能强大的语言结构。它可以用明确的代码描述复杂的控制逻辑设计。并且具有多层次的设计描述功能,支持设计库和可重复使用的元件生成。VHDL是一种设计、仿真和综合的标准硬件描述语言。(二)可移植性VHDL语言是一个标准语言,其设计描述可以为不同的EDA工具支持。它可以从一个仿真工具移植到另一个仿真工具,从一个综合工具移植到另一个综合工具,从一个工作平台移植到另一个工作平台。此外,通过更换库再重新综合很容易移植为ASIC设计。(三)独立性VHDL的硬件描述与具体的工艺技术和硬件结构无关。设计者可以不懂硬件的结构,也不必管最终设计实现的目标器件是什么,而进行独立的设计。程序设计的硬件目标器件有广阔的选择范围,可以是各系列的CPLD、FPGA及各种门阵列器件。(四)可操作性由于VHDL具有类属描述语句和子程序调用等功能,对于已完成的设计,在不改变源程序的条件下,只需改变端口类属参量或函数,就能轻易地改变设计的规模和结构。(五)灵活性VHDL最初是作为一种仿真标准格式出现的,有着丰富的仿真语句和库函数。使其在任何大系统的设计中,随时可对设计进行仿真模拟。所以,即使在远离门级的高层次(即使设计尚未完成时),设计者就能够对整个工程设计的结构和功能的可行性进行查验,并做出决策。3设计规划过程3.1四位二进制乘法器的组成原理本实验学习VHDL中乘法的使用。在VHDL语言中,一般有c(7downto0)=a(3downto0)*b(3downto0)。所以4位二进制数的乘积是8位二进制数,为了更符合习惯,我们把结果转化成了十进制。所以结果范围是0—225,即0—15*15。本实验采用的三位数在数码管上显示的方法是:分别确定百位、十位和个位。送数码管动态显示。采用与各个数逐一比较的方法确定。如百位的确定可以将结果与200和100比较,若比200大则百位为2,在100到200之间则百位为1,小于100则百位为0,不显示。十位的确定可以将结果去掉百位,然后与10,20,….90比较而得。本文设计的四位二进制乘法器系统框图如图3.2所示。clkled_data[7..0]a[3..0]seg_sel[2..0]b[3..0]multiply图3.2乘法器系统框图3.2乘法器的设计四位二进制加法器和乘法器由VHDL实现后,利用EDA工具对各模块进行了时序仿真(TimingSimulation),其目的是通过时序可以更清楚的了解程序的工作过程。VHDL语言设计如下:libraryieee;useieee.std_logic_1164.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_data1,led_data0:std_logic_vector(7downto0);--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以上elsebai:=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=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:=0001;s:=s-00001010;gewei:=s(3downto0);--10以上elsegewei:=s(3downto0);shiwei:=0000;endif;casebaiiswhen0001=led_data2=11111001;when0010=led_data2=10100100;whenothers=led_data2=11111111;endcase;caseshiweiiswhen0000=led_data1=11000000;when0001=led_data1=11111001;when0010=led_data1=10100100;when0011=led_data1=10110000;when0100=led_data1=10011001;when0101=led_data1=10010010;when0110=led_data1=10000010;when0111=led_data1=11111000;when1000=led_data1=10000000;when1001=led_data1=10010000;whenothers=led_data1=11111111;endcase;casegeweiiswhen0000=led_data0=11000000;when0001=led_data0=11111001;when0010=led_data0=10100100;when0011=led_data0=10110000;when0100=led_data0=10011001;when0101=led_data0=10010010;when0110=led_data0=10000010;when0111=led_data0=11111000;when1000=led_data0=10000000;when1001=led_data0=10010000;whenothers=led_data0=11111111;endcase;endprocess;process(clk)variablecnt:integerrange0to20000;--1KHZ扫描显示时钟beginifclk'eventandclk='1'thencnt:=cnt+1;ifcnt10000thendisplayclk='1';elsifcnt20000thendisplayclk='0';elsecnt:=0;displayclk='0';endif;en
本文标题:四位二进制乘法器课程设计报告
链接地址:https://www.777doc.com/doc-7408883 .html