mikrocontroller.net

Forum: FPGA, VHDL & Co. Please Help with Clock-Divider


Autor: Abi06 (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Jörn Kaipf (joern)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Abi06 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
kann mir hier jemand einen Code senden, der dies praktisch zeigt?

Danke

Autor: Jörn Kaipf (joern)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Stief (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Jörn Kaipf (joern)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.