?? basic_base2_mul_seq.v
字號(hào):
// N比特乘M比特的二進(jìn)制時(shí)序乘法器
module basic_base2_mul_seq(x_in, y_in, clk, ini, p_out, done);
parameter N = 8,
M = 4;
input clk, ini;
input [N-1:0] x_in;
input [M-1:0] y_in;
output done;
reg done;
output [N+M-1:0] p_out;
reg [N+M-1:0] p_out;
integer counter;
reg [M:0] temp_p;
reg [N-1:0] x_reg;
reg [M-1:0] y_reg, p_reg;
reg [N+M-1:0] p_out;
always @(posedge clk)begin
if(ini)begin
x_reg <= x_in;
y_reg <= y_in;
p_reg <= 0;
counter <= 0;
done <= 0;
end
else if(counter < N)begin
if(x_reg[0])
temp_p = p_reg + y_reg;
else
temp_p = p_reg;
p_reg <= temp_p[M:1];
x_reg <= {temp_p[0], x_reg[N-1:1]};
counter <= counter + 1;
end
else if(counter == N)begin
p_out = {p_reg[M-1:0], x_reg[N-1:0]};
done <= 1;
end
end
endmodule
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -