Forum: FPGA, VHDL & Co. Hilfe für IDELAY


von Johann (Gast)


Lesenswert?

Ich verwende einen Xilinx FPGA (Virtex 5 LX30T Speedgrade -1) und einen 
TI AD-Wandler mit max 400MSample (ADS5474)

Hier das Datenblatt des AD-Wandlers:

http://focus.ti.com/lit/ds/symlink/ads5474.pdf

Auf Seite 7 wird das Timing des Wandlers beschrieben. Der Wandler 
erzeugt ein Dataready Signal (DRY). Dies gibt an wann die Daten fertig 
sind. Zudem gibt es 14 Datenleitungen.

Was mich jetzt sehr nachdenklich macht ist das tSKEW auf Seite 7 des 
Datenblatts. Hier steht das die Verzögerung (Skew) zwischen der 
DRY-Leitung und den Daten typisch 0ps beträgt. Im äußersten FALL aber +- 
500ps beträgt.

Da ich gerade beim Routen der Platine bin, überlege ich gerade ob es 
nicht sinnvoll ist das DRY-Signal um 500ps zu verzögerung.

Dadurch möchte ich erreichen das die Daten am FPGA immer füher ankommen 
als das DRY-Signal, das auf einen globalen Clock Buffer geht.

Es handelt sich beim DRY als auch bei den Daten um LDVS-Pegel

von Johann (Gast)


Lesenswert?

Wenn ich den OFFSET IN BEFORE Constraint benutze, wird dann auch ein 
IDELAY verwendet oder wird das dann über längere Leitungen realisiert?

von Simon D. (simon86)


Lesenswert?

Hallo!

Bin auch gerade an einem Projekt mit TI ADC-ADS62P49... Ich habe von TI 
einige Informationen, wie die das auf dem Board TSW1200 realisiert 
haben...

Wenn du Interesse hast, könnte man ein paar Ideen austauschen - sende 
mir dazu einfach deine Email Adresse über die Nachrichtenfunktion...

Gruß Simon

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Johann schrieb:
> Wenn ich den OFFSET IN BEFORE Constraint benutze, wird dann auch ein
> IDELAY verwendet oder wird das dann über längere Leitungen realisiert?
Da wird gar nichts verwendet, sondern du teilst dem System nur mit, was 
du aus Datenblättern ausgerechnet hast...

Wenn du ein IDELAY willst, mußt du ein IDELAY instatiieren:
http://www.xilinx.com/itp/xilinx7/books/data/docs/v4lsc/v4lsc0122_113.html

von Christian R. (supachris)


Lesenswert?

Die Constraints dienen in erster Linie dazu, dem Router die Grenzwerte 
der Außenwelt des CPLD/FPGA mitzuteilen. Und der sagt dir nachher, ob 
die eingehalten werden können oder nicht. Wenn nicht, musst du selbst 
das Design ändern.

von Johann (Gast)


Lesenswert?

Demnach muss ich ein IDELAY selber einfügen.

Und ich dachte schon ich gebe einfach das Constraint an und der Compiler 
routet mir das ganze so das es eingehalten wird.

Demnach muss ich ein Constraint erzeugen und ein IDELAY einfügen. Mit 
dem Constraint überprüft dann der Compiler ob mit Hilfe des IDELAY die 
Setup Time eingehalten wird.

Auf meinem Board ist das ganze wie folgt geroutet. Die Datenleitung und 
die Datenready-Leitung sind gleich lang. Die Datenreadyleitung geht auf 
einen Globalen Clock Eingang beim FPGA.

Im Datenblatt des AD-Wandlers (siehe oben) steht das zwischen der 
Datareadyleitung und den Datenleitungen im typischen Fall ein Skew von 
0ps vorhanden ist. Jedoch kann auch ein Skew von +- 500ps vorhanden 
sein. Dadurch bin ich der Meinung das man diesen Worst Case Fall 
abfangen muss, indem man die Datareadyleitung um mindestens 500ps 
verzögert.

Also muss ich beim Constraint angeben, das die Datenreadyleitung einen 
maximalen Takt von 200MHz besitzt. Das IDELAY werde ich dann zwischen 
dem Globalen Clock Pin und dem BUFG setzen. Dadruch verzöger ich das 
ganze um 624ps --> 8 Steps a 200MHz. Das IDELAY benötigt laut Datenblatt 
einen Clock als Referenz. Auf meinem Board ist ein 50MHz Quarzoscillator 
verbaut, der mit einem Globalen Clock Eingang verbunden ist. Aus dem 
50MHz Clock erzeuge ich dann ein 200MHz Clock, den ich dann als 
Referenzsignal für das IDELAY verwende.

Ist das so richtig oder mache ich da einen Denkfehler. Ich hoffe das ich 
morgen ein kleines Testprogramm schreiben kann und dann darüber 
berichten kann.

Schon mal vielen Dank für die bereits gegebenen Informationen.

von Christian R. (supachris)


Lesenswert?

Du brauchst außerdem das IDELAYCTL Element, an das geht die 200MHz. Dann 
kannst du die Delays > 0 bei den IDELAY Elementen einstellen.

von Johann (Gast)


Lesenswert?

Gut dann versuche ich heute mal ein kleines Testprogramm zu erstellen.

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.