Forum: FPGA, VHDL & Co. Jitter am Ausgang vom Spartan-3E


von Der D. (daimlerfahrer)


Lesenswert?

Servus zusammen,

ich stehe schon wieder vor einem Problem mit meinem Spartan-3E Design:
Mein 13 MHz Takt erreicht den Ausgang mit einem deutlichen Jitter von 
bis zu 500 ps. Ich habe bereits mehrere Taktquellen versucht und auch 
höhere Takte heruntergeteilt und diese intern verwendet (sowohl per VHDL 
als auch mit Hilfe des DCMs).
Könnt ihr mir ein paar Tipps geben, wie ich den Jitter im FPGA schwächen 
kann?
Danke und Grüße

PS: Den Thread hier Beitrag "Xilinx Spartan3 - timing jitter" habe ich 
bereits gelesen und beschäftige mich derzeit mit der Theorie zu PLLs und 
DLLs.

von Falk B. (falk)


Lesenswert?

@ Der Daimlerfahrer (daimlerfahrer)

>Mein 13 MHz Takt erreicht den Ausgang mit einem deutlichen Jitter von
>bis zu 500 ps. Ich habe bereits mehrere Taktquellen versucht und auch

Naja, wozu soll der Takt denn verwendet werden?

>höhere Takte heruntergeteilt und diese intern verwendet (sowohl per VHDL
>als auch mit Hilfe des DCMs).

DCMs, DLLs und PLLs im FPGA kannst du da vergessen, die machen ziemlich 
viel Jitter. Generell sind FPGAs nicht so doll, was Jitter von 
durchgeschleiften Takten angeht.

Externe PLLs sind da schon was anderes.

>Könnt ihr mir ein paar Tipps geben, wie ich den Jitter im FPGA schwächen
>kann?

Nicht erst durchschleifenn. Ausserhalb mit Taktreiber den Takt 
sternförmig ans FPGA und die andern ICs führen.

MfG
Falk

von Der D. (daimlerfahrer)


Lesenswert?

Leider muss ich den Takt durchs FPGA führen, da ich dort eine PWM damit 
mache und den Ausgang des FPGA auf einen Treiber weitergeben möchte.

von Falk B. (falk)


Lesenswert?

@ Der Daimlerfahrer (daimlerfahrer)

>Leider muss ich den Takt durchs FPGA führen, da ich dort eine PWM damit
>mache und den Ausgang des FPGA auf einen Treiber weitergeben möchte.

Nu ja, man kann schon eineiges machen, 500ps klingt schon recht viel. 
Wie sieht dein Layout aus?
Sauber und reichlich Abblockkondensatoren?
 An der VCC-IO Bank, an welcher der Takt eingespeist wird sollten 
möglichst wenig, und nur langsame Ausgänge schalten, die machen nämlich 
auch Jitter durch pulsartige Belastung von VCC-IO.
Für diese Bank VCC-IO gesondert über LC-Filter führen, ähnlich wie bei 
ADCs.

MFG
Falk

von Joko (Gast)


Lesenswert?

@ Der Daimlerfahrer (daimlerfahrer)

nur, um einen 'sehr speziellen Effekt' auszuschließen:
verwendest Du 2 DCMs, die 'nebeneinander' liegen ?

Gruß
Jochen

von Der D. (daimlerfahrer)


Lesenswert?

Bisher arbeite ich auf dem Spartan-3E Eval Board. Demnach habe ich wenig 
Einfluss auf Positionierung und Dimensionierung der Cs.
Ich werde mal versuchen den Clock etwas "frei" zu stellen und andere 
Ein- und Ausgänge entfernt zu platzieren.
Danke schonmal für Deine Tipps!

von Joko (Gast)


Lesenswert?

@ Der Daimlerfahrer (daimlerfahrer)

das Eval-Board sollt i.O. sein - dort würde ich als letztes suchen...

nochmal - jetzt etwas eindringlicher: verwendest Du 2 DCMs, die
nebeneinander liegen ?

von Der D. (daimlerfahrer)


Lesenswert?

Ich verwende in meinem Design nur einen DCM, um den Takt in 90° 
Schritten zu schieben.
Sorry hatte meinen Beitrag geschrieben während Du die Frage gepostet 
hast...

Ich benutze intern einige Bufferketten, die mir ein zusätzliches Delay 
geben. Daher kommt wohl der Jitter... Denn je mehr Buffer ich nutze, 
desto stärker fällt der Jitter aus.

