この記事には複数の問題があります。改善にご協力いただくか、トークページでこれらの問題について議論してください。(これらのメッセージを削除する方法とタイミングについてはこちらをご覧ください)
|
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
- TO_SIGNED
注: 最後の 2 つの関数にはそれぞれ、結果のベクトルの長さを指定する 2 番目の引数が必要です。
- ない
- そして
- または
- NAND
- または
- xor
- xnor
マッチ機能
- STD_MATCH
注: 引数ベクトルを要素ごとに比較しますが、値 '-' を持つビットは他の STD_ULOGIC 値と一致するものとして扱います。引数ビットのいずれかが 'U'、'X'、'W'、または 'Z' の場合、false を返します。
特別な翻訳機能
- TO_01
注: 'H' は '1' に、'L' は '0' に変換されます。この関数はオプションの2番目の引数 XMAP を受け取ります。この引数は std_logic の任意の値を指定できますが、デフォルトは '0' です。入力引数に 01LH 以外の値を指定すると、すべてのビットが XMAP に設定され、警告が表示されます。
参考文献
- ^ 1076.3 IEEE標準VHDL合成パッケージ