Hallo, Ich bekomme einen Frame über eine 4Bit breite Ethernetschnittstelle in meinen FPGA. Nun möchte ich diesen Frame verzögern. Dafür könnte ich doch sicherlich einen fifo verwenden. Leider weis ich nicht wie ich verschieden lange verzögerungszeiten realisieren kann. Die größe des fifos kann man ja nicht einfach so verändern wenn ich das richtig sehe. Wie würdet ihr das lösen? Danke!
Du verwechselst Fifo und Schieberegister. Bei einem Schieberegister fallen die Daten am Ende einfach raus, bei einem Fifo ist das gar kein Problem: Einfach mit dem Lesen so lange warten (nachdem der Fifo nicht mehr leer ist) wie die Verzoegerung sein soll.
Ein RAM Block mit getrenntem Read-/Write-Port. Distanz der read und write addresse gibt dir die Verzoegerung in clock cycles. Wenns MII ist, dann machs 6 Bit breit und nimm DV und ERROR dazu. Die Distanz kannst du on-the-fly veraendern, jedoch brauchts noch ein bisschen Logik um glitches zu verhindern, wenn dir das aber egal ist, einfacher kanns nicht sein. Cheers, Roger
Wo finde ich denn soeinen Ram Block? Gibts sowas bei OpenCores? Ich steig da nicht anz durch.
LPM Wizard, coregen oder wie sie alle heissen. Du koenntest das RAM auch in HDL beschreiben und die Synthese wirds dann vielleicht in ein RAM umsetzen. Cheers, Roger
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.