Die vorliegende Erfindung bezieht
sich auf Halbaddiererschaltungen und insbesondere auf Halbaddiererschaltungen
zum Addieren von Bits von zumindest drei Eingangsoperanden, um zumindest
zwei Ausgabebits zu erhalten.The present invention relates
refer to half adder circuits and in particular to half adder circuits
for adding bits of at least three input operands to at least
to get two output bits.
Die DE 3631992 C2 offenbart einen Kryptographieprozessor
zum Durchführen
des RSA-Public-Key-Kryptosystems. Hierbei wird eine modulare Exponentiation
mit einer Basis, einem Exponenten und einem Modul in eine Vielzahl
von Drei-Operanden-Additionen
zerlegt. Die drei Operanden umfassen einen Moduloperanden N, einen
Multiplikanden-Operanden C und einen Zwischenergebnis-Operanden
Z. Durch entsprechende Verschiebung/Gewichtung der drei Operanden
vor der Addition kann eine durch einen Multiplikations-Look-Ahead-Algorithmus
und einen Reduktions-Look-Ahead-Algorithmus beschleunigte Multiplikation/Reduktion
durchgeführt
werden.The DE 3631992 C2 discloses a cryptographic processor for performing the RSA public key cryptosystem. A modular exponentiation with a base, an exponent and a module is broken down into a multitude of three-operand additions. The three operands comprise a module operand N, a multiplicand operand C and an intermediate result operand Z. By appropriate shifting / weighting of the three operands before the addition, one by means of a multiplication look-ahead algorithm and a reduction look-ahead algorithm Accelerated multiplication / reduction algorithm can be performed.
7 zeigt
einen Ausschnitt aus dem Addierwerk, das gewissermaßen das
Herz des Kryptographieprozessors darstellt, der in der DE 3631992 C2 dargestellt
ist. Im einzelnen zeigt 7 zwei
aufeinanderfolgende Bit-Slices, um die zwei Summenbits i-1 und i
zu berechnen, und zwar aus den drei Eingangsoperandenbits Ci, Ni, Zi bzw.
Ci-1, Ni-1, Zi-1 bzw. aus Ci-2,
Ni-2 und Zi-2. Die
Drei-Operanden-Addition von C, N, Z wird, auf Bitebene betrachtet,
in eine zweistufige Operation zerlegt. Zur Ausführung der ersten Stufe der
Operation ist ein Drei-Bit-Halbaddierer 80 vorgesehen,
wobei jedem Drei-Bit-Halbaddierer 80 ein Zwei-Bit-Volladdierer 81 nachgeschaltet
ist. Der Drei-Bit-Halbaddierer
liefert zwei Ausgangsbits xi, yi,
wobei die Ausgangsbits xi, yi in die
nachgeschalteten Zwei-Bit-Volladdierer
so eingespeist werden, wie es in 7 darge stellt
ist. Im einzelnen wird in jedem Zwei-Bit-Volladdierer eines Bit-Slices
das niederwertige Bit yi am Ausgang des
Drei-Bit-Halbaddierers mit dem hochwertigen Bit der um eine Ordnung
niedrigeren Drei-Bit-Halbaddiererstufe (xi-1)
in dem Zwei-Bit-Volladdierer 81 kombiniert, um ein Summenbit 82 sowie
ein Übertragbit 83 zu
berechnen. Die Drei-Operanden-Addition
wird also in zwei Abschnitte unterteilt. Im ersten Abschnitt wird
an jeder binären
Stelle eine Summe der drei Bits der Operanden gebildet. Die Summe
kann die Werte von 0 bis 3 (in Dezimaldarstellung) annehmen. Die
Summe ist also binär
mit den zwei Bits x, y darstellbar. Da die Summe an jeder Stelle gebildet
wird, können
aus den zwei Summenbits zwei neue Zahlen zusammengestellt werden. 7 shows a section of the adder, which represents the heart of the cryptographic processor, which is in the DE 3631992 C2 is shown. In detail shows 7 two consecutive bit slices to calculate the two sum bits i-1 and i, namely from the three input operand bits C i , N i , Z i and C i-1 , N i-1 , Z i-1 and from C i-2 , N i-2 and Z i-2 . The three-operand addition of C, N, Z is broken down into a two-stage operation when viewed at the bit level. To perform the first stage of the operation is a three bit half adder 80 provided, each three-bit half adder 80 a two-bit full adder 81 is connected downstream. The three-bits half adder produces two output bits x i, y i, wherein the output bits of x i, y i in the downstream two-bit full adders are fed as it in 7 Darge is. Specifically, in each two-bit full adder of a bit slice, the low-order bit y i at the output of the three-bit half adder with the high-quality bit of the one-order lower three-bit half adder stage (x i-1 ) in the two bit full adder 81 combined to one sum bit 82 as well as a carry bit 83 to calculate. The three-operand addition is therefore divided into two sections. In the first section, a sum of the three bits of the operands is formed at each binary position. The sum can take the values from 0 to 3 (in decimal notation). The sum can therefore be represented in binary form with the two bits x, y. Since the sum is formed at every point, two new numbers can be put together from the two sum bits.
Im zweiten Abschnitt werden die beiden
Zahlen auf übliche
Art und Weise durch den Zwei-Bit-Volladdierer 81 addiert.
Die Verschaltung, derart, daß ein
Zwei-Bit-Volladdierer immer zwei Ausgangsbits von zwei unterschiedlichen
Drei-Bit-Halbaddierern
als Eingabe erhält,
führt zu
einer Verlängerung
des Rechenwerks um ein Bit.In the second section, the two numbers are replaced in the usual way by the two-bit full adder 81 added. The interconnection, such that a two-bit full adder always receives two output bits from two different three-bit half adders as input, leads to an extension of the arithmetic unit by one bit.
Der in 7 gezeigte
Drei-Operanden-Addierer ist dahingehend problematisch, daß weder
eine Sicherung der Eingangsoperanden C, N, Z noch eine Sicherung
der „Zwischenoperanden"
x, y vorgesehen ist. Dies ist dahingehend problematisch, daß besonders
in dem normalen Fall, in dem alle Schaltungen in CMOS-Logik ausgeführt sind,
das Umschalten eines Bits von 0 auf 1 bzw. von 1 auf 0 zu einem
Stromimpuls führt,
der beginnt, wenn ein Bit-Zustand umgeschaltet wird. Bekanntlich
verbrauchen CMOS-Schaltungen im statischen Zustand keinen Strom.
Im Umschaltzustand haben sie jedoch einen Stromverbrauch. Dieser
Stromverbrauch ist durch eine Leistungsanalyse eruierbar. Damit
ist es grundsätzlich
möglich,
Informationen über
C, N, Z abzuleiten, um beispielsweise auf den geheimen Schlüssel Rückschlüsse zu ziehen,
der in einer RSA-Operation verwendet wird.The in 7 The three-operand adder shown is problematic in that neither the input operands C, N, Z nor the "intermediate operands" x, y are provided. This is problematic in that particularly in the normal case in which all circuits are implemented in CMOS logic, the switching of a bit from 0 to 1 or from 1 to 0 leads to a current pulse which begins when a bit state is switched over, as is known, CMOS circuits do not consume any current in the static state However, they have a power consumption, which can be determined by a performance analysis, which in principle makes it possible to derive information about C, N, Z, for example, in order to draw conclusions about the secret key that is used in an RSA operation.
Ein Angreifer könnte beispielsweise durch Aufnahme
des Stromprofils ermitteln, ob eine Umschaltung von 0 auf 1 oder
von 1 auf 0 stattgefunden hat. Bei einer ungesicherten Schaltung
würde immer
dann eine Umschaltung eines Bits auftreten, wenn im Stromprofil
eine Stromspitze erkennbar ist. Ein Angreifer kann daher das gesamte
Umschaltverhalten eines Rechenwerks anhand des Stromprofils nachvollziehen.
Der Angreifer bräuchte
dann lediglich noch ein einziges Bit in einer ganzen Sequenz, um
daraus rekonstruieren zu können,
ob die Umschaltung von einer „1"
auf eine „0"
oder umgekehrt stattgefunden hat.An attacker could, for example, by admission
of the current profile determine whether a switchover from 0 to 1 or
from 1 to 0. With an unsecured circuit
would always
then a bit switch occurs when in the current profile
a current peak is recognizable. An attacker can therefore do the whole
Understand the switching behavior of an arithmetic unit based on the current profile.
The attacker needed
then just a single bit in a whole sequence to
to be able to reconstruct from it,
whether switching from a "1"
to a "0"
or vice versa.
Bestimmte CMOS-Schaltungen haben
ferner die Eigenschaft, daß die
Umschaltung von 0 auf 1 einen anderen Stromverbrauch mit sich zieht
als die Umschaltung von 1 auf 0. In diesem Fall sieht ein Angreifer durch
einen Vergleich von zwei unterschiedlichen Stromspitzen unmittelbar,
welche Bits im Rechenwerk verarbeitet worden sind.Have certain CMOS circuits
furthermore the property that the
Switching from 0 to 1 entails a different power consumption
than switching from 1 to 0. In this case, an attacker sees through
a comparison of two different current peaks immediately,
which bits have been processed in the arithmetic unit.
Als Abwehrmaßnahme gegen solche Leistungsanalyseangriffe
wurde vorgeschlagen, eine sogenannte Dual-Rail-Technik einzusetzen.
Bei der Dual-Rail-Technik wird prinzipiell betrachtet jeder Signalweg
doppelt ausgeführt.
Auf dem ersten Signalweg wird beispielsweise ein Signal x normal
verarbeitet. Auf dem zweiten, in demselben Chip integrierten, Signalweg
wird nicht das Signal x verarbeitet, sondern das komplementäre Signal x. Dies führt dazu, daß immer
dann, wenn in der Signalleitung ein Übergang von beispielsweise
0 auf 1 stattfindet, in der anderen Leitung, also der zweiten „Rail",
ein komplementärer Übergang
stattfindet. Für
jeden Bitübergang
finden daher auf beiden Leitungen immer beide Übergänge statt. Dies führt dazu,
daß für Schaltungen,
bei denen Übergänge von
0 auf 1 und 1 auf 0 unterschiedlich viel Strom brauchen, nicht mehr
eruierbar ist, ob ein Übergang
von 0 auf 1 oder von 1 auf 0 stattgefunden hat. Dies liegt daran,
daß das
Stromprofil für jeden
Schaltungsübergang
eine Spitze enthält,
die die Überlagerung
des Stromverbrauchs der beiden Rails ist. Die Dual-Rail-Technik
liefert eine hohe Sicherheit, jedoch mit dem Nachteil, daß alle Schaltungen
normalerweise doppelt ausgeführt
werden müssen
und daß der
Leistungsverbrauch der gesamten Schaltung ebenfalls doppelt so hoch
ist. Dafür
ist die Schaltung jedoch bereits in gewissem Umfang gegenüber Leistungsanalyseattacken
immun.As a countermeasure against such performance analysis attacks, it was proposed to use a so-called dual-rail technique. In principle, with dual-rail technology, each signal path is carried out twice. For example, a signal x is processed normally on the first signal path. The signal x is not processed on the second signal path integrated in the same chip, but the complementary signal x , This means that whenever there is a transition from 0 to 1 in the signal line, for example, a complementary transition takes place in the other line, that is to say the second “rail”. For each bit transition, therefore, both transitions always take place on both lines This means that for scarf If the transition from 0 to 1 and 1 to 0 requires different amounts of current, it is no longer possible to determine whether a transition from 0 to 1 or from 1 to 0 has taken place. This is because the current profile contains a peak for each circuit transition, which is the superposition of the current consumption of the two rails. The dual-rail technology provides a high level of safety, but with the disadvantage that all circuits normally have to be carried out twice and that the power consumption of the entire circuit is also twice as high. However, the circuit is already somewhat immune to performance analysis attacks.
Wird lediglich eine Dual-Rail-Technik
eingesetzt, so ist anhand des Stromprofils immer noch zu erkennen,
ob ein bestimmtes Bit von 0 auf 1 bzw. von 1 auf 0 übergegangen
ist oder im Vergleich zum vorigen Taktzyklus gleichgeblieben ist.
Im Falle eines Bitübergangs
ist nämlich
eine Leistungsspitze ersichtlich. Die Leistungsspitze ist jedoch
nicht ersichtlich, wenn ein Bit von einem Zyklus zum nächsten beispielsweise
auf 1 oder auf 0 geblieben ist, sich also nicht verändert hat.
Zur Abwehr von Angriffen, die auf diesem Effekt basieren, wurde
vorgeschlagen, die Dual-Rail-Technik um einen Precharge/Predischarge-Modus
zu ergänzen.
Die Schaltung wird abwechselnd in einem Datenmodus und einem Vorbereitungsmodus
(Precharge/Predischarge) betrieben. Jedem Datenzyklus geht ein Vorbereitungszyklus
voraus, in dem im Falle von Precharge beide Rails, also beispielsweise
x und x auf „1" vorgeladen
werden, um dann, in dem Datenmodus, zu verarbeitende komplementäre Eingangssignale
in die beiden Rails zu speisen. Dies führt dazu, daß immer,
von einem Datenzyklus zu einem Vorbereitungszyklus oder von einem
Vorbereitungszyklus zu einem Datenzyklus, genau die gleiche Anzahl
von Übergängen stattfindet.
Ist der Vorbereitungsmodus als Predischarge-Modus ausgeführt, so
werden im Vorbereitungsmodus alle Eingangsdaten nicht, wie im Precharge,
auf 1 initialisiert, sondern auf 0 „vorentladen". Dann findet
ebenfalls von einem Vorbereitungszyklus zu einem Datenzyklus und
umgekehrt genau dieselbe Anzahl von Übergängen statt.If only dual-rail technology is used, it can still be seen from the current profile whether a certain bit has changed from 0 to 1 or from 1 to 0 or has remained the same as in the previous clock cycle. In the case of a bit transition, a peak in power can be seen. However, the peak power is not evident if a bit has remained from 1 cycle to the next, for example, at 1 or at 0, ie has not changed. To prevent attacks based on this effect, it was proposed to add a pre-charge / predischarge mode to the dual-rail technology. The circuit is operated alternately in a data mode and a preparation mode (pre-charge / predischarge). Each data cycle is preceded by a preparation cycle in which, in the case of precharge, both rails, for example x and x are precharged to "1" in order then to feed complementary input signals to be processed in the two rails in the data mode. This means that, from one data cycle to one preparation cycle or from one preparation cycle to one data cycle, exactly the same number If the preparation mode is designed as a predischarge mode, all input data in the preparation mode are not initialized to 1, as in the pre-charge, but to "pre-discharge" to 0. Then exactly the same number of transitions takes place from a preparation cycle to a data cycle and vice versa.
Wie es bereits ausgeführt worden
ist, wird für
die Ausführung
von modularen Operationen, wie z. B. Addition oder Multiplikation,
beispielsweise im Rahmen kryptographischer Algorithmen, wie RSA
oder elliptische Kurven, ein Drei-Operanden- Addierer benötigt. Diese Operationen müssen aus
den verschiedenen Gründen
vom Addierwerk sicher gegenüber
Power-Attacken ausgeführt
werden. Da kryptographische Berechnungen äußerst rechenaufwendig sind,
muß das
Addierwerk eine hohe Leistung haben. Da insbesondere in der Kryptographie
lange Operanden verarbeitet werden müssen, wobei die Operandenlänge bei
elliptischen Kurven im Bereich zwischen 100 und 200 Bits liegt und
im Bereich von RSA zwischen 1.024 und 2.048 Bits liegt, hat das
Rechenwerk selbst eine große
Bitlänge,
um die an das Rechenwerk gestellten Anforderungen nach Schnelligkeit
zu erreichen.As it has been done
is, is for
execution
of modular operations such as B. addition or multiplication,
for example in the context of cryptographic algorithms such as RSA
or elliptic curves, a three-operand adder is required. These operations must be done
the various reasons
from the adder opposite
Power attacks carried out
become. Since cryptographic calculations are extremely computationally complex,
must
Adder have a high performance. Because especially in cryptography
long operands must be processed, with the operand length at
elliptic curves is in the range between 100 and 200 bits and
in the range of RSA between 1,024 and 2,048 bits, that has
Calculator itself a big one
bit length,
about the demands placed on the arithmetic unit for speed
to reach.
Um das in 7 gezeigte Rechenwerk, das ausschnittweise
zwei Bit-Slices eines größeren Rechenwerks
mit beispielsweise 2300 Bit-Slices zeigt, gegenüber kryptographischen Attacken
sicherer zu machen, ist es zunächst
erforderlich, die Eingangsoperanden C, N, Z in Dual-Rail-Technik
den 3-Bit-Halbaddierern 80 zuzuführen.To do that in 7 shown arithmetic unit, which shows sections of two bit slices of a larger arithmetic unit with, for example, 2300 bit slices, to make them more secure against cryptographic attacks, it is first necessary to use the input operands C, N, Z in dual-rail technology half adders 80 supply.
Eine noch bessere Sicherheit besteht
darin, nicht nur eine Dual-Rail-Technik anzuwenden, sondern eine
Dual-Rail-Technik mit Precharge bzw. Pre-Discharge zu verwenden.
Hierbei wechselt immer ein Datentakt mit einem sogenannten Vorbereitungstakt
ab. In einem Datentakt ist beispielsweise das Bit Ci gleich
0 oder 1, während
das komplementäre
Bit, das auf der „zweiten
Rail" zugeführt
wird, und mit C
i bezeichnet
wird, komplementär
zu dem Bit Ci ist. In einem dem Datentakt
nachgeordneten Vorbereitungstakt wird im Falle eines Precharge als
Vorbereitungsmodus eine Aufladung beider Leitungen auf z. B. Vdd
durchgeführt,
was beispielsweise dem logischen Zustand „1" entsprechen könnte. Beide
Dual-Rail-Leitungen haben im Vorbereitungsmodus somit den gleichen
Wert. Im Falle eines Discharge könnten
beide Leitungen Ci und C
i auf das Potential Vss
gebracht werden, das typischerweise das Erdungspotential ist, wobei
das Erdungspotential bei dem vorliegenden Beispiel einer logischen „0" entspricht.
Selbstverständlich
kann Vss auch einer logischen „1"
entsprechen. Dann würde
Vdd einer logischen „0"
entsprechen.An even better security is not only to use a dual-rail technology, but to use a dual-rail technology with pre-charge or pre-discharge. Here, a data cycle alternates with a so-called preparation cycle. In a data cycle, for example, bit C i is 0 or 1, while the complementary bit that is fed on the “second rail” and with C i is called, is complementary to the bit C i . In a preparation clock downstream of the data clock, in the case of a pre-charge, a preparation of both lines on z. B. Vdd performed, which could correspond to the logical state "1", for example. Both dual rail lines thus have the same value in the preparation mode. In the case of a discharge, both lines C i and C i are brought to the potential Vss, which is typically the ground potential, the ground potential in the present example corresponding to a logical "0". Of course, Vss can also correspond to a logical "1". Then Vdd would correspond to a logical "0".
Konsequenterweise müßten dann
die Bits xi und yi bzw.
xi
-1 und yi
-1 ebenfalls in
Dual-Rail-Technik mit Precharge zu den entsprechenden nachgeschalteten
2-Bit-Volladdierern 81 zugeführt werden, wobei wieder immer
ein Datentakt einem Vorbereitungstakt folgt. Ausgangsseitig würden dann
die Übertragbits
C 83 und die Summenbits 82 ebenfalls in Dual-Rail-Technik
mit Precharge/Pre-Discharge aus dem 2-Bit-Volladdierer herausgeführt werden.Consequently, the bits x i and y i or x i -1 and y i -1 would then also have to be used in dual-rail technology with precharge to the corresponding downstream 2-bit full adders 81 are supplied, with a data cycle always following a preparation cycle. The carry bits C 83 and the sum bits 82 can also be led out of the 2-bit full adder using dual-rail technology with pre-charge / pre-discharge.
So genügt es jedoch für eine optimale
Sicherheit nicht nur, daß die
Eingangsleitungen in die Elemente 80 und 81 und
die Ausgangsleitungen aus den Elementen 80 und 81 in
Dual-Rail-Technik
ausgeführt
sind. Statt dessen ist es ferner wichtig, daß auch die Schaltungen 80, 81 selbst
als Dual-Rail-Schaltungen
ausgeführt sind.
Dies kann dadurch erreicht werden, daß der 3-Bit-Halbaddierer 80 und
jeder 2-Bit-Volladdierer 81 doppelt vorhanden
ist und so ausgebildet ist, daß der
erste 3-Bit-Halbaddierer 80 beispielsweise mit den nicht-invertierten
Operandenbits Ci, Ni und
Zi rechnet, um xi und
yi zu erhalten. Der zweite 3-Bit-Halbaddierer
80 für
denselben Bit-Slice würde
dann mit den invertierten Bits C
i, N
i und Z
i arbeiten, um z. B. die invertierten Ausgangsbits x
i und y
i zu
erhalten. Selbstverständlich
sind jegliche Kreuzkombinationen denkbar, so daß der erste 3-Bit-Halbaddierer so ausgebildet
ist, um aus den nicht-invertierten
Eingangsbits die invertierten Ausgangsbits zu berechnen und umgekehrt.However, for optimal security it is not only sufficient that the input lines into the elements 80 and 81 and the output lines from the elements 80 and 81 are implemented in dual-rail technology. Instead, it is also important that the circuits 80 . 81 are designed as dual-rail circuits. This can be achieved by using the 3-bit half adder 80 and every 2-bit full adder 81 is present twice and is designed such that the first 3-bit half adder 80 for example, calculates with the non-inverted operand bits C i , N i and Z i in order to obtain x i and y i . The second 3-bit half adder 80 for the same bit slice would then have the inverted bits C i , N i and Z i work to z. B. the inverted output bits x i and y i get. Of course, any cross combinations are conceivable, so that the first 3-bit half adder is designed to convert the non-inverted input bits into the inverted output bits to calculate and vice versa.
Dasselbe müßte für den 2-Bit-Volladdierer 81 durchgeführt werden,
um eine optimal sichere Schaltung in einem Bit-Slice eines Langzahlrechenwerks
für eine
RSA-Berechnung mit Modullängen
von 1024 Bits, 2048 Bits etc. zu erreichen. Solche Rechenwerke werden
zur Ausführung
von modularen Operationen, wie z. B. Addition und Multiplikation,
beispielsweise im Rah men kryptographischer Algorithmen wie RSA oder
elliptische Kurven benötigt.
Eine 3-Operanden-Addition, die der 3-Operanden-Addierer, der in 7 ausschnittweise gezeigt
ist, ausführt,
besteht darin, einen ersten Summand C zu einem zweiten Summand Z
hinzu zu addieren, und schließlich
den Modul N je nach Look-Ahead-Vorschrift zu addieren oder zu subtrahieren.
Diese Operationen müssen,
wie es ausgeführt
worden ist, vom Addierwerk sicher gegenüber Power-Attacken ausgeführt werden.The same would have to be done for the 2-bit full adder 81 be carried out in order to achieve an optimally secure circuit in a bit slice of a long number arithmetic unit for RSA calculation with module lengths of 1024 bits, 2048 bits etc. Such arithmetic units are used to carry out modular operations such. B. addition and multiplication, for example in the context of men cryptographic algorithms such as RSA or elliptic curves required. A 3-operand addition that the 3-operand adder, which in 7 is shown in sections, consists of adding a first summand C to a second summand Z, and finally adding or subtracting the module N depending on the look-ahead rule. As has been carried out, these operations must be carried out safely by the adder against power attacks.
Es ist unmittelbar einsichtig, daß kryptographische
Berechnungen äußerst rechenaufwendig
sind. Daher besteht neben der Sicherheit auch die Anforderung an
das Rechenwerk, daß es
eine hohe Leistung hat, dahingehend, daß es möglichst wenig Rechenzeit benötigt bzw.
im Falle von begrenzten Ressourcen, wie beispielsweise auf einer
Chipkarte, noch mit einer erträglichen
Rechenzeit hochsichere Operationen ausführen kann.It is immediately obvious that cryptographic
Calculations extremely complex
are. Therefore, in addition to security, there is also a requirement
the arithmetic unit that it
has a high performance in that it requires as little computing time as possible or
in the case of limited resources, such as on one
Chip card, still with a tolerable
Computing time can perform highly secure operations.
Da die Arithmetik kryptographischer
Operationen eine Langzahlarithmetik ist, hat, wie es ausgeführt worden
ist, das Rechenwerk selbst eine große Bitlänge, um überhaupt eine geforderte Leistung
zu erreichen. So wird davon ausgegangen, daß jeder Bit-Slice einer Stelle
eines Moduls entspricht, dahingehend, daß alle Stellen in entsprechende
Hardware-Bit-Slices „abgebildet"
sind. Lediglich diese maximal parallele Ausführung garantiert in den meisten
Fällen
eine ausreichende Performance.Because arithmetic is more cryptographic
Operations is a long number arithmetic, as has been done
is, the arithmetic unit itself has a large bit length in order to achieve any required performance
to reach. So it is assumed that each bit slice is a digit
corresponds to a module in that all digits are in corresponding
Hardware bit slices "mapped"
are. Only this maximum parallel design is guaranteed in most
make
adequate performance.
Im Hinblick auf die geforderte maximale
Parallelität
und andererseits im Hinblick auf die Kosten für den Chip, der ein solches
Rechenwerk umfaßt,
und auch im Hinblick auf andere an die Chipfläche angelegten Begrenzungen
ist es zwingend notwendig, das Rechenwerk sehr flächensparend
zu entwerfen. Es wird also prinzipiell ein Rechenwerk benötigt, das
eine hohe Leistung hat, das außerdem
sicher ist, und das eine minimale Fläche benötigt.With regard to the required maximum
parallelism
and on the other hand in terms of the cost of the chip that is such
Includes arithmetic unit,
and also with regard to other limitations placed on the chip area
it is imperative that the calculator is very space-saving
to design. In principle, an arithmetic unit is required that
has a high performance that as well
is safe and that requires a minimal area.
Die vorstehenden drei Anforderungen
widersprechen sich jedoch dahingehend, daß eine maximale Sicherheit
durch Dual-Rail-Technik
mit einem doppelten Flächenaufwand
des Rechenwerks sehr teuer erkauft werden muß.The above three requirements
contradict each other in that maximum security
thanks to dual-rail technology
with a double space requirement
the calculator must be bought very expensive.
Die Aufgabe der vorliegenden Erfindung
besteht darin, einen Halbaddierer zu schaffen, der einerseits sicher
ist und andererseits einen erträglichen
Flächenaufwand
mit sich bringt.The object of the present invention
is to create a half adder that is safe on the one hand
is bearable and on the other hand
area cost
brings with it.
Diese Aufgabe wird durch einen Halbaddierer
gemäß Anspruch
1 gelöst.This task is done by a half adder
according to claim
1 solved.
Der vorliegenden Erfindung liegt
die Erkenntnis zugrunde, daß der
3-Bit-Halbaddierer z. B. in einer Bit-Slice eines kompletten 3-Operanden-Addierers
nicht in kompletter Dual-Rail-Technik
ausgeführt
wird, also doppelt auf einer Schaltung implementiert wird, sondern
daß statt
dessen gewissermaßen
eine „One-Hot"-Realisierung
des Halbaddierers eingesetzt wird, welche dazu führt, daß der Halbaddierer flächensparender
ausgeführt
werden kann und dennoch eine je nach Ausführungsform adäquate Sicherheit
gegen Power-Attacken erreicht. Ein erfindungsgemäßer Halbaddierer zum Addieren
von Bits von zumindest drei Eingangsoperanden, um zumindest zwei
Ausgabebits zu erhalten, umfaßt
für jedes
Ausgabebit eine Schaltstufe, wobei die Schaltstufe ausgebildet ist,
um gemäß einer
Halbaddierervorschrift für
das entsprechende Ausgabebit abhängig
von den Bits der Eingangsoperanden ein Rechenpotential an einen
Ausgang der Schaltstufe durchzuschalten, wobei das Rechenpotential
an dem Ausgang das Ausgabebit oder eine invertierte Version des
Ausgabebits darstellt. Der Halbaddierer umfaßt ferner für jedes Ausgabebit eine Ausgabestufe,
die der Schaltstufe für
dieses Ausgabebit nachgeschaltet ist. Die Ausgabestufe umfaßt einen
ersten Ausgang und einen zweiten Ausgang, wobei in einem Datenmodus
an dem ersten Ausgang das Ausgabebit ausgebbar ist, und wobei in
dem Datenmodus an dem zweiten Ausgang eine invertierte Version des
Ausgabebits ausgebbar ist, und wobei die Ausgabestufe ferner wirksam
ist, um in einem Vorbereitungsmodus den ersten Ausgang und den zweiten
Ausgang auf dasselbe Vorbereitungspotential zu bringen, wobei sich
das Vorbereitungspotential von dem Rechenpotential unterscheidet.The present invention lies
based on the knowledge that the
3-bit half adder e.g. B. in a bit slice of a complete 3-operand adder
not in complete dual-rail technology
accomplished
is implemented twice on a circuit, but
that instead
so to speak
a "one-hot" implementation
the half adder is used, which leads to the fact that the half adder saves space
accomplished
can still be an adequate security depending on the embodiment
achieved against power attacks. A half adder according to the invention for adding
from bits of at least three input operands to at least two
To get output bits includes
for each
Output bit a switching stage, the switching stage being designed
to according to a
Half adder rule for
the corresponding output bit depends
a computing potential from the bits of the input operands to one
Switch through the output of the switching stage, the computing potential
at the output the output bit or an inverted version of the
Represents output bits. The half adder further comprises an output stage for each output bit,
that of the switching stage for
this output bit is connected downstream. The output stage includes one
first output and a second output, being in a data mode
the output bit can be output at the first output, and wherein in
an inverted version of the data mode at the second output
Output bits can be output, and the output stage is also effective
is to in a preparation mode the first output and the second
To bring output to the same preparation potential, whereby
the preparation potential differs from the computing potential.
Der erfindungsgemäße Halbaddierer ist dahingehend
flächensparend,
daß die
Schaltstufe lediglich ein Ausgabebit berechnen muß, wobei
es von der Implementierung abhängt,
ob die Schaltstufe das Ausgabebit selbst oder die invertierte Version
des Ausgabebits liefert. Es ist einsichtig, daß die geforderte Information
sowohl im Ausgabebit als auch im invertierten Ausgabebit enthalten
ist.The half adder according to the invention is in this regard
area-saving,
that the
Switching stage only has to calculate an output bit, whereby
it depends on the implementation
whether the switching stage the output bit itself or the inverted version
of the output bit. It is understood that the information requested
contained in both the output bit and the inverted output bit
is.
Das entsprechende von der Schaltstufe
nicht berechnete komplementäre
Bit wird dann in der Ausgabestufe erzeugt, und zwar bereits im Vorbereitungsmodus,
also im Precharge- bzw. Pre-Discharge-Modus. Je nach Implementierung
wird dann im Datenmodus lediglich ein Ausgabebit der Ausgabestufe,
nämlich
entweder das Ausgabebit selbst oder die invertierte Version des
Ausgabebits gegenüber
dem Precharge-Zustand umgeladen, so daß in dem Datenmodus der Halbaddierer
ein Bit ausgibt, das durch die Schaltstufe berechnet worden ist
und gegenüber
dem Precharge-Modus umgeladen worden ist, während das andere Bit im Datenmodus
denselben Wert hat wie im Vorbereitungsmodus und bereits in dem
dem Datentakt vorhergehenden vorbereitungstakt erzeugt worden ist.The corresponding complementary bit not calculated by the switching stage is then generated in the output stage, specifically in the preparation mode, that is to say in the pre-charge or pre-discharge mode. Depending on the implementation, only one output bit of the output stage, namely either the output bit itself or the inverted version of the output bit compared to the precharge state, is then reloaded in the data mode, so that in the data mode the half adder outputs a bit which is calculated by the switching stage and has been reloaded compared to the precharge mode, while the other bit in the data mode has the same value as in the preparation mode and has already been generated in the preparation clock preceding the data clock.
Die erfindungsgemäße Schaltung ist dahingehend
flächensparend,
daß die
Schaltstufe das invertierte Bit oder das nicht-invertierte Bit je nach Implementierung
berechnet, und nicht beide Bits berechnen muß. Das zweite Bit wird dann
in der Dual-Rail-Precharge/Pre-Discharge-Ausgangsstufe erzeugt.The circuit according to the invention is in this regard
area-saving,
that the
Switching level the inverted bit or the non-inverted bit depending on the implementation
calculated, and does not have to calculate both bits. The second bit is then
generated in the dual-rail pre-charge / pre-discharge output stage.
Die erfindungsgemäße Schaltung ist ferner dahingehend
vorteilhaft, daß sie
transistorarm implementiert werden kann. Dies ist dann der Fall,
wenn die Schaltstufe derart ausgebildet wird, daß durch sie das Rechenpotential
abhängig
von den drei Eingangsoperanden an einen Ausgang auf einem von verschiedenen Pfaden
durchschaltet. Für
jede Pfad-Verzweigung wird es bevorzugt, dieselbe Anzahl von Transistoren
zu nehmen, so daß jeder
durch die Schaltstufe implementierbare Pfad von dem Rechenpotential
zu einem Ausgang eine gleiche Anzahl von Transistorumschaltungen
mit sich bringt, so daß von
außen
anhand des Leistungsprofils nicht ersichtlich ist, welchen Pfad
die Schaltstufe genommen hat. Es ist daher anhand des Stromverbrauchs nicht
ersichtlich, welche Eingangsoperanden im aktuellen Rechenzyklus
anliegend waren.The circuit according to the invention is also in this regard
advantageous that they
can be implemented with little transistor. This is the case
if the switching stage is designed such that the computing potential
dependent
from the three input operands to an output on one of different paths
turns on. For
each path branch is preferred to have the same number of transistors
to take so that everyone
path of the computing potential that can be implemented by the switching stage
an equal number of transistor switches to one output
brings with it, so that from
Outside
it is not clear which path from the performance profile
has taken the gear. It is therefore not based on electricity consumption
you can see which input operands in the current calculation cycle
were attached.
Die erfindungsgemäße Schaltung ist ferner dahingehend
vorteilhaft, daß sie
eine hohe Flexibilität
ermöglicht.
So wird für
jedes Ausgabebit eine eigene Schaltstufe vorgesehen. Eine Stromsicherheit
ist bereits dann erreicht, wenn die Anzahl von Transistoren in einem
Pfad in einer Schaltstufe gleich der Anzahl von Transistoren von
anderen Pfaden in derselben Schaltstufe ist. Es muß jedoch
keine Gleichheit der Transistoren von einer Schaltstufe zur nächsten Schaltstufe
vorhanden sein. Daher können
beliebige Halbaddierer-Vorschriften für einzelne Bits implementiert
werden, ohne daß ein
Transistor-Overhead dahingehend vorhanden ist, daß z. B.
alle Schaltstufen dieselbe Anzahl von Transistoren haben müssen.The circuit according to the invention is also in this regard
advantageous that they
a high degree of flexibility
allows.
So for
each output bit has its own switching stage. Electricity security
is already reached when the number of transistors in one
Path in a switching stage equal to the number of transistors from
other paths in the same switching stage. However, it must
no equality of the transistors from one switching stage to the next switching stage
to be available. Therefore can
any half-adder rules implemented for individual bits
be without a
Transistor overhead is present in that z. B.
all switching stages must have the same number of transistors.
Durch Implementation beliebiger Halbaddierer-Vorschriften
im Hinblick auf die ausgangsseitige Codierung des Halbaddierer-Ergebnisses (binäre Gewichtung,
Gray-Code, Dezimalgewichtung etc.) kann daher immer eine optimal
transistorarm entworfene Schaltstufe gefunden werden.By implementing any half adder rules
with regard to the output coding of the half adder result (binary weighting,
Gray code, decimal weighting etc.) can therefore always be optimal
switching stage designed with little transistor can be found.
Darüber hinaus ist die erfindungsgemäße Schaltung
querstromarm und im idealen Fall sogar querstromfrei, da immer nur
Umladungen von einem einzigen Ausgangsknoten der Ausgabestufe erforderlich
sind. So wird bereits immer ein Ausgabebit im Vorbereitungsmodus
gewissermaßen
auf Verdacht berechnet, während
im Datenmodus nur ein einziges Bit der zwei Ausgabebits einer Ausgabestufe
umgeladen werden muß. Diese
Umladung fin det ohne Querstrom vom hohen Potential (z. B. Vdd) zum
niedrigen Potential (Vss) statt und hat zudem einen geringen Stromverbrauch
im Vergleich zu dem Fall, bei dem immer zwei Ausgabebits umgeladen
werden müssen.
Die erfindungsgemäße Schaltung
ist somit nicht nur querstromarm sondern auch in ihrem insgesamten
Stromverbrauch günstig,
was insbesondere für
Anwendungen von Vorteil ist, bei denen beispielsweise eine Chipkarte
keine autarke Spannungsversorgung in Form einer Batterie hat, wie
z. B. Kontaktlosanwendungen.In addition, the circuit according to the invention
Low cross-current and ideally even cross-current-free, since only ever
Transhipment required from a single output stage exit node
are. So there is always an output bit in preparation mode
so to speak
calculated on suspicion while
in data mode only a single bit of the two output bits of an output stage
must be reloaded. This
Transhipment takes place without cross current from high potential (e.g. Vdd) to
low potential (Vss) and also has low power consumption
compared to the case where two output bits are always reloaded
Need to become.
The circuit according to the invention
is therefore not only low in cross-flow but also in its total
Low power consumption,
what especially for
Applications in which, for example, a chip card is advantageous
has no self-sufficient power supply in the form of a battery, like
z. B. Contactless applications.
Die erfindungsgemäße Schaltung ist ferner günstig implementierbar,
da die einzelnen Stufen nicht in vollständiger CMOS-Technik implementiert werden müssen. Es
reichen statt dessen für
die einzelnen Stufen entweder ausschließlich NMOS-Transistoren oder PMOS-Transistoren.
Es werden jedoch nicht unbedingt in allen Stufen beide Transistorsorten
benötigt,
wie es dagegen bei einem vollständigen
CMOS-Design der Fall ist, bei dem einem PMOS-Transistor immer ein
entsprechender Komplementärtransistor
(NMOS-Transistor) zugeordnet ist.The circuit according to the invention can also be implemented inexpensively,
since the individual stages do not have to be implemented in full CMOS technology. It
instead suffice for
the individual stages either exclusively NMOS transistors or PMOS transistors.
However, both transistor types are not necessarily used in all stages
needed
as opposed to a full one
CMOS design is the case where a PMOS transistor is always on
corresponding complementary transistor
(NMOS transistor) is assigned.
Die erfindungsgemäße Schaltung ist ferner dahingehend
flexibel, daß das
Rechenpotential, das durch die Schaltstufe gemäß den Eingangsoperanden an
einen Ausgang durchgeschaltet wird, das hohe Potential Vdd oder
das niedrige Potential Vss sein kann. Wird für das Rechenpotential das hohe
Potential Vdd gewählt, so
muß für das Vorbereitungspotential
in der Ausgabestufe das andere Potential, also im vorliegenden Fall
das niedrige Potential Vss verwendet werden. Wird dagegen in der
Schaltstufe als Rechenpotential das niedrige Potential Vss verwendet,
so muß in
der Ausgabestufe ein Vorbereitungspotential verwendet werden, das
sich von dem Rechenpotential unterscheidet. Im letzteren Fall wäre dies
das hohe Potential Vdd.The circuit according to the invention is also in this regard
flexible that the
Arithmetic potential, which by the switching stage according to the input operands
an output is switched through, the high potential Vdd or
the low potential can be Vss. Is the high for the computing potential
Potential Vdd chosen, see above
must for the preparation potential
the other potential in the output stage, i.e. in the present case
the low potential Vss can be used. In contrast, is in the
Switching stage uses the low potential Vss as computing potential,
so in
a preparation potential can be used at the output stage
differs from the computing potential. In the latter case this would be
the high potential Vdd.
Der erfindungsgemäße Halbaddierer trägt somit
zu einem sicheren, leistungskräftigen
und flächenminimalen
3-Operanden-Addierer
bei. Die Operanden, die an dem 3-Operanden- Rechenwerk anliegen, sind typischerweise
in Speicherelementen, wie z. B. SRAM-Zellen gespeichert und werden
in Dual-Rail-Ausführung zu
dem Rechenwerk geführt,
um eine Sicherheit gegenüber
Power-Attacken zu erreichen. Da der Volladdierer, der sich an den
Halbaddierer anschließt,
kompakt in Dual-Rail-Precharge-Logik
ausgeführt
werden kann, können
auch die Verbindungen zwischen dem Halb- und Volladdierer ihrerseits
in Dual-Rail-Logik mit Precharge/Pre-Discharge-Technik ausgeführt sein.
Der flächenminimale
und sichere erfindungsgemäße Halbaddierer basiert
auf der „One-Hot"-Realisierung.
Für jedes
anliegende Bitpattern wird in jeder Schaltstufe genau ein Pfad geschaltet.
Im Falle von zwei Ausgabebits wird daher für jedes Bitpattern der drei
anliegenden Operanden zwei Pfade geschaltet. Diese zwei Pfade sind
notwendig, um für
die Ausgabestufe jeweils ein Bit zu berechnen, während das andere Bit durch
die Ausgabestufe selbst gewissermaßen erzeugt wird, d. h. aus
dem vorausgehenden Vorbereitungsmodus „übernommen" wird. Für jedes
beliebige anliegende Bitpattern am Eingang ist die insgesamte Summe
der umzuladenden Kapazitäten
gleich. Damit läßt sich
das anliegende Bitpattern während der
Schaltvorgänge
im Halbaddierer nicht von außen
erkennen.The half adder according to the invention thus contributes to a safe, powerful and area-minimal 3-operand adder. The operands that are applied to the 3-operand arithmetic unit are typically in memory elements, such as. B. SRAM cells are stored and are led in dual-rail execution to the arithmetic unit in order to achieve security against power attacks. Since the full adder that follows the half adder can be designed compactly in dual-rail pre-charge logic, the connections between the half and full adder in turn can also be implemented in dual-rail logic with pre-charge / pre-discharge technology his. The area-minimal and safe half-adder according to the invention is based on the "one-hot" implementation. Exactly one path is switched for each bit pattern present in each switching stage. In the case of two output bits, two paths are therefore switched for each bit pattern of the three operands present. These two Paths are necessary in order to calculate one bit each for the output stage, while the other bit is to a certain extent generated by the output stage itself, that is to say “taken over” from the previous preparation mode. The total sum of the capacities to be reloaded is the same for any bit pattern present at the input. This allows the bit pattern to be applied during the switching processes in the half adder are not recognizable from the outside.
Erfindungsgemäß wird es bevorzugt, zur Erreichung
einer möglichst
hohen Leistung die zu schaltenden Pfade mit möglichst wenig Transistoren
auszustatten. Dies kann individuell für jede Schaltstufe je nach Halbaddierervorschrift
beliebig durchgeführt
werden, so daß nicht
eine Schaltstufe, die eine komplexere Halbaddierervorschrift hat,
die Transistorzahl für
eine andere Schaltstufe, die eine weniger komplexe Halbaddierervorschrift
hat, gewissermaßen „diktiert".According to the invention it is preferred to achieve
one if possible
high power the paths to be switched with as few transistors as possible
equip. This can be done individually for each switching stage depending on the half adder specification
performed arbitrarily
be so that not
a switching stage that has a more complex semi-adder specification,
the transistor number for
another switching stage, which is a less complex semi-adder regulation
has, so to speak, "dictated".
Der erfindungsgemäße Halbaddierer wird in seiner
bevorzugten Form als 3-Operanden-Addierer mit drei Eingangsoperanden
verwendet, um zwei Ausgabebits in binärer Gewichtung zu erzeugen.
Durch Hintereinanderschalten von mehreren solchen 3-Operanden-Addierern
können
beliebige N-Operanden-Addierer beispielsweise zur Ausführung eines
nicht nur drei-fachen sondern eines N-fachen ZDN-Algorithmus eingesetzt
werden. Mit einem solchen N-Operanden-Addierer, der aus mehreren
hintereinander geschalteten erfindungsgemäßen 3-Operanden-Addierern aufgebaut
ist, läßt sich
die Performance pro Chipfläche
noch einmal steigern, und zwar mit einem Flächen-Overhead, der unterproportional
zum Performance-Gewinn ist.The half adder according to the invention is in its
preferred form as a 3-operand adder with three input operands
used to generate two binary weighted output bits.
By connecting several such 3-operand adders in series
can
any N-operand adder, for example, to execute a
not only three times but an N times ZDN algorithm
become. With such an N-operand adder, which consists of several
3-operand adders according to the invention connected in series
is, can
the performance per chip area
increase again, with a surface overhead that is disproportionately low
to gain performance.
Der erfindungsgemäße Halbaddierer hat jedoch
auch das Potential, als direkter N-Operanden-Addierer ohne Verwendung
von hintereinander geschalteten 3-Operanden-Addiererelementen eingesetzt
zu werden, indem andere Halbaddierer-Vorschriften für z. B.
mehr als zwei Ausgabebits z. B. gemäß entsprechender Wahrheitstabellen
für einen
beispielsweise 7-Operanden-Addierer
eingesetzt werden. Ein 7-Operanden-Addierer beispielsweise hat maximal
sieben Einsen, wenn alle sieben Eingangsoperandenbits gleich 1 sind.
Die dezimale Zahl 7 ist durch insgesamt drei Ausgabebits
in binärer
Gewichtung darstellbar. Ein 7-Operanden-Halbaddierer würde daher
bereits mit drei Ausgabebits auskommen.However, the half adder according to the invention also has the potential to be used as a direct N-operand adder without the use of 3-operand adder elements connected in series by using other half-adder regulations for e.g. B. more than two output bits e.g. B. according to corresponding truth tables for a 7-operand adder, for example. For example, a 7-operand adder has a maximum of seven 1's if all seven input operand bits are 1. The decimal number 7 can be represented by a total of three output bits in binary weighting. A 7-operand half adder would therefore only need three output bits.
Bevorzugte Ausführungsbeispiele der vorliegenden
Erfindung werden nachfolgend Bezug nehmend auf die beiliegenden
Zeichnungen detailliert erläutert.
Es zeigen:Preferred embodiments of the present
Invention are hereinafter referred to with reference to the accompanying
Drawings explained in detail.
Show it:
1 ein
Blockschaltbild eines Halbaddierers mit einer beliebigen Anzahl
von Eingangsoperanden und einer entsprechenden Anzahl von Ausgabebits; 1 a block diagram of a half adder with any number of input operands and a corresponding number of output bits;
2 eine
Tabelle zu möglichen
Kombinationen des Rechenpotentials, des Vorbereitungspotentials und
einer entsprechenden Transistortechnologie; 2 a table of possible combinations of the computing potential, the preparation potential and a corresponding transistor technology;
3 eine
Wahrheitstabelle für
einen 3-Operanden-Halbaddierer
mit zwei Ausgabebits SUM1 und SUM0; 3 a truth table for a 3-operand half adder with two output bits SUM1 and SUM0;
4 eine
schematische Darstellung von Schaltstufen mit unterschiedlichen
Rechenpotentialen; 4 a schematic representation of switching stages with different computing potentials;
5a ein
Beispiel für
Pfade durch die Schaltstufen für
ein bestimmtes Operanden-Bitmuster; 5a an example of paths through the switching stages for a particular operand bit pattern;
5b eine
beispielhafte Darstellung verschiedener Pfade durch Schaltstufen
für ein
alternatives Operanden-Bitmuster; 5b an exemplary representation of different paths through switching stages for an alternative operand bit pattern;
6 ein
Blockschaltbild auf Transistorebene für einen bevorzugten Halbaddierer
gemäß der vorliegenden
Erfindung mit Dual-Rail-Eingangsstufe, zwei Schaltstufen und zwei
Ausgabestufen; und 6 a block diagram at transistor level for a preferred half adder according to the present invention with dual-rail input stage, two switching stages and two output stages; and
7 ein
bekannter 3-Operanden-Addierer mit entsprechend verschalteten 3-Bit-Halbaddierern
und 2-Bit-Volladdierern
für Bit-Slices
eines Langzahlrechenwerks. 7 a known 3-operand adder with correspondingly interconnected 3-bit half adders and 2-bit full adders for bit slices of a long number arithmetic unit.
1 zeigt
ein schematisches Blockschaltbild eines erfindungsgemäßen Halbaddierers
zum Addieren von Bits von mehreren Eingangsoperanden, die in 1 derart dargestellt sind,
daß sie
einer Eingangsstufe 10 zugeführt werden. Die Eingangsoperanden
sind in 1 mit C, N,
Z bezeichnet, wobei eine beliebige weitere Anzahl von Eingangsoperanden
der Eingangsstufe 10 zugeführt werden können. Die
Eingangsstufe ist primär
wirksam, um die Eingangsoperanden an in 1 gezeigte n Schaltstufen 12a, 12b, 12c zu
verteilen. Die Schaltstufe 12a ist dem Ausgangsbit 0 zugeordnet,
das auch als Bit SUM0 bezeichnet wird. Das dazu komplementäre Bit SUM0 ist in 1 ebenfalls ausgangsseitig dargestellt.
Die Schaltstufe 12b ist dem Ausgangsbit 1 zugeordnet,
das auch als Bit SUM1 bezeichnet wird. Das dazu komplementäre Bit SUM1 ist in 1 ebenfalls ausgangsseitig dargestellt.
Die Schaltstufe 12c ist für das Ausgangsbit n vorgesehen.
Dies wird auch als Bit SUMn bezeichnet. Das hierzu komplementäre Bit SUMn ist in 1 ebenfalls ausgangsseitig dargestellt.
Jeder Schaltstufe 12a, 12b, 12c ist eine
Ausgabestufe 14c zugeordnet, wie es aus 1 shows a schematic block diagram of a half adder according to the invention for adding bits of several input operands, which in 1 are shown such that they have an input stage 10 are fed. The input operands are in 1 denoted by C, N, Z, with any further number of input operands of the input stage 10 can be supplied. The input stage is primarily effective to turn the input operands on 1 shown n switching stages 12a . 12b . 12c to distribute. The switching stage 12a is the output bit 0 assigned, which is also referred to as bit SUM0. The complementary bit SUM0 is in 1 also shown on the output side. The switching stage 12b is the output bit 1 assigned, which is also referred to as bit SUM1. The complementary bit SUM 1 is in 1 also shown on the output side. The switching stage 12c is intended for the output bit n. This is also called bit SUMn. The complementary bit SUMn is in 1 also shown on the output side. Every gear level 12a . 12b . 12c is an output level 14c assigned how it out
1 ersichtlich
ist. Insbesondere ist die Ausgabestufe 14a der Schaltstufe 12a für das Bit
0 nachgeordnet. Die Ausgabestufe 14b ist der Schaltstufe 12b für das Bit
1 nachgeordnet. Die Ausgabestufe 14c ist der Schaltstufe 12c für das Bit
n nachgeordnet. 1 can be seen. In particular, the output level 14a the switching stage 12a downstream for bit 0. The output level 14b is the switching stage 12b downstream for bit 1. The output level 14c is the switching stage 12c subordinate for bit n.
Wie es aus 1 ersichtlich ist, ist ferner jeder Schaltstufe
ein Rechenpotential für
diese Schaltstufe zuführbar,
wie es durch die Rechenpotentialanschlüsse 16a, 16b und 16c dargestellt
ist. Prinzipiell ist jeder Schaltstufe ein eigenes Rechenpotential
zuführbar,
das bei einem bevorzugten Ausführungsbeispiel
entweder ein hohes Potential Vdd oder ein niedriges Potential Vss
ist. Aus Gründen
der Schaltungsimplementierung wird es jedoch bevorzugt, jeder Schaltstufe
dasselbe Rechenpotential 16c, 16b, 16a zuzuführen, das
entweder Vss oder Vdd ist. Existiert die Möglichkeit, daß die implementierte
Schaltung mehr als zwei Potentiale hat, so können auch von Vss bzw. Vdd
abweichende Rechenpotentiale den Schaltstufen 12a, 12b, 12c zugeführt werden.Like it out 1 it can be seen that each switching stage can be supplied with a computing potential for this switching stage, as is the case with the computing potential connections 16a . 16b and 16c is shown. In principle, each switching stage can be supplied with its own computing potential, which in a preferred exemplary embodiment is either a high potential Vdd or a low potential Vss. For reasons of circuit implementation, however, it is preferred that each switching stage have the same computing potential 16c . 16b . 16a which is either Vss or Vdd. If there is the possibility that the implemented circuit has more than two potentials, then computing potentials deviating from Vss or Vdd can also affect the switching stages 12a . 12b . 12c are fed.
Die Schaltstufen 12a, 12b, 12c sind
wirksam, das ihnen zugeführte
Rechenpotential 16a, 16b, 16c an einen
Ausgang 18a, 18b, 18c zuzuführen, wobei
das zu dem Ausgang 18a, 18b, 18c zugeführte Spannungspotential
das Ausgabebit oder eine invertierte Version des Ausgabebits darstellt.The switching stages 12a . 12b . 12c are effective, the computing potential supplied to them 16a . 16b . 16c to an exit 18a . 18b . 18c feed, which to the output 18a . 18b . 18c supplied voltage potential represents the output bit or an inverted version of the output bit.
An dieser Stelle sei darauf hingewiesen,
daß das
Ausgabebit als logisches Bit aufgefaßt wird, also als logische „0" oder
als logische „1".
Wird dem Ausgang 18a der Schaltstufe 12a das Rechenpotential 16a aufgrund
einer durch die Schaltstufe 12a gebildeten leitfähigen Verbindung
von dem Eingang 16a zu dem Ausgang 18a zugeführt, so
kann der an dem Ausgang 18a anliegende Spannungswert entweder
das logische Ausgabebit SUM0 der nachgeschalteten Ausgabestufe 14a darstellen
oder das invertierte Bit SUM0 darstellen,
je nach gewählter
Implementierung.At this point it should be pointed out that the output bit is interpreted as a logical bit, that is to say as a logical "0" or as a logical "1". Will the exit 18a the switching stage 12a the computing potential 16a due to one by the switching stage 12a formed conductive connection from the input 16a to the exit 18a fed, so that at the output 18a applied voltage value either the logical output bit SUM0 of the downstream output stage 14a represent or the inverted bit SUM0 depending on the chosen implementation.
Die Ausgabestufe 14a empfängt als
Eingangssignal das Signal auf dem Ausgang 18a der Schaltstufe sowie
als weiteres Eingangssignal ein Vorbereitungspotential an einem
Anschluß 20a.
Entsprechend ist die Situation für
die Ausgabestufen 14b und 14c, die ihre Vorbereitungspotentiale über Eingänge 20b bzw.
20c empfangen. Jede Ausgabestufe umfaßt zwei Ausgänge 22a, 22b.
Entsprechend umfaßt
die Ausgabestufe 14b für
das Bit 1 ebenfalls zwei Ausgänge 24a, 24b.
Analogerweise umfaßt
auch die Ausgabestufe 14c für das Bit n ebenfalls zwei
Ausgänge 26a, 26b.
Der Ausgang 22a der Ausgabestufe 14a für das Bit
0 liefert das invertierte Ausgabebit SUM0.
Entsprechend liefert der Ausgang 22b der Ausgabestufe 14a das
nicht-invertierte
Ausgabebit SUM0.The output level 14a receives the signal on the output as an input signal 18a the switching stage and as a further input signal a preparation potential at one connection 20a , The situation is similar for the output levels 14b and 14c that their preparation potentials via inputs 20b or 20c received. Each output stage has two outputs 22a . 22b , Accordingly, the output stage includes 14b also two outputs for bit 1 24a . 24b , Similarly, the output stage also includes 14c also two outputs for bit n 26a . 26b , The exit 22a the issue level 14a the inverted output bit provides for bit 0 SUM0 , The output delivers accordingly 22b the issue level 14a the non-inverted output bit SUM0.
Der in 1 gezeigte
Halbaddierer umfaßt
ferner eine Steuereinrichtung 28 zum Einstellen eines Datenmodus
und eines Vorbereitungsmodus, wobei im Vorbereitungsmodus entweder
ein Precharge-Modus oder ein Pre-Discharge-Modus gefahren werden
kann. Das Vorhandensein eines Datenmodus bzw. eines Vorbereitungsmodus
wird durch Steuerleitungen 28a, 28b, 28c den
Ausgabestufen 14a, 14b bzw. 14c signalisiert. Optionalerweise
ist die Eingangsstufe 10 ebenfalls im Datenmodus bzw. Vorbereitungsmodus
betreibbar. Dies signalisiert die Steuereinrichtung 28 der
Eingangsstufe über
eine weitere Steuerleitung 28d.The in 1 Half adder shown further comprises a control device 28 for setting a data mode and a preparation mode, wherein either a pre-charge mode or a pre-discharge mode can be operated in the preparation mode. The presence of a data mode or a preparation mode is determined by control lines 28a . 28b . 28c the output levels 14a . 14b respectively. 14c signaled. Optional is the entry level 10 can also be operated in data mode or preparation mode. This signals the control device 28 the input stage via another control line 28d ,
Im Datenmodus liegt an einem Ausgang
einer Ausgabestufe das Ausgabebit in nicht-invertierter Form an,
also SUM0, SUM1 bzw. SUMn. An dem anderen Ausgang liegt im Datenmodus
eine invertierte Version des Ausgabebits an, also SUM0, SUM1 bzw. SUMn.In data mode, the output bit is in non-inverted form at an output of an output stage, i.e. SUM0, SUM1 or SUMn. In data mode, there is an inverted version of the output bit at the other output, ie SUM0 . SUM 1 respectively. SUMn ,
Die Ausgabestufen sind ferner wirksam,
um in einem Vorbereitungsmodus an einem Ausgang und an dem anderen
Ausgang dasselbe Vorbereitungspotential, das der Ausgabestufe über den
entsprechenden Eingang 20a, 20b bzw. 20c zugeführt wird,
anzulegen, wobei sich erfindungsgemäß das Vorbereitungspotenti al, das
einer Ausgabestufe beispielsweise über den Eingang 20a zugeführt wird,
von dem Rechenpotential unterscheidet, das der Schaltstufe, die
der betrachteten Ausgabestufe vorgeschaltet ist, z. B. über den
Eingang 16a zugeführt
wird. Der Vorbereitungsmodus wird bei dem in 1 gezeigten Ausführungsbeispiel den einzelnen Ausgabestufen
von der Steuereinrichtung 28 über die Steuerleitungen 28a, 28b bzw. 28c signalisiert.The output stages are also effective to achieve the same preparation potential in one preparation mode at one output and at the other output as that of the output stage via the corresponding input 20a . 20b respectively. 20c is supplied to create, the preparation potential according to the invention, that of an output stage, for example, via the input 20a is supplied, differs from the computing potential that the switching stage upstream of the output stage under consideration, for. B. via the entrance 16a is fed. The preparation mode is in the in 1 Embodiment shown the individual output stages from the control device 28 over the control lines 28a . 28b respectively. 28c signaled.
Im nachfolgenden wird anhand von 2 auf bevorzugte Kombinationen
von Rechenpotential, Vorbereitungspotential und Transistortechnologie
eingegangen. Wird als Rechenpotential einer Schaltstufe (Eingang 16a)
das hohe Potential Vdd einer Schaltung zugeführt, so ist das der nachgeschalteten
Ausgabestufe unterschiedliche Vorbereitungspotential das niedrige
Potential Vss. Das Zuführen
des niedrigen Potentials Vss als Vorbereitungspotential führt zu einem
Pre-Discharge in der Ausgabestufe (z. B. 14a), so daß im Vorbereitungsmodus
beide Bits SUM0, SUM0 einen
niedrigen Spannungszustand haben und damit bei dem hier dargestellten
Beispiel eine logische „0"
darstellen.The following is based on 2 discussed preferred combinations of computing potential, preparation potential and transistor technology. Is used as the computing potential of a switching stage (input 16a ) the high potential Vdd is supplied to a circuit, the preparation potential different from the downstream output stage is the low potential Vss. The supply of the low potential Vss as preparation potential leads to a pre-discharge in the output stage (e.g. 14a ), so that in preparation mode both bits SUM0, SUM0 have a low voltage state and thus represent a logic “0” in the example shown here.
Im Datenmodus wird von der Schaltstufe 12a dann
das hohe Rechenpotential Vdd der Ausgabestufe 14a als Bit
SUM0 oder Bit SUM0 zugeführt, und
zwar je nach Bitmuster der drei Eingangsoperandenbits, so daß dann,
im Datenmodus, lediglich ein Ausgangsbit SUM0 bzw. SUM0 umladen wird, d. h. von dem logischen Zustand „0" in
den logischen Zustand „1"
umgeändert
wird.In data mode, the switching stage 12a then the high computing potential Vdd of the output stage 14a as bit SUM0 or bit SUM0 depending on the bit pattern of the three input operand bits, so that then, in data mode, only one output bit SUM0 or SUM0 is reloaded, ie changed from the logic state "0" to the logic state "1".
In dem Fall, in dem als Rechenpotential
Vdd genommen wird, und als Vorbereitungspotential Vss genommen wird,
wird als Transistortechnologie die PMOS-Technologie bevorzugt, da
die PMOS-Transistoren günstiger
ein hohes Rechenpotential durchschalten.In the case where as a computing potential
Vdd is taken and Vss is used as preparation potential,
PMOS technology is preferred as transistor technology because
the PMOS transistors cheaper
switch through a high computing potential.
Wird dagegen im anderen Fall als
Rechenpotential das niedrige Potential Vss genommen, und wird dann
konsequenterweise als Vorbereitungspotential das hohe Potential
Vdd genommen, so findet in der Ausgabestufe ein Precharge-Modus
statt, dahingehend, daß die
beiden Ausgabebits SUM0, SUM0 der
Ausgabestufe 14a, beispielsweise eine logische „1" darstellen.
Durch die Schaltstufe wird das niedrige Potential Vss entweder als
Bit oder Bit der Ausgabestufe 14a zugeführt, die
dann lediglich eines der beiden Ausgangsbits SUM0 oder SUM0 in den niedrigen Zustand umlädt, also
von einer logischen „1"
in eine logische „0"
verändert. In
diesem Fall wird in der Schaltstufe als Transistortechnologie die
NMOS-Technologie bevorzugt, da diese am besten dafür geeignet
ist, niedrige Spannungspotentiale durchzuschalten.If, on the other hand, the low potential Vss is taken as the computing potential and the high potential Vdd is consequently taken as the preparation potential, a precharge mode takes place in the output stage, in that the two output bits SUM0, SUM0 the issue level 14a , represent, for example, a logical "1". The switching stage switches the low potential Vss either as a bit or bit the issue level 14a fed, which then only one of the two output bits SUM0 or SUM0 reloads into the low state, ie changed from a logical "1" to a logical "0". In this case, NMOS technology is preferred as the transistor technology in the switching stage, since it is best suited for switching through low voltage potentials.
3 zeigt
in Tabellenform eine bevorzugte Halbaddierervorschrift für einen
3-Operanden-Addierer, um für
jedes Bitmuster der Eingangsoperanden Ci,
Ni und Zi entsprechende
Ausgangsbits SUM1, SUM0 zu berechnen. Die Halbaddierervorschrift
in 3 ist als „Einsen-Zähler" ausgebildet,
wobei die Anzahl von Einsen durch die Bits SUM0, SUM1 in binärer Gewichtung
dargestellt werden. Die beiden Ausgangsbits SUM1 und SUM0 stellen
somit eine binäre
Zahl dar, wobei das Bit SUM1 das MSB dieser binären Zahl ist, und wobei das
Bit SUM0 das LSB dieser Zahl ist. Die beiden Ausgangsbits SUM1 und
SUM0 stellen daher in binärer
Codierung die Anzahl von Einsen eines jeden Bit-Patterns der Eingangsoperanden
dar. Lediglich in dem Fall, in dem alle drei Eingangsoperanden eine
logische „1"
haben, sind beide Bits SUM1 und SUM0 gesetzt, was der binären Zahl „11" entspricht,
die in dezimaler Darstellung gleich der Zahl 3 ist. 3 shows in table form a preferred half-adder rule for a 3-operand adder in order to calculate corresponding output bits SUM1, SUM0 for each bit pattern of the input operands C i , N i and Z i . The half adder rule in 3 is designed as a "ones counter", the number of ones being represented by the bits SUM0, SUM1 in binary weighting. The two output bits SUM1 and SUM0 thus represent a binary number, the bit SUM1 being the MSB of this binary number, and where bit SUM0 is the LSB of this number. The two output bits SUM1 and SUM0 therefore represent the number of ones of each bit pattern of the input operands in binary coding. Only in the case where all three input operands have a logical "1", both bits SUM1 and SUM0 are set, which corresponds to the binary number "11", which in decimal form equals the number 3 is.
Für
Fachleute ist es offensichtlich, daß anhand der Systematik von 3 beliebige N-Operanden-Halbaddierer
aufgebaut werden können.
Wird beispielsweise ein 7-Operanden-Halbaddierer aufgebaut, so wird zur
Darstellung des maximalen Falls, in dem alle sieben Operanden eine
logische „1"
haben, eine Anzahl von drei Ausgabebits benötigt, da die binäre Zahl „111" der
dezimalen Zahl „7"
entspricht.It is obvious to experts that based on the systematics of 3 any N-operand half adders can be built. If, for example, a 7-operand half adder is set up, a number of three output bits is required to represent the maximum case in which all seven operands have a logical "1", since the binary number "111" of the decimal number "7" equivalent.
Für
Halbaddierer mit einer größeren Anzahl
von sieben Operanden werden daher entsprechend mehr Ausgabebits
benötigt,
wenn die normale binäre
Gewichtung eingesetzt wird.For
Half adders with a larger number
of seven operands are therefore correspondingly more output bits
needed
if the normal binary
Weighting is used.
Aus der Systematik von 3 ist ferner ersichtlich,
daß auch
eine andere Codierung eingesetzt werden kann, wenn es für einen
speziellen Fall günstig
ist. So kann die Bedeutung der Bits SUM1, SUM0 beliebig eingestellt
werden, dahingehend, daß eine
Bitkombination von SUM0 und SUM1 als „11" z. B. darauf hindeutet, daß die Anzahl
von Nullen in den Eingabebits C, N, Z gleich 3 ist, was gleichbedeutend
damit ist, daß die
Anzahl von Einsen in C, N, Z bei der bestimmten betrachteten Bitkombination
gleich 0 ist.From the systematics of 3 it can also be seen that a different coding can also be used if it is favorable for a special case. The meaning of the bits SUM1, SUM0 can be set as desired, so that a bit combination of SUM0 and SUM1 as "11" indicates, for example, that the number of zeros in the input bits C, N, Z is 3, which is equivalent to the fact that the number of ones in C, N, Z is 0 for the particular bit combination under consideration.
Beliebige weitere Vereinbarungen
für die
Bits SUM1, SUM0 können
getroffen werden. Ferner können je
nach Halbaddierervorschrift weitere (redundante) Bits, z. B. SUM2,
SUM3,... verwendet werden.Any other agreements
for the
Bits SUM1, SUM0 can
to be hit. Furthermore, each
according to the half adder rule further (redundant) bits, e.g. B. SUM2,
SUM3, ... can be used.
4 zeigt
in schematischer Form eine bevorzugte Ausführungsform einer Schaltstufe 12a und 12b für einen
3-Operanden-Addierer.
In 4 ist ferner der
Fall gezeigt, daß die
beiden Schaltstufen 12a, 12b unterschiedliche
Rechenpotentiale 16a, 16b haben. So hat die Schaltstufe 12a das
niedrige Potential Vss als Rechenpotential. Die Schaltstufe 12b hat
dagegen das hohe Potential Vdd als Rechenpotential 16b.
Durch gestrichelte Linien 41, 42, 43 ist
in 4 dargestellt, daß jeder
Schaltstufe die Eingangsoperanden (erster Operand, zweiter Operand,
dritter Operand) zugeführt
werden. Je nach Gestaltung der in 3 gezeigten
Halbaddierer-Vorschrift
bewirkt ein Operand eine Abzweigung des Pfades oder nicht. Wie es
rechts in 4 dargestellt
ist, wird ein Pfad waagrecht weitergeführt, wenn der Operand gleich
0 ist. Ist der Operand dagegen gleich einer logischen „1", so
wird, wie es ebenfalls rechts in 4 dargestellt
ist, der Pfad in einer 45°-Richtung
fortgesetzt. 4 shows in schematic form a preferred embodiment of a switching stage 12a and 12b for a 3-operand adder. In 4 the case is also shown that the two switching stages 12a . 12b different computing potentials 16a . 16b to have. So has the switching stage 12a the low potential Vss as a computing potential. The switching stage 12b on the other hand has the high potential Vdd as computing potential 16b , With dashed lines 41 . 42 . 43 is in 4 shown that the input operands (first operand, second operand, third operand) are supplied to each switching stage. Depending on the design of the 3 half adder rule shown, an operand causes a branching of the path or not. Like it right in 4 a path is continued horizontally if the operand is 0. If, however, the operand is equal to a logical "1", then, as is also the case in 4 is shown, the path continues in a 45 ° direction.
Für
eine Kombination von Eingangsoperanden wird durch das in 4 gezeigte Schaltwerk ein
leitfähiger
Pfad von dem Potential z. B. 16a zu dem nicht-invertierten
Ausgang Bit oder zu dem invertierten Ausgang Bit durchgeschaltet, derart, daß das Rechenpotential
Vdd bzw. Vss an dem entsprechenden invertierten Ausgang oder nicht-invertierten
Ausgang anliegt. Es sei darauf hingewiesen, daß das Rechenpotential nie an
beiden Ausgängen
anliegen kann, da die Schaltstufe derart ausgebildet ist, daß ein eindeutiger
Pfad von dem Rechenpotentialanschluß 16a beispielsweise
zu einem einzigen Ausgang 18a erhalten wird.For a combination of input operands, the in 4 Switchgear shown a conductive path from the potential z. B. 16a to the non-inverted output bit or to the inverted output bit switched through in such a way that the computing potential Vdd or Vss is present at the corresponding inverted output or non-inverted output. It should be pointed out that the computing potential can never be present at both outputs, since the switching stage is designed such that a clear path from the computing potential connection 16a for example to a single exit 18a is obtained.
Nachfolgend werden anhand der 5a und 5b zwei jeweils verschiedene Pfade durch
die einzelnen Schaltstufen für
unterschiedliche Bitmuster dargestellt.Below are based on the 5a and 5b two different paths each represented by the individual switching stages for different bit patterns.
In 5a ist
beispielhaft der Fall gezeigt, bei dem der erste Operand gleich
1, der zweite Operand gleich 0 ist, und der dritte Operand gleich
1 ist. Für
die Schaltstufe 14a bedeutet dies, daß ein erster Schaltknoten 50a dahingehend
durchlaufen wird, daß eine
45°-Abzweigung
genommen wird, da der erste Operand gleich 1 ist. Ein zweiter Schaltknoten 50b wird
dahingehend verarbeitet, daß der
Pfad waagrecht fortgeführt wird,
da der zweite Operand gleich 0 ist. Ein dritter Schaltknoten 50c wird
dahingehend durchlaufen, daß wieder
eine 45°-Abzweigung
genommen wird, da der dritte Operand gleich 1 ist. Dies führt dazu,
daß das
Rechenpotential Vss ausgangsseitig das nicht-invertierte Bit der
Schaltstufe bestimmt. Im Datenmodus führt ein Spannungszustand Vss
für das
nicht-invertierte
Bit dazu, daß die
der Schaltstufe 14a nachgeschaltete Ausgabestufe 14b,
die beide Ausgängen 22a, 22b in
einem Zustand „1"
hatte, das nicht-invertierte Bit SUM0 (22b) in den niedrigen
Zustand entlädt,
während
das invertierte Bit SUM0 22a im hohen Zustand bleibt.In 5a the example is shown in which the first operand is 1, the second operand is 0 and the third operand is 1. For the switching stage 14a this means that a first switching node 50a run through in such a way that a 45 ° branch is taken since the first operand is equal to 1. A second switching node 50b is processed in such a way that the path continues horizontally since the second operand is 0. A third switching node 50c is run in such a way that a 45 ° branch is taken again since the third operand is equal to 1. This leads to the fact that the computing potential Vss determines the non-inverted bit of the switching stage on the output side. In data mode, a voltage state Vss for the non-inverted bit leads to that of the switching stage 14a downstream output stage 14b that have both outputs 22a . 22b in a state of "1", the non-inverted bit SUM0 ( 22b ) discharges to the low state while the inverted bit SUM0 22a stays high.
Die Schaltstufe 14b hat
als Rechenpotential das hohe Potential Vdd. In einem ersten Verzweigungsknoten 52a wird
eine 45°-Abzweigung genommen.
In einem zweiten Verzweigungsknoten 52b, die dem zweiten
Operanden entspricht, wird eine waagrechte Abzweigung genommen.
In einem dritten Verzweigungsknoten 52c, die dem dritten
Operanden entspricht, wird eine 45°-Abzweigung genommen, so daß schließlich am Ausgang 18b,
der dem nicht-invertierten Bit entspricht, das hohe Spannungspotential
Vdd anliegt. Das hohe Spannungspotential am Ausgang 18b führt dazu,
daß in
der Ausgabestufe 14b von 1 das
nicht-invertierte Bit SUM1 24b von seinem niedrigen Zustand,
den es im Vorbereitungsmodus hatte, auf den logisch hohen Zustand
gesetzt wird, während
das invertierte Bit SUM1 in
seinem bereits aus dem Vorbereitungsmodus heraus bestehenden Zustand,
also dem niedrigen Zustand „0"
gelassen wird.The switching stage 14b has the high potential Vdd as computing potential. In a first branch node 52a a 45 ° junction is taken. In a second branch node 52b that corresponds to the second operand, a horizontal branch is taken. In a third branch node 52c , which corresponds to the third operand, a 45 ° branch is taken, so that finally at the exit 18b , which corresponds to the non-inverted bit, the high voltage potential Vdd is present. The high voltage potential at the output 18b leads to that in the output stage 14b of 1 the non-inverted bit SUM1 24b from its low state, which it had in preparation mode, to the logic high state, while the inverted bit SUM 1 in its state already existing from the preparation mode, ie the low state "0" is left.
Aus der vorstehenden Beschreibung
ist ersichtlich, daß die
Schaltstufe lediglich ein Bit, also das invertierte bzw. das nicht-invertierte
Bit berechnen muß,
während
das zweite Bit dann durch die Ausgabestufe aus dem vorausgehenden
Vorbereitungsmodus übernommen
wird.From the description above
it can be seen that the
Switching stage only one bit, i.e. the inverted or the non-inverted
Bit must calculate
while
the second bit then through the output stage from the previous one
Preparation mode adopted
becomes.
Ferner ist ersichtlich, daß z. B.
in der Schaltstufe 14a in 5a acht
verschiedene Pfade gemäß den acht
verschiedenen Kombinationen der drei Eingangsoperanden gewählt werden
können.
Wie es jedoch aus der Schaltstufe 14b von 5a ersichtlich ist, führt in dem Fall, in dem bereits
der erste Eingangsoperand und der zweite Eingangsoperand gleich
0 waren, in dem also an einem Verzweigungsknoten 52d der
Pfad waagrecht fortgesetzt wird, dazu, daß dem dritten Operanden kein
eigener Verzweigungspunkt mehr zugeordnet ist. Dies ist ohne weiteres
daraus ersichtlich, daß in
dem Fall, in dem bereits der erste und der zweite Operand gleich
0 waren, höchstens
noch eine einzige 1 unter den drei Operanden, nämlich die 1 des dritten Operanden herauskommen
kann, was auf jeden Fall dazu führt,
daß das
Bit SUM1, wie es aus der Wahrheits tabelle ersichtlich ist, gleich
0 ist. Das hohe Potential Vdd bestimmt daher den Zustand des invertierten
Bits Bit zu einer logischen „1", derart,
daß im
Datenmodus das nicht-invertierte
Bit gleich 0 ist, wie es durch die Wahrheitstabelle von 3 gefordert wird.It can also be seen that, for. B. in the switching stage 14a in 5a eight different paths can be chosen according to the eight different combinations of the three input operands. However, as from the switching stage 14b of 5a is evident in the case where the first input operand and the second input operand was 0, that is, at a branch node 52d the path is continued horizontally, so that the third operand is no longer assigned a separate branch point. This can easily be seen from the fact that in the case where the first and the second operand were already equal to 0, at most a single 1 among the three operands, namely the 1 of the third operand, can come out, which in any case leads to this that the bit SUM1, as can be seen from the truth table, is equal to 0. The high potential Vdd therefore determines the state of the inverted bit bit to a logical "1" such that in data mode the non-inverted bit is 0 as determined by the truth table of 3 is required.
In 5b ist
eine alternative Bitkombination der drei Operanden dargestellt,
und zwar der Fall, bei dem alle drei Operanden gleich 1 sind. In
der Schaltstufe 14a wird der in 5b eingezeichnete Pfad genommen, der
lediglich 45°-Abzweigungen umfaßt. Der
Pfad endet schließlich
dahingehend, daß das
niedrige Potential Vss, das eine logische „0" darstellt, am invertierten
Bit Bit anliegt. In der Schaltstufe 14b ist
bereits anhand der ersten beiden Operanden klar, daß das Bit
gesetzt werden muß,
so daß das
Ergebnis, nämlich
Vdd am nicht-invertierten Ausgang 18b der Schaltstufe,
nicht mehr vom dritten Operanden abhängt, so daß dem dritten Operanden kein
eigener Verzweigungspunkt mehr zugeordnet zu werden braucht.In 5b shows an alternative bit combination of the three operands, namely the case in which all three operands are equal to 1. In the switching stage 14a will the in 5b drawn path, which includes only 45 ° branches. The path eventually ends in that the low potential Vss, which represents a logic "0", at the inverted bit bit is applied. In the switching stage 14b it is already clear from the first two operands that the bit must be set so that the result, namely Vdd at the non-inverted output 18b the switching stage no longer depends on the third operand, so that the third operand no longer has to be assigned a separate branch point.
Aus den 5a und 5b ist
ferner ersichtlich, daß die
Anzahl der Verzweigungspunkte, nämlich
vier bei der Schaltstufe 14b und fünf bei der Schaltstufe 14a nicht
für jede
Schaltstufe identisch zu sein braucht. Vielmehr wird eine Schaltstufe
mit möglichst
wenig Abzweigungspunkten angestrebt, da die Anzahl der Abzweigungspunkte
letztendlich die Anzahl der Transistoren in der Schaltstufe und
damit die wertvolle Chipfläche
bestimmt. Eine Sicherheit gegenüber
Leistungsattacken wird jedoch bereits dadurch erreicht, daß jeder
Pfad durch eine Schaltstufe dieselbe Anzahl von Verzweigungspunkten
umfaßt,
wobei jedoch die Anzahl von Verzweigungspunkten von Schaltstufe
zu Schaltstufe nicht zwingend gleich zu sein braucht. Eine solche
Ungleichheit liefert dem Angreifer lediglich die Information, daß in zwei
Schaltstufen geschaltet worden ist. Diese Information nützt dem
Angreifer jedoch nichts, da dieser Sachverhalt ohnehin klar ist.
Ein Angreifer kann jedoch nicht erkennen, welcher Pfad in einer
Schaltstufe durchgeschaltet worden ist, um daraus unter Umständen auf die
Werte der drei Eingangsoperanden schließen zu können.From the 5a and 5b it can also be seen that the number of branch points, namely four at the switching stage 14b and five at the switching stage 14a need not be identical for every switching stage. Rather, a switching stage with as few junction points as possible is sought, since the number of junction points ultimately determines the number of transistors in the switching stage and thus the valuable chip area. However, security against power attacks is already achieved in that each path through a switching stage comprises the same number of branch points, although the number of branch points from switching stage to switching stage need not necessarily be the same. Such an inequality only provides the attacker with the information that switching has taken place in two switching stages. However, this information is of no use to the attacker, since this fact is clear anyway. However, an attacker cannot recognize which path has been switched through in a switching stage in order to be able to draw conclusions from the values of the three input operands.
Der Übersichtlichkeit halber ist
in den 5a und 5b rechts noch der zugeordnete
Vorbereitungsmodus dargestellt, der durch das einer Ausgangsstufe
zugeordnete Vorbereitungspotential bestimmt wird, das sich erfindungsgemäß von dem
Rechenpotential unterscheidet. So hat die Schaltstufe 14b aufgrund
des hohen Rechenpotentials Vdd die Konsequenz zur Folge, daß die zugeordnete
Ausgabestufe ein anderes Vorbereitungspotential hat, nämlich das
niedrige Potential Vss, wenn die Schaltung lediglich zwei verschiedene
Potentiale zur Verfügung
stellt.For the sake of clarity, the 5a and 5b the assigned preparation mode is shown on the right, which is determined by the preparation potential assigned to an output stage, which differs according to the invention from the computing potential. So has the switching stage 14b due to the high computing potential Vdd, the consequence that the assigned output stage has a different preparation potential, namely the low potential Vss, if the circuit only provides two different potentials.
Analog hierzu hat die Schaltstufe 14a aufgrund
des niedrigen Rechenpotentials Vss ein hohes Vorbereitungspotential
zur Folge.The switching stage has the same analogy 14a due to the low computing potential Vss a high preparation potential.
Nachfolgend wird anhand von 6 auf ein bevorzugtes Ausführungsbeispiel
der vorliegenden Erfindung auf Transistorebene Bezug genommen.The following is based on 6 referred to a preferred embodiment of the present invention at transistor level.
6 zeigt
modulweise bevorzugte Transistorimplementationen einer Dual-Rail-Eingangsstufe
(Block 10 in 1),
von Schaltstufen (Blöcke 12a, 12b von 1) und Ausgabestufen (Blöcke 14a, 14b von 1). 6 shows preferred transistor implementations of a dual-rail input stage (block 10 in 1 ), from switching stages (blocks 12a . 12b of 1 ) and output levels (blocks 14a . 14b of 1 ).
Nachfolgend wird auf die Implementierung
der Dual-Rail-Eingangsstufe
(Block 10 in 1)
eingegangen. Die Dual-Rail-Eingangsstufe
in 6 umfaßt zunächst sechs
Eingänge
für die
drei Operanden Z, N und C als nicht-invertierte Bits und invertierte
Bits. Die Bits werden so der Dual-Rail-Eingangsstufe zugeführt, wie es in 6 ersichtlich ist. Die Eingangsstufe
enthält
ferner, wie es in 1 durch
die Leitung 28d angedeutet ist, ein Precharge-Signal Vss,
um die Eingangsstufe in dem Vorbereitungsmodus in einen Precharge-Zustand zu fahren,
bei dem alle sechs Eingänge
auf dasselbe Potential gebracht werden. Dieses Potential ist, wie
es anhand der Spannungsversorgungssituation in 6 ersichtlich ist, das hohe Potential,
da die Dual-Rail-Eingangsstufe mit dem hohen Potential Vdd an verschiedenen
Punkten versorgt wird.The implementation of the dual-rail input stage (block 10 in 1 ) received. The dual rail input stage in 6 initially comprises six inputs for the three operands Z, N and C as non-inverted bits and inverted bits. The bits are fed to the dual rail input stage as described in 6 can be seen. The input stage also contains, as in 1 through the line 28d is indicated, a precharge signal Vss to drive the input stage in the preparation mode into a precharge state in which all six inputs are brought to the same potential. This potential is as it is in the voltage supply situation in 6 the high potential can be seen, since the dual-rail input stage is supplied with the high potential Vdd at various points.
Zur Auslösung des Precharge-Zustands,
also im Vorbereitungsmodus, werden die in 6 als PMOS-Transistoren ausgeführten Transistoren
an ihrem Gate mit dem niedrigen Potential Vss versehen, damit sie
durchschalten, wie es aus 6 ersichtlich
ist, um alle Operanden-Bit-Knoten und alle Knoten für invertierte
Operandenbits auf das Potential Vdd zu legen.To trigger the precharge state, i.e. in preparation mode, the in 6 Transistors designed as PMOS transistors are provided at their gate with the low potential Vss, so that they turn on as it is 6 can be seen to put all operand bit nodes and all nodes for inverted operand bits to the potential Vdd.
Im einzelnen umfaßt jede Dual-Rail-Eingangsstufe
vier Transistoren 600, 601, 602 und 603,
wobei nachfolgend lediglich beispielhaft und repräsentativ
für den
zweiten und den dritten Operand die dem ersten Operand zugeordnete
Eingangsstufe dargelegt wird. Die beiden Transistoren 601, 600 dienen
dazu, im Vorbereitungsmodus, in dem das Precharge-Signal aktiv ist,
in dem also Vss auf der Leitung 28d anliegt, die auf der einen
Seite der beiden Transistoren anliegende hohe Spannung Vdd auf die
Ausgangsknoten 604, 605 für das invertierte erste Operandenbit
und das nicht-invertierte erste Operandenbit zu legen. Damit werden
unmittelbar die beiden Transistoren 603, 602 gesperrt,
da sie das hohe Potential Vdd an ihrem jeweiligen Gate-Anschluß haben.In particular, each dual-rail input stage comprises four transistors 600 . 601 . 602 and 603 , the input stage assigned to the first operand being set out below merely by way of example and representative of the second and third operands. The two transistors 601 . 600 are used in the preparation mode, in which the precharge signal is active, i.e. in the Vss on the line 28d is present, the high voltage Vdd present on one side of the two transistors on the output nodes 604 . 605 for the inverted first operand bit and the non-inverted first operand bit. This immediately turns the two transistors 603 . 602 blocked because they have the high potential Vdd at their respective gate connection.
Im Datenmodus ist dagegen die Leitung 28d auf
dem hohen Potential Vdd, was dazu führt, daß die beiden Transistoren 601 und 600 wirkungslos
sind. Die beiden Transistoren 602, 603 dienen
zur Stabilisierung der Verhältnisse
im Datenmodus. Ist beispielsweise das Operandenbit Ni hoch,
so ist der Transistor 602 gesperrt, so daß das Potential
Vdd auf der einen Seite des Transistors 602 nicht an den
Knoten 604 kommen kann. Der Knoten 604 ist nämlich, da
er das invertierte Bit N
i des ersten Operanden darstellt, auf einem
niedrigen Potential. Dieses niedrige Potential führt dazu, daß der Transi stor 603 geöffnet wird.
Es fließt
jedoch im Idealzustand kein Strom, da der Knoten 605 ebenfalls
auf Vdd ist. Der Transistor 603 dient jedoch dazu, das hohe
Potential auf dem Knoten 605 zu stabilisieren und gegebenenfalls
nachzuladen, falls an irgendeiner Stelle Leckströme auftreten.In contrast, the line is in data mode 28d at the high potential Vdd, which causes the two transistors 601 and 600 are ineffective. The two transistors 602 . 603 serve for stabilization the relationships in data mode. For example, if the operand bit N i is high, the transistor is 602 blocked so that the potential Vdd on one side of the transistor 602 not at the knot 604 can come. The knot 604 is because it has the inverted bit N i of the first operand is at a low potential. This low potential means that the transistor stor 603 is opened. In the ideal state, however, no current flows because of the node 605 is also on Vdd. The transistor 603 however, serves the high potential on the node 605 stabilize and, if necessary, reload if leakage currents occur at any point.
Die Dual-Rail-Eingangsstufe dient
somit dazu, im Vorbereitungsmodus gleiche Potentiale auf den Bitleitungen
zu erzeugen, und im Datenmodus die Zustände auf den Bitleitungen zu
stabilisieren. Darüber
hinaus dient die Dual-Rail-Eingangsstufe
dazu, die Operandenbits über
Verteilungsschienen 611, 612 und 613 an
die Schaltstufen zu verteilen.The dual-rail input stage thus serves to generate equal potentials on the bit lines in the preparation mode and to stabilize the states on the bit lines in the data mode. In addition, the dual-rail input stage serves to send the operand bits over distribution rails 611 . 612 and 613 to distribute to the switching stages.
Wie es in 6 gezeigt ist, sind die beiden Schaltstufen
derart ausgebildet, daß sie
als Rechenpotential das hohe Potential Vdd zugeführt bekommen, wie es durch
die Spannungszuführungen 16a für die erste Schaltstufe
und 16b für
die zweite Schaltstufe gezeigt ist. So besteht die Schaltstufe für das Bit
0, bzw. für
das Bit zur Erzeugung des Bits 0 (SUM0 22b oder SUM0 22a) aus insgesamt
zehn Transistoren 620–629,
wobei immer zwei Transistoren zusammen einen Verzweigungspunkt der
in 5a und 5b gezeigten Verzweigungspunkte
bilden. Analog hierzu besteht die Schaltstufe für das Bit 1 (SUM1 24b bzw. SUM1 24a) aus lediglich acht
Transistoren 630–637,
wobei ebenfalls paarweise angeordnete Transistoren immer einen Verzweigungspunkt
definieren.Like it in 6 is shown, the two switching stages are designed such that they are supplied with the high potential Vdd as the computing potential, as is the case with the voltage supplies 16a for the first switching stage and 16b is shown for the second switching stage. So there is the switching stage for bit 0, or for the bit for generating bit 0 (SUM0 22b or SUM0 22a ) from a total of ten transistors 620 - 629 , where always two transistors together form a branch point of the in 5a and 5b form branch points shown. The switching stage for the bit is analogous to this 1 (SUM 1 24b respectively. SUM 1 24a ) from just eight transistors 630 - 637 , transistors arranged in pairs also always defining a branch point.
Ferner sei darauf hingewiesen, daß die Situation
des Rechenpotentials 16a, 16b gleich dem hohen Potential
Vdd der Situation entspricht, die die Schaltstufe 12b in
den 4, 5a und 5b hat.
Im einzelnen entsprechen die Transistoren 630 und 631 dem
Verzweigungspunkt 52a. Die Transistoren 632, 633 entsprechen dem
Verzweigungspunkt 52b von 5a.
Die beiden Transistoren 634 und 635 entsprechen
dem Verzweigungspunkt 52d in 5a.
Schließlich
entsprechen die Transistoren 636 und 637 dem Verzweigungspunkt 52c.It should also be noted that the situation of the computing potential 16a . 16b equals the high potential Vdd of the situation that the switching stage 12b in the 4 . 5a and 5b Has. The transistors correspond in detail 630 and 631 the branch point 52a , The transistors 632 . 633 correspond to the branch point 52b of 5a , The two transistors 634 and 635 correspond to the branch point 52d in 5a , Finally, the transistors match 636 and 637 the branch point 52c ,
Analog hierzu entsprechen in der
Schaltstufe für
das Bit 0 die beiden Transistoren 620 und 621 dem Verzweigungspunkt 50a von 5a. Die Transistoren 622, 623 entsprechen
dem Verzweigungspunkt 50b von 5b. Die Transistor 626 und 627 entsprechen
dem Verzweigungspunkt 50c von 5a.Analogously to this correspond in the switching stage for the bit 0 the two transistors 620 and 621 the branch point 50a of 5a , The transistors 622 . 623 correspond to the branch point 50b of 5b , The transistor 626 and 627 correspond to the branch point 50c of 5a ,
Die Schaltstufen umfassen ferner
eine in 6 bei 639 gezeigte
Ausgangsschiene, die gleichzeitig die Eingangsschiene für die nachgeschalteten
Ausgabestufen darstellt. Die beiden rechten Leitungen der Ausgangsschiene 639 sind
der oberen Ausgabestufe 14b zugeordnet, während die
beiden linken Leitungen der Ausgabeschiene 639 der unteren
Ausgabestufe 40a zugeordnet sind. Es sei darauf hingewiesen,
daß die Transistoren
in den Schaltstufen wirksam sind, um lediglich einen Pfad vom Anschluß 16b bzw. 16b zu
einer der Leitungen der Ausgabeschiene 40 durchzuschalten.
Es ist ferner ersichtlich, daß jeder
Pfad dieselbe Anzahl von Transistoren umfaßt, unabhängig davon, welcher Pfad durch
eine Schaltstufe abhängig
von dem Bitmuster eingestellt wird.The switching stages also include an in 6 at 639 shown output rail, which also represents the input rail for the downstream output stages. The two right lines of the output rail 639 are the upper output level 14b assigned while the two left lines of the output rail 639 the lower output level 40a assigned. It should be noted that the transistors in the switching stages operate only one path from the terminal 16b respectively. 16b to one of the lines of the output rail 40 turn on. It can also be seen that each path comprises the same number of transistors, regardless of which path is set by a switching stage depending on the bit pattern.
Aus 6 ist
ferner ersichtlich, daß bei
dem gezeigten Ausführungsbeispiel
ein Verzweigungspunkt durch Verwendung eines komplementären Operandenbits
zusätzlich
zu dem nicht-invertierten
Operandenbit implementiert wird. Dies ermöglicht eine einfache Implementierung
dahingehend, daß lediglich
zwei Transistoren verwendet werden, und daß keine Untersuchung des Bits
dahingehend erforderlich ist, ob das Bit eine 0 oder eine 1 hat.
Alternativ könnte
jedoch auch, obgleich es im Hinblick auf die Implementation und
mögliche Sicherheitseinbußen nicht
bevorzugt wird, eine Implementierung eingesetzt werden, bei der
lediglich Single-Rail-Operanden den Schaltstufen zugeführt werden.
In diesem Fall würde
jeder Verzweigungspunkt eine zusätzliche
Einrichtung dahingehend umfassen, um zu untersuchen, ob das zugeführte Bit
eine 1 oder eine 0 ist, um einen entsprechenden Pfad durchzuschalten.
In diesem Fall könnte
der erfindungsgemäße Halbaddierer auch
zur Single-Rail-Dual-Rail-Konversion
verwendet werden, um eingangsseitig vorliegende Single-Rail-Daten
in ausgangsseitige Dual-Rail-Daten
zu konvertieren, wobei die ausgangsseitigen Dual-Rail-Daten ferner gemäß der Halbaddierervorschrift
von den eingangsseitigen Single-Rail-Daten abgeleitet worden sind.Out 6 it can also be seen that in the embodiment shown a branch point is implemented by using a complementary operand bit in addition to the non-inverted operand bit. This enables simple implementation in that only two transistors are used and that no examination of the bit is necessary to determine whether the bit has a 0 or a 1. Alternatively, although it is not preferred with regard to the implementation and possible safety losses, an implementation could also be used in which only single-rail operands are fed to the switching stages. In this case, each branch point would include additional means to examine whether the bit supplied is a 1 or a 0 to connect a corresponding path. In this case, the half adder according to the invention could also be used for single-rail-dual-rail conversion, in order to convert single-rail data present on the input side into dual-rail data on the output side, the dual-rail data on the output side also according to Half adder rule have been derived from the input-side single rail data.
Die Funktionalität der beiden als Schalter fungierenden
Transistoren beispielsweise 620 und 621, die den
Verzweigungspunkt 50a in 5a darstellen,
ist ersichtlich, wenn davon ausgegangen wird, daß im Datenmodus immer nur ein
Transistor durchschaltet, während
der andere Transistor sperrt, so daß immer nur ein Pfad entweder
nach oben oder nach unten genommen wird, jedoch nie zwei Pfade gleichzeitig.
Nachdem im Datenmodus die beiden Knoten 605 und 604,
also die beiden Bits, die im Datenmodus den ersten Operanden darstellen,
auf Vdd liegen, sind die Transistoren 620 und 621 im
Vorbereitungsmodus beide gesperrt, so daß keine Querströme fließen können. Die
Schaltstufe wird somit aufgrund der Tatsache, daß in der Eingangsstufe ein
Precharge verwendet wird und in der Schaltstufe PMOS-Transistoren
verwendet werden, im Vorbereitungsmodus automatisch dahingehend
deaktiviert, daß keine
Querströme
von dem Knoten 16a bzw. 16b abfließen können. Würde die
Dual-Rail-Eingangsstufe einer Discharge-Operation unterzogen werden,
würde es bevorzugt,
die Transistoren der Schaltstufen in NMOS-Technik mit entsprechendem
Rechenpotential (Vss in diesem Fall) auszuführen.The functionality of the two transistors acting as switches, for example 620 and 621 which is the branch point 50a in 5a can be seen if it is assumed that in data mode only one transistor switches through while the other transistor blocks, so that only one path is taken either up or down, but never two paths at the same time. After in data mode the two nodes 605 and 604 The transistors are the two bits that represent the first operand in data mode on Vdd 620 and 621 both blocked in preparation mode so that no cross currents can flow. The switching stage is thus automatically deactivated in the preparation mode in such a way that there are no cross currents from the node due to the fact that a precharge is used in the input stage and PMOS transistors are used in the switching stage 16a respectively. 16b can drain off. If the dual-rail input stage were subjected to a discharge operation, it would be preferred to implement the transistors of the switching stages in NMOS technology with a corresponding computing potential (Vss in this case).
Nachfolgend wird beispielhaft die
transistormäßige Implementierung
der Ausgabestufe 14a erörtert, die
insgesamt vier Transistoren 640, 641, 642 und 643 aufweist.
Da als Rechenpotential 16a, 16b das hohe Potential
Vdd genommen wird, wird in 6 als
Vorbereitungspotential das niedrige Potential Vss 20a verwendet.
Entsprechend wird auch bei der zweiten Ausgabestufe 14b als
Vorbereitungspotential das niedrige Potential Vss verwendet, also
ein Potential, das sich von dem Rechenpotential Vdd unterscheidet.The following is an example of the transistor implementation of the output stage 14a discussed the total of four transistors 640 . 641 . 642 and 643 having. Because as a computing potential 16a . 16b the high potential Vdd is taken in 6 the preparation potential is the low potential Vss 20a used. The same applies to the second output stage 14b uses the low potential Vss as preparation potential, that is, a potential that differs from the computing potential Vdd.
Die Ausgabestufen 14a, 14b werden
im Vorbereitungsmodus mit einem Pre-Discharge-Signal beaufschlagt,
das aufgrund der Ausführung
der Transistoren 640–643 in
NMOS-Technik ein hohes Spannungssignal Vdd ist. Im Datenmodus liegt
auf der Leitung 28a, 28b dagegen das niedrige
Potential Vss an, um die Discharge-Transistoren 641, 640 zu
sperren.The output levels 14a . 14b are subjected to a pre-discharge signal in the preparation mode, which is due to the design of the transistors 640 - 643 is a high voltage signal Vdd in NMOS technology. In data mode lies on the line 28a . 28b contrast, the low potential Vss on to the discharge transistors 641 . 640 to lock.
Wird die Ausgabestufe 14a (genauso
wie die Ausgabestufe 14b) dagegen im Vorbereitungsmodus
betrieben, so liegt Vdd auf den Leitungen 28a, 28b (die
in der tatsächlichen
Implementierung als gemeinsame Leitung ausgeführt sind, an. Dies führt dazu,
daß die
beiden Knoten 22a, 22b auf Vss gelegt werden,
da die beiden Transistoren 640, 641, die in NMOS-Technik
ausgeführt
sind, durchgeschaltet werden. Dies führt unmittelbar dazu, daß der Transistor 643 ebenso
gesperrt ist wie der Transistor 642. Die Transistoren 643, 642 haben
daher im Vorbereitungsmodus keine Wirkung. Im Datenmodus sind dagegen,
wie es ausgeführt
worden ist, die Discharge-Transistoren 640 und 641 gesperrt.
Im Datenmodus wird einer der Knoten 22a, 22b aufgrund der
Tatsache, daß die
Schaltstufe das Potential Vdd 16a entweder auf den Knoten 22a oder
auf den Knoten 22b durchgeschaltet hat, hoch. Zur Erläuterung
der Funktionsweise der Transistoren 642 und 643 wird
davon ausgegangen, daß der
Knoten 22b hoch ist. Dies führt dazu, daß der Transistor 642 durchgeschaltet
wird, um den Knoten 22a sicher auf das niedrige Potential
Vss zu legen. Damit wird gleichzeitig sichergestellt, daß der Transistor 643 gesperrt
ist, was wiederum bewirkt, daß das
Potential Vss, das auf der einen Seite des Transistors 643 anliegt,
nicht an dem Knoten 22b anliegen kann, dahingehend, daß der Knoten 22b hoch
bleibt, während
der Knoten 22a sicher niedrig bleibt, so daß ein eindeutiges
Ergebnis erhalten wird, nämlich
daß das Bit
SUM0 hoch ist, während
das komplementäre
Bit SUM0 niedrig ist.Will the issue stage 14a (just like the output level 14b ) on the other hand, operated in preparation mode, Vdd is on the lines 28a . 28b (which are implemented as a common line in the actual implementation. This leads to the two nodes 22a . 22b be placed on Vss since the two transistors 640 . 641 , which are implemented in NMOS technology, are switched through. This immediately leads to the transistor 643 is blocked as well as the transistor 642 , The transistors 643 . 642 therefore have no effect in the preparation mode. In contrast, in data mode, as has been explained, the discharge transistors 640 and 641 blocked. In data mode, one of the nodes 22a . 22b due to the fact that the switching stage has the potential Vdd 16a either on the knot 22a or on the knot 22b has switched through, high. To explain how the transistors work 642 and 643 it is assumed that the node 22b is high. This causes the transistor 642 is switched through to the node 22a to safely put on the low potential Vss. This also ensures that the transistor 643 is blocked, which in turn causes the potential Vss to be on one side of the transistor 643 not at the knot 22b may lie in that the knot 22b stays high while the knot 22a remains safely low so that a clear result is obtained, namely that the SUM0 bit is high while the complementary bit SUM0 is low.
Die Ausgabestufe hat daher neben
der Funktionalität
des gewissermaßen
Lieferns des nicht durch die Schaltstufe bestimmten Bits im Datenmodus
(aufgrund des vorausgehenden Vorberei tungsmodus) auch die Funktionalität, im Datenmodus
beide Bits und insbesondere das nicht durch die Schaltstufe gelieferte
Bit gegenüber
Ladungslecks zu stabilisieren.The output level therefore has in addition
of functionality
in a way
Delivery of the bit not determined by the switching stage in data mode
(due to the previous preparation mode) also the functionality, in data mode
both bits and especially that not supplied by the switching stage
Bit opposite
Stabilize charge leaks.
Ferner hat die erfindungsgemäß bevorzugte
Implementierung der Ausgabestufen gemäß 6 den Vorteil, daß keine Querströme fließen, so
daß die
erfindungsgemäße Halbaddiererschaltung
neben ihrer Eigenschaft der Flächeneffizienz
und der Eigenschaft der hohen Performance auch einen niedrigen Stromverbrauch
hat.Furthermore, the preferred implementation of the output stages according to the invention has 6 the advantage that no cross currents flow, so that the half-adder circuit according to the invention, in addition to its property of area efficiency and the property of high performance, also has low power consumption.
-
1010
-
Eingangstufedoorstep
-
12a–c12a-c
-
Schaltstufenswitching stages
-
14a–c14a-c
-
Ausgabestufenoutput levels
-
16a–c16a-c
-
RechenpotentialanschlüsseCalculating potential terminals
-
18a–c18a-c
-
Ausgängeoutputs
-
20a20a
-
AnschlußConnection
-
20b–c20b-c
-
Eingängeinputs
-
22a–b22a-b
-
Ausgängeoutputs
-
24a–b24a-b
-
Ausgängeoutputs
-
26a–b26a-b
-
Ausgängeoutputs
-
2828
-
Steuereinrichtungcontrol device
-
28a–d28a-d
-
Steuerleitungencontrol lines
-
4040
-
Ausgabeschieneoutput rail
-
41–4341-43
-
Linienlines
-
50a–c50a-c
-
Schaltknotenswitching node
-
50a–c50a-c
-
Verzweigungspunktebranch points
-
8080
-
Drei-Bit-HalbaddiererThree-bit half adder
-
8181
-
Zwei-Bit-VolladdiererTwo-bit full adder
-
8282
-
Summenbitsum bit
-
8383
-
Übertragbitcarry bit
-
600–603600-603
-
Transistorentransistors
-
604604
-
Ausgangsknotenoutput node
-
605605
-
Ausgangsknotenoutput node
-
611–613611-613
-
Verteilungsschienendistribution rails
-
620–629620-629
-
Transistorentransistors
-
630–637630-637
-
Transistorentransistors
-
640–643640-643
-
Transistorentransistors