欢迎来到天天文库
浏览记录
ID:31718551
大小:89.20 KB
页数:4页
时间:2019-01-17
《8位2进制乘法器电路设计》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、11010101X100100111101010111010101+1101010110011111111001111111+000000000100111111101001111111+00000000010101001101001008位二进制乘法电路选题目的:学会使用quarter软件设计电路及仿真,实现8位二进制乘法电路。设计目的:学习应用移位相加原理设计8位乘法器实现方案:由于其原理是利用8位二进制乘法采用移位相加的方法。即用乘数的各位数码,从低位开始依次与被乘数相乘,毎相乘一次得到的积称为部分积,将第一次(由乘数最低位与被乘
2、数相乘)得到的部分积右移一位并与第二次得到的部分积相加,将加得的和右移一位再与第三次得到的部分积相加,再将相加的结果右移一位与第四次得到的部分积相加。直到所有的部分积都被加过一次。例如:被乘数(M7M6M5M4M3M2M1M0)和乘数(N7N6N5N4N3N2N1N0)分别为11010101和10010011,其计算过程如下:N0与被乘数相乘的部分积,部分积右移一位N1与被乘数相乘的部分积两个部分积Z和,部分积Z和右移一位N2与被乘数相乘的部分积与前面部分积之和相加,部分积之和右移一N4与被乘数相乘的部分积N7与被乘数相乘的部分积与前面
3、部分积Z和相加右移一位得到最后的积设计过程:从逻辑图及其乘法操作时序图图(示例中的相乘数为9FH和FDH)上可以清楚地看出此乘法器的工作原理。逻辑波形图中,START信号的上跳沿及其高电平有两个功能,即16位寄存器清零和被乘数A[7..O]向移位寄存器SREG8B加载;它的低电平则作为乘法使能信号。CLK为乘法时钟信号。当被乘数被加载于8位右移寄存器SREG8B后,随着每一时钟节拍,最低位在前,由低位至高位逐位移出。当为1吋,1位乘法器ANDARITH打开,8位乘数B[7..O]在同一节拍进入8位加法器,与上一次锁存在16位锁存器REG
4、16B中的高8位进行相加,其和在下一时钟节拍的上升沿被锁进此锁存器。而当被乘数的移岀位为0时,与门全零输岀。如此往复,直至8个时钟脉冲后,最后乘积完整出现在REG16B端口。在这里,1位乘法器ANDARITH的功能类似于1个特殊的与门,即当ABIN为T吋,DOUT直接输岀DIN,而当ABIN为O吋,DOUT输岀全“00000000"。NameValueat0psu^oelkA0谆1曰dinA[183]7]A1•36]A0—q5]A1—54]A13]A02]A1L81]A11^90]A11^10LoadA0<^11qbA0_r~L■~l_
5、t—r-1—m."i—iirr~L^l丄~LJ—Li-r~Lr——rrni—irnj-1j-r~i1」!—^~LJ_1!1—20.0ns40.0ns60.0ns80.0ns100.0ns120.0给予随机信号后产生的效果图8位移位相加乘法器运算逻辑波形图具体的主程序如下:libraryieee;useieee.std_logic_1164.all;entitycfisport(elk:instdjogic;Load:instdjogic;din:instd_logic_vector(7downto0);qb:outstdjogic);e
6、ndcf;architecturebehavofcfissignalreg8:std」ogic_vector(7downto0);beginprocess(elk,load)beginifload='1'thenreg8<=din;els讦clk'eventandelk='1'thenreg8(6downto0)<=reg&7downto1);endif;endprocess;Qb<=reg&O);endbehav;libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsi
7、gned.all;entityadder8isport(b,a:instd」ogic_vector(7downto0);s:outstd_logic_vector(8downto0));endadder8;architecturebehavofadder8isbegins<=O&a+b;endbehav;libraryieee;useieee.std_logic_1164.all;entityandarithisport(abin:instdjogic;din:instd_logic_vector(7downto0);dout:outs
8、td_logic_vector(7downto0));endandarith;architecturebehavofandarithisbeginprocess(abin,din)beginforiin0t
此文档下载收益归作者所有