library IEEE; use IEEE.STD_LOGIC_1164.all; use IEEE.numeric_std.all; use IEEE.std_logic_unsigned.all; entity DDR is port ( ALARM_TIME : in std_logic_vector (3 downto 0); CURRENT_TIME : in std_logic_vector (3 downto 0); SHOW_A : in std_logic; ----- DISPLAY : out std_logic_vector (6 downto 0); SOUND_ALARM : out std_logic ); end DDR; architecture RTL of DDR is signal DISP_CURRENT : std_logic_vector(6 downto 0); signal DISP_ALARM : std_logic_vector(6 downto 0); begin DISP_CURRENT <= "1000000" when CURRENT_TIME="0000" else "1111001" when CURRENT_TIME="0001" else "0100100" when CURRENT_TIME="0010" else "0110000" when CURRENT_TIME="0011" else "0011001" when CURRENT_TIME="0100" else "0010010" when CURRENT_TIME="0101" else "0000010" when CURRENT_TIME="0110" else "1111000" when CURRENT_TIME="0111" else "0000000" when CURRENT_TIME="1000" else "0010000" when CURRENT_TIME="1001" else "0011100" ; DISP_ALARM <= "1000000" when ALARM_TIME="0000" else "1111001" when ALARM_TIME="0001" else "0100100" when ALARM_TIME="0010" else "0110000" when ALARM_TIME="0011" else "0011001" when ALARM_TIME="0100" else "0010010" when ALARM_TIME="0101" else "0000010" when ALARM_TIME="0110" else "1111000" when ALARM_TIME="0111" else "0000000" when ALARM_TIME="1000" else "0010000" when ALARM_TIME="1001" else "0011100" ; process (SHOW_A) is begin if SHOW_A = '0' then DISPLAY <= DISP_CURRENT; else DISPLAY <= DISP_ALARM; end if; end process; process is begin if DISP_ALARM = DISP_CURRENT then SOUND_ALARM <= '1'; else SOUND_ALARM <= '0'; end if; end process; end RTL;