Gast
#5001277
Hallo zusammen In einem Verilog-Programm nutze ich die Megafuntion scFIFO. Das Schreiben funktioniert einwandfrei. Das Ergebnis beim Auslesen kann ich aber nicht nachvollziehen. In meinem Programm wird zuerst scFIFO initialisiert und der Fifo beschrieben. Im always-Block wird der FIFO dann auf zwei Arten ausgelesen: 1.) Zuerst FIFO füllen und anschließend alles auf einmal auslesen 2.) FIFO füllen und sofort auslesen. Verilog-Code:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
23 | |
24 | |
25 | |
26 | |
27 | |
28 | |
Ergebnis Fall1 : Fifo mit 6 Byte 65 4 0 0 0 80 füllen und anschließend alle Bytes auf einmal lesen Ergebnis: Dbg 0 65 Dbg 1 65 Dbg 2 04 Dbg 3 00 Dbg 4 00 Dbg 5 00 Dbg 6 80 Dbg 7 00 Dbg 8 00 Dbg 9 00 Dbg 10 00 .... Erstes Zeichen wird doppelt gelesen.. Ergebnis Fall 2: Fifo füllen und sofort wenn ein neues Zeichen im FIFO verfügbar wieder auslesen. Ergebnis: Dbg 0 65 Dbg 1 65 Dbg 2 04 Dbg 3 04 Dbg 4 00 Dbg 5 00 Dbg 6 00 Dbg 7 00 Dbg 8 00 Dbg 9 00 Dbg 10 80 Dbg 11 80 Dbg 12 00 Dbg 13 00 .... Wie man sieht werden alle Zeichen werden doppelt gelesen. In beiden Fällen ist das Ergebnis nicht zufriedenstellend. Wo liegen bitte Fehler im Code? Vielen Dank Geri