40-MHz-Takt aus 50 MHz erzeugen

Wie kann ich in VHDL eine Taktfrequenz von 40 MHz erhalten, wenn mein integrierter Takt 50 MHz beträgt? Ich weiß, wie man die Frequenz durch ganze Zahlen teilt, aber in diesem Fall wird durch 1,25 geteilt. Ich verwende dies für VGA, daher denke ich, dass es wichtig ist, dass es präzise ist. Danke!

Abhängig von der Plattform haben Sie möglicherweise einige integrierte PLLs, die den Zweck erfüllen sollten.
Verwenden Sie eine PLL, um durch 5 zu dividieren und dann mit 4 zu multiplizieren.
Wie auch immer, Sie sollten Ihre Designziele wirklich etwas genauer angeben: Die beiden Taktdomänen müssen synchron sein? Von welchem ​​VGA-Signal reden wir? Warum 40MHz?
Dies ist ein Duplikat der Generierung eines 40-MHz-Takts aus 50 MHz in VHDL bei Stapelüberlauf.
ja, es ist die gleiche Person, weil jemand hier geschrieben hat, es könnte mehr Antworten geben
Für VGA würde ich eine externe PLL verwenden - nach meiner Erfahrung (zugegeben vor einigen Jahren) kann der durch eine FPGA-PLL/DCM eingeführte Jitter für einige Monitore zu viel sein.
Was ist die Quelle der anzuzeigenden Informationen? Wenn ein VGA-Monitor eine bestimmte Anzahl von Pixeln pro Zeile bei 40 MHz anzeigen würde, würde eine Erhöhung der Taktfrequenz auf 50 MHz, aber eine Erhöhung der Anzahl von Takten pro Zeile um 20 % die Anzahl von Pixeln pro Zeile erhöhen. Wenn Sie zB achtzig 9 Pixel breite Zeichen anzeigen würden, könnten Sie stattdessen vielleicht 86 10 Pixel breite Zeichen oder vielleicht 82 10,5 Pixel breite Zeichen anzeigen (einen halben Takt pro Zeichen einsparen).

Antworten (1)

Sie brauchen so etwas . Allerdings muss das Gerät einen VCO haben, damit dies funktioniert.

Die Schaltung arbeitet, indem sie die Frequenz eines spannungsgesteuerten Oszillators (VCO) basierend auf der Phasendifferenz zweier Taktsignale ändert. Das erste Signal der beiden, F ICH im Diagramm ist das Referenzsignal und im Fall einer PLL wird es durch Teilen des Ausgangs des Hauptoszillators durch einen ganzzahligen Wert erzeugt. Wenn die Verstärkung der Rückkopplungsschleife N Eins sein sollte, würde sich die Steuerspannung des VCO entsprechend ändern, bis der Ausgang des VCO genau mit dem Referenzeingang übereinstimmt. Um ein ganzzahliges Vielfaches des Referenztaktsignals als Ausgang zu erhalten, muss lediglich das zurückgeführte Signal durch genau diese ganze Zahl dividiert werden.

PLL

Um also 40 MHz von einem 50-MHz-Oszillator zu erhalten, muss das 50-MHz-Signal zuerst durch 5 geteilt werden. Dieses 10-MHz-Signal ist das PLL-Referenzsignal ( F ICH = 10 M H z ). Diese muss nun mit 4 multipliziert werden und so durch Auswählen N = 4 , wird der Ausgang der PLL sein F Ö = 40 M H z .

Wenn das von Ihnen verwendete FPGA-Gerät keine eingebetteten PLLs hat, können Sie eine ADPLL (all digital PLL) verwenden.

Hier ein paar Anwendungshinweise:

Silicon Labs Einführung in ADPLLs

Xilinx DPLL-Referenzdesign

@thebok: Sie erwähnen, dass dies zum Generieren eines VGA-Signals dient. Ich habe mir gerade einen Code angesehen, der genau das vor 5 Jahren gemacht hat, und es ist mir gelungen, ein VGA-Signal (640 x 480) mit einem 25-MHz-Takt zu erzeugen.
ja, aber für unterschiedliche Auflösungen benötigen Sie unterschiedliche Taktraten, mein Fall ist hier tinyvga.com/vga-timing/800x600@60Hz