www.mikrocontroller.net

Forum: FPGA, VHDL & Co. Xilinx Spartan3 - timing jitter


Autor: Alexander S. (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo FPGA-Experten,

als FPGA-Anfänger stehe ich vor folgender Aufgabenstellung:
Für die Messelektronik an einem Lasersystem muss ich unter anderem ein 
Triggersignal erzeugen, welches an den Flanken eines 50 MHz-Signales 
ein- und ausgeschaltet wird. Dabei ist ein möglichst kleiner timing 
jitter gegenüber dem 50 MHz-Signal erforderlich.
Der angehängte Sourcecode ist aus einem deutlich größeren Projekt, 
funktioniert aber auch so und liefert sigma_t = 200 ps jitter am 
Ausgang. Kann mir jemand einen Tipp geben, wie sich dieser Wert drücken 
lässt? Gibt es Constraints oder Buffer mit denen sich weniger 
Phasenrauschen erreichen lässt?

das ucf-File sieht folgendermaßen aus:
NET "OSC"  LOC = "P86" | IOSTANDARD = LVCMOS33 ;
NET "TRIG"  LOC = "P88" | IOSTANDARD = LVCMOS33 ;
NET "TRIG_OUT"  LOC = "P90" | IOSTANDARD = LVCMOS33 ;
# Die folgenden Constraints bringen nichts:
#NET "OSC" USELOWSKEWLINES;
#NET "OSC_BUFGP" USELOWSKEWLINES;
#NET "OSC_BUFGP/IBUFG" USELOWSKEWLINES;
#NET "TRIG_OUT" USELOWSKEWLINES;
#NET "TRIG_OUT_OBUF" USELOWSKEWLINES;
#NET "TRIG_OUT_mux0000" USELOWSKEWLINES;

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Alexander S. (Gast)

>ein- und ausgeschaltet wird. Dabei ist ein möglichst kleiner timing
>jitter gegenüber dem 50 MHz-Signal erforderlich.

Mit Constraints allein kann man da wenig machen. Das Layout und die 
Pinszuweisung sind das Entscheidende.

- keine Ausgänge neben dem Takteingang.
- möglichst keine (starken) Ausgänge in der selben Bank wie der 
Triggerausgang
- gute Filterung der VccIO der Bank des Takteingangs und des 
Triggerausgangs
- optimal eingenes CPLD für diese Logik.

MfG
Falk

Autor: Alexander S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Falk,

vielen Dank für die Tipps, das werde ich auf jeden Fall ausprobieren. An 
externe Logik habe ich auch schon gedacht, im Prinzip muss das ja nur 
ein rauscharmes D-Flipflop sein, dessen D mit dem FPGA-Ausgang und 
dessen CLK direkt mit dem 50 MHz-Referenztakt verbunden ist.
Interessant ist übrigens, dass das volle Design (mehrere schnelle 
Ausgänge am  FPGA, schnelle externe Treiber für hohe Ströme, UART auf 
dem FPGA, etliche LED-Ausgänge etc., keinerlei Constraints oder andere 
Layout-Optimierungen) ebenfalls 200 ps Phasenrauschen am Augang 
produziert wie das gepostete abgespeckte Programm.

Viele Grüße
Alexander

Autor: Seegers (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Redest Du hier vom Jitter, oder dem Delay? Jitter wäre praktisch nur von 
der Taktqualität abhängig. Sieh Dir mal an, was Du mit den PLLs in 
Sachen Kompensation machen kannst.

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Seegers (Gast)

>der Taktqualität abhängig. Sieh Dir mal an, was Du mit den PLLs in
>Sachen Kompensation machen kannst.

Die FPGA internen DLLs/PLLs kann man in diesem Bereich vergessen. Die 
haben ja schon selber 200ps Jitter und mehr. Und die Messung des Jitters 
ist in diesem Bereich auch nicht mehr ganz trivial.

MFg
Falk

Autor: Alexander S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Seegers
Tatsächlich geht es um den Jitter, also um die Fluktuationen um eine 
feste Verzögerung nach der Flanke des von extern zugeführten 50 MHz 
Signals. Wie groß diese Verzögerung ist, ist vollkommen egal (abgesehen 
davon dass größere Verzögerungen auch den Jitter etwas steigen lassen 
würden). Das extern bereitgestellte Taktsignal selbst definiert 
überhaupt erst, was Taktqualität in dieser Anwendung ist (auch wenn es 
selbst nicht perfekt periodisch sein muss), insofern verspreche ich mir 
von den PLLs des FPGA wenig.

@Falk
Ja, das fürchte ich auch. Im Datenblatt habe ich keine Spezifikation des 
Jitters der beteiligten Komponenten gefunden, insofern stellen die 
gemessenen 200 ps vielleicht schon das Limit der Spartan3-Serie dar (im 
RTL-Schaltplan ist im wichtigen Signalpfad nur ein D-Flipflop 
eingebaut). Nachdem inzwischen berechnet habe, dass ich idealerweise 
fast 1,5 Größenordnungen weniger Phasenrauschen bräuchte, ist externe 
Elektronik, wenn überhaupt, die einzige Lösung. Nichtsdestotrotz ist der 
FPGA dann immer noch eine praktische Quelle zur programmierbaren Formung 
der erzeugen Impulse.

MfG
Alexander

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.