DE4409834C2 - Multiplizierschaltung - Google Patents

Multiplizierschaltung

Info

Publication number
DE4409834C2
DE4409834C2 DE4409834A DE4409834A DE4409834C2 DE 4409834 C2 DE4409834 C2 DE 4409834C2 DE 4409834 A DE4409834 A DE 4409834A DE 4409834 A DE4409834 A DE 4409834A DE 4409834 C2 DE4409834 C2 DE 4409834C2
Authority
DE
Germany
Prior art keywords
adder
output
multiplier
digit
bit
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
DE4409834A
Other languages
English (en)
Other versions
DE4409834A1 (de
Inventor
Michio Komoda
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to DE4447781A priority Critical patent/DE4447781B4/de
Publication of DE4409834A1 publication Critical patent/DE4409834A1/de
Application granted granted Critical
Publication of DE4409834C2 publication Critical patent/DE4409834C2/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/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • G06F7/53Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel
    • G06F7/5306Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel with row wise addition of partial products
    • G06F7/5312Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel with row wise addition of partial products using carry save adders
    • 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/52Multiplying; Dividing
    • G06F7/535Dividing only
    • 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/499Denomination or exception handling, e.g. rounding or overflow
    • G06F7/49942Significance control
    • G06F7/49947Rounding
    • G06F7/49963Rounding to nearest
    • 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/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • G06F7/533Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even
    • G06F7/5334Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even by using multiple bit scanning, i.e. by decoding groups of successive multiplier bits in order to select an appropriate precalculated multiple of the multiplicand as a partial product
    • G06F7/5336Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even by using multiple bit scanning, i.e. by decoding groups of successive multiplier bits in order to select an appropriate precalculated multiple of the multiplicand as a partial product overlapped, i.e. with successive bitgroups sharing one or more bits being recoded into signed digit representation, e.g. using the Modified Booth Algorithm
    • G06F7/5338Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even by using multiple bit scanning, i.e. by decoding groups of successive multiplier bits in order to select an appropriate precalculated multiple of the multiplicand as a partial product overlapped, i.e. with successive bitgroups sharing one or more bits being recoded into signed digit representation, e.g. using the Modified Booth Algorithm each bitgroup having two new bits, e.g. 2nd order MBA

Landscapes

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

Description

Die vorliegende Erfindung bezieht sich auf eine Multiplizier­ schaltung nach dem Oberbegriff des Anspruchs 1.
Fig. 13 und 14 sind Schaltbilder, die jeweils eine Teilstruk­ tur einer herkömmlichen Multiplizierschaltung 100 zeigen. In Kom­ bination zeigen die Fig. 21 und 22 die gesamte Struktur der Multiplizierschaltung 100.
Ein Multiplikand 1a (= A3 A2 A1 A0) und ein Multiplikator 1b (= B3 B2 B1 B0), die an die Multiplizierschaltung 100 gegeben wer­ den, sind jeweils in binären 4 Bits ausgedrückt. Der Multiplikand 1a und der Multiplikator 1b werden in einem carry-save-Multipli­ zierteil 30 zum Erhalt eines ersten Multiplikationsergebnisses 4 (= P'7 P'6 P'5 P'4 P'3 P'2 P'1 P'0) multipliziert. Das sechsthöch­ ste Bit (sechstsignifikante Bit) des Multiplikationsergebnisses 4 wird in einer Bruchzahlrundungsschaltung 5 gerundet, wobei ein zweites binäres 5-Bit Multiplikationsergebnis 2 (= P7 P6 P5 P4 P3) erhalten wird.
In der verwendeten Darstellung stellt der Index i der Daten (= 0, 1, 2, 3) die Stelle von 2i dar. "Runden" bedeutet, eine ge­ rundete Zahl zu berechnen, und entspricht dem Runden der Bruch­ zahlen in dem Dezimalsystem.
Der Multiplizierteil 30 wird durch ein Erzeugungsteil 30a für Teilprodukte und einen Additionsverarbeitungsteil 30b gebildet. Der Erzeugungsteil 30a für Teilprodukte erzeugt eine Teilprodukt­ gruppe 6 aus dem Multiplikanden 1a und dem Multiplikator 1b. Der Additionsverarbeitungsteil 30b führt eine Übertragungsspar- bzw. Übertragssicherung-Addition (carry-save Addition) unter Verwen­ dung der Halbaddierer (Einziffer-Addierglieder) 7a bis 7c, der Volladdierer (Addierglieder) 8a bis 8f und eines Hochgeschwindig­ keitsaddierers 9 mit Parallelübertrag aus, wobei die Ziffern bzw. Stellen der Teilproduktgruppe 6 ausgerichtet werden. Das gestri­ chelte Gitter in dem Additionsverarbeitungsteil 30b stellt dar, wie die Stellen ausgerichtet werden, und stellt die Stufen, in denen eine Addition ausgeführt wird, dar.
Mit einer Struktur wie oben benötigt die herkömmliche Multipli­ zierschaltung eine Rundungsschaltung, was in einem Anstieg der Anzahl von Verarbeitungsstufen, einer größeren Schaltungsgröße und einer verzögerten Betriebsgeschwindigkeit resultiert.
Aus der DE 39 09 713 A1 ist eine Multiplizierschaltung nach dem Oberbegriff des Anspruches 1 bekannt. Aus der DE 39 01 995 A1 ist eine Manipulation von logischen Bausteinen bei einer Zwi­ schenproduktaddition bekannt.
Es ist Aufgabe der vorliegenden Erfindung, eine Multiplizier­ schaltung, die nur eine kleine Schaltungsgröße benötigt und ein Runden bei hoher Geschwindigkeit ausführen kann, anzugeben.
Diese Aufgabe wird gelöst durch eine Multiplizierschaltung nach Anspruch 1.
Weiterbildungen der Erfindung sind in den Unteransprüchen ge­ kennzeichnet.
Speziell bei der Multiplizierschaltung, die das carry-save-Verfahren verwendet, ist der Ausbreitungsweg der Übertragung bzw. Übertragsübertragung verkürzt, und die Be­ triebsgeschwindigkeit wird erhöht.
Bei der Multiplizierschaltung, die das Wallace-Baum-Multiplikationsverfahren verwendet, wird eine gerin­ gere Anzahl von Additionsverarbeitungsteilen als bei der Multi­ plizierschaltung des ersten Aspektes benötigt.
Bei der Multiplizierschaltung, die den Booth-Algorithmus verwendet ist es möglich, eine Berechnung aus­ zuführen, ohne negative Zahlen, die als ein Komplement von 2 aus­ gedrückt sind, zu korrigieren.
Es folgt die Beschreibung von Ausführungsbeispielen anhand der Figu­ ren.
Von den Figuren zeigen:
Fig. 1 bis 8 Schaltdiagramme zur Erläuterung einer ersten bevorzugten Ausführungsform;
Fig. 9 ein Schaltbild zur Erläuterung einer zweiten bevorzugten Ausführungsform;
Fig. 10 bis 12 Schaltbilder zur Erläuterung einer dritten bevorzugten Ausführungsform; und
Fig. 13 und 14 Schaltbilder zur Erläuterung einer herkömmli­ chen Technik.
A. Multiplizierschaltung:
(A-0) Grundlegende Idee:
Vor der detaillierten Beschreibung der vorliegenden Erfindung, soll die grundlegende Idee der vorliegenden Erfindung erläutert werden. Es wird angenommen, daß 4-Bit Ganzzahlen (Integer) zu multiplizieren sind, und daß das Multiplizierungsergebnis zu runden ist, um die fünf signifikantesten Bits zu belassen. Das ist erreichbar, in dem das Multiplikationsergebnis belassen wird wie es ist, falls das sechsthöchste bzw. sechstsignifikanteste Bit (Stelle von 22) "0" ist, und indem "1" zu dem fünfthöchsten bzw. fünftsignifikantesten Bit (Stelle von 23) des Multiplika­ tionsergebnisses addiert wird, falls das sechsthöchste Bit "1" ist. Diese Berechnung wird herkömmlicherweise aufgeführt, nachdem das gesamte Multiplikationsergebnis berechnet ist.
Die vorliegende Erfindung jedoch, unter Berücksichtigung der Tat­ sache, daß der Vorgang des Berechnens des gesamten Multiplika­ tionsergebnisses in einen Vorgang des Berechnens von Teilproduk­ ten und einen Vorgang des Aufaddierens der Teilprodukte teilbar ist, verlangt die Ausführung des Rundens vor der Berechnung des gesamten Multiplikationsergebnisses.
In dem oben beschriebenen Beispiel des Rundens, "Belassen des Multiplikationsergebnisses wie es ist, falls das sechsthöchste Bit (Stelle von 22)'0' ist, und Addieren von '1' zu dem fünfthöchsten Bit (Stelle von 23) des Multiplikationsergebnisses, falls das sechsthöchste Bit '1' ist", ist gleich zu" "Addieren von '1' zu dem sechsthöchsten Bit (Stelle von 22) des Multiplikationsergebnisses". In anderen Worten, durch Berechnen von (Multiplikand) × (Multiplikator) + 100 in dem Binärsystem und durch Weglassen der Stellen von 22 und niedriger wird ein Berechnungsergebnis erhalten, das an dem sechsthöchsten bzw. sechstsignifikantesten Bit (Stelle von 22) abgerundet ist. Im folgenden wird "1", das neu zu dem sechsthöchsten Bit addiert wird, als eine "Hilfszahl" bezeichnet.
Das heißt, "Runden einer bestimmten Stelle, die zu runden ist, um einen Wert für eine Stelle zu erhalten, die nicht niedriger als die bestimmte Stelle ist" ist gleich zu "Addieren einer Hilfszahl zu einer Stelle, die eine Stelle niedriger als die bestimmte Stelle ist". Andererseits wird, wie bei einer Addition, dasselbe Additionsergebnis erhalten, selbst falls die Abfolge der Additionsvorgänge geändert wird. Daher wird kein Problem auftre­ ten, falls der Vorgang des Addierens der Hilfszahl während eines Vorgangs des Aufaddierens von Teilprodukten ausgeführt wird.
Die vorliegende Erfindung wurde unter Berücksichtigung dieses Punktes gemacht. Dementsprechend wird ein Halbaddierer, der ex­ klusiv eine Funktion des Addierens einer Hilfszahl aufweist, für eine Stelle (Ziffer) vorgesehen, die eine Stelle niedriger als die bestimmte Stelle ist.
(A-1) Erste bevorzugte Ausführungsform:
Die Fig. 1 und 2 sind Schaltbilder, die jeweils einen Teil der Struktur einer Multiplizierschaltung 101 entsprechend einer Aus­ führungsform zeigen. In Kombination zeigen die Fig. 1 und 2 die gesamte Struktur der Multiplizierschaltung 101.
Ein Multiplikand 1a (= A3 A2 A1 A0) und ein Multiplikator 1b (= B3 B2 B1 B0), die jeweils durch binäre 4-Bit ausgedrückt sind, werden in die Multiplizierschaltung 101 eingegeben. Das sechsthöchste bzw. sechstsignifikanteste Bit wird gerundet, so daß ein binäres 5-Bit Multiplikationsergebnis 2 (= P7 P6 P5 P4 P3) erhalten wird.
Die Multiplizierschaltung 101 weist einen Übertragssicherung- Additionsteil 31 auf. Darum wird direkt aus dem Multiplikanden 1a und dem Multiplikator 1b, d. h. ohne Verwendung einer Rundungs­ schaltung, die außerhalb der Multiplizierschaltung 101 vorgesehen ist, durch Runden des sechsthöchsten Bit das Multiplikations­ ergebnis 2 erhältlich.
Der Additionsteil 31 wird durch ein Erzeugungsteil 31a für Teil­ produkte und einen Additionsverarbeitungsteil 31b gebildet. Der Erzeugungsteil 31a für Teilprodukte erzeugt eine Teilprodukt­ gruppe 6 (die durch Teilprodukte Cij (0 ≦ i, j ≦ 3) gebildet wird) aus dem Multiplikanden 1a und dem Multiplikator 1b, und weist dieselbe Struktur wie der herkömmliche Erzeugungsteil 30a für Teilprodukte auf. Der Erzeugungsteil 31a für Teilprodukte wird durch 16 (= 4 × 4) UND-Gatter gebildet, deren Ausgaben die Teilproduktgruppe 6 bilden. Zum Beispiel stellt ein Teilprodukt C30 das Produkt des signifikantesten Bits A3 des Multiplikanden 1a und des am wenigsten signifikanten (niedrigwertigsten) Bits B0 des Multiplikators 1b dar.
In dem Additionsverarbeitungsteil 31b, welcher die Teilprodukt­ gruppe 6 empfängt, wird eine Ausrichtung der Stellen ausgeführt, und die Stufen, in welchen eine Addition ausgeführt wird, sind angepaßt, wie durch das gepunktete Gitter dargestellt. In der folgenden Beschreibung werden die Additionsverarbeitungsstufen durch die Zahl der Stufen, die von der obersten Stufe gezählt werden, bezeichnet. In der ersten Stufe werden Halbaddierer 7a und 7c, die durch den eingekreisten Buchstaben "h" bezeichnet sind, und ein rundender Halbaddierer 13, der durch das einge­ kreiste Symbol "h+" bezeichnet ist, vorgesehen. In der zweiten Stufe werden Volladdierer 8a, 8b und 8c, die durch den eingekrei­ sten Buchstaben "f" bezeichnet sind, vorgesehen. In der dritten Stufe werden Volladdierer 8d, 8e und 8f, die durch den eingekrei­ sten Buchstaben "f" bezeichnet sind, vorgesehen. In der vierten, oder der letzten Stufe, wird ein 3-Bit Addierer 9 mit Parallel­ übertrag vorgesehen.
In der ersten Stufe wird das Teilprodukt C00 (= A0 B0) nicht durch irgendeine Berechnung verarbeitet. Der Halbaddierer 7c empfängt das Teilprodukt C10 (=A1 B0) und das Teilprodukt C01 (= A0 B1) und addiert die zwei in ein 2-Bit Resultat. Die führende Stelle die­ ser Ausgabe (d. h. das höhere Bit) wird an den Volladdierer 8c der zweiten Stufe gegeben. Der rundende Halbaddierer 13 empfängt das Teilprodukt C11 (= A1 B1) und das Teilprodukt C20 (= A2 B0) und addiert diese zwei Teilprodukte und 1 und gibt ein 2-Bit Resultat aus. Das höhere Bit dieser Ausgabe wird an den Volladdierer 8b der zweiten Stufe gegeben, während das niedrigere Bit dieser Aus­ gabe an den Volladdierer 8c der zweiten Stufe gegeben wird. Der Halbaddierer 7a empfängt das Teilprodukt C21 (= A2 B1) und das Teilprodukt C30 (= A3 B0). Das höhere Bit und das niedrigere Bit der Summe von diesen zwei Teilprodukten wird an die Volladdierer 8a bzw. 8b der zweiten Stufe gegeben.
In der zweiten Stufe empfängt der Volladdierer 8a weiter das Teilprodukt C22 (= A2 B2) und das Teilprodukt C31 (= A3 B1), der Volladdierer 8b empfängt weiter das Teilprodukt C12 (= A1 B2) und der Volladdierer 8c empfängt weiter das Teilprodukt C02 (= A0 B2). Die Teilprodukte empfangend führen die entsprechenden Volladdie­ rer die Addition der drei Eingaben aus. In einer vergleichbaren Art und Weise empfängt in der dritten Stufe der Volladdierer 8d das Teilprodukt C23 (= A2 B3) und das Teilprodukt C32 (= A3 B2) und das höhere Bit des Volladdierers 8a und gibt einen 2-Bit Wert aus. Der Volladdierer 8e, der das Teilprodukt C13 (=A1 B3), das niedrigere Bit der Ausgabe des Volladdierers 8a und das höhere Bit der Ausgabe des Volladdierers 8b empfängt, gibt einen 2-Bit Wert aus. Der Volladdierer 8f, der das Teilprodukt C03 (= A0 B3), das niedrigere Bit der Ausgabe des Volladdierers 8b und das höhe­ re Bit der Ausgabe des Volladdierers 8c empfängt, gibt einen 2- Bit Wert aus.
In der vierten Stufe werden dem 3-Bit Addierer 9 mit Parallel­ übertrag das das Teilprodukt C33 (= A3 B3) und das höhere Bit der Ausgabe des Volladdierers 8d an einer bzw. für eine Stelle miteinander ausgerichtet eingegeben, das niedrigere Bit der Ausgabe des Volladdierers 8d und das höhere Bit der Ausgabe des Volladdierers 8e werden miteinander ausgerichtet an einer Stelle eingegeben, und das niedrigere Bit der Ausgabe des Volladdierers 8e und das höhere Bit der Ausgabe des Volladdierers 8f werden miteinander ausgerichtet an einer Stelle eingegeben.
Das niedrigere Bit der Ausgabe des Volladdierers 8f wird direkt das niedrigstwertigste Bit P3 des Multiplikationsergebnisses 2. Die verbleibenden höheren Bits (P7 P6 P5 P4) des Multiplikations­ ergebnisses 2 werden von dem 3-Bit Addierer 9 mit Parallelübertrag ausgegeben.
Der rundende Halbaddierer 13 ist an einer Position angeordnet, an der das sechstsignifikanteste (sechsthöchste) Bit zu berechnen ist, d. h. an einer Position, an der der Halbaddierer 7b bei dem herkömmlichen Additionsverarbeitungsteil 30b, das in Fig. 22 ge­ zeigt ist, anzuordnen ist. Dies ermöglicht, daß eine Hilfszahl "1" zu dem sechsthöchsten Bit addiert wird. Demzufolge ist, wie in "(A-0) grundlegende Idee" erläutert, das Multiplikationsergeb­ nis 2, welches an dem sechsthöchsten Bit gerundet wurde, und wel­ ches daher das signifikanteste bis zum fünftsignifikantesten Bit aufweist, von der Multiplizierschaltung 101 erhältlich. Da das Übertragsspar-Verfahren (carry-save Verfahren) in der ersten bevorzugten Ausführungsform verwendet wird, ist der Weg der Fortpflanzung des Übertrags kurz, wodurch ein Hochgeschwindig­ keitsbetrieb ermöglicht wird.
Fig. 3 ist ein Schaltbild, das eine Struktur eines entsprechen­ den Halbaddierers, typischerweise des Halbaddierers 7a, des Addi­ tionsverarbeitungsteils 31b zeigt. Fig. 4 ist ein Schaltbild, das eine Struktur des rundenden Halbaddierers 13 zeigt. In den Fig. 3 und 4 entsprechen die Eingaben K und L den Teilproduk­ ten, die in Fig. 2 gezeigt sind. Die Ausgaben C und S entspre­ chen dem höheren Bit und dem niedrigeren Bit der Ausgabe des Halbaddierers 7a bzw. des rundenden Halbaddierers 13. Die Ausgabe C entspricht außerdem der führenden Stelle. Bei dem Halbaddierer 7a werden ein UND-Gatter 14 und ein EXOR-Gatter 15 jeweils mit den Eingaben K und L versorgt. Das UND-Gatter 14 gibt die Ausgabe C und das EXOR-Gatter 15 gibt die Ausgabe S aus. Derart wird die Summe von "K" und "L", die jeweils aus einem Bit bestehen, als 2- Bit Wert "CS" erhalten.
Andererseits werden in dem rundenden Halbaddierer 13 ein ODER- Gatter 16 und ein in EXNOR-Gatter 17 jeweils mit den Eingaben K und L versorgt, und das ODER-Gatter 16 gibt die Ausgabe C und das EXNOR-Gatter 17 gibt die Ausgabe S aus. Hier wird die Summe von "K", "L" und der Hilfszahl "1" als ein 2-Bit Wert "CS" berechnet.
Fig. 5 ist ein Schaltbild, das im Detail eine Struktur des UND- Gatters 14 des Halbaddierers 7a zeigt, und Fig. 6 ist ein Schaltbild, das im Detail eine Struktur des ODER-Gatters 16 des rundenden Halbaddierers 13 zeigt. Wie durch Vergleich der Fig. 5 mit Fig. 6 zu verstehen ist, benötigen die Gatter 14 und 16 je­ weils 6 Transistoren. Fig. 7 ist ein Schaltbild, das im Detail eine Struktur des EXOR-Gatters 15 des Halbaddierers 7a zeigt, und Fig. 8 ist ein Schaltbild, das im Detail eine Struktur des EXNOR-Gatters 17 des rundenden Halbaddierers 13 zeigt. Wie aus dem Vergleich zwischen den Fig. 7 und 8 offensichtlich ist, benötigen die Gatter 15 und 17 jeweils zehn Transistoren. Dies im Licht der in den Fig. 3 und 4 gezeigten Strukturen berücksich­ tigend, ist zu verstehen, daß die Schaltungsgrößen der Halbaddie­ rer 7a und 13 dieselben sind. Demzufolge wird der Additionsverar­ beitungsteil 31b der Multiplizierschaltung 101 mit derselben Schaltungsgröße wie die des herkömmlichen Additionsverarbeitungs­ teils 30b realisiert.
Andererseits ist die Rundungsschaltung 5 nicht notwendig für die Multiplizierschaltung 101, und die Multiplizierschaltung 101 wird in einer kleineren Größe als die herkömmliche Multiplizierschal­ tung 100 ausgebildet. Die Reduktion der Schaltungsgröße ist für sich selbst vorteilhaft, und weiter ist es vorteilhaft, daß ein Hochgeschwindigkeitsbetrieb möglich wird.
(A-2) Zweite bevorzugte Ausführungsform:
Eine zweite bevorzugte Ausführungsform ist eine Anwendung der vorliegenden Erfindung auf eine Multiplikation, die den Wallace- Baum (Wallace Tree) verwendet. Fig. 9 ist ein Schaltbild, das eine Struktur eines Additionsverarbeitungsteils 31c zeigt. Der Additionsverarbeitungsteils 31c und der Erzeugungsteil 31a für Teilprodukte, der in Fig. 1 gezeigt ist, bilden einen Multipli­ zierteil 32. In dem Multiplizierteil 32 ist ein Wallace-Tree-Mul­ tiplizierer ausgebildet.
Das heißt, daß in dem Additionsverarbeitungsteil 31c, in den die Teilproduktgruppe 6 eingegeben wird, ein Halbaddierer 7a, Vollad­ dierer 8a, 8b und 8c und ein Halbaddierer 7b in dieser Reihen­ folge in der ersten Stufe angeordnet sind. In der zweiten Stufe sind Halbaddierer 7c, 7d, 7e, ein Volladdierer 8b und ein runden­ der Halbaddierer 13 in dieser Reihenfolge angeordnet. In der dritten Stufe sind ein ODER-Gatter 9b und ein 4-Bit Addierer mit Parallelübertrag 9a in dieser Reihenfolge angeordnet.
In der ersten Stufe wird das Teilprodukt C00 nicht durch irgend­ eine Berechnung verarbeitet, der Halbaddierer 7a empfängt die Teilprodukte C23 und C32, der Volladdierer 8a empfängt die Teil­ produkte C13, C22 und C31, der Volladdierer 8b empfängt die Teil­ produkte C12, C21 und C30, der Volladdierer 8c empfängt die Teil­ produkte C02, C11 und C20, und der Halbaddierer 7b empfängt die Teilprodukte C01 und C10. Jeder der Halb- und der Volladdierer be­ rechnet die Summe der eingegebenen Teilprodukte als einen 2-Bit Wert.
In der zweiten Stufe empfängt der Halbaddierer 7c das Teilprodukt C33 und das höhere Bit der Ausgabe des Halbaddierers 7a, während der Halbaddierer 7d das niedrigere Bit der Ausgabe des Halbaddie­ rers 7a und das höhere Bit der Ausgabe des Volladdierers 8a empfängt. Der Halbaddierer 7e empfängt das niedrigere Bit der Ausgabe des Volladdierers 8a und das höhere Bit der Ausgabe des Volladdierers 8b. Der Volladdierer 8d empfängt das Teilprodukt C03, das niedrigere Bit der Ausgabe des Volladdierers 8b und das höhere Bit der Ausgabe des Volladdierers 8c. Der rundende Halbad­ dierer 13 empfängt das niedrigere Bit der Ausgabe des Volladdie­ rers 8c und das höhere Bit der Ausgabe des Halbaddierers 7b. Jeder der Halb- und der Volladdierer berechnet die Summe der ein­ gegebenen Teilprodukte als einen 2-Bit Wert.
In der dritten Stufe werden dem 4-Bit Addieren mir Parallelüber­ trag 9a das niedrigere Bit der Ausgabe des Halbaddierers 7c und das höhere Bit der Ausgabe des Halbaddierers 7d miteinander aus­ gerichtet an einer Stelle (Ziffer) eingegeben, das niedrigere Bit der Ausgabe des Halbaddierers 7d und das höhere Bit der Ausgabe des Halbaddierers 7e werden miteinander ausgerichtet an einer Stelle eingegeben, das niedrigere Bit der Ausgabe des Halbaddie­ rers 7e und das höhere Bit der Ausgabe des Volladdierers 8d wer­ den miteinander ausgerichtet an einer Stelle eingegeben, und das niedrigere Bit der Ausgabe des Volladdierers 8d und das höhere Bit der Ausgabe des rundenden Halbaddierers 13 werden miteinander ausgerichtet an einer Stelle eingegeben. Das ODER-Gatter 9b be­ rechnet die logische Summe einer Übertragsausgabe (das signifi­ kanteste Bit) des Addierers 9a mit Parallelübertrag und des höheren Bits der Ausgabe des Halbaddierers 7c, so daß das signi­ fikanteste Bit P7 des Multiplikationsergebnisses 2 ausgegeben wird. Der Addierer mit Parallelübertrag 9a gibt die verbleibenden höheren Bits (P6 P5 P4 P3) des Multiplikationsergebnisses 2 aus.
Da der rundende Halbaddierer 13 in einer Position angeordnet ist, an der das sechstsignifikanteste Bit (das sechsthöchste Bit) zu berechnen ist, wird eine Hilfszahl zu dem sechstsignifikantesten Bit addiert. Demzufolge wird der Effekt der vorliegenden Erfin­ dung auch dort gesichert, wo eine Multiplikation unter Verwendung des Wallace-Baums auszuführen ist. In anderen Worten, es ist mög­ lich, das Multiplikationsergebnis 2, welches an dem sechstsigni­ fikantesten Bit gerundet wurde, ohne Verwendung einer extern vor­ gesehenen Rundungsschaltung zu erhalten. Noch vorteilhafter ist es, daß der Additionsverarbeitungsteil 31c nur eine reduzierte Anzahl von Stufen verglichen mit dem Additionsverarbeitungsteil 31b der ersten bevorzugten Ausführungsform benötigt.
(A-3) Dritte bevorzugte Ausführungsform:
Eine dritte bevorzugte Ausführungsform ist eine Anwendung der vorliegenden Erfindung auf eine Multiplikation, die den Booth-Al­ gorithmus verwendet. Fig. 10 ist ein Schaltbild, das eine Struk­ tur einer Multiplizierschaltung 102 zeigt. Die Multiplizierschal­ tung 102 wird mit einem 8-Bit Multiplikanden X7-X0 und einem 8- Bit Multiplikator Y7-Y0 versorgt, die negative Zahlen sind, die jeweils als ein Komplement von 2 ausgedrückt sind. Ohne Verwen­ dung einer extern vorgesehenen Rundungsschaltung wird ein binäres 12-Bit Multiplikationsergebnis 21 (= P15... P5 P4) erhalten, das an dem dreizehnthöchsten (dreizehntsignifikantesten) Bit gerundet ist.
Die Multiplizierschaltung 102 weist einen Multiplizierteil 33 auf, der den Booth-Algorithmus übernimmt. Der Multiplizierteil 33 wird durch einen Erzeugungsteil 33a für Teilprodukte und einen Additionsverarbeitungsteil 33b gebildet.
Der Produkterzeugungsteil 33a erzeugt vier Teilprodukte aus dem Multiplikanden X7-X0 und dem Multiplikator Y7-Y0. Der Produkerzeu­ gungsteil 33a weist vier Typen von Booth-Erzeugungsschaltungen 331 bis 334 für Teilprodukte auf. Die Booth-Erzeugungsschaltung 331 für Teilprodukte erzeugt ein 16-Bit Teilprodukt aus dem Mul­ tiplikanden X7-X0 und den zwei am wenigsten signifikanten (den zwei niedrigsten) Bits Y1-Y0 des Multiplikators. Die Booth- Erzeugungsschaltung 332 für Teilprodukte erzeugt ein 14-Bit Teilprodukt aus dem Multiplikanden X7-X0 und den fünft-, sechst- und siebtsignifikantesten Bits Y3 Y2 Y1 des Multiplikators. Die Booth-Erzeugungsschaltung 333 für Teilprodukte erzeugt ein 12-Bit Teilprodukt aus dem Multiplikanden X7-X0 und den dritt-, viert- und fünftsignifikantesten Bits Y5 Y4 Y3 des Multiplikators. Die Booth-Erzeugungsschaltung 334 für Teilprodukte erzeugt ein 10-Bit Teilprodukt aus dem Multiplikanden X7-X0 und dem signifikantesten und den zweit- und drittsignifikantesten Bits Y7 Y6 Y5 des Multi­ plikators.
Diese vier Typen von Teilprodukten werden in den Additionsverar­ beitungsteil 33b eingegeben, wobei ihre signifikantesten Bits miteinander ausgerichtet sind. Zur Klarheit der Darstellung zeigt Fig. 10 nur die Bits in der Umgebung der signifikantesten (der höchsten) und der am wenigsten signifikanten (der niedrigsten) Bits, wie sie in den Additionsverarbeitungsteil 33b eingegeben werden.
Der Additionsverarbeitungsteil 33b ist als ein Vier-Stufenteil ausgebildet. In der ersten Stufe sind Halbaddierer 7a bis 7l, ein rundender Halbaddierer 13 und ein Halbaddierer 7m in dieser Rei­ henfolge von der Seite der höheren Bits angeordnet. In der zwei­ ten Stufe sind Volladdierer 8a bis 8l und ein Halbaddierer 7n in dieser Reihenfolge von der Seite der höheren Bits angeordnet. In der dritten Stufe sind Volladdierer 8m bis 8v und Halbaddierer 7o und 7p in dieser Reihenfolge von der Seite der höheren Bits ange­ ordnet. In der vierten oder der letzten Stufe ist ein 11-Bit Ad­ dierer 91 angeordnet.
Fig. 11 ist ein Schaltbild, das die Struktur des Additionsverar­ beitungsteils 33b detaillierter als in Fig. 10 zeigt. In der er­ sten Stufe werden die Bits der Ausgabe der Booth-Erzeugungsschal­ tung 331 für Teilprodukte jeweils in einer abnehmenden Reihen­ folge vom signifikantesten zum vierzehnten Bit in jeweils einen der Halbaddierer 7a bis 7l, den rundenden Halbaddierer 13 und den Halbaddierer 7m eingegeben. Zusätzlich werden die Bits der Aus­ gabe der Booth-Erzeugungsschaltung 332 für Teilprodukte jeweils in einer abnehmenden Reihenfolge vom signifikantesten Bit in je­ weils einen dieser Addierer eingegeben.
In der zweiten Stufe empfängt der Volladdierer 8a die Ausgabe des Halbaddierers 7a, das höhere Bit der Ausgabe des Halbaddierers 7b und das signifikanteste Bit der Ausgabe der Booth-Erzeugungs­ schaltung 333 für Teilprodukte; der Volladdierer 8b empfängt das niedrigere Bit der Ausgabe des Halbaddierers 7b, das höhere Bit der Ausgabe des Halbaddierers 7c und das zweite signifikante (zweithöchste) Bit der Ausgabe der Booth-Erzeugungsschaltung 333 für Teilprodukte; der Volladdierer 8c empfängt das niedrigere Bit der Ausgabe des Halbaddierers 7c, das höhere Bit der Ausgabe des Halbaddierers 7d und das drittsignifikanteste Bit der Ausgabe der Booth-Erzeugungsschaltung 333 für Teilprodukte; der Volladdierer 8d empfängt das niedrigere Bit der Ausgabe des Halbaddierers 7d, das höhere Bit der Ausgabe des Halbaddierers 7e und das viertsi­ gnifikanteste Bit der Ausgabe der Booth-Erzeugungsschaltung 333 für Teilprodukte; der Volladdierer 8e empfängt das niedrigere Bit der Ausgabe des Halbaddierers 7e, das höhere Bit der Ausgabe des Halbaddierers 7f und das fünftsignifikanteste Bit der Ausgabe der Booth-Erzeugungsschaltung 333 für Teilprodukts, der Volladdierer 8f empfängt das niedrigere Bit der Ausgabe des Halbaddierers 7f, das höhere Bit der Ausgabe des Halbaddierers 7g und das sechstsi­ gnifikanteste Bit der Ausgabe der Booth-Erzeugungsschaltung 333 für Teilprodukte; der Volladdierer 8g empfängt das niedrigere Bit der Ausgabe des Halbaddierers 7g, das höhere Bit der Ausgabe des Halbaddierers 7h und das siebtsignifikanteste Bit der Ausgabe der Booth-Erzeugungsschaltung 333 für Teilprodukte; der Volladdierer 8h empfängt das niedrigere Bit der Ausgabe des Halbaddierers 7h, das höhere Bit der Ausgabe des Halbaddierers 7i und das achtsi­ gnifikanteste Bit der Ausgabe der Booth-Erzeugungsschaltung 333 für Teilprodukte; der Volladdierer 8i empfängt das niedrigere Bit der Ausgabe des Halbaddierers 7i, das höhere Bit der Ausgabe des Halbaddierers 7j und das neuntsignifikanteste Bit der Ausgabe der Booth-Erzeugungsschaltung 333 für Teilprodukte; der Volladdierer 8j empfängt das niedrigere Bit der Ausgabe des Halbaddierers 7j, das höhere Bit der Ausgabe des Halbaddierers 7k und das zehntsi­ gnifikanteste Bit der Ausgabe der Booth-Erzeugungsschaltung 333 für Teilprodukte; der Volladdierer 8k empfängt das niedrigere Bit der Ausgabe des Halbaddierers 7k, das höhere Bit der Ausgabe des Halbaddierers 7l und das elftsignifikanteste Bit der Ausgabe der Booth-Erzeugungsschaltung 333 für Teilprodukte; und der Vollad­ dierer 8l empfängt das niedrigere Bit der Ausgabe des Halbaddie­ rers 7l, das höhere Bit der Ausgabe des rundenden Halbaddierers 13 und das zwölftsignifikanteste Bit der Ausgabe der Booth-Erzeu­ gungsschaltung 333 für Teilprodukte. Der Halbaddierer 7n empfängt das niedrigere Bit der Ausgabe des rundenden Halbaddierers 13 und das höhere Bit der Ausgabe des Halbaddierers 7m.
In der dritten Stufe empfängt der Volladdierer 8m die Ausgabe des Halbaddierers 8a, das höhere Bit der Ausgabe des Halbaddierers 8b und signifikanteste Bit der Ausgabe der Booth-Erzeugungsschaltung 334 für Teilprodukte (im folgenden Absatz Erzeugungsschaltung 334 genannt); der Volladdierer 8n empfängt das niedrigere Bit der Ausgabe des Halbaddierers 8b, das höhere Bit der Ausgabe des Halbaddierers 8c und das zweitsignifikanteste Bit der Ausgabe der Erzeugungsschaltung 334; der Volladdierer 80 empfängt das niedri­ gere Bit der Ausgabe des Halbaddierers 8c, das höhere Bit der Ausgabe des Halbaddierers 8d und das drittsignifikanteste Bit der Ausgabe der Erzeugungsschaltung 334; der Volladdierer 8p empfängt das niedrigere Bit der Ausgabe des Halbaddierers 8d, das höhere Bit der Ausgabe des Halbaddierers 8e und das viertsignifikanteste Bit der Ausgabe der Erzeugungsschaltung 334; der Volladdierer 8q empfängt das niedrigere Bit der Ausgabe des Halbaddierers 8e, das höhere Bit der Ausgabe des Halbaddierers 8f und das fünftsignifi­ kanteste Bit der Ausgabe der Erzeugungsschaltung 334; der Vollad­ dierer 8r empfängt das niedrigere Bit der Ausgabe des Halbaddie­ rers 8f, das höhere Bit der Ausgabe des Halbaddierers 8g und das sechstsignifikanteste Bit der Ausgabe der Erzeugungsschaltung 334; der Volladdierer 8s empfängt das niedrigere Bit der Ausgabe des Halbaddierers 8g, das höhere Bit der Ausgabe des Halbaddie­ rers 8h und das siebtsignifikanteste Bit der Ausgabe der Erzeu­ gungsschaltung 334; der Volladdierer 8t empfängt das niedrigere Bit der Ausgabe des Halbaddierers 8h, das höhere Bit der Ausgabe ides Halbaddierers 8i und das achtsignifikanteste Bit der Ausgabe der Erzeugungsschaltung 334; der Volladdierer 8u empfängt das niedrigere Bit der Ausgabe des Halbaddierers 8i, das höhere Bit der Ausgabe des Halbaddierers 8j und das neuntsignifikanteste Bit der Ausgabe der Erzeugungsschaltung 334; und der Volladdierer 8v empfängt das niedrigere Bit der Ausgabe des Halbaddierers 8j, das höhere Bit der Ausgabe des Halbaddierers 8k und das zehntsignifi­ kanteste Bit der Ausgabe der Erzeugungsschaltung 334. Der Halbad­ dierers 7o empfängt das niedrigere Bit der Ausgabe des Volladdie­ rers 8k, das höhere Bit der Ausgabe des Volladdierers 8l, während der Halbaddierer 7p das niedrigere Bit der Ausgabe des Halbaddie­ rers 8l und das höhere Bit der Ausgabe des Halbaddierers 7n emp­ fängt.
In der vierten Stufe werden dem 11-Bit Addierer 91 die Ausgabe des Volladdierers 8m und das höhere Bit der Ausgabe des Vollad­ dierers 8n miteinander ausgerichtet an einer Stelle eingegeben, das niedrigere Bit der Ausgabe des Volladdierers 8n und das höhe­ re Bit der Ausgabe des Volladdierers 80 werden miteinander ausge­ richtet an einer Stelle eingegeben, das niedrigere Bit der Aus­ gabe des Volladdierers 8o und das höhere Bit der Ausgabe des Volladdierers 8p werden miteinander ausgerichtet an einer Stelle eingegeben, das niedrigere Bit der Ausgabe des Volladdierers 8p und das höhere Bit der Ausgabe des Volladdierers 8q werden mit­ einander ausgerichtet an einer Stelle eingegeben, das niedrigere Bit der Ausgabe des Volladdierers 8q und das höhere Bit der Aus­ gabe des Volladdierers 8r werden miteinander ausgerichtet an einer Stelle eingegeben, das niedrigere Bit der Ausgabe des Voll­ addierers 8r und das höhere Bit der Ausgabe des Volladdierers 8s werden miteinander ausgerichtet an einer Stelle eingegeben, das niedrigere Bit der Ausgabe des Volladdierers 8s und das höhere Bit der Ausgabe des Volladdierers 8t werden miteinander ausge­ richtet an einer Stelle eingegeben, das niedrigere Bit der Aus­ gabe des Volladdierers 8t und das höhere Bit der Ausgabe des Volladdierers 8u werden miteinander ausgerichtet an einer Stelle eingegeben, das niedrigere Bit der Ausgabe des Volladdierers 8u und das höhere Bit der Ausgabe des Volladdierers 8v werden mit­ einander ausgerichtet an einer Stelle eingegeben, das niedrigere Bit der Ausgabe des Volladdierers 8v und das höhere Bit der Aus­ gabe des Halbaddierers 70 werden miteinander ausgerichtet an einer Stelle eingegeben, und das niedrigere Bit der Ausgabe des Halbaddierers 70 und das höhere Bit der Ausgabe des Halbaddierers 7p werden miteinander ausgerichtet an einer Stelle eingegeben. Als Ergebnis ergibt die Ausgabe des Addierers 91 die höheren Bits des Multiplikationsergebnisses 21 (P15 bis P5). Das am wenigsten signifikante (das niedrigste) Bit P4 des Multiplikationsergeb­ nisses 21 ist das niedrigere Bit der Ausgabe des Halbaddierers 7p.
Da der rundende Halbaddierer 13 in einer Position angeordnet ist, in der das dreizehntsignifikanteste Bit zu berechnen ist, wird eine Hilfszahl zu dem dreizehntsignifikantesten Bit addiert. Da­ her wird der Effekt der vorliegenden Erfindung auch dort gesi­ chert, wo eine Multiplikation unter Verwendung des Booth-Algo­ rithmus auszuführen ist. In anderen Worten, es ist möglich, das Multiplikationsergebnis 21, welches an dem dreizehntsignifikante­ sten Bit (an der dreizehnten Stelle auf die zwölfte Stelle) ge­ rundet ist, ohne Verwendung einer extern vorgesehenen Rundungs­ schaltung zu erhalten.
Wie oben beschrieben, ist der rundende Halbaddierer 13 an einer Position angeordnet, an der das dreizehntsignifikanteste Bit zu berechnen ist. Es folgt daraus, daß der rundende Halbaddierer 13 in anderen Stufen angeordnet sein kann und nicht notwendigerweise wie im Fall des Additionsverarbeitungsteiles 33b in der ersten Stufe angeordnet sein muß. Fig. 12 ist ein Schaltbild eines Ad­ ditionsverarbeitungsteils 33c, der dem Additionsverarbeitungsteil 33b in der Struktur gleich ist, wobei er so modifiziert ist, daß der Halbaddierer 7n und der rundende Halbaddierer 13 gegeneinan­ der ausgetauscht sind.
Wenn der Additionsverarbeitungsteils 33c mit einer solchen Struk­ tur in Kombination mit dem Produkterzeugungsteil 33a verwendet wird, ist die vorliegende Erfindung auf eine Multiplikation, die den Booth-Algorithmus verwendet, anwendbar.
Obwohl die bevorzugten Ausführungsformen, die zuvor beschrieben wurden, alle Werte behandeln, die alle binäre Zahlen sind, ist die vorliegende Erfindung nicht nur auf binäre Multiplikation und binäre Division anwendbar. Die vorliegende Erfindung ist vielmehr allgemein anwendbar auf eine Multiplikation in irgendeinem Zahlensystem bzw. numerischen System, in dem die Grundzahl (Radix) D eine Ganzzahl (Integer) ist, die gleich zu oder größer als 2 ist. In diesem Fall ist in der Multiplizier­ schaltung als eine Hilfszahl eine Minimalzahl, die gleich oder größer als die Hälfte des Wertes D ist, zu verwenden.

Claims (10)

1. Multiplizierschaltung mit
  • a) : einem Erzeugungsteil (30a, 31a, 33a, 331-334) für Teilpro­ dukte zur Erzeugung einer Mehrzahl von Teilprodukten (Cmn) aus einer Mehrzahl von Elementen eines Multiplikanden und einer Mehrzahl von Elementen eines Multiplikators, wobei die Elemente des Multiplikanden jeweils min destens aus 1 Stelle bestehen und einen Multiplikanden A (= AM - 1 ... A1 A0) bilden, welcher in einem Zahlensystem mit Basis D in M Stellen ausgedrückt ist, und wobei die Elemente des Multiplikators jeweils mindestens aus einer Stelle bestehen und einen Multiplikator B (= BN - 1 ... B1 B0) bilden, welcher in dem Zahlensystem mit Basis D in N Stellen ausgedrückt ist; und
  • b) : einem Additionsverarbeitungsteil (30b, 31b, 31c, 33b, 33c) zum Aufaddieren der Teilprodukte, wobei die Teilprodukte ent­ sprechend den Stellen eines Produktes E des Multiplikanden A und des Multiplikators B zueinander ausgerichtet sind,
    dadurch gekennzeichnet,
    daß der Additionsverarbeitungsteil (b-1): einen rundenden Addierer (13) aufweist, der einen ersten und einen zweiten Eingabeanschluß zum jeweiligen Empfangen eines 1-stelligen Wertes, von denen mindestens einer eines der an der K-signifikantesten Stelle des Produktes E ausgerichteten Teil­ produkte ist, und einen ersten und einen zweiten Ausgabeanschluß aufweist und die Summe der an dem ersten und dem zweiten Einga­ beanschluß eingegebenen Werte und einer Rundungshilfszahl berechnet, wobei der an dem ersten Ausgabeanschluß des rundenden Addierers verfügbare Wert die relativ höhere Stelle und der an dem zweiten Ausgabeanschluß des rundenden Addierers verfügbare Wert die relativ niedrigere Stelle der berechneten Summe der an dem ersten und dem zweiten Eingabeanschluß eingegebenen Werte und der Rundungshilfszahl ist, so daß das Produkt E bei der Ausgabe auf die (K - 1)-signifikanteste Stelle gerundet ist.
