5

入力としてワイヤーを受け入れるモジュールを作成し、[ 4 : 0 ]このモジュールのいくつかのインスタンスを使用しています。しかし、私は得ています:

インスタンスポート式の構文エラー

AFを含む値を渡すときはいつでも。

例えば:

key_schedule i1(09); // works
key_schedule i1(0A); // doesn't work
key_schedule i1(15); // works
key_schedule i1(1D); // doesn't work

誰かが何が悪いのか知っているなら、私は彼らの助けに感謝します。

また、値「C」を渡した場合はどうなりますが、ワイヤーと呼ばれるものもありCますか?

4

2 に答える 2

12

Verilog はすべての裸の数値リテラルを 10 進数として扱います。 AでありD、正当な 10 進数値ではありません。

16 進数のリテラルの場合、次を使用してリテラル タイプを指定する必要があります'h

key_schedule i1('h0A); // works
key_schedule i1('h1D); // works

IEEE Std (たとえば、1800-2009) のセクション「Numbers」を参照してください。

次のコードは、2 つの異なるシミュレーター (Incisive と VCS) でエラーなしでコンパイルされます。

module tb;
    key_schedule i1(5'h1A);
    key_schedule i2('h1A);
endmodule

module key_schedule (input [4:0] in);
    always @(in) $display(in);
endmodule
于 2013-01-07T21:28:25.867 に答える
6

http://www.asic-world.com/verilog/syntax1.html#Integer_Numbersから

Verilog HDLでは、整数を次のように指定できます。

  • サイズ変更された数値またはサイズ変更されていない数値(サイズ変更されていないサイズは32ビット)
  • 2進数、8進数、10進数、または16進数の基数
  • 基数と16進数(a、b、c、d、e、f)では大文字と小文字は区別されません
  • サイズ、基数、値の間にスペースを入れることができます

構文:

[size]'[radix][value];

例:

8'h1D;   # 8-bit hex value "1D"
于 2013-01-07T21:29:48.563 に答える