Forum: FPGA, VHDL & Co. Variabler 32MHz Systemtakt


von Stefan (Gast)


Lesenswert?

Hallo,

ich brauche für mein Projekt einen Systemtakt im FPGA von 32MHz (Sparan 
3). Dieser soll allerdings in gewissen Bereichen einstellbar sein, z.B. 
von 27 bis 32 MHz (intern vom Design).

Meine erste Idee war, den 50MHz Systemtakt mit einem DCM auf 300MHz 
hochzusetzen, anschließend mittels DDS einen einstellbaren Takt von 8MHz 
zu generieren und mittels eines zweiten DCM diesen Takt auf die 32MHz zu 
vervielfachen.

Der zweite DCM sollte mir eigentlich ein wenig den Jitter vom Takt 
nehmen, allerdings wenn ich mir das ganze mim Oszi ansehe ist der Takt 
leider nicht so sehr stabil.

Hat jemand eine bessere Idee?

Alternativ könnte ich einen externen Funktionsgenerator, welcher über 
RS232 eingestellt werden kann verwenden und damit meinen Takt generieren 
und mit einem DCM nur noch vervierfachen. Ich würde allerdings sehr 
gerne ohne zusätzliche externe Hardware auskommen.

Gruß, Stefan

von Schlumpf (Gast)


Lesenswert?

Ohne deine Applikation zu kennen, die so ein Verfahren erforderlich 
macht, hier eine App-Note, die vermutlich das beschreibt, was du suchst:

http://www.xilinx.com/products/boards/s3estarter/files/s3esk_frequency_generator.pdf

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Stefan schrieb:
> anschließend mittels DDS einen einstellbaren Takt von 8MHz zu generieren
Was ist das für eine DDS?

> Alternativ könnte ich einen externen Funktionsgenerator, welcher über
> RS232 eingestellt werden kann verwenden und damit meinen Takt generieren
> und mit einem DCM nur noch vervierfachen.
Wozu denn dann noch der DCM?
Ein DCM kann zu einem guten Siganl nur noch Jitter hinzufügen...

Wofür ist der ganze Aufwand?
Was willst du dann da so jitterarm takten?
Was ist viel, was ist wenig Jitter? Gibt es da Zahlen?

von Schlumpf (Gast)


Lesenswert?

> Wozu denn dann noch der DCM?
Der nachgeschaltete DCM kann im "frequency aligned mode" den von der DDS 
verursachten Jitter wieder rausbügeln. Die Frequenz wird von der DCM 
einfach gemittelt.
Ist in der von mir angegebenen App-Note ganz gut beschrieben.

Aber ganz abgesehen davon frage ich mich auch, welche Applikation hinter 
diesen uns noch nicht bekannten Anforderungen steckt. Bzw. ob sich das 
"Problem" nicht auch ganz anders lösen lässt und man diesen 
einstellbaren Takt gar nicht benötigt.

von Stefan (Gast)


Lesenswert?

Danke für die schnellen Antworten,

ich hab die verlinkte PDF erstmal überfolgen. Von der Funktion her hab 
ich es mir wie auf Seite 7 dargestellt gedacht, nur das mein Phasenakku 
18 bit breit ist und ich mit 300MHz Taktfrequenz arbeite.

Ich dachte mit der duty cycle correction könnte ich evtl. das Jittern 
verbessern - hab damit allerdings keinerlei Erfahrung, deshalb frag ich 
hier ;)

Als DDS hab ich einfach ein 18 bit breites Register, welches ich immer 
überlaufen lasse und das MSB auswerte.. quasi: clk8 <= Phasenakku(17);
Ist es von Nachteil eine DDS von Hand zu schreiben?

Was viel oder wenig Jitter ist kann ich nicht so genau sagen. Am 
kritischsten ist wohl ein 10 Bit ADC der damit getaktet werden soll.

Ich werde mir jetzt die PDF genauer durchlesen. Erstmal Danke :)

von Purzel H. (hacky)


Lesenswert?

Allenfalls einen NBC12430, oder SY89429 ? Die sind viel einfacher.

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.