witteks
Stammgast
Beiträge: 27
|
Erstellt: 10.03.05, 16:42 Betreff: Re: Lauflicht & Würfel ... bitte helft mir! |
|
|
Hallo,
Habe mich mal ein paar Minuten hingesetzt.
Hier die Lösungsvorschläge:
Wahlweise kannst du auch die zip-Datei in dein Xilinx-Projektverzeichnis entpacken und danach auf die lauflicht.npl doppelklicken.
Lauflicht:
library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity LaufendeLED is Port ( taster : in std_logic; ars : in std_logic; clk : in std_logic; led : out std_logic_vector(7 downto 0)); end LaufendeLED;
architecture Behavioral of LaufendeLED is signal led_intern : std_logic_vector (7 downto 0);
begin process (clk, ars) begin if ars = '1' then led_intern <= "00000001"; elsif rising_edge (clk) then if taster = '1' then if led_intern (7) = '1' then led_intern (0) <= '1'; else led_intern (0) <= '0'; end if; led_intern (7 downto 1) <= led_intern (6 downto 0); end if; end if; end process; led <= led_intern; -- Übergabe an Ausgabe asynchron -> dadurch ist in der -- Realität im CPLD led = led_intern end Behavioral;
Würfel:
library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity wuerfel is Port ( ars : in std_logic; clk : in std_logic; taster : in std_logic; zahl : out std_logic_vector(6 downto 0)); end wuerfel;
architecture Behavioral of wuerfel is signal zahl_intern : std_logic_vector (6 downto 0); -- -- Würfeldarstellung LED-Anordnung (Bit 0 bis 6) -- -- O O (0) (4) -- -- O O O (1) (3) (5) -- -- O O (2) (6) -- begin process (clk, ars) begin if ars = '1' then zahl_intern <= "0001000"; -- eins elsif rising_edge (clk) then if taster = '1' then case zahl_intern is when "0001000" => -- eins zahl_intern <= "0010100"; -- zwei when "0010100" => zahl_intern <= "1001001"; -- drei when "1001001" => zahl_intern <= "1010101"; -- vier when "1010101" => zahl_intern <= "1011101"; -- fünf when "1011101" => zahl_intern <= "1110111"; -- sechs when others => zahl_intern <= "0001000"; -- eins end case; end if; end if; end process; zahl <= zahl_intern; -- Übergabe an Ausgabe asynchron -> real: zahl = zahl_intern end Behavioral;
Lauflicht.zip (27 kByte)
anzeigen - speichern
Datei wurde schon 294-mal heruntergeladen. |
|