Altera_Forum
Honored Contributor
13 years agodont care in VHDL problem
Hi Folks,
I am afraid I am asking for some advice again. I am trying to write VHDL code for a 8-3 highest bit priority encoder. I thought it would simply be a code which includes the ‘X’ don’t care value placed in the case statements. However the compiler states that it will be ignored. I suppose I could get round it by writing some if statement which cover all values of X for each input, however this will be long. I don’t mind doing its just if there is an easier method I would rather do it that way. I have attached the code for a normal 8-3 encoder. Thanks in advance. LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY encoder IS PORT ( CE : IN STD_LOGIC; --Chip Enable Data_in: IN STD_LOGIC_VECTOR(7 DOWNTO 0); Data_out: OUT STD_LOGIC_VECTOR(2 DOWNTO 0) ); END encoder; ARCHITECTURE Encoderbehav OF encoder IS BEGIN PROCESS(CE,Data_in) BEGIN IF ( CE = '1') THEN Data_out <= "ZZZ"; ELSE CASE Data_in IS WHEN "00000001" => Data_out <= "000"; WHEN "00000010" => Data_out <= "001"; -- 0000001X WHEN "00000100" => Data_out <= "010"; WHEN "00001000" => Data_out <= "011"; WHEN "00010000" => Data_out <= "100"; WHEN "00100000" => Data_out <= "101"; WHEN "01000000" => Data_out <= "110"; WHEN "10000000" => Data_out <= "111"; WHEN OTHERS => Data_out <= "ZZZ"; END CASE; END IF; END PROCESS; END Encoderbehav;