Hallo zusammen, ich bin in VHDL leider noch ein blutiger Anfänger. Deshalb bräuchte ich mal wieder eure Hilfe. Ich verwende das Spartan 3 Starter Kit (Xilinx) mit dem FPGA XC3S200. Auf dem Board ist ein 50 MHz Quarz verbaut, den ich gerne auch nutzen und runterteilen würde, um die gewünschte Frequenz zu erhalten. Konkret wollte ich ein Lauflicht programmieren, das 8 LEDs innerhalb von 1 Sek. durläuft. Ich habs wie folgt versucht: (auch wenn hier 10Hz rauskommen sollten!) Clk - 50MHz Clock Counter - Zähler vom Typ "integer range 4999999 downto 0" Enable - Enable-Signal für die nachfolgenden Logikblöcke if (clk'event and clk = '1') then if (Counter = 0) then Counter <= 4999999; Enable <= '1'; else Counter <= Counter - 1; Enable <= '0'; end if end if; if (Enable = '1') then ... -- weiter Quellcode nach der Compilierung erhalte ich folgende Warnung: "DesignRules:372 - Netcheck: Gated clock. Clock _n0010 is sourced by a combinatorial pin. This is not good design practice. Use the CE (Clock Enable) pin to control teh loading of data into the flip-flop." Jetzt meine Frage: Was will mir diese Meldung "Gated Clock" sagen und wie kann ich diese vermeiden? D.h. wie kann ich den Clock-Enable-Pin (CE) im Bsp. des Lauflichts verwenden. Für jede Antwort bin ich sehr dankber. Vielleicht hat auch jemand einen Quellcode für ein Lauflicht (Spartan 3) den er mir evtl. zur Verfügung stellen kann. Danke!!! Gruß Alex
Hallo Alex, das ist ganz einfach, Du musst die Abfrage nur oben in den Prozess reinschreiben oder nimmst einen neuen Prozess, der wieder mit CLK getaktet wird. Ich würde Variante 1 bevorzugen: if rising_edge(clk) then if (Counter = 0) then Counter <= 4999999; Enable <= '1'; else Counter <= Counter - 1; Enable <= '0'; end if if Enable = '1' then -- hier den Code für das Lauflicht einfügen end if; end if;
Hi, Lauflicht kann ich nicht bieten , aber dieses Tutorial ist fuer VHDL und Spartan3 Starterkit. http://www.derepas.com/fabrice/hard/ Gruß, Dirk
Hallo Alex, im Anhang ein kompletter VHDL-Code +Constraints-File für Spartan 3 Startek Kit +Test-Bench für ein Lauflicht. Desweiteren wird die Anzahl der leuchtenden LEDs auf dem 7-Segment Display angezeigt. Das Lauflicht läuft glaub ich sogar vorwärts bis LED7 an ist....diese blinkt dann noch einmal und es läuft wieder rückwärts bis LED0 an ist...diese blinkt einmal und es läuft wieder vorwärts usw... Da ich auch Anfänger bin, und das auch eines meiner ersten "Projekte" war, ist der Code wahrscheinlich anfängertypisch (wenn nicht, dann wäre ich auch nicht böse.... im Gegenteil). Aber wenn jemand mal ein wenig Zeit hat, kann er den Code ja mal anschauen und mir sagen, wie das einfacher zu lösen ist. Ich kann mir nicht vorstellen, dass mein Lösungsweg perfekt ist (wenn doch, dann mach ich hier gleich mal einen Freudensprung). Nochmal zum Code selbst: Die Signalbezeichnungen wie z.B. clk_10Hz stimmen nicht. Am Anfang waren es mal 10Hz aber ich glaub inzwischen hab ich das wieder geändert....ist doch schon wieder ein paar Wochen her. Was ich damit sagen will: Lass dich durch die Signalnamen nicht beeinflussen. Das UCF-File stimmt mit dem XILINX SPARTAN 3 STARTER KIT (welches wirklich ausgezeichnet ist) überein, d.h. du kannst direkt mein UCF-File nehmen und brauchst die Pins nicht mehr festzulegen. Viel Spaß damit! Gruß Daniel!
Hallo Leute, vielen Dank für die Antworten. Werde diese sofort mal anschauen. Dieses Forum ist einfach Klasse. Suche schon seit Tagen nach einer Antwort auf meine Frage. Vielen Dank Gruß Alex
Habs gerade ausprobiert! Funktionier hervorragend. Danke noch mal an Alle. Gruß Alex
Hallo Zusammen, ich hab jetzt von DCM (Digital Clock Management) gehört. So wie sich das anhört ist das ein relativ mächtiges "Tool" mit Frequenzvervielfachung, Phasenverschiebungen, .... Wie kann ich das in meinen VHDL-Code einbinden? Benötige ich da eine Library oder muuss ich da irgendwelche Register setzen? ??? Vielleicht kann mir jmd. etwas über DCM erzählen und/oder evtl. ein kleines Quellcode-Bsp. zur Verfügung stellen, anhand dessen ich mich da etwas einarbeiten kann. Bin für jede Info sehr dankbar! Vielen Dank Leute, Gruß Alex
> Vielleicht kann mir jmd. etwas über DCM erzählen und/oder evtl. ein > kleines Quellcode-Bsp. zur Verfügung stellen, anhand dessen ich mich > da etwas einarbeiten kann. Lesen musst du schon selbst: http://www.xilinx.com/bvdocs/appnotes/xapp462.pdf
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.