-
GEBIET DER ERFINDUNG
-
Die vorliegende Erfindung betrifft Schaltungen und insbesondere eine Zwei-Phasen-Taktung von Schaltungen.
-
HINTERGRUND
-
Die
US 7,634,749 B1 beschreibt den Entwurf einer gegen Laufzeitunterschiede unempfindlichen Schaltung, wobei ein Flip-Flop durch zwei Latches ausgetauscht wird.
-
Konventionelle Bauelemente, etwa Mikroprozessoren und Grafikprozessoren, beruhen typischerweise auf flankengesteuerten Flipflops für die Pipeline-Verarbeitung von Datenpfaden und zur Einrichtung einer sequenziellen Logik. Wenn die Logik zwischen zwei flankengesteuerten Flipflops eine geringe Verzögerung besitzt, insbesondere, wenn die Verzögerung sich der Haltezeit annähert, die für einen korrekten Betrieb erforderlich ist, wird von Timing-Werkzeugen zusätzliche Schaltung in den Pfad eingefügt, um die Verletzung der Haltezeit zu beheben. Für alle anderen Zwecke als zur Sicherstellung, dass die Verletzungen der Haltezeit behoben sind, ist die Einfügung einer zusätzlichen Schaltung unerwünscht, da die zusätzliche Schaltung Platz auf dem Chip einnimmt und während des Betriebs Leistung verbraucht.
-
Es besteht daher einen Bedarf zur Reduzierung von Verletzungen der Haltezeit und/oder zur Lösung anderer Probleme, die mit dem Stand der Technik einhergehen.
-
ÜBERBLICK
-
Es sind ein System, ein Verfahren und ein Computerprogrammprodukt zur Umwandlung eines Schaltungsentwurf von einer flankengesteuerte Taktung auf eine nicht-überlappende Zwei-Phasen-Taktung offenbart. Das Verfahren umfasst die Schritte: Ersetzen einer flankengesteuerten Flipflop-Schaltung, die mit einer kombinatorischen Logikschaltung verbunden ist, mit einem Paar an Signalspeichern (latches), die eine erste Signalspeicherschaltung (latch circuit) und eine zweite Signalspeicherschaltung enthalten, und Ermitteln eines Mittelpunkts (midpoint) der kombinatorischen Logikschaltung auf der Grundlage einer Timinginformation. Die zweite Signalspeicherschaltung wird bis zu einem Mittelpunkt der kombinatorischen Logikschaltung ausgebreitet (propagating) und die nicht-überlappenden Zwei-Phasen-Taktsignale werden dem Paar aus Signalspeichern zugeleitet.
-
Figurenliste
-
- 1A zeigt einen Pfad, der als Pipeline betrieben wird unter Verwendung einer flankengesteuerten Taktung mit einer aufgeteilten kombinatorischen Logik gemäß einer Ausführungsform;
- 1B zeigt den Pfad, der in 1A gezeigt ist und umgewandelt ist, um eine nicht-überlappende Zwei-Phasen-Taktung gemäß einer Ausführungsform zu verwenden;
- 1C zeigt den in 1B gezeigten Pfad mit der aufgeteilten kombinatorischen Logikschaltung, die zwischen Signalspeichern verteilt ist, gemäß einer Ausführungsform;
- 2 zeigt ein Flussdiagramm eines Verfahrens zur Umwandlung eines Schaltungsentwurfs von einer flankengesteuerten Taktung zu einer nicht-überlappenden Zwei-Phasen-Taktung gemäß einer Ausführungsform;
- 3A zeigt eine nicht-wiederherstellende statische Signalspeicherschaltung gemäß einer Ausführungsform;
- 3B zeigt nicht-wiederherstellende statische Signalspeicher, die mit einer wiederherstellenden Logik gemäß einer Ausführungsform verbunden sind;
- 3C zeigt ein Timingdiagramm der nicht-überlappenden Zwei-Phasen-Taktsignale gemäß einer Ausführungsform;
- 3D zeigt eine Pulserzeugungsschaltung gemäß einer Ausführungsform;
- 4A zeigt einen Pfad, der umgewandelt ist, um eine nicht-überlappende Zwei-Phasen-Taktung mit Abtastung gemäß einer Ausführungsform zu verwenden;
- 4B zeigt einen nicht-wiederherstellenden Haupt-Signalspeicher bzw. Master-Signalspeicher mit Abtastschaltung gemäß einer Ausführungsform;
- 5A zeigt einen Pfad, der sowohl die nicht-überlappende Zwei-Phasen-Taktung als auch eine flankengesteuerte Taktung gemäß einer Ausführungsform verwendet;
- 5B ist ein Flussdiagramm eines Verfahrens zur Umwandlung eines Schaltungsentwurf von einer flankengesteuerten Taktung in eine nicht-überlappende Zwei-Phasen-Taktung gemäß einer Ausführungsform;
- 6A ist eine Blockansicht, die einen Prozessor/Chip zeigt, der eine Gestaltung enthält, die umgewandelt ist, um eine nicht-überlappende Zwei-Phasen-Taktung gemäß einer Ausführungsform zu verwenden; und
- 6B zeigt ein anschauliches System, in welchem die diversen Architekturen und/oder Funktionen der diversen vorhergehenden Ausführungsformen realisiert werden können.
-
DETAILLIERTE BESCHREIBUNG
-
Das Zeitverhalten eines Schaltungsentwurfs bzw. einer Schaltungsgestaltung unter Anwendung flankengesteuerter Flipflops kann verbessert werden, indem der Schaltungsentwurf umgewandelt wird, so dass Signalspeicher verwendet werden, die unter Anwendung von nicht-überlappenden Zwei-Phasen-Taktsignalen getaktet sind. Es werden Haltezeitverletzungen vermieden, da die Zwei-Phasen-Taktung nicht-überlappende Zwei-Phasen-Taktsignale verwendet, um separat einen Haupt-Signalspeicher und einen Neben-Signalspeicher zu aktivieren. Es besteht keine Notwendigkeit, eine zusätzliche Schaltung in Pfade einzufügen, um Haltezeitverletzungen zu beheben. Ferner macht die Zeitausleihe zwischen Phasen die Schaltung weniger empfindlich für Takt-Jitter und Versatz, wodurch die Zeitsteuerungstoleranz weiter verbessert wird.
-
1A zeigt einen als Pipeline betriebenen Pfad 100 mit einem Flipflop 105 unter Verwendung einer flankengesteuerten Taktung mit einer kombinatorischen Logik, die aufgeteilt ist, gemäß einer Ausführungsform. Die kombinatorische Logik ist in zwei Teile aufgeteilt, in Logikschaltungen 110 und 115 mit ungefähr gleicher Verzögerung. Die kombinatorische Logik ist an einem Mittelpunkt aufgeteilt, der ein Knoten ist, an welchem eine Ausbreitungsverzögerung eines Signals aus dem Ausgang des Flipflops 105 durch die Logikschaltung 110 ungefähr gleich der Ausbreitungsverzögerung des Signals durch die Logikschaltung 115 zu dem Eingang des Flipflops 105 ist. In einer Ausführungsform wird der Mittelpunkt ermittelt unter Anwendung eines konventionellen Timing-Analysewerkzeugs, das Timinginformation für den als Pipeline betriebenen Pfad 100 erzeugt.
-
1B zeigt den als Pipeline betriebenen Pfad 120, der erzeugt wird, indem der als Pipeline betriebene Pfad 100, der in 1A gezeigt ist, umgewandelt wird, um eine nicht-überlappende Zwei-Phasen-Taktung gemäß einer Ausführungsform zu verwenden. Das Flipflop 105 ist durch ein Paar aus Signalspeichern 135A und 135B ersetzt. Der Signalspeicher 135A wird direkt von clkN angesteuert, und der Signalspeicher 135B wird von Clk_pulse angesteuert, d.h. einem nicht-überlappenden Zwei-Phasen-Taktpuls, der von einem Pulsgenerator 108 ausgegeben wird. Für jeden Puls von clkN erzeugt der Pulsgenerator 108 eine schmälere Version von clk (d.h. invertiertes clkN), die während der Zeitdauer innerhalb der Taktperiode zentriert wird, wenn clkN auf tiefem Pegel liegt. Obwohl der als Pipeline betriebene Pfad 120 ein umgewandelter als Pipeline betriebener Pfad ist, der korrekt funktioniert, wie der als Pipeline betriebene Pfad 100, hat der als Pipeline betriebene Pfad 120 eine große Einfügeverzögerung aufgrund der Verzögerung, die der Pulsgenerator 108 einführt, um sicherzustellen, dass die Pulse von clkN und Clk_pulse aufgrund der Takt-Versetzung nicht überlappen.
-
1C zeigt einen umgewandelten als Pipeline betriebenen Pfad 130, der erzeugt wird, indem der als Pipeline betriebene Pfad 120, der in 1B gezeigt ist, umgewandelt wird, so dass der zweite Signalspeicher des Signalspeicherpaars zu einem Mittelpunkt der aufgeteilten kombinatorischen Logik gemäß einer Ausführungsform verschoben wird. Der Signalspeicher 135A kann als ein Haupt-Signalspeicher ausgebildet sein, der eine Abtastschaltung enthält, und der Signalspeicher 135B kann als ein Neben-Signalspeicher ausgebildet sein. Der Signalspeicher 135B ist auf eine Position zwischen der Logikschaltung 110 und der Logikschaltung 115 verschoben. Im Vergleich zu dem als Pipeline betriebenen Pfad 100 hat der umgewandelte als Pipeline betriebene Pfad 130 eine kleinere Einfügeverzögerung, ist größtenteils unempfindlich für eine Takt-Versetzung und für Jitter, und kann Zeitausleihtechniken realisieren, um Randbedingungen der Zeitsteuerung zu erfüllen. Die Zeitausleihe erlaubt es der Logikschaltung 115, eine größere Verzögerung im Vergleich zu der Logikschaltung 110 oder umgekehrt zu haben, so dass Zeit über den Signalspeicher 135B „ausgeliehen“ wird, während die kombinierte Verzögerung der Logikschaltung 110 und 115 die Randbedingungen der Zeitsteuerung für einen Taktzyklus erfüllt. Da die Verzögerung der kombinatorischen Logik von einem Eingang zu unterschiedlichen Ausgängen variiert, kann die Verzögerung des Einganges des Signalspeichers 135B sich von der Verzögerung am Eingang des Signalspeichers 135A unterscheiden, nachdem eine Signalausbreitung am Signalspeicher 135A stattgefunden hat.
-
2 zeigt ein Flussdiagramm 200 eines Verfahrens zur Umwandlung eines Schaltungsentwurfs von einer flankengesteuerten Taktung zu einer nicht-überlappenden Zwei-Phasen-Taktung gemäß einer Ausführungsform. Im Schritt 210 wird eine flankengesteuerte Flipflop-Schaltung, die mit einer kombinatorischen Logikschaltung verbunden ist, durch ein Paar an Signalspeicher (d.h. eine Haupt-Signalspeicherschaltung und eine Neben-Signalspeicherschaltung) ersetzt. Im Schritt 215 wird ein Mittelpunkt der kombinatorischen Logikschaltung auf der Grundlage einer Timinginformation ermittelt. Im Schritt 220 wird die zweite Signalspeicherschaltung zu einem Mittelpunkt der kombinatorischen Logikschaltung ausgebreitet. Im Schritt 225 werden nicht-überlappende Zwei-Phasen-Taktsignale dem Paar an Signalspeichern zugeleitet.
-
Es wird nun anschaulichere Information im Hinblick auf diverse optionale Architekturen und Eigenschaften angegeben, mit der die vorhergehende Technik realisiert werden kann oder auch nicht, wobei dies von den Bedürfnissen des Anwenders abhängt. Es ist jedoch dringend zu beachten, dass die folgende Information nur für anschauliche Zwecke angegeben ist und in keiner Weise als einschränkend erachtet werden sollte. Jedes der folgenden Merkmale kann optional mit oder ohne Ausschluss anderer beschriebener Merkmale integriert werden.
-
Die Verbreitung von Signalspeichern entlang von Pfaden in kombinatorischen Logikschaltungen kann unter Anwendung der Werkzeuge erreicht werden, die zur Ausführung einer automatischen Timingsteuerung verwendet werden. In einer Ausführungsform kann ein Schaltungsentwurf, in welchem eine flankengesteuerte Taktung verwendet ist, umgewandelt werden, um eine nicht-überlappende Zwei-Phasen-Taktung zu verwenden, indem doppelt so viele Pipeline-Stufen eingefügt werden, als im Schaltungsentwurf benötigt werden. Es können Werkzeuge zur automatischen Neu-Timingsteuerung verwendet werden, um die flankengesteuerten Flipflops gleichmäßig über die Ausbreitungsverzögerung der Logikschaltung zu verteilen, und um dann die flankengesteuerten Flipflops durch Signalspeicherpaare zu ersetzen. Die nicht-überlappenden Zwei-Phasen-Taktsignale werden dann den Signalspeicherpaaren zugeleitet, wobei ein erster Signalspeicher des Signalspeicherpaars das Taktsignal clkN und ein zweiter Signalspeicher jedes Signalspeicherpaars das Taktsignal clk_pulse empfängt.
-
Wenn die nicht-überlappende Zwei-Phasen-Taktung anstelle einer flankengesteuerten Taktung verwendet wird, sind die Wirkungen der Taktsignal-Versetzung und des Takt-Jitters reduziert. Die Einfügeverzögerung wird ebenfalls minimiert, wenn jedes Flipflop mit einer großen Einfügeverzögerung ts+tdcq durch ein Paar aus nicht-wiederherstellenden Signalspeichern ersetzt wird, die eine kleinere Ausbreitungsverzögerung besitzen, wobei ts die Einrichtzeit und tdcq die Verzögerung von einer Taktflanke bis zu einem Übergang des Ausgangs Q ist.
-
Um einige geringe Einfügeverzögerung zu erhalten, sollte die Ausbreitungsverzögerung des Signalspeichers möglichst klein gemacht werden. Eine Vorgehensweise für eine Signalspeicherschaltung mit geringer Verzögerung besteht darin, die Logikstufe vorteilhaft zu nutzen, die auf den Signalspeicher folgt (d.h. die Logikschaltung 110 oder die Logikschaltung 115), um eine wiederherstellende Verstärkung bereitzustellen. Daher darf der Signalspeicher selbst nicht-wiederherstellend sein. Jedoch sollte ein nicht-wiederherstellender statischer Signalspeicher nahe an der Logikstufe, die auf den nicht-wiederherstellenden statischen Signalspeicher folgt, angeordnet werden, um möglicherweise die Probleme und Störungen durch Übersprechen zu vermeiden, die bewirken können, dass der Wert eines Speicherknotens in dem Signalspeicher umgeschaltet wird. Anders ausgedrückt, die Länge einer Leitung, welche den Ausgangs des nicht-wiederherstellenden statischen Signalspeicher koppelt, sollte begrenzt sein, um sicherzustellen, dass die dem nicht-wiederherstellenden statischen Signalspeicher folgende Logikstufe nahe an dem nicht-wiederherstellenden statischen Signalspeicher liegt.
-
3A zeigt eine nicht-wiederherstellende (non-restoring) statische Signalspeicherschaltung 300 gemäß einer Ausführungsform. Die nicht-wiederherstellende statische Signalspeicherschaltung 300 kann verwendet werden, um den Haupt-Signalspeicher 135 und/oder den Neben-Signalspeicher 140, die in 1C gezeigt sind, zu realisieren. Die nicht-wiederherstellende statische Signalspeicherschaltung umfasst ein CMOS-Übertragungsgatter 305 und eine Halte-Subschaltung. Wenn der Takteingang (Clk) auf hohem Pegel liegt, überträgt das Übertragungsgatter 305 den Eingang (D) zu dem Ausgang (Q), wodurch die nicht-wiederherstellende statische Signalspeicherschaltung 300 transparent wird. Wenn der Takteingang auf tiefem Pegel liegt, ist das Übertragungsgatter zu und der Ausgang wird zu dem Speicherknoten der nicht-wiederherstellenden statischen Signalspeicherschaltung 300. Wenn der Takteingang auf tiefem Pegel liegt, ist die Halte-Subschaltung aktiv und stellt jegliche verlorene Ladung in dem Speicherknoten aufgrund von Leckströmen oder Rauschen wieder her, wodurch die nicht-wiederherstellende statische Signalspeicherschaltung 300 statisch wird.
-
Die nicht-wiederherstellende statische Signalspeicherschaltung 300 hat eine minimale Einfügeverzögerung. Unter Anwendung eines Elmore-Verzögerungsmodells beträgt die Ausbreitungsverzögerung der nicht-wiederherstellenden statischen Signalspeicherschaltung 300 genau eine RC-Verzögerung, wobei R der Widerstand des Übertragungsgatters 305 und C die Kapazität der Halte-Subschaltung und des statischen Gatters ist, das auf die nicht-wiederherstellende statische Signalspeicherschaltung 300 folgt. Wenn die nicht-wiederherstellende statische Signalspeicherschaltung 300 nahe an dem statischen Gatter auf dem Siliziumschip liegt, ist die Kapazität der Leitung von dem Gatter, das den Eingang ansteuert, von dem Widerstand des Übertragungsgatters 305 getrennt.
-
Wie hierin verwendet ist, sind Transistoren direkt mit einem Signal verbunden, wenn das Signal dem Transistor ohne dazwischen liegende Logik zugeleitet ist, und die Transistoren sind indirekt mit einem Signal verbunden, wenn das Signal dem Transistor über eine dazwischenliegende Logik zugeleitet ist. Eine dazwischen liegende Logik kann eine beliebige Art einer diskreten Logik sein. Beispielsweise kann ein Transistor mit Masse oder mit einer Versorgungsspannung indirekt über zusätzliche Schaltungselemente, die eine Stromquelle enthalten, verbunden sein.
-
3B zeigt einen Schaltungsentwurf für eine Signalwiederherstellung 330, in welchem nicht-wiederherstellende statische Signalspeicherschaltungen 300 mit der Wiederherstellungslogik gemäß einer Ausführungsform verbunden sind. Um Störungen des Speicherknotens in den nicht-wiederherstellenden statischen Signalspeicherschaltungen 300 zu minimieren, sollte der Ausgang der nicht-wiederherstellenden statischen Signalspeicherschaltungen 300 nur mit den Eingängen statischer Gatter, beispielsweise Inverter, Puffer, NICHT-UND bzw. NAND, NICHT-ODER bzw. NOR, ODER bzw. OR, UND bzw. AND, usw. verbunden werden. Ein statisches Gatter erzeugt ein oder mehrere Ausgangssignale, die auf VDD oder VSS herauf oder herabgezogen werden (mit Ausnahme während einer Übergangsphase beim Schalten). Der Ausgang der nicht-wiederherstellenden statischen Signalspeicherschaltungen 300 sollte nicht direkt mit einem Übertragungsgatter (komplementär oder nicht) verbunden werden. Wenn das Eingangssignal D beeinträchtigt wird (d.h., nicht auf einem hohen Spannungspegel oder einem niedrigen Spannungspegel liegt), wird der Signalpegel, der zu dem Ausgangssignal Q übertragen wird, ebenfalls beeinträchtigt und sollte in eine wiederherstellende Logik eingespeist werden. Wie in 3B gezeigt ist, steuern drei nicht-wiederherstellende statische Signalspeicherschaltungen 300 die Eingänge eines UND-ODER-INVERTER-Gatters mit drei Eingängen an. Die nicht-wiederherstellenden statischen Signalspeicherschaltungen 300 steuern jeweils nur Eingänge von statischen Gattern (d.h. wiederherstellenden Logik) an.
-
Konventionellerweise wird ein Schaltungsentwurf in einer Hardware-Entwurfssprache dargestellt und der Code, der den Schaltungsentwurf repräsentiert, wird synthetisiert, um das physikalische Layout zu erzeugen. Das physikalische Layout, das die Zellen (beispielsweise die nicht-wiederherstellenden statischen Signalspeicherschaltungen 300, einzelne Logikgatter kommen usw.) repräsentiert, wird getrennt instantiiert und dann einer Signalführung unterzogen, um Signale zwischen den diversen Komponenten anzuschließen. In einer Ausführungsform der den Hard-Makros, die das physikalische Schaltungslayout umfassen, aufgebaut, die die nicht-wiederherstellende statische Signalspeicherschaltung 300 mit jeder Gatterart kombinieren, die mit dem Ausgang einer nicht-wiederherstellenden statischen Signalspeicherschaltung 300 verbunden werden kann, um sicherzustellen, dass jede nicht-wiederherstellende statische Signalspeicherschaltung 300 und das wiederherstellende Gatter nahe an der nicht-wiederherstellenden statischen Signalspeicherschaltung 300 (d.h., dass die Länge der Leiterverbindung zwischen jeder nicht-wiederherstellenden statischen Signalspeicherschaltung 300 und dem wiederherstellenden Gatter beschränkt ist) liegt. Die Gesamtfläche des Schaltungslayouts kann kleiner sein, wenn die Hard-Makros verwendet werden. In einer weiteren Ausführungsform sind Schaltungsanordnungswerkzeuge ausgebildet, eine sehr hohe Priorität darauf zu verwenden, dass die Verdrahtung zwischen den nicht-wiederherstellenden statischen Signalspeicherschaltungen 300 und wiederherstellenden Gattern kurz sind, und es wird eine der Anordnung nachgeordnete Prüfung ausgeführt, um sicherzustellen, dass Leitungen (wire) eine maximale Länge nicht überschreiten.
-
3C zeigt ein Timingdiagramm 350 der nicht-überlappenden Zwei-Phasen-Taktsignale ClkN und Clk_pulse gemäß einer Ausführungsform. Eine erste nicht-wiederherstellende statische Signalspeicherschaltung 300 eines Signalspeicherpaars (d.h. der Haupt-Signalspeicher) wird von clkN (dem invertierten Taktsignal) angesteuert. Eine zweite nicht-wiederherstellende statische Signalspeicherschaltung 300 des Signalspeicherpaars (d.h., der Neben-Signalspeicher) wird von Clk_pulse angesteuert, das heißt, dem Ausgang des Pulsgenerators 108. Clk_pulse ist eine geringfügig schmälere Version des Taktsignals. Anders ausgedrückt, Clk _ pulse ist wesentlich schmäler als die Hälfte eines Taktzyklus. Die nicht-überlappenden Perioden t1 und t2 werden so festgelegt, dass eine Versetzung und Jitter in dem Taktverteilungsnetz toleriert werden.
-
3D zeigt eine Pulserzeugungsschaltung 108 gemäß einer Ausführungsform. Das Signal Clk_pulse kann von einem einzelnen NICHT-ODER-Gatter bzw. NOR-Gatter aus einer vorauseilenden und einer verzögerten Version von clkN erzeugt werden, wie in 3D gezeigt ist. Die vorauseilende und die verzögerte Version von clkN kann ohne Aufwand erzeugt werden, indem eine Taktsignal-Baum-Erzeugung mit produktiver Verschiebung ausgeführt wird.
-
Das nicht-überlappende Zwei-Phasen-Taktschema ist kompatibel zu der konventionellen Taktbaum-Synthese und der Taktausblendung. Die Taktbaum-Synthese kann eingesetzt werden, um die einzelne Taktphase clkN zu verteilen. Das Taktsignal für die Neben-Phase bzw. Slave-Phase Clk_pulse wird dann von einem NOR-Gatter-Pulsgenerator erzeugt. Da die zeitliche Steuerung der Pulserzeugung nicht kritisch ist, können signifikante Beträge für Schwankungen in der Versetzung und der Verzögerung toleriert werden. Eine Taktausblendung wird durchgeführt, indem clkN auf tiefen Pegel gesetzt wird. Das Setzen auf tiefen Pegel von clkN bewirkt, dass Clk _ pulse auf hohen Pegel geht, wenn das Taktsignal angehalten wird.
-
4A zeigt umgewandelte als Pipeline betriebene Pfade mit einer Abtastschaltung 400, die eine nicht-überlappende Zwei-Phasen-Taktung gemäß einer Ausführungsform verwendet. Ein Schaltungsentwurf unter Anwendung von flankengesteuerten Flipflops zur Implementierung eines Abtastpfads kann umgewandelt werden, um eine nicht-überlappende Zwei-Phasen-Taktung anzuwenden, indem ein Multiplexer vor jeder nicht-wiederherstellenden statischen Haupt-Signalspeicherschaltung 300, die als Haupt-Signalspeicher 135(1) und 135(2) gezeigt sind, eingefügt wird und indem ein redundanter Neben-Signalspeicher, der als die nicht-wiederherstellenden statischen Signalspeicherschaltungen 405(1) und 405(2) gezeigt sind, entlang dem Abtastpfad hinzugefügt werden. Die nicht-wiederherstellenden statischen Signalspeicherschaltungen 405(1) und 405(2) werden von Clk_pulse getaktet, und die nicht-wiederherstellenden statischen Signalspeicherschaltung 405(1) empfängt das Abtasteingangssignal SIn. Wenn der Abtastpfad aktiviert ist, wählt der erste Multiplexer den Ausgang der nicht-wiederherstellenden statischen Signalspeicherschaltung 405(1) als Eingang für den Haupt-Signalspeicher 135(1) aus, und der zweite Multiplexer wählt den Ausgang der nicht-wiederherstellenden statischen Signalspeicherschaltung 405(2) als Eingang für den Haupt-Signalspeicher 135(2) aus, um den Abtastpfad zu erzeugen.
-
4B zeigt einen nicht-wiederherstellenden Haupt-Signalspeicher mit Abtastschaltung 420 gemäß einer Ausführungsform. Im Vergleich zu den Haupt-Signalspeicherzellenschaltungen, die in 4A gezeigt sind, ist der Multiplexer mit dem Übertragungsgattereingang der nicht-wiederherstellenden statischen Signalspeicherschaltung kombiniert, die das Abtasteingangssignal (Sin) empfängt, so dass die Einfügeverzögerung nicht erhöht wird, wenn eine Abtastung einem Schaltungsentwurf hinzugefügt wird. Der nicht-wiederherstellende Haupt-Signalspeicher mit Abtastschaltung 420 umfasst einen wiederherstellenden Inverter 450 für den Abtastpfad, der das Abtastausgangssignal (Sout) ausgibt. Während des normalen Betriebs sind die normalen Takt-Signale (clkN, clk) im Umlauf und die Abtasttaktsignale (sclk, sclkN) werden in einem inaktiven Zustand gehalten (sclk = 0, sclkN = 1). Während des Abtastvorgangs werden die normalen Taktsignale (clkN, clk) in einem inaktiven Zustand gehalten (clk = 0, clkN = 1) und die Abtasttaktsignale sind im Umlauf. Ein Wiederherstellungstaktsignal (rclk, rclkN) ist in beiden Zuständen im Umlauf, um die Halte-Subschaltung zu aktivieren und um Q und Sout zu erzeugen.
-
Logikblöcke unter Verwendung der nicht-überlappenden Zwei-Phasen-Taktung können frei mit Logik kombiniert werden, die unter Verwendung von flankengesteuerten Flipflops als Pipeline betrieben wird. Neu entworfene Schaltungsbereiche, die die nicht-überlappende Zwei-Phasen-Taktung verwenden, können mit bestehenden Schaltungsblöcken, die eine flankengesteuerte Taktung verwenden, kooperieren. Die nicht-überlappende Zwei-Phasen-Taktung wird gegebenenfalls nur auf kritische Teile eines Schaltungsentwurfs angewendet, so dass ein Ausgleich des Entwurfs im Hinblick auf die Verwendung einer flankengesteuerten Taktung bleibt.
-
5A zeigt einen gemischten als Pipeline betriebenen Pfad 500, in welchem sowohl eine nicht-überlappende Zwei-Phasen-Taktung als auch eine flankengesteuerte Taktung gemäß einer Ausführungsform verwendet sind. Der Haupt-Signalspeicher 535 und der Neben-Signalspeicher 540 bilden ein Signalspeicherpaar, das ausgebildet ist, nicht-überlappende Zwei-Phasen-Taktsignale zu verwenden, und das Flipflop 505 ist ein flankengesteuertes Flipflop. Der Haupt-Signalspeicher 535 kann als der nicht-wiederherstellende statische Signalspeicher 300 oder der nicht-wiederherstellende Haupt-Signalspeicher mit Abtastung 420 realisiert werden. Der Neben-Signalspeicher 540 kann als der nicht-wiederherstellende statische Signalspeicher 300 realisiert werden. Solange das Intervall t1 größer als die Haltezeit des flankengesteuerten Flipflops 505 ist, ist sichergestellt, dass der gemischte als Pipeline betriebene Pfad 500 Haltezeit-sicher ist - selbst wenn die Logikschaltung 525 eine Verzögerung von Null hat. Der gemischte als Pipeline betriebene Pfad 500 erlaubt eine Zeitausleihe in einer Richtung durch die Logikschaltung 520 und die Logikschaltung 525, die von der nicht-wiederherstellenden statischen Signalspeicherschaltung (beispielsweise der Haupt-Signalspeicher 535 und der Neben-Signalspeicher 540) angesteuert werden. Die Logikschaltung 520 kann bis zu einem halben Zyklus an Schlupf bzw. Stillstand, der von der Logikschaltung 510 und 515 verbleibt, aufbrauchen. Die Logikschaltung 525 kann bis zu einem Halb-Zyklus an Schlupf bzw. Stillstand aufbrauchen, der von der Logikschaltung 520 verbleibt. Zeit kann über den Haupt-Signalspeicher 535 und über den Neben-Signalspeicher 540 „ausgeliehen“ werden.
-
5B zeigt ein Flussdiagramm 540 eines Verfahrens zur Umwandlung eines Schaltungsentwurfs von einer flankengesteuerten Taktung zu einer nicht-überlappenden Zwei-Phasen-Taktung gemäß einer Ausführungsform. Das Verfahren kann von einem Computerprogramm ausgeführt werden. Im Schritt 210 wird eine flankengesteuerte Flipflop-Schaltung, die mit einer kombinatorischen Logikschaltung verbunden ist, durch ein Paar aus Signalspeichern (d.h., eine Haupt-Signalspeicherschaltung und eine Neben-Signalspeicherschaltung) ersetzt. In einer Ausführungsform operiert ein Computerprogramm an einem HDL-Code, der den Schaltungsentwurf repräsentiert, um die flankengesteuerte Flipflop-Schaltung durch ein Paar aus Signalspeichern zu ersetzen. Im Schritt 215 wird ein Mittelpunkt der kombinatorischen Logikschaltung auf der Grundlage eines Timings ermittelt. In einer Ausführungsform werden Zeitanalysewerkzeuge ausgeführt, um die Timinginformationen für einen Schaltungsentwurf zu erzeugen. Im Schritt 545 wird die kombinatorische Schaltung in einen ersten Logikblock und einen zweiten Logikblock aufgeteilt.
-
Im Schritt 550 wird ein Ausgang der ersten Signalspeicherschaltung direkt mit einem Eingang des ersten Logikblocks verbunden. Im Schritt 555 ermittelt das Verfahren, ob der Eingang des ersten Logikblocks eine wiederherstellende Logik ist, und wenn dies nicht der Fall ist, dann wird im Schritt 560 eine wiederherstellende Subschaltung (beispielsweise Inverter, Puffer, Logikgatter, usw.) am Ausgang der ersten Signalspeicherschaltung eingefügt, bevor zum Schritt 565 weitergegangen wird. Im Schritt 565 wird ein Ausgang des ersten Logikblocks direkt mit einem Eingang der zweiten Signalspeicherschaltung verbunden. Im Schritt 570 wird ein Ausgang der zweiten Signalspeicherschaltung direkt mit einem Eingang des zweiten Logikblocks verbunden. Im Schritt 575 ermittelt das Verfahren, ob der Eingang des zweiten Logikblocks eine wiederherstellende Logik ist, und wenn dies nicht der Fall ist, dann wird im Schritt 580 eine wiederherstellende Subschaltung am Ausgang der zweiten Signalspeicherschaltung eingefügt, bevor das Verfahren endet.
-
6A ist eine Blockansicht, die einen Prozessor/Chip 650 zeigt, in welchem ein Entwurf bzw. eine Gestaltung enthalten ist, die umgewandelt ist, um eine nicht-überlappende Zwei-Phasen-Taktung gemäß einer Ausführungsform zu verwenden. I/O-Schaltungen 655 können Anschlussflächen und andere I/O-spezifische Schaltungen aufweisen, um Signale an andere Einrichtungen in einem System zu senden oder von diesen zu empfangen. Ausgangssignale werden von den I/O-Schaltungen 655 auf der Grundlage von Signalen erzeugt, die durch die I/O-Schaltungen 655 empfangen werden. Die durch die I/O-Schaltungen 655 empfangenen Eingangssignale werden der ersten nicht-wiederherstellenden Haupt-Signalspeicherschaltung mit Abtastung 420(1) eingespeist. Signale, die von den I/O-Schaltungen 655 erzeugt werden, werden an den nicht-wiederherstellenden statischen Signalspeicher 300(1) ausgegeben. Die kombinatorischen Schaltungen 620 empfangen das von dem nicht-wiederherstellenden statischen Signalspeicher 300(1) erzeugte Ausgangssignal und erzeugen ein kombinatorisches Ausgangssignal, das in der zweiten nicht-wiederherstellenden Haupt-Signalspeicherschaltung mit Abtastung 420(2) empfangen wird. Die zweite nicht-wiederherstellende Haupt-Signalspeicherschaltung mit Abtastung 420(2) speichert das kombinatorische Ausgangssignal und erzeugt ein Ausgangssignal, das den kombinatorischen Schaltungen 625 eingespeist wird. Das Ausgangssignal der kombinatorischen Schaltungen 625 wird in dem zweiten nicht-wiederherstellenden statischen Signalspeicher 300 (2) empfangen und gespeichert. Der zweite nicht-wiederherstellende statische Signalspeicher 300(2) erzeugt ein Ausgangssignal, das den I/O-Schaltungen 655 zugeleitet wird.
-
6B zeigt ein anschauliches System 600, in welchem die diversen Architekturen und/oder Funktionen der diversen vorhergehenden Ausführungsformen realisiert werden können. Wie gezeigt, ist ein System 600 bereitgestellt, das mindestens einen zentralen Prozessor 601 aufweist, der mit einem Kommunikationsbus 602 verbunden ist. Der Kommunikationsbus 602 kann unter Anwendung eines beliebigen geeigneten Protokolls eingerichtet werden, etwa durch PCI (periphere Komponenten-Verbindung), PCI-Express, AGP (beschleunigter Graphikport), HyperTransport oder durch ein oder mehrere andere Bus-Protokolle oder Punkt-Zu-Punkt-Kommunikationsprotokolle. Das System 600 kann ferner einen Hauptspeicher 604 aufweisen. Steuerlogik (Software) und Daten sind in dem Hauptspeicher 604 gespeichert, der die Form eines Speichers mit wahlfreiem Zugriff (RAM) aufweisen kann.
-
Das System 600 umfasst ferner Eingabegeräte 612, einen Grafikprozessor 606 und eine Anzeige 608, d.h. eine konventionelle CRT (Kathodenstrahlröhre), eine LCD (Flüssigkristallanzeige), eine LED (lichtemittierende Diode), eine Plasmaanzeige oder dergleichen. Eine Anwendereingabe kann über die Eingabegeräte 612, beispielsweise Tastatur, Maus, berührungsempfindliche Auflage, Mikrofon und dergleichen, empfangen werden. In einer Ausführungsform kann der Grafikprozessor 606 mehrere Schattierungs-Module, ein Rastermodul, usw. aufweisen. Jedes der vorhergehenden Module kann in einer einzelnen Halbleiterplattform angeordnet sein, so dass eine grafische Verarbeitungseinheit (GPU) gebildet ist.
-
In der vorliegenden Beschreibung kann eine einzelne Halbleiterplattform eine einzelne alleinstehende halbleiterbasierte integrierte Schaltung oder einen Chip bezeichnen. Es sollte beachtet werden, dass der Begriff einzelne Halbleiterplattform auch Multi-Chip-Module mit vergrößerter Verbindungsstruktur bezeichnen kann, die einen chipinternen Betrieb simulieren, und die eine wesentliche Verbesserung gegenüber der Verwendung einer Realisierung mit konventioneller zentraler Recheneinheit (CPU) und einem Bus darstellen. Selbstverständlich können die diversen Module auch separat oder in diversen Kombinationen von Halbleiterplattformen entsprechend den Bedürfnissen des Anwenders angeordnet sein. Der nicht-wiederherstellende statische Signalspeicher 300 und/oder die nicht-wiederherstellende Haupt-Signalspeicher-mit-Abtastung-Schaltung 420 können in einer oder mehreren der folgenden Komponenten integriert sein: der zentrale Prozessor 601, der Hauptspeicher 604, ein sekundärer Speicher 610, die Eingabegeräte 612, der Grafikprozessor 606, die Anzeige 608 und der Bus 602.
-
Das System 600 kann einen sekundären Speicher 610 umfassen. Der sekundäre Speicher 610 umfasst beispielsweise eine Festplatte und/oder eine entfernbare Speicherplatte, die ein Diskettenlaufwerk, ein Magnetbandlaufwerk, ein Kompaktdisketten-Laufwerk, ein Laufwerk für eine digitale Vielseitigkeitsdiskette (DVD), ein Aufzeichnungsgerät, einen Flash-Speicher mit universellem seriellen Bus (USB) repräsentieren kann. Die entfernbare Speichereinrichtung liest und/oder schreibt aus bzw. in eine entfernbare Speichereinheit in gut bekannter Weise. Computerprogramme oder Computer-Steuerlogikalgorithmen können in dem Hauptspeicher 604 und/oder in dem sekundären Speicher 610 gespeichert sein. Derartige Computerprogramme, versetzen, wenn sie ausgeführt werden, das System 600 die Lage, diverse Funktionen auszuführen. Der Hauptspeicher 604, der Speicher 610 und/oder ein beliebiger anderer Speicher sind mögliche Beispiele für computerlesbare Medien.
-
In einer Ausführungsform können die Architektur und/oder Funktionen der diversen vorhergehenden Figuren im Zusammenhang mit dem zentralen Prozessor 601, dem Grafikprozessor 606, einer integrierten Schaltung (nicht gezeigt), die zumindest einen Teil der Fähigkeiten sowohl des zentralen Prozessors 601 als auch des Grafikprozessors 606 aufweist, mit einem Chipsatz (das heißt, einer Gruppe aus integrierten Schaltungen, die so gestaltet ist, dass sie als Einheit zur Ausführung zugehöriger Funktionen arbeiten und als solche verkauft wird, usw.) und/oder mit einer anderen integrierten Schaltung für diesen Zweck realisiert werden.
-
Ferner können die Architektur und/oder Funktionen der diversen vorhergehenden Figuren auch im Rahmen eines allgemeinen Computersystems, eines Systems aus Leiterplatten, eines Systems mit Spielekonsole, die für Unterhaltungszwecke gedacht ist, im Rahmen eines anwendungsspezifischen Systems und/oder im Rahmen eines anderen gewünschten Systems realisiert werden. Beispielsweise kann das System 600 die Form eines Tischrechners, eines mobilen Rechners, eines Dienstleister-Rechners, eines Arbeitplatzrechners, von Spielekonsolen, eines eingebetteten Systems und/oder einer beliebigen Art von Logik annehmen. Des weiteren kann das System 600 die Form diverser anderer Einrichtungen annehmen, wozu gehören, ohne Einschränkung, eine Einrichtung als persönlicher digitaler Assistent (PDA), eine Einrichtung als Mobiltelefon, eine Einrichtung als Fernsehgerät, usw.
-
Obwohl dies ferner nicht gezeigt ist, kann das System 600 mit einem Netzwerk (beispielsweise einem Telekommunikationsnetzwerk, einem Nahbereichsnetzwerk (LAN), einem drahtlosen Netzwerk, einem Weitbereichsnetzwerk (WAN), etwa das Internet, einem Gerät-zu-Gerät-Netzwerk, einem Kabelnetzwerk oder dergleichen) für Kommunikationszwecke verbunden sein.
-
Obwohl diverse Ausführungsformen zuvor beschrieben worden sind, sollte beachtet werden, dass diese nur als Beispiel und nicht als Einschränkung gedacht sind. Daher sind die Breite und der Schutzbereich einer bevorzugten Ausführungsform nicht durch eine der zuvor beschriebenen anschaulichen Ausführungsformen eingeschränkt, sondern diese sollten nur entsprechend den folgenden Patentansprüchen und ihren äquivalenten definiert sein.