欢迎来到天天文库
浏览记录
ID:44073959
大小:991.57 KB
页数:18页
时间:2019-10-18
《十六位硬件乘法器电路设计报告》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、课程名称电子设计口动化题目十六位硬件乘法器电路指导老师题目名称:十六位硬件乘法器电路摘要:设计一个16位硬件乘法器电路•要求2位十进制乘法,能用LED数码管同时显示乘数,被乘数和积的值•本设计利用QuartusII软件为设计平台,通过移位相加的乘法原理:即从被乘数的最低位开始,若为1,则乘数左移后与上一次的和相加;若为0,左移后以全零相加,直至被乘数的最高位。经软件仿真和硬件测试验证后,以达到实验要求。目录1.题口名称22.摘要23.目录34.文44.1.系统设计44.1设计要求44.2系统设计方案44.2单元电路设计44.2.1十进制计算模块54.2.2BCD码转二进制模块54.2.38位右
2、移寄存器模块64.2.48位加法器模块74.2.51乘法器multi.l模块74.2.616位移位寄存器reg_16模块84.2.716位二进制转BCD码B_BCD模块94.2.88位乘法器multi_8x8顶层设计104.3软件设计124.3.1设计平台和开发工具124.3.2程序流程方框图134.4系统测试144.1仿真分析M4.2硬件验证155.结论156.参考文献157.附录154.正文4.1系统设计1.1设计要求题目要求设计一个16位硕件乘法器电路.要求2位十进制乘法;能用LED数码管同时显示乘数,被乘数和积的信息.设置一个乘法使能端,控制乘法器的计算和输出•1.2系统设计方案此设计
3、问题可分为乘数和被乘数输入控制模块,乘法模块和输出乘积显示模块基本分.乘数和被乘数的输入模块使输入的十进制数转化为二进制数输入乘法模块,乘法模块利用移位相加的方法将输入的两组二进制数进行相乘,并将16位乘积输出到乘积输出显示模块.显示模块将输入的二进制数按千,百,十,个位分別转化为十进制数输小,乘数和被乘数的输入可用数据开关K1〜K10分别代表数字1,2,-,9,0,用编码器対数据开关KCK10的电平信号进行编码后输入乘法器进行计算.但此方案所用硬件资源较多,输入繁琐,故不采取.方案二是利用硬件箱自带16进制码发生器,由对应的键控制输岀4位2进制构成的1位16进制码,数的范围是0000~111
4、1,即0H~FH.每按键一次,输出递增1,输出进入目标芯片的4位2进制数将显示在该键对应的数码管.乘数和被乘数的输入模块将16进制码的A~F码设计成输出为mil1.使得减少了无用码的输入.两数相乘的方法很多,可以用移位相加的方法,也町以将乘法器看成计数器,乘积的初始值为零,每一个时钟周期将乘数的值加到积上,同时乘数减一,这样反复执行,直到乘数为零.木设计利用移位相加的方法使得程序人人简化.系统总体电路组成原理图如下图所示:4.2单元电路设计下面分解8位乘法器的层次结构,分为以下7个模块:1.十进制计算模块:使用4个•进制计数模块,输入乘数的十位个位,被乘数的H立个位。2.BCD码转二进制模块:
5、实现将输入的8位BCD码转化成二进制3.右移寄存器模块:这是一个8位右移寄存器,可将乘法运算中的被乘数加载于其中,同时进行乘法运算的移位操作。4.加法器模块:这是一•个8位加法器,进行操作数的加法运算。5.1位乘法器模块:完成8位与1位的乘法运算。6.锁存器模块:这是一个16位锁存器,同时也是一个右移寄存器,在时钟信号的控制下完成输入数值的锁存与移位。7.二进制转BCD码模块:将16位寄存器的值(积)转化成BCD码,配合数码管显示4.2.1十进制加计数器设计十进制计数器在每个时钟来临时计数,clk=l时清零,用于输入乘数,被乘数的个位,十位Libraryieee;0到9计数器Useieee.s
6、td_logic_unsigned.all;Useieee.std_logic_1164.all;EntitycntlOisPort(elk,clr:instdlogic;q:outstd_]ogic_vector(3downto0));endcntlO;architecturebchavofcntlOisbeginprocess(elk,clr)variablecqi:std_logic_vector(3downto0);beginifclr=,Ithencqi:="0000";elsifelk'eventandclk=,Tthenifcqi=9thencqi:二〃0000〃;elsecqi
7、:二cqi+1;endif;endif;q〈二cqi;endprocess;endbehav;4.2.2BCD码转二进制码BCD_B的设计将「进制计数器产生的「位和个位合并后,为BCD码,而计算时使川二进制码计算,所以采用该模块來转化Libraryieee;--(0到99)BCD码转二进制码Useieee.stdlogicunsigned・all;Useieee.std_logic_1164・al
此文档下载收益归作者所有