www.mikrocontroller.net

Forum: FPGA, VHDL & Co. Synchronisierung zweir Daten-/Timingdomänen


Autor: Mathias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen

Ich habe ein generelles Verständnissproblem bezüglich der Clock-Domains 
innerhalb eines FPGA, bzw. wie man damit umgeht. Eines vorweg, ich 
arbeite mich gerade erst in die Thematik VHDL/FPGA ein.

Bsp:
Man hat eine externe Signalquelle, die kontinuierlich digitale Daten zum 
FPGA Sendet mit einem Takt C1 und einen DDR2 Controller im FPGA, der mit 
der Frequenz C2 betrieben wird (Habe gelesen, 133MHz wäre realistisch), 
der diese Daten speichern soll und an einen anderen Process übergeben 
soll.

Wie würde man diese 2 Clock-Domains zusammenführen? Ein FiFo? Hier 
verstehe ich aber nicht, wie man das mit den 2 verschiedenen Clocks in 
den Fifo integriert. Oder gibt es hier eine ganz andere Technik?

Grüß
Mathias

Autor: Jan M. (mueschel)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Genau, hier benutzt man einen FIFO mit zwei unabhängigen Takten. Selbst 
schreiben ist hier ziemlich aufwändig, da man ja die verschiedenen 
Zähler auch über die Taktgrenzen hinweg sychronisieren muss. Deshalb 
nimmt man meist den core-Generator des jeweiligen Herstellers um einen 
solchen FIFO zu erzeugen.

Wenn dich die Details der Synchronisierung interessieren, es gibt von 
Xilinx eine Application note zu dem Thema, inklusive komplettem 
Quellcode.

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!
bin gerade auf deinen Beitrag gestoßen. Und zufällig ist das genau das 
Problem dass mir heute in den Sinn gekommen ist.
Hast du zufällig gerade einen Link zu der Application note?
Wäre super, dann muss ich mich nicht durch die Xilinx Seite wühlen.

Vielen Dank schon mal!

Autor: Mathias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

hier der Link zu der xapp
http://www.xilinx.com/support/documentation/applic...

Zusätzlich habe ich mir dann noch einen solchen FiFo erstellen lassen 
(bzw. ich hab mir nen Source im Netz gefunden) mittels CoreGen und mich 
durch den Sourcecode gewühlt. So was selber zuschreiben wäre zwar eine 
gute Übung gewesen, aber das hätte den Aufwand wohl nicht 
gerechtfertigt.

Gruß
Der Mathias von ganz oben :)

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.