-
Diese Anmeldung ist eine Teilfortsetzung der US-Patentanmeldung Nr. 14/248,375, die am 9. April 2014 eingereicht wurde und deren Inhalte hier in ihrer Gänze durch Rückbezug aufgenommen sind. Diese Anmeldung beansprucht die Priorität der US-Patentanmeldung Serien-Nr. 14/262,830, die am 28. April 2014 eingereicht wurde und die durch Rückbezug in ihrer Gänze hierin aufgenommen ist.
-
Die vorliegende Offenbarung betrifft ein Verfahren zum Herstellen einer Digitalschaltung und eine Digitalschaltung.
-
Eine Nachkonstruktion (Reverse Engineering, RE) von integrierten Schaltungen (ICs) kann als eine der ernsthaftesten Gefahren für die Halbleiterindustrie betrachtet werden, da sie von einem Angreifer missbraucht werden kann, um einen Schaltungsentwurf zu stehlen und/oder eine Raubkopie davon anzufertigen. Ein Angreifer, der erfolgreich eine Nachkonstruktion einer integrierten Schaltung durchführt, kann eine ähnliche, d.h. kopierte, Schaltung anfertigen und verkaufen, und den Entwurf illegalerweise verkaufen und enthüllen.
-
Daher sind Konzepte und Techniken wünschenswert, die eine Nachkonstruktion von integrierten Schaltungen vereiteln.
-
Ein Verfahren zum Herstellen einer Digitalschaltung ist bereitgestellt, das aufweist:
Ausbilden von zwei Feldeffekttransistoren, Verbinden der Feldeffekttransistoren, so dass ein Ausgangssignal der Digitalschaltung als Antwort auf eine vorgegebene Eingabe einen undefinierten logischen Zustand aufweist, wenn die Schwellenspannungen der Feldeffekttransistoren gleich sind, und Einstellen der Schwellenspannungen von mindestens einem der Feldeffekttransistoren, so dass das Ausgangssignal der Digitalschaltung als Antwort auf die vorgegebene Eingabe einen vorgegebenen definierten logischen Zustand aufweist.
-
In einer Ausgestaltung kann das Verfahren ferner ein Ausbilden eines Ausgangs für ein Signal, das den logischen Zustand der Digitalschaltung repräsentiert, aufweisen. In noch einer Ausgestaltung kann das Verfahren ferner ein Ausbilden einer weiteren Schaltungskomponente und einer Verbindung zum Zuführen des Signals zu der weiteren Schaltungskomponente aufweisen. In noch einer Ausgestaltung kann die weitere Schaltungskomponente ein Logikgatter sein. In noch einer Ausgestaltung kann die weitere Schaltungskomponente ein Flipflop sein. In noch einer Ausgestaltung können beide der zwei Feldeffekttransistoren n-Kanal-Feldeffekttransistoren sein oder beide der zwei Feldeffekttransistoren können p-Kanal-Feldeffekttransistoren sein. In noch einer Ausgestaltung können die Feldeffekttransistoren MOSFETs sein. In noch einer Ausgestaltung kann das Verfahren ferner ein Ausbilden von zwei konkurrierenden Pfaden aufweisen, wobei einer der konkurrierenden Pfade einen der Feldeffekttransistoren aufweist und der andere konkurrierende Pfad den anderen der Feldeffekttransistoren aufweist. In noch einer Ausgestaltung kann das Verfahren ferner ein Ausbilden der konkurrierenden Pfade aufweisen, so dass der logische Zustand von dem Ergebnis des Wettbewerbs der zwei konkurrierenden Pfade abhängt. In noch einer Ausgestaltung kann das Verfahren ferner aufweisen ein Ausbilden jedes der konkurrierenden Pfade, so dass er mehrere Feldeffekttransistoren aufweist, und Einstellen der Schwellenspannungen der Feldeffekttransistoren, so dass das Ausgangssignal der Digitalschaltung als Antwort auf die vorgegebene Eingabe den vorgegebenen definierten logischen Zustand aufweist. In noch einer Ausgestaltung kann das Verfahren ferner ein Ausbilden der mehreren Feldeffekttransistoren in CMOS-Technologie aufweisen. In noch einer Ausgestaltung kann der vorgegebene definierte logische Zustand eine logische 0 oder eine logische 1 sein. In noch einer Ausgestaltung kann die Digitalschaltung ein Flipflop sein. In noch einer Ausgestaltung kann die Digitalschaltung ein RS-Flipflop sein. In noch einer Ausgestaltung können die Feldeffekttransistoren derart ausgebildet sein, dass sie im Wesentlichen die gleichen Abmessungen aufweisen. In noch einer Ausgestaltung kann die vorgegebene Eingabe ein Eingangssteuersignal sein. In noch einer Ausgestaltung kann die vorgegebene Eingabe eine Versorgungsspannung für die Digitalschaltung sein. In noch einer Ausgestaltung kann das Verfahren ferner ein Ausbilden von zwei Teilschaltungen in einer integrierten Schaltung, so dass eine andere Digitalschaltung zwischen den zwei Teilschaltungen liegt, und ein Verbinden der Teilschaltungen, um die Digitalschaltung zu bilden, aufweisen. In noch einer Ausgestaltung kann die Digitalschaltung ein Logikgatter implementieren und die andere Digitalschaltung kann ein anderes Logikgatter implementieren. In noch einer Ausgestaltung können die zwei Feldeffekttransistoren zu derselben der zwei Teilschaltungen oder zu jeweils verschiedenen der zwei Teilschaltungen gehören. In noch einer Ausgestaltung kann jede Teilschaltung einen oder mehrere Feldeffekttransistoren aufweisen. In noch einer Ausgestaltung kann jede Teilschaltung einen oder mehrere Inverter oder eine oder mehrere TIE-Zellen aufweisen.
-
In verschiedenen Ausführungsformen wird eine Digitalschaltung bereitgestellt, aufweisend: zwei Feldeffekttransistoren, die derart verbunden sind, dass ein Ausgangssignal der Digitalschaltung als Antwort auf eine vorgegebene Eingabe einen undefinierten logischen Zustand aufweist, wenn die Schwellenspannungen der Feldeffekttransistoren gleich sind, wobei sich die Schwellenspannungen der Feldeffekttransistoren um mindestens 10 mV unterscheiden, so dass das Ausgangssignal der Digitalschaltung als Antwort auf die vorgegebene Eingabe einen vorgegebenen definierten logischen Zustand aufweist.
-
In noch einer Ausgestaltung können sich die Schwellenspannungen der Feldeffekttransistoren um mindestens 20 mV unterscheiden, um mindestens 30 mV unterscheiden, oder um mindestens 50 mV unterscheiden.
-
In den Zeichnungen beziehen sich gleiche Bezugszeichen in den verschiedenen Ansichten im Allgemeinen auf gleiche Elemente. Die Zeichnungen sind nicht notwendigerweise maßstabsgetreu, wobei die Betonung stattdessen im Allgemeinen auf der Veranschaulichung der Prinzipien der Erfindung liegt. In der nachstehenden Beschreibung sind verschiedene Aspekte unter Bezugnahme auf die folgenden Zeichnungen beschrieben, bei denen:
-
1 zeigt ein Ablaufdiagramm.
-
2 zeigt eine Digitalschaltung.
-
3 zeigt eine ICBC-X gemäß einer Ausführungsform.
-
4 zeigt einen Feldeffekttransistor (FET).
-
5 zeigt ein Beispiel einer ICBX-X-Standardzelle.
-
6 zeigt einen ICBC-X-Multiplexer gemäß einer Ausführungsform.
-
7 zeigt einen ICBC-X-Multiplexer gemäß einer anderen Ausführungsform.
-
8 zeigt eine Flipflop-Initialisierungsschaltung.
-
9 zeigt eine ICBC-X-Toggle-Flipflop-Schaltung.
-
10 zeigt eine ICBC-X gemäß einer anderen Ausführungsform.
-
11 zeigt ein RSX-Latch gemäß einer Ausführungsform.
-
12 zeigt ein RSX-Latch gemäß einer anderen Ausführungsform.
-
13 zeigt ein RSX-Latch gemäß einer anderen Ausführungsform.
-
14 zeigt ein RSX-Latch gemäß einer anderen Ausführungsform.
-
15 zeigt ein DFTG 1500.
-
16 zeigt ein RSX-Latch 1600 gemäß einer anderen Ausführungsform.
-
17 zeigt einen Inverter 1701 und eine TIE-Zelle 1702.
-
18 zeigt eine Bitzelle 1800 gemäß einer Ausführungsform, die mithilfe von Invertern implementiert ist.
-
19 zeigt eine Bitzelle 1900 gemäß einer Ausführungsform, die mithilfe von TIE-Zellen implementiert ist.
-
20 zeigt eine Bitzelle 2000 gemäß einer Ausführungsform, die sowohl mithilfe von Invertern als auch TIE-Zellen implementiert ist.
-
21 zeigt eine ICBC-X-Zelle 2100, die eine nicht-lokale Implementierung der ICBC-X-Standardzelle 500 von 5 darstellt.
-
22 zeigt ein NOR-basiertes RS-Flipflop 2200.
-
23 zeigt ein Beispiel einer NOR-basierten ICBC-X 2300, bei der zu sehen ist, dass sie auf dem NOR-basierten RS-Flipflop von 22 basiert.
-
24 zeigt eine ICBC-X-Schaltung 2400, die eine nicht-lokale Version der ICBC-X 2300 von 23 darstellt.
-
Die nachstehende ausführliche Beschreibung nimmt auf die begleitenden Zeichnungen Bezug, die zur Veranschaulichung konkrete Einzelheiten und Aspekte dieser Offenbarung zeigen, in denen die Erfindung ausgeführt werden kann. Andere Aspekte können verwendet werden, und strukturelle, logische und elektrische Änderungen können vorgenommen werden, ohne vom Umfang der Erfindung abzuweichen. Die verschiedenen Aspekte dieser Offenbarung schließen sich gegenseitig nicht notwendigerweise aus, da manche Aspekte dieser Offenbarung mit einem oder mehreren anderen Aspekten dieser Offenbarung kombiniert werden können, um neue Aspekte zu bilden.
-
Die Nachkonstruktion (Reverse Engineering) kann durch Einsetzen von Tarnschaltungen verhindert werden. Jedoch erfordern diese in der Regel Verfahrenstechnik-Erweiterungen, wie Dotierungsprofil-Modifikationen, vorgetäuschte Kontakte oder Durchkontaktierungen, und/oder haben einen deutlich vergrößerten Flächenbedarf und Energieverbrauch zur Folge. Daher sind diese Maßnahmen häufig zu kostspielig für Massenprodukte.
-
Nachstehend ist ein Verfahren zum Herstellen einer Schaltung beschrieben, das auf eine effiziente Weise ermöglicht, den notwendigen Aufwand für eine erfolgreiche Nachkonstruktion einer Schaltung, z.B. auf einem Chip, zu erhöhen.
-
1 zeigt ein Ablaufdiagramm 100.
-
Das Ablaufdiagramm 100 veranschaulicht ein Verfahren zum Herstellen einer Digitalschaltung.
-
In 101 werden zwei Feldeffekttransistoren ausgebildet.
-
In 102 werden die Feldeffekttransistoren derart verbunden, dass ein Ausgangssignal der Digitalschaltung als Antwort auf eine vorgegebene Eingabe einen undefinierten logischen Zustand (und zum Beispiel einen physikalisch metastabilen Zustand) aufweist, wenn die Schwellenspannungen der Feldeffekttransistoren gleich sind.
-
In 103 werden die Schwellenspannungen von mindestens einem der Feldeffekttransistoren derart eingestellt, dass das Ausgangssignal der Digitalschaltung als Antwort auf die vorgegebene Eingabe einen vorgegebenen definierten logischen Zustand aufweist.
-
Mit anderen Worten wird gemäß einer Ausführungsform ein metastabiler Zustand einer Schaltung in einen vorgegebenen stabilen Zustand versetzt, indem die Schwellenspannungen von zwei Transistoren der Schaltung entsprechend eingestellt werden. Die Schwellenspannung kann zum Beispiel durch eine bestimmte Dotierung eines Gebiets (z.B. eines Kanalgebiets) des Feldeffekttransistors eingestellt werden. Zum Beispiel können die zwei Feldeffekttransistoren unterschiedlich dotiert sein.
-
Das Verfahren kann ferner ein Ausbilden eines Ausgangs für ein Signal aufweisen, das den logischen Zustand der Digitalschaltung repräsentiert.
-
Gemäß einer Ausführungsform weist das Verfahren ein Ausbilden einer weiteren Schaltungskomponente und einer Verbindung zum Zuführen des Signals zu der weiteren Schaltungskomponente auf.
-
Zum Beispiel ist die weitere Schaltungskomponente ein Logikgatter.
-
Die weitere Schaltungskomponente kann ein Flipflop sein.
-
Gemäß einer Ausführungsform sind beide der zwei Feldeffekttransistoren n-Kanal-Feldeffekttransistoren, oder beide der zwei Feldeffekttransistoren sind p-Kanal-Feldeffekttransistoren.
-
Die Feldeffekttransistoren sind zum Beispiel MOSFETs.
-
Gemäß einer Ausführungsform weist das Verfahren ein Ausbilden von zwei konkurrierenden Pfaden auf, wobei einer der konkurrierenden Pfade einen der Feldeffekttransistoren aufweist und der andere konkurrierende Pfad den anderen der Feldeffekttransistoren aufweist.
-
Zum Beispiel weist das Verfahren ein Ausbilden der konkurrierenden Pfade auf, so dass der logische Zustand von dem Ergebnis des Wettbewerbs der zwei konkurrierenden Pfade abhängt.
-
Das Verfahren kann ferner aufweisen: Ausbilden jedes der konkurrierenden Pfade, so dass er mehrere Feldeffekttransistoren aufweist, und Einstellen der Schwellenspannungen der Feldeffekttransistoren, so dass das Ausgangssignal der Digitalschaltung als Antwort auf die vorgegebene Eingabe den vorgegebenen logischen Zustand aufweist.
-
Gemäß einer Ausführungsform weist das Verfahren ein Ausbilden der mehreren Feldeffekttransistoren in CMOS-Technologie auf.
-
Der vorgegebene definierte logische Zustand ist zum Beispiel eine logische 1 oder eine logische 0.
-
Gemäß einer Ausführungsform ist die Digitalschaltung ein Flipflop, zum Beispiel ein RS-Flipflop.
-
Gemäß einer Ausführungsform weisen die Feldeffekttransistoren im Wesentlichen die gleichen Abmessungen auf.
-
Gemäß einer Ausführungsform ist die vorgegebene Eingabe ein Eingangssteuersignal.
-
Gemäß einer anderen Ausführungsform ist die vorgegebene Eingabe eine Versorgungsspannung für die Digitalschaltung.
-
Gemäß einer Ausführungsform weist das Verfahren auf: Ausbilden von zwei Teilschaltungen in einer integrierten Schaltung, so dass eine andere Digitalschaltung zwischen den zwei Teilschaltungen liegt, und Verbinden der Teilschaltungen, um die Digitalschaltung (innerhalb der integrierten Schaltung) zu bilden.
-
Zum Beispiel implementiert die Digitalschaltung ein Logikgatter und die andere Digitalschaltung implementiert ein anderes Logikgatter.
-
Die zwei Feldeffekttransistoren gehören zum Beispiel zu derselben der zwei Teilschaltungen oder zu verschiedenen von den zwei Teilschaltungen.
-
Jede Teilschaltung kann einen oder mehrere Feldeffekttransistoren aufweisen.
-
Zum Beispiel weist jede Teilschaltung einen oder mehrere Inverter oder eine oder mehrere TIE-Zellen auf.
-
Ein Beispiel einer Schaltung, die gemäß dem in 1 dargestellten Verfahren hergestellt ist, ist in 2 gezeigt.
-
2 zeigt eine Digitalschaltung 200.
-
Die Digitalschaltung 200 weist zwei Feldeffekttransistoren 201, 202 auf, die derart miteinander verbunden (in anderen Worten verschaltet) sind, dass ein Ausgangssignal der Digitalschaltung als Antwort auf eine vorgegebene Eingabe einen undefinierten logischen Zustand aufweist, wenn die Schwellenspannungen der Feldeffekttransistoren gleich sind. Die Schwellenspannungen der Feldeffekttransistoren unterscheiden sich um mindestens 10 mV, so dass das Ausgangssignal der Digitalschaltung als Antwort auf die vorgegebene Eingabe einen vorgegebenen definierten logischen Zustand aufweist.
-
Gemäß verschiedenen Ausführungsformen unterscheiden sich die Schwellenspannungen der Feldeffekttransistoren um mindestens 20 mV, um mindestens 30 mV oder um mindestens 50 mV.
-
Es ist zu beachten, dass Ausführungsformen, die im Zusammenhang mit dem unter Bezugnahme auf 1 beschriebenen Verfahren beschrieben sind, gleichermaßen für die Digitalschaltung 200 gültig sind und umgekehrt.
-
Nachstehend sind Ausführungsformen ausführlicher beschrieben.
-
Gemäß einer Ausführungsform ist eine Digitalschaltung bereitgestellt, die als eine ununterscheidbare aber komplementäre Bitzelle (Indistinguishable yet Complementary Bit Cell, ICBC) bezeichnet wird. Sie kann als eine von zwei Arten vorgesehen sein, ICBC-1 und ICBC-0, die im Allgemeinen als ICBC-X abgekürzt werden. Die ICBC-X ist ein Gatter, das auf eine geeignete Herausforderung (z.B. eine vorgegebene Eingabe) antwortet, indem es eine robuste logische 1 (ICBC-1) bzw. eine robuste logische 0 (ICBC-0) ausgibt, aber es kann nicht mithilfe von typischen Mitteln einer Nachkonstruktion (Reverse Engineering, RE) oder anderen typischen Analyseverfahren von, d.h. Angriffen auf, Chipkartencontroller und Sicherheits-ICs unterschieden werden.
-
Der Ausgangswert der Digitalschaltung als Antwort auf die vorgegebene Eingabe kann daher als ein boolesches Geheimnis der Schaltung betrachtet werden.
-
Die ICBC-X kann mit einem physikalischen Entwurf implementiert werden, der (hinreichend) symmetrisch hinsichtlich seines Layouts, d.h. seiner aktiven Gebiete, Polysiliziumgates, Kontakte, Metallverbindungen usw., ist. Jedoch weist die ICBC-X nMOS-Komponenten (n-Kanal-Metall-Oxid-Halbleiter) und pMOS-Komponenten (p-Kanal-Metall-Oxid-Halbleiter) (im Allgemeinen Feldeffekttransistoren) auf, die angemessen unterschiedliche Schwellenspannungen (Vth) aufweisen, was zu der robusten Übertragungscharakteristik der ICBC-X führt, wenn sie mit einem Eingabemuster herausgefordert wird, das ansonsten (d.h. im Fall von ähnlichen Schwellenspannungen) einem metastabilen Zustand der ICBC-X, d.h. einem Zustand, in dem die ICBC-X keinen definierten logischen Zustand aufweist, entsprechen würde.
-
Da in einem typischen Herstellungsprozess, z.B. in einem Szenario mit uneinheitlichen Vth für eine Sicherheits-IC, Optionen für unterschiedliche Schwellenspannungen, wie z.B. „reguläre Vth“ und „hohe Vth“, verfügbar sind, können diese verwendet werden, um die ICBC-X ohne Prozessänderungen zu realisieren.
-
ICBC-1 und ICBC-0 sind zum Beispiel statische CMOS-Gatter (komplementärer Metall-Oxid-Halbleiter), die als Elemente von Standardzellen-Bibliotheken implementiert werden können.
-
Die ICBC-X kann zum Beispiel als eine dynamische TIE-1- oder TIE-0-Zelle verwendet werden, d.h. eine TIE-Zelle, die zwischen einem logisch gültigen und einem logisch ungültigen Zustand, die z.B. Bits eines Geheimschlüssels oder andere Teile von vertraulichen Informationen repräsentieren, geschaltet werden kann.
-
Des Weiteren kann die ICBC-X mit einem oder mehreren Logikgattern kombiniert werden, um Datenpfade zu erzielen, die gegenüber Nachkonstruktion widerstandsfähig sind, und die ICBC-X kann konkateniert werden, um dynamische TIE-Baumstrukturen zu realisieren.
-
Die ICBC-X kann ferner auf eine Sitzungsschlüsselgenerierung sowie adressenabhängige Speicherverschlüsselungskonfiguration angewendet werden. Außerdem kann nach einem Start, d.h. nach einer ICBC-X-Anfangskonfiguration (z.B. Zufallskonfiguration) die ausgewählte Konfiguration dann in einem nichtflüchtigen Speicher für eine nachträgliche Verwendung gespeichert werden. Dies kann sogar robuste und gegenüber Nachkonstruktion widerstandsfähige Chip-individuelle Informationen ermöglichen.
-
Da mehrere ICBC-Xs auf einem gesamten halbkundenspezifischen Abschnitt einer IC (z.B. unregelmäßig) verteilt sein können und da auf diese Instanzen in einer unregelmäßigen, sogar zufälligen, zeitlichen Reihenfolge zugegriffen werden kann, ermöglichen ICBC-Xs es, die Schwierigkeit, das Risiko und den Aufwand für alle relevanten IC-Angriffsszenarien, wie z.B. Nachkonstruktion, Photonenemission, Laserspannungsuntersuchung (Laser Voltage Probing) usw., enorm zu erhöhen.
-
Die ICBC-X stellt ferner im Gegensatz zu statischen Tarntechniken eine dynamische, sogar Chip-individuelle Charakteristik bereit.
-
Es ist zu erkennen, dass das ICBC-X-Konzept auf einer Auflösung von metastabilen Zuständen oder metastabilen Zustandsübergängen einer (bistabilen) Rückkopplungsschaltung durch Einsetzen von (MOS-)Feldeffekttransistoren (im Allgemeinen Schaltern) mit unterschiedlichen Schwellenspannungen (im Allgemeinen Zustandsübergangscharakteristiken) basiert, um robuste ICBC-X-Zustandsübergänge zu erzielen, woraufhin der Charakter einer gegebenen ICBC-X-Instanz (X = 1 oder 0) vor einem Angreifer, der einschlägige Sicherheits-IC-Angriffsszenarien, wie Nachkonstruktion, Photonenemission, Laserspannungsuntersuchung usw. einsetzt, verborgen bleibt.
-
Ein Beispiel für schaltungstechnische schematische Darstellung einer ICBC-X (X = 0, 1) ist in 3 dargestellt.
-
3 zeigt eine ICBC-X 300 gemäß einer Ausführungsform.
-
Die ICBC-X 300 weist einen ersten p-Kanal-FET (Feldeffekttransistor) 301 auf, dessen Sourceanschluss mit einem ersten Eingangsanschluss 302, der ein Eingangssignal S1 empfängt, verbunden ist, dessen Drain mit dem Drainanschluss eines ersten n-Kanal-FET 303 verbunden ist, und dessen Gate mit dem Gate des ersten n-Kanal-FET 303 verbunden ist. Die Source des ersten n-Kanal-FET 303 ist mit einem niedrigen Versorgungspotential (VSS) gekoppelt.
-
Die ICBC-X 300 weist ferner einen zweiten p-Kanal-FET 304 auf, dessen Sourceanschluss mit dem ersten Eingangsanschluss 302 verbunden ist, dessen Drain mit dem Drainanschluss eines zweiten n-Kanal-FET 305 verbunden ist, und dessen Gate mit dem Gate des zweiten n-Kanal-FET 305 verbunden ist. Die Source des zweiten n-Kanal-FET 305 ist mit dem niedrigen Versorgungspotential (VSS) gekoppelt.
-
Das Gate des ersten n-Kanal-FET 303 ist ferner mit der Source eines dritten n-Kanal-FET 306 gekoppelt, dessen Drain mit dem ersten Eingangsanschluss 302 verbunden ist und dessen Gate mit einem zweiten Eingangsanschluss 307, der ein Eingangssignal S0 empfängt, verbunden ist.
-
Das Gate des zweiten n-Kanal-FET 305 ist ferner mit der Source eines vierten n-Kanal-FET 308 gekoppelt, dessen Drain mit dem ersten Eingangsanschluss 302 verbunden ist und dessen Gate mit einem zweiten Eingangsanschluss 307 verbunden ist.
-
Außerdem ist der Drain des ersten p-Kanal-FET 301 mit dem Gate des zweiten p-Kanal-FET 304 verbunden. Diese Verbindung ist ferner mit einem ersten Ausgangsanschluss 309, der ein Ausgangssignal BL ausgibt, verbunden.
-
Gleichermaßen ist der Drain des zweiten p-Kanal-FET 304 mit dem Gate des ersten p-Kanal-FET 301 verbunden, und diese Verbindung ist ferner mit einem zweiten Ausgangsanschluss 310, der ein Ausgangssignal BR ausgibt, verbunden.
-
Zur Veranschaulichung weist die ICBC-X 300 eine interne Rückkopplungsschleife, die aus den p-Kanal-FETs (z.B. pMOS-Transistoren) 301, 304 und dem ersten n-Kanal-FET 303 und dem zweiten n-Kanal-FET 305 (z.B. nMOS-Transistoren) gebildet ist und die für S1 = 1 aktiviert wird und für S1 = 0 deaktiviert wird, sowie Vorladebauelemente in Form des dritten n-Kanal-FET 306 und des vierten n-Kanal-FET 308 (z.B. nMOS-Transistoren), die für S0 = 1 aktiviert und für S0 = 0 deaktiviert werden, auf.
-
Gemäß einer Ausführungsform ist der physikalische Entwurf der ICBC-X hinreichend (d.h. nicht notwendigerweise vollkommen) symmetrisch hinsichtlich des ICBC-X-Layouts, d.h. seine Bauelementabmessungen (Gatebreiten und -längen), aktive Gebiete, Poly-Gates, Kontakte, Metallverbindungen usw. sind symmetrisch, um eine korrekte und robuste ICBC-X-Übertragungscharakteristik zu gewährleisten und um sicherzustellen, dass auch bei einer möglichst eingehenden Layout-Untersuchung keine Möglichkeit besteht, Rückschlüsse auf die Identität (ICBC-1 oder ICBC-0) der ICBC-X zu ziehen.
-
Zum Beispiel weist die ICBC-X 300 zumindest symmetrische nMOS- und pMOS-Gateabmessungen auf, d.h. der erste p-Kanal-Transistor 301 und der zweite p-Kanal-Transistor 304 weisen die gleiche Gateabmessung auf, der erste n-Kanal-Transistor 303 und der zweite n-Kanal-Transistor 305 weisen die gleiche Gateabmessung auf, und der dritte n-Kanal-Transistor 306 und der vierte n-Kanal-Transistor 308 weisen die gleiche Gateabmessung auf.
-
Die ICBC-X ist mit einer Tarneigenschaft bereitgestellt, indem
- – der erste p-Kanal-Transistor 301 und der zweite p-Kanal-Transistor 304 unterschiedliche Schwellenspannungen Vthy(p) und Vthz(p) aufweisen und
- – (fakultativ) der erste n-Kanal-Transistor 303 und der zweite n-Kanal-Transistor 305 unterschiedliche Schwellenspannungen Vthy(n) und Vthz(n) aufweisen.
-
Zum Beispiel entsprechen die Schwellenspannungen Vthz und Vthy einer Hoch-Vth- bzw. einer Regulär-Vth-CMOS-Prozessoption.
-
Die Schwellenspannungsdifferenz führt zu einer robusten Übertragungscharakteristik der ICBC-X, wenn sie mit einem Eingangsmuster herausgefordert wird, das ansonsten (d.h. im Fall gleicher Schwellenspannungen) einem metastabilen Zustand entsprechen würde, d.h. einem Zustand, in dem der logische Zustand der Schaltung ein undefinierter logischer Zustand ist (da ihr tatsächlicher logischer Zustand nicht vorgegeben werden kann, und z.B. von unbekannten Prozessschwankungen oder Rauschen usw. abhängig ist).
-
Für die nachstehende Betrachtung bedeutet der logische Wert 0 die niedrigere Versorgungsspannung VSS und die logische 1 bedeutet die höhere Versorgungsspannung VDD.
-
ICBC-X ist eine ICBC-1, wenn {Vthz(p) > Vthy(p)} UND {Vthz(n) ≥ Vthy(n)}.
-
Sie kann zwei stabile Zustände annehmen:
- – in einem VORGELADEN-Zustand (S1 = 0, S0 = 1) sind die Ausgangssignale BL, BR logisch nicht gültig (aber physikalisch wohldefiniert und gleich wie für ICBC-0, nämlich
(BL, BR) = (0, 0)), während
- – in einem GÜLTIG-Zustand (S1 = 1, S0 = 0) die Ausgabe immer auf logisch 1 liegt, d.h. derart definiert ist, dass sie
(BL, BR) = (1, 0) ist.
-
ICBC-X ist eine ICBC-0, wenn {Vthz(p) < Vthy(p)} UND {Vthz(n) ≤ Vthy(n)}.
-
Sie kann zwei stabile Zustände annehmen:
- – in einem VORGELADEN-Zustand (S1 = 0, S0 = 1) ist die Ausgabe logisch nicht gültig (aber physikalisch wohldefiniert und gleich wie für ICBC-1, nämlich
(BL, BR) = (0, 0)), während
- – in einem GÜLTIG-Zustand (S1 = 1, S0 = 0) die Ausgabe immer auf logisch 0 liegt, d.h. derart definiert, dass sie
(BL, BR) = (0, 1) für das vorstehende Beispiel ist.
-
Möglichkeiten, die Schwellenspannung eines Feldeffekttransistors einzustellen, sind nachstehend unter Bezugnahme auf 4 beschrieben.
-
4 zeigt einen Feldeffekttransistor (FET) 400.
-
Der FET 400 weist ein Sourcegebiet 401, ein Draingebiet 402, ein Gate 403 und ein Kanalgebiet 404 auf. Das Kanalgebiet 404 kann in einem Substrat oder in einer Wanne innerhalb des Substrats liegen.
-
Das Sourcegebiet 401 weist eine Erweiterung 405 und einen Halo 406 auf.
-
Gleichermaßen weist das Draingebiet 402 eine Erweiterung 407 und einen Halo 408 auf.
-
Die Schwellenspannung des FET 400 kann durch Einstellen von geeigneten Dotierungskonzentrationen in dem Kanalgebiet 404, der Halos 406, 408 und/oder durch Einstellen der Dotierungskonzentration in den Erweiterungen 405, 407 eingestellt werden.
-
Der Vorteil jeder Tarntechnologie ist es, Informationen in physikalischen Strukturen zu verbergen, die in einem typischen Nachkonstruktionsverfahren nicht sichtbar sind. Bekannte hochentwickelte Tarnzellenentwürfe verwenden z.B. eine Modifikation eines Transistor-Drains oder Kanal-Implantate, um die Funktion direkt zu ändern. Derartige Tarnentwürfe erfordern die Konstruktion von speziellen Transistorbauelementen und entsprechenden Nicht-Standardzellen. Dies kann ein kostspieliger Prozess und eine Quelle zusätzlicher Zuverlässigkeitsrisiken sein, insbesondere wenn die Herstellung in einer Gießerei durchgeführt werden soll. Derartige Entwürfe weisen in der Regel einen Satz von identisch aussehenden Superzellen auf, die aus einer großen Anzahl von Transistoren bestehen. Diese Zellen weisen verschiedene logische Funktionen auf, wobei die modifizierten Transistoren die verschiedene logische Funktion definieren. Derartige Zellen können typischerweise leicht unter regulären Standardzellen identifiziert werden, die auf Mindestzahl der Transistoren optimiert sind. Der Tarnschutz besteht in der Schwierigkeit, die logische Funktion einer großen Anzahl von in den Chip eingebetteten Zellen herauszufinden. Im Grunde erfordert ein erfolgreicher Nachbauangriff mehrfache Untersuchungen (Probing), um die Wahrheitstabellen aller dieser Zellen zu erzielen.
-
Es ist zu erkennen, dass demgegenüber ein auf ICBC-Xs basierender Schutz gegen Nachkonstruktion lediglich auf Standardbauelementen basiert, die typischerweise, z.B. in einem Entwurf mit uneinheitlichen Vth, verfügbar sind. Es ist erkennbar, dass die ICBC-X verborgene Informationen verwendet. Es ist nicht möglich, den GÜLTIG-Zustand der ICBC-X mithilfe einer typischen Nachkonstruktion zu identifizieren, d.h. Instanzen ICBC-1 und ICBC-0 sind im Hinblick auf typische Nachkonstruktionsverfahren ununterscheidbar. Aufdecken der verborgenen Informationen erfordert zum Beispiel ein Aufzwingen (Forcing) der Eingangssignale und Untersuchen (Probing) der Ausgangssignale der ICBC-X.
-
In der ICBC-X ist die verborgene Information ein einzelner boolescher Wert, der verwendet werden kann, um zum Beispiel die logische Funktion anschließender kombinatorischer Logik zu ändern. Zum Beispiel können Ausführungsformen Folgendes aufweisen:
- A. Verwenden der verborgenen booleschen Variable einer oder mehrerer ICBC-X-Zellen direkt als Eingabe in ein kombinatorisches Logiknetz, und/oder
- B Einbetten einer ICBC-X-Struktur in eine größere Superzelle, die eine komplexere boolesche (n, m)-Funktion F(x) (d.h. boolesche n-Eingangs-, m-Ausgangs-Funktion) realisiert.
-
Ansatz A kann zum Beispiel verwendet werden, um einen geheimen Binärvektor (der z.B. als ein Schlüssel oder eine Konfiguration verwendet wird) zu verbergen. Der geheime Vektor wird zum Beispiel hinreichend groß gewählt, um einen Probing-Angriff zu vereiteln. Der Angriffsaufwand sollte zumindest linear mit der Anzahl von versteckten Bits steigen. Es wird zum Beispiel darauf geachtet, dass keine Schaltung ein sequenzielles Auslesen mehrerer Bits des geheimen Vektors (z.B. über Schieberegisterketten) ermöglicht. Es kann damit gerechnet werden, dass die Erfolgswahrscheinlichkeit für einen Angreifer superlinear fällt, da nahezu jeder Probing-Punkt in der Regel eine FIB-Modifikation (focused ion beam, fokussierter Ionenstrahl) erfordert. Daher werden die Erfolgswahrscheinlichkeiten für eine einzelne FIB-Modifikation multipliziert. In diesem Fall würde die Erfolgswahrscheinlichkeit für den Angreifer exponentiell mit der Anzahl von Bits fallen.
-
Bei Ansatz B können unidentifizierbare (zumindest mithilfe einer typischen Nachkonstruktion) logische Funktionen realisiert werden. Des Weiteren können Zellen konstruiert werden, die ein identisches Layout aufweisen, aber unterschiedliche logische Funktionen bereitstellen.
-
5 zeigt ein Beispiel einer ICBX-X-Standardzelle 500.
-
Die ICBC-X-Standardzelle 500 weist eine vorstehend unter Bezugnahme auf 3 beschriebene ICBC-X 501 auf, wobei das Eingangssignal S1 ein durch einen ersten Inverter 502 invertiertes Eingangssignal S ist, das Eingangssignal S0 das Eingangssignal S ist, ein erstes Ausgangssignal Y das durch einen zweiten Inverter 503 invertierte Ausgangssignal BL ist, und ein zweites Ausgangssignal Z das durch einen dritten Inverter 504 invertierte Ausgangssignal BR ist. Zur Veranschaulichung werden das Eingangssignal S1 und die Ausgangssignale BL und BR gepuffert, damit die ICBC-X von der Eingangssteilheit des S1 und den Ausgangslasten bei BL und BR unabhängig ist. Für den Fall ICBC-1, d.h. für Vthz(p) > Vthy(p), Vthz(n) > Vthy(n), realisiert die Zelle 500 (in diesem Fall eine ICBC-1-Zelle) die booleschen Gleichungen Y = S, Z = 1, während für den Fall ICBC-0, d.h. für Vthz(p) < Vthy(p), Vthz(n) < Vthy(n), Y = 1, Z = S.
-
Daher für den allgemeinen Fall ICBC-X Y = X·S + X = S + X, Z = X·S + X = S + X.
-
6 zeigt einen ICBC-X-Multiplexer 600 gemäß einer Ausführungsform.
-
Der ICBC-X-Multiplexer 600 weist eine in 5 dargestellte ICBC-X-Standardzelle 601 auf.
-
Das Ausgangssignal Y wird zusammen mit einem Eingangssignal A einem ersten OR eines ANDOR-Gatters 602 zugeführt.
-
Das Ausgangssignal Z wird zusammen mit einem Eingangssignal B einem zweiten OR des ANDOR-Gatters 602 zugeführt.
-
Das Ausgangssignal des ANDOR-Gatters 602 ist durch C = (SA + A)·(SB + B) = (S + X + A)·(S + X + B) = S + X·A + X·B gegeben.
-
Dies bedeutet, dass entweder A oder B als Ausgabe C ausgewählt wird, wenn die ICBC-X aktiviert ist (d.h. für S = 1), während für S = 0 die Ausgabe C auf 1 gesetzt ist.
-
7 zeigt einen ICBC-X-Multiplexer 700 gemäß einer anderen Ausführungsform.
-
Der ICBC-X-Multiplexer 700 weist eine in 5 dargestellte ICBC-X-Standardzelle 701 auf.
-
Das Ausgangssignal Y wird invertiert und zusammen mit einem Eingangssignal A einem ersten OR eines ANDOR-Gatters 702 zugeführt.
-
Außerdem wird das Ausgangssignal Y zusammen mit einem Eingangssignal B einem zweiten OR des ANDOR-Gatters 702 zugeführt.
-
Das Ausgangssignal des ANDOR-Gatters 702 ist durch C = (Y + A)·(Y + B) = (S·X + A)·(S + X + B) = S·X·A + S·X·B gegeben.
-
Dies bedeutet, dass entweder B oder A als Ausgabe C ausgewählt wird, wenn die ICBC-X aktiviert ist (d.h. für S = 1), während für S = 0 die Ausgabe C auf A gesetzt ist.
-
Demzufolge ist es mit dieser oder einer ähnlichen Schaltung möglich, gegenüber einer Nachkonstruktion beständige Permutationen von Datenpfadelementen, z.B. S-Box-Permutationen oder verschiedene ALU-Konfigurationen, zu realisieren.
-
Die Komplexität der Nachkonstruktion kann durch Konkatenieren von ICBC-Xs, d.h. durch Verknüpfen von ICBC-X-Ausgängen mit dem gewählten Eingang (d.h. dem Eingangsanschluss für das Eingangssignal S) einer anderen ICBC-X (entweder von demselben Typ (d.h. ICBC-0 oder ICBC-1) oder von einem anderen Typ), sogar erhöht werden. Auf diese Weise können komplexe unidentifizierbare logische Funktionen realisiert werden.
-
Statische Komponenten (Shares) für einen Verschlüsselungs- und Entschlüsselungsschlüssel können unter Verwendung mehrerer ICBC-X-Zellen realisiert werden. Dies bedeutet, dass die verborgenen Werte X verwendet werden, um einige geheime Werte Y, die in einem nichtflüchtigen Speicher gespeichert sind, zu modifizieren, indem eine (z.B. kryptographische) Funktion G, d.h. Z = G(X, Y), angewendet wird. Der Wert Z kann zum Beispiel als eine Konfigurationseinstellung für den Chip, als ein Verschlüsselungsschlüssel (z.B. für einen Speicher, z.B. für eine AES-Verschlüsselung (Advanced Encryption Standard)) usw., verwendet werden.
-
Um die individuelle Charakterisierung einer ICBC-X-Zelle schwieriger zu gestalten, kann die Zelle fast immer in dem deaktivierten Zustand (d.h. dem Vorgeladen-Zustand) gehalten werden, mit Ausnahme von kurzen Zeitintervallen, wenn ihr verborgener Wert (0 oder 1 für X) ausgelesen wird. Der Wert kann zum Beispiel unverzüglich z.B. in einem Zustandsautomaten oder als ein Geheimschlüsselwert verwendet werden, und dann wird die Zelle wieder in den Vorgeladen-Modus umgeschaltet. Das Zeitintervall, in dem die Zelle gelesen wird, könnte randomisiert werden, um den Aufwand für einen erfolgreichen Angriff weiter zu erhöhen.
-
Als eine zweite Möglichkeit kann die ICBC-X-Zelle deaktiviert gehalten werden, mit Ausnahme einer kurzen Zeitdauer, in der der verborgene Wert in ein temporäres Speicherelement (z.B. ein Register, ein Latch oder ein RAM) kopiert wird. Dann wird die ICBC-X-Zelle erneut deaktiviert und die logische Funktion/der Geheimwert ist lediglich durch Abruf aus dem Speicherelement zu erlangen. Daher wird der Geheimwert bei jedem Ausschalten des Chips gelöscht, was die Sicherheit erhöht.
-
Eine ICBC-X-Zelle kann mit einem sequenziellen Bauelement, z.B. einem Master-Slave-Flipflop kombiniert werden, um den Anfangswert des Flipflops zu verdecken. Ein Beispiel ist in 8 dargestellt.
-
8 zeigt eine Flipflop-Initialisierungsschaltung 800.
-
Die Schaltung 800 weist eine in 5 dargestellte ICBC-X-Zelle 801 auf.
-
Das Eingangssignal S und das Ausgangssignal Y werden einem ersten AND eines ORAND-Gatters 802 zugeführt.
-
Ein Eingangssignal A und das invertierte Eingangssignal S werden einem zweiten AND des ORAND-Gatters 802 zugeführt.
-
Die Schaltung 800 weist ferner ein D-Flipflop 803 auf, das mit einem Taktsignal CK an seinem Taktsignaleingang und mit dem Ausgangssignal D des ORAND-Gatters 802 an seinem D-Eingang versorgt wird.
-
Zur Initialisierung wird S auf 1 gesetzt, wodurch die ICBC-X-Zelle 801 aktiviert wird und Y für den Flipflop-Eingang D mithilfe des ORAND-Multiplexers 802 ausgewählt wird, so dass Y in das Flipflop 803 bei einer steigenden Flanke seines Taktsignals CK eingeschrieben wird. Wenn S dann wieder auf 0 zurückgesetzt wird, wird die ICBC-X-Zelle 801 auf Vorgeladen zurückgesetzt, und für D wird die „reguläre“ Eingabe A durch den Multiplexer 802 gewählt.
-
Anwenden dieses Tricks bei einem Zustandsautomaten, d.h. wenn A eine Funktion von Q (und anderer Flipflop-Ausgänge, die einen aktuellen Zustand des Zustandsautomaten repräsentieren) ist, ist es möglich, den Zustandsautomaten mit einem geheimen Zustand zu initialisieren, der nicht mithilfe einer (typischen) Nachkonstruktion identifiziert werden kann und den Aufwand für andere Analyseverfahren erhöht. Ein Beispiel einer sequenziellen Toggle-Zelle ist in 9 dargestellt.
-
9 zeigt eine ICBC-X-Toggle-Flipflop-Schaltung 900.
-
Die Schaltung 900 weist eine in 5 dargestellte ICBC-X-Zelle 901 auf.
-
Das Eingangssignal S und das Ausgangssignal Y werden einem ersten AND eines ORAND-Gatters 902 zugeführt.
-
Das invertierte Ausgangssignal Q eines D-Flipflops 903 und das invertierte Eingangssignal S werden einem zweiten AND des ORAND-Gatters 802 zugeführt.
-
Das D-Flipflop 903 wird mit einem Taktsignal CK an seinem Taktsignaleingang und mit dem Ausgangssignal D des ORAND-Gatters 902 an seinem D-Eingang versorgt.
-
Wie zuvor repräsentiert die ICBC-X-Zelle 901 einen verborgenen booleschen Eigenwert. In der sequenziellen Toggle-Zelle, die durch die Schaltung 900 implementiert ist, sind ein zusätzlicher Multiplexer (ORAND 902) und das Flipflop 903 mit der ICBC-X-Zelle 901 verbunden. Beim Zurücksetzen (Signal S aktiviert) übernimmt das Flipflop 903 den X-Wert von der ICBC-X-Zelle 901. Jedes Mal, wenn eine aktive Taktsignalflanke durch das Taktsignal CK angelegt wird, wird der Wert in dem Flipflop und daher das Flipflop-Ausgangssignal Q komplementiert.
-
Die Schaltung 900 kann in endlichen Zustandsautomaten oder Zählertyp-Strukturen verwendet werden, um Folgezustandsfunktionen mit einer verborgenen Codierung zu implementieren. Es ist zu beachten, dass die Schaltung der ICBC-X, des Multiplexers und des Flipflops zu einer einzelnen optimierten Schaltung kombiniert und integriert werden kann.
-
10 zeigt eine ICBC-X 1000 gemäß einer anderen Ausführungsform.
-
Bei der ICBC-X 1000 sind die Rollen der p-Kanal-FETs und der n-Kanal-FETs gegenüber der in 3 dargestellten ICBC-X 300 vertauscht.
-
Die ICBC-X 1000 weist einen ersten p-Kanal-FET (Feldeffekttransistor) 1001 auf, dessen Sourceanschluss mit einem hohen Versorgungspotential (VDD) verbunden ist, dessen Drain mit dem Drainanschluss eines ersten n-Kanal-FET 1003 verbunden ist, und dessen Gate mit dem Gate des ersten n-Kanal-FET 1003 verbunden ist. Die Source des ersten n-Kanal-FET 1003 ist mit einem ersten Eingangsanschluss 1002, der ein Eingangssignal S0 empfängt, gekoppelt.
-
Die ICBC-X 1000 weist ferner einen zweiten p-Kanal-FET 1004 auf, dessen Sourceanschluss mit dem hohen Versorgungspotential verbunden ist, dessen Drain mit dem Drainanschluss eines zweiten n-Kanal-FET 1005 verbunden ist, und dessen Gate mit dem Gate des zweiten n-Kanal-FET 1005 verbunden ist. Die Source des zweiten n-Kanal-FET 1005 ist mit dem ersten Eingangsanschluss 1002 gekoppelt.
-
Das Gate des ersten p-Kanal-FET 1001 ist ferner mit der Source eines dritten p-Kanal-FET 1006 gekoppelt, dessen Drain mit dem ersten Eingangsanschluss 1002 verbunden ist und dessen Gate mit einem zweiten Eingangsanschluss 1007, der ein Eingangssignal S1 empfängt, verbunden ist.
-
Das Gate des zweiten p-Kanal-FET 1004 ist ferner mit der Source eines vierten p-Kanal-FET 1008 gekoppelt, dessen Drain mit dem ersten Eingangsanschluss 1002 verbunden ist und dessen Gate mit einem zweiten Eingangsanschluss 1007 verbunden ist.
-
Außerdem ist der Drain des ersten n-Kanal-FET 1003 mit dem Gate des zweiten n-Kanal-FET 1005 verbunden. Diese Verbindung ist ferner mit einem ersten Ausgangsanschluss 1009, der ein Ausgangssignal BL ausgibt, verbunden.
-
Gleichermaßen ist der Drain des zweiten n-Kanal-FET 1005 mit dem Gate des ersten n-Kanal-FET 1003 verbunden, und diese Verbindung ist ferner mit einem zweiten Ausgangsanschluss 1010, der ein Ausgangssignal BR ausgibt, verbunden.
-
Auch hier wird der VORGELADEN-Zustand durch die Eingabewerte S1 = 0, S0 = 1 definiert, was nun zu beiden Ausgaben auf 1, d.h. BL = BR = 1, führt.
-
Der GÜLTIG-Zustand wird auch hier durch die komplementären Eingabewerte S1 = 1, S0 = 0 definiert, was entweder zu
- – (BL, BR) = (1, 0) für {Vthz(p) > Vthy(p)} UND {Vthz(n) > Vthy(n)} oder
- – (BL, BR) = (0, 1) für {Vthz(p) < Vthy(p)} UND {Vthz(n) < Vthy(n)} führt.
-
Weitere Alternativen zum Realisieren von ICBC-Xs weisen zum Beispiel RS-Latches (d.h. kreuzgekoppelte NAND- oder NOR-Gatter) auf, deren Komponenten (die NAND- oder NOR-Gatter) strukturell identisch implementiert sind, aber deren Übertragungscharakteristik aufgrund einer geeigneten Verwendung von FETs (z.B. MOS-Bauelementen) mit unterschiedlichen Schwellenspannungen asymmetrisch ist, was zu einer robusten 1 oder 0 an den Ausgängen führt, wenn sie mit einem Eingabemuster herausgefordert werden, das sonst einem metastabilen Zustand entsprechen würde.
-
Beispiele dafür sind in 11 bis 15 dargestellt, die verschiedene Realisierungen von RSX-Latches repräsentieren, d.h. Latches, die gesetzt werden können auf
- – (BL, BR) = (1, 0) durch Einstellen von (EN, SL, SR) = (1, 1, 0),
- – (BL, BR) = (0, 1) durch Einstellen von (EN, SL, SR) = (1, 0, 1),
- – (BL, BR) = (X, X) mit dem Übergang (EN, SL, SR) = (0, 1, 1) → (1, 1, 1), der einen verbotenen Übergang für ein herkömmliches RS-Latch darstellt, da er einen undefinierten logischen Zustand verursacht.
-
Im Unterschied zu den ICBC-Xs von 3 und 10 weisen die in 11 bis 14 dargestellten RSX-Latches 1100, 1200, 1300, 1400 drei Eingänge. Jedoch kann die Verwendung von RSX-Latches wünschenswert sein, da sie erkennbar die zusätzliche Tarneigenschaft aufweisen, dass sie als RS-Latches verschleiert sind, wodurch sie bei einer Nachkonstruktion täuschen und in die Irre führen.
-
Es ist zu beachten, dass in allen vorstehend gegebenen Anwendungsbeispielen ein beliebiges der nachstehend beschriebenen RSX-Latches anstelle der ICBC-X-Schaltung (oder der ICBC-X-Zelle) verwendet werden kann.
-
11 zeigt ein RSX-Latch 1100 gemäß einer Ausführungsform.
-
Das RSX-Latch 1100 weist einen ersten p-Kanal-FET 1101 auf, dessen Sourceanschluss mit einem hohen Versorgungspotential (VDD) verbunden ist, dessen Drain mit dem Drainanschluss eines ersten n-Kanal-FET 1103 verbunden ist, und dessen Gate mit dem Gate des ersten n-Kanal-FET 1103 verbunden ist.
-
Das RSX-Latch 1100 weist ferner einen zweiten p-Kanal-FET 1104 auf, dessen Sourceanschluss mit dem hohen Versorgungspotential verbunden ist, dessen Drain mit dem Drainanschluss eines zweiten n-Kanal-FET 1105 verbunden ist, und dessen Gate mit dem Gate des zweiten n-Kanal-FET 1105 verbunden ist.
-
Die Source des ersten n-Kanal-FET 1103 ist mit dem Drainanschluss eines dritten n-Kanal-FET 1106 gekoppelt, dessen Gate mit einem ersten Eingangsanschluss 1107, der ein Eingangssignal SR empfängt, gekoppelt ist, und dessen Source mit einem Knoten 1112, der einem Signal S0 entspricht, gekoppelt ist.
-
Die Source des zweiten n-Kanal-FET 1105 ist mit dem Drainanschluss eines vierten n-Kanal-FET 1108 gekoppelt, dessen Gate mit einem zweiten Eingangsanschluss 1109, der ein Eingangssignal SL empfängt, gekoppelt ist, und dessen Source mit dem Knoten 1112 gekoppelt ist.
-
Das Gate des ersten p-Kanal-FET 1101 ist ferner mit der Source eines dritten p-Kanal-FET 1110 gekoppelt, dessen Drain mit dem Knoten 1112 verbunden ist und dessen Gate mit einem dritten Eingangsanschluss 1113, der ein Eingangssignal EN empfängt, verbunden ist.
-
Das Gate des zweiten p-Kanal-FET 1104 ist ferner mit der Source eines vierten p-Kanal-FET 1111 gekoppelt, dessen Drain mit dem Knoten 1112 verbunden ist und dessen Gate mit dem dritten Eingangsanschluss 1113 verbunden ist.
-
Außerdem ist der Drain des ersten n-Kanal-FET 1103 mit dem Gate des zweiten n-Kanal-FET 1105 verbunden. Diese Verbindung ist ferner mit einem ersten Ausgangsanschluss 1114, der ein Ausgangssignal BL ausgibt, verbunden.
-
Gleichermaßen ist der Drain des zweiten n-Kanal-FET 1105 mit dem Gate des ersten n-Kanal-FET 1103 verbunden, und diese Verbindung ist ferner mit einem zweiten Ausgangsanschluss 1115, der ein Ausgangssignal BR ausgibt, verbunden.
-
Der Knoten 1112 ist mit dem Drain eines fünften p-Kanal-FET 1116 verbunden, dessen Source mit dem hohen Versorgungspotential verbunden ist und dessen Gate mit dem dritten Eingangsanschluss 1113 verbunden ist.
-
Der Knoten 1112 ist ferner mit dem Drain eines fünften n-Kanal-FET 1117 verbunden, dessen Source mit dem niedrigen Versorgungspotential verbunden ist und dessen Gate mit dem dritten Eingangsanschluss 1113 verbunden ist.
-
12 zeigt ein RSX-Latch 1200 gemäß einer anderen Ausführungsform.
-
Das RSX-Latch 1200 weist einen ersten p-Kanal-FET 1201 auf, dessen Sourceanschluss mit einem hohen Versorgungspotential (VDD) verbunden ist, dessen Drain mit dem Drainanschluss eines ersten n-Kanal-FET 1203 verbunden ist, und dessen Gate mit dem Gate des ersten n-Kanal-FET 1203 verbunden ist.
-
Das RSX-Latch 1200 weist ferner einen zweiten p-Kanal-FET 1204 auf, dessen Sourceanschluss mit dem hohen Versorgungspotential verbunden ist, dessen Drain mit dem Drainanschluss eines zweiten n-Kanal-FET 1205 verbunden ist, und dessen Gate mit dem Gate des zweiten n-Kanal-FET 1205 verbunden ist.
-
Die Source des ersten n-Kanal-FET 1203 ist mit dem Drainanschluss eines dritten n-Kanal-FET 1206 gekoppelt, dessen Gate mit einem ersten Eingangsanschluss 1207, der ein Eingangssignal SR empfängt, gekoppelt ist, und dessen Source mit einem Knoten 1212, der einem Signal S0 entspricht, gekoppelt ist.
-
Die Source des zweiten n-Kanal-FET 1205 ist mit dem Drainanschluss eines vierten n-Kanal-FET 1208 gekoppelt, dessen Gate mit einem zweiten Eingangsanschluss 1209, der ein Eingangssignal SL empfängt, gekoppelt ist, und dessen Source mit dem Knoten 1212 gekoppelt ist.
-
Das Gate des ersten p-Kanal-FET 1201 ist ferner mit dem Drain eines dritten p-Kanal-FET 1210 gekoppelt, dessen Source mit dem hohen Versorgungspotential verbunden ist und dessen Gate mit einem dritten Eingangsanschluss 1213, der ein Eingangssignal EN empfängt, verbunden ist.
-
Das Gate des zweiten p-Kanal-FET 1204 ist ferner mit dem Drain eines vierten p-Kanal-FET 1211 gekoppelt, dessen Source mit dem hohen Versorgungspotential verbunden ist und dessen Gate mit dem dritten Eingangsanschluss 1213 verbunden ist.
-
Außerdem ist der Drain des ersten n-Kanal-FET 1203 mit dem Gate des zweiten n-Kanal-FET 1205 verbunden. Diese Verbindung ist ferner mit einem ersten Ausgangsanschluss 1214, der ein Ausgangssignal BL ausgibt, verbunden.
-
Gleichermaßen ist der Drain des zweiten n-Kanal-FET 1205 mit dem Gate des ersten n-Kanal-FET 1203 verbunden, und diese Verbindung ist ferner mit einem zweiten Ausgangsanschluss 1215, der ein Ausgangssignal BR ausgibt, verbunden.
-
Der Knoten 1212 ist mit dem Drain eines fünften p-Kanal-FET 1216 verbunden, dessen Source mit dem hohen Versorgungspotential verbunden ist und dessen Gate mit dem dritten Eingangsanschluss 1213 verbunden ist.
-
Der Knoten 1212 ist ferner mit dem Drain eines fünften n-Kanal-FET 1217 verbunden, dessen Source mit dem niedrigen Versorgungspotential verbunden ist und dessen Gate mit dem dritten Eingangsanschluss 1213 verbunden ist.
-
13 zeigt ein RSX-Latch 1300 gemäß einer anderen Ausführungsform.
-
Das RSX-Latch 1300 weist einen ersten p-Kanal-FET 1301 auf, dessen Sourceanschluss mit einem hohen Versorgungspotential (VDD) verbunden ist, dessen Drain mit dem Drainanschluss eines ersten n-Kanal-FET 1303 verbunden ist, und dessen Gate mit dem Gate des ersten n-Kanal-FET 1303 verbunden ist.
-
Das RSX-Latch 1300 weist ferner einen zweiten p-Kanal-FET 1304 auf, dessen Sourceanschluss mit dem hohen Versorgungspotential verbunden ist, dessen Drain mit dem Drainanschluss eines zweiten n-Kanal-FET 1305 verbunden ist, und dessen Gate mit dem Gate des zweiten n-Kanal-FET 1305 verbunden ist.
-
Die Source des ersten n-Kanal-FET 1303 ist mit dem Drainanschluss eines dritten n-Kanal-FET 1306 gekoppelt, dessen Gate mit einem ersten Eingangsanschluss 1307, der ein Eingangssignal SR empfängt, gekoppelt ist, und dessen Source mit einem Knoten 1312, der einem Signal S0 entspricht, gekoppelt ist.
-
Die Source des zweiten n-Kanal-FET 1305 ist mit dem Drainanschluss eines vierten n-Kanal-FET 1308 gekoppelt, dessen Gate mit einem zweiten Eingangsanschluss 1309, der ein Eingangssignal SL empfängt, gekoppelt ist, und dessen Source mit dem Knoten 1312 gekoppelt ist.
-
Das Gate des ersten p-Kanal-FET 1301 ist ferner mit dem Drain eines dritten p-Kanal-FET 1310 gekoppelt, dessen Source mit dem hohen Versorgungspotential verbunden ist und dessen Gate mit einem dritten Eingangsanschluss 1313, der ein Eingangssignal EN empfängt, verbunden ist.
-
Das Gate des zweiten p-Kanal-FET 1304 ist ferner mit dem Drain eines vierten p-Kanal-FET 1311 gekoppelt, dessen Source mit dem hohen Versorgungspotential verbunden ist und dessen Gate mit dem dritten Eingangsanschluss 1313 verbunden ist.
-
Außerdem ist der Drain des ersten n-Kanal-FET 1303 mit dem Gate des zweiten n-Kanal-FET 1305 verbunden. Diese Verbindung ist ferner mit einem ersten Ausgangsanschluss 1314, der ein Ausgangssignal BL ausgibt, verbunden.
-
Gleichermaßen ist der Drain des zweiten n-Kanal-FET 1305 mit dem Gate des ersten n-Kanal-FET 1303 verbunden, und diese Verbindung ist ferner mit einem zweiten Ausgangsanschluss 1315, der ein Ausgangssignal BR ausgibt, verbunden.
-
Der Knoten 1312 ist mit dem Drain eines fünften p-Kanal-FET 1316 verbunden, dessen Source mit dem hohen Versorgungspotential verbunden ist und dessen Gate mit dem dritten Eingangsanschluss 1313 verbunden ist.
-
Der Knoten 1312 ist ferner mit dem Drain eines fünften n-Kanal-FET 1317 verbunden, dessen Source mit dem niedrigen Versorgungspotential verbunden ist und dessen Gate mit dem dritten Eingangsanschluss 1313 verbunden ist.
-
Außerdem ist der erste Eingangsanschluss 1307 mit dem Gate eines sechsten p-Kanal-Transistors 1318 verbunden, dessen Source mit dem hohen Versorgungspotential verbunden ist und dessen Drain mit dem ersten Ausgangsanschluss 1314 verbunden ist. Der zweite Eingangsanschluss 1309 ist mit dem Gate eines siebten p-Kanal-Transistors 1319 verbunden, dessen Source mit dem hohen Versorgungspotential verbunden ist und dessen Drain mit dem zweiten Ausgangsanschluss 1315 verbunden ist.
-
14 zeigt ein RSX-Latch 1400 gemäß einer anderen Ausführungsform.
-
Das RSX-Latch 1400 weist einen ersten p-Kanal-FET 1401 auf, dessen Sourceanschluss mit einem hohen Versorgungspotential (VDD) verbunden ist, dessen Drain mit dem Drainanschluss eines ersten n-Kanal-FET 1403 verbunden ist, und dessen Gate mit dem Gate des ersten n-Kanal-FET 1403 verbunden ist.
-
Das RSX-Latch 1400 weist ferner einen zweiten p-Kanal-FET 1404 auf, dessen Sourceanschluss mit dem hohen Versorgungspotential verbunden ist, dessen Drain mit dem Drainanschluss eines zweiten n-Kanal-FET 1405 verbunden ist, und dessen Gate mit dem Gate des zweiten n-Kanal-FET 1405 verbunden ist.
-
Die Source des ersten n-Kanal-FET 1403 ist mit dem Drainanschluss eines dritten n-Kanal-FET 1406 gekoppelt, dessen Gate mit einem ersten Eingangsanschluss 1407, der ein Eingangssignal SR empfängt, gekoppelt ist, und dessen Source mit einem Knoten 1412, der einem Signal S0 entspricht, gekoppelt ist.
-
Die Source des zweiten n-Kanal-FET 1405 ist mit dem Drainanschluss eines vierten n-Kanal-FET 1408 gekoppelt, dessen Gate mit einem zweiten Eingangsanschluss 1409, der ein Eingangssignal SL empfängt, gekoppelt ist, und dessen Source mit dem Knoten 1412 gekoppelt ist.
-
Das Gate des ersten p-Kanal-FET 1401 ist ferner mit dem Drain eines dritten p-Kanal-FET 1410 gekoppelt, dessen Source mit dem hohen Versorgungspotential verbunden ist und dessen Gate mit einem dritten Eingangsanschluss 1413, der ein Eingangssignal EN empfängt, verbunden ist.
-
Das Gate des zweiten p-Kanal-FET 1404 ist ferner mit dem Drain eines vierten p-Kanal-FET 1411 gekoppelt, dessen Source mit dem hohen Versorgungspotential verbunden ist und dessen Gate mit dem dritten Eingangsanschluss 1413 verbunden ist.
-
Außerdem ist der Drain des ersten n-Kanal-FET 1403 mit dem Gate des zweiten n-Kanal-FET 1405 verbunden. Diese Verbindung ist ferner mit einem ersten Ausgangsanschluss 1414, der ein Ausgangssignal BL ausgibt, verbunden.
-
Gleichermaßen ist der Drain des zweiten n-Kanal-FET 1405 mit dem Gate des ersten n-Kanal-FET 1403 verbunden, und diese Verbindung ist ferner mit einem zweiten Ausgangsanschluss 1415, der ein Ausgangssignal BR ausgibt, verbunden.
-
Der Knoten 1412 ist mit dem Drain eines fünften n-Kanal-FET 1417 verbunden, dessen Source mit dem niedrigen Versorgungspotential verbunden ist und dessen Gate mit dem dritten Eingangsanschluss 1413 verbunden ist.
-
Außerdem ist der erste Eingangsanschluss 1407 mit dem Gate eines sechsten p-Kanal-Transistors 1418 verbunden, dessen Source mit dem hohen Versorgungspotential verbunden ist und dessen Drain mit dem ersten Ausgangsanschluss 1414 verbunden ist.
-
Der zweite Eingangsanschluss 1409 ist mit dem Gate eines siebten p-Kanal-Transistors 1419 verbunden, dessen Source mit dem hohen Versorgungspotential verbunden ist und dessen Drain mit dem zweiten Ausgangsanschluss 1415 verbunden ist.
-
Eine weitere Möglichkeit zur Realisierung von ICBC-Xs weist ein Einsetzen von Paaren von differenziellen Feedback-Transfergattern (Differential Feedback Transfer Gates, DFTG), die den gleichen physikalischen Entwurf, aber angemessen unterschiedliche Schwellenspannungen ihrer FETs (z.B. nMOS- und/oder pMOS-Bauelemente) aufweisen, in Kombination mit einer Bitzelle, um die Antwort der ICBC-X zu speichern, auf.
-
15 zeigt ein DFTG 1500.
-
Das DFTG 1500 weist einen ersten Eingangsanschluss 1501, einen ersten Eingangsanschluss 1502, einen ersten Ausgangsanschluss 1503 und einen zweiten Ausgangsanschluss 1504 auf.
-
Ein erster p-Kanal-FET 1505 ist zwischen dem ersten Eingangsanschluss 1501 und dem ersten Ausgangsanschluss 1503 verbunden. Parallel dazu ist ein erster n-Kanal-FET 1506 zwischen dem ersten Eingangsanschluss 1501 und dem ersten Ausgangsanschluss 1503 verbunden.
-
Ein zweiter n-Kanal-FET 1507 ist zwischen dem zweiten Eingangsanschluss 1502 und dem zweiten Ausgangsanschluss 1504 verbunden. Parallel dazu ist ein zweiter p-Kanal-FET 1508 zwischen dem zweiten Eingangsanschluss 1502 und dem zweiten Ausgangsanschluss 1504 verbunden.
-
Der erste Ausgangsanschluss 1503 wird auf die Gates des zweiten n-Kanal-FET 1507 und des zweiten p-Kanal-FET 1508 rückgekoppelt.
-
Der zweite Ausgangsanschluss 1504 wird auf die Gates des ersten p-Kanal-FET 1505 und des ersten n-Kanal-FET 1506 rückgekoppelt.
-
Die Differenzen zwischen den Schwellenspannungen der FETs (d.h. die Differenz zwischen den Schwellenspannungen der p-Kanal-FETs 1505, 1508 und die Differenz zwischen den Schwellenspannungen der n-Kanal-FETs 1506, 1507) können sehr klein gewählt werden, da die DFTG-Schaltung 1500 eine besondere Empfindlichkeit in Bezug auf die Übertragungscharakteristik des FET (z.B. MOS-Bauelements) aufweist.
-
Im Rahmen des IC-Herstellungsprozesses können die unterschiedlichen Schwellenspannungen (z.B. in Varianten wie niedrige Vth, Standard-Vth und hohe Vth) von nMOSFETs und pMOSFETs mithilfe von verschiedenen Ionenimplantationsdosierungen eingestellt werden, die zu verschiedenen Donator- und/oder Akzeptorkonzentrationen innerhalb der n-Kanal- und p-Kanalgebiete der MOSFETs sowie innerhalb der Übergangsgebiete zwischen dem Kanal und den Source- und Drain-Dioden führen.
-
Auf diese Weise sind für Deep-Sub-Micron-Technologien (DSM-Technologien) (wie z.B. eine 65-nm-Technologie) in der Regel Werte von 100...200 mV für die Differenzen zwischen benachbarten Spannungsvarianten spezifiziert und realisiert: zum Beispiel ungefähr 350 mV für einen Standard-Vth-MOSFET und 520 mV für einen Hoch-Vth-MOSFET. Es ist zu beachten, dass die spezifizierten Vth-Werte aufgrund des statistischen Charakters eines Ionenimplantationsprozesses lediglich Sollvorgaben für statistische Mittelwerte von Vth-Häufigkeitsverteilungen für all die individuellen MOSFETs repräsentieren. Das heißt, die unvermeidbaren Prozessschwankungen bringen auch Abweichungen von den Vth-Mittelwerten µ[Vth] (gemessen in Einheiten eines quadratischen Mittelwerts oder einer Standardabweichung σ) mit sich. Diese Standardabweichungen liegen im Bereich von 15 bis 25 mV für einen benachbarten und geometrisch identischen MOSFET derselben Vth-Variante in DSM-Technologien (die entsprechenden Schwankungen aufgrund von thermischem Rauschen liegen im Bereich von 1 bis 2 mV für Temperaturen zwischen 300 und 400 K).
-
Aus den vorstehend beschriebenen Charakteristiken der Prozesstechnologie kann ein Kriterium für den erforderlichen Mindestabstand zwischen zwei verschiedenen Vth-Varianten abgeleitet werden, die für robuste ICBC-X- und RSX-Implementierungen mit hinreichend hoher Ausbeute in Bezug auf Prozessschwankungen (z.B. 99,9 % Ausbeute für einen Chip, der etwa 250 ICBC-X-Instanzen aufweist) einzusetzen sind.
-
Zunächst kann festgestellt werden, dass die lokalen und unkorrelierten zufälligen Vth-Abweichungen (nicht betrachtet werden Vth-Abweichungen aufgrund von z.B. Längenabweichungen des Gate-Poly) entsprechend der kumulativen Verteilungsfunktion (Cumulative Distribution Function, CDF) normalverteilt sind,
wobei CDF(x) die Wahrscheinlichkeit bezeichnet, dass eine Zufallsvariable X (in diesem Fall X = Vth) einen Wert zwischen –∞ und x annimmt.
-
Da die zwei verschiedenen Vth-Varianten Vth(z) und Vth(y) normalverteilt, statistisch unabhängig und (gemäß der vorstehenden Annahme des ungünstigsten Falls) unkorreliert sind, ist des Weiteren die (zufällige) Differenz Vth(z) – Vth(y) ebenfalls normalverteilt mit dem Mittelwert ∆µ = µ[Vth(z)] – µ[Vth(y)] und der Varianz σ2 = σ2(z) + σ2(y) wobei Vth(z) und Vth(y) die (zufälligen) Werte der verschiedenen Vth-Varianten bezeichnen.
-
Zum Beispiel entspricht Vth(z) der hohen Vth- und Vth(y) der Standard-Vth-Variante, wenn diese zwei Vth-Varianten für eine ICBC-X-Implementierung einzusetzen sind. Dann ist die Wahrscheinlichkeit
p(Vth(z) – Vth(y) < Vm), dass die Differenz Vth(z) – Vth(y) kleiner als eine bestimmte Grenze V
m ist, durch
gegeben.
-
Es ist zu beachten, dass p(Vth(z) – Vth(y) < Vm) die Wahrscheinlichkeit, als eine Funktion von Vm, ∆µ und σ, dafür angibt, dass eine einzelne ICBC-Instanz für eine zuverlässige produktive Nutzung als nicht hinreichend stabil betrachtet wird.
-
Angenommen, es ist erforderlich, dass die „ICBC-Teilausbeute“ YICBC für einen Chip, der N ICBC-Instanzen (oder RSX-Instanzen) aufweist, mindestens YC betragen soll. Dies ergibt das gewünschte Kriterium: YICBC = [1 – p(Vth(z) – Vth(y) < Vm)]N > YC.
-
Zum Beispiel ist der Fall von N = 250 und YC = 0,999 erzielt, wenn ∆µ = µ[Vth(z)] – µ[Vth(y)] ≥ 137mV, wenn angenommen wird, dass σ(y) = σ(x) = 20mV und Vm = 10 mV erforderlich ist.
-
„Sehr hohe Ausbeute im Hinblick auf Prozessschwankungen“ kann zum Beispiel derart verstanden werden, dass einzelne unvermeidbar fehlerhafte ICBC-X-Instanzen so selten vorkommen, dass sie in dem Sinne vernachlässigt werden können, dass andere unvermeidbare Ausbeute-Minderer, wie „Gateoxid-Schäden“ usw., vergleichsweise viel häufiger vorkommen.
-
Um robuste ICBC-X- oder RSX-Implementierungen mit einer sehr hohen Ausbeute auch für höhere N und/oder YC zu realisieren, kann nicht nur ein MOSFET-Paar, sondern zwei oder mehr MOSFET-Paare innerhalb der ICBC-X oder des RSX mit verschiedenen Vth-Varianten implementiert werden. Dies ist in 16 dargestellt.
-
16 zeigt ein RSX-Latch 1600 gemäß einer anderen Ausführungsform.
-
Das RSX-Latch 1600 weist einen ersten p-Kanal-FET 1601 auf, dessen Sourceanschluss mit einem hohen Versorgungspotential (VDD) verbunden ist, dessen Drain mit dem Drainanschluss eines ersten n-Kanal-FET 1603 verbunden ist, und dessen Gate mit dem Gate des ersten n-Kanal-FET 1603 verbunden ist.
-
Das RSX-Latch 1600 weist ferner einen zweiten p-Kanal-FET 1604 auf, dessen Sourceanschluss mit dem hohen Versorgungspotential verbunden ist, dessen Drain mit dem Drainanschluss eines zweiten n-Kanal-FET 1605 verbunden ist, und dessen Gate mit dem Gate des zweiten n-Kanal-FET 1605 verbunden ist.
-
Die Source des ersten n-Kanal-FET 1603 ist mit dem Drainanschluss eines dritten n-Kanal-FET 1606 gekoppelt, dessen Gate mit einem ersten Eingangsanschluss 1607, der ein Eingangssignal SR empfängt, gekoppelt ist.
-
Die Source des zweiten n-Kanal-FET 1605 ist mit dem Drainanschluss eines vierten n-Kanal-FET 1608 gekoppelt, dessen Gate mit einem zweiten Eingangsanschluss 1609, der ein Eingangssignal SL empfängt, gekoppelt ist.
-
Das Gate des ersten p-Kanal-FET 1601 ist ferner mit dem Drain eines dritten p Kanal-FET 1610 gekoppelt, dessen Source mit dem hohen Versorgungspotential verbunden ist und dessen Gate mit einem dritten Eingangsanschluss 1613, der ein Eingangssignal EN empfängt, verbunden ist.
-
Das Gate des zweiten p-Kanal-FET 1604 ist ferner mit dem Drain eines vierten p-Kanal-FET 1611 gekoppelt, dessen Source mit dem hohen Versorgungspotential verbunden ist und dessen Gate mit dem dritten Eingangsanschluss 1613 verbunden ist.
-
Außerdem ist der Drain des ersten n-Kanal-FET 1603 mit dem Gate des zweiten n-Kanal-FET 1605 verbunden. Diese Verbindung ist ferner mit einem ersten Ausgangsanschluss 1614, der ein Ausgangssignal BL ausgibt, verbunden.
-
Gleichermaßen ist der Drain des zweiten n-Kanal-FET 1605 mit dem Gate des ersten n-Kanal-FET 1603 verbunden, und diese Verbindung ist ferner mit einem zweiten Ausgangsanschluss 1615, der ein Ausgangssignal BR ausgibt, verbunden.
-
Die Source des dritten n-Kanal-FET 1606 ist mit dem Drain eines fünften n-Kanal-FET 1616 verbunden, dessen Gate mit dem dritten Eingangsanschluss 1613 verbunden ist und dessen Source mit dem niedrigen Versorgungspotential verbunden ist.
-
Die Source des vierten n-Kanal-FET 1608 ist mit dem Drain eines sechsten n-Kanal-FET 1617 verbunden, dessen Gate mit dem dritten Eingangsanschluss 1613 verbunden ist und dessen Source mit dem niedrigen Versorgungspotential verbunden ist.
-
Außerdem ist der erste Eingangsanschluss 1607 mit dem Gate eines sechsten p-Kanal-Transistors 1618 verbunden, dessen Source mit dem hohen Versorgungspotential verbunden ist und dessen Drain mit dem ersten Ausgangsanschluss 1614 verbunden ist. Der zweite Eingangsanschluss 1609 ist mit dem Gate eines siebten p-Kanal-Transistors 1619 verbunden, dessen Source mit dem hohen Versorgungspotential verbunden ist und dessen Drain mit dem zweiten Ausgangsanschluss 1615 verbunden ist.
-
Mit anderen Worten weist das RSX-Latch 1600 zwei NAND-3-Gatter mit kreuzgekoppelten Rückkopplungen von den Ausgangssignalen BL und BR auf. Zum Beispiel sind alle p-Kanal-FETs (z.B. pMOSFETs) mit der gleichen Vth-Variante implementiert, während der erste n-Kanal-FET 1603, der dritte n-Kanal-FET 1606 und der fünfte n-Kanal-FET 1616 (z.B. nMOSFETs) jeweils eine erste Schwellenspannung Vthz(n) aufweisen im Gegensatz zu ihren drei (z.B. nMOS-)Gegenstücken, dem zweiten n-Kanal-FET 1605, dem vierten n-Kanal-FET 1608 und dem sechsten n-Kanal-FET 1617, die eine zweite, von Vthz(n) verschiedene Schwellenspannung Vthy(n) aufweisen. Da die lokalen Abweichungen benachbarter MOSFETs zumindest in einer sehr guten Näherung statistisch unabhängig sind, ergibt sich im Vergleich mit dem Fall von lediglich einem Paar (z.B. lediglich dem ersten n-Kanal-FET 1603 und dem zweiten n-Kanal-FET 1605) mit verschiedenen Vth-Varianten eine viel höhere Wahrscheinlichkeit für eine robuste RSX-Übergangscharakteristik.
-
Demzufolge kann ∆µ in einem gewissen Maß, zum Beispiel auf ∆µ ≥ 90mV, reduziert werden, ohne dass der Vorteil einer im Verhältnis zu dem Fall von lediglich einem FET-Paar mit verschiedenen Vth-Varianten hohen Ausbeutevorhersage verloren geht.
-
Dies kann zum Beispiel auf Fälle angewendet werden, in denen die Differenzen der zwei Vth-Varianten besonders klein sind und z.B. aus Kosten- oder technischen Gründen, wie z.B. Streuungs- und Geschwindigkeitsleistungs-Optimierungsmöglichkeiten, nicht modifiziert werden können oder sollen.
-
Es ist ferner zu beachten, dass im Fall von sehr hohem N und/oder YC ECC-Verfahren (Error Correction Code, Fehlerkorrekturcode) für Ensembles von ICBC-X- oder RSX-Instanzen eingesetzt werden können. Zum Beispiel ist ein einfacher ECC, der nur einen Fehler korrigiert, in der Regel in allen relevanten Fällen von ICBC-X-Ensembles von weniger als 256 Bit hinreichend.
-
Andererseits können Paritätsüberprüfungen für ICBC-X/RSX-Ensembles von z.B. 32 oder 64 Bit jedenfalls als Ausbeuteüberwacher eingesetzt werden.
-
Eine ICBC-X-Zelle kann außerdem ohne einen Steuereingang implementiert werden, d.h. sie kann als eine ICBC-X-Zelle implementiert werden, deren Zustand nicht von einem Steuereingangssignal abhängt, den aber die ICBC-X-Zelle annimmt, wenn sie eingeschaltet wird (eine derartige ICBC-X-Zelle kann als eine statische ICBC-X-Zelle im Gegensatz zu vorstehend beschriebenen dynamischen ICBC-X-Zellen betrachtet werden). Zum Beispiel können zwei Inverter derart gekoppelt sein, dass sie eine gegenseitige Rückkopplung bereitstellen (d.h. der Ausgang eines jeweiligen Inverters steuert den Eingang des anderen Inverters an), und der Ausgang von einem oder beiden Invertern wird als Ausgang (Ausgänge) der ICBC-X-Zelle verwendet. Die Schwellenspannungen der Feldeffekttransistoren, die die Inverter bilden, können derart eingestellt werden, dass der Zellenausgang einen vorgegebenen definierten logischen Zustand als Antwort darauf aufweist, dass den Invertern (die als Eingang der Zelle betrachtet werden können) eine Versorgungsspannung zugeführt wird.
-
Außerdem kann gemäß einer Ausführungsform das boolesche Geheimnis einer ICBC-X auf eine nicht-lokale Weise verborgen werden, indem die physikalische ICBC-X-Repräsentation in bestimmte Teilschaltungen unterteilt wird und diese Teilschaltungen nicht nebeneinander, z.B. innerhalb eines (Standard-)Zellarrays der die ICBC-X aufweisenden integrierten Schaltung angeordnet werden, sondern es ermöglicht wird, dass sie im Grunde in willkürlichen Abständen zwischen sich sowohl in vertikaler als auch der horizontaler Richtung angeordnet werden. Dies kann verwendet werden, um den Nachkonstruktionsaufwand als auch das Risiko einer Fehlinterpretation erheblich zu erhöhen. Dieses Konzept der „Nicht-Lokalität“ kann außerdem auf eine ICBC-X-Schaltung ohne einen Steuereingang, wie vorstehend beschrieben, angewendet werden. Zum Beispiel kann die Tatsache verwendet werden, dass eine einfache bistabile CMOS-Bitzelle, die zwei Inverter mit gegenseitiger Rückkopplung aufweist, in die Inverter oder in zwei TIE-Zellen CMOS-zerlegt werden kann. Diese CMOS-Komponenten sind in 17 dargestellt.
-
17 zeigt einen Inverter 1701 und eine TIE-Zelle 1702.
-
Der Inverter 1701 weist einen p-Kanal-Feldeffekttransistor 1703 auf, dessen Source mit einem hohen Versorgungspotential (VDD) verbunden ist, dessen Gate mit dem Eingang des Inverters, der mit einem Eingangssignal A versorgt wird, verbunden ist, und dessen Drain mit dem Ausgang des Inverters, der ein Ausgangssignal Z ausgibt, verbunden ist. Der Inverter 1701 weist ferner einen n-Kanal-Feldeffekttransistor 1704 auf, dessen Source mit einem niedrigen Versorgungspotential (VSS) verbunden ist, dessen Gate mit dem Eingang des Inverters verbunden ist, und dessen Drain mit dem Ausgang des Inverters verbunden ist.
-
Die TIE-Zelle 1702 weist einen p-Kanal-Feldeffekttransistor 1705 auf, dessen Source mit einem hohen Versorgungspotential (VDD) verbunden ist, dessen Gate mit dem Drain eines n-Kanal-Feldeffekttransistors 1706 verbunden ist, und dessen Drain mit dem Gate des n-Kanal-Feldeffekttransistors 1706 verbunden ist. Die Source des n-Kanal-Feldeffekttransistors 1706 ist mit einem niedrigen Versorgungspotenzial (VSS) verbunden.
-
Der Knoten (oder die Verbindung), der das Gate des p-Kanal-Feldeffekttransistors 1705 mit dem Drain des n-Kanal-Feldeffekttransistors 1706 verbindet, wird nachstehend als T0 bezeichnet, und der Knoten (oder die Verbindung), der das Gate des n-Kanal-Feldeffekttransistors 1706 mit dem Drain des p-Kanal-Feldeffekttransistors 1705 verbindet, wird nachstehend als T1 bezeichnet.
-
Im thermodynamischen Gleichgewicht nehmen die Knotenspannungen die Werte V(T1) = VDD und V(T0) = VSS an (die Relaxationszeit der Schaltung liegt je nach Prozesstechnologie, Versorgungsspannung und Temperatur im Bereich von einigen 100 ps bis in den Nanosekunden-Bereich).
-
TIE-Zellen können zur IC-Tarnung (auch als TIE-Zellen-Tarnkonzept oder -Ansatz bezeichnet) verwendet werden, die erkennbar auf HC-TIE-Füllzellen mit der Struktur der TIE-Zelle 1702 basieren. Eine derartige Füllzelle kann zum Beispiel verwendet werden, um eine bestimmte Kapazität zwischen zwei Versorgungsleitungen zu verhindern. Es ist zu erkennen, dass das TIE-Zellen-Tarnkonzept von den internen „stabilen Vollpegel“-Knoten der Füllzellen T1 = 1 (d.h. V(T1) = VDD) und T0 = 0 (d.h. V(T0) = VSS) zum Verbergen von TIE-1- und TIE-0-Zellen sowie der TIE-MUXOR-Zellen Gebrauch macht.
-
Bei dem TIE-Zellen-Ansatz für die IC-Tarnung ist es möglich, die Nachkonstruktion-Ingenieure in die Irre zu führen, wenn sie versuchen, die logischen Funktionen von Standardzellen zu extrahieren, und es ist möglich, den Gebrauch von automatisierter (Struktur-)Erkennung zur Identifizierung einer Funktionalität eines Tarngatters und seiner Verbindungen mit anderen Tarngattern oder mit regulären Gattern zu unterbinden. Das heißt, die mit TIE-Zellen getarnten Gatter können mit logischen Standardgattern kombiniert werden, um eine gegenüber Nachkonstruktion beständige IC-Implementierung zu erreichen. Da mehrere mit TIE-Zellen getarnte Gatter auf einem gesamten halbkundenspezifischen Abschnitt einer IC (sowie innerhalb einer vollkundenspezifischen Schaltung) „unregelmäßig“ verteilt sein können, erhöht das TIE-Zellen-Tarnkonzept wesentlich die Schwierigkeit, das Risiko und den Aufwand für eine IC-Nachkonstruktion. Des Weiteren erfordert das TIE-Zellen-Tarnkonzept keine Prozesstechnologiemodifikation und kann auf eine beliebige (CMOS-)Technologie angewendet werden.
-
Nachstehend sind zwei Versionen einer elementaren NICHT-LOKALEN bistabilen CMOS-Bitzelle unter Bezugnahme auf 18 und 19 beschrieben.
-
18 zeigt eine Bitzelle 1800 gemäß einer Ausführungsform, die mithilfe von Invertern implementiert ist.
-
Die Bitzelle 1800 weist einen ersten Inverter 1801 und einen zweiten Inverter 1802 auf, die dem unter Bezugnahme auf 17 beschriebenen Inverter 1701 ähnlich sind.
-
Die Bitzelle 1800 ist eine statische ICBC-X-Zelle, die wie vorstehend erwähnt implementiert ist, indem der Ausgang des ersten Inverters 1801 mit dem Eingang des zweiten Inverters 1802 verbunden ist und der Ausgang des zweiten Inverters 1802 mit dem Eingang des ersten Inverters 1801 verbunden ist. Der Ausgangsknoten des ersten Inverters 1801, der als Knoten B0 bezeichnet wird, ist mit dem Eingang eines dritten Inverters 1803, der ein Ausgangssignal Z ausgibt, verbunden und der Ausgangsknoten des zweiten Inverters 1802, der als Knoten B1 bezeichnet wird, ist mit dem Eingang eines vierten Inverters 1804, der ein Ausgangssignal Y ausgibt, verbunden.
-
Die Schwellenspannungen der Feldeffekttransistoren der Inverter 1801, 1802 können derart sein, dass beim Einschalten, d.h. als Antwort darauf, dass die Bitzelle 1800 mit Energie versorgt wird, ein vorgegebener der Inverter 1801, 1802 den Zustand B1/B0 = 1 aufweist, während der andere den Wert B0/B1 = 0 aufweist.
-
Die Bitzelle 1800 kann auf eine nicht-lokale Weise implementiert werden, indem die Inverter 1801, 1802 in einem bestimmten Abstand voneinander, z.B. mit einem oder mehreren Gattern zwischen ihnen, angeordnet werden.
-
19 zeigt eine Bitzelle 1900 gemäß einer Ausführungsform, die mithilfe von TIE-Zellen implementiert ist.
-
Die Bitzelle 1900 weist eine erste TIE-Zelle 1901 und eine zweite TIE-Zelle 1902 auf, die der unter Bezugnahme auf 17 beschriebenen TIE-Zelle 1702 ähnlich sind.
-
Die Bitzelle 1900 ist eine statische ICBC-X-Zelle, die durch Verbinden des T1-Knoten der ersten TIE-Zelle 1901 mit dem T0-Knoten der zweiten TIE-Zelle 1902 und Verbinden des T1-Knoten der zweiten TIE-Zelle 1902 mit dem T0-Knoten der ersten TIE-Zelle 1901 implementiert ist. Der T1-Knoten der ersten TIE-Zelle 1901, der als Knoten B0 bezeichnet wird, ist mit dem Eingang eines ersten Inverters 1903, der ein Ausgangssignal Z ausgibt, verbunden und der T1-Knoten der zweiten TIE-Zelle 1902, der als Knoten B1 bezeichnet wird, ist mit dem Eingang eines zweiten Inverters 1904, der ein Ausgangssignal Y ausgibt, verbunden.
-
Die Schwellenspannungen der Feldeffekttransistoren der TIE-Zellen 1901, 1902 können derart sein, dass beim Einschalten, d.h. als Antwort darauf, dass die Bitzelle 1900 mit Energie versorgt wird, eine vorgegebene der TIE-Zellen 1901, 1902 den Zustand von T1 = 1, T0 = 0 zuerst erreicht und verhindert, dass die andere TIE-Zelle 1901, 1902 diesen Zustand erreicht, so dass die Ausgangssignale Y, Z vordefinierte logische Zustände aufweisen.
-
Die Bitzelle 1900 kann auf eine nicht-lokale Weise implementiert werden, indem die TIE-Zellen 1901, 1902 in einem bestimmten Abstand voneinander, z.B. mit einem oder mehreren Gattern zwischen ihnen, angeordnet werden.
-
Gemäß einer Ausführungsform wird ein symmetrisches Routing von B1 und B0 bereitgestellt, um die Stabilität der jeweiligen Schaltung gegenüber Prozessschwankungen der (verschiedenen) Schwellenspannungen zu maximieren und dadurch die Ausbeute in Bezug auf vorhersagbare Ausgangswerte Y und Z zu maximieren.
-
Es ist zu beachten, dass im Gegensatz zu den vorstehend unter Bezugnahme auf 3, 10, 11 bis 14 und 16 beschriebenen ICBC-X- und RSX-Schaltungen die Zellen 1800, 1900 keinen Steuereingang aufweisen. Daher nehmen die ICBC-X-Zellen von 18 und 19 ihre (verborgenen) booleschen Werte (i.e. Y = X, Z = nicht(X); X = 0 oder X = 1) an, sobald die Versorgungsspannungen VDD und VSS stabile Werte erreicht haben, z.B. nach einem Einschalten einer IC, in der sie angeordnet sind.
-
Nachstehend ist ein Beispiel für eine komplexe bistabile CMOS-Bitzelle, die auf eine nicht-lokale Weise implementiert werden kann, beschrieben, die sowohl Inverter als auch TIE-Zellen als Komponenten aufweist (von denen beide außerdem in Reihe und parallel geschaltete nMOSFETs und pMOSFETs aufweisen).
-
20 zeigt eine Bitzelle 2000 gemäß einer Ausführungsform, die sowohl mithilfe von Invertern als auch TIE-Zellen implementiert ist.
-
Die Bitzelle 2000 weist eine erste TIE-Zelle 2001 auf, die ähnlich der TIE-Zelle 1702 von 17 implementiert ist, aber mit einer Reihenschaltung von zwei p-Kanal-FETs anstelle des p-Kanal-FET 1705.
-
Gleichermaßen weist die Bitzelle 2000 eine zweite TIE-Zelle 2002 auf, die ähnlich der TIE-Zelle 1702 von 17 implementiert ist, aber mit einer Reihenschaltung von zwei p-Kanal-FETs anstelle des p-Kanal-FET 1705.
-
Die Bitzelle 2000 weist ferner einen ersten Inverter 2003 auf, der ähnlich dem Inverter 1701 von 17 implementiert ist, aber mit einer Reihenschaltung von zwei p-Kanal-FETs anstelle des p-Kanal-FET 1703 und einer Reihenschaltung von drei n-Kanal-FETs anstelle des n-Kanal-FET 1704.
-
Die Bitzelle 2000 weist ferner einen zweiten Inverter 2004 auf, der ähnlich dem Inverter 1701 von 17 implementiert ist, aber mit einer Reihenschaltung von zwei n-Kanal-FETs anstelle des n-Kanal-FET 1704.
-
Außerdem weist die Bitzelle 2000 einen dritten Inverter 2005 auf, der als eine Parallelschaltung eines Inverters mit einer Struktur wie bei dem ersten Inverter 2003 und eines Inverters mit einer Struktur wie bei dem zweiten Inverter 2004 implementiert ist. Ein Knoten BR ist mit dem T0-Knoten der ersten TIE-Zelle 2001, dem Ausgang des dritten Inverters 2005, dem Eingang des vierten Inverters 2006, der ein Ausgangssignal Z ausgibt, dem Eingang des zweiten Inverters 2004, dem T1-Knoten der zweiten TIE-Zelle 2002 und dem Eingang des ersten Inverters 2003 verbunden.
-
Ein Knoten BL ist mit dem T1-Knoten der ersten TIE-Zelle 2001, dem Eingang des dritten Inverters 2005, dem Eingang des fünften Inverters 2007, der ein Ausgangssignal Y ausgibt, dem Ausgang des zweiten Inverters 2004, dem T0-Knoten der zweiten TIE-Zelle 2002 und dem Ausgang des ersten Inverters 2003 verbunden.
-
Gemäß einer Ausführungsform wird ein symmetrisches Routing von BR und BL bereitgestellt, um die Stabilität der jeweiligen Schaltung gegenüber Prozessschwankungen der (verschiedenen) Schwellenspannungen zu maximieren und dadurch die Ausbeute in Bezug auf vorhersagbare Ausgangswerte Y und Z zu maximieren.
-
Wie die Zellen 1800, 1900 von 18 und 19 weist die Zelle 2000 keinen Steuereingang auf. Daher nimmt die ICBC-X-Zelle von 20 ihre (verborgenen) booleschen Werte (d.h. Y = X, Z = nicht(X); X = 0 oder X = 1) in Abhängigkeit von der Beziehung der Schwellenspannungen der Feldeffekttransistoren, die die TIE-Zellen 2001, 2002 und die Inverter 2003 bis 2005 bilden, an, sobald die Versorgungsspannungen VDD und VSS stabile Werte erreicht haben, z.B. nach einem Einschalten einer IC, in der sie angeordnet sind. Diese Schwellenspannungen können derart eingestellt sein, dass die Zelle 2000 einen vorgegebenen logischen Zustand (d.h. Y = X, Z = nicht(X); X = 0 oder X = 1) aufweist. Die Bitzelle 2000 kann auf eine nicht-lokale Weise implementiert werden, indem eine oder mehrere der TIE-Zellen 2001, 2002 und einer oder mehrere der Inverter 2003 bis 2005 in einem bestimmten Abstand von einem oder mehreren der anderen, z.B. mit einem oder mehreren Gattern zwischen ihnen, angeordnet werden.
-
21 zeigt eine ICBC-X-Zelle 2100, die eine nicht-lokale Implementierung der ICBCX-Standardzelle 500 von 5 zeigt.
-
Ähnlich der ICBC-X-Standardzelle 500 von 5 weist die ICBC-X-Zelle 2100 auf:
eine ICBC-X, die durch p-Kanal-FETs 2101 und n-Kanal-FETs 2102, die wie vorstehend unter Bezugnahme auf 3 beschrieben verbunden sind, gebildet ist, und einen ersten Inverter 2103, der dem zweiten Inverter 503 entspricht, und einen zweiten Inverter 2104, der dem dritten Inverter 504 entspricht.
-
Außerdem weist die ICBC-X-Zelle 2100 einen dritten Inverter 2105 und einen vierten Inverter 2106 auf, die zusammen dem ersten Inverter 502 entsprechen (d.h. der dritte Inverter 2105 und der vierte Inverter 2106 weisen zusammen die gleiche Funktionalität wie der erste Inverter 502 auf). Wie in 21 dargestellt, können der dritte Inverter 2105 und der vierte Inverter 2106 innerhalb eines bestimmten Abstands voneinander angeordnet sein (wobei z.B. eine andere Zelle, z.B. ein Gatter, zwischen ihnen liegt). Gleichermaßen können die FETs 2101, 2102 voneinander beabstandet angeordnet sein, in diesem Beispiel in einer ersten Gruppe 2107, die in der Nähe des ersten Inverters 2105 angeordnet ist, und einer zweiten Gruppe 2108, die in der Nähe des zweiten Inverters 2106 angeordnet ist.
-
Nachstehend werden ein Beispiel für eine ICBC-X-Implementierung und ein Beispiel für eine nicht-lokale ICBC-X-Implementierung eines NOR-basierten RS-Flipflops gegeben. 22 zeigt ein NOR-basiertes RS-Flipflop 2200.
-
Das RS-Flipflop 2200 weist ein erstes NOR-Gatter 2201 und ein zweites NOR-Gatter 2202 auf.
-
Das erste NOR-Gatter 2201 empfängt das R-Eingangssignal und die Ausgabe des zweiten NOR-Gatters 2202, die das Ausgangssignal BR bildet.
-
Das zweite NOR-Gatter 2202 empfängt das S-Eingangssignal und die Ausgabe des ersten NOR-Gatters 2201, die das Ausgangssignal BL bildet.
-
Das RS-Flipflop 2200 weist den verbotenen Eingangssignalübergang
(R, S) = (1, 1) → (0, 0) auf, der zu einem metastabilen Zustand führen würde, wenn beide NOR-Gatter 2201, 2202 gleiche Signalübergangscharakteristiken aufweisen (d.h. die Schaltung symmetrisch ist).
-
23 zeigt ein Beispiel einer NOR-basierten ICBC-X 2300, bei der zu sehen ist, das sie auf dem NOR-basierten RS-Flipflop von 22 basiert.
-
Der R-Eingang und der S-Eingang sind als ein einzelner Eingang S gekennzeichnet. Dies erzwingt metastabile Zustandsübergänge (R, S) = (1, 1) → (0, 0). Durch Bereitstellen von angemessen unterschiedlichen Schwellenspannungen für die Feldeffekttransistoren der NOR-Gatter kann eine hinreichend asymmetrische Signalübergangscharakteristik erzielt werden, um die Metastabilität auf eine vorhersagbare und stabile Weise aufzulösen.
-
Die ICBC-X 2300 weist einen ersten p-Kanal-FET (Feldeffekttransistor) 2301 auf, dessen Sourceanschluss mit einem hohen Versorgungspotential (VDD) verbunden ist, dessen Drain mit dem Sourceanschluss eines zweiten p-Kanal-FET 2302 verbunden ist, und dessen Gate mit dem Gate eines ersten n-Kanal-FET 2303 verbunden ist.
-
Der Drain des zweiten p-Kanal-FET 2302 ist mit dem Drain des ersten n-Kanal-FET 2303 verbunden und das Gate des zweiten p-Kanal-FET 2302 wird mit dem Eingangssignal S versorgt. Die Source des ersten n-Kanal-FET 2303 ist mit einem niedrigen Versorgungspotential (VSS) gekoppelt.
-
Die ICBC-X 2300 weist einen dritten p-Kanal-FET 2304 auf, dessen Sourceanschluss mit dem hohen Versorgungspotential (VDD) verbunden ist, dessen Drain mit dem Sourceanschluss eines vierten p-Kanal-FET 2305 verbunden ist, und dessen Gate mit dem Gate eines zweiten n-Kanal-FET 2306 verbunden ist. Der Drain des vierten p-Kanal-FET 2305 ist mit dem Drain des zweiten n-Kanal-FET 2306 verbunden und die Source des vierten p-Kanal-FET 2305 wird mit dem Eingangssignal S versorgt. Die Source des zweiten n-Kanal-FET 2306 ist mit einem niedrigen Versorgungspotential (VSS) gekoppelt.
-
Das Gate des ersten n-Kanal-FET 2303 ist ferner mit dem Drain eines dritten n-Kanal-FET 2307 und dem Drain des vierten p-Kanal-FET 2305 gekoppelt. Der Zustand dieser Verbindung, als BR bezeichnet, wird einem ersten Inverter 2308 zugeführt, dessen Ausgabe ein Ausgangssignal Z ist. Die Source des dritten n-Kanal-FET 2307 ist mit dem niedrigen Versorgungspotential verbunden und sein Gate wird mit dem Eingangssignal S versorgt.
-
Das Gate des zweiten n-Kanal-FET 2306 ist ferner mit dem Drain eines vierten n-Kanal-FET 2309 und dem Drain des zweiten p-Kanal-FET 2302 gekoppelt. Der Zustand dieser Verbindung, als BL bezeichnet, wird einem zweiten Inverter 2310 zugeführt, dessen Ausgabe ein Ausgangssignal Y ist. Die Source des vierten n-Kanal-FET 2309 ist mit dem niedrigen Versorgungspotential verbunden und sein Gate wird mit dem Eingangssignal S versorgt.
-
24 zeigt eine ICBC-X-Schaltung 2400, die eine nicht-lokale Version der ICBC-X 2300 von 23 zeigt.
-
Die ICBC-X 2400 weist FETs 2401 auf, die den FETs 2301 bis 2307, 2309 der ICBC-X 2300 entsprechen, die wie vorstehend unter Bezugnahme auf 23 beschrieben verbunden sind. Die FETs sind in zwei Gruppen 2402, 2403 eingeteilt, die in einem gewissen Anstand zwischen ihnen auf einem Chip angeordnet sind, wobei z.B. ein oder mehrere Gatter zwischen ihnen liegen.
-
Gemäß einer Ausführungsform wird ein symmetrisches Routing von BR und BL bereitgestellt, um die Stabilität der jeweiligen Schaltung gegenüber Prozessschwankungen der (verschiedenen) Schwellenspannungen zu maximieren und dadurch die Ausbeute in Bezug auf vorhersagbare Ausgangswerte Y und Z zu maximieren.
-
Obwohl konkrete Aspekte beschrieben wurden, wird es für einen Fachmann verständlich sein, dass hierin verschiedene Änderungen der Form und der Einzelheiten vorgenommen werden können, ohne vom Erfindungsgedanken und Umfang der Aspekte dieser Offenbarung, wie sie durch die beigefügten Ansprüche definiert sind, abzuweichen. Der Umfang ist somit durch die beigefügten Ansprüche und alle Änderungen, die innerhalb der Bedeutung und des Bereichs der Äquivalenz der Ansprüche liegen, angegeben und soll daher angenommen werden.