Hallo ihr lieben, ich bin ziemlich verzweifelt und hoffe, ihr könnt mir helfen.
Ich brauche 2 Dinge:
a) Ein ganz simples Lauflicht. Steuerung über einen Input (Kippschalter), und es sollen einfach nur 8 LEDs durchlaufen werden, solange der Schalter auf +an* ist. Wahrscheinlich die einfachste Sache der Welt, blos habe ich keinerlei Ahnung von VHDL bzw. davon, wie ich nen Timer und/oder Zustandsübergänge realisieren kann.
b) Ein Würfel. Das ist wahrscheinlich schwieriger (zumindest stell ichs mir so vor ). Ähnliches Prinzip. Dachte mir, dass man das über ne prellende Taste machen kann. Beim Druck werden die Zustände durchlaufen und dann wird einer auf den entsprechenden LEDs ausgegeben .. evl. geht das aber auch gar nicht? Gibt es eine random-Funktion?
Ich glaube ihr seht, dass ich (zwar nicht blond aber trotzdem) ziemlich ahnungslos bin. Kann mir hier jmd. helfen? BITTE
Re: Lauflicht & Würfel ... bitte helft mir!
achja ... falls es wichtig ist: ich hab den Xilinx Pr. navigator zur Verfügung & als chip den coolrunner xpla3 (?)
Re: Lauflicht & Würfel ... bitte helft mir!
Hallo Katja,
mußt du dazu unbedingt VHDL benutzen? Solche Aufgaben lassen sich leichter über "Schematic Entry" lösen, weil die Aufgabenstellung nicht wirklich komplex ist. Mit Schematic Entry bedienst du dich sozusagen aus einem Baukasten der Funktionen deines CPLDs und verdrahtest dann einfach. Dabei behältst du auf jeden Fall besser die Übersicht und kannst leichter verstehen, was du da überhaupt machst. Arbeitest du schon länger mit CPLDs?
Sven
Re: Lauflicht & Würfel ... bitte helft mir!
Hallo Sven. Danke erstmal für die schnelle Antwort.
Ich muss es mit VHDL machen. Bei meiner Aufgabe geht es hauptsächlich um die Sprache ... Und nein, ich arbeite bisher gar nicht damit. Das isses ja. Ins kalte Wasser geworfen sozusagen ...
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;
ah ok danke. eine frage habe ich jedoch noch. habe mir das programm etwas genauer angeschaut. habe das meisste verstanden jedoch weiss ich nicht was dieser clk bewirkt. kann mir jemand das erklären. danke mfg
Re: Lauflicht & Würfel ... bitte helft mir!
Auf was programmierst du denn das ganze? Mithilfe von FPGA´s?