Eliminierung von Signal Race Hazard in einem dynamischen IC-Latch/Register!

Ich arbeite mit der Software MAGIC Integrated Circuit auf Layout-Ebene.

Ich habe ein dynamisches 8-Bit-Register aus dynamischen 1-Bit-Flipflops, die den Eingang bei der positiven Flanke des Signals schreiben:

Flip-Flop

(Hinweis: Ich habe aus Gründen der Robustheit Transmission Gates als Schalter anstelle von NMOS verwendet. Inverter sind normale CMOS-Inverter.)

Es hat also im Grunde 8 dieser Flipflops, die mit demselben CLK verbunden sind. Wenn ich jedoch nur eine einfache CLK- und keine CLK-Ausbreitung durchführe, funktioniert mein Register SOWOHL auf der positiven als auch auf der negativen Flanke von CLK, während es nur auf der positiven Flanke funktionieren sollte. Mein TA hat mir gesagt, dass es am Race Hazard liegt, wo an einem Punkt sowohl CLK als auch notCLK während des Übergangs auf einem hohen logischen Niveau sind. Das war richtig, als ich simulierte, also habe ich Race Hazard mit dieser Schaltung eliminiert:

Rennstrecke

Und tatsächlich gab es damit keine Überschneidung von logisch '1' für CLK und notCLK. Natürlich gab es eine Überlappung der Nullen, aber das ist unvermeidlich und sollte die Schaltung nicht beeinflussen, oder?

Ich habe jedoch immer noch das 8-Bit-Register, das Eingangswerte sowohl bei positiven als auch bei negativen CLK-Flanken schreibt! Warum passiert das immer noch? Abgesehen davon funktioniert es einwandfrei. Hier das Signaldiagramm:Diagramm

Wie Sie sehen können, sind t2clk und t2nclk meine CLK- und notCLK-Ausgänge der Race-Eliminator-Schaltung, und es wurde erfolgreich die Überlappung von „1“ eliminiert. Es schreibt jedoch immer noch Werte bei negativer Flanke von Signalen!

Hier ist mein Layout des gesamten 8-Bit-Registers, falls es von Nutzen ist:

Layout

Wenn Sie detaillierte Layouts benötigen, gebe ich sie, aber ich kann garantieren, dass sie meinen Erklärungen treu sind! :) Hilfe ASAP plz, Frist morgen!!! :)

EDIT: Könnte das Hinzufügen von Transmission Gates anstelle von NMOS der Grund für Fehlfunktionen sein?

Antworten (1)

Ja, wenn Sie die NMOS-Transistoren durch vollständige Übertragungsgatter ersetzt haben, bei denen sich die P- und N-Transistoren in entgegengesetzten Taktphasen befinden, haben Sie ein Rennproblem. Angenommen, Ihre beiden Taktphasen heißen PH1und PH2. Eines der Übertragungsgatter sollte mit PH1und und das andere mit und ~PH1gesteuert werden .PH2~PH2

Sie können nichtPH2 as ~PH1oder use PH1as verwenden ~PH2.

Sie müssen sicherstellen, dass die Nichtüberlappungsbedingung weiterhin für die invertierten Phasen sowie für die echten Phasen gilt. Wenn Sie die Nichtüberlappung erhöhen müssen, fügen Sie Inverterpaare in den Rückkopplungspfaden der kreuzgekoppelten NOR-Gatter hinzu.

Ja. Eine zweite Taktgeneratorschaltung, diesmal mit NAND-Gattern, ist erforderlich, um ~PH1 und ~PH2 zu erzeugen. Außerdem müssen Sie die Abschaltzeiten der Übertragungsgatter charakterisieren und sicherstellen, dass die Überschneidungszeit der Uhr um einen angenehmen Spielraum größer ist.
Joe hat es geschafft! Sie können jedoch alle benötigten Signale mit Invertern an den Signalen Phi1 und Phi2 erzeugen, um die (4) zu erhalten, die Sie benötigen.
Gute Antwort! Ich überlegte, entweder vier Signale hinzuzufügen, die sich durch die Schaltung ausbreiten, oder zwei Inverter in jeder Flipflop-Zelle hinzuzufügen. Ich habe mich für die zweite Variante entschieden :)