2. Multiplizierschaltung nach Anspruch 1, dadurch gekennzeich­ net, daß die Rundungshilfszahl ein Minimalwert ist, der gleich oder größer der Hälfte der Zahl D ist.
3. Multiplizierschaltung nach Anspruch 1 oder 2, dadurch ge­ kennzeichnet,
daß die Zahl D gleich 2 ist, und
daß die Rundungshilfszahl gleich 1 ist.
4. Multiplizierschaltung nach einem der Ansprüche 1 bis 3, da­ durch gekennzeichnet, daß der rundende Addierer (13)
  • (b-1-1): ein erstes Gatter (16), das einen ersten, einen zweiten und einen dritten Anschluß (K, L, C) aufweist, wobei der erste Anschluß mit dem ersten Eingabeanschluß verbunden ist, der zweite Anschluß mit dem zweiten Eingabeanschluß verbunden ist, und der dritte Anschluß (C) den ersten Ausgabeanschluß mit einem ODER der Werte, die an den ersten und den zweiten Anschluß (K, L) des ersten Gatters gegeben wer­ den, bildet; und
  • (b-1-2): ein zweites Gatter (17), das einen ersten, einen zweiten und einen dritten Anschluß (K, L, S) aufweist, wobei der erste Anschluß mit dem ersten Eingabeanschluß verbunden ist, der zweite Anschluß mit dem zweiten Eingabeanschluß verbunden ist, und der dritte Anschluß (S) den zweiten Ausgabeanschluß mit einem exklusiven NOR der Werte, die an den ersten und den zweiten Anschluß des zweiten Gatters gegeben werden, bildet, aufweist.
