数値標準

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 に設定され、警告が表示されます。

参考文献

  1. ^ 1076.3 IEEE標準VHDL合成パッケージ