www.mikrocontroller.net

Forum: FPGA, VHDL & Co. Takt umschalten die X.


Autor: Hotzenblotz (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Rick Dangerus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hast Du denn die Information, wann Dein neuer Takt stabil verfügbar ist 
(nach der Initialisierung)? Dann damit geeignet auf die neue Clock 
umschalten.

Rick

Autor: Hotzenblotz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja diese Information habe ich. Ich weiss nicht wie ich auf den neuen 
Takt umschalten soll. Ein Multiplexer sollte man dort ja nicht 
verwenden...

Autor: Rick Dangerus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du könntest Takt B (neu, langsam) mit Takt A (alt, schnell) über 
ein/zwei FF (ist ja im CPLD eher knapp) einsynchronisieren. Dann sollte 
auch der MUX kein Problem sein.

Rick

Autor: Hotzenblotz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hmm, das versteh ich net...

Autor: Jan M. (mueschel)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Rick Dangerus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Lothar Miller:

Die Frequenz  von Takt A hatte ich überlesen. Somit fällt
einsynchronisieren wirklich aus.

Rick

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dafür gibts doch extra Clock-Multiplexer, also zumindest bei Xilinx.

Autor: Holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.