UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

AR# 45213

VHDL で STD_LOGIC_VECTOR を整数に変換する方法

説明

VHDL で STD_LOGIC_VECTOR を整数に変換する簡単な方法を教えてください。

ソリューション


タイプ変換は、VHDL コードの記述中に実行される通常の処理ですが、場合によっては扱いにくいことがあります。例として、STD_LOGIC_VECTOR タイプを整数タイプに変換する場合が挙げられます。これを実行するには、次のようなオプションがあります。
  1. Function "conv_integer" defined in Synopsys Library : std_logic_arith, defined as:

    function CONV_INTEGER(ARG: UNSIGNED) return INTEGER;
    function CONV_INTEGER(ARG: SIGNED) return INTEGER;
  2. Function "To_integer" defined in IEEE library:numeric_std, defined as:


    function TO_INTEGER (ARG: UNSIGNED) return INTEGER;
    function TO_INTEGER (ARG: SIGNED) return INTEGER;

これらのうち、numeric_std が改善されたパッケージで、より使いやすいものです。次のコードは、STD_LOGIC_VECTOR 符号付き整数に変換する場合の例です。
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
USE ieee.numeric_std.ALL;


entity conv_test is
Port ( a : in STD_LOGIC_VECTOR (7 downto 0);
b : out integer);
end conv_test;

architecture Behavioral of conv_test is

begin

b <= to_integer(signed(a));

end Behavioral;

符号なし整数の場合、一部は次のようになります。
b <= to_integer(unsigned(a));
AR# 45213
日付 02/21/2013
ステータス アクティブ
種類 一般
このページをブックマークに追加