verilog testbench ce了

边写verilog的testbench如下:
会compile error,为什么?


```vb.net
module top_module ( output reg A, output reg B );//
    initial begin
        A=1'b0;
       B=1'b0;
    end
    #10 A=~A;
    #5 B=~B;
    #5 A=~A;
    #20 B=~B;
    
endmodule

```

参考GPT和自己的思路:根据提供的代码,编译会出现错误,可能是因为没有声明任何输入。在module声明前加入输入声明即可解决该问题,例如加入以下声明:

input clk;

同时,assign语句可以用来减少代码量:

assign A = $time % 20 < 10 ? 1'b0 : 1'b1;
assign B = $time % 30 < 15 ? 1'b0 : 1'b1;

上述代码中,assign语句根据系统时间计算A和B的输出值。