Was bedeutet „Gate the Clock“?

In meinen Vorlesungsunterlagen lese ich immer wieder „nicht die Uhr torieren“. Ich habe versucht, im Internet zu suchen, aber ich kann die genaue Bedeutung dieses Ausdrucks nicht finden.

@user129048 es gibt andere Fragen zu diesem Thema auf dieser Seite. Kurz gesagt, wenn Sie die Uhr gaten, haben Sie eine Verzögerung, die schlecht ist. Die meisten FPGAs haben dedizierte Taktleitungen, und das Ansteuern des Takts verwendet diese Leitungen nicht.
Genauso wie Sie ein Tor benutzen, um Ihren Hund/Ihr Pferd/usw. hinein- und hinauszulassen, können sie passieren, wenn das Tor offen ist. Clock und Reset sind nur Signale, die genau wie die anderen Signale an einen Logikbaustein weitergegeben werden. Sie können zulassen oder blockieren, dass diese Uhr fortfährt, und sie nicht vergehen lassen. Verhindern, dass die Logik auf der anderen Seite dieses Signal als Eingang hat.

Antworten (4)

"Gate the Clock" bedeutet, ein Logikgatter in die Taktleitung zu stecken, um es ein- oder auszuschalten.

schematisch

Simulieren Sie diese Schaltung – Mit CircuitLab erstellter Schaltplan

Die obigen Diagramme zeigen UND und ODER, die zum Gaten der Uhr verwendet werden. Einer zwingt die Uhr niedrig, der andere hoch.

Um 'zu kurze' Taktimpulse zu vermeiden, die entweder hoch oder niedrig sind ("Runt-Impulse"), müssen wir sicherstellen, dass:

  • Das Steuersignal für das UND-Gatter sollte sich nur ändern, wenn der Takt niedrig ist .
  • Das Steuersignal für das ODER-Gatter sollte sich nur ändern, wenn der Takt hoch ist .

Gated Clocks sind sehr nützlich, um den Stromverbrauch in CMOS zu reduzieren, da die Logik "ruhig" bleibt, während die Uhr angehalten wird. Sie werden feststellen, dass moderne Synthesewerkzeuge eine spezielle Option zum automatischen Einfügen von Clock-Gating haben.

schematisch

Simulieren Sie diese Schaltung

Oben sind zwei Schaltungen, die sicher einen Gated Clock erzeugen. Die Schaltungen verlassen sich auf die Tatsache, dass es eine kleine Verzögerung (Takt zu Q) gibt, damit das Steuersignal aus dem Register kommt. Somit ändert sich das Steuersignal am Gate, wenn der Takt eine bekannte Polarität hat.

