PatentDe  


Dokumentenidentifikation DE102005037357B3 01.02.2007
Titel Logikschaltung und Verfahren zum Berechnen eines maskierten Ergebnisoperanden
Anmelder Infineon Technologies AG, 81669 München, DE
Erfinder Degrendel, Antoine, 80636 München, DE;
Kamp, Winfried, 81739 München, DE;
Kodytek, Thomas, 81476 München, DE;
Roth, Manfred, 80539 München, DE
Vertreter Schoppe, Zimmermann, Stöckeler & Zinkler, 82049 Pullach
DE-Anmeldedatum 08.08.2005
DE-Aktenzeichen 102005037357
Veröffentlichungstag der Patenterteilung 01.02.2007
Veröffentlichungstag im Patentblatt 01.02.2007
IPC-Hauptklasse H03K 19/00(2006.01)A, F, I, 20051017, B, H, DE
Zusammenfassung Eine Logikschaltung zum Berechnen eines verschlüsselten Dual-Rail-Ergebnisoperanden (ZM, ZMN) aus verschlüsselten Dual-Rail-Eingangsoperanden (AM, AMN, BM, BMN) gemäß einer Verknüpfungsvorschrift weist Eingänge zum Empfangen der Eingangsoperanden (AM, AMN, BM, BMN) und einen Ausgang zum Ausgeben des verschlüsselten Ergebnisoperanden (ZM, ZMN) auf. Jeder Operand kann einen ersten logischen Zustand oder einen zweiten logischen Zustand aufweisen. Die Logikschaltung weist eine erste Logikstufe (101a) auf, die zwischen den Eingängen und einem Zwischenknoten (INT, INTN) geschaltet ist, und eine zweite Logikstufe (101b) auf, die zwischen dem Zwischenknoten (INT, INTN) und dem Ausgang geschaltet ist auf. Die Logikstufen (101a, 101b) sind ausgebildet, um gemäß der Verknüpfungsvorschrift den ersten oder zweiten logischen Zustand des verschlüsselten Ergebnisoperanden (ZM, ZMN) aus den Eingangsoperanden (AM, AMN, BM, BMN) zu berechnen und unabhängig von einer Reihenfolge des Eintreffens der verschlüsselten Eingangsoperanden (AM, AMN, BM, BMN), je nach Verknüpfungsvorschrift den logischen Zustand des verschlüsselten Ergebnisoperanden (ZM, ZMN) beizubehalten oder genau einmal zu ändern, um den berechneten ersten logischen Zustand oder zweiten logischen Zustand auf dem Ausgang einzuprägen.

Beschreibung[de]

Die vorliegende Erfindung befasst sich mit einer Logikschaltung und einem Verfahren zum Berechnen eines Ergebnisoperanden aus einem ersten Eingangsoperanden und einem zweiten Eingangsoperanden gemäß einer Verknüpfungsvorschrift, wobei die Logikschaltung und das Verfahren 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.

Die genannte Patentschrift befasst sich nicht mit verschlüsselten Signalen.

Bei der Technologie „Masking" werden interne Signale durch eine Maske verschlüsselt. Dabei werden spezielle, neue Logikzellen eingesetzt, die in der Lage sind aus maskierten Eingangssignalen AM und BM sowie einer Maske M ein ebenfalls verschlüsseltes Ausgangssignal ZM zu erzeugen.

18 zeigt ein Blockschaltbild einer solchen Logikzelle mit den maskierten Eingängen AM, BM, einen Eingang für die Maske M und einen Ausgang zum Ausgeben des verschlüsselten Ausgangssignals ZM.

Die dabei zugrunde liegende Maskierung wird anhand der 19a und 19b beschrieben.

19a zeigt eine Wertetabelle für eine XOR-Verknüpfung. Dabei sind die Signale A, B, Z nicht verschlüsselt. Die Wertetabelle für die XOR2-Verknüpfung basiert auf der Funktionsgleichung A xor B = Z.

19b zeigt eine Wertetabelle einer XOR-Verknüpfung für maskierte Signale AM, BM, ZM, wobei die Maske M verwendet wird. Bei der Verschlüsselung bzw. Maskierung handelt es sich um eine XOR-Verknüpfung der Signale AM, BM, ZM mit dem Wert der Maske M. Es gilt also AM = AM XOR M; BM = BM XOR M; ZM = ZM XOR M. Die gezeigte Wertetabelle der maskierten XOR2-Verknüpfung basiert auf der Funktionsgleichung ((AM xor M) xor (BM xor M)) xor M = ZM.

Aus der Schrift „Side-Channel Leakage of Masked CMOS Gates; Stefan Mangard, Thomas Popp, Berndt M. Gammel" ist bekannt, dass bei einer Single-Rail-Realisierung der maskierten Schaltungstechnik etwaige Glitches, also Störimpulse die Logik angreifbar machen.

Eine Möglichkeit zur sicheren Verschlüsselung von maskierten Signalen besteht in einer maskierten Dual-Rail-Precharge-Logik. Dabei werden, wie bei unverschlüsseltem Dual-Rail, die mit der Maske M verschlüsselten Signale und auch die Maske selbst doppelt ausgeführt. Es gibt also zwei Dual-Rail-Eingangssignale AM, AMN und BM, BMN sowie eine Dual-Rail-Maske M, MN. Ferner wird eine Idle-Phase zwischen zwei gültigen Werte-Folgen eingeführt. Die Idle-Phase ist ein Vorladezustand oder auch „Precharge" genannt, zwischen zwei Evaluate-Phasen, im fogenden auch Berechnungszyklen genannt. Damit ergibt sich wie bei unverschlüsseltem Dual-Rail eine alternierende Folge der beiden Zustände:

Evaluate→Idle→Evaluate→Idle→Evaluate→Idle→Evaluate ...

20 zeigt eine logische Grundfunktion, reduziert um Precharge Zustände, die von einer maskierten Dual-Rail-Precharge-Logik für eine XOR-Verknüpfung realisiert werden muß.

Aufgrund von Glitches, die in jeder CMOS-Schaltung auftreten, ist eine maskierte Dual-Rail-Schaltung trotzdem angreifbar.

Insbesondere können bei einem Übergang von einem Berechnungszyklus, also einem Zyklus mit gültigen Datenwerten an den Eingängen, in einen Vorladezyklus, also einem Zyklus in dem an den Eingängen Vorladewerte anliegen, oder bei einem umgekehrten Übergang 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 ausgeschlossen, das 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.

US 2002/0101262 A1 zeigt eine Logikschaltung zur Berechnung eines Ergebnisoperanden aus Eingangsoperanden. Die Schaltung weist entsprechende Eingänge und Ausgänge zum Empfangen der Eingangsoperanden sowie zum Ausgeben des Ergebnisoperanden auf. Zudem weist die Schaltung eine erste Logikstufe und eine zweite Logikstufe mit entsprechenden Zwischenknoten auf. Der Ergebnisoperand nimmt einen „Haltewert" ein, sobald einer der Eingangsoperanden diesen „Haltewert" einnimmt.

Trichina, E.: Combinational Logic Design for AES SubByte Transformation on Masked Data. Cryptology ePrint Archive, Report 2003/236, 2003 beschäftigt sich mit Operationen, die an maskierten Daten durchgeführt werden. Da die XOR-Verknüpfung eine lineare Operation ist, ist zur Berechnung einer XOR-Verknüpfung über zwei maskierte Datenbits eine Demaskierung dieser Bits nicht erforderlich.

Es ist die Aufgabe der vorliegenden Erfindung, eine Logikschaltung und ein Verfahren zum Berechnen eines verschlüsselten Ergebnisoperanden aus mindestens zwei verschlüsselten Eingangsoperanden gemäß einer Verknüpfungsvorschrift zu schaffen, die eine sichere Verarbeitung der Operanden ermöglichen.

Diese Aufgabe wird durch eine Logikschaltung gemäß den Ansprüchen 1, 30 und 31 sowie ein Verfahren gemäß Anspruch 29 gelöst.

Die vorliegende Erfindung schafft eine Logikschaltung zum Berechnen eines verschlüsselten Ergebnisoperanden aus einem ersten verschlüsselten Eingangsoperanden und einem zweiten verschlüsselten Eingangsoperanden gemäß einer Verknüpfungsvorschrift, mit folgenden Merkmalen:

einem ersten Eingang zum Empfangen des ersten verschlüsselten Eingangsoperanden;

einem zweiten Eingang zum Empfangen des zweiten verschlüsselten Eingangsoperanden;

einem Ausgang zum Ausgeben des verschlüsselten Ergebnisoperanden;

wobei jeder Operand einen ersten logischen Zustand oder einen zweiten logischen Zustand aufweist;

mindestens einer ersten Logikstufe und mindestens einer zweiten Logikstufe, wobei die mindestens eine erste Logikstufe zwischen den Eingängen und einem Zwischenknoten geschaltet ist, und die mindestens eine zweite Logikstufe zwischen dem Zwischenknoten und dem Ausgang geschaltet ist und wobei die Logikstufen so angeordnet sind, dass ein Logikpfad von einem der Eingänge der Logikschaltung bis zu dem Ausgang der Logikschaltung eine geradzahlige Anzahl von Logikstufen aufweist, und

wobei die Logikstufen ausgebildet sind, um gemäß der Verknüpfungsvorschrift den ersten oder zweiten logischen Zustand des verschlüsselten Ergebnisoperanden aus den Eingangsoperanden zu berechnen und an dem Ausgang einzuprägen und wobei die Logikschaltung ausgebildet ist, dass unabhängig von einer Reihenfolge des Eintreffens der verschlüsselten Eingangsoperanden, abhängig von der Verknüpfungsvorschrift der logische Zustand des verschlüsselten Ergebnisoperanden beibehalten wird oder genau einmal geändert wird.

Die vorliegende Erfindung schafft ferner ein Verfahren zum Berechnen eines verschlüsselten Dual-Rail-Ergebnisoperanden aus einem ersten verschlüsselten Dual-Rail-Eingangsoperand und einem zweiten verschlüsselten Dual-Rail-Eingangsoperand gemäß einer Verknüpfungsvorschrift, das folgende Schritte aufweist:

Empfangen des ersten verschlüsselten Eingangsoperanden an einem ersten Eingang;

Empfangen des zweiten verschlüsselten Eingangsoperanden an einem zweiten Eingang;

wobei jeder Operand einen ersten logischen Zustand oder einen zweiten logischen Zustand aufweist;

