Hallo, Ich möchte eine synchrone FIFO Schnittstelle an einem FPGA anbinden (ft245). Diese Schnittstelle hat einen 60MHz Clock. Ich frage mich gerade wie ich am besten herangehen sollte. Ist es besser nur ein Takt zuverwenden und und den Zustand am Clock abzufragen? Dazu müsste der takt mindestens doppelt so groß sein. Oder sollte ich besser ein always block erstellen, welcher auf die steigende taktflanke des externen 60MHz clocks reagiert? Dabei sehe ich aber die Schwierigkeit, dass die Datenpunkte zwischen den always blöcken unterschiedlicher clocks synchronisiert werden muss :/
clocksyn schrieb: > Ist es besser nur ein Takt > zuverwenden und und den Zustand am Clock abzufragen? Dazu müsste der > takt mindestens doppelt so groß sein. Und wozu sollte das gut sein? Wenn Du die Daten schon clocksynchron geliefert bekommst, dann benutze diesen Clock als write-Clock für Deine Fifo. Dazu ist er da. Du willst den Takt doch sicher nicht als Datensignal einsamplen, oder? > Dabei sehe ich > aber die Schwierigkeit, dass die Datenpunkte zwischen den always blöcken > unterschiedlicher clocks synchronisiert werden muss :/ Was sind Datenpunkte unud von welchen beiden always-Blöcken sprichts Du? Wenn Du eine synchrone Fifo implementieren willst, gibt es nur einen Clock. Wenn Du FPGA-intern einen anderen Clock hast als an der Schnittstelle nach außen, dann brauchst Du eine asynchrone FIFO mit zwei Clockdomains. Wenn man das unbedingt selbst schreiben will, nimmt man einen asynchronen Dualport-RAM mit entsprechender Logik drumherum. Oder man nimmt gleich einen fertigen FIFO-Core und bekommt die Synchronisation und das Handshake dazu geschenkt.
Habe ich auch gemacht am FT2232H. 64kByte und funktioniert super. Ich bekomme dauerhaft knapp 40MByte/s. Aber ich verwende auch nur die Richtung vom FPGA zum PC.
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.