Takt umschalten die X.

Gast #977518
Lesenswert?
• ▲
▼
Hallo,

hab jetzt schon ein Weilchen wegen meinem Problem gesucht... Ich hab das 
soweit verstanden, dass wenn ich einen niedrigen Takt im CPLD brauche, 
ich das am besten über die Enable Leitung mache...

Habe nun das Problem, dass ich zwei EXTERNE Takte habe. Das Problem ist 
folgendes: Zum Zeitpunkt meiner Initialisierung ist nur ein Takt A 
vorhanden (66 MHz). Nach der Initialisierung stehen beide Takte A & B 
zur Verfügung, aber weitere externe Signale sind nach der 
Initialisierung zu diesem neuen Takt B synchron. Der Takt B liegt so 
zwischen 20 MHz und 80 MHz.

Kann ich das intern im CPLD irgendwie umschalten?

Vielen Dank für eure Hilfe
#977917
Lesenswert?
• ▲
▼
@Rick: Was machst du dann gegen Spikes beim Umschalten?

Ein ordentlicher Clock-Mux braucht entweder spezielle Hardware (die es 
in CPLD mWn nicht gibt) oder einen ziemlichen Hardware-Aufwand mit einer 
ganzen Reihe von Flipflops (von denen man im CPLD meist zu wenig hat). 
Da hilft dann nur ein externen Taktschalter.
Moderator (Firma: Titel) Persönliche Seite #977941
Lesenswert?
• ▲
▼
> einsynchronisieren...
> Takt A = 66 MHz  (Start)
> Takt B = 20 MHz - 80 MHz
Da scheidet einsynchronisieren wohl aus.


Vielleicht kannst du während des Umschaltens den Rest des CPLDs über 
einen Zähler, der immer mit dem Takt A betrieben wird, im Reset halten. 
Dazu wären dann ja nur wenige 66MHz-Clocks (und somit nur ein "kleiner" 
Zähler mit wenig FFs) nötig. Dann ist eine Umschaltung über einen MUX 
kein Problem.

Problematisch ist ja nur das Umschalten an sich, da dabei Glitches auf 
dem Takt entstehen könnten. Wenn die Schaltung im Reset ist, machen die 
nichts aus (muss in dem Fall natürlich ein asynchroner Reset sein).

> Da hilft dann nur ein externen Taktschalter.
Damit wäre die Umschaltung dann ohne Spikes/Glitches möglich.
Gast #978093
Lesenswert?
• ▲
▼
@Jörg
Du soltest dich mal zum Beispiel in das Thema:  PCI Bus
mit seiner spezifischen (FSM) einlesen,
bzw. ein echtes PCI Eval Board besorgen.

Mir hat das sehr geholfen, nicht nur Selbst-Befriedigung
im Speicher mit den Sim-Tools zu machen.

Du bekommst nach einiger Zeit da ein gutes Gefühl dafur
was für gute u. schlechte Code-Techniken im Netz rumgeistern
bzw. was für dedizierte I/0 oder Reset-Pinne man dem
Teil noch so aufbürden sollte und kann.

Durch ständiges spielen daran wird man immer besser.
Nun kommt man aber leider dadurch zu dem Schluss:
Je mehr man darüber weiss, desto .... weniger ....

Und schwups is schon nen neues und besseres
"Männerspielzeug" auf dem Markt,
das man sich holen sollte, und  an dem man sich wieder austoben kann.

Der gute alte LANZ BULDOG mit seiner (FSM)
warum habe ich den nicht mehr ???

Gruss Holger.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.