📄 adm.v
字号:
module adm(mua,mub,out,en,st,done,clk);
input en,st,clk;
input [3:0]mua,mub;
output [7:0]out;
output done;
reg [7:0]out;
reg done;
reg [7:0]ws,a;
reg [3:0]sta,q;
parameter s0=4'b0000,s1=4'b0001,s2=4'b0010,s3=4'b0011;
always@(posedge clk)
begin
if((en==1)&&(st==1))
case(sta)
s0:
begin
if(!(q==1))
begin a[3:0]=mua[3:0]&{mub[0],mub[0],mub[0],mub[0]}; q=1;end
else if(q==1)
begin q=0;ws=ws+a; done=0;a=8'b0;sta=s1;end
end
s1:begin
if(!(q==1))
begin a[4:1]=mua[3:0]&{mub[1],mub[1],mub[1],mub[1]}; q=1;end
else if(q==1)
begin q=0;ws=ws+a; done=0;a=8'b0;sta=s2;end
end
s2:begin
if(!(q==1))
begin a[5:2]=mua[3:0]&{mub[2],mub[2],mub[2],mub[2]}; q=1;end
else if(q==1)
begin q=0;ws=ws+a; done=0;a=8'b0;sta=s3;end
end
s3:begin
if(!(q==1))
begin a[6:3]=mua[3:0]&{mub[3],mub[3],mub[3],mub[3]}; q=1;end
else if(q==1)
begin ws=ws+a; done=1;a=8'b0;out=ws;end
end
endcase
else if((en==1)&&(st==0))
begin out=0;ws=0;sta=s0; q=0;end
else if(en==0)
begin out=out; end
end
endmodule
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -