numeric_std は、 VHDL用に定義されたライブラリ パッケージです。ベクトルの算術関数を提供します。std_logic_vector のオーバーライドは、符号付きおよび符号なしの算術用に定義されています。合成ツールで使用する数値型と算術関数を定義します。UNSIGNED (ベクトル形式で UNSIGNED 数値を表す) と SIGNED (ベクトル形式で SIGNED 数値を表す) の 2 つの数値型が定義されています。基本要素型は STD_LOGIC 型です。左端のビットは最上位ビットとして扱われます。符号付きベクトルは 2 の補数形式で表されます。このパッケージには、SIGNED 型と UNSIGNED 型のオーバーロードされた算術演算子が含まれています。また、便利な型変換関数も含まれています。
これは通常、デザイン ユニットの先頭に含まれます。
ライブラリieee ; ieee.std_logic_1164. allを使用します。-- 標準の未解決ロジック UX01ZWLH- ieee.numeric_std. allを使用します。-- 符号付き、符号なしの型および算術演算用
代替の数値パッケージ ieee.std_logic_arith は、新しい設計には使用しないでください。[引用が必要]このパッケージは、符号付き関数と符号なし関数を混在させるためのオーバーライドを提供しません。このパッケージには、次の定義が含まれています(すべてが合成可能というわけではありません): [1]
演算子と関数
符号変更演算子
- 腹筋
- -
算術演算子
- +
- -
- *
- /
- レム
- モッド
注意: /、rem、または mod の 2 番目の引数は 0 以外である必要があります。
比較演算子
- >
- <
- <=
- >=
- =
- /=
シフトと回転機能
- シフト左
- シフト右
- 左回転
- 右回転
- sll
- srl
- ロール
- ロー
サイズ変更機能
- サイズ変更(v,n)
注意: 符号付きベクトルのサイズを増やすと、左端のビットに符号ビットが埋め込まれますが、切り捨てでは符号ビットと右端の (n-1) ビットが保持されます。符号なしベクトルの場合、サイズを増やすと左端のビットがゼロで埋め込まれますが、切り捨てでは右端の n ビットが保持されます。
変換関数
- TO_INTEGER
- TO_UNSIGNED
- 署名済み
注: 後者の 2 つの関数にはそれぞれ、結果のベクトルの長さを指定する 2 番目の引数が必要です。
- ない
- そして
- または
- ナンド
- または
- 排他的論理和
- エクスノール
マッチ機能
- 標準マッチ
注: 引数ベクトルを要素ごとに比較しますが、値 '-' を持つビットは他の STD_ULOGIC 値と一致するものとして扱います。引数ビットが 'U'、'X'、'W'、または 'Z' の場合は false を返します。
特別な翻訳機能
- TO_01
注: 'H' は '1' に変換され、'L' は '0' に変換されます。この関数はオプションの 2 番目の引数 XMAP を取ります。この引数は std_logic 値のいずれかになりますが、デフォルトは '0' です。入力引数に 01LH 以外の値を指定すると、すべてのビットが XMAP に設定され、警告が発行されます。
参考文献
- ^ 1076.3 IEEE 標準 VHDL 合成パッケージ
