2006年02月23日
VHDL TIPS 「条件付信号代入文と選択信号代入文の使用法」
process文以外でシンプルに条件式を記述する方法がある。
(個人的にはわかりづらいのと思うので、あまり使う機会は無いが...)
使用例:
-- 信号宣言 --
signal ENB : integer;
signal DIN : std_logic_vector(63 downto 0);
signal DOUT : std_logic_vector(63 downto 0);
signal ENB : integer;
signal DIN : std_logic_vector(63 downto 0);
signal DOUT : std_logic_vector(63 downto 0);
--条件付信号代入文例 --
with ENB select
DOUT <= DIN when 0,
(others => '0') when 1,
(others => '1') when 2,
(others => 'Z') when others;
with ENB select
DOUT <= DIN when 0,
(others => '0') when 1,
(others => '1') when 2,
(others => 'Z') when others;
--選択信号代入文例 --
DOUT <= DIN when ENB = 0
else (others => '0') when ENB = 1
else (others => '1') when ENB = 2
else (others => 'Z');
DOUT <= DIN when ENB = 0
else (others => '0') when ENB = 1
else (others => '1') when ENB = 2
else (others => 'Z');
上記の条件付信号代入文例と選択信号代入文例は同じ動作をする。