[SystemVerilog] bit 幅の取得 $bits
システム関数 $bits を使います。bit 幅 (integer) を返します。
reg [7:0] r;
$display($bits(r)); // $bits(r): 8
$display($bits(1 << 8)); // $bits(1 << 8): 32
$display($bits(logic)); // $bits(logic): 1
4値の場合 1bit を返し、ツールの実装で実際に使われるメモリサイズではありません。
コンパイル時に値が決定されるものに使えます。そのため、reg, wire の宣言などに使えます。
reg [$bits(r)-1:0] d;