Berechnen des ersten oder zweiten logischen Zustands des verschlüsselten Ergebnisoperanden aus den Eingangsoperanden gemäß der Verknüpfungsvorschrift und Einprägen des ersten oder zweiten logischen Zustands des verschlüsselten Ergebnisoperanden an einem Ausgang, wobei unabhängig von einer Reihenfolge des Eintreffens der verschlüsselten Eingangsoperanden an den Eingängen, abhängig von der Verknüpfungsvorschrift der logische Zustand des verschlüsselten Ergebnisoperanden am Ausgang beibehalten wird oder genau einmal geändert wird.

Der vorliegenden Erfindung liegt eine optimierte Umsetzung und Implementierung bekannter Wertetabellen zugrunde.

Durch die Anwendungen von Verallgemeinerungen lassen sich einzelne Stellen bekannter Wertetabellen logischer Funktionen durch „Don't care" ersetzen. Die Abbildung solcher erfindungsgemäß optimierten Wertetabellen auf eine Transistorschaltung führt zu wesentliche geringeren Transistorzahlen, z. B. werden bei einer XOR2-Schaltung nur noch 24 Transistoren benötigt.

Dabei wird folgender Effekt ausgenutzt:

Beim Übergang von einem Idle-Zustand zu einem gültigen Wert in der Evaluate-Phase können nur steigende Flanken auftreten: (0/0) → (1/0) (0/0) → (0/1)

Es geht gemäß Definition bei dieser Übergangsphase kein physikalisches Signal von high nach low zurück.

Entsprechendes gilt für den Übergang eines gültigen Wertes in einen Idle-Zustand. (1/0) → (0/0) (0/1) → (0/0)

Entsprechend optimierte Wertetabellen, bei denen unsichere Übergänge, die Glitches erzeugen können, durch sichere Zustäne ersetzt sind, sind in unterschiedlichen Ausführungsbeispielen der vorliegenden Erfindung gezeigt.

Gemäß einem Ausführungsbeispiel der vorliegenden Erfindung wird zur Implementierung der Logikschaltung, die die optimierten Werte der Tabelle umsetzt, eine zweistufige Logik verwendet, die einen nicht-reversiblen Effekt aufweist. Unter dem nicht-reversiblen Effekt wird hierbei verstanden, dass der Ausgang der Logikschaltung beim Übergang vom Berechnungszustand in den Vorladezustand bzw. vom Vorladezustand in den Berechnungszustand seinen logischen Wert nur einmal ändert bzw. seinen Wert beibehält.

Gemäß einem Ausführungsbeispiel besteht die zweistufige Logik aus einer einstufigen Logik mit einem nachgeschalteten Inverter. Eine solche zweistufige Logik hat den Vorteil, dass sich Schaltungen mit einer sehr geringen Anzahl von Transistoren implementieren lassen, wenn es sich um Logikschaltungen mit mehr als zwei logischen Eingängen bzw. komplexeren Gattern, beispielsweise einer XOR-Verknüpfung handelt.

Bei der Logikschaltung handelt es sich um eine Dual-Rail-Logikschaltung, die mit Vorladezuständen, auch Precharge oder Predischarge genannt, arbeitet. Im Vorladezustand weisen die Eingangsoperanden bzw. der Ergebnisoperand Vorladewerte auf. Dies sind typischerweise Werte mit gleichen logischen Zuständen, die keinen gültigen Datenwerten entsprechen. Im Berechnungszyklus weisen die Eingangsoperanden bzw. der Ergebnisoperand dagegen gültige Datenwerte auf, die dadurch gekennzeichnet sind, dass ein erster Operand eines Dual-Rail-Operanden einen ersten logischen Zustand aufweist und der zweite Operand des Dual-Rail-Operanden den dazu invertierten zweiten logischen Zustand aufweist.

Die Eingangsoperanden und der Ergebnisoperand sind mit einer Maske verschlüsselt bzw. maskiert.

Gemäß einem Ausführungsbeispiel weist die Dual-Rail-Logikschaltung zwei einzelne Logikschaltungen auf, wobei die erste Logikschaltung ausgebildet ist, um aus den jeweils ersten Operanden der Dual-Rail-Operanden den ersten Ergebnisoperand des Dual-Rail-Ergebnisoperanden zu berechnen. Demgegenüber ist die zweite Schaltung ausgebildet, um aus den jeweils zweiten Eingangsoperanden der Dual-Rail-Eingangsoperanden den zweiten Operanden des Dual-Rail-Ergebnisoperanden zu berechnen. Beide dieser Schaltungen sind, einzeln gesehen, in Single-Rail-Technik ausgeführt. Gemäß einem Ausführungsbeispiel ist die Struktur beider Einzelschaltungen identisch, abgesehen davon, dass die eingesetzten Transistoren jeweils von dem invertierten Operanden, der jeweils anderen Schaltung angesteuert werden.

Die dem erfindungsgemäßen Ansatz zugrunde liegenden Gatter-Implementierungen sind zu jedem Zeitpunkt getrieben, d.h., es liegt kein dynamischer Zustand vor. Somit sind hierauf basierende Bibliotheken synthetisierbar und für statische Timing-Analyse geeignet.

Aufgrund der definierten Übergänge zwischen Berechnungszustand und Vorladezustand und umgekehrt, werden Störimpulse, kurzzeitige Bitwechsel des Ergebnisoperanden und undefinierte Schaltpunkte, die einem Angreifer Rückschlüsse auf zu verarbeitenden Daten ermöglichen würden, vermieden.

Gemäß dem erfindungsgemäßen Ansatz ist jede Stufe der Logikschaltung so realisiert, dass bei einem Wechsel eines Eingangssignals von 0 auf 1 am Ausgang der Logikstufe ein Wechsel von 1 auf 0 auftritt und bei einem Wechsel eines Eingangssignals von 1 auf 0 am Ausgang der Logikstufe nur ein Wechsel von 0 auf 1 auftritt.

Gemäß einem weiteren Ausführungsbeispiel weist die Logikschaltung eine mehrstufige Implementierung mit mehr als zwei Logikstufen auf, wobei aber gewährleistet ist, das alle Pfade vom Eingang bis zum Ausgang der Logikschaltung eine geradzahlige Anzahl von Logikstufen durchlaufen. Bei einer Realisierung in Transistorlogik kann jede der Logikstufen ein Pull-Up Netzwerk und ein Pull-Down Netzwerk aufweisen. Die Logikstufen sind über einen oder eine Mehrzahl von Zwischenknoten miteinander verbunden.

Der vorliegenden Erfindung liegt die Erkenntnis zugrunde, dass sich für Gatter einer maskierten Dual-Rail-Precharge-Logik Verallgemeinerungen für das funktionelle Verhalten der Gatter durchführen lassen.

Beim Übergang vom Berechnungszyklus, auch Evaluate-Zyklus genannt, in den Vorladezyklus, auch Idle-Zyklus genannt, können folgende Verallgemeinerungen durchgeführt werden. Wenn mindestens ein Dual-Rail-Eingangsoperand vom Berechnungszustand in den Vorladezustand übergeht, dann muss der Dual-Rail-Ergebnisoperand entweder auch in den Vorladezustand übergehen oder er muss den bestehenden Zustand beibehalten.

Wenn weitere Eingangsoperandenpaare in den Vorladezustand übergehen, gilt Entsprechendes. Spätestens wenn das letzte Eingangsoperandenpaar in den Vorladezustand übergegangen ist, muss auch der Ausgangsoperand in den Vorladezustand gehen.

Beim Übergang vom Vorladezyklus in den Berechnungszyklus lassen sich folgende Verallgemeinerungen durchführen. Wenn einzelne Dual-Rail-Eingangsoperanden aus dem Vorladezustand in einen Berechnungszustand übergehen, dann darf der Dual-Rail-Ergebnisoperand erst dann seinen Vorladezustand verlassen, wenn die weiteren Dual-Rail-Eingangsoperanden, die sich noch im Vorladezustand befinden, den Ausgangsoperanden nicht mehr verändern können, wenn sie ihrerseits in den Berechnungszustand gehen. Sonst muss der am Ausgang der Logikschaltung anliegende Ergebnisoperand im Vorladezustand bleiben.

Wenn weitere Eingangsoperandenpaare in den Berechnungszustand übergehen, gilt Entsprechendes. Spätestens, wenn das letzte Eingangsoperandenpaar in den Berechnungszustand übergegangen ist, muss auch der Ergebnisoperand in den Berechnungszustand gehen.

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 Wertetabelle einer logischen Verknüpfung gemäß einem Ausführungsbeispiel der vorliegenden Erfindung;

410 Wertetabellen weiterer logischer Verknüpfungen gemäß Ausführungsbeispielen der vorliegenden Erfindung;

1117 Logikschaltungen gemäß weiteren Ausführungsbeispielen der vorliegenden Erfindung;

18 Blockschaltbild einer zur Maskierung verwendeten Logikzelle gemäß dem Stand der Technik;

19a, 19b Wertetabellen einer logischen Verknüpfung gemäß dem Stand der Technik; und

20 Grundtabelle einer logischen Verknüpfung 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 ein Ausführungsbeispiel einer Logikschaltung zum Berechnen eines verschlüsselten Ergebnisoperanden ZM, ZMN aus zwei verschlüsselten Eingangsoperanden AM, AMN und BM, BMN. Die Berechnung des Ergebnisoperanden ZM, ZMN erfolgt gemäß einer Verknüpfungsvorschrift. Bei den Eingangsoperanden AM, AMN, BM, BMN als auch bei den Eingangsoperanden ZM, ZMN handelt es sich gemäß diesem und den folgenden Ausführungsbeispielen um verschlüsselte Signale, die mit einem Verschlüsselungsoperanden in Form einer Maske M, MN verschlüsselt sind.

Bei der Logikschaltung kann es sich um eine Dual-Rail-Logikschaltung mit Vorladezuständen handeln. In diesem Fall sind sowohl die verschlüsselten Eingangsoperanden AM, AMN, BM, BMN, der Verschlüsselungsoperand M, MN als auch die Ergebnisoperanden Dual-Rail-Operanden, die als Dual-Rail-Signale über Dual-Rail-Leitungen der Logikschaltung zugeführt bzw. von dieser ausgegeben werden. Demgemäß weisen die Operanden erste Operanden AM, BM, ZM und zweite Operanden AN, BMN, ZMN auf, wobei die ersten Operanden AM, BM, ZM und die zweiten Operanden AMN, BMN, ZMN im Berechnungszustand zueinander invertierte logische Zustände und im Vorladezustand gleiche logische Zustände aufweisen. Ebenso weist der Dual-Rail-Zwischenknoten INT, INTN einen ersten Knoten INT und einen zweiten Knoten INTN auf.

