Download as pdf or txt
Download as pdf or txt
You are on page 1of 3

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;
use IEEE.numeric_std.all;
use IEEE.std_logic_unsigned.all;

entity when_10D is
Port ( A : in STD_LOGIC;
B : in STD_LOGIC;
C : in STD_LOGIC;
D : in STD_LOGIC;
sa : out STD_LOGIC;
sb : out STD_LOGIC;
sc : out STD_LOGIC;
sd : out STD_LOGIC;
se : out STD_LOGIC;
sf : out STD_LOGIC;
sg : out STD_LOGIC;
d1 : out STD_LOGIC;
d2 : out STD_LOGIC;
d3 : out STD_LOGIC;
d4 : out STD_LOGIC;
d5 : out STD_LOGIC;
d6 : out STD_LOGIC;
d7 : out STD_LOGIC;
d8 : out STD_LOGIC);
end when_10D;

architecture Behavioral of when_10D is

signal when_else: std_logic_vector(3 downto 0):="0000";

begin
d1 <= '1';
d2 <= '1';
d3 <= '1';
d4 <= '1';
d5 <= '1';
d6 <= '1';
d7 <= '1';
d8 <= '0';

when_else <= A & B & C & D;


sa <= '1' when when_else = "0001" else
'1' when when_else = "0100" else
'1' when when_else = "1011" else
'1' when when_else = "1101" else
'0';

sb <= '1' when when_else = "0101" else


'1' when when_else = "0110" else
'1' when when_else = "1011" else
'1' when when_else = "1100" else
'1' when when_else = "1110" else
'1' when when_else = "1111" else
'0';

sc <= '1' when when_else = "0010" else


'1' when when_else = "1100" else
'1' when when_else = "1110" else
'1' when when_else = "1111" else
'0';

sd <= '1' when when_else = "0001" else


'1' when when_else = "0100" else
'1' when when_else = "0111" else
'1' when when_else = "1001" else
'1' when when_else = "1010" else
'1' when when_else = "1111" else
'0';

se <= '1' when when_else = "0001" else


'1' when when_else = "0011" else
'1' when when_else = "0100" else
'1' when when_else = "0101" else
'1' when when_else = "0111" else
'1' when when_else = "1001" else
'0';

sf <= '1' when when_else = "0001" else


'1' when when_else = "0010" else
'1' when when_else = "0011" else
'1' when when_else = "0111" else
'1' when when_else = "1101" else
'0';
sg <= '1' when when_else = "0000" else
'1' when when_else = "0001" else
'1' when when_else = "0111" else
'1' when when_else = "1100" else
'0';

end Behavioral;

You might also like