www.mikrocontroller.net

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


Autor: Johann (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Johann (Gast)
Datum:

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

Autor: Simon D. (simon86)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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/...

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Johann (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Christian R. (supachris)
Datum:

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

Autor: Johann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gut dann versuche ich heute mal ein kleines Testprogramm zu erstellen.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.