module top;
reg CLOCK=1'b0;
reg CLEAR = 1'b1;
wire [2:0]Q;
$monitor($time, "COUNT Q = %b CLEAR = %b" , Q[3:0],CLEAR);
john_counter a1 (Q,CLOCK,CLEAR);
forever
begin
#1 CLOCK=~CLOCK;
end
begin
#20 CLEAR = 1'b0;
#6 CLEAR = 1'b1;
end
begin
#40 $finish;
end
endmodule
我为约翰逊计数器模块编写了这个verilog测试台。 请告诉我这里的错误。
我到了 错误:令牌'$ monitor'之前的sim2.vparse错误。
“$ monitor”语法错误,意外的SYSTEM_TASK_FUNC。
错误:sim2.v:在令牌'#'之前解析错误。
“#”语法错误,意外'#'。
错误:sim2.v(第19行):在令牌'#'之前解析错误。
“#”语法错误,意外'#'。
错误:sim2.v(第24行):在令牌'#'之前解析错误。
“#”语法错误,意外'#'。
1个源文件无法解析
答案 0 :(得分:1)
你错过了最初的'关键字。您希望所有时钟,重置和测试进程同时运行。
module top;
reg CLOCK = 1'b0;
reg CLEAR = 1'b1;
wire [2:0] Q;
john_counter a1 (Q,CLOCK,CLEAR);
// clock process
initial begin
forever begin
#1 CLOCK=~CLOCK;
end
end
// reset process
initial begin
#20 CLEAR = 1'b0;
#6 CLEAR = 1'b1;
end
// test process
initial begin
$monitor("%g COUNT Q = %b CLEAR = %b" , $time, Q, CLEAR);
#40 $finish;
end
endmodule
此外,您的$ monitor需要从进程中调用。