Die verschlüsselten Dual-Rail-Eingangsoperanden AM, AMN, BM, BMN und der verschlüsselte Dual-Rail-Ergebnisoperand ZM, ZMN sind gemäß einer Verschlüsselungsvorschrift mit einem Verschlüsselungsoperanden M, MN in Form einer Maske verschlüsselt, wobei die Verschlüsselungsvorschrift eine XOR-Verknüpfung oder ein NXOR-Verknüpfung mit dem Verschlüsselungsoperand M, MN ist.

Dazu weist die Logikschaltung einen weiteren Eingang zum Empfangen des Verschlüsselungsoperanden M, MN auf.

Alternativ kann der Verschlüsselungsoperand M, MN auch an der Logikschaltung vorbeigeführt werden, wenn er aufgrund der Verknüpfungsvorschrift weder zur Entschlüsselung der Eingangsoperanden noch zum Verschlüsseln des Ausgangsoperanden erforderlich ist.

Die Logikschaltung ist in einer zweistufigen Logik implementiert und weist eine erste Logikstufe 101a und eine zweite Logikstufe 101b auf.

Die erste Logiksstufe 101a weist ein Pull-Up-Netzwerk 102 und ein Pull-Down-Netzwerk 104 auf. Beide Netzwerke 102, 104 sind ausgebildet, um die Dual-Rail-Eingangsoperanden AM, AMN, BM, BMN zu empfangen. Ferner weist die erste Logiksstufe 101a einen ersten Potentialanschluss VDD für ein hohes Spannungspotential, einen zweiten Potentialanschluss VSS zum Zuführen eines niedrigen Spannungspotentials und einen Dual-Rail-Zwischenknoten INT, INTN auf.

Das Pull-Up-Netzwerk 102 ist zwischen dem ersten Potentialanschluss VDD und dem Dual-Rail-Zwischenknoten INT, INTN geschaltet. Das Pull-Up-Netzwerk 102 ist ausgebildet, um erste logische Zustände des Dual-Rail-Zwischenknoten INT, INTN gemäß der Verknüpfungsvorschrift aus den verschlüsselten Dual-Rail-Eingangsoperanden AM, AMN, BM, BMN und den Verschlüsselungsoperanden M, MN zu berechnen. Gemäß diesem Ausführungsbeispiel ist das Pull-Up-Netzwerk 102 ausgebildet, um logische Zustände des Dual-Rail-Zwischenknoten INT, INTN zu berechnen, die dadurch gekennzeichnet sind, dass der Dual-Rail-Zwischenknoten INT, INTN durch das Pull-Up-Netzwerk 102 auf das hohe Spannungspotential VDD gezogen wird.

Das Pull-Down-Netzwerk 104 ist zwischen dem zweiten Potentialanschluss VSS und dem Dual-Rail-Zwischenknoten INT, INTN geschaltet. Das Pull-Down-Netzwerk ist ausgebildet, um zweite logische Zustände gemäß der Verknüpfungsvorschrift aus den Eingangsoperanden AM, AMN, BM, BMN unter Berücksichtigung des Verschlüsselungsoperand M, MN zu berechnen. Zweite logische Zustände sind gemäß diesem Ausführungsbeispiel Zustände des verschlüsselten Ergebnisoperanden ZM, ZMN die dadurch gekennzeichnet sind, dass der Dual-Rail-Zwischenknoten INT, INTN durch das Pull-Down-Netzwerk auf das niedrige Spannungspotential VSS gezogen ist.

Die zweite Logikstufe weist ein Inverterpaar 106a, 106b auf, das zwischen dem Ausgang der Schaltung und dem Zwischenknoten INT, INTN geschaltet ist. Der erste Inverter 106a ist ausgebildet, um einen logischen Zustand des ersten Knotens INT des Dual-Rail-Zwischenknotens zu invertieren und als Ergebnisoperand ZM am Ausgang der Schaltung auszugeben. Der zweite Inverter 106b ist ausgebildet, um einen logischen Zustand des zweiten Knotens INTN des Dual-Rail-Zwischenknotens zu invertieren und als zweites Ausgangssignal ZMN des Dual-Rail-Ergebnisoperanden am Ausgang der Schaltung auszugeben. Die noch nicht invertierten Signale am Zwischenknoten INT, INTN sind bereits mit dem Verschlüsselungsoperanden M, MN verschlüsselt.

In diesem Ausführungsbeispiel wird ein logisch erster Zustand physikalisch durch ein hohes Spannungspotential VDD und ein zweiter logischer Zustand durch ein niedriges Spannungspotential VSS realisiert. Alternativ ist eine umgekehrte Zuordnung möglich.

Die Entschlüsselung der Eingangsoperanden AM, AMN, BM, BMN bzw. die Verschlüsselung der Ausgangsoperanden ZM, ZMN erfolgt zusammen mit der logischen Verknüpfung in einem Durchgang, d.h. die Eingangssignale AM, AMN, BM, BMN werden nicht zuerst entschlüsselt und dann logisch verknüpft, sondern es wird die logische Verknüpfung gleich basierend auf den verschlüsselten Eingangssignalen AM, AMN, BM, BMN unter Berücksichtigung der Maske M, MN durchgeführt. Ebenso erfolgt eine Verschlüsselung des Ausgangssignals ZM, ZMN nicht in einem nachgeschalteten Verschlüsselungsschritt, sondern wird direkt bei der logischen Verknüpfung der verschlüsselten Eingangssignale AM, AMN, BM, BMN unter Berücksichtigung der Maske M, MN durchgeführt.

Gemäß diesem Ausführungsbeispiel ist das Pull-Up-Netzwerk in PMOS-Technologie implementiert und das Pull-Down-Netzwerk in NMOS-Technologie.

Bei Verwendung einer einstufigen CMOS-Logik für die erste Logikstufe 101a wird aufgrund der physikalischen Eigenschaften der Effekt erzielt, dass, wenn an den Eingangsoperanden AM, AMN, BM, BMN, M, MN ein Übergang von logisch 1 auf logisch 0 auftritt, am Zwischenknoten INT, INTN nur ein Übergang von logisch 0 auf logisch 1 auftreten kann. Tritt umgekehrt am Eingang AM, AMN, BM, BMN, M, MN ein Übergang von logisch 0 auf logisch 1 auf, so kann am Zwischenknoten INT, INTN nur ein Übergang von logisch 1 auf logisch 0 auftreten. Zusätzlich lässt sich dadurch die Struktur bei komplexeren Gattern vereinfachen. Ferner besteht die Möglichkeit, dass sich Signalpfade für die beiden Knoten des Zwischenknotens INT, INTN Transistoren teilen. Dies führt zu einer Reduzierung der benötigten Fläche.

Der selbe Effekt tritt auch bei der zweiten Logikstufe 101b auf, die ebenfalls als einstufige CMOS-Logik realisiert ist.

2 veranschaulicht einen Übergang vom Berechnungszyklus in den Vorladezyklus und vom Vorladezyklus in einen weiteren Berechnungszyklus. Im Berechnungszyklus liegen an den Eingangssignalen AM, AMN, BM, BMN, M, MN sowie am Ausgangssignal ZM, ZMN gültige Werte an, die in 2 durch A1, B1, M1 und Z1 bezeichnet sind. Die Signale AM, BM, M, ZM weisen einen logischen Zustand 0 oder 1 auf und die dazugehörigen Dual-Rail-Signale AMN, BMN, MN, ZMN weisen den dazu invertierten logischen Zustand auf. Beim Übergang vom Berechnungszyklus in den Vorladezyklus nehmen alle Signale AM, AMN, BM, BMN, ZM, ZMN den gleichen logischen Wert, hier logisch 0 an. In diesen und 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 1, 1 angenommen werden. In diesem Fall sind die Zustände 0, 0 nicht erlaubt.

Durch den erfindungsgemäßen Ansatz wird sichergestellt, dass beim Übergang vom Berechnungszustand in den Vorladezustand der Ergebnisoperand frühestens in den Vorladezustand übergeht, wenn der erste Eingangsoperand ZM, ZMN in den Vorladezustand übergeht und spätestens in den Vorladezustand übergeht, wenn der letzte Eingangsoperand in den Vorladezustand übergeht. Ferner wird sichergestellt, dass der Ausgangsoperand ZM, ZMN in dem Vorladezustand bleibt, wenn er einmal in den Vorladezustand gewechselt hat.

Aus 2 ist ersichtlich, dass der Ergebnisoperand ZM, ZMN, beim Übergang in den Vorladezyklus, seinen Zustand beibehält, obwohl bereits der erste Eingangsoperand AM, AMN den Vorladezustand angenommen hat. Beim Wechsel des zweiten Eingangsoperanden BM, BMN in den Vorladezustand wechselt auch der Ergebnisoperand ZM, ZMN in den Vorladezustand. Alternativ wäre es auch möglich, dass der Ergebnisoperand ZM, ZMN bereits in den Vorladezustand wechselt, wenn der erste Ergebnisoperand AM, AMN in den Vorladezustand wechselt oder erst dann in den Vorladezustand geht, wenn der letzte Eingangsoperand M in den Vorladezustand geht.

Entsprechend wird beim Übergang vom Vorladezustand in den Berechnungszustand sichergestellt, dass der Ergebnisoperand ZM, ZMN erst dann in den Berechnungszustand übergeht, wenn Eingangssignale, die sich noch im Vorladezustand befinden, den logischen Zustand des Ergebnisoperanden ZM, ZMN nicht mehr verändern können. Spätestens, wenn der letzte Eingangsoperand in den Berechnungszustand übergegangen ist, muss auch der Ergebnisoperand in den Berechnungszustand übergehen. Gemäß 2 bleibt der Ergebnisoperand ZM, ZMN im Vorladezustand, obwohl der zweite Eingangsoperand BM bereits in den Berechnungszustand übergegangen ist. Der Ergebnisoperand ZM, ZMN wechselt in den Berechnungszustand, wenn der Verschlüsselungsoperand M, MN in den Berechnungszustand übergeht. Wären die logischen Zustände der Eingangsoperanden AM, AMN, M, MN bei der Berechnung des Ergebnisoperanden ZM, ZMN unerheblich, so könnte der Ergebnisoperand bereits in den Berechnungszustand übergehen, wenn der erste Eingangsoperand, in diesem Fall der Eingangsoperand BM, BMN in den Berechnungszustand übergeht. Wäre in diesem Fall der logische Zustand des ersten Eingangsoperanden AM, AMN zur Berechnung des logischen Zustands des Ergebnisoperanden ZM, ZMN relevant, so dürfte der Ergebnisoperand ZM, ZMN erst in den Berechnungszustand übergehen, wenn der erste Eingangsoperand AM, AMN als letzter Eingangsoperand in den Berechnungszustand übergegangen ist. Somit wird sichergestellt, dass der logische Zustand des Ergebnisoperanden ZM, ZMN beim Übergang vom Vorladezustand in den Berechnungszustand nicht kurzzeitig in einen logischen Zustand zurückfällt, der nicht dem logischen Endzustand des Ergebnisoperanden entspricht.

