我正在尝试编写一个将两个 4 位输入相乘的 Verilog 模块,但不使用*
运算符,但出现了一些错误:
module multiplier(
output[7:0] prod,
input[3:0] a,
input[3:0] b);
reg [7:0] result=8'h00;
always @(*)
begin
for(i=0;i<4;i=i+1)
begin
if((b&(1<<<i))!=0)
begin
result = result+(a<<<i);
end
end
end
assign prod = result;
endmodule
错误:
[Synth 8-2715] 附近的语法错误 =
[Synth 8-2715] 附近的语法错误 =
[Synth 8-993] 结果是未知类型
[常见 17-69] 命令失败:Vivado 综合失败
我究竟做错了什么?
编辑:我修改了代码,现在我得到:[Synth 8-1031] i is not declared