Write Request Read Request gleich nacheinander: FiFo

#3530633
Lesenswert?

Hallo,
ich führe einen write request für einen leeren Fifo durch und im 
nächsten Cycle gleich ein read request.
Erwartet hätte ich, dass Empty-Signal wieder high-Pegel annimt.
War ich nun zu schnell mit dem read-request?
Es scheint das der read request einfach nicht registriert wird.
Vielen dank für eure Unterstützung.

P.S. Write und Read request sind nur für eine Periode high. Es handelt 
sich um ein single clock Fifo von Altera.
Angehängte Dateien:
#3530684
Lesenswert?

Ist doch völlig klar, was da passiert: Du liest aus dem FIFO während 
empty auf high ist. Was sagt dir das? Dass da kein Datenwort ist was zu 
lesen wäre! Lass mal den read Puls weg und schau nach, nach wieviel 
Takten das geschriebene Wort auf Ausgang verfügbar ist (empty = 0).

In einem richtigen Design würde sich die Leseseite sowieso nie auf einen 
bestimmten Füllstand verlassen, sondern immer nur lesen, wenn vom FIFO 
vorhandene Daten gemeldet werden.
#3530890
Lesenswert?

Da Dieter schrieb:
> Lass mal den read Puls weg und schau nach, nach wieviel
> Takten das geschriebene Wort auf Ausgang verfügbar ist (empty = 0).

Dafür muss er doch den read-puls gar nicht weg lassen. Und aus dem 
Diagramm ist schon ersichtlich, dass die Daten nach einem Takt lesbar 
sind.

Prinzipiell muss man unterscheiden zwischen einem "normalen" und eine 
"First-word-fall-through" FIFO.
Bei ersterem liest man entweder nachdem das empty weg ist oder man hat 
zusätlich ein valid-flag, das einem anzeigt dass die Lesedaten gültig 
sind. (Im Prinip not-empty and read um einen Takt verzögert)
Bei zweiterem (mein Favorit) ist mit not-empty das Datenwort am Ausgang 
sichtbar.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren