Forum: FPGA, VHDL & Co. DDR2 RAM Interface mit MIG


von thomas (Gast)


Lesenswert?

Hallo zusammen,

ich setzte mich gerade mit einem DDR2 Interface auf einem Virtex5 
auseinender. hier die Randbedingungen:
Eval-Board: ML505
MIG 2.3
ISE 10.1 SP3

auf dem Board befindet sich ein DDR2 RAM. Über MIG habe ich mir ein 
IP-Core generieren lassen. Ich habe die Bänke soweit an den Schaltplan 
des ML505 angepasst. Da ich ja allerdings im MIG Design die gleiche 
Pin-Belegung wie auf dem ML505 benötige, habe ich das UCF File 
abgeändert und dem Schaltplan des ML505 soweit angepasst.
Anschließend habe ich über MIG die Option "Update Design" gewählt um 
mein abgeändertes UCF verifizieren zu lassen.

soweit auch alles gut und recht. Das neue Pinning ist im Update auch 
übernommen. Allerdings ist mir aufgefallen, dass die Local Constraints 
nicht mit den I/Os geupdatet wurden und immer noch dieselben wie im 
ursprünglichen(von MIG generierten) UCF sind.

Als ich den Controller auf das Board aufgespielt habe, haben die 
einzelnen Takte des Conttrollers (clk, clk90,...) auch gelockt und alle 
Reset-Signale sind auf LOW (wie's auch sein sollte). die Kalibrierung 
ist allerdings nicht gestartet (habe die einzelnen Kalibrierungsstufen 
auf LEDs nach außen geführt-die blieben alle aus).

Vlt. kann mir ja jemand mit meinem Problem weiterhelfen, wie ich den 
Core und letztendlich das ganze Interface zum Laufen bringe. Ich steh 
grad bissl auf dem Schlauch. Ich schätze, dass es was mit den Local 
Constraints zu tun hat.

Danke schon mal im Voraus

MfG Thomas

von Rudolph (Gast)


Lesenswert?

thomas schrieb:
> MIG 2.3
> ISE 10.1 SP3

Antik ;-)

> soweit auch alles gut und recht. Das neue Pinning ist im Update auch
> übernommen. Allerdings ist mir aufgefallen, dass die Local Constraints
> nicht mit den I/Os geupdatet wurden und immer noch dieselben wie im
> ursprünglichen(von MIG generierten) UCF sind.

Was meinst Du mit "Local Constraints"? Etwa die Pin-Locations ("LOC")? 
Deine geänderten Pins wurden in die MIG-GUI übernommen? In welchem UCF 
sind jetzt wieder die alten (wurde überhaupt ein neues UCF 
geschrieben?)?

Manchmal ganz blöd: Welches UCF ist im Projekt eingebunden? Evtl. im 
falschen geändert (ich hatte da schon die tollsten Dinge mit verdeckt 
eingebundenen UCFs, allerdings in der 12)? Nach Place & Route am besten 
das Pinning überprüfen.

> Als ich den Controller auf das Board aufgespielt habe, haben die
> einzelnen Takte des Conttrollers (clk, clk90,...) auch gelockt und alle
> Reset-Signale sind auf LOW (wie's auch sein sollte). die Kalibrierung
> ist allerdings nicht gestartet (habe die einzelnen Kalibrierungsstufen
> auf LEDs nach außen geführt-die blieben alle aus).

Ja, wenn die Pins nicht richtig liegen, funktioniert die Kalibrierung 
natürlich nicht.

Ist beim Board ein Beispielprojekt dabei, dass Du weiterverwenden 
kannst?

von Thomas (Gast)


Lesenswert?

servus Rudolph,

ich weiß, dass das nicht die neueste Version ist, allderdings hab ich 
von der halt die Vollversion... (und ein Downgrade funktioniert nun mal 
nicht!!!)
Tut hier ja allerdings nichts zur Sache...

Wenn ich ein Update des Designs mache, wird die abgeänderte UCF 
übernommen. Allerdings ändere ich da nur die I/Os (also alle LOC). Muss 
diese ja an das ML 505 Pinning anpassen.
Somit habe ich ein komplett neues Design mit meiner abgeänderten UCF.

Alldergins sind da noch RLOCs für die jeweiligen DQs (Datenpins) 
enthalten. Die ändere ich allerdings bisher noch nicht.
Deswegen meine Frage, ob ich, wenn ich meine I/Os ändere, diese auch 
ändern sollte, und wenn ja, wie!?? Die besitzen ja nur x,y-Koordinaten, 
welche die relative Platzierung der CLBs zueinander angibt.

Das Design läuft auch bis zu Place&Route problemlos durch...
Habs ja auch schon mal auf das Board aufgespielt.

Dass die Kalibrierung nicht funktioniert ist mir auch klar-sonst wär ich 
ja wohl nicht hier ;-)
Ich habe kein Beispielprojekt oder ähnliches bisher zu dem Board 
gefunden.

