|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
module serial8mult(clk, x, y, p);//8位串行乘法器
input clk;
input [7:0] x;
input [7:0] y;
output [15:0] p;//结果输出
reg[15:0]p;
parameter s0=0,s1=1,s2=2;
reg[2:0]cnt;//位数计数器
reg[1:0]state;//状态计数器
reg[15:0]p1,t;
reg[7:0]y_reg;
always@(posedge clk)begin
case(state)
s0:begin
y_reg<=y;
state<=s1;
cnt<=0;
p1<=0;
t<={{8{x[7]}},x};
end
s1:begin
if(cnt==7)
state<=s2;
else
begin
if(y_reg[0]==1)
p1<=p1+t;
y_reg<=y_reg>>1;
t<=t<<1;
cnt<=cnt+1;
state<=s1;
end
end
s2:begin
p<=p1;
state<=s0;
end
endcase
end
endmodule
为什么t<={{8{x[7]}},x};中的8代表什么意思啊,谢谢 |
|