Forum: FPGA, VHDL & Co. Tristate mit DDR-CLK betreiben


von Eraser (Gast)


Lesenswert?

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

von Christian R. (supachris)


Lesenswert?

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.

von Eraser (Gast)


Lesenswert?

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"

von Christian R. (supachris)


Lesenswert?

Hm, vielleicht wird da zuviel wegoptimiert? Mal in den Meldungen von XST 
schauen, ob der eventuell das Signal T zu einer Konstanten macht...

von Eraser (Gast)


Lesenswert?

Ich hab den Fehler gefunden.
Ich muss für jeden IOBUF eine eigene Instanz für das ODDR2 Primitive 
setzen, dann funktioniert es.

von Christian R. (supachris)


Lesenswert?

Achso, na das ist eigentlich klar. Dafür gibt's ja for Schleifen in 
VHDL.

von J. S. (engineer) Benutzerseite


Lesenswert?

Nachfrage dazu: Wurde der T-Buffer ausdrücklich instaziiert oder per 
VHDL inferiert?

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
Noch kein Account? Hier anmelden.