pp.117-118
論理式でも記述できないことはないがプロセス文のほうが遙かに容易である。
テキストはアノードコモンを使っているが、手持ちはカソードコモンしかなかったので、ここではカソードコモンを使う。したがって論理はテキストとは反転する。
library IEEE; use IEEE.std_logic_1164.all; entity dec_7seg is port( DIN : in std_logic_vector(3 downto 0); SEG7 : out std_logic_vector(6 downto 0) ); end dec_7seg; architecture RTL of dec_7seg is begin process(DIN) begin case DIN is -- cathodeコモン -- -- a -- -- | | -- f b -- | | -- -- g -- -- | | -- e c -- | | -- -- d -- -- センシティビティリストにはすべてのケースをもれなく記述する。 -- "gfedabc" when x"0" => SEG7 <= "0111111"; when x"1" => SEG7 <= "0000011"; when x"2" => SEG7 <= "1011110"; when x"3" => SEG7 <= "1001111"; when x"4" => SEG7 <= "1100011"; when x"5" => SEG7 <= "1101101"; when x"6" => SEG7 <= "1111101"; when x"7" => SEG7 <= "0000111"; when x"8" => SEG7 <= "1111111"; when x"9" => SEG7 <= "1101111"; --when x"A" => SEG7 <= "1110111"; --when x"b" => SEG7 <= "1111001"; --when x"C" => SEG7 <= "0111100"; -- when x"c" => SEG7 <= "1011000" --when x"d" => SEG7 <= "1011011"; --when x"E" => SEG7 <= "1111100"; --when x"F" => SEG7 <= "1110100"; when others => SEG7 <= "0000000"; -- その他はothersで表現する。 end case; end process; end RTL;
今、9を表示している。