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


von Alexander S. (Gast)


Angehängte Dateien:

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:
1
NET "OSC"  LOC = "P86" | IOSTANDARD = LVCMOS33 ;
2
NET "TRIG"  LOC = "P88" | IOSTANDARD = LVCMOS33 ;
3
NET "TRIG_OUT"  LOC = "P90" | IOSTANDARD = LVCMOS33 ;
4
# Die folgenden Constraints bringen nichts:
5
#NET "OSC" USELOWSKEWLINES;
6
#NET "OSC_BUFGP" USELOWSKEWLINES;
7
#NET "OSC_BUFGP/IBUFG" USELOWSKEWLINES;
8
#NET "TRIG_OUT" USELOWSKEWLINES;
9
#NET "TRIG_OUT_OBUF" USELOWSKEWLINES;
10
#NET "TRIG_OUT_mux0000" USELOWSKEWLINES;

von Falk B. (falk)


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

von Alexander S. (Gast)


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

von Seegers (Gast)


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.

von Falk B. (falk)


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

von Alexander S. (Gast)


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

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.