我正在尝试制作一个测试台来模拟一个工作的顶级模块(和子模块),但是我无法让 iverilog 正确处理顶部的输出(LEDS、RS232Rx 和 RS232Tx 是物理引脚)
这是我在测试台上的尝试
module test();
initial begin
$dumpfile("test.vcd");
$dumpvars(0,test);
# 1024 $stop;
end
reg clk = 0; always #1 clk = !clk;
//reg rx,tx;
reg [7:0] opl;
top top1 ( .clk(clk), .RS232Rx(rx), .RS232Tx(tx), .LEDS(opl) );
endmodule
我看到这样的错误
iverilog -o test-design testbench.v top.v
top.v:47: error: LEDS is not a valid l-value in test.top1.
top.v:8: : LEDS is declared here as wire.
testbench.v:10: error: reg opl; cannot be driven by primitives or continuous assignment.
testbench.v:10: error: Output port expression must support continuous assignment.
testbench.v:10: : Port 4 (LEDS) of top is connected to opl
3 error(s) during elaboration.
我已经尝试了很多东西,但没有太多的启发或不同的错误消息,最好的 LED 作为测试台输出,只显示 top.v 中的一个错误,它正在工作......我看到非常相似的错误rx,tx 但将它们注释掉以缩短输出...
只是重申 top.v 确实,不仅合成而且在实际硬件上的行为完全符合预期