library IEEE; use IEEE.STD_LOGIC_1164.ALL; --use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; use work.Aufg5_Pack.all; entity Aufgabe5 is Port ( CLK : in std_logic; -- Takt 50MHz sw : in std_logic_vector(8 downto 1); -- Schalter btn_cod : in std_logic_vector(4 downto 0); -- Taster seg7an : out std_logic_vector(3 downto 0); -- 7-Segmentanzeige Ziffernauswahl seg7ca : out std_logic_vector(6 downto 0)); -- 7-Segmentanzeige Segmentauswahl end Aufgabe5; architecture Behavioral of Aufgabe5 is signal aw: std_logic_vector(15 downto 0):=x"13fa"; signal CLK_Div: sBit; -- neuer Datentyp aus Aufg5_Pack begin -- Ausgabe zum Test der Funktion Hex2Seg7 seg7ca<= Hex2Seg7(sw(4 downto 1)); -- Ausgabewert Kathode seg7an<="0001"; -- Ausgabewert Anode -- process(CLK) -- Taktteiler -- ... -- end process; -- CLK_Div<=...; -- process(CLK_Div) -- Anzeige-Automat -- -- wenn ein integer als Automatenzustand verwendet wird, -- -- ist der Bereich anzugeben. Im Beispiel werden 4 Zustände -- -- erlaubt. Der Anfangszustand nach dem Download ist 0 -- variable state: integer range 0 to 3:=0; -- begin -- if CLK_Div'event and CLK_Div='1' then -- case state is -- when 0 => -- seg7ca<= Hex2Seg7(aw(3 downto 0)); -- Ausgabewert Kathode -- seg7an<="0001"; -- Ausgabewert Anode -- state:=state+1; -- Folgezustand zuweisen -- when 1 => ... -- when 2 => ... -- end case; -- -- Die Eingabe über die Schalter kann auch mit dem Takt des Anzeigeautomaten erfolgen -- if btn_cod="10000" then -- ... -- elsif btn_cod="10001" then -- ... -- end if; -- end if; -- end process; end Behavioral;