Einige FPGAs verfügen sowohl über DCM (Digital Clock Manager) als auch PLL (Phase Lock Loop) zur Verwendung bei der internen Takterzeugung.
Die Xilinx Spartan-6 FPGA Clocking Resources UG382 (v1.10) -Dokumentation beschreibt eine Reihe von Funktionen für DCM:
All diese (oder zumindest die Mehrheit, vielleicht nicht der "freilaufende Oszillator") sind jedoch nach meinem Verständnis auch bei Verwendung einer PLL verfügbar.
Was ist also der Unterschied zwischen der Verwendung eines DCM und einer PLL in einem FPGA-Design?
Xilinx verwendet den Begriff DCM für ihre Erweiterung dessen, was sie früher als DLL oder Delay Locked Loop bezeichneten.
Dies (DLL) war eine angezapfte Verzögerungsleitung, die vom ursprünglichen Taktsignal gespeist wurde. Durch Auswahl verschiedener Abgriffe konnten Sie unterschiedliche Verzögerungen für das Ausgangstaktsignal erhalten. Da die Verzögerungen unvorhersehbar sind, verglich die Logik die Ausgänge von verschiedenen Taps, bis sie herausfand, welche Tap-Nummer eine vollständige Taktzyklusverzögerung ergab – sie wurde "entsperrt", bis sie den richtigen Tap fand. Dann aktualisierte es diese Tap-Nummer, wenn die Verzögerungen drifteten (z. B. als sich die Eingangsfrequenz änderte oder der Chip sich aufwärmte), dann wurden andere Verzögerungen (z. B. 90 Grad, 180 Grad) daraus berechnet.
So lieferte es ein vage PLL-ähnliches Verhalten ohne analoge Schaltungen, was zu dieser Zeit in ihren Prozessen schwer zu erreichen war. Der Nachteil war, dass das Jitter-Spektrum anders war als bei einer PLL, da die Verzögerung immer eine ganzzahlige Anzahl von Abgriffen war.
Wenn Sie DLLs oder DCMs kaskadiert haben, wird die zweite wahrscheinlich funktionieren, aber eine dritte kann aufgrund des von den anderen verursachten Jitters Schwierigkeiten haben, sich zu verriegeln.
Das DCM basiert auf der gleichen Idee, bietet jedoch andere Funktionalitäten, wie z. B. eine Taktfrequenzmultiplikation.
Neuere FPGAs bieten sowohl DCM (DLL) als auch PLL, aber ich gehe davon aus, dass DCM noch einfacher herzustellen ist.
Zunächst einmal ist die Entscheidung eines FPGA-Herstellers für die Benennung von Komponenten also hauptsächlich eine Marketingentscheidung. Das hat also keine inhärente Bedeutung. Es ist immer gut, sich daran zu erinnern.
Dann: Eine PLL ist wirklich genau das, ein Regelkreis, in dem die beobachtete/korrigierte Größe die Phase (oder eine Ableitung davon) eines Signals ist. Es ist also ein Teil von etwas, das Takte erzeugen könnte, aber nicht der vollständige Taktgenerator. Natürlich ist es so, als ob "Transistor" in den 60er und 70er Jahren für kleine Radioempfänger stand, denn das zentrale Bauteil war ein Transistor. Aber ein Transistor allein macht noch keinen Radioempfänger.
Was auch immer in Ihrem Design als PLL bezeichnet wird, muss eine Beschreibung dessen enthalten, was es tatsächlich tut. Vergleichen Sie diese Beschreibung mit der Beschreibung dessen, was ein DCM tut. Das ist die beste Antwort, die wir geben können – „PLL“ wiederum bedeutet eigentlich nur einen einzelnen Regelkreis, keinen Taktgenerator.
schwach