DE10130484B4 - 7-zu-3 Bit Carry-Save Addierer und Addierer damit - Google Patents

7-zu-3 Bit Carry-Save Addierer und Addierer damit Download PDF

Info

Publication number
DE10130484B4
DE10130484B4 DE10130484A DE10130484A DE10130484B4 DE 10130484 B4 DE10130484 B4 DE 10130484B4 DE 10130484 A DE10130484 A DE 10130484A DE 10130484 A DE10130484 A DE 10130484A DE 10130484 B4 DE10130484 B4 DE 10130484B4
Authority
DE
Germany
Prior art keywords
adder
bit
carry
add
bits
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE10130484A
Other languages
English (en)
Other versions
DE10130484A1 (de
Inventor
Joel Hatsch
Ronald KÜNEMUND
Winfried Kamp
Eva Lackerschmid
Heinz SÖLDNER
Siegmar KÖPPE
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Infineon Technologies AG
Original Assignee
Infineon Technologies AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Infineon Technologies AG filed Critical Infineon Technologies AG
Priority to DE10130484A priority Critical patent/DE10130484B4/de
Priority to PCT/DE2002/000656 priority patent/WO2002071203A2/de
Publication of DE10130484A1 publication Critical patent/DE10130484A1/de
Application granted granted Critical
Publication of DE10130484B4 publication Critical patent/DE10130484B4/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/50Adding; Subtracting
    • G06F7/505Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination
    • G06F7/509Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination for multiple operands, e.g. digital integrators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/50Adding; Subtracting
    • G06F7/501Half or full adders, i.e. basic adder cells for one denomination
    • G06F7/5016Half or full adders, i.e. basic adder cells for one denomination forming at least one of the output signals directly from the minterms of the input signals, i.e. with a minimum number of gate levels
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/607Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers number-of-ones counters, i.e. devices for counting the number of input lines set to ONE among a plurality of input lines, also called bit counters or parallel counters
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/3804Details
    • G06F2207/386Special constructional features
    • G06F2207/3872Precharge of output to prevent leakage

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Optimization (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Logic Circuits (AREA)

Abstract

Carry-Save Addierer zum Summieren von Bits gleicher Wertigkeit, mit
– 7 Eingängen (i0, i1, ..., i6) zur Entgegennahme von 7 zu summierenden Bits jeweils gleicher Wertigkeit w und
– einem Ausgang (s) für ein Summen-Bit der Wertigkeit w sowie zwei Ausgänge (c1, c2) für zwei Übertrags-Bits der Wertigkeiten 2w und 4w,
dadurch gekennzeichnet,
dass der Carry-Save Addierer aus drei parallel zueinander angeordneten, unabhängig voneinander arbeitenden Addierersubblöcken aufgebaut ist, wobei ein erster Addierersubblock (ADD-S) das Summen-Bit (s) erzeugt, ein zweiter Addierersubblock (ADD-C1) das Übertrags-Bit (c1) der Wertigkeit 2w erzeugt und der dritte Addierersubblock (ADD-C2) das Übertrags-Bit (c2) der Wertigkeit 4w erzeugt.

Description

  • Die Erfindung betrifft einen Carry-Save Addierer zum Summieren einer Mehrzahl von Bits derselben Wertigkeit. Ferner betrifft die Erfindung einen übertragserhaltenden Addierer zum Summieren einer Mehrzahl von Bit-Sätzen, wobei die in einem Bit-Satz enthaltenen Bits dieselbe Wertigkeit und Bits unterschiedlicher Bit-Sätze unterschiedliche Wertigkeiten aufweisen, und wobei jedem Bit-Satz ein Bit-Satz-Addierer zugeordnet ist, welcher unter Berücksichtigung von bei der Summation von Bit-Sätzen niedrigerer Wertigkeit gewonnenen Überträgen ein Bit der Wertigkeit des jeweiligen Bit-Satzes berechnet.
  • Carry-Save (CS) Addierer sind in der Technik bekannt und werden durch logische Schaltungen realisiert, welche in Form von monolithisch integrierten Bausteinen erhältlich sind. Der am häufigsten verwendete CS Addierer ist der 3-zu-2 Bit Volladdierer, welcher drei gleichwertige (d.h. vertauschbare) Eingänge und zwei Ausgänge in Form eines Summen-Bits und eines Übertrags-Bits aufweist.
  • Für die Addition von mehreren mehrstelligen Dualzahlen wird ein Addierer benötigt, der für jede Stelle mehrere Eingänge aufweist. Üblicherweise wird zur Addition der Bits gleicher Wertigkeit (d.h. gleicher Stelle in der Dualdarstellung) ein Wallace-Tree-(WT-)Addierer eingesetzt. Ein WT-Addierer ist ein mehrstufiger Addierer, welcher in jeder Stufe die Anzahl der zu addierenden Bits verkleinert. Die einzelnen Stufen eines WT-Addierers sind aus parallel zueinander angeordneten 3-zu-2 CS-Volladdierern aufgebaut. Mit jeder Stufe verringert sich dabei auch die Anzahl der für diese Stufe benötigten Volladdierer.
  • In dem U.S.-Patent 5,504,915 ist ein modifizierter WT-Addierer beschrieben, welcher zusätzlich zu den 3-zu-2 CS Vollad dierern 5-zu-3 Addierer enthält. Die 5-zu-3 Addierer weisen jeweils vier Eingänge für zu summierende Bits und einen Eingang für ein Übertrags-Bit sowie zwei Ausgänge für zwei Summen-Bits und einen Ausgang für ein Übertrags-Bit auf.
  • Die Schrift DE 692 28 961 T2 beschreibt einen 7-zu-3 Zähler, welcher die Summe von 7 Bits gleicher Wertigkeit in Form einer 3-Bit Binärzahl ausgibt. Das erste und das zweite Übertrags-Bit werden dabei von einem Volladdierer berechnet, welcher an seinen drei Eingängen Zwischenergebnisse von vorgeschalteten Zwischenergebnis-Berechnungsstufen entgegennimmt.
  • Der Erfindung liegt die Aufgabe zugrunde, einen weiteren vielfältig und aufwandsgünstig einsetzbaren Carry-Save Bit-Addierer zu schaffen. Insbesondere sind dabei kurze Signallaufzeiten und eine geringe Stromaufnahme angestrebt. Ferner zielt die Erfindung darauf ab, einen übertragserhaltenden Addierer zum Summieren einer Mehrzahl von Bit-Sätzen, welche Bits jeweils derselben Wertigkeit enthalten, anzugeben, welcher für die Summation eines Bit-Satzes mit möglichst wenig Stufen auskommt und einen geringen Verdrahtungsaufwand für die Implementierung erforderlich macht.
  • Die der Erfindung zugrunde liegende Aufgabenstellung wird durch die Merkmale der unabhängigen Ansprüche gelöst.
  • Dadurch, dass am Ausgang des erfindungsgemäßen 7-zu-3 Bit CS Addierers zwei Überträge unterschiedlicher Wertigkeit ausgegeben werden, wird die volle Darstellungsmöglichkeit der drei Ausgangssignale für die gleichzeitige Addition von sieben Eingangs-Bits genutzt. Dies ist vorteilhaft gegenüber bisherigen Lösungen wie z.B. dem 5-zu-3 CS Addierer, welcher nur einen Teil des bei drei Ausgängen prinzipiell möglichen Wertebereichs ausschöpft. Darüber hinaus ist durch die gleichzeitige Erzeugung von zwei Überträgen unterschiedlicher Wertigkeit der Schaltungsaufwand und der interne Verdrahtungs aufwand geringer als bei mehrstufigen Lösungen mit herkömmlichen 3-zu-2 CS Addierern.
  • Der erfindungsgemäße 7-zu-3 CS Addierer kennzeichnet sich dadurch, dass der 7-zu-3 CS Addierer aus drei parallel zueinander angeordneten, unabhängig voneinander arbeitenden Addierersubblöcken aufgebaut ist. Dabei erzeugt ein erster Addierersubblock das Summen-Bit der Wertigkeit w, ein zweiter Addierersubblock erzeugt das Übertrags-Bit der Wertigkeit 2w und der dritte Addierersubblock erzeugt das Übertrags-Bit der Wertigkeit 4w.
  • Nach einer ersten bevorzugten Ausführungsform der Erfindung ist wenigstens ein und insbesondere jeder Addierersubblock aus Logikgattern aufgebaut. Mit dem Begriff "Logiggatter" sind hier die Grundelemente digitaler Schaltkreise, d.h. AND-Gatter (UND-Gatter), OR-Gatter (ODER-Gatter), XOR-Gatter (Exklusiv-ODER-Gatter), NAND-Gatter (invertiertes UND-Gatter) NOR-Gatter (invertiertes ODER-Gatter) und Inverter bezeichnet.
  • In diesem Fall ist vorzugsweise der bzw. insbesondere jeder Addierersubblock aus maximal drei hintereinander geschalteten Logiggatterstufen realisiert, so dass sämtliche Ausgabe-Bits bereits nach drei Gatterlaufzeiten zeitgleich zur Verfügung stehen (Inverter werden bei der Zählung der Logiggatterstufen nicht berücksichtigt).
  • Eine zweite bevorzugte Ausführungsform der Erfindung kennzeichnet sich dadurch, dass ein und insbesondere jeder Addierersubblock aus einer Mehrtransistorschaltung besteht, welche nicht in eine Mehrzahl von Logikgattern (gemäß vorstehender Definition) auflösbar ist. Mit anderen Worten bildet jeder Addierersubblock ein einzelnes, eigenständiges "Komplexgatter" ohne interne Logiggatterstruktur, welches darüber hinaus unabhängig von den anderen Addierersubblöcken ist. Hierdurch können besonders schnelle sowie platz- und stromsparende Schaltungen realisiert werden, da die Anzahl der Transistoren solcher Schaltungen kleiner gehalten werden kann als bei Schaltungen, die auf Logiggatterebene konzipiert sind.
  • Eine besonders bevorzugte Ausgestaltung eines solchen übertragserhaltenden Addierers umfasst eine Aufladeschaltung, die mit der jeweiligen Mehrtransistorschaltung derart verbunden ist, dass sie über diese in Abhängigkeit von den an den Eingängen des Addierers anliegenden Bits entladen wird. Diese Auslegung des erfindungsgemäßen Addierers, welche dem Konzept der dynamischen Schaltungsauslegung folgt, minimiert den Leistungsbedarf des Addierers.
  • Der erfindungsgemäße 7-zu-3 CS Addierer kann in vielfältiger Weise in größeren Addiererstrukturen eingesetzt werden. In zahlreichen Anwendungsfällen werden übertragserhaltende Addierer benötigt, die eine Mehrzahl von Bit-Sätzen verarbeiten, wobei die in einem Bit-Satz enthaltenen Bits dieselbe Wertigkeit und Bits unterschiedlicher Bit-Sätze unterschiedliche Wertigkeiten aufweisen. Ein erfindungsgemäßer übertragserhaltender Addierer dieser Art kennzeichnet sich dadurch, dass zumindest ein Bit-Satz-Addierer wenigstens einen 7-zu-3 Carry-Save Addierer mit sieben Eingängen für die Eingabe von zu summierenden Bits jeweils der Wertigkeit w und einem Ausgang für ein Summen-Bit der Wertigkeit w und zwei Ausgängen für zwei Übertrags-Bits der Wertigkeiten 2w und 4w umfasst. Dabei ist der 7-zu-3 Carry-Save Addierer aus drei parallel zueinander angeordneten, unabhängig voneinander arbeitenden Addierersubblöcken aufgebaut, die das Summen-Bit, das Übertrags-Bit der Wertigkeit w und das Übertrags-Bit der Wertigkeit 2w erzeugen.
  • Bei einer besonders bevorzugten Ausgestaltung eines solchen übertragserhaltenden Addierers sind mehrere Stufen mehrerer benachbarter Bit-Satz-Addierer aus einem Array aus 7-zu-3 CS Addieren aufgebaut. Dadurch wird ein geringer Verdrahtungsaufwand verglichen mit einer höher kaskadierenden Anordnung z.B. bestehend aus 3-zu-2 CS Addierern ermöglicht.
  • Weitere vorteilhafte Ausgestaltungen der Erfindung sind in den Unteransprüchen angegeben.
  • Die Erfindung wird nachfolgend anhand von Ausführungsbeispielen unter Bezugnahme auf die Zeichnung beschrieben; in dieser zeigt:
  • 1 einen WT-Addierer, welcher aus 3-zu-2 Addierern aufgebaut ist, gemäß dem Stand der Technik;
  • 2a eine schematische Darstellung eines 7-zu-3 CS Addierers;
  • 2 eine schematische Darstellung einer Kaskadierung von 3-zu-2 CS Addierern zur Realisierung eines 7-zu-3 CS Addierers;
  • 3 eine Wahrheitstabelle für einen 7-zu-3 Addierer;
  • 4 ein Blockdiagramm eines erfindungsgemäßen 7-zu-3 CS Addierers;
  • 5 ein Blockschaltbild eines ersten Addierersubblocks ADD-S aus 4 gemäß einem ersten Ausführungsbeispiel der Erfindung;
  • 6 ein Blockschaltbild eines zweiten Addierersubblocks ADD-C1 aus 4 gemäß dem ersten Ausführungsbeispiel der Erfindung;
  • 7 ein Blockschaltbild eines dritten Addierersubblocks ADD-C2 aus 4 gemäß dem ersten Ausführungsbeispiel der Erfindung;
  • 8 ein Blockschaltbild eines ersten Addierersubblocks ADD-S aus 4 gemäß einem zweiten Ausführungsbeispiel der Erfindung;
  • 9 ein Blockschaltbild eines zweiten Addierersubblocks ADD-C1 aus 4 gemäß dem zweiten Ausführungsbeispiel der Erfindung;
  • 10 ein Blockschaltbild eines dritten Addierersubblocks ADD-C2 aus 4 gemäß dem zweiten Ausführungsbeispiel der Erfindung;
  • 11 einen Ausschnitt aus einem erfindungsgemäßen übertragserhaltenden Addierer, der ausschließlich aus 7-zu-3 CS Addierern aufgebaut ist;
  • 12 eine schematische Darstellung eines 64x64 Bit Multiplizierers;
  • 13 ein Stufendiagramm zur Erläuterung des Stufenaufbaus eines bekannten WT-Addierers zum Aufaddieren von 33 Bits derselben Wertigkeit mit 3-zu-2 CS Addierern; und
  • 14 ein Stufendiagramm zur Erläuterung des Stufenaufbaus eines erfindungsgemäßen Bit-Satz-Addierers zum Aufaddieren von 33 Bits derselben Wertigkeit mit 7-zu-3 CS Addierern.
  • 1 zeigt einen fünf-stufigen WT-Addierer 1 zur Addition von 13 Eingabe-Bits 2 gleicher Wertigkeit nach dem Stand der Technik.
  • Der WT-Addierer 1 umfasst insgesamt 11 3-zu-2 CS Volladdierer 3. Jeder Volladdierer 3 weist drei Eingänge A, B, Ci und zwei Ausgänge S, Co auf. Die Eingänge A und B sind zur Entgegennahme von zwei zu addierenden Bits vorgesehen, der Eingang Ci (Carry in) ist zum Empfang eines Übertrags-Bits vorgesehen. Die drei Eingänge A, B, Ci sind äquivalent.
  • Der Ausgang S repräsentiert den Summen-Ausgang des 3-zu-2 CS Volladdieres 3. Der Ausgang S nimmt den Wert Null an, wenn an sämtlichen Eingängen A, B, Ci ein Bit des Wertes Null anliegt oder wenn an genau zwei der Eingänge A, B, Ci ein Bit des Wertes 1 anliegt. Andernfalls ist S = 1. Der Ausgang Co für den Übertrag (Carry out) nimmt nur dann den Wert 1 an, wenn an mindestens zwei der Eingänge ein Bit des Wertes 1 anliegt. Im Gegensatz zu den Eingängen A, B, Ci sind die Ausgänge S und Co nicht äquivalent, d.h. nicht vertauschbar.
  • Die fünf Stufen 1.1, 1.2, 1.3, 1.4, 1.5 des WT-Addierers 1 umfassen 4, 3, 2, 1 bzw. 1 3-zu-2 CS Volladdierer 3. Die 13 Eingänge des WT-Addierers sind durch die 12 Eingänge 2 der ersten Stufe 1.1 und einen Eingang 2 der zweiten Stufe 1.2 realisiert.
  • Während die Ausgänge S der ersten Stufe 1.1 jeweils Eingängen der 3-zu-2 CS Volladdierer 3 der zweiten Stufe 1.2 zugeführt werden, werden die 4 Ausgänge Co, welche ein Übertrags-Bit 4 bereitstellen, einer zweiten Stufe eines (nicht dargestellten) WT-Addierers zur Addition eines Bit-Satzes mit einer nächst höheren Wertigkeit zugeleitet. In analoger Weise empfangen die 3-zu-2 CS Volladdierer 3 der zweiten Stufe 1.2 jeweils ein oder zwei Übertrags-Bits 5, welche von einer ersten Stufe eines (ebenfalls nicht dargestellten) WT-Addierers für einen Bit-Satz mit nächst niedrigerer Wertigkeit ausgegeben werden.
  • Dieses Prinzip setzt sich über die zweite 1.2 und dritte 1.3, dritte 1.3 und vierte 1.4 und vierte 1.4 und fünfte 1.5 Stufe des WT-Addierers 1 fort. Der Ausgang des WT-Addierers 1 wird durch ein Summen-Bit 6 und ein partielles Übertrags-Bit 7, welches von der ausgangsseitigen Stufe des WT-Addierers 1 nächst niedrigerer Wertigkeit stammt, repräsentiert.
  • 2a zeigt eine schematische Darstellung eines 7-zu-3 CS Addierers. Der Addierer weist die Eingänge i0, i1, i2, i3, i4, i5, i6 und die Ausgänge s, c1, c2 auf. Die Addition von sieben Bits umfasst einen Wertebereich zwischen Null und sieben. Die drei Ausgänge des 7-zu-3 CS Addierers repräsentieren die Summe der an den Eingängen anliegenden Bits in dualkodierter Form. Der Ausgang s für das Summen-Bit weist die gleiche Wertigkeit wie der Satz von Eingangs-Bits i0 bis i6 auf. Bei dem Ausgang c1 handelt es sich um einen Übertrags-Ausgang, welcher eine um den Faktor 2 höhere Wertigkeit als der Ausgang s für das Summen-Bit aufweist. Der Ausgang c2 ist ebenfalls ein Ausgang für ein Übertrags-Bit jedoch mit einer nochmals um den Faktor 2 erhöhten Wertigkeit gegenüber dem Ausgang c1. Mit anderen Worten weisen die Ausgänge s, c1 und c2 die Wertigkeiten 20, 21 und 22 bezogen auf die Wertigkeit des Bit-Satzes am Eingang des 7-zu-3 Addierers auf.
  • 2 zeigt einen erfindungsgemäßen 7-zu-3 CS Addierer, welcher aus kaskadierten, herkömmlichen 3-zu-2 CS Volladdierern aufgebaut ist. Der 7-zu-3 CS Addierer weist drei Stufen 1.1, 1.2 und 1.3 auf, die aus zwei, einem bzw. einem 3-zu-2 CS Volladdierer gebildet sind. Dieselben oder vergleichbare Teile und Funktionsgruppen wie in 1 sind mit denselben Bezugszeichen bezeichnet.
  • Dem 7-zu-3 CS Addierer werden 7 Bits der gleichen Wertigkeit an Eingängen i0, i1, ..., i6 zugeführt. Die ersten sechs Eingänge i0 bis i5 sind mit den 2 × 3 Eingängen der beiden 3-zu-2 CS Addierer 3 der ersten Stufe 1.1 verbunden. Der siebte Eingang i6 ist mit einem Eingang des 3-zu-2 CS Addierers 3 der zweiten Stufe 1.2 verbunden. Die verbleibenden beiden Eingänge A und Ci dieses 3-zu-2 CS Addierers 3 werden jeweils von den Summen-Bit Ausgängen der beiden 3-zu-2 CS Addierer 3 der ersten Stufe 1.1 gespeist.
  • Der Summen-Bit Ausgang S des 3-zu-2 CS Addierers 3 der zweiten Stufe 1.2 bildet den Summen-Bit Ausgangs des 7-zu-3 CS Addierers. Die drei Übertrags-Bit Ausgänge der beiden 3-zu-2 CS Addierer 3 der ersten Stufe 1.1 und des 3-zu-2 CS Addierers 3 der zweiten Stufe 1.2 werden den drei Eingängen des 3-zu-2 CS Addierers 3 der dritten Stufe 1.3 zugeleitet. Der Summen-Bit Ausgang S des 3-zu-2 CS Addierers 3 der dritten Stufe 1.3 liefert das Bit für den ersten Übertrags-Ausgang c1 und der Übertrags-Bit Ausgang Co dieses 3-zu-2 CS Addierers 3 liefert das Übertrags-Bit c2 nächsthöherer Wertigkeit des betrachteten 7-zu-3 CS Addierers.
  • 3 gibt die Wahrheitstabelle eines 7-zu-3 CS Addierers wieder. Es wird deutlich, dass der 7-zu-3 CS Addierer die Eigenschaft aufweist, dass der Wertebereich der drei Ausgangs-Bits vollständig ausgeschöpft wird. Diese Eigenschaft, die sich unabhängig von der konkreten Implementierung des 7-zu-3 CS Addierers allein aus dessen Wahrheitstabelle ergibt, ist ein Grund dafür, dass sich durch Verwendung eines solchen 7-zu-3 CS Addierers in einem übertragserhaltenden Addierer zur Addition mehrerer Binärzahlen der Schaltungsaufwand im Vergleich zu Lösungen bestehend aus 3-zu-2 CS Addierern deutlich reduzieren läßt.
  • Anhand der 4 bis 10 werden zwei weitere Ausführungsbeispiele eines erfindungsgemäßen 7-zu-3 CS Addierers erläutert.
  • Der 7-zu-3 CS Addierer umfasst drei Addierersubblöcke, die in 4 mit den Bezugszeichen ADD-S, ADD-C1 und ADD-C2 bezeichnet sind. Jeder Addierersubblock ADD-S, ADD-C1, ADD-C2 weist sieben Eingänge I0, I1, I2, I3, I4, I5 und I6 auf, die jeweils mit den genannten sieben Eingängen i0 bis i6 des 7-zu-3 CS Addierers verbunden sind.
  • Der Addierersubblock ADD-S gibt an seinem Ausgang S ein Bit der Wertigkeit 20 aus. Die entsprechenden Ausgänge C1 und C2 der zweiten und dritten Addierersubblöcke ADD-Cl und ADD-C2 geben jeweils ein Bit der Wertigkeit 21 (Ausgang C1) bzw. ein Bit der Wertigkeit 22 (Ausgang C2) aus. Die Ausgänge S, C1, C2 der Addierersubblöcke ADD-S, ADD-C1 und ADD-C2 sind die Ausgänge s, c1, c2 des betrachteten 7-zu-3 CS Addierers.
  • In den 5 bis 7 sind mögliche Realisierungen der Gatterstrukturen der einzelnen Addierersubblöcke ADD-S, ADD-C1 und ADD-C2 gemäß einem ersten Ausführungsbeispiel gezeigt. Jeder Addierersubblock ADD-S, ADD-Cl und ADD-C2 ist bei diesem Aus führungsbeispiel aus einzelnen Logiggattern aufgebaut, welche in mehreren hintereinander angeordneten Gatterstufen angeordnet sind. Gemäß dem hier verwendeten Sprachgebrauch enthält eine Gatterstufe genau ein Logikgatter, wie beispielsweise XOR, NAND, usw., oder eine Parallelanordnung derartiger Logikgatter. Inverter bilden keine Gatterstufen, d.h. ihr Vorhandensein beeinflußt die Anzahl der Gatterstufen nicht.
  • 5 verdeutlicht die Gatterstruktur des Addierersubblocks ADD-S. Die Eingänge I0, I1, ..., I6 sind paarweise mit den jeweils zwei Eingängen von insgesamt drei XOR-Gattern 30 der ersten Stufe 10.1 des Addierersubblocks verbunden. Die (auf Gatterebene) zweite Stufe 10.2 des Addierersubblocks ADD-S wird durch zwei XOR-Gatter 30 realisiert. Die vier Eingänge der zweiten Stufe 10.2 werden durch die drei Ausgänge der ersten Stufe 10.1 sowie den Eingang I6 dargestellt.
  • Eine dritte und letzte Stufe 10.3 des Addierersubblocks ADD-S wird durch ein einzelnes XOR-Gatter 30 realisiert, das von den beiden Ausgängen der zwei XOR-Gatter 30 der zweiten Stufe 10.2 gespeist wird. Der Ausgang des XOR-Gatters 30 der dritten Stufe 10.3 ist der Summen-Bit Ausgang des 7-zu-3 CS Addierers.
  • Der detaillierte Aufbau des Addierersubblocks ADD-C1 ist in 6 dargestellt. Er besteht ebenfalls lediglich aus drei Stufen 10.1, 10.2, und 10.3 (wobei wie bereits erwähnt die in der Zeichnung durch Dreieck-Symbole dargestellten Inverter nicht als Stufen gezählt werden). Die erste Stufe 10.1 ist aus 42 NRND-Gattern 30' mit jeweils sechs Eingängen ausgebildet, die zweite Stufe 10.2 umfasst sechs NAND-Gatter 30'' mit jeweils sieben Eingängen und die dritte Stufe 10.3 wird durch ein NAND-Gatter 30' mit sechs Eingängen gebildet. Der Ausgang des NAND-Gatters 30' der dritten Stufe 10.3 realisiert den Ausgang C1 der Wertigkeit 21 des 7-zu-3 CS Addierers aus 4.
  • Die Verschaltung der einzelnen NAND-Gatter 30', 30'' der drei Stufen 10.1-3 des Addierersubblocks ADD-Cl wird durch die in 6 angegebenen Bezugszeichen erläutert. Dabei bezeichnen NI0 bis NI6 die invertierten Eingänge I0 bis I6. Dies ist im unteren linken Teil von 6 symbolisch dargestellt.
  • 7 zeigt den Aufbau des Addierersubblocks ADD-C2 aus 4 gemäß dem ersten Ausführungsbeispiel auf Gatterebene. Wiederum sind drei Stufen 10.1, 10.2 und 10.3 vorhanden. Die erste Stufe 10.1 umfasst 35 NAND-Gatter 30''' mit jeweils vier Eingängen, die zweite Stufe 10.2 umfasst fünf NAND-Gatter 30'' mit jeweils sieben Eingängen und die dritte Stufe 10.3 umfasst ein NAND-Gatter 30'''' mit fünf Eingängen. Die Verschaltung der einzelnen Stufen 10.1, 10.2, 10.3 sowie die Belegung der jeweils vier Eingänge der NAND-Gatter 30''' der ersten Stufe 10.1 sind der 7 unter Zuhilfenahme der Bezugszeichen zu entnehmen.
  • Es wird deutlich, dass der in den 4 bis 7 erläuterte 7-zu-3 CS Addierer mit lediglich drei Stufen auf (Logik-)Gatterebene eine Addition von sieben Bits bewerkstelligen und durch die drei Ausgabebits s, c1, c2 komplett darstellen kann.
  • Die 8 bis 10 zeigen den Aufbau der in 4 dargestellten Addierersubblöcke ADD-S, ADD-C1 und ADD-C2 gemäß einem zweiten erfindungsgemäßen Ausführungsbeispiel. Dieses Ausführungsbeispiel der Erfindung unterscheidet sich von dem zuvor beschriebenen Ausführungsbeispiel im wesentlichen dadurch, dass die einzelnen Addierersubblöcke ADD-S, ADD-C1 und ADD-C2 jeweils aus einer Mehrtransistorschaltung aufgebaut sind, die nicht in einzelne Logiggatter zerlegbar ist. Die logischen Funktionen dieser Mehrtransistorschaltungen werden durch den Schaltungsaufbau auf Transistorebene bestimmt.
  • Die Mehrtransistorschaltung des Addierersubblocks ADD-S wird mit MS, die Mehrtransistorschaltung des Addierersubblocks ADD-C1 wird mit MC1 und die Mehrtransistorschaltung des Addierersubblocks ADD-C2 wird mit MC2 bezeichnet.
  • Sämtliche Mehrtransistorschaltungen MS, MC1 und MC2 weisen einen Knoten K1 auf, welcher mit einer Bezugsspannung vss verbunden ist. Ferner ist ihnen gemeinsam, dass sie über zwei Knoten K2 und K3 mit einer Treiberschaltung TR verbunden sind. Der Treiberschaltung TR wird eine Betriebsspannung vdd zugeführt.
  • Eine weitere Gemeinsamkeit besteht darin, dass sämtliche Mehrtransistorschaltungen MS, MC1, MC2 zusätzlich zu ihren jeweiligen Bit-Ausgängen S bzw. C1 bzw. C2 auch (in 4 nicht dargestellte) invertierte Bit-Ausgänge NS bzw. NC1 bzw. NC2 aufweisen. Der Knoten K2 steht mit dem jeweiligen nicht invertierten Bit-Ausgang S, C1, C2 in Verbindung und der Knoten K3 ist mit dem jeweiligen invertierten Bit-Ausgang NS, NC1, NC2 verbunden.
  • Nach 8 umfasst die Mehrtransitorschaltung MS insgesamt 26 N-Kanal-Transistoren, die über ihre Basis entweder mit den Eingängen I0, ..., I6 oder den entsprechenden invertierten Eingängen NI0, ..., NI6 angesteuert werden.
  • Zwei den Eingängen I0/NI0 zugeordnete Transistoren N1_1, N1_2 liegen mit ihren Source-Anschlüssen an der Bezugsspannung vss und speisen mit ihren Drain-Anschlüssen die restliche Mehrtransistorschaltung MS. Diese weist für jeden der Eingänge I1/NI1, ..., I6/NI6 jeweils vier N-Kanal-Transistoren N2_1, ..., N2_4 bzw. N3_1,..., N3_4 bzw. N4_1, ..., N4_4 bzw. N5_1, ..., N5_4 bzw. N6_1, ..., N6_4 bzw. N7_1, ..., N7_4 auf. Die Drain-Anschlüsse der Transistoren Ni_1 und Ni_3 sind miteinander verbunden und stehen mit den Source-Anschlüssen der Transistoren N(i+1)_1 und N(i+1)_2 in Verbindung, und andererseits sind die Drain-Anschlüsse der Transistoren Ni_2 und Ni_4 miteinander verbunden und stehen mit den Source- Anschlüssen der Transistoren N(i+1)_3 und N(i+1)_4 in Verbindung, i = 1, ..., 6.
  • Ausgangsseitig steht der Knoten K2 mit den Drain-Anschlüssen der Transistoren N7_2 und N7_4 in Verbindung und der Knoten K3 steht mit den Drain-Anschlüssen der Transistoren N7_1 und N7_3 in Verbindung. Dabei werden die Transistoren Ni_1 und Ni_4 jeweils nicht-invertiert und die Transistoren Ni_2 und Ni_3 jeweils invertiert von dem betreffenden Eingang angesteuert.
  • Nach 9 weist die Mehrtransistorschaltung MC1 zwei den Eingängen I0/NI0 zugeordnete N-Kanal-Transistoren N1_1 und N1_2, vier den Eingängen I1/NI1 zugeordnete N-Kanal-Transistoren N2_1, ..., N2_4, sechs den Eingängen I2/NI2 zugeordnete N-Kanal-Transistoren N3_1, ..., N3_6, acht den Eingängen I3/NI3 zugeordnete N-Kanal-Transistoren N4_1, ..., N4_8, acht den Eingängen I4/NI4 zugeordnete N-Kanal-Transistoren N5_1, ..., N5_8, acht den Eingängen I5/NI5 zugeordnete N-Kanal-Transistoren N6_1, ..., N6_8 und vier den Eingängen I6/NI6 zugeordnete N-Kanal-Transistoren N7_1, ..., N7_4 auf. Die Transistoren Ni_j mit einem geraden Index j werden invertiert angesteuert, während Transistoren mit einem ungeraden Index j nicht-invertiert angesteuert werden.
  • Die Source-Anschlüsse der beiden Transistoren N1_1 und N1_2 stehen mit K1 in Verbindung. Die Source-Anschlüsse der Transistoren N2_1 und N2_2 sind mit dem Drain-Anschluss des Transistors N1_1 verbunden, und die Source-Anschlüsse der Transistoren N2_3 und N2_4 sind mit dem Drain-Anschluss des Transistors N1_2 verbunden. Die Source-Anschlüsse der Transistor-Paare N3_1, N3_2 bzw. N3_3, N3_4 bzw. N3_5, N3_6 sind mit den Drain-Anschlüssen der Transistoren N2_1 bzw. N2_2 und N2_3 bzw. N2_4 verbunden.
  • Die Source-Anschlüsse der Transistor-Paare N4_1, N4_2 bzw. N4_3, N4_4 bzw. N4_5, N4_6 bzw. N4_7, N4_8 sind mit den Drain-Anschlüssen der Transistoren N3_1 bzw. N3_2 und N3_3 bzw. N3_4 und N3_5 bzw. N3_6 verbunden. Die Source-Anschlüsse der Transistor-Paare N5_1, N5_2 bzw. N5_3, N5_4 bzw. N5_5, N5_6 bzw. N5_7, N5_8 sind mit den Drain-Anschlüssen der Transistoren N4_1 und N4_8 bzw. N4_2 und N4_3 bzw. N4_4 und N4_5 bzw. N4_6 und N4_7 verbunden. Die Source-Anschlüsse der Transistor-Paare N6_1, N6_2 bzw. N6_3, N6_4 bzw. N6_5, N6_6 bzw. N6_7, N6_8 sind mit den Drain-Anschlüssen der Transistoren N5_1 und N5_8 bzw. N5_2 und N5_3 bzw. N5_4 und N5_5 bzw. N5_6 und N5_7 verbunden. Die Source-Anschlüsse der Transistoren N7_1 und N7_2 sind mit den Drain-Anschlüssen der Transistoren N6_2 und N6_3 und die Source-Anschlüsse der Transistoren N7_3 und N7_4 sind mit den Drain-Anschlüssen der Transistoren N6_6 und N6_7 verbunden. Der Knoten K2 steht mit den Drain-Anschlüssen der Transistoren N7_2, N6_4 und N7_3 in Verbindung, und der Knoten K3 ist mit den Drain-Anschlüssen der Transistoren N6_1, N7_1, N7_4 und N6_8 verbunden.
  • Nach 10 sind bei der Mehrtransistorschaltung MC2 zwei N-Kanal-Transistoren N1_1, N1_2 den Eingängen I0/NI0 zugeordnet, vier N-Kanal-Transistoren N2_1, ..., N2_4 sind den Eingängen I1/NI1 zugeordnet, sechs N-Kanal-Transistoren N3_1, ..., N3_6 sind den Eingängen I2/NI2 zugeordnet, acht N-Kanal-Transistoren N4_1, ..., N4_8 sind den Eingängen I3/NI3 zugeordnet, sechs N-Kanal-Transistoren N5_1, ..., N5_6 sind den Eingängen I4/NI4 zugeordnet, vier N-Kanal-Transistoren N6_1, ..., N6_4 sind den Eingängen I5/NI5 zugeordnet, und zwei N-Kanal-Transistoren N7_1, N7_2 sind den Eingängen I6/NI6 zugeordnet.
  • Bezüglich der Transistoren Ni_j mit i = 1, 2, 3, 4 ist die Mehrtransistorschaltung MC2 identisch mit der Mehrtransistorschaltung MC1.
  • Die Source-Anschlüsse der Transistor-Paare N5_1, N5_2 bzw. N5_3, N5_4 bzw. N5_5, N5_6 sind mit den Drain-Anschlüssen der Transistoren N4_2 und N4_3 bzw. N4_4 und N4_5 bzw. N4_6 und N4_7 verbunden. Die Source-Anschlüsse der Transistor-Paare N6_1, N6_2 bzw. N6_3, N6_4 sind mit den Drain-Anschlüssen der Transistoren N5_2 und N5_3 bzw. N5_4 und N5_5 verbunden. Die Source-Anschlüsse der Transistoren N7_1 und N7_2 sind mit den Drain-Anschlüssen der Transistoren N6_2 und N6_3 verbunden. Der Knoten K2 ist mit den Drain-Anschlüssen der Transistoren N7_2, N6_4, N5_6 und N4_8 verbunden, und der Knoten K3 steht mit den Drain-Anschlüssen der Transistoren N4_1, N5_1, N6_1 und N7_1 in Verbindung. Auch hier gilt, dass die Transistoren Ni_j mit einem geraden Index j invertiert angesteuert werden, während Transistoren mit einem ungeraden Index j nichtinvertiert angesteuert werden.
  • Die Schaltung gemäß der 4 und 8 bis 10 kann je nach Ausführung der Treiberschaltung TR auf zwei unterschiedliche Weisen betrieben werden. Bei einer ersten Betriebsform, welche mit dem Begriff „dynamische Schaltungstechnik" umrissen wird, ist die Treiberschaltung TR als Aufladeschaltung ausgeführt, welche vor einem Rechenvorgang die beiden Knoten K2 und K3 auf Betriebsspannung vdd lädt. Damit werden beide Ausgänge S, NS bzw C1, NC1 bzw. C2, NC2 auf vdd vorgeladen. In dieser Vorladephase müssen die Mehrtransistorschaltungen MS, MC1, MC2 so angesteuert werden, dass sie hochohmig sind, d.h. die Ausgänge gegen vss isolieren.
  • Nach dem Aufladen der Knoten K2, K3 wird die Treiberschaltung TR hochohmig geschaltet, d.h. die Knoten K2 und K3 werden von vdd getrennt.
  • In einem nächsten Schritt werden die Transistoren der Mehrtransistorschaltungen MS, MC1, MC2 über die Eingänge I0/NI0, ..., I6/NI6 angesteuert, wodurch entsprechend der Bit-Belegung der Eingänge I0/NI0, ..., I6/NI6 partielle bzw. selektive Entladungspfade durch die Mehrtransistorschaltungen MS, MC1, MC2 ausgebildet werden. Diese bewirken die Signalerzeugung an dem Summen-Ausgang S und den Übertrags-Ausgängen C1 und C2 sowie an den entsprechenden invertierten Ausgängen NS, NC1 und NC2 innerhalb eines Entladezyklus.
  • Die beschriebene Vorgehensweise gemäß der dynamischen Schaltungstechnik weist einen minimalen Leistungsbedarf und kurze Signallaufzeiten auf.
  • Eine zweite Betriebsform der in den 4 und 8 bis 10 gezeigten Schaltung besteht darin, einen zeitlich dauerhaften Stromfluss durch die Schaltung vorzusehen. Die Treiberschaltung TR dient in diesem Fall als Vorwiderstand, welcher kleiner als der Widerstand der jeweiligen Mehrtransistorschaltung MS bzw. MC1 bzw. MC2 im sperrenden Zustand sein muss. Bei dieser Variante können ebenfalls kurze Signallaufzeiten erreicht werden, es tritt allerdings eine höhere Leistungsaufnahme als bei der ersten Variante auf. Vorteilhaft gegenüber der ersten Variante ist jedoch die Tatsache, dass kurzzeitige Spannungsverluste an Eingängen I0/NI0, ..., I6/NI6 während eines Rechenvorgangs kompensiert werden können, während dies bei der erstgenannten Variante (dynamischen Schaltungstechnik) aufgrund der dort auftretenden irreversiblen Entladevorgänge nicht möglich ist. Diese bei der zweiten Variante gegebene Möglichkeit der „Berichtigung" eines durch Störungen bzw. Spannungsabfälle verfälschten Berechnungsergebnisses innerhalb eines Rechenzyklus kann einen Vorteil der zweiten Variante gegenüber der aufgrund der transienten Entladeströme leistungsaufnahmeärmeren ersten Variante darstellen.
  • Sofern eine größere Anzahl von Bits gleicher Wertigkeit zu addieren sind, kann der 7-zu-3 CS Addierer in ähnlicher Weise wie der 3-zu-2 CS Addierer in einem Wallace-Tree (siehe 1) kaskadiert werden. 11 zeigt einen Ausschnitt eines Schaltungsbeispiels für einen übertragserhaltenden Addierer, welcher aus einem Array aus 7-zu-3 CS Addierern aufgebaut ist. Der in 11 dargestellte Addiererausschnitt ermöglicht die Addition von 15 Dualzahlen Z1, Z2, ..., Z15 mit jeweils fünf Dualstellen unterschiedlicher Wertigkeit. Die Bits gleicher Wertigkeit der Dualzahlen Z1, Z2, ..., Z15 sind in den Spalten S0, S1, ..., S4 eingetragen. Jede Spalte S0, S1, ..., S4 enthält also einen Bit-Satz bestehend aus 15 Bits derselben Wertigkeit.
  • Unterhalb jeder Spalte S0 bis S4 sind die zugehörigen Bit-Satz-Addierer dargestellt. Jeder Bit-Satz-Addierer umfasst in dem dargestellten Addiererausschnitt jeweils drei 7-zu-3 CS Addierer. Die zur Addition des Bit-Satzes der Spalte S0 vorgesehenen 7-zu-3 CS Addierer sind mit B0.1, B0.2, B0.3 bezeichnet, und in analoger Notation sind die den Spalten S1 bis S4 zugeordneten Addiererblöcke mit B1.1, B1.2, B1.3; B2.1, B2.2, B2.3; B3.1, B3.2, B3.3 und B4.1, B4.2, B4.3 bezeichnet.
  • Von den 15 Bits einer jeden Spalte n, n = 0, 1, ..., 4, werden 7 Bits den Eingängen i0, i1, ..., i6 des ersten 7-zu-3 CS Addierers Bn.1 zugeleitet, weitere vier Bits werden vier Addierer-Eingängen (hier bezeichnet als i7, i8, i9, i10) des 7-zu-3 CS Addierers Bn.2 der zweiten Stufe zugeleitet, und die letzten vier Bits eines Bit-Satzes werden jeweils vier Eingängen (hier mit dem Bezugszeichen i11, i12, i13, i14 bezeichnet) des 7-zu-3 CS Addierers Bn.3 der dritten Stufe zugeführt.
  • Zur Berücksichtigung der Überträge sind 7-zu-3 CS Addierer benachbarter Stufen diagonal verschaltet. So ist der Übertrags-Ausgang c1 des 7-zu-3 CS Addierers B0.1 (welcher der ersten Stufe angehört) mit einem Eingang des in der zweiten Addiererstufe angeordneten 7-zu-3 CS Addierers B1.2 nächst höherer Wertigkeit verschaltet. Der Übertrags-Ausgang c2 des 7-zu-3 CS Addierers B0.1 ist mit einem Eingang des 7-zu-3 Addiererblocks B2.2 verbunden. Der 7-zu-3 CS Addierer B2.2 gehört ebenfalls der zweiten Addiererstufe an, ist jedoch der Spalte S2 zugeordnet, d.h. addiert Bits einer um den Faktor 2 höheren Wertigkeit als der 7-zu-3 CS Addierer B1.2.
  • Dieses Prinzip der zweifachen Diagonalverschaltung zwischen benachbarten Stufen unter Berücksichtigung von zwei Überträgen unterschiedlicher Wertigkeit spiegelt sich auch bei der Verschaltung der 7-zu-3 CS Addierer der zweiten und der dritten Stufe wieder. An den Ausgängen s, c1, c2 der 7-zu-3 CS Addierer Bn.3 der dritten Stufe werden jeweils das Summen-Bit s und die beiden Übertrags-Bits c1, c2 unterschiedlicher Wertigkeit ausgegeben. Allgemein ergibt sich die Regel, dass ein 7-zu-3 CS Addierer Bn.m der n-ten Spalte und m-ten Stufe des Arrays eingangsseitig mit dem Übertrags-Ausgang c1 des 7-zu-3 CS Addierers B(n-1).(m-1) und mit dem Übertrags-Ausgang c2 des 7-zu-3 CS Addierers B(n-2).(m-1) verschaltet ist.
  • Sofern der übertragserhaltende Addierer für die Addition von mehr als 15 Dualzahlen ausgelegt sein soll, kann sich die in 11 veranschaulichte Stufenstruktur zu höheren Stufen hin fortsetzen. Andernfalls können in abschlieflenden 3-Bit-Addierern (nicht dargestellt) die jeweiligen Spalten-Summen aus dem Summen-Bit s, dem Übertrags-Bit c1 der nächst niedrigeren Wertigkeit und dem Übertrags-Bit c2 der übernächst niedrigeren Wertigkeit ermittelt und ausgegeben werden.
  • Die Rechenzeit eines einzelnen 7-zu-3 Addierers ist implementierungsabhängig. Ohne die konkrete Gatter-Implementierung eines 7-zu-3 CS Addierer betrachten zu müssen (hierfür sind wie durch die Ausführungsbeispiele angedeutet eine Reihe verschiedener Möglichkeiten vorhanden), ergibt sich eine Verkürzung der Gesamt-Rechenzeit bereits aus der Tatsache, dass in jeder Stufe und jedem 7-zu-3 CS Addierer der Stufe stets zwei Überträge unterschiedlicher Wertigkeit gleichzeitig erzeugt werden. Dies entspricht einer inhärenten Teil-Parallelisierung des Rechenablaufs, da eine stufenweise strikt sequentielle Ermittlung von einzelnen Überträgen durch eine stufenweise paarweise Übertragsermittlung ersetzt wird. Im Zusammenhang mit der Tatsache, dass ein 7-zu-3 CS Addierer mit zwei Übertrags-Bits unterschiedlicher Wertigkeit den Wertebereich seines Ausgangs vollständig ausschöpft, begründet dies die besondere Eignung des 7-zu-3 CS Addierers als Basiselement in Addierer-Kaskaden vielfältiger Bauart.
  • 12 zeigt eine schematische Darstellung eines 64x64 Bit Multiplizierers. Der Multiplizierer basiert auf der Addition der Partialprodukte, welche sich bei der Multiplikation eines Multiplikants M1 mit jeweils einer bestimmten Stelle eines Multiplikators M2 ergeben. Die Partialprodukte P1, P2, ..., P32 sind in 12 jeweils um zwei Stellen versetzt zueinander dargestellt. Der Multiplikator M2 ist dabei nach dem Booth-Algorithmus codiert, bei welchem die Bits des Multiplikators M2 in Paaren zusammengefaßt sind. Der Vorteil des Booth-Algorithmus besteht bekanntermaßen darin, dass sich durch die Codierung des Multiplikators M2 die Anzahl der benötigten Addiererstufen zur Addition der Partialsummen halbiert. Die maximale Anzahl der zu addierenden Bits beträgt 33 Bits. Das 33. Bit ist ein Korrektur-Bit, das bei der eventuellen Subtraktion einer Dualzahl im Zweierkomplement hinzuaddiert werden muß (das Zweierkomplement einer Dualzahl ergibt sich bekanntermaßen durch Negation aller Stellen und Addition des Korrektur-Bits 1).
  • 13 veranschaulicht in schematischer Weise die Stufenstruktur eines herkömmlichen WT-Addierers mit 3-zu-2 CS Addierern zur Addition von 33 Bits gleicher Wertigkeit. In der Darstellung sind die Eingangs-Bits einer jeden Stufe als Kästchen-Säule dargestellt. Jedes Kästchen entspricht einem Eingabe-Bit. Schraffiert dargestellte Eingabe-Bits werden nicht in der entsprechenden Stufe verarbeitet sondern direkt der nächsten Stufe zugeleitet. Da ein WT-Addierer in jeder Stufe Übertrags-Bits von einem benachbarten (nicht dargestellten) WT-Addierer nächst kleinerer Wertigkeit entgegennimmt und gleichermaßen Übertrags-Bits für einen (nicht dargestellten) WT-Addierer nächst höherer Wertigkeit ausgibt, – siehe 1 – ist 13 nicht als Schaltbild, sondern allein als Stufenbilanz-Darstellung zu verstehen.
  • 13 macht deutlich, dass insgesamt neun Stufen zur Addition der 33 Bits benötigt werden. Die erste Stufe weist 11 3-zu-2 CS Volladdierer auf und die nachfolgenden 7 Stufen enthalten 7, 5, 3, 2, 1, 1, 1 3-zu-2 CS Volladdierer. Die letzte Stufe enthält einen 3-zu-2 Volladdierer, der als 2-Bit Carry-Ripple (CR) Addierer ausgeführt ist, das heißt ein Übertrags-Bit von einem 3-zu-2 CR Addierer der letzten Stufe des benachbarten Bit-Satz-Addierers (nicht dargestellt) empfängt.
  • Der in der letzten Stufe des Bit-Satz-Addierers (Addiererbaums) eingesetzte 3-zu-2 CR Addierer unterscheidet sich von den 3-zu-2 CS Addierern des WT-Addierers dadurch, dass einer seiner drei Eingänge speziell für das CR Übertrags-Bit vorgesehenen und zeitlich optimiert ist. Der Grund hierfür besteht darin, dass das CR Übertrags-Bit sequentiell sämtliche Addierer der Ausgabestufe des Addiererbaums (d.h. durch die CR 3-zu-2 Addierer) hindurch prozessiert werden muß und daher die Rechengeschwindigkeit des gesamten Addiererbaums limitiert. Die logische Funktionalität von CS und CR Addierern ist indes dieselbe.
  • 14 zeigt ein der 13 entsprechendes Stufendiagramm eines erfindungsgemäßen Bit-Satz-Addierers zum Addieren von 33 Bits gleicher Wertigkeit. Im Gegensatz zu 13 weist der erfindungsgemäße Bit-Satz-Addierer lediglich 5 Stufen auf. Die ersten drei Stufen umfassen 5, 2 und 1 7-zu-3 CS Addierer. Die 4. Stufe besteht aus einem 3-zu-2 CS Addierer. Die letzte (5.) Stufe ist wiederum als 3-zu-2 CR Addierer aufgebaut.
  • Aus den 13 und 14 wird deutlich, dass durch die Verwendung von 7-zu-3 CS Addierern die Anzahl der Stufen in einem Bit-Satz-Addierer (d.h. einem Addierer, der Bits gleicher Wertigkeit summiert) im Vergleich zum herkömmlichen Aufbau deutlich verringert werden kann.

Claims (12)

  1. Carry-Save Addierer zum Summieren von Bits gleicher Wertigkeit, mit – 7 Eingängen (i0, i1, ..., i6) zur Entgegennahme von 7 zu summierenden Bits jeweils gleicher Wertigkeit w und – einem Ausgang (s) für ein Summen-Bit der Wertigkeit w sowie zwei Ausgänge (c1, c2) für zwei Übertrags-Bits der Wertigkeiten 2w und 4w, dadurch gekennzeichnet, dass der Carry-Save Addierer aus drei parallel zueinander angeordneten, unabhängig voneinander arbeitenden Addierersubblöcken aufgebaut ist, wobei ein erster Addierersubblock (ADD-S) das Summen-Bit (s) erzeugt, ein zweiter Addierersubblock (ADD-C1) das Übertrags-Bit (c1) der Wertigkeit 2w erzeugt und der dritte Addierersubblock (ADD-C2) das Übertrags-Bit (c2) der Wertigkeit 4w erzeugt.
  2. Carry-Save Addierer nach Anspruch 1, dadurch gekennzeichnet, – dass wenigstens ein und insbesondere jeder Addierersubblock (ADD-S, ADD-C1, ADD-C2) aus Logikgattern aufgebaut ist.
  3. Carry-Save Addierer nach Anspruch 2, dadurch gekennzeichnet, – dass der und insbesondere jeder Addierersubblock (ADD-S, ADD-C1, ADD-C2) aus maximal drei hintereinander geschalteten Logiggatterstufen realisiert ist.
  4. Carry-Save Addierer nach Anspruch 1, dadurch gekennzeichnet, – dass ein und insbesondere jeder Addierersubblock (ADD-S, ADD-C1, ADD-C2) aus einer Mehrtransistorschaltung besteht, welche nicht in Logikgatter auflösbar ist.
  5. Carry-Save Addierer nach Anspruch 4, dadurch gekennzeichnet, – dass in der Mehrtransistorschaltung (MS), die den Addierersubblock (ADD-S) zur Berechnung des Summen-Bits bildet, jeder Eingang (I0/NI0, ..., I6/NI6) vier Transistoren (Ni_j) ansteuert.
  6. Carry-Save Addierer nach Anspruch 4, dadurch gekennzeichnet, – dass in der Mehrtransistorschaltung (MC1), die den Addierersubblock (ADD-C1) zur Berechnung des Übertrags-Bits der Wertigkeit 2w bildet, ein erster Eingang (I0/NI0) zwei Transistoren, ein zweiter (I1/NI1) und ein dritter (I6/NI6) Eingang jeweils vier Transistoren, ein vierter Eingang (I2/NI2) sechs Transistoren und ein fünfter (I3/NI3), ein sechster (I4/NI4) und ein siebter (I5/NI5) Eingang jeweils 8 Transistoren ansteuern.
  7. Carry-Save Addierer nach Anspruch 4, dadurch gekennzeichnet, – dass in der Mehrtransistorschaltung (MC2), die den Addierersubblock (ADD-C2) zur Berechnung des Übertrags-Bits der Wertigkeit 4w bildet, ein erster (I0/NI0) und ein zweiter (I6/NI6) Eingang jeweils zwei Transistoren, ein zweiter (I1/NI1) und ein dritter (I5/NI5) Eingang jeweils vier Transistoren, ein fünfter (I2/NI2) und ein sechster (I4/NI4) Eingang jeweils 6 Transistoren und ein siebter Eingang (I3/NI3) acht Transistoren ansteuern.
  8. Carry-Save Addierer nach einem der Ansprüche 4 bis 7, gekennzeichnet durch – eine Aufladeschaltung (TR), die mit der Mehrtransistorschaltung (MS; MC1; MC2) derart verbunden ist, dass sie über diese in Abhängigkeit von den an den Eingängen des Addierers anliegenden Bits entladen wird.
  9. Übertragserhaltender Addierer zum Summieren einer Mehrzahl von Bit-Sätzen, wobei die in einem Bit-Satz (S0, ..., S4) enthaltenen Bits dieselbe Wertigkeit und Bits unterschied licher Bit-Sätze (S0, ..., S4) unterschiedliche Wertigkeiten aufweisen, und wobei jedem Bit-Satz. ein Bit-Satz-Addierer zugeordnet ist, welcher unter Berücksichtigung von bei der Summation von Bit-Sätzen niedrigerer Wertigkeit gewonnenen Überträgen ein Bit der Wertigkeit des jeweiligen Bit-Satzes berechnet, dadurch gekennzeichnet, – dass zumindest ein Bit-Satz-Addierer wenigstens einen Carry-Save 7-zu-3 Addierer (B0.1-3, B1.1-3, B2.1-3) mit – 7 Eingängen (i0, i1, ..., i6) für die Eingabe von 7 zu summierenden Bits jeweils der Wertigkeit w, und – einem Ausgang (s) für ein Summen-Bit der Wertigkeit w und zwei Ausgängen (c1, c2) für zwei Übertrags-Bits der Wertigkeiten 2w und 4w umfasst, und – dass der Carry-Save Addierer aus drei parallel zueinander angeordneten, unabhängig voneinander arbeitenden Addierersubblöcken aufgebaut ist, wobei ein erster Addierersubblock (ADD-S) das Summen-Bit (s) erzeugt, ein zweiter Addierersubblock (ADD-C1) das Übertrags-Bit (c1) der Wertigkeit 2w erzeugt und der dritte Addierersubblock (ADD-C2) das Übertrags-Bit (c2) der Wertigkeit 4w erzeugt.
  10. Übertragserhaltender Addierer nach Anspruch 9, dadurch gekennzeichnet, – dass bei dem 7-zu-3 Carry-Save Addierer (B0.1-3, B1.1-3, B2.1-3) 2 der 7 Eingänge als Eingänge für Übertrags-Bits genutzt werden.
  11. Übertragserhaltender Addierer nach Anspruch 10, dadurch gekennzeichnet, – dass mehrere Stufen mehrerer benachbarter Bit-Satz-Addierer aus einem Array von 7-zu-3 Carry-Save Addierern (B0.1-3, B1.1-3, B2.1-3) aufgebaut sind.
  12. Übertragserhaltender Addierer nach Anspruch 9 bis 11, dadurch gekennzeichnet – dass der Addierer in einem Multiplizierer zur Summation von Partialsummen (P1, P2, ..., P32) ausgebildet ist.
DE10130484A 2001-03-01 2001-06-25 7-zu-3 Bit Carry-Save Addierer und Addierer damit Expired - Fee Related DE10130484B4 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE10130484A DE10130484B4 (de) 2001-03-01 2001-06-25 7-zu-3 Bit Carry-Save Addierer und Addierer damit
PCT/DE2002/000656 WO2002071203A2 (de) 2001-03-01 2002-02-22 7-zu-3 bit carry-save addierer

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
DE10109966.5 2001-03-01
DE10109966 2001-03-01
DE10130484A DE10130484B4 (de) 2001-03-01 2001-06-25 7-zu-3 Bit Carry-Save Addierer und Addierer damit

Publications (2)

Publication Number Publication Date
DE10130484A1 DE10130484A1 (de) 2002-09-19
DE10130484B4 true DE10130484B4 (de) 2005-08-18

Family

ID=7675994

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10130484A Expired - Fee Related DE10130484B4 (de) 2001-03-01 2001-06-25 7-zu-3 Bit Carry-Save Addierer und Addierer damit

Country Status (1)

Country Link
DE (1) DE10130484B4 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10307942B3 (de) * 2003-02-25 2004-03-11 Infineon Technologies Ag Halbaddierer
DE10347077B4 (de) * 2003-10-10 2012-11-29 Infineon Technologies Ag Multibit-Bit-Addierer

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5504915A (en) * 1993-08-05 1996-04-02 Hyundai Electronics America Modified Wallace-Tree adder for high-speed binary multiplier, structure and method
DE69228961T2 (de) * 1991-05-17 1999-12-09 Advanced Micro Devices, Inc. 7-zu-3-Zählerschaltung

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69228961T2 (de) * 1991-05-17 1999-12-09 Advanced Micro Devices, Inc. 7-zu-3-Zählerschaltung
US5504915A (en) * 1993-08-05 1996-04-02 Hyundai Electronics America Modified Wallace-Tree adder for high-speed binary multiplier, structure and method

Also Published As

Publication number Publication date
DE10130484A1 (de) 2002-09-19

Similar Documents

Publication Publication Date Title
DE69731700T2 (de) Arithmetischer Schaltkreis und arithmetisches Verfahren
DE69130652T2 (de) Digitaler paralleler Hochgeschwindigkeitsmultiplizierer
DE3853805T2 (de) Digitaler Multiplizierer und Multiplizierer-Akkumulator, welcher Zwischenergebnisse vorlädt und akkumuliert.
EP0123921B1 (de) Parallelverknüpfungsschaltung mit verkürztem Übertragsdurchlauf
DE3901995C2 (de)
DE3686681T2 (de) Parallelmultiplizierer.
DE3927009A1 (de) Addierschaltung
EP0209014B1 (de) Anordnung mit einem sättigbaren Carry-Save-Addierer
EP0051079B1 (de) Binäres MOS-Ripple-Carry-Parallel-Addier/Subtrahierwerk und dafür geeignete Addier/Subtrahierstufe
DE69025182T2 (de) Digitaler prozessor für zweierkomplementberechnungen
DE3940897A1 (de) Schaltungsanordnung und verfahren zur berechnung digitaler summen in einem halbleiteraddierer mit paralleluebertrag
EP0352549B1 (de) Carry-select-Addierer
DE69026414T2 (de) Binäres Addiergerät
EP0130397B1 (de) Digitales Rechenwerk
DE10130484B4 (de) 7-zu-3 Bit Carry-Save Addierer und Addierer damit
DE2750212A1 (de) Einrichtung zur bildung und akkumulation von produkten
EP0224656B1 (de) Mehrstelliger Carry-Ripple-Addierer in CMOS-Technik mit zwei Typen von Addiererzellen
DE10117041C1 (de) Carry-Ripple Addierer
DE3524797A1 (de) Anordnung zur bitparallelen addition von binaerzahlen
DE10305849B3 (de) Carry-Ripple Addierer
DE2017132A1 (de) Binarer Parallel Addierer
DE3326388C2 (de)
EP0424410B1 (de) Multiplizierer
DE19711005C2 (de) Baumschaltung zur Addition von Teilprodukten im Booth-Algorithmus
EP0752130B1 (de) Multiplizierer mit geringer laufzeit

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8364 No opposition during term of opposition
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee