Hallo Ich möchte mit einem Spartan 3E ein Asynchrones externes Ram ( IS61WV5128BLL-10BLI) so betreiben das z.B. mit der Positiven Flanke geschrieben und mit der negativen Flanke gelesen wird. Das Ansteuern der write_enable und output_enable Signale lässt sich per Clock-Forwarding mittels der ODDR2-Primitive erreichen. Nun bräuchte ich so ein Primitiv auch zum Ansteuern des tristate_eingangs der IO-BUFFER. Laut Datenblatt gibt es im Tristate-bereich der IO-Buffer die Möglichkeit den Tristate ebenfalls per CLK-Forwarding zu betreiben (DS312 Seite 11). Allerdings habe ich bis jetzt keine Möglichkeit gefunden die entsprechenden Register zu nutzen, daher habe ich die Clock direkt verbunden, was allerdings nicht so gut ist. Meine Frage: gibt es ein spezielles Primitive für die Tristate DDR-Register oder kann man die Nutzung dieser Register irgendwie erzwingen? Gruss Eraser
Dazu musst du eigentlich nur einen IOBUF instanziieren und den T Eingang mit einem ODDR Register ansteuern. Laut UG331, Seite 313 klappt das so. Beim Spartan 6 ist das sogar zwingend, wenn man bidirektionale DDR I/Os macht.
Hallo Christian Das habe ich zunächst auch versucht, aber da bekomme ich während der generierung der Programmfiles bezüglich des tristate-Signals die Fehlermeldung : "the signal is not driven by any source pin in the design"
Hm, vielleicht wird da zuviel wegoptimiert? Mal in den Meldungen von XST schauen, ob der eventuell das Signal T zu einer Konstanten macht...
Ich hab den Fehler gefunden. Ich muss für jeden IOBUF eine eigene Instanz für das ODDR2 Primitive setzen, dann funktioniert es.
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.