(二)8-3优先编码器(if-elsif-else实现):
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY coder IS
PORT(
D:IN STD_LOGIC_VECTOR(7 DOWNTO 0);
output:OUT STD_LOGIC_VECTOR(2 DOWNTO 0)
);
END coder;
ARCHITECTURE art1 OF coder IS
BEGIN
PROCESS(D)
BEGIN
IF D(7)='0' THEN output<="000";
ELSIF D(6)='0' THEN output<="001";
ELSIF D(5)='0' THEN output<="010";
ELSIF D(4)='0' THEN output<="011";
ELSIF D(3)='0' THEN output<="100";
ELSIF D(2)='0' THEN output<="101";
ELSIE D(1)='0' THEN output<="110";
ELSE output<="111";
END IF;
END PROCESS;
END art1;