5. Multiplizierschaltung nach einem der Ansprüche 1 bis 4, da­ durch gekennzeichnet, daß die Elemente des Multiplikators, die Elemente des Multipli­ kanden und die Teilprodukte alle 1-stellige Werte "0" oder "1" sind, und
daß der Erzeugungsteil für Teilprodukte
  • (a-1): M × N Gatter aufweist, die jeweils zum Erhalt eines logi­ schen Produktes Cmn eines der Elemente Am des Multiplikanden, welches der m-ten Stelle des Multiplikanden A (0 ≦ m ≦ M - 1) ent­ spricht, und eines Elementes Bn des Multiplikators, welches der n-ten Stelle des Multiplikators B (0 ≦ n ≦ N - 1) entspricht, dienen.
6. Multiplizierschaltung nach einem der Ansprüche 1 bis 5, da­ durch gekennzeichnet, daß der Additionsverarbeitungsteil weiter aufweist
  • (b-2): eine erste Addierergruppe (7a, 13, 7c), die durch (M - 1) Halbaddierer ge­ bildet wird;
  • (b-3): eine k-te Addierergruppe (8a-8c; 8d-8f), die durch (M - 1) Volladdierer (2 ≦ k ≦ N - 1) gebildet wird; und
  • (b-4): einen Addierer (9) mit Parallelübertrag, der Eingabeanschlüsse für (M - 1) Stellen und Ausgabeanschlüsse für M Stellen aufweist,