von Joko (Gast)


Lesenswert?

>Sorry hatte meinen Beitrag geschrieben während Du die Frage gepostet
>hast...
passiert mir auch ;-)

>Ich verwende in meinem Design nur einen DCM
o.k. - dann fällt mein Verdacht aus

>Ich benutze intern einige Bufferketten, die mir ein zusätzliches Delay
>geben.

Stichwort: Verwendung des dyn. Phaseshift einer DCM als Alternative !?!

Gruß
Jochen

von Falk B. (falk)


Lesenswert?

@ Joko (Gast)

>>Ich benutze intern einige Bufferketten, die mir ein zusätzliches Delay
>>geben.

Ohhh,ich ahne schreckliches.

>Stichwort: Verwendung des dyn. Phaseshift einer DCM als Alternative !?!

Wenn man in einem FPGA einen jitterarmen Takt haben will sind SÄMTLICHE 
DCMs, DLLS, PLLs etc. tabu!

Und wozu meinst du, die 90 Grad Version des 13 MHz Taktes zu brauchen?

MFG
Falk

von Joko (Gast)


Lesenswert?

@Falk
>Wenn man in einem FPGA einen jitterarmen Takt haben will sind SÄMTLICHE
>DCMs, DLLS, PLLs etc. tabu!

Ich stimme Dir 'im Prinzip' zu - die Frage ist nur, was man als
jitterarm bezeichnen möchte:
- bei den angegebenen 500ps ist (selbst bei der Verwendung einer DCM)
   irgendwas oberfaul !
- 200 ps sollten aber selbst mit einer DCM möglich sein
- für deutlich weniger Jitter sind dann DCMs tabu
- PLLs hingegen können bei geeigneter Verwendung sogar den Jitter
  verringern

"dyn." Phase-Shift war natürlich nur zur 'Einstellung' der gewünschten
Phasenlage gedacht - im Moment der 'Verstellung' ergibt sich
definitionsgemäß natürlich ein 'extremer' Jitter

Bei 13MHz würd' ich mir allerdings überlegen, ob ich nicht einen
höheren, jitterarman Takt (auf dem Board vorhanden ?) verwenden kann,
um daraus dann die geforderten 'timings' zu abzuleiten...

Gruß
Jochen

von Der D. (daimlerfahrer)


Lesenswert?

Der Punkt ist tatsächlich, dass ich dynamische Phaseshifts erzeugen 
möchte, die kleinere Schritte aufweisen, als mit einem Zähler zu 
realisieren wäre...
Zudem soll das ganze sehr schnell einstellbar sein. Damit kommt der PS 
im DCM nicht in Frage (auch wenn der 'nur' ein paar Takte braucht).

Die 90°,180° und 270° Schritte brauche ich, um mein Signal bei Bedarf 
bis zu 360° zu verschieben.

von Falk B. (falk)


Lesenswert?

@Joko (Gast)

>- bei den angegebenen 500ps ist (selbst bei der Verwendung einer DCM)
>   irgendwas oberfaul !

Jain. Das ist abhängig von vielen EInstellungen, Freqeunzverhälnissen 
etc.

>- 200 ps sollten aber selbst mit einer DCM möglich sein

Unter Umständen.

>- für deutlich weniger Jitter sind dann DCMs tabu
>- PLLs hingegen können bei geeigneter Verwendung sogar den Jitter
>  verringern

PLL != PLL

Die internen in FPGAs sind bei weitem nicht so gut wie man landläufig 
denkt.

>Die 90°,180° und 270° Schritte brauche ich, um mein Signal bei Bedarf
>bis zu 360° zu verschieben.

Dann nimm 4x13MHz, das ist wesentlich einfacher und jitterarm.

MFG
Falk

von Der D. (daimlerfahrer)


Lesenswert?

Das wäre meine nächste Frage gewesen: Bekomme ich weniger Jitter, wenn 
ich einen höheren Takt nehme und mir daraus meine 13 MHz generiere mit 
der entsprechenden Phasenstellung (90, 180 und 270 Grad)?

Und wie verhält es sich, wenn ich noch einen Tiefpass am Ausgang 
vorsehen würde und diesen wieder an einen Komparator führe? Entsprechend 
Dimensioniert sollte mein Signal doch sauberer werden!?

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.