文字列の値は、HDL オブジェクトの宣言型と -radix
コマンド ライン オプションに基づいて解釈されます。-radix
の指定が、HDL オブジェクト型で定義されたデフォルトの基数よりも優先されます。
-
logic
型の HDL オブジェクトの場合、値はlogic
型の 1 次元配列または指定した基数の桁数の文字列です。- 文字列のビット数が型のビット数よりも少ない場合、文字列がその型のビット数に一致するようにゼロ拡張 (符号拡張ではない) されます。
- 文字列のビット数が型のビット数よりも大きい場合、上位の余分なビットが 0 でないと、サイズ不一致エラーになります。
たとえば、基数が 16 進数で 6 ビットの
logic
配列を使用する 8 ビット (16 進数の 1 桁ごとに 4 ビット) の場合、値 3F は 2 進数で 0011 1111 になります。ただし、上位 2 ビットは 0 なので、値は HDL オブジェクトに代入できます。値が 7F の場合は、上位 2 ビットが 0 ではないので、エラーになります。- スカラー (配列またはレコードではない) の
logic
型 HDL オブジェクトの長さは 1 ビットです。 -
a [left:right]
(Verilog) またはa(left TO/DOWNTO right)
と宣言されるlogic
配列の場合、拡張/切り捨て後の一番左の値ビットがa[left]
に代入され、一番右の値ビットがa[right]
に代入されます。