Forum: FPGA, VHDL & Co. Spartan 6 zu langsamer Clock Synchronisieren


von T. F. (sar)


Lesenswert?

Der Spartan 6 soll synchron zu einem anderen System Signale erzeugen. 
Das System gibt ein Synchronisationspulse aus welches eine Frequenz von 
100Hz-2MHz (je nach Einstellung) haben mit einer Pulslänge von ~100ns. 
Dazu synchron will ich ein paar Signale mit wenig Jitter (<1ns) abtasten 
(analog & digital). Intern werde ich einen Takt von 100MHz bis 150MHz 
anstreben.

Da die interne PLL des Spartan 6 erst bei ein Fin_min von 19MHz hat und 
der Dutycycle auch klein ist benötige ich eine externe Aufbereitung. Zum 
Beispiel der Cirros CS300-CP (https://www.cirrus.com/products/cs2300/) 
könnte den Frequenzbereich abdecken.

Jetzt meine Frage: Gibt es eine andere Möglichkeit den FPGA zu 
synchronisieren ohne externe PLL?

Wenn nein, hat jemand noch andere Vorschläge für eine externe 
Aufbereitung?

Danke,
Stefan

von Tim (Gast)


Lesenswert?

Man könnte zwei GTP-Kanäle (falls überhaupt vorhanden) als 1GSa/s 
Oversampler betreiben, aber das ist ein Aufwand der dir sicher noch 
andere Einschränkungen vorgibt.

Das analoge Modul vorschalten ist schon ein gute praktische Lösung.

Ich würde mich fragen, ob die Anforderungen insbesondere im Jitter 
wirklich so hart sein müssen. 100 Hz und 1 ns wird sicher zusätzliche 
Rauscheffekte wie 1/f hervorrufen.

von Weltbester FPGA-Pongo (Gast)


Lesenswert?

T. F. schrieb:
> Da die interne PLL des Spartan 6 erst bei ein Fin_min von 19MHz hat

Dafür gibt es eine elegante Lösung mit dem feedback loop die ich mir mal 
ausgedacht habe. Was ist dir die Lösung wert?

von Duke Scarring (Gast)


Lesenswert?

T. F. schrieb:
> Das System gibt ein Synchronisationspulse aus welches eine Frequenz von
> 100Hz-2MHz (je nach Einstellung) haben mit einer Pulslänge von ~100ns.
Woher kommt denn der Takt für dieses System? Wird der intern generiert? 
Läßt er sich evtl. von extern vorgeben?

Duke

von T. F. (sar)


Lesenswert?

Duke Scarring schrieb:
> Woher kommt denn der Takt für dieses System? Wird der intern generiert?
> Läßt er sich evtl. von extern vorgeben?

Der Takt wird intern generiert nur leider habe ich keinen Zugriff darauf 
und kann ihn auch nicht extern vorgeben.

von Duke Scarring (Gast)


Lesenswert?

Du kannst dir auch eine PLL im FPGA nachbauen: Zeit zwischen zwei 
Flanken messen und damit einen NCO füttern. GGf. noch ein Filter, damit 
die Frequenzsprünge klein genug bleiben und fertig ist die Laube...

Duke

von T. F. (sar)


Lesenswert?

Duke Scarring schrieb:
> kannst dir auch eine PLL im FPGA nachbauen: Zeit zwischen zwei
> Flanken messen und damit einen NCO füttern. GGf. noch ein Filter, damit
> die Frequenzsprünge klein genug bleiben und fertig ist die Laube...

Werde ich mir parallel zur externen PLL anschauen und ausprobieren. 
Danke für den Vorschlag.

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.