3 beschreibt eine Wertetabelle einer XOR2-Funktion, die eine optimierte Zuordnung für maskierte Dual-Rail-Paare darstellt. Dabei handelt es sich um eine Wertetabelle ohne Sicherheitsmerkmale, die einen Zwischenschritt zu einer gemäß der vorliegenden Erfindung optimierten Wertetabelle darstellt. Dabei beschreibt „I" in der ersten Spalte der Tabelle den Idle-Zustand, also den Vorladezustand des jeweiligen Dual-Rail-Eingangssignalpaares. Ein „Don't care" ist mit (–) gekennzeichnet.

Aus den Zeilen 2 bis 4 der Wertetabelle ist ersichtlich, dass der Ausgangsoperand ZM, ZMN der Logikschaltung dann gleichgültig ist, wenn ein oder mehrere Eingangsoperanden AM, AMN, BM, BMN, M, MN im Vorladezustand sind. Dies ist durch (–) in den ersten drei Zeilen des Ausgangsoperanden ZM, ZMN gekennzeichnet. Diese Beschreibung ist nachteilhaft, da mit der freien Wahl der don't care Zustände gerade im Übergangsbereich vom Vorladezustand auf den Berechnungszustand bzw. vom Berechnungszustand in den Vorladezustand wieder Glitches, also Störimpulse entstehen können.

4 zeigt eine Wertetabelle gemäß einem Ausführungsbeispiel der vorliegenden Erfindung für ein UND-Verknüpfung zwischen zwei maskierten Dual-Rail-Eingangssignalen am, anm und bm, bnm unter Berücksichtigung des Maskierungsoperanden m, mn. Der Dual-Rail-Ergebnisoperand ist mit qm, qnm gekennzeichnet. In den folgenden Gleichungen sind die Eingangsoperanden am, anm und bm, bnm durch AM, AMN und BM, BMN und der Ergebnisoperand qm, qnm durch ZM, ZMN gekennzeichnet.

Die in 4 gezeigte Wertetabelle ist eine, gemäß dem erfindungsgemäßen Ansatz, optimierte Wertetabelle, die eine Glitch-Freiheit einer auf dieser Wertetabelle basierenden Schaltung garantiert und die Schaltung damit sicherer macht. Dazu sind don't care Zustände des Ergebnisoperanden qm, qnm in der Wertetabelle optimal implementiert.

In dieser und den folgenden Wertetabellen sind don't care Zustände durch den Buchstaben „d", also beispielsweise „d1", „d2", „d3", „d4", „d5", „d6", „d7", „d8", „d9", „d10" gekennzeichnet. Don't care Zustände können bei einer Umsetzung der Wertetabelle in einer Logikschaltung durch die Zustände logisch 1 oder 0 ersetzt werden. Dabei werden don't care Zustände mit der gleichen Nummerierung durch den gleichen logischen Zustand ersetzt. Wird beispielsweise ein mit „d1" gekennzeichneter don't care Zustand durch logisch 0 ersetzt, so müssen alle übrigen mit „d1" gekennzeichneten don't care Zustände ebenfalls durch logisch 0 ersetzt werden.

Bei bekannten Wertetabellen kann der Ergebnisoperand qm, qnm einen undefinierten Zustand beim Übergang der Eingangsoperanden am, anm, bm, bnm, m, mn vom Berechnungszyklus in den Vorladezyklus oder umgekehrt aufweisen. Gemäß dem erfindungsgemäßen Ansatz sind undefinierten Zustände des Ergebnisoperanden qm, qnm, die zu Mehrfachübergängen am Ausgang der Schaltung führen können eliminiert, indem diese speziellen undefinierten Zustände in der erfindungsgemäßen Wertetabelle durch den definierten Zustand „0" ersetzt sind. Dadurch wird die Schaltung, die auf dieser Wertetabelle basiert, sicher.

Weisen alle Eingangsoperanden am, anm, bm, bnm, m, mn Vorladewerte auf, so weist der Ergebnisoperand qm, qnm ebenfalls Vorladewerte auf.

Weisen alle Eingangsoperanden am, anm, bm, bnm, m, mn Datenwerte auf, so weist der Ergebnisoperand qm, qnm ebenfalls Datenwerte auf.

Weisen nur einer oder nur zwei der Eingangsoperanden am, anm, bm, bnm, m, mn Vorladewerte auf, so wird der Ergebnisoperand qm, qnm abhängig von der Verknüpfungsvorschrift und abhängig von den Werten des oder der Eingangsoperanden am, anm, bm, bnm, m, mn, die Datenwerte aufweisen, auf den Zustand 0/0 oder 0/d oder d/0 gesetzt. Don't care Zustände „d" werden jedoch nur dann zugelassen, wenn daraus keine Glitches resultieren können. Indem ausgewählte don't care Zustände weiterhin zugelassen werden, reduziert sich der Schaltungsaufwand gegenüber Schaltungen, die gar keine don't care Zustände zulassen, erheblich.

Wird die in 4 gezeigte Wertetabelle als Wahrheitstabelle für eine UND-Verknüpfung angesehen, so kann die Wahrheitstabelle zu den in 4 gezeigten Gleichungen ZM = AM·BM + AM·M + BM·M ZMN = AMN·BMN + AMN·MN + BMN·MN; zusammengefasst werden.

Diese Gleichungen stellen eine optimale Umsetzung der Wertetabelle dar. Aufgrund der don't care Zustände, die durch „0" oder „1" ersetzt werden können, sind auch andere Gleichungen möglich.

Entsprechend zu der in 4 gezeigten Wertetabelle und Gleichungen für eine UND-Verknüpfung zeigen die 5 bis 10 Wertetabellen und Gleichungen für weitere Verknüpfungsvorschriften.

5 zeigt eine Wertetabelle gemäß einem weiteren Ausführungsbeispiel der vorliegenden Erfindung für ein XOR-Verknüpfung zwischen zwei maskierten Dual-Rail-Eingangssignalen am, anm und bm, bnm unter Berücksichtigung des Maskierungsoperanden m, mn. Der Dual-Rail-Ergebnisoperand ist mit qm, qnm gekennzeichnet.

Wird diese Wertetabelle als Wahrheitstabelle für die XOR-Verknüpfung angesehen, so kann die in 5 gezeigte Wahrheitstabelle zu den in 5 gezeigten Gleichungen ZM = AM·BM M + AMN·BMN·M + AMN·BM·MN + AM·BMN·MN ZMN = AMN·BM·M + AM·BMN·M + AM·BM·MN + AMN·BMN·MN; zusammengefasst werden. Diese Gleichungen stellen eine optimale Umsetzung der Wertetabelle dar. Aufgrund der don't care Zustände, die durch „0" oder „1" ersetzt werden können, sind auch andere Gleichungen möglich.

6 zeigt eine weitere Wertetabelle für eine XOR3-Verknüpfung, die zusätzlich noch einen dritten Dual-Rail-Eingangsoperanden cm, cnm aufweist.

Dabei gibt es keine Abhängigkeiten des Ausgangs von den Verschlüsselungsoperanden m oder mn. Somit ergeben sich die in 6 gezeigten Gleichungen ZM = AM·BM·CM + AMN·BMN·CM + AMN·BM·CMN + AM·BMN·CMN ZMN = AMN·BM·CM + AM·BMN·CM + AM·BM·CMN + AMN·BMN·CMN; für die Ergebnisoperanden. Diese Gleichung entspricht genau der Gleichung für die in 5 gezeigte XOR2-Verknüpfung, wenn m mit cm und mn mit cnm vertauscht wird.

7 zeigt eine Wertetabelle für eine UND3-Verknüpfung zwischen drei verschlüsselten Eingangsoperanden unter Berücksichtigung des Maskierungsoperanden. Aus der Wertetabelle ergeben sich die in 7 gezeigten Gleichungen ZM = AM·BM·CM + AM·M + BM·M + CM·M ZMN = AMN·BMN·CMN + AMN·MN + BMN·MN + CMN·MN.

8 zeigt eine weitere Wertetabelle für eine Multiplexerfunktion, bei der zwei Dual-Rail-Eingangsoperanden abhängig von einem Auswahlsignal sm, snm unter Berücksichtigung des Dual-Rail-Maskierungsoperanden gemultiplext werden. Es ergeben sich die in 8 gezeigten Gleichungen ZM = AM·SMN·MN + AM·SM·M + BM·SMN·M + BM·SM·MN MN = AMN·SMN·MN + AMN·SM·M + BMN·SMN·M + BMN·SM·MN; für die Ausgangsoperanden qm, qnm.

9 zeigte eine Wertetabelle für ein Ausführungsbeispiel einer Mehrheits-Verknüpfung zwischen drei Dual-Rail-Eingangsoperanden unter Berücksichtigung des Maskierungsoperanden.

Es ergeben sich die in 9 gezeigten Gleichungen ZM = AM·BM· + AM·CM + CM·BM ZMN = AMN·BMN + AMN·CMN + CMN·BMN; für die Ausgangsoperanden qm, qnm.

10 zeigte eine Wertetabelle für eine UNDODER21-Verknüpfung zwischen drei Dual-Rail-Eingangsoperanden unter Berücksichtigung der Dual-Rail-Maske. Dabei werden zunächst zwei Eingänge UND-verknüpft und anschließend das Ergebnis mit dem dritten Eingang ODER-verknüpft. Für die Ausgangsoperanden qm, qnm ergeben sich die in 10 gezeigten Gleichungen ZM = CM·MN + AM·BM·MN + AM·CM + BM·CM ZMN = CMN·M + AMN·BMN·M + AMN·CMN + BMN·CMN.

