Hallo,
ich hab gerade ein Verständnisproblem mit FIFOs. Ich benutze die FIFOs
des CoreGenerators von Xilinx ISE 13.4.
Es geht darum, daß Datenworte aus einem FIFO in einen anderen kopiert
werden sollen. Beide FIFOs sind "First Word Fall Through".
Mein Ansatz sah bisher so aus:
1 | if ((quellfifo_empty = '0') and (zielfifo_full = '0')) then
|
2 | quellfifo_readenable <= '1';
|
3 | zielfifo_writeenable <= '1';
|
4 | else
|
5 | quellfifo_readenable <= '0';
|
6 | zielfifo_writeenable <= '0';
|
7 | end if;
|
Die Datensignale beider Fifos sind direkt verdrahtet (ohne Takt).
Wenn ich es jetzt richtig verstehe, ist es bei einem FWFT-FIFO aber so,
daß "EMPTY" erst dann kommt, nachdem man das letzte Wort ausgelesen
hat. In diesem Fall würde aber mit meinem Code "ReadEnable" und
"WriteEnable" einen Takt zulange anstehen, richtig?
D.h. ich müßte korrekterweise "ALMOST_EMPTY" verwenden? Und
"ALMOST_FULL"?
Danke.