Hallo, guten Tag. Ich habe diesen Code gefunden zum lernen für mich als Anfänger. Ich habe das DE1-Board. Kann man hier zb für "clk" gleich "PIN_D12" reinsetzen? Oder wo kann ich diesem "clk" diesen "PIN_D12" zuweisen, damit ich hier im Programm dieses "clk" belasse? Was ist besser , gleich die PIN-Belegung vom DE1 nehmen oder neue Namen für das Programm vergeben ? Danke. Gruss [quote] library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.NUMERIC_STD.ALL; entity tb_BlinkLED is -- leere Entity --> Testbench end tb_BlinkLED; architecture behavior of tb_BlinkLED is component BlinkLED port( clk : IN std_logic; led : OUT std_logic ); end component; signal clk : std_logic := '0'; -- lokale Signale der Testbench signal led : std_logic; -- werden an den Prüfling angeschlossen begin uut: BlinkLED -- der Prüfling wird verdrahtet port map ( clk => clk, led => led ); clk <= not clk after 10 ns; -- einen 50MHz Takt erzeugen end; [/quote]
Im Quartus gibt es einen Menupunkt "Pin Planner" Damit werder die Chip-Eingänge und die Toplevel Signale verbunden. Sowas ist meines Wissens nicht synthetisierbar. Das geht nur bei Simulationen. clk <= not clk after 10 ns; -- einen 50MHz Takt erzeugen
peter schrieb: > Was ist besser , gleich die PIN-Belegung vom DE1 nehmen oder neue Namen > für das Programm vergeben ? Ich mache mir für jedes FPGA-Board ein top-Modul. Dort kommen die funktionellen Namen des jeweilgen Boards hin (z.B. CLK125, BUTTON0_N, CONX1_12). Die Zuordnung zu den Pins kommt dann ins Constraint-File. Die eigentliche Logik steckt dann in einem Untermodul und wird im top-Modul nur verdrahtet. Duke
peter schrieb: > clk <= not clk after 10 ns; -- einen 50MHz Takt erzeugen Hier mal was für "The Absolute Beginner": http://www.lothar-miller.de/s9y/archives/80-Hello-World!.html
Jup, danke. Habe jetzt mal dieses Programm compiliert und funktioniert auch: -------------------------------------------- library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.NUMERIC_STD.ALL; entity BlinkLED is Port ( clk : in STD_LOGIC; led : out STD_LOGIC); end BlinkLED; architecture Behavioral of BlinkLED is signal c : integer range 0 to 24999999 := 0; -- 0,5s bei 50MHz fosc signal x : std_logic:= '0'; begin process begin wait until rising_edge(clk); -- warten bis zum nächsten Takt if (c<24999999) then -- 0…24999999 = 25000000 Takte = 1/2 Sekunde bei 50MHz c <= c+1; -- wenn kleiner: weiterzählen else -- wenn Zählerende erreicht: c <= 0; -- Zähler zurücksetzen x <= not x; -- und Signal x togglen end if; end process; led <= x; -- Signal x an LED ausgeben end Behavioral; --------------------- Was hat das mit der Datei-Namensgebung zu tun?: entity BlinkLED is .... Der Dateiname hieß bei mir blink1 und es wurde gemeckert. Was hat die Spannung 3,3V LVTTL bei I/O Standart zu tun bei der LED und bei CLK? Es steht dort in der Tabelle auch 1.3 V usw die man auswählen kann. Danke. Gruss
Hmmm... , warum ist die LED-G an für TXD und die LED-R für RXT bei diesem Programm : Datum: 16.04.2014 16:30 oben auf meinem DE1? Danke. Gruss
Peter Bierbach schrieb: > Was hat das mit der Datei-Namensgebung zu tun?: > entity BlinkLED is Im Prinzip nichts. Um selber den Überblich zu behalten, schreibe ich eine entity/architecture in eine Datei. Außerdem benenne ich Datei und Entity gleich. > Der Dateiname hieß bei mir blink1 und es wurde gemeckert Es gibt vielleicht einen gleichnamigen Pin? In solchen Fällen ist ein Screenshot von der Fehlermeldung recht hilfreich. > Was hat die Spannung 3,3V LVTTL bei I/O Standart zu tun bei der LED und > bei CLK? Es steht dort in der Tabelle auch 1.3 V usw die man auswählen > kann. Dort muß die Spannung eingestellt werden, mit der auf dem Board an der entsprechenden IO-Bank gearbeitet wird. Dazu muß man im Schaltplan bzw. der Dokumentation nachsehen. Peter Bierbach schrieb: > warum ist die LED-G an für TXD und die LED-R für RXT bei > diesem Programm Die sind möglicherweise low-aktiv und werden von Deinem Design nicht verwendet... Auch hier hilft ein Blick in den Schaltplan. Duke
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.