Forum: FPGA, VHDL & Co. Fifo bei Lothar


von snyder (Gast)


Lesenswert?

Es dürfte ja inzwischen viele von Lothars Homepage erfahren haben. Er 
hat ein rieiges Schätzchen an Codefragmenten und Erklärungen 
zusammengetragen wo man herrvorragend rumstöbern kann.
Habe ich auch getan und promt eine Frage zu dem Fifo Artikel. 
http://www.lothar-miller.de/s9y/archives/21-FIFO.html#extended

Langsame Datenquelle und schnellere Senke. Klar. Wenn ich mir jetzt aber 
vorstelle, daß der Eingang langsamer als der Ausgang bedient werden 
kann, könnte ich mir vorstellen, daß eben aus dem Umstand der wr auch 
etwas länger auf 1 gesetzt ist als einen clock. Würde dann nicht Din 
mehrere Takte reingehämmert? (Wr='1' and full_loc='0') ist ja mehrere 
Takte gültig. Wäre es dann sinnvoll und erlaubt, wr einmal in einem FF 
zu speichern und dann (Wr="01" and full_loc='0') heranzuziehen?

Ich glaube ich muss mir fpga/vhdl hart erarbeiten. Einen intuitiven 
Zugang habe ich offenbar nicht. Bin vielleicht auch zu pedantisch, 
sollte einfach machen und nicht alles in Frage stellen. Wenn aber 
programmierbare Logiken weiter in unsere Projekte Einzug halten und ich 
auch direkt damit zu tun bekäme führt das dann nur zu Reibereien mit 
Kollegen die das 'wir machen das einfach' intuitiv drauf haben...
Ich bemühe mich aber, auch ein gewisses Gefühl zu entwickeln.... Ach ja, 
Lothar, falls du mal sortierst und zusammenträgst: ICH kauf dir dein 
Praxisnahe Einführung, Tips und Rezepte Buch ab ;-))

von Student (Gast)


Lesenswert?

In der Tat würde dann bei langserem Wr natürlich mehr als einmal der 
Datensatz geapeichert. Man könnte das mit zwei Clock Domains und den 
Dual-Port-BRAMs wohl am elegantesten lösen, wenn das Wr aus der 
langsameren Clock Domain gesetzt werden soll. Allerdings ist es hier 
glaube ich so gedacht, dass die schnellere Senke hier steuert, ob die 
Daten eingelesen werden oder nicht, die ja dann die gleiche Clockdomain 
hat, wie das FiFo selbst.

Alles aber unter Vorbehalt, bin selbst Anfänger.

von daniel__m (Gast)


Lesenswert?

snyder schrieb:
> Wenn ich mir jetzt aber
> vorstelle, daß der Eingang langsamer als der Ausgang bedient werden
> kann, könnte ich mir vorstellen, daß eben aus dem Umstand der wr auch
> etwas länger auf 1 gesetzt ist als einen clock.

Diesen FIFO ist ausschließlich für eine Taktdomäne nutzbar. Asynchrone 
FIFOs sind erheblich komplexer.

Das heißt also, pro Datum, welches in das FIFO geschrieben werden soll, 
darf die wr Leitung nur für 1 Takt gesetzt sein (genauso lesen).

Die Aussage "langsame Datenquelle" bezieht sich darauf, dass nicht mit 
jedem Takt ein neues Datum geliefert wird.

grüße

von Christian R. (supachris)


Lesenswert?

Schau auch mal hier rein: Beitrag "[VHDL] Asynchrones FIFO"
Was da eventuell noch ran müsste, wäre eine Übergabe der Zählerstände 
mittels Gray-Umwandlung zwischen den Clock Domains.

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.