Die 1117 zeigen detaillierte Schaltbilder von Logikschaltungen gemäß Ausführungsbeispielen der vorliegenden Erfindung. Die Logikschaltungen weisen die anhand von 1 beschriebene Struktur auf, mit einer ersten Logikstufe bestehend aus dem Pull-Up-Netzwerk 102 und dem Pull-Down-Netzwerk 104 und einer zweiten Logikstufe bestehend aus dem Inverter 106a, b. Der Inverter 106a, b weist ebenfalls ein Pull-Down Netzwerk und ein Pull-Up-Netzwerk (nicht gezeigt in den Figuren) auf. Die 11 und 12 zeigen Logikschaltungen zur Verknüpfung zweier maskierter Dual-Rail-Eingangsoperanden AM, AMN, und BM, BMN unter Berücksichtigung eines Dual-Rail-Verschlüsselungsoperanden M, MN. Die 1317 zeigen Ausführungsbeispiele mit drei Eingangsoperanden und dem zusätzlichen Verschlüsselungsoperand. Die in den 1117 gezeigten Transistorschaltungen basieren auf den vorangegangenen Tabellen und weisen die in 1 beschriebene Struktur mit einem Pull-Down-Netzwerk 104 auf, das eine „1" der vorangegangenen Wertetabellen abbildet und ein Pull-Up-Netzwerk 102, das eine „0" der vorangegangenen Wertetabellen abbildet. Dazu sind die Pull-Down-Netzwerke 104 mit dem niedrigen Spannungspotential VSS verbunden. Die Pull-Up-Netzwerke 102 sind dazu mit dem hohen Spannungspotential VDD verbunden. Die entsprechend umgekehrte Abbildung ist alternativ möglich. Ferner weisen die in den 1117 gezeigten Logikschaltungen jeweils zwei Ausgangsinverter 106a, 106b auf, die zwischen den Zwischenknoten, die in den 1117 mit dem Bezugszeichen QMN_INT, QM_INT gekennzeichnet sind und benötigt werden, um den Pegel der Zwischenknoten zu invertieren und als Ergebnisoperand ZM, ZMN bereitzustellen.

Durch die Pull-Down-Netzwerke 104 wird jeweils nur einer der Knoten des Zwischenknotens entladen.

Dadurch dass bei den Dual-Rail-Schaltungstechniken im Berechnungszustand immer differentielle Werte angenommen werden, also 1/0 und 0/1, kann durch Vertauschen der beiden Ausgangsleitungen der Ausgangsoperanden ZM, ZMN der in den 1117 gezeigten Logikschaltung eine logische Invertierung des Gatters erreicht werden. Durch Vertauschen der Eingangspaare, also beispielsweise des ersten Eingangsoperand AM und des zweiten Eingangsoperand AMN des ersten Dual-Rail-Eingangsoperanden können die Eingangswerte invertiert werden. Damit ist es möglich, mit zwei unterschiedlichen Pull-Down-Netzwerken 104 und Pull-Up-Netzwerken 102 alle Logikfunktionen mit zwei Eingängen abzubilden. Für die Abbildung aller Logikfunktionen mit zwei und drei Eingängen werden nur vier Strukturen benötigt.

Die in den 1117 gezeigten Transistorschaltungen sind nur insoweit Transistor-reduziert, dass auch weiterhin eine gleiche Eingangslast für die beiden Signale eines Dual-Rail-Eingangs gewährleistet ist.

Die in 11 gezeigte Logikschaltung realisiert eine UND-Verknüpfung zwischen den Eingangsoperanden AM, AMN, BM, BMN unter Berücksichtigung des Verschlüsselungsoperanden M, MN. Die Logikschaltung weist zwei Einzelschaltungen auf, die zueinander symmetrisch sind, wobei die erste Schaltung (in 11 rechts angeordnet) die ersten Operanden AM, BM, M, ZM der jeweiligen Dual-Rail-Eingangs- und Ausgangsoperanden bearbeitet und die zweite Logikschaltung die dazu invertierten Operanden AMN, BMN, MN, ZMN. Beide Logikschaltungen weisen einen ersten Potentialanschluss für das hohe Spannungspotential VDD und einen zweiten Potentialanschluss für das niedrige Spannungspotential VSS auf. Vorzugsweise sind die sich entsprechenden Potentialanschlüsse der beiden Schaltungen elektrisch verbunden.

Im Folgenden wird die Logikschaltung, die die nichtinvertierten Operanden AM, BM, M, ZM bearbeitet detailliert beschrieben. Das Pull-Up-Netzwerk 102 der Logikschaltung ist eingangsseitig mit dem hohen Potentialanschluss VDD verbunden und ausgangsseitig mit dem Knoten QM_INT des Zwischenknotens. Das Pull-Up-Netzwerk 102 weist eine Reihenschaltung aus zwei Transistoren auf, die zwischen dem ersten Potentialanschluss VDD und dem Knoten QM_INT geschaltet ist. Der erste Transistor dieser Reihenschaltung wird von dem ersten Eingangsoperanden AM und der zweite Transistor von dem Eingangsoperanden BM angesteuert. Ferner weist das Pull-Up-Netzwerk 102 eine Parallelschaltung von zwei Transistoren auf, die mit ihren Source-Anschlüssen mit dem ersten Spannungsanschluss VDD verbunden sind und von dem ersten Eingangsoperanden AM bzw. dem zweiten Eingangsoperanden BM angesteuert werden. Mit ihren Drain-Anschlüssen sind die parallel geschalteten Transistoren über einen weiteren Transistor, der von dem Maskierungsoperanden M angesteuert wird, mit dem Knoten QM_INT verbunden.

Das Pull-Down-Netzwerk 104 ist symmetrisch zu dem Pull-Up-Netzwerk 102 aufgebaut, wobei die Source-Anschlüsse der Transistoren mit dem zweiten Spannungspotential VSS anstelle des ersten Spannungspotentials VDD verbunden sind. Der Knoten QM_INT ist mit dem Inverter 106a verbunden, der ausgebildet ist, um den Ausgangsoperanden ZM bereitzustellen, dessen logischer Zustand invertiert zu dem logischen Zustand des Knotens QM_INT ist.

Der Knoten QM_INT wird also durch das Pull-Up-Netzwerk 102 auf das hohe Spannungspotential VDD gezogen, wenn an den Eingangsoperanden AM, BM jeweils ein niedriges Spannungspotential anliegt, bzw. wenn an einem der Eingangsoperanden AM, BM ein niedriges Spannungspotential anliegt und an dem Maskierungsoperanden M ein niedriges Spannungspotential anliegt. Anderenfalls wird der Knoten QM_INT von dem Pull-Down-Netzwerk 104 auf das niedrige Spannungspotential gezogen, wenn an den Eingangsoperanden AM, BM jeweils das hohe Spannungspotential anliegt, bzw. wenn an einem der Eingangsoperanden AM, BM das hohe Spannungspotential und an dem Maskierungsoperanden M das hohe Spannungspotential anliegt.

12 zeigt eine Logikschaltung gemäß einem Ausführungsbeispiel der vorliegenden Erfindung, die eine XOR2-Verknüpfung zwischen zwei Dual-Rail-Eingangsoperanden AM, AMN, BM, BMN unter Berücksichtigung des Maskierungssignals M, MN ausführt. Das Pull-Up-Netzwerk 102 der Logikschaltung weist eine Reihenschaltung aus drei Transistoren auf, wobei der Source-Anschluss des ersten Transistors mit dem hohen Spannungspotential VDD und der Drain-Anschluss des dritten Transistors mit dem Knoten QM_INT verbunden ist. Der erste Transistor wird von dem Maskierungsoperanden MN, der zweite Transistor von dem zweiten Eingangsoperanden BMN und der dritte Transistor von dem Eingangsoperanden AM angesteuert. Parallel zu dem zweiten und dritten Transistor sind zwei weitere Transistoren geschaltet, wobei der erste Transistor von dem zweiten Eingangsoperanden BM und der zweite Transistor von dem Eingangsoperanden AMN angesteuert wird. Symmetrisch dazu weist die Pull-Up-Schaltung 102 eine weitere Transistorschaltung auf, die zwischen dem hohen Spannungspotential VDD und dem zweiten Knoten QMN_INT geschaltet ist, und von den jeweils invertierten Eingangsoperanden angesteuert wird. Beide Transistorschaltungen weisen Verbindungen auf, die es ermöglichen, Transistoren gemeinsam zu nutzen, um die Zwischenknoten QM_INT, QMN_INT auf das hohe Spannungspotential zu ziehen. Beispielsweise besteht eine Verbindung zwischen den Drain-Anschlüssen der zweiten Transistoren der aus drei Transistoren bestehenden Transistorschaltung und eine Verbindung zwischen den Drain-Anschlüssen der ersten Transistoren der, aus zwei Transistoren bestehenden Parallelschaltung.

Das Pull-Down-Netzwerk 104 ist symmetrisch zu dem Pull-Up-Netzwerk ausgebildet, mit dem Unterschied, dass die Source-Anschlüsse der Transistoren, die beim Pull-Up-Netzwerk 102 mit dem ersten Spannungspotential VDD verbunden sind, bei der Pull-Down-Schaltung mit dem niedrigen Spannungspotential VSS verbunden sind. Die Zwischenknoten QM_INT, QMN_INT sind wiederum über das Inverterpaar 106a, 106b mit dem Ausgang der Logikschaltung verbunden und liefern die Ergebnisoperanden ZM, ZMN.

Das Pull-Up-Netzwerk ist somit ausgebildet, um den Knoten QM_INT auf das hohe Spannungspotential zu ziehen, wenn entweder der ersten Eingangsoperand AM, der zweite invertierte Eingangsoperand BMN und der invertierte Maskierungsoperand MN oder der invertierte erste Operand AMN, der zweite Operand BM und der invertierte Maskierungsoperand MN oder der invertierte erste Operand AMN, der zweite invertierte Operand BMN und der Maskierungsoperand M oder der erste Eingangsoperand AM, der zweite Eingangsoperand BM und der Maskierungsoperand M auf dem niedrigen Spannungspotential liegen. Andererseits wird der Zwischenknoten QM_INT auf das niedrige Spannungspotential gezogen, wenn auf der entsprechenden Verknüpfung der genannten Transistoren der hohe Spannungspegel anliegt.

13 zeigt ein weiteres Ausführungsbeispiel einer Logikschaltung zur Implementierung einer UND3-Verknüpfung zwischen drei Dual-Rail-Eingangsoperanden AM, AMN, BM, BMN, CM, CMN unter Berücksichtigung des Maskierungsoperanden M, MN.

