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:
(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:
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:
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:
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?
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 PH1
und PH2
. Eines der Übertragungsgatter sollte mit PH1
und und das andere mit und ~PH1
gesteuert werden .PH2
~PH2
Sie können nichtPH2
as ~PH1
oder use PH1
as 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.
David Tweed
Platzhalter
Vidak