Hallo, ich schreibe gerade mein erstes Programm in VHDL. Ich verstehe die Funktionsweise der Syntheseumsetzung noch nicht 100% genau. Ich habe auf meinem Board einen Takt von 50 Mhz. Ich möchte einen Clock-Divider haben, der mir von diesem Takt abgeleitet einen zwei Takte zur Verfügung stellt. Einen 100Khz und einen 1Hz Takt. Zudem habe ich noch ne Frage: Wenn ich ein Modul in VHDL starte, der auf ein Aeingangssignal reagierend mir ein Ausgangssignal liefert.. Wie kann ich erreichen, dass ich am Ausgang nur einen kurzen Impuls erhalte, der sofort wieder auf Low geht, auch wenn das Einganssignal längere Zeit auf High steht? Danke
zu 1) indem du einen Zähler verwendest, der dir den Takt runterteilt. für den 100 kHz durch 500 teilt und für den 1Hz durch 50*10^6 teilt. zu 2) am einfachstn dürfte eine Flankenerkennung mit zwei D-FFs und ein bißchen Logik umzusetzen sein. Sobald ein 0->1 oder 1->0 Übergang erkannt wird, bekommst du jede nach Logik, einen Impuls der 1 Taktzyklus lang aktiv ist. Gruß Jörn
kann mir hier jemand einen Code senden, der dies praktisch zeigt? Danke
zu 1) http://www.mikrocontroller.net/forum/read-9-150633.html zu 2) http://www.mikrocontroller.net/forum/read-9-187410.html#187473
@Jörn: Eigentlich muss man durch 250 teilen, um einen 100kHz Takt zu bekommen und 25*10^6 für den 1Hz Takt. Ansonsten bekommt man die doppelte Frequenz, weil ja das FlipFlop nur auf die ansteigende Flanke triggern kann.
Kommt drauf an. Wenn nur Enable Signale für die nachfolgenden Logik generiert werden sollen, die mit der steigenden Flanke des langsamenen Taktes läuft, muss man durch die doppelten Werte teilen. Wenn der Takt nach Außen gelegt werden soll, dann gebe ich dir recht. Gruß Jörn
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.