wobei in dem Additionsverarbeitungsteil
  • (c-1): eines der Teilprodukte C(M -1)j (1 ≦ j ≦ N - 2) an den Vollad­ dierer für die höchste Stelle in der (j + 1)-ten Addierergruppe gegeben wird;
  • (c-2): eines der Teilprodukte Cij (0 ≦ i ≦ M - 2, 2 ≦ j ≦ N - 1) an den Volladdierer für die (i + 1)-niedrigste Stelle der j-ten Addierer­ gruppe gegeben wird;
  • (c-3): eines der Teilprodukte Cil(0 ≦ i ≦ M - 2) an den Halbaddierer für die (i + 1)-niedrigste Stelle der ersten Addierergrupppe gegeben wird;
  • (c-4): eines der Teilprodukte Ci0(0 ≦ i ≦ M - 1) an den Halbaddierer für die i-niedrigste Stelle der ersten Addierergrupppe gegeben wird;
  • (c-5): der Eingabeanschluß für die höchste Stelle des Addierers mit Parallelübertrag mit einem der Teilprodukte C(M - 1) (N - 1) Und einer relativ höheren Stelle einer Ausgabe des Volladdierers für die höchste Stelle der (N - 1)-ten Addierergruppe versorgt wird;
  • (c-6): der Eingabeanschluß für die p-niedrigste Stelle (1 ≦ p ≦ (M - 2)) des Addierers mit Parallelübertrag mit einer relativ höheren Stelle einer Ausgabe eines Volladdierers für die p-niedrigste Stelle der (N - 1)-ten Addierergruppe und einer relativ niedrigen Stelle einer Ausgabe eines Volladdierers für die (p + 1)-niedrigste Stelle der (N - 1)-ten Addierergruppe versorgt wird;
  • (c-7): ein Volladdierer für die p-niedrigste Stelle der j-ten Ad­ dierergruppe (3 ≦ j ≦ N - 1) mit einer relativ niedrigen Stelle ei­ ner Ausgabe eines Volladdierers für eine (p + 1)-niedrigste Stelle der (j - 1)-ten Addierergruppe und einer relativ hohen Stelle einer Ausgabe eines Volladdierers für die p-niedrigste Stelle einer (j - 1)-ten Addierergruppe versorgt wird;
  • (c-8) der Volladdierer für die höchste Stelle einer j-ten Addie­ rergruppe weiter mit einer relativ hohen Stelle einer Ausgabe des Volladdierers für die höchste Stelle einer (j - 1)-ten Addierer­ gruppe versorgt wird;
  • (c-9): ein Volladdierer für die p-niedrigste Stelle einer zweiten Addierergruppe mit einer relativ niedrigen Stelle einer Ausgabe eines Halbaddierers für eine (p + 1)-niedrigste Stelle einer ersten Addierergruppe und einer relativ hohen Stelle einer Ausgabe eines Halbaddierers für die p-niedrigste Stelle der ersten Addierer­ gruppe versorgt wird; und
  • (c-10): der Volladdierer für die höchste Stelle der zweiten Addie­ rergruppe mit einer relativ hohen Stelle einer Ausgabe des Halbaddierers für die höchste Stelle der ersten Addierergruppe versorgt wird, und
    wobei aus der ersten Addierergruppe der Halbaddierer, der an ei­ ner Position angeordnet ist, die der K-höchsten Stelle des Produktes E entspricht, der rundende Addierer (13) ist.