Danke für deine/eure Hilfe
Thomas

von Rudolph (Gast)


Lesenswert?

Thomas schrieb:
> Alldergins sind da noch RLOCs für die jeweiligen DQs (Datenpins)
> enthalten. Die ändere ich allerdings bisher noch nicht.
> Deswegen meine Frage, ob ich, wenn ich meine I/Os ändere, diese auch
> ändern sollte, und wenn ja, wie!?? Die besitzen ja nur x,y-Koordinaten,
> welche die relative Platzierung der CLBs zueinander angibt.

Das sollte, WIMRE, eigentlich der MIG bei der "Update Design"-Funktion 
machen.

> Ich habe kein Beispielprojekt oder ähnliches bisher zu dem Board
> gefunden.

http://www.xilinx.com/products/boards/ml505/reference_designs.htm

Da ist auch ein MIG-Design dabei. Der MIG hat aber auch die Möglichkeit 
ein Design direkt für ein bestimmtes Eval-Board generieren zu lassen. 
Das geht  doch bestimmt auch für das ML505?

von Thomas (Gast)


Lesenswert?

Rudolph schrieb:
> Das sollte, WIMRE, eigentlich der MIG bei der "Update Design"-Funktion
> machen.

Das hab ich auch gedacht-tut es aber anscheinend nicht. Hab mal von dem 
ursprünglich generierten eine Backup gemacht und es dann mit dem neuen 
UCF verglichen. sind immer noch die gleichen RLOC

Rudolph schrieb:
> http://www.xilinx.com/products/boards/ml505/refere...
>
> Da ist auch ein MIG-Design dabei. Der MIG hat aber auch die Möglichkeit
> ein Design direkt für ein bestimmtes Eval-Board generieren zu lassen.
> Das geht  doch bestimmt auch für das ML505?
>
so weit war ich leider auch schon. Bei MIG lässt sich ein Design nur für 
das ML561-ein spezielles Virtex5 EvalBoard für Speicher- erzeugen. für 
meins allerdings nicht.
Ich kann im MIG auch nur die Bänke, die ich benutzen möchte, auswählen, 
allerdings keine einzelne Pins zuweisen. (Ist ja auch normalerweise 
sinnvoll, da sonst zu große Zeitverzögerungen zw. einzelnen Gruppen 
auftreten).

Evtl häng ich auch an einem falchen Ansatz. Aber wie schon erwähnt, 
Clocks werden alle erzeugt-hab sie mal auf 'nem Oszi angeschaut, und die 
sahen alle ordentlich aus, also nix zu beanstanden.
Somit denke ich, dass es nur noch an falschen Constraints liegen kann...

von Rudolph (Gast)


Lesenswert?

Thomas schrieb:
> Rudolph schrieb:
>> http://www.xilinx.com/products/boards/ml505/refere...
>>
>> Da ist auch ein MIG-Design dabei. Der MIG hat aber auch die Möglichkeit
>> ein Design direkt für ein bestimmtes Eval-Board generieren zu lassen.
>> Das geht  doch bestimmt auch für das ML505?
>>
> so weit war ich leider auch schon. Bei MIG lässt sich ein Design nur für
> das ML561-ein spezielles Virtex5 EvalBoard für Speicher- erzeugen. für
> meins allerdings nicht.

Ok. Dann bleibt immer noch das Reference-Design. Dessen UCF könntest Du 
Dir einfach schnappen, bzw. mal mit Deinem vergleichen und gucken, was 
anders ist. Guck Dir auch mal das "ML505 MIG Design Creation"-Dokument 
an, da könnte z.B. der Verweis auf AR# 29313 interessant sein.

Wenn alle Stricke reißen: Das Webpack kann noch LX50T, Du könntest also 
auch mit einer aktuellen Softwareversion arbeiten. Ist für die Reference 
Designs gegebenenfalls interessant. Bei Virtex-5 und SODIMM streiche ich 
sonst die Segel.

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.