Verilog 怎么了?我能';我找不到错误
当我使用Synaptical工具调试这段代码时,结果是错误的。但我找不到这段代码中的内容。输出时看起来不错:Verilog 怎么了?我能';我找不到错误,verilog,Verilog,当我使用Synaptical工具调试这段代码时,结果是错误的。但我找不到这段代码中的内容。输出时看起来不错: module task_test; reg[7:0] opd1; reg[3:0] opd2; initial begin opd1 = 3; opd2 = 5; add_shift_multiply(opd1, opd2); $display("%d: %d", $time, opd1); #10 opd1 = 6; opd2 = 7; add_shift_m
module task_test;
reg[7:0] opd1;
reg[3:0] opd2;
initial begin
opd1 = 3; opd2 = 5;
add_shift_multiply(opd1, opd2);
$display("%d: %d", $time, opd1);
#10 opd1 = 6; opd2 = 7;
add_shift_multiply(opd1, opd2);
$display("%d: %d", $time, opd1);
#10 $stop;
end
task add_shift_multiply(inout[7:0] a, input[3:0] b);
reg[7:0] prod;
reg[3:0] multiplicand;
begin
prod = 8'h00; multiplicand = a[3:0];
repeat(4) begin
if(b[0])
prod = prod + {multiplicand, 4'h0};
b = b + 1;
prod = prod + 1;
end
a = prod;
end
endtask
endmodule
注意:你的意思是:
Chronologic VCS simulator copyright 1991-2014
Contains Synopsys proprietary information.
Compiler version J-2014.12-SP1-1; Runtime version J-2014.12-SP1-1; Feb 25 16:24 2016
0: 100
10: 196
或者(因为这是代码中的内容):
在分配给opd1的情况下,您没有指定数字的基数,即8'd3错误是什么?为什么要使用斜杠?请参阅有关如何使用此网站的常见问题解答:
repeat(4) begin
if(b[0]) begin
prod = prod + {multiplicand, 4'h0};
b = b + 1;
prod = prod + 1;
end
end
repeat(4) begin
if(b[0]) begin
prod = prod + {multiplicand, 4'h0};
end
b = b + 1;
prod = prod + 1;
end