7. Multiplizierschaltung nach einem der Ansprüche 1 bis 6, da­ durch gekennzeichnet, daß der Additionsverarbeitungsteil eine Wallace-Baum-Schaltung bildet.
8. Multiplizierschaltung nach einem der Ansprüche 1 bis 4, da­ durch gekennzeichnet,
daß der Multiplikator und der Multiplikand jeweils als ein Kom­ plement von 2 ausgedrückt sind, falls sie negative Zahlen sind, der Multiplikand den Elementen des Multiplikanden entspricht, die Elemente des Multiplikators durch eine Mehrzahl von Stellen, die in dem Multiplikator aufeinanderfolgend sind, gebildet wer­ den,
der Erzeugungsteil für Teilprodukte eine Mehrzahl von Booth- Erzeugungsschaltungen für Teilprodukte aufweist, die die Teilpro­ dukte entsprechend zu dem Booth-Algorithmus erzeugen, und der Additionsverarbeitungsteil die Teilprodukte aufaddiert, wobei die höchsten Stellen der Teilprodukte miteinander ausgerichtet sind.
9. Multiplizierschaltung nach Anspruch 8, dadurch gekennzeich­ net,
daß die Zahl N eine gerade Zahl ist, die Mehrzahl der Elemente des Multiplikators in 0-te bis i-te 3-stellige Multiplikatorelemente (B2i + 1 B2i B2i - 1) geteilt werden, wobei 0 ≦ i ≦ (N - 2)/2 und B - 1 = 0,
die Teilprodukte in 0-te bis i-te Teilprodukte geteilt werden, die durch Ausführen einer vorbestimmten Berechnung für die Ele­ mente des Multiplikanden und die 0-ten bis i-ten Multiplikator­ elemente erhältlich sind,
wobei der Additionsverarbeitungsteil weiter
  • (b-2): eine erste Addierergruppe (7a-7m, 13) , die eine Mehrzahl von Halbaddie­ rern aufweist, die entsprechend zu der 0-ten Produktgruppe, aus­ genommen für die zwei niedrigsten Bits der 0-ten Produktgruppe, und zu der ersten Produktgruppe vorgesehen sind; und
  • (b-3): eine (j + 1)-te Addierergruppe (8a-8l, 7n; 8m-8v, 7o, 7p) aufweist, die
  • (b-3-1): j Halbaddierer, die aufeinanderfolgend auf der Seite der niedrigeren Stelle vorgesehen sind, wobei die (j + 1) Ausgaben der niederen Stellen der j-ten Addierergruppe (1 ≦ j ≦ (N - 2)/2 - 1) an die j Halbaddierer mit miteinander ausgerichteten Stellen ge­ geben werden; und
  • (b-3-2): Volladdierer, die aufeinanderfolgend auf der Seite der höheren Stelle vorgesehen sind, wobei die Ausgaben der j-ten Ad­ dierergruppe und das (j + 1)-te Teilprodukt den Volladdierern ent­ sprechend gegeben werden, aufweist, und
    wobei von den Halbaddierern einer, der in einer Position angeordnet ist, die der K-höchsten Stelle des Produktes E entspricht, der rundende Addierer (13) ist.
