Was ist der Unterschied zwischen DCM und PLL in zB Xilinx FPGA?

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:

  • Eliminieren Sie den Zeitversatz
  • Phasenverschiebung eines Taktsignals
  • Multiplizieren oder dividieren Sie eine eingehende Taktfrequenz oder synthetisieren Sie eine völlig neue
  • Konditionieren Sie einen Takt, um einen sauberen Ausgangstakt mit einem Arbeitszyklus von 50 % sicherzustellen
  • Ein Taktsignal spiegeln, weiterleiten oder umpuffern
  • Takteingangs-Jitter-Filterung
  • Freilaufender Oszillator
  • Spread-Spectrum-Takterzeugung

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?

Antworten (2)

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.

Danke für die ausführliche technische Beschreibung; das ist sehr nützlich, um die Technologie und die Verwendung zu verstehen. Gibt es Situationen, in denen DCM anstelle von PLL oder umgekehrt verwendet werden sollte, oder ist es eher eine Frage der Verwendung, in der zB Jitter und Freq. wird die zeitliche Schließung sicherstellen?
Nun, wenn Sie eine Jitterdämpfung benötigen oder einen sich ändernden Takt verfolgen müssen, benötigen Sie die PLL. Außerdem haben DCMs normalerweise eine niedrige Frequenzgrenze (wo die Ein-Zyklus-Verzögerung am Ende der Verzögerungsleitung abfällt!), sodass langsame Takte eine PLL benötigen. Die allgemeine Regel lautet: Verwenden Sie das DCM dort, wo es die Arbeit erledigt, verwenden Sie PLL dort, wo Sie es brauchen.
Vielen Dank, sehr nützlich und eine großartige Regel, um nach Möglichkeit zuerst die billigen Ressourcen (DCM) und dann die teureren und vielseitigeren (PLL) zu verwenden.

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.

Danke für die Antwort. Mein Verständnis ist jedoch, dass dies mehr als ein Marketing-Namensspiel ist, da der Xilinx Spartan-6 sowohl DCMs als auch PLLs zur Verfügung hat. Aus diesem Grund ist es wahrscheinlich wichtig, den Unterschied zu verstehen, da es einen guten Grund für die Ingenieure geben kann, zwei verschiedene Komponenten zu implementieren, die auf den ersten Blick so aussehen, als würden sie ähnliche Funktionen bieten.
Wie gesagt, es ist ein Marketingname. Keine Diskussion notwendig. Eine PLL ist nur ein Regelkreis.
@MarcusMüller Stellen wir die Frage von OP anders: In welchen spezifischen Fällen sollten Sie sich entscheiden, eine DCM-Ressource im Vergleich zu einer PLL-Ressource innerhalb des Spartan 6 FPGA zu verwenden (da beide verfügbar sind)? Sie sprechen das nicht an. PLL und DCM mögen Marketingnamen sein, aber beide identifizieren unterschiedliche tatsächliche Blöcke, die in diesem FPGA verfügbar sind, sodass sie in der Tat wahrscheinlich etwas unterschiedliche typische Verwendungen haben.
@dim, aber wenn man die Frage so stellt, müsste man fragen "zu welchem ​​​​Zweck?", Damit die Frage von OP nicht unklar bleibt. In diesem Fall habe ich den Teil der Frage übernommen, der beantwortet werden kann, und erklärt, wie man die Nutzungsfrage (durch Vergleich der Spezifikationen) selbst beantwortet.
@MarcusMüller Sein letzter Satz: "Was ist der Unterschied bei der Verwendung eines DCM vs. eines PLL [...]" ist ziemlich klar, würde ich sagen.
@dim widerspricht hier gerne. Es ist gleichbedeutend mit "Was ist der Unterschied bei der Verwendung eines Hexfet gegenüber einem feldbeeinflussten Halbleiterübergang" und ich müsste fragen: "Wofür?" Und: Übrigens ist Hexfet nur ein Marketingname und ein Halbleiterübergang ist nur ein Teil eines MOSFET. Aber wenn Sie es herausfinden müssen, vergleichen Sie die Datenblätter. ". (weitere, sarkastischere Analogien "Was ist der Unterschied zwischen einem Lamborghini und einem V8", vorausgesetzt, Lamborghini hat ihre Sorgen als V8 bezeichnet, was nur eine Motorkonfiguration ist)
@MarcusMüller Ich bin etwas stur. Ich würde sagen, es ist eher "Was ist der Unterschied zwischen der Verwendung eines USART und einem UART", was mit "Nun, wenn Sie nur asynchrone Kommunikation benötigen, können Sie beide verwenden, aber USART ist zusätzlich auch in der Lage, damit umzugehen synchrone Kommunikation". OP kümmert sich nicht um die Benennung. Er kümmert sich darum, welche Funktionalitäten beide Blöcke in Spartan 6 bieten und wie sie sich unterscheiden. So scheint es mir, dass das seine Besorgnis überhaupt nicht anspricht.
@dim Sturheit ist eine der Stärken, die man häufig in EEs findet :) Aber trotzdem kann ich Ihren Standpunkt verstehen. Mein Problem ist wirklich, dass das Dokument, auf das OP verweist, eine 116p-Erklärung der Taktressourcen auf den FPGAs ist - es gibt separate Kapitel, die hervorheben, was die DCM- bzw. die PLL-Module tun. Ich kann keine 20p der Xilinx-Dokumentation kopieren und einfügen. Damit OP nicht angibt, was sie / er tun muss, habe ich keine Ideen mehr, wie ich die Frage beantworten soll.