mikrocontroller.net

Forum: FPGA, VHDL & Co. Clock-Crossing FIFO und phasenverschobene Clocks auf der Schreiben-Seite


Autor: Anguel S. (anguel)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute!

Ich nutze ein mit dem Xilinx CoreGen generiertes Clock-Crossing FIFO. 
Die Schreiben-Seite wird mit WR_CLK90 getaktet, die Lesen-Seite mit 
RD_CLK. Das einzige Problem ist, dass mein FULL Signal in einem 
Zustandsautomaten ausgewertet wird, der nicht mit WR_CLK90, sondern mit 
einem um 90° phasenverschobenen Clock WR_CLK0 getaktet wird. Meine Frage 
ist, was in diesem Fall die beste Lösung ist, das FULL Signal von 
WR_CLK90 nach WR_CLK0 zu transferieren. Brauche ich da zwei Synch-FFs 
oder gibt es vielleicht eine elegantere Lösung? Evtl. Problem wäre auch, 
dass die 2 Synch-FFs das FULL Status-Signal um 2 Takte verzögern würden, 
so dass es in der FSM nicht rechtzeitig ankommt.
Danke schon mal für jeden Tipp!

Grüße,
Anguel

Autor: SuperWilly (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wozu wertest du ein Full-Flag aus ?

Gruß,
SuperWilly

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn die Phasenbeziehung stabil ist sollte das ohne Synchronisieren 
möglich sein. Die Schwierigkeit ist da vmtl mehr, dem Tool das 
mitzuteilen, damit es beim Place and Route darauf achtet. Da muss man 
sich vmtl die Contraints genau anschauen und überprüfen, dass die 
Synthese den Pfad wirklich kurz genug gemacht hat, damit es sich 
ausgeht.

lg
Matthias

Autor: SuperWilly (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Verwende doch einfach ein AlmostFull-Flag (Schwelle sollte einige 
Einträge kleiner als Full sein), dann kannst du sicher den 
Schreibvorgang in den Fifo anhalten.

Gruß,
SuperWilly

Autor: Anguel S. (anguel)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Problem war genau, dass die Constraints nicht eingehalten wurden, 
als ich direkt von clk90 (FIFO) nach clk0 (FSM) gegangen bin. Habe jetzt 
aber 2 FFs dazwischen gesetzt und es scheint zu gehen. Evtl. reicht auch 
ein FF, wenn man nicht synchronisieren braucht?

Matthias schrieb:
> Wenn die Phasenbeziehung stabil ist sollte das ohne Synchronisieren
> möglich sein. Die Schwierigkeit ist da vmtl mehr, dem Tool das
> mitzuteilen, damit es beim Place and Route darauf achtet. Da muss man
> sich vmtl die Contraints genau anschauen und überprüfen, dass die
> Synthese den Pfad wirklich kurz genug gemacht hat, damit es sich
> ausgeht.
>
> lg
> Matthias

Autor: Anguel S. (anguel)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Eigentlich verwende ich schon den PROG_FULL Flag, habe das aber nicht 
erwähnt, um die Sache nicht unnötig kompliziert zu machen :) Problem 
war, dass zum Zeitpunkt zu dem der nächste Zustand in der FSM bestimmt 
wird, die Daten noch immer zum FIFO fließen, so dass dieser noch gar 
nicht weiß, dass er doch noch PROG_FULL wird. Das macht die Sache etwas 
komplizierter, werde vermutlich zur Sicherheit den FIFO tiefer machen ;)

SuperWilly schrieb:
> Verwende doch einfach ein AlmostFull-Flag (Schwelle sollte einige
> Einträge kleiner als Full sein), dann kannst du sicher den
> Schreibvorgang in den Fifo anhalten.
>
> Gruß,
> SuperWilly

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.