📄 multiply.v
字号:
module Multiply(Mplr,Mcnd,Clock,Reset,Done,Acc);//用有限状态机实现乘法 input [7:0]Mplr,Mcnd; input Clock,Reset; output Done; output[15:0]Acc; reg Done; reg[15:0]Acc; reg[0:1] Mpy_State; reg[15:0] Mcnd_Temp; parameter INIT=0,ADD=1,SHIFT=2; initial Mpy_State=INIT;//初始化为INIT always@(negedge Clock)begin:PROCESS integer Count; case(Mpy_State) INIT: if(Reset)Mpy_State=INIT; else begin Acc=0; Count=0; Mpy_State=ADD; Done=0; Mcnd_Temp[7:0]=Mcnd;//被乘数存起来 Mcnd_Temp[15:8]=8'd0; end ADD: begin if(Mplr[Count])//看乘数末尾是否为1 Acc=Acc+Mcnd_Temp; Mpy_State=SHIFT; end SHIFT: begin Mcnd_Temp={Mcnd_Temp[14:0],1'b0}; Count=Count+1; if(Count==8)begin Mpy_State=INIT; Done=1; end else Mpy_State=ADD; end endcase end endmodule
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -