Forum: FPGA, VHDL & Co. FPGA, Umschalten zwischen 2 ext. Taktquellen


von Stefan Salewski (Gast)


Lesenswert?

>Häää???

Na gut, mal eine etwas einfachere Frage:

Kann ich eigentlich an einen FPGA (S3E) zwei Taktquellen anschließen und 
zwischen diesen umschalten?

Warum ich das will: In der Regel kommt der Takt von CLKOUT von einem 
ADC. Der ADC braucht schon einiges an Leistung, daher wäre es nicht 
völlig abwegig, diesen abzuschalten (Power Down) wenn keine Messung 
stattfindet. Der FPGA soll aber weiterhin (einen langsameren) Takt 
bekommen, damit Datenübertragung zwischen ihm und dem uC stattfinden 
kann.

von Christian R. (supachris)


Lesenswert?

Dafür gibts die Clock-Muxer. Aber sonderlich gut ist die Idee trotzdem 
nicht, denn mit irgendeinem Takt musst du ja das FlipFlip oder was halt 
den Befehl von µC auswertet um den Muxer umzuschalten, auch versorgen. 
Oder du machst das halt statisch über ein IO-Pin direkt.

von Stefan Salewski (Gast)


Lesenswert?

Hallo Christian,

>Aber sonderlich gut ist die Idee trotzdem
>nicht, denn mit irgendeinem Takt musst du ja das FlipFlip oder was halt
>den Befehl von µC auswertet um den Muxer umzuschalten, auch versorgen.

Das ist das, was die Sache nicht ganz trivial macht.

Ich hatte schon etwas nach Postings zum Theam gesucht, aber meist geht 
es dann darum, dass zwei Taktquellen permanent anliegen, und eine 
ausgewählt wird. Aber ich will ja evtl. eine abschalten.

Die Idee ist schon gut, denn der ADC verbraucht ca. 0,4 Watt (ca. 10% 
des Gesamtverbrauchs des Gerätes). Zusätzlichen Jitter will ich aber 
nicht erzeugen. Na ja, vorsehen kann ich eine Umschaltung ja zunächst...

von Bernd G. (Gast)


Lesenswert?

Warum versorgst du nicht den Spartan mit zwei Takten parallel und machst 
zwei Taktbereich auf? Den langsamen nimmst du für die Kommunikation mit 
der Außenwelt. Der schnelle kommt vom ADC und ist einfach nicht da, wenn 
du den ADC stilllegst.
Wo ist dort das Problem, oder sehe ich jetzt was falsch?

von Stefan Salewski (Gast)


Lesenswert?

Hallo Bernd G.,

ja das klingt nicht schlecht.
Ich hätte dann permanent einen langsamen Takt, etwa 8MHz vom Taktausgang 
des uC, und während der Messung zusätzlich 100 MHz vom Taktausgang des 
ADC. Den schnellen Takt benötige ich u.a. um den ADC auszulesen und die 
Werte im Blockram oder evtl. auch im externen RAM-Modul abzulegen.

Die beiden Takte sind aber völlig unabhängig voneinander, haben also 
insbesondere keine fest Phasenbeziehung.

Aber ich denke ich werde das so vorsehen. Wenn es nicht gut funktioniert 
wird die langsame Taktleitung gekappt und stets der schnelle Takt 
verwendet.

Gruß

Stefan

von Falk B. (falk)


Lesenswert?

@  Stefan Salewski (Gast)

>Die beiden Takte sind aber völlig unabhängig voneinander, haben also
>insbesondere keine fest Phasenbeziehung.

Naja, asynchron halt. Kann/muss man halt mit asynchronen FIFOs koppeln. 
Zum Thema Taktumschaltung siehe Taktung FPGA/CPLD.

MfG
Falk

von Bernd G. (Gast)


Lesenswert?

> Naja, asynchron halt. Kann/muss man halt mit asynchronen FIFOs koppeln.

Genau, so und nicht anders. Man kann auch ausnahmsweise entgegen der 
Warnungen in der ISE mal asynchron geladene Register nehmen, wenn man 
weiß,
was man tut.
Ich detektiere in solchen Fällen die Flanken des asynchronen Signals und 
kopple die dann synchron an ("Flankenfänger"). Eine etwas aufwendigere 
Variante mit SR ist im Molitor/Ritter beschrieben. Ist irgendwo auch im 
Tietze/Schenk drin.

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.