Forum: FPGA, VHDL & Co. unterschiedlicher Takt NIOS <-AVALON-> Logik


von AL_JA (Gast)


Lesenswert?

Hallo,

ich steuere über den Avalon-Bus vom NIOS aus meine VHDL-Logik an und 
lese darüber auch wieder Werte über den Avalon-Bus in den NIOS zurück 
(Studienarbeit). Die selbstgeschriebene Logik läuft mit einem Takt von 
25MHz, der NIOS hingegen mit 100MHz, die Taktsignale werden innerhalb 
einer PLL generiert (fester Bezug zueinander).

Die Werte an meine Logik zu senden stellt kein Problem dar, da über 
einen Dual-Clock-Speicher verbunden. Meine Frage betrifft allerdings, ob 
ich problemlos einen 32-Bit-Wert wieder zurücklesen kann, d.h. prüft 
Quartus automatisch, ob es zu einer Timing-Verletzung kommen würde oder 
sollte ich durch Oversampling noch vor der Übergabe an den Bus mich 
selbst darum kümmern?

Eine Warnmeldung erhalte ich nicht und leider habe ich bei den 
Altera-Dokumenten keine ähnliche Problemstellung gefunden.

Würde mich freuen, wenn mir jemand mit mehr Erfahrung eine Tipp geben 
könnte.

von Gast (Gast)


Lesenswert?

Q prüft das, aber genau das ist das Problem - er wird meckern. Die PLL 
behebt das Problem 25:100 nicht, sondern erzeugt es, da die beiden Takte 
nicht in Phase sind. Du solltest einen asynchronen-FIFO zum 
Streaming-Interface nutzen - in beide Richtungen.

von Gast (Gast)


Lesenswert?

Fügt die AVALON-Switch-Matrix nicht automatisch eine Synchronisation 
zwischen verschieden getakteten Busteilnehmern ein?

von Gast (Gast)


Lesenswert?

Gute Frage, nicht, dass ich wüsste.

von AL_JA (Gast)


Lesenswert?

Hallo,

ich habe mich nun für die Variante der Überabtastung entschieden, das 
Signal wird dazu mit dem 4x schnelleren Takt in zwei hintereinander 
geschaltene D-FFs eingelesen. Liegt an den Ausgängen beider FFs das 
gleiche Ergebnis, so wird es als gültig gewertet (Enable an einem 3 FF, 
Dateneingang mit Datenausgang des zweiten FFs).

Der SOPC-Builder in Quartus bietet allerdings auch eine FIFO-basierte 
Lösung als Clock-Crossing-Bridge an.

von Duke Scarring (Gast)


Lesenswert?

> Der SOPC-Builder in Quartus bietet allerdings auch eine FIFO-basierte
> Lösung als Clock-Crossing-Bridge an.
Dann würde ich diese nehmen. Es gibt ungefähr 100 Möglichkeiten beim 
Clock-Domain-Crossing was falsch zu machen.

Und eine es richtig zu machen: ein asychrones FIFO mit Gray-Countern für 
die Schreib- und Leseposition.

Duke

von Gast (Gast)


Lesenswert?

Es geht auch ohne Gray-Counter, allerdings sind die in den 
standardmässigen FIFOs vom Megawizzard so fertig drin, meine ich.

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
Noch kein Account? Hier anmelden.