--------------------------------------------------------------
-- Copyright 1996 by Doone Publications. All rights reserved.
--
-- Design: PRI_EN8_3_CASE
-- Name: Doug Smith
-- Date: 1st June 1996
--
-- Description:
-- 8-3 priority encoder using a "case" statement.
--------------------------------------------------------------
library IEEE;
use IEEE.STD_Logic_1164.all, IEEE.Numeric_STD.all;
entity PRI_EN8_3_CASE is
port (A: in unsigned(7 downto 0);
Valid: out std_logic;
Y: out unsigned(2 downto 0));
end entity PRI_EN8_3_CASE;
architecture COND_DATA_FLOW of PRI_EN8_3_CASE is
begin
process (A)
variable A_int: integer range 0 to 255;
begin
A_int := to_integer(A);
Valid <= '1';
case A_int is
when 128 to 255 => Y <= "000";
when 64 to 128 => Y <= "001";
when 32 to 63 => Y <= "010";
when 16 to 31 => Y <= "011";
when 8 to 15 => Y <= "100";
when 4 to 7 => Y <= "101";
when 2 to 3 => Y <= "110";
when 1 => Y <= "111";
when others => Valid <= '0';
Y <= "XXX";
end case;
end process;
end architecture COND_DATA_FLOW;