10. Multiplizierschaltung nach einem der Ansprüche 1 bis 9, da­ durch gekennzeichnet, daß die Zahlen M und N einander gleich sind.
DE4409834A 1993-03-22 1994-03-22 Multiplizierschaltung Expired - Fee Related DE4409834C2 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE4447781A DE4447781B4 (de) 1993-03-22 1994-03-22 Divisionsschaltung

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP06183293A JP3276444B2 (ja) 1993-03-22 1993-03-22 除算回路

Publications (2)

Publication Number Publication Date
DE4409834A1 DE4409834A1 (de) 1994-09-29
DE4409834C2 true DE4409834C2 (de) 1998-09-10

Family

ID=13182470

Family Applications (1)

Application Number Title Priority Date Filing Date
DE4409834A Expired - Fee Related DE4409834C2 (de) 1993-03-22 1994-03-22 Multiplizierschaltung

Country Status (5)

Country Link
US (2) US5444647A (de)
JP (1) JP3276444B2 (de)
CA (1) CA2119283C (de)
DE (1) DE4409834C2 (de)
FR (2) FR2703166B1 (de)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR0175974B1 (ko) * 1995-07-04 1999-05-15 김은영 파이프라인 구조에 근거한 곱셈/나눗셈 공유 처리기 구조
US5726927A (en) * 1995-09-11 1998-03-10 Digital Equipment Corporation Multiply pipe round adder
US5729485A (en) * 1995-09-11 1998-03-17 Digital Equipment Corporation Fast determination of carry inputs from lower order product for radix-8 odd/even multiplier array
JP3652447B2 (ja) * 1996-07-24 2005-05-25 株式会社ルネサステクノロジ ツリー回路
JPH10133856A (ja) * 1996-10-31 1998-05-22 Nec Corp 丸め機能付き乗算方法及び乗算器
JP3019796B2 (ja) * 1997-01-10 2000-03-13 日本電気株式会社 乗算器
US6434587B1 (en) 1999-06-14 2002-08-13 Intel Corporation Fast 16-B early termination implementation for 32-B multiply-accumulate unit
DE10201449C1 (de) 2002-01-16 2003-08-14 Infineon Technologies Ag Rechenwerk, Verfahren zum Ausführen einer Operation mit einem verschlüsselten Operanden, Carry-Select-Addierer und Kryptographieprozessor
DE10201442C1 (de) * 2002-01-16 2003-07-31 Infineon Technologies Ag Vorrichtung und Verfahren zum Multiplizieren oder Dividieren eines ersten Operanden mit bzw. durch einen zweiten Operanden
US7769797B2 (en) 2004-01-20 2010-08-03 Samsung Electronics Co., Ltd. Apparatus and method of multiplication using a plurality of identical partial multiplication modules
US8442217B2 (en) * 2008-11-17 2013-05-14 Intel Corporation Method of implementing one way hash functions and apparatus therefor
US8615540B2 (en) 2009-07-24 2013-12-24 Honeywell International Inc. Arithmetic logic unit for use within a flight control system
US9262123B2 (en) * 2013-07-31 2016-02-16 Arm Limited Data processing apparatus and method for performing a narrowing-and-rounding arithmetic operation
CN113630236A (zh) * 2021-07-21 2021-11-09 浪潮电子信息产业股份有限公司 一种sm3的数据加密方法及相关装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3901995A1 (de) * 1988-01-25 1989-08-03 Oki Electric Ind Co Ltd Parallelmultiplizierer
DE3909713A1 (de) * 1988-10-18 1990-04-19 Mitsubishi Electric Corp Multiplizierschaltung

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3623012A (en) * 1969-06-30 1971-11-23 Ibm Accounting system with program by example facilities
US3803393A (en) * 1969-07-01 1974-04-09 Nasa Asynchronous binary array divider
US3885141A (en) * 1974-02-06 1975-05-20 Bell Telephone Labor Inc Modular pipeline multiplier to generate a rounded product
US4153938A (en) * 1977-08-18 1979-05-08 Monolithic Memories Inc. High speed combinatorial digital multiplier
JPS5938850A (ja) * 1982-08-27 1984-03-02 Toshiba Corp 割算回路
US4648058A (en) * 1984-04-03 1987-03-03 Trw Inc. Look-ahead rounding circuit
JP2585649B2 (ja) * 1987-11-30 1997-02-26 インデータシステムズ株式会社 除算回路

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3901995A1 (de) * 1988-01-25 1989-08-03 Oki Electric Ind Co Ltd Parallelmultiplizierer
DE3909713A1 (de) * 1988-10-18 1990-04-19 Mitsubishi Electric Corp Multiplizierschaltung

