-1

次のコードは、デコーダー (Verilog HDL) をシミュレートするためのテスト ベンチです。に変換[15:0]IR[25:0]ControlWordます。リテラルも監視される副産物です。

16 ビットIR変数について、0 ~ 65535 のすべての値をテストする必要があります。ループの最初で、明確にIR0 を割り当てていますが、Quartus は次のように言っています。

警告 (10855): controluni_tb.v(20) での Verilog HDL 警告: 変数 IR の初期値は定数でなければなりません

その結果、次のようになります。

エラー (10119): controluni_tb.v(23) での Verilog HDL ループ ステートメント エラー: 非定数ループ条件のループは 250 回の繰り返し以内に終了する必要があります

テスト ベンチ モジュールのコードは次のとおりです。

module controluni_tb;
  reg [15:0]IR;
  reg clock;
  wire [25:0]ControlWord;
  wire [15:0] literal;
  Total_Control_Unit_2 dut (IR,ControlWord,literal);

  initial
  begin
    clock <= 1'b0;
  end

  initial
  begin
    IR <= 16'b0;
  end

  initial
  begin
    forever
    begin
      #1 IR <= IR + 16'b1;
    end
  end

  initial
    #65535 $finish;
endmodule 
4

2 に答える 2

0

コードにエラーはありません。initialブロックとシステム関数 ( $finish) はシミュレーションに使用されます (合成ではありません)。そのエラーは合成に関連しています。読みやすくするためにコードを編集しました(時計は常にゼロです!):

module controluni_tb;
    reg [15:0]IR;
    reg clock;
    wire [25:0]ControlWord;
    wire [15:0] literal;

    Total_Control_Unit_2 dut (IR,ControlWord,literal);

    initial begin
        clock = 1'b0;
    end

    initial begin
        IR = 16'b0;
        forever #1 IR = IR + 16'b1;
    end

    initial begin
        #65535 $finish;
    end
endmodule 
于 2015-04-26T06:09:42.593 に答える