[Verilog][SystemVerilog] bit 幅を指定しない整数リテラルの bit 幅

数字のみ、bit 幅指定なしで進数表記ありの場合どちらも 32bit(以上)の bit 幅になります。

5 // 32-bit
'd5 // 32-bit
'h5 // 32-bit
'b101 // 32-bit
view raw

gistfile1.v

hosted with ❤ by GitHub

The number of bits that make up an unsized number (which is a simple decimal number or a number without
the size specification) shall be at least 32.

32bit より大きい式で使うと bit 幅が拡張されます。ただ Verilog 1995 では、MSB の x, z は 32bit までしか拡張されないらしい。

SystemVerilog: An unsized single-bit value

SystemVerilog からは 式の bit 幅に合わせて自動拡張するリテラル表記が追加されています。bit 幅と進数表記指定なしで「’」のみ付けて表記します。

logic [63:0] a;
a = '0; //
a = '1; // a = 64'hFFFF_FFFF_FFFF_FFFF
a = 'x; // 'X も OK
a = 'z; // 'Z も OK
view raw

gistfile1.v

hosted with ❤ by GitHub

‘0、’1 単独では 1bit 幅のようです。

See Also

  • IEEE Std 1364™-2005: 3.5.1 Integer constants
  • IEEE Std 1800™-2012: 5.7.1 Integer literal constants
スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク