移位乘法器
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
资料范本
本资料为word版本,可以直接编辑和打印,感谢您的下载
移位乘法器
地点:__________________
时间:__________________
说明:本资料适用于约定双方经过谈判,协商而共同承认,共同遵守的责任与义务,仅供参考,文档可直接下载或修改,不需要的部分可直接删除,使用时请详细阅读内容
移位乘法器设计报告
乘法电路工作流程图
STEP0:复位。
电路初始化,C=0,G[7:4]=0000;
STEP1:装载数据。
A=1011,B=1101;
STEP2:求部分积。
加法器运算结果为:G[7:4]+A=0000+1011=1011,故G[7:4]=0101,B=1110;
STEP3:求部分积。
加法器运算结果为:G[7:4]+0=0101+0000=0101,故G[7:4]=0010,B=1111;
STEP4:求部分积。
加法器运算结果为:G[7:4]+A=0010+1011=1101,故G[7:4]=1101,B =1111;
STEP5:求部分积。
加法器运算结果为:G[7:4]+A=0110+1011=10001,故G[7:4]=1000,B =1111;
STEP6:输出乘积值M=10001111。
二、框图及接口定义
CLK
A[3:0]
B [3:0]
LOAD
OUT[7:0]
READY
RESET
移位乘法器
1.框图如图所示
2.接口定义
三、实现框图
G[7:0]
CI
A[3:0]
CO
ADD4
四、实现算法
module Four_bit_Mutiplicate(A,B,RESET,LOAD,CLK,G,READY); input[3:0]A;
input[3:0]B;
input CLK;
output[7:0]G;
reg[7:0]G=0;
reg[3:0]F;
wire E;
wire[3:0]P;
input RESET;
input LOAD;
output READY;
reg READY=0;
Four_bite_Adder C1(.S(G[7:4]),.D(F),.SUM(P),.CI(E)); always@(CLK)
begin
if(RESET)
G<=0;
F<=0;
READY=0;
end
if(LOAD)
begin
F[3:0]<=A;
G[3:0]<=B;
end
if(F)
begin
F[0]<=F[0]&G[0];
F[1]<=F[1]&G[0];
F[2]<=F[2]&G[0];
F[3]<=F[3]&G[0];
G[7:4]<=P[3:0];
G<=G>>1;
G[7]<=E;
end
else G[7]<=0;
READY<=1;
end
endmodule
module Four_bite_Adder(S,D,SUM,CI);
input[3:0] S,D;
output[3:0] SUM;
output CI;
wire a,b,c;
Full_Adder B1(S[0],D[0],0,SUM[0],a); Full_Adder B2(S[1],D[1],a,SUM[1],b); Full_Adder B3(S[2],D[2],b,SUM[2],c); Full_Adder B4(S[3],D[3],c,SUM[3],CO); endmodule
module Full_Adder(X,Y,CIN,S,COUT); input X,Y;
input CIN;
output S;
output COUT;
assign S=X^Y^CIN;
assign COUT=(X&Y)+(X&CIN)+(Y&CIN); endmodule。