Also Published As

Publication number Publication date
JP3276444B2 (ja) 2002-04-22
CA2119283A1 (en) 1994-09-23
US5444647A (en) 1995-08-22
CA2119283C (en) 1998-06-30
FR2703166A1 (fr) 1994-09-30
DE4409834A1 (de) 1994-09-29
FR2727777A1 (fr) 1996-06-07
US5619440A (en) 1997-04-08
JPH06274317A (ja) 1994-09-30
FR2703166B1 (fr) 1997-06-13
FR2727777B1 (fr) 1997-06-13

Similar Documents

Publication Publication Date Title
DE4409834C2 (de) Multiplizierschaltung
EP0123921B1 (de) Parallelverknüpfungsschaltung mit verkürztem Übertragsdurchlauf
DE10105945B4 (de) Multiplizierer mit Linearsummierungsarray sowohl zur vorzeichenbehafteten als auch zur vorzeichenlosen Multiplikation
DE3927009A1 (de) Addierschaltung
DE3700991A1 (de) Digitaler uebertragsvorgriffsaddierer
DE4101004C2 (de) Paralleler Multiplizierer mit Sprungfeld und modifiziertem Wallac-Baum
EP0418412B1 (de) Schaltungsanordnung zur Produktsummenberechnung
DE102007056104A1 (de) Verfahren und Vorrichtung zur Multiplikation von Binäroperanden
DE2758130A1 (de) Binaerer und dezimaler hochgeschwindigkeitsaddierer
DE3434777C2 (de)
EP0265555B1 (de) Verfahren und Schaltungsanordnung zur Addition von Gleitkommazahlen
EP0130397B1 (de) Digitales Rechenwerk
EP0090298B1 (de) In MOS-Technik integrierter schneller Multiplizierer
DE2705989C2 (de) Schaltungsanordnung zum parallelen Addieren oder Subtrahieren von mindestens zwei Eingangszahlen
DE19545900B4 (de) Multiplizierglied zum auswählenden Ausführen der Multiplikation von vorzeichenlosen Größen oder der Multiplikation von vorzeichenbehafteten Größen
DE3909713C2 (de)
DE10117041C1 (de) Carry-Ripple Addierer
DE3545433C2 (de)
DE2727051A1 (de) Einrichtung zur binaeren multiplikation einer zahl mit einer summe aus zwei zahlen
DE19711005C2 (de) Baumschaltung zur Addition von Teilprodukten im Booth-Algorithmus
DE4447781B4 (de) Divisionsschaltung
DE2952689C2 (de)
EP0424410B1 (de) Multiplizierer
DE2948340A1 (de) Informationsuebertragungssystem
DE10206830B4 (de) Verfahren und Anordnung zur Zusammenführung von Daten aus parallelen Datenpfaden

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8172 Supplementary division/partition in:

Ref country code: DE

Ref document number: 4447781

Format of ref document f/p: P

Q171 Divided out to:

Ref country code: DE

Ref document number: 4447781

AH Division in

Ref country code: DE

Ref document number: 4447781

Format of ref document f/p: P

D2 Grant after examination
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee