hallo ich habe ein fifo mit logicore erstellt. - spartan3 xc3s1000/ft256 - Independent Clocks (RD_CLK, WR_CLK), Block RAM - Standard FIFO - Write Width 8 - Write Depth 16 (Actual Write Depth: 15) - Write Depth 8 - Read Depth 16 (Actual Read Depth: 15) nur dass es erwähnt ist, FIFO Generator v4.3 User Guide.PDF habe ich wahrscheinlich 100 mal durchgelesen und sonst tagelang gegoogelt. aber ich komme einfach mit dem verhalten von fifo nicht weiter. also hier sind die fragen: 1. warum ist "Actual Write Depth" immer um eins kleiner als der wert den ich im eingbefeld "Write Depth" eingebe. 2. warum erscheinen die daten erst bei 5em read_clock am datenausgang(siehe auch 4.). 3. warum kann ich nur 14 und nicht 15 daten auslesen. 4. wie macht man richtig reset. nur mit write_clock oder mit write_clock und read_clock(ist nicht das gleiche). beim reset nur mit 4 write_clock sind die daten erst erst bei 8em read_clock verfügbar. beim reset mit 4 write_clock und read_clock sind die daten erst bei 5em read_clock verfügbar. (im manual steht nix davom). gruss
>1. warum ist "Actual Write Depth" immer um eins kleiner als der wert den >ich im eingbefeld "Write Depth" eingebe. Xilinx implementiert die Fifo-Adressen (oftmals) als rückgekoppeltes Schieberegister. Diese sind schnell, Nachteil: eine Adresse geht dabei verloren! Dies soll dem User bei der Core-Generierung verdeutlicht werden. Gruß Willy
>2. warum erscheinen die daten erst bei 5em read_clock am >datenausgang(siehe auch 4.). Wahrscheinlich fängst du nach dem Reset direkt an zu lesen (in deiner Simulation). Ich würde nach dem Reset etwas warten. Ich gehe mal davon aus, dass du überhaupt erst einmal Daten geschrieben hast bevor du sie liest.
danke. du hast mich auf den richtigen pfad gebracht. nach dem schreiben muss man mehr als 8 read_clock(bei read_enable auf low) warten bis man die daten lesen kann. nur schade dass es nirgens im datenblatt steht. --- Xilinx implementiert die Fifo-Adressen (oftmals) als rückgekoppeltes Schieberegister. Diese sind schnell, Nachteil: eine Adresse geht dabei verloren! Dies soll dem User bei der Core-Generierung verdeutlicht werden. --- übrigens wo kann man diese info nachschlagen. ich habe so ziemlich alles über fifos runtergeladen. aber ich kann mich nicht errinnern dass so was irgendwo dokumentiert ist. gruss
Man muss schon etwas genauer suchen: xapp258.pdf xapp256.pdf xapp175.pdf Ich würde mir jeweils auch immer den Code dazu (zip-File) anschauen und mal durchsimulieren. Gruß Willy
Also ich verwende die FIFOs im Spartan 3E ohne Probleme. Aber das ist wirklich so, wenn man Daten rein schreibt, geht das Empty-Flasg erst nach 5 Takten weg. Ist halt so, ist doch kein Problem. Wen du nur 4 auslesen kannst, wirst du einen FWFT FIFO gemacht haben, da steht das 1. Wort am Ausgang ohne dass du das ReadEnable gesetzt haben musst. Dann kannst du noch weitere 4 Worte lesen.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.