8位二进制乘法器_第1页
8位二进制乘法器_第2页
8位二进制乘法器_第3页
8位二进制乘法器_第4页
8位二进制乘法器_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

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

文档简介

EDA实验位二进制乘法器学号:02115024[2013.12.15]班级:021151姓名:王浩楠指导老师:徐少莹设计要求8位二进制乘法采用移位相加的方法。即用乘数的各位数码,从低位开始依次与被乘数相乘,毎相乘一次得到的积称为部分积,将第一次(由乘数最低位与被乘数相乘)得到的部分积右移一位并与第二次得到的部分积相加,将加得的和右移一位再与第三次得到的部分积相加,再将相加的结果右移一位与第四次得到的部分积相加,直到所有的部分积都被加过一次。例如:11010101和10010011相乘,计算过程如下:11010101X1001001111010101 N0与被乘数相乘的部分积,部分积右移一位11010101 N1与被乘数相乘的部分积+1101010110011111111001111111两个部分积之和,部分积之和右移一位+00000000N2与被乘数相乘的部分积0100111111101001111111与前面部分积之和相加,部分积之和右移一+00000000 N4与被乘数相乘的部分积•••••• N7与被乘数相乘的部分积+11010101111101001011110与前面部分积之和相加011110100101111右移一位得到最后的积二.设计方法按照这种算法,可以得到下图所示之框图和简单流程图。按照这种算法,可以得到下图所示之框图和简单流程图。图中Y寄存器存放被乘数M,B寄存器存放乘数N,A累加器存放部分积。A和Y中的数据在加法器中相加后送入A中,而A和B相级联又构成了一个16bit的移位寄存器,当它工作于移位模式时,可以实现数据的右移。由于乘数的每一位不是0就是1,对应的部分积不是0就是被乘数本身,所以实际作部分积相加这一步时,只要根据乘数的对应位判断:如该位为1,则将累加器中的数据加上被乘数再移位;如该位为0时,就不加被乘数而直接移位。运算时首先将累加器A清零,并将被乘数M和乘数N分别存入寄存器Y和B,然后依据寄存器B中最右一位B0(数据N0)确定第一个部分积。将此部分积送入A累加器以后,将A连同寄存器B右移一位,部分积的最低位被移进寄存器B的最左位,乘数的最低位N0被移出寄存器B,而乘数的次低位N1被移至寄存器B的B0位。第二次仍然依据B0位的数据(N1)來确定第二个部分积,将部分积与累加器屮的数据相加后右移一位,N1又被移出寄存器,数据N2被移到B0位置。。。。。这样,经过8次部分积相加位的操作,完成1次乘法运算,乘数N恰好被移出寄存器B,寄存器B中保存的就是运算积的低8位数据。移位相加的次数应用一个计数器来控制,每移位一次,计数器计一个数。当计数器计得8个数时,发岀一个信号,使电路停止操作,并输出运算结果。

