mikrocontroller.net

Forum: FPGA, VHDL & Co. Clock Domain Crossing mit FIFO selbst kodieren?


Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich lese mich hier gerade durch Code für Altera FPGAs und wundere mich 
ein wenig, weil so ziemlich alle Clock Domain Übergänge mit DPRAM, 
grey-kodierten Addressen, usw. händisch ausprogrammiert sind. Wir haben 
da leider ein paar solche Übergänge. Es handelt sich auch nicht immer um 
dieselbe Komponente sondern das ist mindestens zweimal komplett 
auskodiert.

Macht das aus eurer Sicht Sinn? Eine FIFO mit Blockram bekomme ich ja 
auch vom Megawizard Plugin Manager viel einfacher. Oder besitzt so eine 
generierte FIFO eine schlechtere Performance als wenn man händisch 
kodiert?

lg
Matthias

Autor: bergvagabund (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich denke du solltest nicht verschiedene Taktdomänen einfach in ein 
großes SOPC Design werfen und dann dem SOPC Builder die Clock Crossing 
Logic hinzufügen lassen.
Besser wäre es du trennst die verschiedenen Taktdomänen mit Hilfe einer 
Clock Crossing Bridge (fertige Avalon Komponente).
Wenn du dir den Code von der Clock Crossing Bridge anschaust wirst 
feststellen dass da "normale" Fifos verwendet werden.

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe das Design nicht fabriziert, ich muss es jetzt allerdings 
erweitern. Und der Hintergrund meiner Frage ist: Waren diese händisch 
auskodierten FIFOs nur eine Zusatzaufgabe der Personen, die dieses 
Design erstellt haben, oder gibt es objektive Vorteile, wenn man selbst 
kodiert anstatt die fix fertige Komponente des FPGA Herstellers zu 
nehmen.

lg
Matthias

Autor: Anguel S. (anguel)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich weiß nicht wie das bei Altera ist, aber bei Xilinx nimmt man 
normalerweise den FIFO Core Generator gerade weil dort alles gut 
optimiert und ausgetestet sein sollte. Damit spart man sich die ganzen 
Fehlerquellen die beim Selberschreiben entstehen. In solchen Fällen 
vertraue ich eher Xilinx als mir selbst ;)

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Als alter Xilinx-Jünger stehe ich auf demselben Standpunkt und hätte den 
Ansatz auch bei Altera weiter vertreten. Auf dem Papier sind allerdings 
die Leute, die das implementiert haben, erfahrener als ich. Darum 
vertraue ich mir in diesem Punkt auch noch nicht ganz.

lg
Matthias

Autor: Duke Scarring (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn man das selber implementiert, ist man ggf. vom Hersteller 
unabhängig. (Und man sieht, wie es funktioniert.)

Duke

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es wird ein generierter Block RAM für Altera verwendet (altsyncram), 
daher nehme ich nicht an, dass das generisch ist. Wenn man sich auf des 
Inferieren von RAMs verlassen will sollte das aber möglich sein.

Wenn man den inneren Aufbau verstehen will sollte man sich imho mal das 
Paper von Cummings usw über Asnychronous FIFOs durchlesen, war sehr 
lehrreich für mich.

lg
Matthias

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.