Alle digitalen Phasenregelkreise

9

Ich möchte eine Phasenverriegelung in einem FPGA implementieren, ohne externe Komponenten (außer dem ADC) zu verwenden. Der Einfachheit halber ist das Sperren auf einen einfachen Binärimpuls ausreichend. Die Frequenz der Signale beträgt ~ 0,1-1% des Takts. Ich kann die integrierten Uhr-PLLs nicht verwenden, da sie normalerweise:

  1. Nicht konfigurierbar (während der Synthese eingestellt).
  2. Nervös.
  3. Unterstütze nicht die Frequenz, die ich brauche.

Ich habe die Literatur durchsucht und ein paar binäre Phasenregelkreise gefunden. Am bemerkenswertesten ist ein "Puls Steal" -Design, zu dem ich auf Wunsch einen Link posten kann. Ich habe mit einigem Erfolg implementiert und synthetisiert, aber der Jitter- und Lock-Bereich war nicht so gut wie angekündigt. Ich hatte auch Erfolg mit einem externen DVCO, aber ich würde es vorziehen, wenn ich alles auf dem Chip implementieren kann.

Ein digitales Schaltungsdesign oder sogar ein Hinweis in die richtige Richtung wäre hilfreich (ich habe eine Weile meinen Kopf dagegen geschlagen), eine bewährte FPGA-Implementierung wäre wunderbar, aber nicht zu erwarten.

HINZUGEFÜGT 27.10.2010

Das tatsächliche DPLL-Design, das ich verwendet habe, hat einen "Random Walk Filter" als Schleifenfilter (nicht den zuvor beschriebenen "Puls Steal", der meine Notizen durchläuft, die nicht gut funktionierten), der dann die Taktimpulse zum DCO treibt . Der Sperrbereich wird über den Teiler im DCO eingestellt. Die Empfindlichkeit der Schleife wird durch Variieren der Länge des zufälligen Gehens festgelegt.

Das Papier, in dem dies gefunden wird, wird am Ende dieses Beitrags zitiert. Nachdem ich Teile davon selbst implementiert hatte, stellte ich fest, dass es tatsächlich bereits auf OpenCores implementiert war. Es stellte sich jedoch heraus, dass das Projekt in den letzten Monaten gelöscht wurde, aber ich habe die Verilog-Dateien gespeichert, wenn jemand sie möchte.

Yamamoto, H.; Mori, S.; "Performance of Binary Quantized All Digital Phase-Locked Loop mit einer neuen Klasse von sequentiellen Filtern", Communications, IEEE Transactions on, Band 26, Nr. 1, S. 35-45, Januar 1978

doi: 10.1109 / TCOM.1978.1093972

URL: http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=1093972&isnumber=23895

krasisch
quelle
1
Bitte verlinken Sie auf das Design "Puls stehlen" - es gibt keinen Grund, dies nicht zu tun.
Kevin Vermeer

Antworten:

6

Können Sie weitere Details zu Zielfrequenz, Jitter und Schleifenbandbreite (erforderliche Einschwingzeit) veröffentlichen? Welche Art von Oszillator möchten Sie verwenden (extern mit einem DAC, mit / ohne Dithering?, Einem digitalen Zähler / Akkumulator auf dem Chip)?

Wenn Sie mit einem digitalen "Oszillator" (dh einem überfüllten Akkumulator) und dessen Jitter zufrieden sind, kann der Rest der Schaltung ziemlich einfach sein:

  • einen Zähler (PFD), der die Anzahl der Zyklen zwischen der Referenz und dem (optional geteilten) PLL-Ausgang zählt;
  • ein digitales Filter - alles wird funktionieren, vorausgesetzt, es führt die Integration durch (ein Akkumulator) und es hat eine Null (minus (oder plus?) einen skalierten PFD-Ausgang), um die Schleife zu stabilisieren, optional einen oder mehrere Pole über der Schleifenbandbreite, um die zu reduzieren Steuerwert "Welligkeit" bei Referenzfrequenz (nur wichtig, wenn fref
  • Die höchstwertigen Bits des digitalen Filterausgangs (DVCO-Steuerwert) werden als Eingang für den Überlaufspeicher (DVCO) angegeben.

Wenn die Schleifenbandbreite nicht durch Einschwingzeit erzwungen wird, entscheiden Sie sie basierend auf den Rauschbeiträgen aller Komponenten.

  • Wenn der Jitter hauptsächlich von der Referenz oder vom PFD stammt, verwenden Sie eine kleinere Bandbreite.
  • Wenn das Geräusch vom Oszillator kommt, erhöhen Sie es.

Wenn das Referenzsignal phasen- oder frequenzmoduliert ist, verwenden Sie eine Schleifenbandbreite, die niedriger ist als die kleinste Frequenz des Signals, das die Referenz moduliert.

Schwierigere Techniken werden verwendet, wenn die Ausgangsfrequenz nahe oder gleich der Taktfrequenz ist und / oder wenn der niedrige Jitter oder der sehr schnelle Verriegelungsbereich erforderlich ist. In Ihrem Fall werden sie möglicherweise nicht benötigt, außerdem sind sie möglicherweise nicht für eine FPGA-Implementierung geeignet.

Andrzej
quelle
Wenn man zB die Frequenz eines stabilen eingehenden Signals mit 16 multiplizieren möchte und einen Takt hat, der relativ dazu schnell ist, welchen Vorteil hat die Verwendung eines digitalen Filters im Gegensatz zur Messung der Anzahl der Takte zwischen jeder Flanke und der vorherigen und herauszufinden, welche Frequenz ausgegeben werden soll, damit der Ausgangsimpuls, der mit der nächsten Eingangstaktflanke zusammenfallen soll, dies tut? Wenn der Eingangstaktjitter nicht mehr als einen Taktzyklus beträgt, sollte der Ausgangstaktjitter ungefähr so ​​gut sein. Ein solches Schema könnte beginnen, einen sauberen Ausgang zu erzeugen, sobald es den zweiten Eingangsimpuls erhält.
Supercat
1

Wenn Sie ein bisschen Jitter tolerieren können, aber meistens nur eine präzise Taktung gegen eine schnelle Uhr für die Datenwiederherstellung benötigen, möchten Sie möglicherweise etwas wie die CAN-Standard- PLL implementieren (ab Seite 67 dieser PDF-Datei). Dies funktioniert basierend auf einem Überlaufzähler, der nominell korrekt eingestellt werden sollte, aber bis zu Flanken im eingehenden Impulsstrom synchronisiert.

AM Shea
quelle