Verilog测试台错误!没有编译

时间:2014-05-27 10:10:36

标签: verilog

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个源文件无法解析

  

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需要从进程中调用。