我对verilog世界真的很陌生,我不明白为什么我的程序什么也没返回。我正在尝试制作简单的 6 位向上计数器,该计数器依靠按下按钮。代码是
module top (CLK, BTN_RST, LED, BTN_C);
input CLK, BTN_RST, BTN_C; //
output [5:0]LED;
reg [5:0]LED;
always @(posedge CLK or posedge BTN_RST) begin
if (BTN_RST) begin
LED <= 6'b000000;
end
else begin: COUNT
while (BTN_C) begin
LED <= LED + 1'b1;
disable COUNT;
end
end
end
endmodule
测试台是
module top_test;
reg CLK;
reg BTN_RST;
reg BTN_C;
reg [5:0]LED;
initial begin
CLK = 0;
BTN_RST = 0;
BTN_C = 0;
#1 BTN_RST = 1;
#5 BTN_RST = 0;
#10 BTN_C = 1;
#50;
end
always
begin
#5 CLK=~CLK;
end
这段代码编译并运行(正如我在 iSim 上看到的那样),但 LED 输出给了我 XXXXXX。我想我不仅在这里犯了一些错误,而且无法理解测试台是如何工作的,以及如何对输入和输出进行正确的分配。谁能帮帮我吗?