-
Die
vorliegende Erfindung befasst sich mit einer Schaltung und einem
Verfahren zum Berechnen einer logischen Verknüpfung zweier Eingangsoperanden,
die insbesondere für
sicherheitsrelevante Anwendungen eingesetzt werden können.
-
Schaltungen
die zur Verarbeitung sicherheitsrelevanter Daten eingesetzt werden,
werden möglichst
so gestaltet, dass die zu verarbeitenden Daten vor Angreifern geschützt werden,
die versuchen durch eine Analyse der Schaltung an die sicherheitsrelevanten
Daten zu gelangen. Aufgrund von SPA/DPA-Angriffen (SPA/DPA; SPA/DPA = Simple
Power-Attack/Differential Power-Attack) ist es für Hochsicherheits-Anwendungen
notwendig, den Stromverbrauch einer integrierten Schaltung, unabhängig von
den prozessierten Daten zu gestalten.
-
Diese
Problematik kann durch eine dynamische Dual-Rail-Schaltungstechnik gelöst werden,
deren Entwurf, Charakterisierung und Verifikation allerdings zeitaufwendig
ist. Eine auf der dynamischen Dual-Rail-Schaltungstechnik basierende
Bibliothek ist aufgrund der, für
einen Vorladezustand zwischen den Datenzuständen, erforderlichen Precharge
Signale nicht synthetisierbar und für statische Timinganalysen
nicht geeignet.
-
Eine
statische Implementierung einer Schaltungsanordnung zur Verarbeitung
zweier Dual-Rail-Signale ist in der Patentschrift
DE 103 44 647 B3 beschrieben.
Die Dual-Rail-Signale weisen dabei zwischen gültigen Datenwerten Vorladesignale
mit Vorladewerten auf. Gültige
Datenwerte sind dadurch charakterisiert, dass auf beiden Einzelsignalen
des Dual-Rail-Signals jeweils zueinander invertierte logische Zustände herrschen.
Vorladewerte sind dadurch charakterisiert, dass auf den beiden Signalen
eines Dual-Rail-Signals gleiche logische Zustände herrschen. Gemäß der Patentschrift
werden die an den Eingängen
der Schaltungsanordnung anliegenden Vorladewerte auf einen Ausgang
der Schaltungsanordnung durchgereicht.
-
Dieses
Prinzip wird im folgenden am Beispiel einer UND-Funktion erläutert. 14a zeigt eine Wertetabelle für eine UND-Funktion.
Dabei sind A, B die Eingangssignale der Schaltungsanordnung und
Z der Ausgang der Schaltungsanordnung. 14b zeigt die Wertetabelle für eine Implementierung
einer Schaltung zur Verarbeitung von Dual-Rail-Signalen mit Prechargesignalen
gemäß dem Stand
der Technik. In einem Vorladezyklus, in 14b als Idle-Zustand bezeichnet, weisen
die Eingangssignale A, AN und B, BN jeweils gleiche logische Zustände, hier
logisch 0 auf. In diesem Fall werden die Ausgangssignale Z, ZN ebenfalls
auf Null gelegt. Liegen also an beiden Eingängen der Schaltungsanordnung
Vorladewerte an, so werden diese Vorladewerte auf den Ausgang durchgeschaltet.
-
Gemäß der in 14b gezeigten Wertetabelle
können
bei einem Übergang
von einem Berechnungszyklus mit gültigen Datenwerten in einen
Vorladezyklus oder bei einem Übergang
von einem Vorladezyklus in einen Berechnungszyklus Störimpulse
auftreten. Dies ist insbesondere dann der Fall, wenn beim Übergang vom
Berechnungszyklus in den Vorladezyklus an einem Eingangssignal bereits
der Vorladewert anliegt an dem anderen Eingangssignal jedoch noch
ein gültiger
Datenwert anliegt. In diesem Fall kann am Ausgang bereits ein Vorladewert
oder aber auch noch ein Datenwert ausgegeben werden. Es ist auch
nicht aus geschlossen, dass bei dem Übergang zwischenzeitlich mehrere
unterschiedliche Datenwerte am Ausgang ausgegeben werden, bevor
letztendlich Vorladewerte am Ausgang ausgegeben werden. Die gleiche
Problematik tritt beim Übergang
von Vorladezyklus auf den Berechnungszyklus auf. Liegt an einem
der Eingänge
bereits ein gültiger Datenwert
an, an dem anderen Eingang jedoch noch ein Vorladewert, so ist wiederum
offen, ob an dem Ausgang bereits ein gültiger Datenwert, wechselnde
Datenwerte oder noch ein Vorladewert anliegt. Diese Unsicherheiten
können
zu Störimpulsen
führen
und bieten einen Angriffspunkt für
neueste Angriffsszenarien bei denen durch eine höhere zeitliche Auflösung des
Stromverbrauchs einer Schaltung versucht wird, unterschiedliche
Schaltzeitpunkte zu erkennen und dann den Stromverlauf entsprechend
zu bewerten.
-
Die
US-2002/0101262 A1 befasst sich mit einer Schaltung zum Berechnen
eines Dual-Rail-Ergebnisoperanden aus einer logischen Verknüpfung zweier
Dual-Rail-Eingangsoperanden. Die Schaltung weist eine Reihe von
Transistorschaltungen auf, die so verschaltet sind, dass am Ausgang
ein "Haltewert" anliegt, sobald an
einem der Eingänge
ein "Haltewert" anliegt. Als "Haltewerte" werden Dual-Rail
Operanden mit gleichen logischen Werten beschrieben.
-
Es
ist die Aufgabe der vorliegenden Erfindung, eine Schaltung zum Berechnen
einer logischen Verknüpfung
von Eingangsoperanden zu schaffen, die eine sichere Verarbeitung
der Operanden ermöglicht.
-
Diese
Aufgabe wird durch eine Schaltung gemäß Anspruch 1 gelöst.
-
Die
vorliegende Erfindung schafft eine Schaltung zum Berechnen einer
logischen Verknüpfung
zweier Eingangsoperanden, mit:
einem ersten Eingang zum Empfangen
eines ersten Dual-Rail-Signals,
das in einem Berechnungszyklus Datenwerte des ersten Eingangs und
in einem Vorladezyklus Vorladewerte aufweist;
einem zweiten
Eingang zum Empfangen eines zweiten Dual-Rail-Signals, das in dem Berechnungszyklus
Datenwerte des zweiten Eingangs und in dem Vorladezyklus Vorladewerte
aufweist;
einen Ausgang zum Ausgeben eines dritten Dual-Rail-Signals,
das in dem Berechnungszyklus Ergebniswerte und in dem Vorladezyklus
Vorladewerte aufweist;
einer Logikschaltung zum Bestimmen der
Ergebniswerte gemäß der logischen
Verknüpfung
aus den Datenwerten des ersten Eingangs und des zweiten Eingangs
und zum Ausgeben der Ergebniswerte in dem Berechnungszyklus am Ausgang;
und
einer Vorladeschaltung, die ausgebildet ist, um Vorladewerte
in dem Ausgang bereits dann einzuprägen, wenn Vorladewerte an einem
einzigen Eingang erfasst werden, oder die ausgebildet ist, um ein
Einprägen
der Vorladewerte erst dann zu beenden, wenn das erste Dual-Rail-Signal
und das zweite Dual-Rail-Signal
Datenwerte aufweisen.
-
Der
vorliegenden Erfindung liegt die Erkenntnis zugrunde, dass eine
Voraussetzung damit Schaltungszellen gegen eine Timing-Attacke resistent
sind, darin besteht, dass ein Übergang
des Schaltungsausgangs in den Vorladezyklus oder Vorladezustand,
auch Idle-Phase genannt, erfolgt, sobald mindestens an einem Eingang
ein Vorladewert anliegt und dass ein Übergang des Ausgangs der Schaltung
aus dem Vorladezyklus erst dann erfolgt, wenn an allen Eingängen keine
Vorladewerte mehr anliegen. Im Vorladezyklus liegen Vorladewerte,
dies sind typischerweise Werte mit gleichen logischen Zuständen, die
keinen gültigen
Datenwerten entsprechen, auf beiden Leitungen eines Dual-Rail-Signals
an.
-
Die
vorgeschlagene Schaltungstechnik soll verhindern, dass sich der
Schaltungsausgang beim Eintreffen einzelner Eingangswerte schon
vorab ändert,
auch wenn die logische Funktion dies erlauben würde. Die Ausgangsänderung
wird gemäß der vorliegenden
Erfindung erst dann ausgeführt,
wenn alle Eingangswerte aus dem Vorladezyklus in den bewerteten
Zustand, im folgenden Berechnungszyklus oder Berechnungszustand
genannt, übergegangen
sind. Somit wird die Ausgangsänderung beim Übergang
in den Berechnungszyklus immer vom letzten Eingang ausgelöst und es
wird die Beobachtbarkeit weiter reduziert. Andererseits stellt die
vorgeschlagene Schaltungstechnik sicher, dass an dem Ausgangssignal
Vorladewerte anliegen, sobald an einem einzigen Eingang Vorladewerte
anliegen.
-
Aufgrund
der definierten Übergänge werden
Störimpulse,
kurzeitige Bitwechsel und undefinierte Schaltzeitpunkte, die einem
Angreifer Rückschlüsse auf
zu verarbeitende Daten ermöglichen,
vermieden.
-
Die
dem erfindungsgemäßen Ansatz
zugrundeliegenden Gatter-Implementierungen
sind zu jedem Zeitpunkt getrieben, dass heißt, es liegt kein dynamischer
Zustand vor. Somit sind hierauf basierende Bibliotheken synthetisierbar
und für
statische Timinganalysen geeignet.
-
Bevorzugte
Ausführungsbeispiele
der vorliegenden Erfindung werden nachfolgend bezugnehmend auf die
beiliegenden Zeichnungen näher
erläutert.
Es zeigen:
-
1 eine
schematische Darstellung einer Schaltung gemäß einem Ausführungsbeispiel
der vorliegenden Erfindung;
-
2 eine
zeitliche Darstellung von Berechnungszyklen und Vorladezyklen gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung;
-
3 eine
schematische Darstellung einer Schaltung gemäß einem weiteren Ausführungsbeispiel
der vorliegenden Erfindung;
-
4a, 4b Wertetabellen
für einen
Vorladezustand gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung;
-
4c Wertetabelle
einer logischen Verknüpfung
gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung;
-
5 und 6 Schaltbilder
von Vorladeschaltungen gemäß Ausführungsbeispielen
der vorliegenden Erfindung;
-
7, 8, 9a,
b, und 10 bis 13 Schaltbilder
von Logikschaltungen gemäß Ausführungsbeispielen
der vorliegenden Erfindung; und
-
14a, und 14b Wertetabellen
gemäß dem Stand
der Technik.
-
In
der nachfolgenden Beschreibung der bevorzugten Ausführungsbeispiele
der vorliegenden Erfindung werden für die in den verschiedenen
Zeichnungen dargestellten und ähnlich
wirkenden Elementen gleiche oder ähnliche Bezugszeichen verwendet,
wobei eine wiederholte Beschreibung dieser Elemente weggelassen
wird.
-
1 zeigt
eine Schaltung zum Berechnen einer logischen Verknüpfung zweier
Eingangsoperanden gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung. Die Schaltung ist in Dual-Rail-Schaltungstechnik
ausgeführt.
Dabei wird jedes, auf einer Dual-Rail-Leitung übertragene Bit, durch zwei
Knoten dargestellt, wobei jedes Bit einen gültigen logischen Wert aufweist,
wenn der erste der beiden Knoten dem wahren logischen Wert dieses
Bits entspricht und der zweite der beiden Knoten dem dazu invertierten
Wert. Solche gültigen
logischen Werte werden im Folgenden auch als Datenwerte bezeichnet.
Zwischen zwei Datenwerten mit gültigen
logischen Werten 1,0 oder 0,1 wird ein sog. Vorladezustand, im Englischen
auch „Precharge
oder Predischarge" genannt,
eingefügt.
In einem solchen Vorladezustand werden beide Knoten der Dual-Rail-Leitung auf dasselbe
elektrische Potential geladen und nehmen logisch ungültige Werte
1, 1 oder 0, 0 an. Solche logisch ungültigen Werte werden im Folgenden
als Vorladewerte bezeichnet. In den folgenden Ausführungsbeispielen
werden als Vorladewerte die Zustände
0, 0 angenommen. In diesem Fall sind die Zustände 1, 1 nicht erlaubt. Alternativ
können
als Vorladewerte auch die Zustände
0, 0 angenommen werden. In diesem Fall sind die Zustände 1, 1
nicht erlaubt. Berechnungszyklen, in denen gültige Datenwerte an der Schaltung
anliegen, wechseln sich mit Vorladezyklen ab, in denen ungültige logische
Werte in Form von Vorladewerten an der Schaltung anliegen. Liegen
an einem Eingang der Schaltung Vorladewerte an, so werden diese
auf den Ausgang der Schaltung durchgeschaltet, ohne dass dazu ein
zusätzliches
Taktsignal oder Vorladesignal erforderlich ist. Gemäß der vorliegenden
Erfindung werden am Ausgang der Schaltung Vorladewerte ausgegeben,
sobald mindestens an einem Eingang der Schaltung Vorladewerte anliegen.
Dies entspricht dem Übergang
von einem Berechnungszyklus, in dem gültige Datenwerte am Eingang
der Schaltung anliegen, in den Vorladezyklus, in dem Vorladewerte
an mindestens einem Eingang der Schaltung anliegen. Beim Übergang
vom Vorladezyklus in den Berechnungszyklus werden am Ausgang der
Schaltung solange Vorladewerte ausgegeben, bis an allen Eingängen der
Schaltung keine Vorladewerte mehr anliegen.
-
Die
in 1 gezeigte Schaltung weist eine Vorladeschaltung 102 und
eine Logikschaltung 104 auf. Die Schaltung weist einen
ersten Eingang zum Empfangen eines ersten Dual-Rail-Signals A, AN und
einen zweiten Eingang zum Empfangen des Dual-Rail-Signals B, BN
auf. Die Dual-Rail-Signale A, AN, B, BN weisen den Berechnungszyklus
Datenwerte und im Vorladezyklus Vorladewerte auf. Dies bedeutet,
dass beispielsweise im Berechnungszyklus auf dem Signal A eine 0
anliegt und auf dem Signal AN eine 1 oder auf dem Signal A eine
1 und auf dem Signal AN eine 0 anliegt. Im Vorladezyklus liegt auf
den Signalen A, AN jeweils eine 0 oder eine 1 an. Die Schaltung
weist ferner einen Ausgang zum Ausgeben eines Dual-Rail-Signals Z, ZN auf. Das
Dual-Rail-Ausgangssignal weist ebenso wie die Dual-Rail-Eingangssignale
im Berechnungszyklus Datenwerte und im Vorladezyklus Vorladewerte
auf. Die Dual-Rail-Signale
A, AN, B, BN werden sowohl der Vorladeschaltung 102 als
auch der Logikschaltung 104 zugeführt.
-
Die
Logikschaltung 104 ist ausgebildet, um eine logische Verknüpfung der
Werte durchzuführen,
die auf den Dual-Rail-Signalen
A, AN, B, BN anliegen. Das Ergebnis der logischen Verknüpfung wird
von der Logikschaltung 104 auf den Ausgang der Schaltung
gelegt und kann von dem Dual-Rail-Ausgangssignal Z, ZN im Berechnungszyklus
ausgegeben werden.
-
Die
Vorladeschaltung 102 ist ausgebildet, um sicherzustellen,
dass der Berechnungszyklus des Dual-Rail-Ausgangssignals Z, ZN,
in dem die Ergebniswerte der Logikschaltung 104 ausgegeben
werden, erst dann beginnt, wenn keines der Eingangssignale A, AN,
B, BN mehr Vorladewerte aufweist, bzw. wenn beide der Eingangssignale,
A, AN, B, BN gültige
Datenwerte aufweisen. Solange an einem der Eingangssignale A, AN,
B, BN noch Vorladewerte anliegen und am Eingang der Schaltung erfasst werden,
prägt die
Vorladeschaltung 102 auf dem Ausgangssignal Z, ZN Vorladewerte
ein.
-
2 veranschaulicht
einen Übergang
vom Berechnungszyklus in den Vorladezyklus und vom Vorladezyklus
in einen weiteren Berechnungszyklus. Im Berechnungszyklus liegen
an den Dual-Rail-Eingangssignalen
A, AN und B, BN sowie am Dual-Rail-Ausgangssignal Z, ZN gültige Datenwerte
an, die in 2 durch A1,
B1 und Z1 bezeichnet
sind. Die Signale A, B, Z weisen einen logischen Zustand 0 oder
1 auf und die dazugehörigen
invertierten Signale AN, BN, ZN weisen den dazu invertierten logischen
Zustand 1 oder 0 auf. Beim Übergang
vom Berechnungszyklus in den Vorladezyklus nehmen alle Signale A,
AN, B, BN, Z, ZN den gleichen logischen Wert, hier logisch 0 an.
-
Durch
den erfindungsgemäßen Ansatz
wird sichergestellt, dass das Ausgangssignal Z, ZN einen Vorladewert,
hier logisch 0, aufweist, sobald das erste Eingangssignal, in diesem
Fall das Eingangssignal A, AN den Vorladewert annimmt. Dies wird
durch die in 1 gezeigte Vorladeschaltung 102 gewährleistet.
Ohne diese Vorladeschaltung 102 könnten am Ausgang Z, ZN noch
Datenwerte anliegen, solange das zweite Eingangssignal B, BN gültige Datenwerte
aufweist. Ferner könnte
es in diesem Zeitraum ohne die Vorladeschaltung 102 zu
undefinierten Zuständen
und Störimpulsen
kommen. Die Vorladeschaltung 102 verhindert solche undefinierten
Zustände
auf dem Ausgangssignal Z, ZN, die zu Störimpulsen oder einem mehrfachen
Umschalten des Ausgangssignals Z, ZN führen könnten. Beim Übergang
vom Vorladezyklus in den Berechnungszyklus stellt die Vorladeschaltung 102 ebenfalls
sicher, dass das Ausgangssignal Z, ZN solange Vorladewerte aufweist,
solange noch an mindestens einem der Eingangssignale Vorladewerte
anliegen. In diesem Fall bedeu tet dies, dass das Ausgangssignal
Z, ZN erst dann gültige
Datenwerte annimmt, wenn nach dem zweiten Eingangssignal B, BN auch
das erste Eingangssignal A, AN gültige
Datenwerte angenommen hat. Die Vorladeschaltung 102 verhindern
somit, dass sich der Ausgang beim Eintreffen einzelner Eingangswerte
schon vorab ändert,
auch wenn die logische Funktion dies erlauben würde. Die Ausgangsänderung
wird erst dann ausgeführt,
wenn alle Eingangswerte aus dem Vorladezustand in den bewerteten
Zustand übergegangen
sind.
-
In
dem Moment in dem die Vorladeschaltung 102 ausgangsseitig
beide Eingänge
auf logisch 0 legt, gibt es keinen Pull-Down-Zustand in der Logikschaltung 104.
Dadurch wird ein Kurzschluss vermieden.
-
3 zeigt
ein weiteres Blockschaltbild einer Schaltung zum Berechnen einer
logischen Verknüpfung zweier
Eingangsoperanden gemäß der vorliegenden
Erfindung. Die erfindungsgemäße Schaltung
weist wiederum eine Vorladeschaltung 102 und eine Logikschaltung 104 auf,
die beide ausgebildet sind, um die Dual-Rail-Signale A, AN und B,
BN zu empfangen. Die Vorladeschaltung 102 als auch die
Logikschaltung 104 sind ausgangsseitig mit einem Dual-Rail-Zwischenknoten
Z_INT, ZN_INT verbunden. Ferner weist die Schaltung einen ersten
Inverter 106a und einen zweiten Inverter 106b auf,
die zwischen den Ausgang der Schaltung und den Zwischenknoten geschaltet
sind. Der erste Inverter 106a ist ausgebildet, um einen
logischen Zustand des ersten Knoten Z_INT des Zwischenknotens zu
invertieren und als Ausgangssignal Z am Ausgang der Schaltung auszugeben.
Der zweite Inverter 106b ist ausgebildet, um einen logischen
Zustand des zweiten Knoten ZN_INT des Zwischenknotens zu invertieren
und als Ausgangssignal ZN am Ausgang der Schaltung auszugeben.
-
In
diesem Ausführungsbeispiel
wird ein logisch erster Zustand „1" physikalisch durch ein hohes Spannungspotential
VDD und ein zweiter logischer Zustand „0" durch ein niedriges Spannungspotential
VSS bzw. GND realisiert.
-
Die
Vorladeschaltung 102 ist als Pull-up-Netzwerk realisiert,
das auf dem Zwischenknoten Z_INT, ZN_INT, abhängig von den Eingangssignalen
A, AN, B, BN das hohe Spannungspotential VDD einprägt. Dazu ist
die Vorladeschaltung 102 mit einem ersten, hohen Potentialanschluss
VDD verbunden.
-
Die
Logikschaltung 104 ist in diesem Ausführungsbeispiel als Pull-down-Netzwerk
realisiert, das ausgebildet ist, um den Zwischenknoten Z_INT, ZN_INT,
abhängig
von den Eingangssignalen A, AN, B, BN auf das niedrige elektrische
Potential zu ziehen. Dazu ist die Logikschaltung 104 mit
einem zweiten, niedrigen Potentialanschluss, in diesem Fall einem
Masseanschluss VSS verbunden.
-
Bei
der Logikschaltung 104 kann es sich beispielsweise um eine
Logikschaltung handeln, die eine logische UND-Verknüpfung der
Operanden durchführt,
die über
die Eingangssignale A, AN, B, BN übertragen werden.
-
Die 4a und 4b zeigen
allgemeine Wertetabellen, die einen Vorladezustand beschreiben.
Die 4a bezieht sich auf zwei Eingangssignale A, AN,
B, BN und die 4b auf drei Eingangssignale
A, AN, B, BN, C, CN.
-
Die 4c zeigt
eine Wertetabelle, die einer UND-Verknüpfung zugrunde
liegt.
-
Gemäß dem erfindungsgemäßen Ansatz
ist die in 14b gezeigte statische Dual-Rail-Werte-Tabelle um
die in 4a gezeigten zwei Zeilen erweitert.
Demgemäß befinden
sich die Ausgangssignale Z, ZN im Vorladezustand oder Idle-Zustand,
wenn an mindestens einem der Eingangssignale A, AN, B, BN Vorladewerte anliegen.
Es genügt
also, dass an den Eingangssignalen A, AN jeweils der Vorladezustand
anliegt, um auf den Ausgangssignalen Z, ZN ebenfalls den Vorladezustand
auszugeben. Der logische Zustand der Signale B, BN wird dabei nicht
betrachtet. Dies ist in der Wertetabelle dadurch gekennzeichnet,
dass bei den Signalen B, BN don't
care (dc) eingetragen ist. Entsprechend dazu werden am Ausgang Z,
ZN bereits Vorladewerte ausgegeben, wenn sich das zweite Eingangssignal
B, BN im Vorladezustand befindet, unabhängig davon ob am ersten Eingangssignal
A, AN Datenwerte oder Vorladewerte anliegen.
-
4b zeigt
eine entsprechende Tabelle für
eine drei Inputlogik, bei der die erfindungsgemäße Schaltung drei Eingänge zum
Empfangen von drei Dual-Rail-Eingangssignalen aufweist. In diesem
Fall wird das Ausgangssignal Z, ZN aus einer logischen Verknüpfung aus
den drei Eingangssignalen A, AN, B, BN, C, CN gebildet. Wiederum
ist es ausreichend, das sich eines der Eingangssignale, beispielsweise
das erste Eingangssignal A, AN im Vorladezustand befindet, damit
auf dem Ausgangssignal Z, ZN Vorladewerte ausgegeben werden. In
diesem Fall brauchen die anderen beiden Eingangssignale B, BN, C,
CN nicht betrachtet werden.
-
Wiederum
bedeutet „dc" don't care und steht
für eine
logische 0 oder logische 1, wobei die Kombination logisch 1, logisch
1 für ein
Eingangspaar verboten ist.
-
4c zeigt
die erweiterte Tabelle der UND-Funktion gemäß dem erfindungsgemäßen Ansatzpunkt. Die
Erweiterung bezieht sich insbesondere auf die zweite und dritte
Zeile, die anhand von 4a beschrieben wurde.
-
Der
erfindungsgemäße Ansatz
wurde hier beispielhaft an einer Wertetabelle für eine UND-Funktion erläutert. Entsprechende
Wertetabellen lassen sich ebenso für andere logische Funktionen
aufstellen.
-
5 zeigt
ein detailliertes Schaltbild einer Vorladeschaltung 102,
wie sie beispielsweise für
das anhand von 3 beschriebene Ausführungsbeispiel
verwendet werden kann. Die Vorladeschaltung 102 ist eine Transistorschaltung,
die ein Pull-up-Netzwerk realisiert. Abhängig von den Dual-Rail-Eingangssignalen
A, AN, B, BN zieht die Vorladeschaltung 102 die Knoten
des Dual-Rail-Zwischenknotens Z_INT, ZN_INT auf das hohe Spannungspotential
VDD. Liegen an einem der Eingangssignale A, AN bzw. B, BN Vorladewerte,
also in diesem Fall ein niedriges Spannungspotential an, beispielsweise
auf dem Signal A und dem Signal AN, so schaltet die Vorladeschaltung 102 das
hohe Spannungspotential von dem Potentialanschluss VDD auf beide
Knoten des Zwischenknotens Z_INT, ZN_INT durch. Dazu weist die Vorladeschaltung 102 Vergleichseinrichtungen 510a, 510b auf,
die ausgebildet sind, um das hohe Spannungspotential VDD auf den
Zwischenknoten Z_INT, ZN_INT durchzuschalten, wenn an einem der
Eingangssignale A, AN, B, BN Vorladewerte anliegen. Eine Vergleichseinrichtung,
beispielsweise die Vergleichseinrichtung 510a weist gemäß diesem
Ausführungsbeispiel zwei
in Reihe geschaltete Transistoren auf. Der Sourceanschluss des ersten
Transistors ist mit dem hohen Spannungspotential VDD verbunden und
der Drainanschluss des zweiten Transistors ist mit dem Zwischenknoten Z_INT
bzw. ZN_INT verbunden. Der Gateanschluss des ersten Transistors
wird von dem Signal AN des ersten Dual-Rail-Eingangssignals A, AN und der Gateanschluss
des zweiten Transistors von dem Signal A des Dual-Rail-Eingangssignals
A, AN angesteuert. Bei den Transistoren handelt es sich um Transistoren
des p-Typs. Beide Transistoren schalten somit durch, wenn an beiden
Gateanschlüssen
das niedrige Spannungspotential anliegt. Liegt an einem der Gateanschlüsse ein
hohes Spannungspotential an, wie dies der Fall ist, wenn auf dem
Eingangssignal A, AN ein gültiger
Datenwert anliegt, so sperrt die Vergleichseinrichtung 510a. Die
zweite Vergleichseinrichtung 510b ist zur ersten Vergleichseinrichtung 510a parallel
geschaltet und wird von dem zweiten Dual-Rail-Eingangssignal B,
BN angesteuert. Die Vergleichseinrichtungen 510a, 510b sind jeweils
doppelt ausgeführt,
um beide Zwischenknoten Z_INT, ZN_INT anzusteuern.
-
Liegt
an beiden Eingangssignalen A, AN, B, BN ein gültiger Datenwert an, so sperren
beide Vergleichseinrichtungen 510a, 510b. Um auf
dem Zwischenknoten Z_INT, ZN_INT einen gültigen Datenwert anzulegen, ist
es jedoch erforderlich, dass ein Knoten des Zwischenknotens Z_INT,
ZN_INT mit dem hohen Spannungspotential VDD verbunden ist. Dazu
weist die Vorladeschaltung 102 ein Halteglied 512 auf,
der aus zwei Transistoren besteht, die an ihren Source-Eingängen mit
dem hohen Spannungspotential VDD und an ihren Drainausgängen mit
dem Knoten ZN_INT bzw. dem Knoten Z_INT des Zwischenknotens verbunden
sind. Die Gateanschlüsse
werden jeweils von dem anderen Knoten des Zwischenknotens ZN_INT,
Z_INT angesteuert, als dem Knoten mit dem der Drainanschluss des
jeweiligen Transistors verbunden ist. Bei den Transistoren handelt
es sich ebenfalls um Transistoren des p-Typs. Das Halteglied 512 gewährleistet,
dass einer der Knoten des Zwischenknotens Z_INT, ZN_INT auf dem
hohen Spannungspotential VDD gehalten wird, sobald der andere Knoten
durch die Logikschaltung 104 auf ein niedriges Spannungspotential
VSS gezogen wird.
-
6 zeigt
eine weitere Vorladeschaltung 102 für eine erfindungsgemäße Schaltung
mit drei Eingängen
A, AN, B, BN, C, CN. Im Unterschied zu der in 5 gezeigten
Vorladeschaltung weist die in 6 gezeigte
Vorladeschaltung 102 eine weitere Vergleichseinrichtung
auf, die sicherstellt, dass der Zwischenknoten Z_INT, ZN_INT mit
dem hohen Spannungspotential VDD verbunden wird, sobald an dem dritten
Eingangssignal C, CN Vorladewerte anliegen.
-
Die 7 bis 13 zeigen
Ausführungsbeispiele
von Logikschaltungen 104, wie sie für das in 3 beschriebene
Ausführungsbeispiel
eingesetzt werden können.
Dabei sind die in 7 und 8 beschriebenen
Logikschaltungen zur Verknüpfung
von zwei Eingangssignalen und die in den 9 bis 13 gezeigten Logikschaltungen 104 zur
Verknüpfung
von drei Eingangssignalen ausgelegt. Demgemäß können die in 7 und 8 gezeigten
Logikschaltungen 104 zusammen mit der in 5 gezeigten
Vorladeschaltung und die in den 9 bis 13 gezeigten
Logikschaltungen 104 mit der in 6 gezeigten
Vorladeschaltung 102 eingesetzt werden. Die in 7 bis 13 gezeigten
Logikschaltungen 104 sind als Transistorschaltungen realisiert,
die ein Pull-down-Netzwerk realisieren. Es werden Transistoren vom
N-Typ eingesetzt. Die Logikschaltungen 104 sind zwischen
einem zweiten Potentialanschluss mit einem Massepotential GND bzw.
VSS und dem Zwischenknoten Z_INT, ZN_INT geschaltet. Die Gateanschlüsse der
in den in den 5–13 gezeigten
Logikschaltungen 104, als auch in den Vorladeschaltungen 102 eingesetzten
Transistoren werden von den Eingangssignalen A, AN, B, BN bzw. den
weiteren Eingangssignalen bei Schaltungen für drei Eingangssignale angesteuert.
Gemäß den, in
den 5–13 gezeigten
Ausführungsbeispielen
sind die Vorladeschaltungen 102 und die Logikschaltungen 104 als
eigenständige
Schaltungen ausgeführt,
die keine gemeinsamen Transistoren aufweisen.
-
Die
in den 7 bis 13 gezeigten Logikschaltungen 104 sind
ausgebildet, um eine Verbindung zwischen dem niedrigen Potentialanschluss
GND und den Zwischenknoten Z_INT, ZN_INT zu unterbrechen, sobald
an mindestens einem der Eingangssignale A, AN, B, BN Vorladewerte
anliegen. Liegen jedoch an allen Eingangssignalen A, AN, B, BN gültige Datenwerte
an, so sind die gezeigten Logikschaltungen 104 ausgebildet,
um entsprechend der zu realisierenden logischen Verknüpfung einen
der Knoten des Zwischenknotens Z_INT, ZN_INT mit dem niedrigen Spannungspotential
GND zu verbinden und somit einen gültigen Datenwert auszugeben.
-
7 zeigt
eine Logikschaltung 104 in Form einer Transistorschaltung
zur Realisierung einer UND-Verknüpfung.
Die Transistorschaltung 104 weist einen Endladetransistor 720 auf,
der sowohl zum Entladen des Knotens Z_INT als zum Entladen des Knotens
ZN_INT genutzt werden kann. Solche gemeinsamen Transistoren 720 werden,
in unterschiedlichen Beschaltungen, auch in den weiteren Ausführungsbeispielen der 8 bis 13 eingesetzt,
um die benötigte
Transistorzahl zu reduzieren.
-
Gemäß dem in 7 gezeigten
Ausführungsbeispiel
einer Logikschaltung 104 zur Realisierung einer UND-Verknüpfung ist
der Knoten Z_INT mit dem niedrigen Spannungspotential GND verbunden,
wenn die Eingangssignale A, B eine logische 1 aufweisen. Der zweite
Knoten ZN_INT ist mit dem niedrigen Span nungspotential GND verbunden,
wenn an den Eingangssignalen BN, AN, den Eingangssignalen BN, A
oder den Eingangssignalen AN, B eine logische 1 anliegt. In den
anderen Fällen
sind die Zwischenknoten Z_INT, ZN_INT nicht mit dem niedrigen Spannungspotential
GND verbunden.
-
Der
Zwischenknoten ZN_INT ist mit den Drain-Anschlüssen dreier Transistoren verbunden,
wobei der erste Transistor von dem Signal AN und der zweite Transistor
von dem Signal A angesteuert wird. Die Source-Anschlüsse dieser
beiden Transistoren sind über
einen weiteren Transistor, der von dem Signal BN angesteuert wird,
mit dem Massepotential GND verbunden. Der dritte Transistor wird
von dem Signal AN angesteuert und ist über seinen Source-Anschluss
mit dem gemeinsamen Transistor 720 verbunden, der von dem
Signal B angesteuert wird und mit seinem Source-Anschluss an dem
Massepotential GND liegt. Der Drain-Anschluss des gemeinsamen Transistors 720 ist über einen
weiteren Transistor, der von dem Signal A angesteuert wird, mit
dem Knoten Z_INT verbunden.
-
8 zeigt
eine Logikschaltung 104 gemäß einem weiteren Ausführungsbeispiel,
die eine logische XOR-Verknüpfung
zweiter Eingangssignale A, AN, B, BN realisiert. Der Aufbau dieser
Logikschaltung entspricht dem Aufbau der in 7 gezeigten
Logikschaltung, wobei die in 8 gezeigte
Logikschaltung 104 gemäß der XOR-Verknüpfung den
ersten Knoten Z_INT mit dem niedrigen Spannungspotential GND verbindet,
wenn an den Eingangssignalen AN, B oder an den Eingangssignalen
A, BN eine logische 1 anliegt. Der zweite Zwischenknoten ZN_INT
ist mit dem niedrigen Spannungspotential GND verbunden, wenn an
den Eingangssignalen AN, BN bzw. an den Eingangssignalen A, B jeweils
eine logische 1 anliegt. In allen anderen Fällen sind die Zwischenknoten
Z_INT, ZN_INT nicht mit dem niedrigen Spannungspotential GND verbunden.
-
Der
Knoten ZN_INT ist über
eine Reihenschaltung zweier Transistoren, deren Gate-Anschlüsse von dem
Signal AN bzw. dem Signal BN angesteuert sind, mit dem Massepotential
GND verbunden. Der Knoten Z_INT ist über eine Reihenschaltung zweier
Transistoren, die an ihren Gate-Anschlüssen von dem Signal AN bzw.
dem Signal B angesteuert werden, mit dem Massepotential GND verbunden.
Die Drain-Anschlüsse
der gemeinsamen Transistoren 720 sind jeweils über einen
weiteren Transistor, der von dem Signal A angesteuert wird, mit
den Knoten Z_INT bzw. ZN_INT verbunden.
-
9a und 9b zeigen
weitere Ausführungsbeispiele
einer Logikschaltung 104, die ausgebildet ist, um eine
UND-Verknüpfung zwischen
drei Eingangssignalen A, AN, B, BN, C, CN auszuführen. Gegenüber der in 9a gezeigte
Transistorschaltung ist die in 9b gezeigte
Transistorschaltung bezüglich
der Anzahl der verwendeten Transistoren optimiert.
-
10 zeigt
eine Logikschaltung 104 eines weiteren Ausführungsbeispiels,
die eine logische UND-ODER-Verknüpfung
zwischen drei Eingangssignalen A, AN, B, BN, C, CN ausführen.
-
11 zeigt
ein weiteres Ausführungsbeispiel
einer Logikschaltung 104, die ausgebildet ist, um eine logische
XOR-Verknüpfung zwischen
drei Eingangssignalen A, AN, B, BN, C, CN auszuführen.
-
12 zeigt
ein weiteres Ausführungsbeispiel
einer Logikschaltung 104, die ausgebildet ist, um eine Multiplexer- Verknüpfung zwischen
zwei Eingangssignalen A, AN, B, BN und einem Select-Signal SEL,
SELN durchzuführen.
-
13 zeigt
ein weiteres Ausführungsbeispiel
einer Logikverknüpfung 104,
die ausgebildet ist, um eine Mehrheitsverknüpfung zwischen drei Eingangssignalen
A, AN, B, BN, C, CN durchzuführen.
-
Die
exakte Verschaltung der in den 5 bis 13 verwendeten
Transistoren ist aus den entsprechenden Figuren ersichtlich.
-
Die
in den 5 bis 13 gezeigten Schaltungen 102, 104 können für die erfindungsgemäße Schaltung,
wie sie als Blockschaltbild in 3 dargestellt
ist, verwendet werden. Dazu werden die in 3 gezeigten
Inverter verwendet, um einen logischen Zustand der Zwischenknoten
Z_INT, ZN_INT zu invertieren und am Ausgang als Ergebnissignal Z,
ZN auszugeben.
-
Alle
Gatter in einer auf diesem Ausführungsbeispiel
basierenden Libray haben die gleiche Struktur, die sich in drei
Gruppen aufteilt. Ein Pull-down-Netzwerk 104 implementiert
die Logikfunktionalität.
Ein Pull-up-Netzwerk 102 implementiert die Prechargefunktionalität, also
das Vorladen der Ausgangssignale. Das Pull-up-Netzwerk ist für alle Gatter
mit der gleichen Zahl von Eingängen
gleich aufgebaut. Die dritte Gruppe bilden die beiden Ausgangsinverter.
-
Durch
das Pull-up-Netzwerk ist der Vorladezustand immer definiert, solange
mindestens ein Eingang im Vorladezustand ist.
-
Durch
das Pull-down-Netzwerk wird im Evaluierungsfall, also dem Berechnungszyklus,
nur entweder der ZN_INT-Knoten oder oder Z_INT-Knoten entladen.
Die Pull-down-Netzwerke sind so entworfen, dass maximal nur ein
Pfad auf das niedrige Spannungspotential, also nach VSS durchgeschaltet
ist, da sonst unterschiedliche Entladungsströme bei unterschiedlichen Eingangskombinationen
fließen
würden.
-
Die
Netzwerke zur Entladung der Knoten ZN_INT bzw. Z_INT können, sofern
dies die Funktion zulässt,
in Teilen dieselben Transistoren 720 nutzen, beispielsweise
bei dem in 8 gezeigten Pull-down-Netzwerk 104 zur
Implementierung einer XOR-Funktionalität die beiden
Transistoren, deren Source-Anschluss
mit dem Massepotential verbunden ist.
-
Dadurch
dass bei den Dual-Rail-Schaltungstechniken im Evaluierungszustand
immer eines der beiden Ausgangssignale auf 0 und das andere auf
1 ist, kann durch Vertauschen der beiden Ausgangsleitungen Z, ZN
eine logische Invertierung des Gatters erreicht werden. Werden weiterhin
auch noch die Eingangspaare A, AN und B, BN vertauscht, können mit
zwei unterschiedlichen Pull-down-Netzwerken alle möglichen
Logikfunktionen mit zwei Eingängen
abgebildet werden. Für
die Abbildung aller Logikfunktionen mit drei Eingängen werden
nur fünf
Strukturen benötigt.
-
Funktionen
mit mehr Eingängen
lassen sich entsprechend realisieren. Der erfindungsgemäße Ansatz lässt sich
auf Schaltungen mit vier oder mehr Eingängen zum Empfangen weiterer
Dual-Rail-Signale,
erweitern.
-
Die
in den 5–13 gezeigten
Transistorschaltungen sind beispielhaft und können durch Schaltungen mit
gleicher Funktionalität
ersetzt werden. Ebenso ist die vorliegenden Erfindung nicht auf
die gezeigte Transistorlogik beschränkt. Bei den logischen Verknüpfungen
kann es sich beispielsweise um eine AND-, eine NAND-, eine OR-,
eine NOR-, eine XOR-, eine NXOR-, eine ANDOR-, eine ORAND-, eine
Multiplexer- oder eine Mehrheitsfunktion handeln.
-
- 102
- Vorladeschaltung
- 104
- Logikschaltung
- 106a,
106b
- Inverterpaar
- 510a,
510b
- Vergleichseinrichtungen
- 512
- Halteglied
- 720
- Entladetransistor
- A,
AN
- erstes
Dual-Rail-Signal
- B,
BN
- zweites
Dual-Rail-Signal
- Z,
ZN
- drittes
Dual-Rail-Signal
- C,
CN
- weiteres
Dual-Rail-Signal
- ZN_INT,
Z_INT
- Dual-Rail-Zwischenknoten
- VDD
- erster
Potentialanschluss
- VSS
- zweiter
Potentialanschluss