2.CASE语句(续1) 例5.7CASE语句描述的8线-3线编码器。 LIBRARY IEEE; USE IEEE.STD LOGIC 1164.ALL; ENTITY encoder 83 IS PORT(s:IN STD_LOGIC_VECTOR(7 DOWNTO 0); z:OUT STD_LOGIC_VECTOR(2 DOWNTO0)); END encoder 83; ARCHITECTURE behavioral OF encoder_83 IS BEGIN PROCESS(s) BEGIN CASEs IS WHEN"11111110"=>z<="000", WHEN"11111101"=>z<="001" WHEN"11111011"=>Z<="010" WHEN"11110111"=>z<="011" WHEN"11101111"=>Z<="100" WHEN"11011111"=>Z<="101" WHEN"10111111"=>z<="110" WHEN"01111111"=>z<="111": WHEN OTHERS=>z<="XXX"; END CASE; END PROCESS; END behavioral;
2. CASE 语句(续1) 例5.7 CASE 语句描述的8线-3线编码器。 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY encoder_83 IS PORT (s: IN STD_LOGIC_VECTOR (7 DOWNTO 0); z: OUT STD_LOGIC_VECTOR (2 DOWNTO 0)); END encoder_83; ARCHITECTURE behavioral OF encoder_83 IS BEGIN PROCESS (s) BEGIN CASE s IS WHEN "11111110" => z <= "000"; WHEN "11111101" => z <= "001"; WHEN "11111011" => z <= "010"; WHEN "11110111" => z <= "011"; WHEN "11101111" => z <= "100"; WHEN "11011111" => z <= "101"; WHEN "10111111" => z <= "110"; WHEN "01111111" => z <= "111"; WHEN OTHERS => z <= "XXX"; END CASE; END PROCESS; END behavioral;
2.CASE语句(续2) 例5.8整型数据类型的范围。 ENTITY range 1 IS PORT (A,B,C,X:IN INTEGER RANGE 0 TO 15; Z:OUT INTEGER RANGE 0 TO 15); END range_1; ARCHITECTURE example OF range_1 IS BEGIN PROCESS(A,B,C,X) BEGIN CASE X IS WHEN 0=>Z<=A; WHEN 79 =Z<=B; WHEN 1TO 5=>Z<=C; WHEN OTHERS =Z<=0; END CASE; END PROCESS; END example;
2. CASE 语句(续2) 例5.8 整型数据类型的范围。 ENTITY range_1 IS PORT (A, B, C, X: IN INTEGER RANGE 0 TO 15; Z: OUT INTEGER RANGE 0 TO 15); END range_1; ARCHITECTURE example OF range_1 IS BEGIN PROCESS( A, B, C, X) BEGIN CASE X IS WHEN 0 => Z <= A; WHEN 7|9 => Z<=B; WHEN 1 TO 5 => Z<=C; WHEN OTHERS => Z<=0; END CASE; END PROCESS; END example;