积p乘数N茫制器、寄存器累加器远算结束卜儘出积p被乘数M力1法器累加器入沽除.奇存器R置乘数Z奇存器Y宜皱乘数N1计数器U宣数字H•B分别右移1位,积p乘数N茫制器、寄存器累加器远算结束卜儘出积p被乘数M力1法器累加器入沽除.奇存器R置乘数Z奇存器Y宜皱乘数N1计数器U宣数字H•B分别右移1位,A0移到A与*BO相加送A,计数器C减1B寄存器(A)电路框图(B〉简单流程图三设计过程1:8位乘法器的顶层设计如[7虫帆22[HN5:FTM58FTM59W60HN63rwmrp_f<1*14.7Arp,t_c»<<WD|7・X|屮・・0)WojefftAlO0]AlEV・・W如,6.8]—PW8W7~'庶41W■::OPT「28PTf25PtJ-26PW・KPtsJ幺 P»<・&PfTl2lI2:设计程序数据输入num_input的设计该部分是在时钟信号input_elk的作用下,记录并保存输入的8位二进制数并存放在a和b中。该模块的程序如下:libraryieee;useieee.std_logie_l164.al1;useieee.std_logie_unsigned.al1;entitynum_inputisport(data:instd_logie_veetor(7downto0);a,b:outstd_logie_veetor(7downto0);elk:instdlogic);endnum_input;architecturebehaveofnum_inputissigrmltimes:std_logic;beginprocess(elk)beginifelk"eventandelk='1/theniftimes二’O'thentimes〈二T‘; a(7downto0)〈二data(7downto0);elsetimes〈='O';b(7downto0)〈=data(7downto0);endif;endif;endprocess;endbehave;8位移位寄存器sreg8b的设计8位移位寄存器是在时钟信号作用下,对乘数进行加载,对数据进行移位操作,同时定义一个信号srcgSb用来装载新数据及移位后的操作数。该模块的程序如下:libraryieee;useieee.std_logic_1164all;useieee.std_logic_imsigned.al1;entitysrcg8bisport(elk:instd_logic;load:instdlogic;din:instd_logic_vector(7downto0);s_end:outstd_logic;qb:outstdlogic);endsreg8b;architecturebehaveofsregSbissignalreg8:std_logic_vector(7downto0);signalcount:std_logic_vcctor(3downto0);beginprocess(elk,load)beginifload二'rthenreg8〈=din;send〈='O';count〈二〃0000〃;elsifelk'eventandclk=,Tthencount〈=count+1;ifcount〈7thenrcg8(6downto0)<=rcg8(7downto1);elsesend〈二'1';endif;endif;endprocess;qb<=reg8(0);endbehave;乘法器andarith的设计利用循环语句完成8位二进制数与1位二进制的乘法运算,将8位二进制数a从最低位到最高位与1位二进制数分别做与运算,将结果送入加法器里。该模块程序如下:libraryieee;useieee.std_logic_1164.all;entityandarithisport(abin:instdlogic;din:instd_logic_vector(7downto0);

dout:outstd_logic_vector(7downto0));endandarith;architecturebehaveofandarithisbeginprocess(abin,din)beginforiin0to7loopdout(i)〈二din(i)andabin;endloop;endprocess;endbehave;8位加法器adderS的设计将每次的部分积相加得到部分积Z和,再与下一次的部分积相加得到新的部分积之和,没计算一次将结果送入锁存器里。该模块程序如下:libraryieee;useieee.std_logic_1164.dll;useieee.std_logic_unsigned.all;entityadder8isport(b,a:instd_logic_vector(7downto0);s:outstd_logic_vector(8downto0));endadder8;architecturebehaveofaddcr8isbegins<=,O'&a+b;endbehave;⑸ 16位锁存器regl6b的设计该部分接收加法器送来的部分积之和,进行处理并取高八位送给加法器进行下一次的求和,然后进行重复运算直到得到最终结果并输出。该模块程序如下:libraryieee;useieee.stcl_logic_1164.dll;useieee.stcl_logic_unsigned.dll;entityregl6bisport(elk,clr,r_end:instd_logic;d:instd_logic_vcctor(8downto0);q:outstd_logic_vcctor(15downto0));endregl6b;architecturebehaveofregl6bissignalr16s:std_logic_vector(15downto0);beginprocess(elk,clr,r_end)beginifclr=,rthenrl6s<=(others=>,0,);elsifr_end='fthenrl6s(15downto0)<=rl6s(15downto0);elsifelk'eventandelk」1'thenrl6s(6downto0)<=rl6s(7downto1);rl6s(15downto7)<=d;endif;endprocess;q<=rl6s;enclbehave;四波形仿真 f.n*HO0at 0nt f.n*HO0at 0ntI 4rLn_rLloio~Yooubo:LrLrLrLTLTLrLnLO1OLOL< ' ' "~''nn

温馨提示

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

评论

0/150

提交评论