Die Logikschaltung weist zwei Einzelschaltungen auf, die zueinander symmetrisch sind, wobei die erste Schaltung (in 13 rechts angeordnet) die ersten Operanden AM, BM, M, ZM der jeweiligen Dual-Rail-Eingangs- und Ausgangsoperanden bearbeitet und die zweite Logikschaltung die dazu invertierten Operanden AMN, BMN, MN, ZMN. Beide Logikschaltungen weisen einen ersten Potentialanschluss für das hohe Spannungspotential VDD und einen zweiten Potentialanschluss für das niedrige Spannungspotential VSS auf. Vorzugsweise sind die sich entsprechenden Potentialanschlüsse der beiden Schaltungen elektrisch verbunden.

Im Folgenden wird die Logikschaltung, die die nichtinvertierten Operanden AM, BM, M, ZM bearbeitet detailliert beschrieben. Das Pull-Up-Netzwerk 102 der Logikschaltung ist eingangsseitig mit dem hohen Potentialanschluss VDD verbunden und ausgangsseitig mit dem Knoten QM_INT des Zwischenknotens. Das Pull-Up-Netzwerk 102 weist eine Reihenschaltung aus drei Transistoren auf, die zwischen dem ersten Potentialanschluss VDD und dem Knoten QM_INT geschaltet ist. Der erste Transistor dieser Reihenschaltung wird von dem ersten Eingangsoperanden AM, der zweite Transistor von dem Eingangsoperanden BM und der dritte Transistor von dem Eingangsoperanden CM angesteuert. Ferner weist das Pull-Up-Netzwerk 102 eine Parallelschaltung von drei Transistoren auf, die mit ihren Source-Anschlüssen mit dem ersten Spannungsanschluss VDD verbunden sind und von dem ersten Eingangsoperanden AM bzw. dem zweiten Eingangsoperanden BM und dem dritten Eingangsoperanden CM angesteuert werden. Mit ihren Drain-Anschlüssen sind die parallel geschalteten Transistoren über einen weiteren Transistor, der von dem Maskierungsoperanden M angesteuert wird, mit dem Knoten QM_INT verbunden.

Das Pull-Down-Netzwerk 104 ist symmetrisch zu dem Pull-Up-Netzwerk 102 aufgebaut, wobei die Source-Anschlüsse der Transistoren mit dem zweiten Spannungspotential VSS anstelle des ersten Spannungspotentials VDD verbunden sind. Der Knoten QM_INT ist mit dem Inverter 106a verbunden, der ausgebildet ist, um den Ausgangsoperanden ZM bereitzustellen, dessen logischer Zustand invertiert zu dem logischen Zustand des Knotens QM_INT ist.

Der Knoten QM_INT wird also durch das Pull-Up-Netzwerk 102 auf das hohe Spannungspotential VDD gezogen, wenn an den Eingangsoperanden AM, BM, CM jeweils ein niedriges Spannungspotential anliegt, bzw. wenn an einem der Eingangsoperanden AM, BM, CM ein niedriges Spannungspotential anliegt und an dem Maskierungsoperanden M ein niedriges Spannungspotential anliegt. Anderenfalls wird der Knoten QM_INT von dem Pull-Down-Netzwerk 104 auf das niedrige Spannungspotential gezogen, wenn an den Eingangsoperanden AM, BM, CM jeweils das hohe Spannungspotential anliegt, bzw. wenn an einem der Eingangsoperanden AM, BM, CM das hohe Spannungspotential und an dem Maskierungsoperanden M das hohe Spannungspotential anliegt.

14 zeigt ein weiteres Ausführungsbeispiel einer Logikschaltung zur Implementierung einer UNDODER21-Verknüpfung zwischen drei Dual-Rail-Eingangsoperanden AM, AMN, BM, BMN, CM, CMN unter Berücksichtigung des Maskierungsoperanden M, MN. Der strukturelle Aufbau der Transistorschaltung entspricht dem anhand der 11 und 12 beschriebenen Aufbau. Die genaue Verschaltung der Transistoren kann der 14 entnommen werden.

Die in 14 gezeigten Gatter entsprechen den in 13 gezeigten Gattern, wobei die Signalanschlüsse für den dritten Eingangsoperanden CM, CMN und die Signalanschlüsse für den Maskierungsoperanden M, MN vertauscht sind.

15 zeigt ein weiteres Ausführungsbeispiel einer Logikschaltung zur Implementierung einer XOR3-Verknüpfung zwischen drei Dual-Rail-Eingangsoperanden AM, AMN, BM, BMN, CM, CMN. Der strukturelle Aufbau der Transistorschaltung entspricht dem anhand der 11 und 12 beschriebenen Aufbau. Die genaue Verschaltung der Transistoren kann der 15 entnommen werden.

Im Unterschied zu den vorangegangenen Ausführungsbeispielen wird bei der Implementierung der XOR3-Verknüpfung der Dual-Rail-Maskierungsoperand M, MN nicht benötigt, da sich die Maske aus der Funktion herausrechnet. Dies ergibt sich daraus, dass gemäß den hier beschriebenen Ausführungsbeispielen zur Maskierung eine XOR-Verknüpfung der Operanden mit dem Maskierungsoperanden verwendet wird.

Die in 15 gezeigten Gatter entsprechen den in 12 gezeigten Gattern, wobei die Signalanschlüsse für den dritten Eingangsoperanden CM, CMN durch die Signalanschlüsse für den Maskierungsoperanden M, MN ersetzt sind.

16 zeigt ein weiteres Ausführungsbeispiel einer Logikschaltung zur Implementierung einer Multiplexer-Verknüpfung zwischen zwei Dual-Rail-Eingangsoperanden AM, AMN, BM, BMN unter Verwendung eines Auswahloperanden SM, SMN unter Berücksichtigung des Maskierungsoperanden M, MN. Der strukturelle Aufbau der Transistorschaltung entspricht dem anhand der 11 und 12 beschriebenen Aufbau. Die genaue Verschaltung der Transistoren kann der 16 entnommen werden.

17 zeigt ein weiteres Ausführungsbeispiel einer Logikschaltung zur Implementierung einer Mehrheitsfunktion zwischen drei Dual-Rail-Eingangsoperanden AM, AMN, BM, BMN, CM, CMN. Der strukturelle Aufbau der Transistorschaltung entspricht dem anhand der 11 und 12 beschriebenen Aufbau. Die genaue Verschaltung der Transistoren kann der 17 entnommen werden. Aufgrund der speziellen Verknüpfungsvorschrift ist der Maskierungsoperand nicht erforderlich und kann an der Logikschaltung vorbeigeführt werden.

Die in 17 gezeigten Gatter entsprechen den in 11 gezeigten Gattern, wobei die Signalanschlüsse für den dritten Eingangsoperanden CM, CMN und die Signalanschlüsse für den Maskierungsoperanden M, MN ersetzt sind.

Die in den 1117 gezeigten Transistorschaltungen sind beispielhaft gewählt und können durch Schaltungen mit gleicher Funktionalität ersetzt werden. Der erfindungsgemäße Ansatz lässt sich auf Schaltungen mit vier oder mehr Eingängen zum Empfangen weiterer Dual-Rail-Signale, erweitern. Ebenso ist die vorliegende Erfindung nicht auf die gezeigte Transistorlogik und Transistortechnik beschränkt.

101a, b
Logikstufen
102
Pull-Up-Netzwerk
104
Pull-Down-Netzwerk
106a, b
Inverter
AM, AMN
erster verschlüsselter Dual-Rail-Eingangsoperand
BM, BMN
zweiter verschlüsselter Dual-Rail-Eingangsoperand
CM, CMN
dritter verschlüsselter Dual-Rail-Eingangsoperand
M, MN
Dual-Rail-Verschlüsselungsoperand
ZM, ZMN
verschlüsselter Dual-Rail-Ergebnisoperand
INT, INTN, QM_INT, QMN_INT
Dual-Rail-Zwischenknoten


Anspruch[de]
Logikschaltung zum Berechnen eines verschlüsselten Ergebnisoperanden aus einem ersten verschlüsselten Eingangsoperanden und einem zweiten verschlüsselten Eingangsoperanden gemäß einer Verknüpfungsvorschrift, wobei die verschlüsselten Eingangsoperanden und der verschlüsselte Ergebnisoperand mit einem Verschlüsselungsoperand verschlüsselte Operanden sind, mit folgenden Merkmalen:

einem ersten Eingang zum Empfangen des ersten verschlüsselten Eingangsoperanden (AM, AMN);

einem zweiten Eingang zum Empfangen des zweiten verschlüsselten Eingangsoperanden (BM, BMN);

einem Verschlüsselungseingang zum Empfangen des Verschlüsselungsoperanden (M, MN);

einem Ausgang zum Ausgeben des verschlüsselten Ergebnisoperanden (ZM, ZMN);

wobei jeder Operand einen ersten logischen Zustand oder einen zweiten logischen Zustand aufweist;

mindestens einer ersten Logikstufe (101a) und mindestens einer zweiten Logikstufe (101b), wobei die mindestens eine erste Logikstufe zwischen den Eingängen und einem Zwischenknoten (INT, INTN) geschaltet ist, und die mindestens eine zweite Logikstufe zwischen dem Zwischenknoten und dem Ausgang geschaltet ist und wobei die Logikstufen so angeordnet sind, dass ein Logikpfad von einem der Eingänge der Logikschaltung bis zu dem Ausgang der Logikschaltung eine geradzahlige Anzahl von Logikstufen aufweist, und

