-------------------------------------------------------------------------------
-- Synthesizable examples cover a large set of VHDL synthesizable constructs --
-- All examples have been synthesized with the Exemplar logic Core           --
-- Copyright 1995, Zainalabedin Navabi navabi@ece.ut.ac.ir navabi@ece.neu.edu--
-------------------------------------------------------------------------------
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
--
LIBRARY exemplar;
USE exemplar.exemplar_1164.ALL;
USE exemplar.exemplar.ALL;

ENTITY priority_encoder IS
  PORT (a : IN std_logic_vector (7 DOWNTO 0); 
        n : OUT std_logic_vector (2 DOWNTO 0);
        z : OUT std_logic_vector (7 DOWNTO 0);
        f : OUT std_logic);
END;

ARCHITECTURE behavioral OF priority_encoder IS
BEGIN
  priority : PROCESS (a)
    VARIABLE found : BOOLEAN;
  BEGIN
    n <= "000"; z <= "00000000"; f <= '0';
    found := FALSE;
    FOR i IN 0 TO 7 LOOP
      IF NOT found AND a(i) = '1' THEN 
        n <= int2evec(i, 3);
        z(i) <= '1';
        f <= '1';
        found := TRUE;
      END IF;
    END LOOP;
  END PROCESS;
END behavioral;

ARCHITECTURE behavioral OF priority_encoder IS
BEGIN
  priority : PROCESS (a)
  BEGIN
    n <= "000"; z <= "00000000"; f <= '0';
    FOR i IN 0 TO 7 LOOP
      IF a(i) = '1' THEN 
        n <= int2evec(i, 3);
        z(i) <= '1';
        f <= '1';
        EXIT;  -- Statement does not synthesize
      END IF;
    END LOOP;
  END PROCESS;
END behavioral;


<div align="center"><br /><script type="text/javascript"><!--
google_ad_client = "pub-7293844627074885";
//468x60, Created at 07. 11. 25
google_ad_slot = "8619794253";
google_ad_width = 468;
google_ad_height = 60;
//--></script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script><br />&nbsp;</div>