Please Help with Clock-Divider

Gast #388691
Lesenswert?

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
#388692
Lesenswert?

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
Gast #388695
Lesenswert?

@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.
#388696
Lesenswert?

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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren