2017-09-20 1 views
1

エラーがどこにあるかわかりません。何か愚かなものを見ているような気がします。Verilog構文エラー[HDL 9-806]

モジュール用のテストベンチを生成しようとしていますが、構文エラーが発生しています。コードは次のとおりです。

module tb_clock_test; 

reg clk, pps_in, rst; 
wire pps_rcvd, pps_out; 
wire [26:0] count; 
int d; 


clk_test uut(
    .core_clk(clk), 
    .pps_in(pps_in), 
    .rst(rst), 
    .pps_rcvd(pps_rcvd), 
    .pps_out(pps_out), 
    .count(count) 
); 

initial begin 
    clk <= 0; 
    pps_in <= 0; 
    rst <= 1; 
    clk = !clk; 
    #8 rst = 0; 
    clk = !clk; 
    #8 rst = 1; 
    clk = !clk; 
    #8 pps_in = 1; 
end 

for (d = 0; d < 250000000; d = d + 1) begin 
    #8 clk = !clk; 
end 
end module 

私は次のエラーを取得しています:

'[HDL 9-806] Syntax error near "#". ["tb_clock_test.v":31]'

誰でも助けることができますか?

答えて

0

forループはプロシージャブロック内にある必要があります。エラーを修正する1つの方法は次のとおりです。

initial begin 
    for (d = 0; d < 250000000; d = d + 1) begin 
     #8 clk = !clk; 
    end 
end 

エラーを修正したら、別のエラーが発生するはずです。 2つの個別のキーワードend moduleを単一のキーワードendmoduleに変更します。