wobei die Logikstufen ausgebildet sind, um gemäß der Verknüpfungsvorschrift, unter Berücksichtigung des Verschlüsselungsoperanden, den ersten oder zweiten logischen Zustand des verschlüsselten Ergebnisoperanden aus den verschlüsselten Eingangsoperanden zu berechnen und an dem Ausgang einzuprägen und wobei die Logikschaltung ausgebildet ist, dass unabhängig von einer Reihenfolge des Eintreffens der verschlüsselten Eingangsoperanden, abhängig von der Verknüpfungsvorschrift der logische Zustand des verschlüsselten Ergebnisoperanden beibehalten wird oder genau einmal geändert wird.
Logikschaltung gemäß Anspruch 1, wobei jede der Logikstufen (101a, 101b) ausgebildet ist, um einen logischen Zustand des Ausgangs der Logikstufe (INT, INTN, ZM, ZMN) vom ersten logischen Zustand in den zweiten logischen Zustand zu wechseln, wenn an einem der Eingänge der Logikstufe (AM, AMN, BM, BMN, INT, INTN) ein Übergang von dem zweiten logischen Zustand in den ersten logischen Zustand auftritt, und wobei jede der Logikstufen (101a, 101b) ausgebildet ist, um einen logischen Zustand des Ausgangs der Logikstufe (INT, INTN, ZM, ZMN) vom zweiten logischen Zustand in den ersten logischen Zustand zu wechseln, wenn an einem der Eingänge der Logikstufe (AM, AMN, BM, BMN, INT, INTN) ein Übergang von dem ersten logischen Zustand in den zweiten logischen Zustand auftritt. Logikschaltung gemäß einem der vorangegangenen Ansprüche, wobei die erste Logikstufe ein Pull-Up-Netzwerk (102) aufweist, das zwischen einem ersten Potentialanschluss (VDD) und dem Zwischenknoten (INT, INT) geschaltet ist, und ausgebildet ist, um erste logische Zustände gemäß der Verknüpfungsvorschrift aus den Eingangsoperanden (AM, AMN, BM, BMN) zu berechnen und auf dem Zwischenknoten einzuprägen; und wobei die erste Logikstufe ein Pull-Down-Netzwerk (104) aufweist, das zwischen einem zweiten Potentialanschluss (GND) und dem Zwischenknoten geschaltet ist, und ausgebildet ist, um zweite logische Zustände gemäß der Verknüpfungsvorschrift aus den Eingangsoperanden zu berechnen und auf dem Zwischenknoten einzuprägen. Logikschaltung gemäß einem der vorangegangenen Ansprüche, wobei die zweite Logikstufe ein Inverter (106a, 106b) ist. Logikschaltung gemäß einem der vorangegangenen Ansprüche, wobei die verschlüsselten Eingangsoperanden (AM, AMN, BM, BMN) in einem Vorladezyklus den ersten logischen Zustand aufweisen und in einem Berechnungszyklus den ersten oder den zweiten logischen Zustand aufweisen, und wobei die Logikschaltung ausgebildet ist, um bei einem Übergang vom Berechnungszyklus in den Vorladezyklus auf dem Ausgang den ersten logischen Zustand zu halten, wenn der Ausgang den ersten logischen Zu- stand bereits aufweist, oder den ersten logischen Zustand einzuprägen, wenn der Ausgang den zweiten logischen Zustand aufweist. Logikschaltung gemäß Anspruch 5, wobei die Logikschaltung ausgebildet ist, um beim Übergang vom Vorladezyklus in den Berechnungszyklus den ersten logischen Zustand auf dem Ausgang zu halten, wenn der Ausgang gemäß der Verknüpfungsvorschrift im Berechnungszyklus den ersten logischen Zustand aufweist oder den zweiten logischen Zustand einzuprägen, wenn der Ausgang gemäß der Verknüpfungsvorschrift im Berechnungszyklus den zweiten logischen Zustand aufweist. Logikschaltung gemäß einem der vorangegangenen Ansprüche, wobei die Logikstufen (101a, 101b) jeweils in einstufiger Transistor-Logik ausgebildet sind. Logikschaltung gemäß einem der vorangegangenen Ansprüche, wobei die Verschlüsselungsvorschrift eine XOR-Verknüpfung oder eine NXOR-Verknüpfung ist. Logikschaltung gemäß einem der vorangegangenen Ansprüche, ferner mit einem dritten Eingang zum Empfangen eines dritten Eingangsoperanden (CM, CMN). Logikschaltung gemäß einem der vorangegangenen Ansprüche, wobei die Operanden (AM, AMN, BM, BMN, CM, CMN, ZM, ZMN, M, MN) Dual-Rail-Operanden und der Zwischenknoten ein Dual-Rail-Zwischenknoten (INT, INTN) ist. Logikschaltung gemäß Anspruch 10, wobei jeder Dual-Rail-Operand (AM, AMN, BM, BMN, CM, CMN, ZM, ZMN, M, MN) aus einem ersten Operand (AM, BM, CM, ZM, M) und einem zweiten Operand (AMN, BMN, CMN, ZMN, MN) besteht, und wobei der erste Operand und der zweite Operand eines Dual-Rail-Operanden im Vorladezyklus jeweils gleiche logische Zustände als Vorladewert und im Berechnungszyklus zueinander invertierte logische Zustände als Berechnungswert aufweisen. Logikschaltung gemäß Anspruch 11, wobei die Logikstufen (101a, 101b) ausgebildet sind, um bei einem Übergang eines der Dual-Rail-Eingangsoperanden (AM, AMN, BM, BMN, CM, CMN) vom Berechnungswert in den Vorladewert, den Vorladewert am Dual-Rail-Ausgangsoperanden (ZM, ZMN) einzuprägen oder den logischen Zustand des Dual-Rail-Ausgangsoperanden beizubehalten. Logikschaltung gemäß einem der Ansprüche 11 oder 12, wobei die Logikstufen (101a, 101b) ausgebildet sind, um bei einem Übergang der Dual-Rail-Eingangsoperanden (AM, AMN, BM, BMN, CM, CMN) vom Vorladewert in den Berechnungswert, den Vorladewert am Dual-Rail-Ausgangsoperanden (ZM, ZMN) beizubehalten bis der logische Zustand des Dual-Rail-Ausgangsoperanden durch die Dual-Rail-Eingangsoperanden, die bereits Berechnungswerte aufweisen, gemäß der Berechnungsvorschrift definiert ist. Logikschaltung gemäß einem der vorangegangenen Ansprüche, wobei die Verknüpfungsvorschrift eine AND-, eine NAND-, eine OR-, eine NOR-, eine XOR-, eine NXOR-, eine ANDOR-, eine ORAND-, eine Multiplexer- oder eine Mehrheitsfunktion ist. Logikschaltung gemäß einem der vorangegangenen Ansprüche, wobei die Verknüpfungsvorschrift eine UND-Verknüpfung aus zwei verschlüsselten Dual-Rail-Eingangsoperanden (AM, AMN, BM, BMN) gemäß der Verknüpfungstabelle ist, wobei mit „d1", „d2", „d3", „d4", „d5", „d6" gekennzeichnete Einträge einen ersten logischen Zustand oder einen zweiten logischen Zustand aufweisen. Logikschaltung gemäß einem der vorangegangenen Ansprüche, wobei die Verknüpfungsvorschrift eine UND-Verknüpfung aus zwei verschlüsselten Dual-Rail-Eingangsoperanden (AM, AMN, BM, BMN) gemäß den Gleichungen ZM = AM·BM + AM·M + BM·M ZMN = AMN·BMN + AMN·MN + BMN·MN; ist, wobei das „·"-Zeichen eine UND-Verknüpfung und das „+"-Zeichen eine ODER-Verknüpfung darstellt. Logikschaltung gemäß einem der vorangegangenen Ansprüche, wobei die Verknüpfungsvorschrift eine XOR-Verknüpfung aus zwei verschlüsselten Dual-Rail-Eingangsoperanden (AM, AMN, BM, BMN) gemäß der Verknüpfungstabelle Logikschaltung gemäß einem der vorangegangenen Ansprüche, wobei die Verknüpfungsvorschrift eine XOR-Verknüpfung aus zwei verschlüsselten Dual-Rail-Eingangsoperanden (AM, AMN, BM, BMN) gemäß den Gleichungen ZM = AM·BM·M + AMN·BMN·M + AMN·BM·MN + AM·BMN·MN ZMN = AMN·BM·M + AM·BMN·M + AM·BM·MN + AMN·BMN·MN; ist, wobei das „·"-Zeichen eine UND-Verknüpfung und das „+"-Zeichen eine ODER-Verknüpfung darstellt. Logikschaltung gemäß einem der Ansprüche 9 bis 14, wobei die Verknüpfungsvorschrift eine XOR-Verknüpfung aus drei verschlüsselten Dual-Rail-Eingangsoperanden (AM, AMN, BM, BMN, CM, CMN) gemäß der Verknüpfungstabelle ist, wobei mit „d1", „d2", „d3", „d4", „d5", „d6", „d7", „d8" gekennzeichnete Einträge einen ersten logischen Zustand oder einen zweiten logischen Zustand aufweisen. Logikschaltung gemäß einem der Ansprüche 9 bis 14, wobei die Verknüpfungsvorschrift eine XOR-Verknüpfung aus drei verschlüsselten Dual-Rail-Eingangsoperanden (AM, AMN, BM, BMN, CM, CMN) gemäß den Gleichungen ZM = AM·BM·CM + AMN·BMN·CM + AMN·BM·CMN + AM·BMN·CMN ZMN = AMN·BM·CM + AM·BMN·CM + AM·BM·CMN + AMN·BMN·CMN; ist, wobei das „·"-Zeichen eine UND-Verknüpfung und das „+"-Zeichen eine ODER-Verknüpfung darstellt. Logikschaltung gemäß einem der Ansprüche 9 bis 14, wobei die Verknüpfungsvorschrift eine UND-Verknüpfung aus drei verschlüsselten Dual-Rail-Eingangsoperanden (AM, AMN, BM, BMN, CM, CMN) gemäß der Verknüpfungstabelle ist, wobei mit „d1", „d2", „d3", „d4" gekennzeichnete Einträge einen ersten logischen Zustand oder einen zweiten logischen Zustand aufweisen, wobei mit einem gleichen „d"-Eintrag gekennzeichnete Zustände den gleichen logischen Zustand aufweisen. Logikschaltung gemäß einem der Ansprüche 9 bis 14, wobei die Verknüpfungsvorschrift eine UND-Verknüpfung aus drei verschlüsselten Dual-Rail-Eingangsoperanden (AM, AMN, BM, BMN, CM, CMN) gemäß den Gleichungen ZM = AM·BM·CM + AM·M + BM·M + CM·M ZMN = AMN·BMN·CMN + AMN·MN + BMN·MN + CMN·MN; ist, wobei das „·"-Zeichen eine UND-Verknüpfung und das „+"-Zeichen eine ODER-Verknüpfung darstellt. Logikschaltung gemäß einem der Ansprüche 9 bis 14, wobei die Verknüpfungsvorschrift eine Multiplexerverknüpfung aus zwei verschlüsselten Dual-Rail-Eingangsoperanden (AM, AMN, BM, BMN) und einem verschlüsselten Dual-Rail-Auswahlsignal (SM, SMN) gemäß der Verknüpfungstabelle ist, wobei mit „d1", „d2", „d3", „d4", „d5", „d6", „d7", „d8", „d9", „d10" gekennzeichnete Einträge einen ersten logischen Zustand oder einen zweiten logischen Zustand aufweisen, wobei mit einem gleichen „d"-Eintrag gekennzeichnete Zustände den gleichen logischen Zustand aufweisen. Logikschaltung gemäß einem der Ansprüche 9 bis 14, wobei die Verknüpfungsvorschrift eine Multiplexerverknüpfung aus zwei verschlüsselten Dual-Rail-Eingangsoperanden (AM, AMN, BM, BMN) und einem verschlüsselten Dual-Rail-Auswahlsignal (SM, SMN) gemäß der Gleichung ZM = AM·SMN·MN + AM·SM·M + BM·SMN·M + BM·SM·MN ZMN = AMN·SMN·MN + AMN·SM·M + BMN·SMN·M + BMN·SM·MN; ist, wobei das „·"-Zeichen eine UND-Verknüpfung und das „+"-Zeichen eine ODER-Verknüpfung darstellt. Logikschaltung gemäß einem der Ansprüche 9 bis 14, wobei die Verknüpfungsvorschrift eine Mehrheits-Verknüpfung aus drei verschlüsselten Dual-Rail-Eingangsoperanden (AM, AMN, BM, BMN, CM, CMN) gemäß der Verknüpfungstabelle ist, wobei mit „d1", „d2" gekennzeichnete Einträge einen ersten logischen Zustand oder einen zweiten logischen Zustand aufweisen, wobei mit einem gleichen „d"-Eintrag gekennzeichnete Zustände den gleichen logischen Zustand aufweisen. Logikschaltung gemäß einem der Ansprüche 9 bis 14, wobei die Verknüpfungsvorschrift eine Mehrheits-Verknüpfung aus drei verschlüsselten Dual-Rail-Eingangsoperanden (AM, AMN, BM, BMN, CM, CMN) gemäß den Gleichungen ZM = AM·BM· + AM·CM + CM·BM ZMN = AMN·BMN + AMN·CMN + CMN·BMN; ist, wobei das „·"-Zeichen eine UND-Verknüpfung und das „+"-Zeichen eine ODER-Verknüpfung darstellt. Logikschaltung gemäß einem der Ansprüche 9 bis 14, wobei die Verknüpfungsvorschrift eine UNDODER-Verknüpfung aus drei verschlüsselten Dual-Rail-Eingangsoperanden (AM, AMN, BM, BMN, CM, CMN) gemäß der Verknüpfungstabelle ist, wobei mit „d1", „d2", „d3", „d4" gekennzeichnete Einträge einen ersten logischen Zustand oder einen zweiten logischen Zustand aufweisen, wobei mit einem gleichen „d"-Eintrag gekennzeichnete Zustände den gleichen logischen Zustand aufweisen. Logikschaltung gemäß einem der Ansprüche 9 bis 14, wobei die Verknüpfungsvorschrift eine UNDODER-Verknüpfung aus drei verschlüsselten Dual-Rail-Eingangsoperanden (AM, AMN, BM, BMN, CM, CMN) gemäß den Gleichungen ZM = CM·MN + AM·BM·MN + AM·CM + BM·CM ZMN = CMN·M + AMN·BMN·M + AMN·CMN + BMN·CMN; ist, wobei das „·"-Zeichen eine UND-Verknüpfung und das „+"-Zeichen eine ODER-Verknüpfung darstellt. Verfahren zum Berechnen eines verschlüsselten Dual-Rail-Ergebnisoperanden aus einem ersten verschlüsselten Dual-Rail-Eingangsoperand und einem zweiten verschlüsselten Dual-Rail-Eingangsoperand gemäß einer Verknüpfungsvorschrift, wobei die verschlüsselten Eingangsoperanden und der verschlüsselte Ergebnisoperand mit einem Verschlüsselungsoperand verschlüsselte Operanden sind, das folgende Schritte aufweist:

