-1
我有这个代码,它早期产生一个GTK波,但我必须从行为上使它RTL,但现在它不会编译。如果任何人能帮助我想出解决办法,我得到错误:Verilog倍数不会编译
- main.v:31:错误:格式不正确的说法
- main.v:26:错误:在for循环步分配
- main.v:26:语法错误
- main.v:30:语法错误
- main.v:30:错误:格式不正确的说法
- main.v:31:语法错误
这里是我的代码:
module combinational_mult(product,multiplier,multiplicand);
input [31:0] multiplier;
input [63:0] multiplicand;
output product;
reg [63:0] product;
reg c;
reg [63:0] m;
integer i;
always @(multiplier or multiplicand)
begin
//initialize
product[63:32] = 32'b0;
product[31:0] = multiplier;
m = multiplicand;
c = 1'b0;
//add,shift algorithm for unsigned multiplication.
//following the notes.
// for(i=0; i<32; i=i+1)
// begin
//if(product[0]) {c,product[63:32]} = product[31:16] + m ;
//product[63:0] = {c,product[63:1]};
// c = 0;
for (i = 0; i < 32; i++)
begin
if (multiplier == 1)
product = product + m;
multiplicand << 1;
multiplier >> 1;
c=0;
end
end
endmodule
module testbench;
reg [31:0] multiplier;
reg [63:0] multiplicand;
initial begin
$dumpfile("USAMv1.dat");
$dumpvars;
#10ns;
multiplier = 32'b0000_0000_0000_0000_1101_1001_1101_1001;
multiplicand = 32'b0000_0000_0000_0000_0110_1010_1101_1000;
#50ns;
multiplier = 32'b0;
multiplicand = 32'b0;
$finish;
end
combinational_mult dut (product, multiplier, multiplicand);
endmodule
如果您有一个.sv文件扩展名而不是.v,大多数现代工具将解释为SystemVerilog。 – Morgan 2014-11-21 20:40:04