Sehr schöne Antwort. Ich werde nur auf die Leistungsvorteile von Gated Clocks eingehen. Das Taktnetzwerk in einem IC, insbesondere in komplexen wie Mikroprozessoren, kann sehr umfangreich sein. So umfangreich, dass sich gezeigt hat (leider habe ich die Referenz nicht zur Hand), dass allein das Schalten des Taktnetzwerks 30% des gesamten Stromverbrauchs ausmachen kann. Diese wird auch dann verbraucht, wenn die eigentliche, von ihr getaktete Logik nichts zu tun hat, z. Die Register und Ausgänge ändern sich überhaupt nicht. Durch das Gating der Uhr kann die Uhr in den betroffenen Teilen des Netzwerks vollständig deaktiviert werden, wodurch der Stromverbrauch erheblich reduziert wird.
Obwohl es einen Fall geben kann , in dem dies mit "Gated Clock" gemeint ist, kann dies offensichtlich nicht die Bedeutung sein, mit der OP in seinen Vorträgen konfrontiert wird, da davon abgeraten wird: "Do not gate the clock".
@Curd: Eine Gated Clock ist genau das, eine Uhr, die deaktiviert werden kann. oldfart erklärte, dass es eine etwas kompliziertere Implementierung braucht (und hat eine gezeigt), als nur ein einziges Logikgatter, damit es richtig funktioniert, auch wenn es daher seinen Namen hat.
@ultimA: Warum denken Sie, dass OP "weiterliest, die Uhr nicht öffnet ", wenn es nur die legitime Verwendung des Ein- und Ausschaltens der Uhr bedeutete?
An den Informationen in dieser Antwort ist nichts auszusetzen ... außer dass es keine Antwort auf die Frage von OP ist.
@Curd: Wenn das OP "die Uhr nicht gattern" lautet, meint der Professor "die Uhr nicht buchstäblich wie mit einem einzigen Logikgatter gattern". Das ist ein guter Rat. In der Praxis bedeutet "Clock-Gating" jedoch "die Uhr deaktivieren" oder dazu in der Lage zu sein, und es wird aus Leistungsgründen sehr empfohlen, dies zu tun, solange Sie wissen, wie es richtig gemacht wird (dh nicht mit einer Logik Gate, aber mit ausreichender Logik, um Runts und Glitches auf der Taktleitung zu vermeiden).
Es kann Situationen geben, in denen das globale Clock-Gating überschüssige Leistung verbraucht und das lokale Clock-Gating konservativer ist.
Ich muss hier raten, warum der Professor das sagt: Clock-Gating, obwohl es hier als einfach dargestellt wird, hat viele Fallstricke. Daher ist es sehr verpönt. Beim ASIC-Design (woher ich komme) wird dies entweder nur von den Tools durchgeführt, denen vertraut werden soll, oder von leitenden leitenden Ingenieuren, von denen auch angenommen wird, dass sie wissen, was sie tun.
@oldfart Das ist sehr wahrscheinlich die Erklärung. Besonders wenn OP in einer FPGA-Klasse ist, ist es unwahrscheinlich, dass sie jemals eine Uhr ansteuern sollten.
Auch in FPGA wird dies normalerweise nur von den Tools erledigt. Die Codierung wird nicht verwendet, um auf eine torgesteuerte Uhr zu schließen.
@MITURAJ, Clock-Gating kann mit Sicherheit im Design-Eintrag durchgeführt werden. Ich denke, Sie beschreiben, was getan werden sollte, nicht was "normalerweise" getan wird. Die Freiheit von FPGAs erlaubt es jedem, schlechte Ideen umzusetzen. Viele schlechte Designs da draußen.
Ja wahr in der Tat
@oldfart, und wir wissen, dass Rang keine Garantie für Kompetenz in allen Lebensbereichen ist. Es sollte während der vorgeschlagenen Entwurfsprüfung und der fertigen Entwurfsprüfung aufgegriffen werden, anstatt leitenden Ingenieuren blind zu vertrauen. Bewertungen, die einige Firmen führen, andere kümmern sich leider nicht darum.
"Oben sind zwei Schaltungen, die sicher einen Gated Clock erzeugen." stützt sich auch darauf, dass "control" eine Phasenbeziehung mit "clock" hat
@chux Ich denke, die obigen Schaltungen beseitigen ausdrücklich die Notwendigkeit der Phasenbeziehung. Zugegeben, wenn die Setup-Zeiten für die Latches nicht eingehalten werden, kann der Ausgang im schlimmsten Fall einen Zyklus früher oder später wechseln und ist möglicherweise nicht deterministisch, er sollte jedoch immer saubere Taktzyklen erzeugen.
@chux hat Recht, aber ich möchte die Dinge nicht komplexer machen, als sie bereits sind. Das wäre eine Kombination aus Synchronisation und Clock-Gating: Zwei Register. Ja, die Uhr würde früher oder später einen Zyklus umschalten, aber ich habe Angst vor metastabilem Verhalten.
@mbrig Es gibt Fälle, in denen Sie die Uhr deaktivieren müssen, insbesondere bei einigen Kommunikationsprotokollen. FPGA-Anbieter stellen im Allgemeinen Richtlinien dazu bereit. Also ich würde nicht sagen, mach es nie.

Es bedeutet:
Verwenden Sie kein UND- oder ODER-Gatter (oder einen komplexeren Kombinationsbegriff), um ein Taktsignal von einem anderen Taktsignal abzuleiten.

Der Grund für diese Regel ist, dass Wettlaufbedingungen zwischen den mehreren Eingaben des kombinatorischen Terms mehrere Taktflanken (Glitches) verursachen können, wo Sie nur eine Taktflanke erwarten.

Gating bedeutet in diesem Zusammenhang, ein Signal durch ein Logikgatter zu leiten, um es zu steuern.

Wenn es durch einen Eingang eines UND-Gatters mit 2 Eingängen geleitet wird, kann ein Steuerbit am anderen Eingang den Ausgang des UND-Gatters auf Low zwingen oder das Signal durch- und austreten lassen. Eine ähnliche Funktion kann durch ein ODER-Gatter ausgeführt werden, wobei das Signal hoch gezwungen oder durchgelassen wird.

Das Gattern einer Uhr bedeutet also, sie niedrig/hoch zu zwingen oder sie passieren zu lassen.

Uhren nicht zu sperren ist ein guter Rat. Es kann mit Sorgfalt und gründlichem Verständnis der möglichen Folgen durchgeführt werden. Dazu gehören Metastabilität, wenn getaktete Signale in den Gated-Clock-Bereich aufgenommen werden, und schlechtere Ergebnisse durch zeitgesteuerte Synthese/Layout.

Aber es gibt fast immer andere Wege, um die gleiche Kontrolle über eine Schaltung zu erreichen wie durch Gating der Uhr, ohne all diese Risiken und Nachteile.

Für hohe Geschwindigkeit bedeutet dies, dass keine Logikgatter hinzugefügt werden, die der Uhr eine Ausbreitungsverzögerung hinzufügen, da dies zu Wettlaufbedingungen beim Arbeiten mit Daten unter Verwendung der ursprünglichen Uhr führen kann.

Ich habe noch nie gehört, dass der Begriff Clock-Gating so verwendet wird. Haben Sie eine Quelle dafür?
@BeB00: googeln Sie einfach nach "clock gating glitch free" und Sie werden viel finden
Dies war mein erster Gedanke, nachdem ich den verwendeten Begriff noch nicht gehört hatte, aber es gibt Zeiten, in denen Pufferung erforderlich ist, und Gating soll in diesem Fall wahrscheinlich mehr als Pufferung bedeuten. Slew- und Edge-Eigenschaften können sich durch einfaches Puffern ändern und müssen in jedem Fall berücksichtigt werden.