Empfangen des ersten verschlüsselten Eingangsoperanden (AM, AMN) an einem ersten Eingang;

Empfangen des zweiten verschlüsselten Eingangsoperanden (BM, BMN) an einem zweiten Eingang;

Empfangen des Verschlüsselungsoperanden (M, MN);

wobei jeder Operand einen ersten logischen Zustand oder einen zweiten logischen Zustand aufweist;

Berechnen des ersten oder zweiten logischen Zustands des verschlüsselten Ergebnisoperanden (ZM, ZMN) aus den Eingangsoperanden gemäß der Verknüpfungsvorschrift, unter Berücksichtigung des Verschlüsselungsoperanden, und Einprägen des ersten oder zweiten logischen Zustands des verschlüsselten Ergebnisoperanden an einem Ausgang, wobei unabhängig von einer Reihenfolge des Eintreffens der verschlüsselten Eingangsoperanden an den Eingängen, abhängig von der Verknüpfungsvorschrift der logische Zustand des verschlüsselten Ergebnisoperanden am Ausgang beibehalten wird oder genau einmal geändert wird.
Logikschaltung zum Berechnen eines verschlüsselten Ergebnisoperanden aus einem ersten verschlüsselten Eingangsoperanden, einem zweiten verschlüsselten Ein- gangsoperanden und einem dritten verschlüsselten Eingangsoperaden gemäß einer Verknüpfungsvorschrift, wobei die verschlüsselten Eingangsoperanden und der verschlüsselte Ergebnisoperand mit einem Verschlüsselungsoperand (M, MN) verschlüsselte Operanden sind, mit folgenden Merkmalen:

einem ersten Eingang zum Empfangen des ersten verschlüsselten Eingangsoperanden (AM, AMN);

einem zweiten Eingang zum Empfangen des zweiten verschlüsselten Eingangsoperanden (BM, BMN);

einem dritten Eingang zum Empfangen des dritten verschlüsselten Eingansoperaden (CM, CMN);

einem Ausgang zum Ausgeben des verschlüsselten Ergebnisoperanden (ZM, ZMN);

wobei jeder Operand einen ersten logischen Zustand oder einen zweiten logischen Zustand aufweist;

mindestens einer ersten Logikstufe (101a) und mindestens einer zweiten Logikstufe (101b), wobei die mindestens eine erste Logikstufe zwischen den Eingängen und einem Zwischenknoten (INT, INTN) geschaltet ist, und die mindestens eine zweite Logikstufe zwischen dem Zwischenknoten und dem Ausgang geschaltet ist und wobei die Logikstufen so angeordnet sind, dass ein Logikpfad von einem der Eingänge der Logikschaltung bis zu dem Ausgang der Logikschaltung eine geradzahlige Anzahl von Logikstufen aufweist, und

wobei die Logikstufen ausgebildet sind, um gemäß der Verknüpfungsvorschrift, den ersten oder zweiten logischen Zustand des verschlüsselten Ergebnisoperanden aus den verschlüsselten Eingangsoperanden zu berechnen und an dem Ausgang einzuprägen und wobei die Logikschaltung ausgebildet ist, dass unabhängig von einer Reihenfolge des Eintreffens der verschlüsselten Eingangsoperanden, abhängig von der Verknüpfungsvorschrift der logische Zustand des verschlüsselten Ergebnisoperanden beibehalten wird oder genau einmal geändert wird; und

wobei die Verknüpfungsvorschrift eine Mehrheits-Verknüpfung aus drei verschlüsselten Dual-Rail-Eingangsoperanden (AM, AMN, BM, BMN, CM, CMN) gemäß der Verknüpfungstabelle ist, wobei mit „d1", „d2" gekennzeichnete Einträge einen ersten logischen Zustand oder einen zweiten logischen Zustand aufweisen, wobei mit einem gleichen „d"-Eintrag gekennzeichnete Zustände den gleichen logischen Zustand aufweisen.
Logikschaltung zum Berechnen eines verschlüsselten Ergebnisoperanden aus einem ersten verschlüsselten Eingangsoperanden, einem zweiten verschlüsselten Eingangsoperanden und einem dritten verschlüsselten Eingangsoperanden gemäß einer Verknüpfungsvorschrift, wobei die verschlüsselten Eingangsoperanden und der verschlüsselte Ergebnisoperand mit einem Verschlüsselungsoperand (M, MN) verschlüsselte Operanden sind, mit folgenden Merkmalen:

einem ersten Eingang zum Empfangen des ersten verschlüsselten Eingangsoperanden (AM, AMN);

einem zweiten Eingang zum Empfangen des zweiten verschlüsselten Eingangsoperanden (BM, BMN);

einem dritten Eingang zum Empfangen des dritten verschlüsselten Eingangsoperanden (CM, CMN);

einem Ausgang zum Ausgeben des verschlüsselten Ergebnisoperanden (ZM, ZMN);

wobei jeder Operand einen ersten logischen Zustand oder einen zweiten logischen Zustand aufweist;

mindestens einer ersten Logikstufe (101a) und mindestens einer zweiten Logikstufe (101b), wobei die mindestens eine erste Logikstufe zwischen den Eingängen und einem Zwischenknoten (INT, INTN) geschaltet ist, und die mindestens eine zweite Logikstufe zwischen dem Zwischenknoten und dem Ausgang geschaltet ist und wobei die Logikstufen so angeordnet sind, dass ein Logikpfad von einem der Eingänge der Logikschaltung bis zu dem Ausgang der Logikschaltung eine geradzahlige Anzahl von Logikstufen aufweist, und

wobei die Logikstufen ausgebildet sind, um gemäß der Verknüpfungsvorschrift, den ersten oder zweiten logischen Zustand des verschlüsselten Ergebnisoperanden aus den verschlüsselten Eingangsoperanden zu berechnen und an dem Ausgang einzuprägen und wobei die Logikschaltung ausgebildet ist, dass unabhängig von einer Reihenfolge des Eintreffens der verschlüsselten Eingangsoperanden, abhängig von der Verknüpfungsvorschrift der logische Zustand des verschlüsselten Ergebnisoperanden beibehalten wird oder genau einmal geändert wird; und

wobei die Verknüpfungsvorschrift eine XOR-Verknüpfung aus drei verschlüsselten Dual-Rail-Eingangsoperanden (AM, AMN, BM, BMN, CM, CMN) gemäß der Verknüpfungstabelle ist, wobei mit „d1", „d2", „d3", „d4", „d5", „d6", „d7", „d8" gekennzeichnete Einträge einen ersten logischen Zustand oder einen zweiten logischen Zustand aufweisen.






IPC
A Täglicher Lebensbedarf
B Arbeitsverfahren; Transportieren
C Chemie; Hüttenwesen
D Textilien; Papier
E Bauwesen; Erdbohren; Bergbau
F Maschinenbau; Beleuchtung; Heizung; Waffen; Sprengen
G Physik
H Elektrotechnik

Anmelder
Datum

Patentrecherche

  Patente PDF

Copyright © 2008 Patent-De Alle Rechte vorbehalten. eMail: info@patent-de.com