DE69838877T2 - Architektur eines schnellen regulären multiplizierers - Google Patents

Architektur eines schnellen regulären multiplizierers Download PDF

Info

Publication number
DE69838877T2
DE69838877T2 DE69838877T DE69838877T DE69838877T2 DE 69838877 T2 DE69838877 T2 DE 69838877T2 DE 69838877 T DE69838877 T DE 69838877T DE 69838877 T DE69838877 T DE 69838877T DE 69838877 T2 DE69838877 T2 DE 69838877T2
Authority
DE
Germany
Prior art keywords
input
gate
inputs
signal
carry
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
DE69838877T
Other languages
English (en)
Other versions
DE69838877D1 (de
Inventor
Ingrid Encino VERBAUWHEDE
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.)
Atmel Corp
Original Assignee
Atmel 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 Atmel Corp filed Critical Atmel Corp
Application granted granted Critical
Publication of DE69838877D1 publication Critical patent/DE69838877D1/de
Publication of DE69838877T2 publication Critical patent/DE69838877T2/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/5318Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel with column wise addition of partial products, e.g. using Wallace tree, Dadda counters
    • 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

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)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Complex Calculations (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Advance Control (AREA)
  • Image Processing (AREA)
  • Mobile Radio Communication Systems (AREA)

Description

  • TECHNISCHES GEBIET
  • Die vorliegende Erfindung betrifft elektrische digitale Schaltungen zum Durchführen einer binären Multiplikation mittels Kreuzproduktsummen, d. h. parallele Multiplizierer, und betrifft insbesondere die Architektur einer solchen Anordnung einer Multiplikationsschaltung von Addierern zum Summieren der Partialprodukte. Architekturen, die für eine minimale Schaltungsfläche und/oder maximale Betriebsgeschwindigkeit optimiert sind, sind besonders relevant. Multiplizierer mit ausgeglichenen Signalausbreitungsverzögerungen zum Minimieren von störenden Übergängen sind auch relevant.
  • STAND DER TECHNIK
  • Eine Multiplikationsschaltung oder ein Multiplizierer besteht hauptsächlich aus drei Teilen: (1) einem Partialproduktgenerator, der aus einer Matrix von UND-Logikgattern besteht, die jeweils ein Bit eines Multiplikanden und ein Bit eines Multiplikators (hier die Zahl im Gegensatz zur Schaltung) verarbeiten, (2) einer Multiplizierermatrix (auch Addierermatrix genannt), die aus Spalten von Addieren besteht, die die Partialprodukte durch Summierung zu zwei Worten reduzieren, die gewöhnlich "Summen"-Wort und "Übertrag"-Wort genannt werden, und (3) einem Vektorkombinationsaddierer zum Addieren der Summen- und Übertragworte, was ein Ausgangswort, das Produkt, ergibt. Wenn zwei binäre Zahlen, ein M-Bit-Multiplikand und ein N-Bit-Multiplikator, multipliziert werden, werden gewöhnlich M×N Partialproduktterme erzeugt (obwohl einige zusätzliche Terme vorhanden sein können, um negative Zahlen zu handhaben), die man sich alternativ als N M-Bit-Partialprodukte vorstellen könnte, und das resultierende Produkt weist im Allgemeinen M + N Bits auf. In den meisten Multiplikationsschaltungen weisen sowohl der Multiplikand als auch der Multiplikator dieselbe N-Bit-Größe auf und das Produkt ist daher 2 N Bits breit.
  • Multiplikationsschaltungen werden, wenn sie in Digitalsignalprozessoren verwendet werden, mit einem Akkumulator kombiniert, so dass eine digitale Filterung und andere Signalverarbeitungsfunktionen leicht durchgeführt werden können. Die grundlegende Operation ist ACC:= ACC + (A·B) oder ACC:= ACC – (A·B). Das heißt, typischerweise addiert oder subtrahiert der Akkumulator das Ergebnis der Multiplikation mit dem vorherigen akkumulierten Wert. Der Akkumulator ist typischerweise P Bits breit, wobei P > 2 N, 2N Bits ist die Breite des Multipliziererprodukts und die am weitesten links liegenden (höchstwertigen) P – 2 N Bits, die Schutzbits genannt werden, sind vorhanden, um einen Überlauf zu verhindern. Das US-Pat. Nr. 4 575 812 , Kloker et al., beschreibt eine solche Multiplizierer/Akkumulator-Schaltung. Bei einer unkomplizierten Implementierung einer Multiplizierer/Akkumulator-Schaltung folgt der Akkumulatoraddierer dem Vektorkombinationsaddierer des Multiplizierers, so dass bei einer ersten Addition die Summen- und Übertragworte addiert werden, um das Multiplikationsprodukt zu bilden, und dann folgt diesem eine zweite Addition dieses Produkts mit dem Wert im Akkumulator. Alternativ könnte der Akkumulator mit dem Multiplizierer integriert werden, indem eine zusätzliche Reihe von Addierern zur Multiplizierermatrix hinzugefügt wird und das Zwei-Wort-Ergebnis zum Vektorkombinationsaddierer geliefert wird. Da nur ein Endaddierer bereitgestellt werden muss, vereinfacht dies den Konstruktionsaufwand und verbessert auch etwas die Geschwindigkeit.
  • Ungeachtet dessen, ob ein Multiplizierer allein oder eine kombinierte Multiplizierer/Akkumulator-Schaltung betrachtet wird, besteht der kritische Weg, der die Betriebsgeschwindigkeit festlegt, aus einer Verzögerung durch die Multiplizierermatrix und einer Verzögerung durch den Endaddierer (plus irgendeiner Verzögerung durch einen separaten Akkumulatoraddierer). Der Multiplizierer ist der langsamste Teil eines Digitalsignalprozessors, so dass irgendeine Verbesserung der Geschwindigkeit des Multiplizierers die Gesamtgeschwindigkeit des Prozessors verbessert. Eine Hochgeschwindigkeitsverarbeitung ist beispielsweise zum Implementieren von anspruchsvollen Sprach- und Kanalcodieralgorithmen für die Kommunikation mit digitalen Mobiltelefonen erforderlich. Ein weiterer Faktor ist die Anordnungsfläche und Regelmäßigkeit. Ein regelmäßiger Lageplan ist leicht zu entwerfen und anzuordnen, wohingegen ein unregelmäßiger Lageplan beträchtlich mehr Zeit und Aufwand für die Anordnung in Anspruch nimmt. Die Wahl einer Multipliziererarchitektur beinhaltet gewöhnlich Kompromisse zwischen Fläche und Geschwindigkeit. Baummultipliziererarchitekturen weisen eine zu O(log N) proportionale Verzögerung auf, wohingegen Matrixmultipliziererarchitekturen eine zu O(N) proportionale Verzögerung aufweisen (wobei N die Wortlänge in Bits ist). Folglich sind Baumarchitekturen schneller. Da jedoch Baummultiplizierer große Verschiebungen von Daten senkrecht zum Datenweg erfordern, ist ihre Implementierung hinsichtlich der Leitweglenkung intensiv, was eine größere Schaltungsfläche als Matrixmultiplizierer erfordert. Baumarchitekturen sind auch in ihrer Anordnung gewöhnlich sehr unregelmäßig.
  • Im US-Pat. Nrn. 5 343 417 und 5 586 071 beschreibt Flora eine Wallace-Baummultipliziererarchitektur, in der die Spalten von Volladdierern und Halbaddierern, die im Multiplizierer verwendet werden, um die Partialprodukte durch fortlaufende Addition zu Summen- und Übertragwerten zu reduzieren, so gewählt sind, dass die speziellen in jeder Addiererebene zu addierenden Eingangssignale vorgeschriebenen Regeln entsprechen, die die Betriebsgeschwindigkeit des Multiplizierers verbessern. US-Pat. Nrn. 5 181 185 , Han et al., und 5 504 915 , Rarick, offenbaren andere parallele Multiplizierer mit hoher Geschwindigkeit, die modifizierte Wallace-Baumaddierer zum Summieren der Spalten von Partialprodukten verwenden. Alle von diesen offenbarten Multiplikationsschaltungen stellen die grundlegende Anordnungsunregelmäßigkeit dar, die für Baummultipliziererarchitekturen charakteristisch ist. Die modifizierten Wallace-Bäume verzichten auf eine gewisse Geschwindigkeit, um eine größere Anordnungsregelmäßigkeit im Vergleich zu reinen Wallace-Baumarchitekturen zu erhalten.
  • US-Pat. Nr. 4 901 270 , Galbi et al., und ein Artikel von G. Goto et al. in IEEE Journal of Solid-State Circuits, Band 27, Nr. 9, September 1992, Seiten 1229–1234, beschreiben die Verwendung von Vier-zu-Zwei-Komprimierungsaddierern in Baummultiplizierern für die weitere Verbesserung ihrer Geschwindigkeit. Im US-Pat. Nr. 5 347 482 offenbart Williams, dass die Verwendung von Neun-zu-Drei-Addierern in einem Wallace-Baum die Anordnung und Signalleitweglenkung aufgrund der größeren Basisbaueinheiten des Baums vereinfacht und dennoch mit derselben Anzahl von Addiererverzögerungen wie ein Drei-zu-Zwei-(Voll-)Addierer arbeitet. Im US-Pat. Nr. 5 265 043 offenbaren Naini et al. eine Wallace-Baummultipliziererarchitektur, die mit ihren schnellen Dreioperandenaddierern versehen ist, die in einer L-fachen Anordnung oder einem L-fachen Lageplan angeordnet sind, um die Anordnungsregelmäßigkeit dieser Architektur zu verbessern und die erforderliche Anordnungsfläche zu verkleinern.
  • G. J. Hekstra et al. beschreiben in "A Fast Parallel Multiplier Architecture", Proceedings of IEEE Symposium an Circuits and Systems, Seiten 2128–2131, 1992, eine Architektur mit regelmäßiger Anordnung mit einer zu O(√N) proportionalen Verzögerung. Folglich bietet sie eine Alternative zur kompakten und regelmäßigen, aber langsamen Matrixmultipliziererarchitektur und zu schnellen Baummultipliziererarchitekturen, die jedoch unregelmäßig sind und eine große Schaltungsfläche aufweisen, wie der Wallace-Baummultiplizierer. Die Hekstra-Multipliziererarchitektur weist eine Struktur auf der Basis einer "Matrix von Matrizes" auf, die aus einer Anzahl von Untermatrizes besteht, die eine Reihe von Partialsummen erzeugen, die in eine Hauptmatrix eingespeist werden, die die Partialsummen addiert, um das Produkt zu bilden. Die Hauptmatrixstufen bestehen aus zwei Reihen von Volladdierern in einer Vier-zu-Zwei-Reduziererkonfiguration. Die Untermatrizes bestehen aus Reihen von Volladdierern zusammen mit den Partialproduktgeneratoren. Die Größen der Untermatrizes variieren und wurden sorgfältig gewählt, um die Ausbreitungsverzögerungen auszugleichen, so dass Summanden an einer Hauptmatrixstufe gleichzeitig mit der Partialsumme der vorherigen Stufe ankommen. Bei der Implementierung von Hekstra geschieht dies, wenn die Größen der Untermatrizes, d. h. die Anzahl von Volladdiererreihen, in Stufen von zwei von einer Untermatrix zur nächsten zunehmen.
  • Ein Artikel von T. Sakuta et al. in IEEE Symposium an Low Power Electronics: Digest of Technical Papers, Seiten 36– 37, Oktober 1995, hebt die Bedeutung des Verzögerungsausgleichs, um störende Übergänge zu minimieren und dadurch einen unnötigen Leistungsverlust zu minimieren, hervor. Addierer beginnen die Berechnung gleichzeitig, ohne auf die Ausbreitung von Summen- und Übertragsignalen von einer vorherigen Stufe zu warten, so dass, wenn die Summanden nicht gleichzeitig an einem Addierer eintreffen, sich störende Übergänge ergeben. Diese störenden Übergänge breiten sich auch zu nachfolgenden Stufen aus, was zu einer wachsenden Anzahl von Übergängen von einer Stufe zur nächsten führt. Herkömmliche Matrixmultipliziererarchitekturen sind von Natur aus unausgeglichen und verbrauchen folglich gewöhnlich viel Leistung. Im Gegensatz dazu sind Wallace-Baum-Multiplizierer aufgrund ihrer innewohnenden parallelen Struktur natürlich ausgeglichen und besitzen folglich eine geringere Wahrscheinlichkeit für das Auftreten von störenden Übergängen. Verzögerungsschaltungen könnten in die Signalwege von irgendwelchen Produkttermeingängen eingefügt werden, die eine Addiererleiter überspringen, um sie mit den anderen Eingängen von entsprechenden Addierern zu synchronisieren, wie von T. Sakuta et al. gelehrt. Hinsichtlich der vorstehend erwähnten Hekstra-Architektur, ist dieser Multiplizierer nur zufällig aufgrund einer geeigneten Auswahl der Untermatrixgrößen hinsichtlich der Verzögerung ausgeglichen.
  • Obwohl die Multipliziererarchitektur vom Hekstra-Typ im Vergleich zur Wallace- und zu anderen Baumarchitekturen sehr regelmäßig ist und fast so kompakt ist wie ein herkömmlicher Matrixmultiplizierer und auch viel schneller ist als ein Matrixmultiplizierer, ist sie immer noch etwas langsamer als die Baummultipliziererarchitekturen. Aufgrund ihrer natürlich ausgeglichenen parallelen Struktur war es relativ leicht, Vier-zu-Zwei-, Neun-zu-Drei- und andere Komprimierungsaddiererstrukturen in die Baummultiplizierer zu integrieren, ohne ihre ausgeglichene Signalausbreitung zu zerstören, um ihre Betriebsgeschwindigkeit zu erhöhen. Überdies haben modifizierte Baumarchitekturen und Hybrid-Baum-Matrix-Architekturen Entwicklern ermöglicht, die Regelmäßigkeit zu verbessern und die Schaltungsfläche in einem gewissen Ausmaß zu verringern, ohne zu viel Geschwindigkeit zu opfern. Wenn der Platz nicht an erster Stelle steht, wurden folglich Baumarchitekturen zur Konstruktion der Wahl. Wenn eine kleine Schaltungsfläche wesentlich ist, waren Schaltungsentwickler dazu gezwungen, mit Matrixmultiplizierern trotz ihrer langsamen Geschwindigkeit zurechtzukommen. Der Multiplizierer vom Hekstra-Typ ist nicht allgemein bekannt und wurde im Allgemeinen ignoriert. Da die einseitige Architektur von Addiereruntermatrizes, die in eine einzelne Hauptmatrix eingespeist werden, nicht von Natur aus ausgeglichen ist, sondern vielmehr nur durch die Konstruktion mit einer zweckmäßigen Auswahl von Untermatrixgrößen ausgeglichen ist, würden irgendwelche Modifikationen eine große Sorgfalt erfordern, wenn der Ausgleich aufrechterhalten werden soll.
  • Oklobdzija et al. schlagen in ihrem Dokument "Improving Multiplier Design by Using Improved Column Compression Tree and Optimized Final Adder in CMOS Technology", IEEE Transaction an VLSI Systems, Band 3, Nr. 2, Juni 1995, S. 292–301, eine Multipliziererstruktur unter Verwendung von Wallace-Baumaddierstrukturen vor. Eine solche Struktur ist von Natur aus ausgeglichen und die vorgeschlagene Verwendung von 4:2-Komprimierern darin erfüllt die Verzögerungsausgleichsanforderungen am besten. Die 4:2-Komprimierer weisen vier Signaleingänge und einen zusätzlichen Übertragausgang sowie einen zusätzlichen Übertragausgang, einen Summen- und einen Signalausgang auf. Das Problem, das diese Wallace-Baumaddierstruktur löst, betrifft die Tatsache, dass mehr Partialproduktbits mit mittlerer Bitwertigkeit summiert werden als Partialproduktbits mit hoher oder niedriger Bitwertigkeit. Folglich kommen die Ergebnisse der verschiedenen Summierungsbaumstrukturen für die verschiedenen Bitwertigkeiten nicht gleichzeitig am End-Übertrag-Ausbreitungsaddierer an. Oklobdzija et al. flachen das Signalankunftsprofil so weit wie möglich ab, indem sie die Wege in der Mitte der Struktur verkürzen.
  • US 5 497 342 offenbart einen zellulären Multiplizierer mit einer Vielzahl von ARC-Addierern, die in einer Kaskadenanordnung verbunden sind. Verbindungsoperatoren, die durch die ARC-Addierer gebildet sind, weisen eine unterschiedliche Signalweglänge in Abhängigkeit vom Eingangsanschluss der ARC-Addierer auf. In anschließenden Spalten werden beispielsweise spezielle Signale in die zweite und dritte Zeile der Multiplikationsschaltung eingegeben. Die verschiedenen Signalweglängen führen zu verschiedenen Signalverzögerungen.
  • Es ist eine Aufgabe der vorliegenden Erfindung, eine modifizierte Multipliziererarchitektur vom Hekstra-Typ mit verbesserter Betriebsgeschwindigkeit bereitzustellen, wobei spezielle Maßnahmen zum Beibehalten des Verzögerungsausgleichs vorgesehen sind.
  • Die Erfindung ist in den Ansprüchen 1 bzw. 11 definiert. Spezielle Ausführungsbeispiele sind in den abhängigen Ansprüchen dargelegt.
  • OFFENBARUNG DER ERFINDUNG
  • Die Aufgabe wurde mit einer Multipliziererarchitektur vom Hekstra-Typ, das heißt einer, bei der eine Vielzahl von Addiereruntermatrizes in eine Hauptaddierermatrix einspeisen, gelöst, welche modifiziert wurde, indem Paare von Volladdierern in den Untermatrizes gegen Vier-zu-Zwei-Komprimierungsaddiererschaltungen, die nachstehend als Komprimiererschaltungen bezeichnet werden, auf eine Weise ausgetauscht wurden, die das Gleichgewicht der Signalausbreitungsverzögerungen bewahrt, so dass Partialsummen in jeder Stufe der Hauptmatrix gleichzeitig ankommen. Zwei Arten von Komprimiererschaltungen, die als symmetrische und asymmetrische Komprimierer bezeichnet werden, werden in verschiedenen Teilen der Multipliziererarchitektur verwendet. Die asymmetrischen Komprimierer werden verwendet, wann immer nicht alle ihrer Eingangssignale gleichzeitig zur Verfügung stehen.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • 1 und 2 sind jeweilige Diagramme der Komponentenverbindungsstruktur und Blockanordnung einer typischen Baummultipliziererarchitektur des Standes der Technik.
  • 3 und 4 sind jeweilige Diagramme der Komponentenverbindungsstruktur und Blockanordnung einer modifizierten Multipliziererarchitektur vom Hekstra-Typ gemäß der vorliegenden Erfindung, die zum Vergleich mit 1 und 2 nebeneinander angeordnet sind.
  • 5 ist ein detailliertes schematisches Blockdiagramm einer bevorzugten Multipliziererarchitektur der vorliegenden Erfindung, das die Komponenten der Multiplizierermatrix der Architektur zeigt, die Partialprodukte durch Summierung verringern. Der End-Vektorkombinationsaddierer ist herkömmlich und ist nicht gezeigt.
  • 6 und 7 sind algebraische Standardschreibweisen, die die Multiplikation durch bekannte Algorithmen für die Summe von Kreuzprodukten eines m-Bit-Multiplikanden und eines n-Bit-Multiplikators zum Bilden eines (m + n)-Bit-Produkts für jeweilige Schreibweisen ohne Vorzeichen und Zweierkomplement-Schreibweisen darstellen. Die Zweierkomplement-Multiplikation von 7 implementiert den im US-Pat. Nr. 3 866 030 offenbarten Baugh-Wooley-Algorithmus und wird durch die bevorzugte Multiplikationsschaltung von 5 ausgeführt.
  • 811 sind Logikgatterebenen-Schaltpläne von Vier-zu-Zwei-Komprimiererschaltungen zur Verwendung in der Multiplikationsschaltung von 5.
  • 12 und 13 sind Diagramme der Komponentenverbindungsstruktur für zwei alternative modifizierte Multipliziererarchitekturen vom Hekstra-Typ gemäß der vorliegenden Erfindung.
  • BESTE ART ZUR AUSFÜHRUNG DER ERFINDUNG
  • Mit Bezug auf 14 wird eine Baumarchitektur des Standes der Technik nebeneinander mit einer Architektur gemäß der vorliegenden Erfindung dargestellt, so dass ihre jeweiligen Strukturen, Leitweglenkung und Ausbreitungsverzögerungen verglichen werden können. In 1 ist zu sehen, dass die Struktur des Standes der Technik ein voller Binärbaum, d. h. ein Wallace-Baum, ist, wobei jeder Volladdierer (F) in einer Anfangsebene von Addierern (Ebene 0) einen Satz von Partialprodukten 13, typischerweise drei pro Addierer, verarbeitet, um eine Partialsumme zu erzeugen. Somit erzeugt die Anfangsebene einen Satz von Partialsummen gleich der Anzahl von Volladdierern (F) in der Ebene 0 der Struktur. Die Addierer (F) erzeugen auch eine gleiche Anzahl von Überträgen, die zur Ebene 1 einer ähnlichen Baumstruktur übertragen werden, die für das Summieren von Partialprodukten der Ebene mit nächsthöherer Wertigkeit für das binäre Produkt verantwortlich ist. In 1 besteht die Ebene 1 aus einem Satz von 4-zu-2-Komprimiererschaltungen wie z. B. jenen, die von Goto et al. in IEEE Journal of Solid-State Circuits, Band 27, Nr. 9, September 1992, Seiten 1229–1235, beschrieben sind. Jede Komprimiererschaltung führt die Operationen von zwei Volladdierern in Reihe aus, weist jedoch eine Ausbreitungsverzögerung von etwa 1,5 mal einer Volladdiererverzögerung auf. Zwei Volladdierer könnten verwendet werden, falls erwünscht. Jede Komprimiererschaltung (C) in der Ebene 1 nimmt vier Eingangssignale von der Ebene 0, wie z. B. zwei Partialsummen, die von zwei Volladdierern (F) in der Ebene 0 im gleichen Baum ausgegeben werden, und zwei Überträge von äquivalenten Volladdierern der Ebene 0 in dem Baum, der für das Summieren der Partialprodukte der Ebene der nächstniedrigeren Wertigkeit des binären Produkts verantwortlich ist. Jede Komprimiererschaltung (C) der Ebene 1 empfängt auch einen weiteren Übertrag vom entsprechenden Komprimierer der Ebene 1 im Summierbaum mit nächstniedrigerer Wertigkeit. Die Komprimiererschaltung (C) der Ebene 1 erzeugt einen Übertrag für den entsprechenden Komprimierer der Ebene 1 im Summierbaum mit nächsthöherer Wertigkeit und einen zweiten Übertrag für einen Komprimierer der Ebene 2 im Summierbaum mit nächsthöherer Wertigkeit. Sie erzeugt auch eine Partialsumme für einen Komprimierer der Ebene 2 im gleichen Baum wie sie selbst. Die Komprimierer in den Ebenen 2 und 3 arbeiten auf eine ähnlich Weise. Auf diese Weise reduziert jeder Baum Partialprodukte derselben Wertigkeitsebene (zusammen mit Überträgen vom Summierbaum mit nächstniedrigerer Wertigkeit) zu einer Endsumme und einem Endübertrag. Jede fortlaufende Ebene reduziert die Anzahl von Partialsummen auf die Hälfte, so dass die Anzahl von erforderlichen Ebenen (und daher die Ausbreitungsverzögerung) in der Größenordnung von log(N) liegt, wobei N die Anzahl von zu summierenden Partialprodukten ist. Der Baum in 1 ist in der Lage, bis zu 24 Partialprodukte zu handhaben (8 Volladdierer mal 3 Partialprodukte pro Addierer).
  • Ein Problem bei solchen Baumstrukturen tritt auf, wenn versucht wird, eine solche Architektur auf eine etwas regelmäßige Weise anzuordnen. Da die Struktur baumartig ist, ist es schwierig, sie in eine rechteckige Form zu bekommen. In 2 ist der Baum von 1, der für eine einzelne bitweise Wertigkeitsebene im Endprodukt verantwortlich ist, auf eine lineare Weise angeordnet, so dass benachbarte Bäume nebeneinander angeordnet werden können, um die Übertragung der Übertragsignale von einem Bitspaltenbaum zum nächsten zu erleichtern. Jeder Block oder jede Zelle in 2 stellt entweder einen Volladdierer (F) oder eine Komprimiererschaltung (C) dar. Wie vorher erwähnt, könnten Paare von Volladdierern anstelle der Komprimiererschaltungen verwendet werden. Jede Zelle in 2 gibt auch die Ebene an, zu der sie gehört (L0, L1, L2, L3). Die Übertragung von Partialsummen zur nächsten Ebene ist durch die Pfeile zwischen Zellen angegeben. Es ist zu sehen, dass die Baumarchitektur ein ernstes Leitweglenkungsproblem aufwirft. Nur die Hälfte der Verbindungen zwischen Zellen sind lokal, wohingegen die andere Hälfte eine Leitweglenkung durch eine oder mehrere zwischenliegende Zellen erfordert. Mit jeder zusätzlichen Ebene, die zur Baumhierarchie hinzugefügt wird, verdoppelt sich die Länge von nicht-lokalen Leitungen, so dass, während die Verbindung der Zelle der Ebene 0 und der Zellen der Ebene 1 nicht-lokale Leitungen 15 erfordert, die zwei Zellen lang sind, einige Verbindungen zwischen den Ebenen 1 und 2 nicht-lokale Leitungen 17 erfordern, die vier Zellen lang sind, und eine bestimmte Verbindung zwischen den Ebenen 2 und 3 eine Verdrahtung 19 erfordert, die acht Zellen lang ist. Mit jeder zusätzlichen Ebene in der Hierarchie müssen überdies zwei zusätzliche Leitwegbahnen durch Zellen vorgesehen werden. Die Zahlen auf der rechten Seite jeder Zelle in 2 zeigen die Anzahl von Leitungen von Zelle zu Zelle, die durch diese Zelle verlaufen. Verschiedene Zellen weisen verschiedene Zahlen von kreuzenden Bahnen, damit die Leitungen durchlaufen, in Abhängigkeit von ihrer Position in der Zeile von Zellen auf, wobei die späteren Zellen gewöhnlich mehr Bahnen erfordern. Diese Situation erfordert einen zusätzlichen Anordnungsaufwand, da jede Ebene in der Hierarchie eine andere Anordnungstopologie erfordert. Die Breiten der Zellen variieren gemäß der Anzahl von Verdrahtungsbahnen, die sie aufnehmen müssen. Es sind mehrere Blöcke von Zellen vorhanden, die zwei Volladdierer (F), gefolgt von einer Komprimiererschaltung (C) aufweisen. Die Blöcke 1, 2 und 3 sind jedoch alle von einem unterschiedlichen Anordnungstyp, da die verschiedenen Blöcke verschiedene Zahlen von Leitwegbahnen erfordern.
  • 3 zeigt eine Architektur gemäß der vorliegenden Erfindung. Diese Architektur weist eine Sequenz von fortlaufend längeren Ketten (CSA0, CSA1, CSA2, CSA3, CSA4) von Addierern auf, die Partialsummen erzeugen, die in eine Reihe von Hauptaddiererstufen (MS1, MS2, MS3, MS4) eingespeist werden. Die Struktur ist eine Verbindung von schnellen Dreioperandenmatrizes. Zwei solche Untermatrizes (CSA0 und CSA1) bestehen jeweils aus einer Volladdiererzelle für jede Spalte von Partialprodukten und liefern Partialsummen zu einem ersten Hauptstufenaddierer MS1. Alle Hauptstufenaddierer sind Vier-zu-Zwei-Komprimiererschaltungen. Das Ausgangssignal des ersten Hauptstufenaddierers MS1 und die von noch einer anderen Untermatrix CSA2 gelieferte Partialsumme werden in einen zweiten Hauptstufenaddierer MS2 eingegeben. Um den korrekten Verzögerungsausgleich aufrechtzuerhalten, besteht die Untermatrix CSA2 aus einer Volladdiererzelle (F) und einer Komprimiererschaltung (C), so dass die durch die Untermatrix CSA2 erzeugte Partialsumme gleichzeitig mit jener der ersten Hauptstufe MS1 am zweiten Hauptstufenaddierer MS2 ankommt. Das Ausgangssignal des zweiten Hauptstufenaddierers MS2 und das von einer Untermatrix CSA3 gelieferte Partialsummenausgangssignal werden in einen dritten Hauptstufenaddierer MS3 eingegeben. Um einen korrekten Verzögerungsausgleich aufrechtzuerhalten, besteht die Untermatrix CSA3 wieder aus einem Volladdierer (F) und zwei Komprimiererschaltungen (C), um die Ausbreitungsverzögerung durch die zweite Hauptstufe MS2 abzugleichen. Diese Sequenz kann zu beliebig großen Strukturen fortfahren, wobei jede Stufe in der Größe eine weitere Hauptstufe (z. B. MS4) und eine weitere Untermatrix (z. B. CSA4) umfasst, wobei für einen korrekten Ausgleich die aufeinander folgenden schnellen Dreioperandenmatrizes, die die Untermatrizes bilden, die in die Hauptstufenaddierer eingespeist werden, in der Größe um eine Komprimiererschaltung pro Untermatrix zunehmen. Folglich würde die Untermatrix CSA4 aus einer Volladdiererstufe (F) und drei Komprimiererstufen (C) bestehen. Ein weiterer Unterschied, der von der einseitigen Art der "Verzweigung" in der Struktur benötigt wird, besteht darin, dass die Komprimiererschaltungen (C) für die Hauptstufen (MS1, MS2, MS3, MS4) symmetrische Schaltungen sind, da alle Eingangssignale natürlich gleichzeitig ankommen, wenn die Untermatrixgrößen korrekt gewählt sind, aber dass mindestens einige der Komprimiererschaltungen (C) in den Untermatrizes (CSA2, CSA3, CSA4) asymmetrische Schaltungen sind, da ihre Partialprodukt-Eingangssignale normalerweise früher ankommen würden als die Partialsummen, die von der vorangehenden Stufe der Untermatrizes ausgegeben werden. Zusätzliche Verzögerungsschaltungen können enthalten sein, wie jene, die im vorher angeführten Artikel von T. Sakuta et al. erwähnt sind. Eine detailliertere Beschreibung der symmetrischen und asymmetrischen Komprimierer wird nachstehend mit Bezug auf 811 vorgesehen.
  • Wenn man sich nun 4 zuwendet, ist ein Vorteil dieser modifizierten Struktur vom Hekstra-Typ zu sehen, wenn die Addiererstufen linear in Blöcken angeordnet sind. Im Gegensatz zur Baumarchitektur von 2 sind abgesehen von den Verbindungen von einer Hauptstufe zur nächsten Hauptstufe und von der Untermatrix CSA0 zur ersten Hauptstufe MS1 alle Verbindungen lokal. Ungeachtet der Gesamtgröße der Architektur, d. h. der Anzahl von zu reduzierenden Produkttermen und der Anzahl von Hauptstufen und Untermatrizes, die zu deren Reduktion erforderlich sind, durchkreuzen folglich niemals mehr als zwei Signalwege eine Untermatrixzelle und alle Zellen können dieselbe Größe aufweisen, um diese Signalwege oder Bahnen aufzunehmen. Die Anordnung ist sehr regelmäßig und nur wenige verschiedene Arten von Zellen sind erforderlich, die über die ganze Struktur wiederholt sind, wodurch der Entwurf vereinfacht wird. Die Volladdierer (F) in jeder Untermatrix können identisch sein, die Hauptstufen-Komprimiererschaltungen (C) können identisch sein und die Untermatrix-Komprimiererschaltungen (C) können identisch sein, ungeachtet dessen, ob sie sich in der Untermatrix CSA2 oder CSA3 oder der Stufe SA1 oder SA2 usw. befinden.
  • Mit Bezug auf 5 ist ein bevorzugtes Ausführungsbeispiel einer Multipliziererschaltung der vorliegenden Erfindung zum Ausführen einer binären Zweierkomplement-Multiplikation von 17 Bits mal 17 Bits unter Verwendung des Baugh-Wooley-Algorithmus von US-Pat. Nr. 3 866 030 , jedoch mit der verbesserten Multipliziererarchitektur von 3 und 4 ausgelegt. In 5 beziehen sich die Zahlen von 0 bis 33 an der Oberseite und Unterseite der Figur auf das spezielle Bit im resultierenden Produkt. Die kleinen rechteckigen Elemente mit diagonaler Schraffierung beziehen sich auf die Produkttermgeneratoren. Die anders schraffierten rechteckigen Elemente unmittelbar über der Untermatrixebene SA31 und die ausgefüllten rechteckigen Elemente über den Halbaddiererzellen 2C0 und 2C1 sind auch Produktterme, die dem Baugh-Wooley-Zweierkomplement-Multiplikationsalgorithmus eigen sind. Alle Produktterme sind nachstehend in 7 detailliert dargestellt. Es gibt drei Grundarten von Addiererzellen, die in der Schaltung verwendet werden: Halbaddierer (H), Volladdierer (F) und Vier-zu-Zwei-Komprimiererschaltungen (C). Jeder von diesen Addierern ist auf dem Fachgebiet gut bekannt. Ferner sind die Vier-zu-Zwei-Komprimiererschaltungen (C) von zwei Arten, asymmetrisch für zumindest die Untermatrixstufe SA31 in 5 (die im Gegensatz zu 3 und 4 die Komprimiererstufen SA20, SA30 und SA31 vor den Volladdiererstufen SA21 und SA32 der Untermatrizes CSA2 und CSA3 anordnet), und ebenso in anderen Konfigurationen für andere Untermatrixstufen, und symmetrische Komprimiererschaltungen für zumindest die Hauptmatrixstufen MS1, MS2 und MS3. Die Konstruktion dieser zwei Komprimiererarten wird nachstehend mit Bezug auf 811 erörtert. Halbaddierer (H) könnten auch gegen Volladdierer (F) ausgetauscht werden, wobei einer der Eingänge auf den Logikpegel Null festgelegt ist. Ebenso könnte eine Kombination eines Volladdierers (F), gefolgt von einem Halbaddierer (H), innerhalb einer Stufe (oder sogar zwei Halbaddierer) gegen eine Komprimiererschaltung (C) ausgetauscht werden, wobei einer (oder zwei) der Eingänge auf Null festgelegt ist. Auf diese Weise kann noch mehr Regelmäßigkeit erhalten werden, wenn auch auf Kosten einer geringfügig weniger optimalen Addiererzelle.
  • Jede Zelle (H, F oder C) erzeugt sowohl einen Summenterm als auch einen Übertragterm. Repräsentative Verbindungen dieser Terme mit Eingängen in die Hauptmatrixstufen MS1, MS2 und MS3 sind durch die Pfeile gezeigt. Jede Zelle der Hauptstufen empfängt ein Summenterm-Ausgangssignal von einer vorherigen Hauptstufe (oder im Fall der Hauptmatrixstufe MS1 von der Untermatrix SA00), ein Übertragterm-Ausgangssignal von dieser gleichen vorherigen Hauptstufe (oder Untermatrix SA00), ein Summenterm-Ausgangssignal von der Untermatrixstufe, die zu dieser lokal ist, d. h. der Block von Addierern unmittelbar über ihr, und ebenso einen Übertragterm von dieser gleichen lokalen Untermatrixstufe. Die Summenterme stammen von Addiererzellen in derselben Bitspalte, während die Übertragterme von Addiererzellen der nächstniedrigeren Wertigkeit (d. h. unmittelbar rechts von den Zellen, die die Summenterme liefern) stammen. Somit empfängt beispielsweise die Komprimiererzelle (C) in der Bitspalte 18 der Hauptstufe MS3 einen Summenterm vom Komprimierer C in der Bitspalte 18 der Hauptstufe MS2, einen Übertragterm vom Komprimierer C in der Bitspalte 17 der Hauptstufe MS2, einen Summenterm vom Halbaddierer H in der Bitspalte 18 der Untermatrixstufe SA32 und einen Übertragterm vom Volladdierer F in der Bitspalte 17 der Untermatrixstufe SA32. In einigen Fällen steht das volle Komplement von zwei Summentermen und zwei Übertragtermen nicht zur Verfügung (beachtenswert weit links und weit rechts von den meisten Stufen), so dass eine Komprimiererzelle C nicht erforderlich ist und eine Volladdierer/Halbaddierer-Kombination oder sogar eine Halbaddierer/Halbaddierer-Kombination alles ist, was erforderlich ist. Der Ort der Bitspalte 9 der Hauptaddiererstufe MS2 empfängt folglich beispielsweise eine Summe und einen Übertrag von der Hauptstufe MS1, aber nur einen Summenterm von der Untermatrixstufe SA21. Kein Übertragterm von der Bitspalte 8 der Stufe SA21 wird erzeugt, so dass eine Komprimiererzelle in der Stufe MS2 – Spalte 9 nicht erforderlich ist. Wie vorher angegeben, könnten die Komprimierer (C) an jenen Stellen mit geeigneten festen Logikeingangssignalen von Null verwendet werden. Die Verbindungen zwischen aufeinander folgenden Stufen derselben Untermatrix, nämlich der Stufen SA20 und SA21 der Untermatrix CSA2 und der Stufen SA30, SA31 und SA32 der Untermatrix CSA3, sind rein lokal.
  • Mit Bezug auf 6 und 7 hängen die von der Multipliziererschaltung erzeugten Partialprodukte von der speziellen Binärzahlschreibweise und vom zu verwendenden Multiplikationsalgorithmus ab. Die in 5 gezeigte spezielle Schaltung führt die Baugh-Wooley-Zweierkomplement-Multiplikation von 7 durch. 6 zeigt die Multiplikation von zwei Binärzahlen in einer Schreibweise ohne Vorzeichen, d. h. eines m-Bit- Multiplikanden [am-1am-2 ... a2a1a0] und eines n-Bit-Multiplikators [bn-1 ... b2b1b0], um ein (m + n)-Bit-Produkt [Pm+n-1Pm+n-2Pm+n-3 ... P2P1P0] zu bilden. Der verwendete Algorithmus ist ein unkompliziertes Verfahren mit einer Summe von Kreuzprodukten. Die Bitspalte der Partialprodukte (aibj) entspricht der Summe der Bitwertigkeiten i und j, so dass beispielsweise das Partialprodukt (am-2b1) eine Bitwertigkeit im Endprodukt von (m – 2) + 1 = (m – i) aufweist und in der Bitspalte für Pm-1 erscheint. Jede Spalte von Partialprodukten derselben Bitwertigkeit wird addiert, wobei die Überträge zur Spalte der nächsthöheren Bitwertigkeit übertragen werden. In 7 liegen der m-Bit-Multiplikand [am-1am-2 ... a2a1a0] und der n-Bit-Multiplikator [bn-1 ... b2b1b0] in Zweierkomplement-Schreibweise vor. Folglich stellt [am-1am-2 ... a2a1a0] die Zahl {–(am-1)2m-1 + (am-2)2m-2 + ... + (a2)22 + (a1)21 + (a0)20} dar und ebenso stellt [bn-1 ... b2b1b0] die Zahl (–(bn-1)2n-1 + ... + (b2)22 + (b1)21 + (b0)20} dar. Man beachte die Subtraktion in der höchstwertigen Bitposition. Der Baugh-Wooley-Algorithmus erzeugt Kreuzprodukte, in denen ein Eingangssignal vom Multiplikator vom Partialprodukt des höchstwertigen Bits (MSB) jeder Zeile abgesehen von der letzten Zeile invertiert ist (b 0, b 1, b 2, ..., b n-2), ein Eingangssignal vom Multiplikanden von den Partialprodukten der letzten Zeile abgesehen vom MSB-Partialprodukt invertiert ist (a 0, a 1, a 2, ..., a m-2) und zusätzliche Terme am-1, bn-1, a m-1, b n-1 und 1 in den Bitpositionen m – 1, n – 1, m + n – 2, m + n – 2 bzw. m + n – 1 addiert werden. In der Praxis wird jedoch eine "1" nicht tatsächlich zur Bitposition m + n-2 addiert. Statt dessen wird der Übertrag aus dem Halbaddierer 2C1 invertiert und in den Halbaddierer H in der Bitposition 33 der Hauptstufe MS3 eingespeist. Der Übertrag aus dem Halbaddierer 2C1 ist auch mit der Bitposition 34 des Summenausgangs der Hauptstufe MS3 verbunden. Dieses Implementierungsdetail vermeidet es, einen konstanten Wert in der Architektur vorsehen zu müssen. Wiederum werden die Spalten von Partialprodukten mit derselben Bitwertigkeit addiert, wobei die Überträge zur Spalte der nächsthöheren Bitwertigkeit übertragen werden. Das Ergebnis ist ein Produkt, das auch in Zweierkomplement-Schreibweise vorliegt. In 5 werden, da m = n = 17 ist, die addierten Terme zu den Halbaddierern 2C0 und 2C1 in den Bitspalten 16 und 32 und zum Halbaddierer (H) der Hauptstufe MS3 in der Bitspalte 33 geliefert.
  • In 3 ist die Endaddition der Summen- und Übertragworte, die durch die gezeigte Struktur erzeugt werden, durch einen Vektorkombinationsaddierer nicht gezeigt. Dieser Vektorkombinationsaddierer ist im Wesentlichen zu irgendeinem von jenen, die im Stand der Technik zu finden sind, identisch. Mehrere Alternativen sind möglich: Übertragwelligkeit, Parallelübertrag, Übertragauswahl usw. Irgendeine zusätzliche Reihe von Addierern entweder vor oder nach dem Vektorkombinationsaddierer zum Addieren der Akkumulatorbitwerte in einer integrierten Multiplizierer-Akkumulator-Schaltung ist ebenfalls nicht gezeigt. Wiederum ist dies wie jene, die im Stand der Technik zu finden ist. In Bezug auf 14 wird schließlich angemerkt, dass die Struktur nicht mit einer Reihe von Volladdierern beginnen muss. Ob Volladdierer verwendet werden, hängt von der Größe der vorliegenden Multipliziererschaltung ab. Das Ausführungsbeispiel der vorliegenden Erfindung, das in 5 gezeigt ist, zeigt beispielsweise einen 17×17-Multiplizierer und erfordert somit eine anfängliche Reihe von Volladdierern, wie in 3 und 4 widergespiegelt.
  • Mit Bezug auf 811 sind verschiedene mögliche Vier-zu-Zwei-Komprimiererschaltungen gezeigt. Diese ersetzen Paare von aufeinander folgenden Volladdierern, weisen jedoch eine Verzögerung von nur etwa 1,5 Volladdierern auf. Diese Verringerung der Verzögerungen verbessert die Betriebsgeschwindigkeit, aber benötigt extreme Sorgfalt, wenn versucht wird, eine ausgeglichene Multipliziererstruktur zu konstruieren. Diese Komprimiererschaltungen sind auch als Fünf-zu-Drei-Komprimierer bekannt, da zwei zusätzliche Übertragterme Cin und Cout vorhanden sind. Da jedoch diese zusätzlichen Übertragterme normalerweise benachbarte Zellen in derselben Reihe oder Stufe verbinden und im Allgemeinen nicht von einer vorherigen Stufe empfangen werden oder zu einer nachfolgenden Stufe übertragen werden, werden sie nicht immer gezählt, daher die übliche Bezeichnung als Vier-zu-Zwei-Komprimierer.
  • Die Komprimiererschaltung in 8 ist jene, die von G. Goto et al. in IEEE Journal of Solid-State Circuits, Band 27, Nr. 9, Seiten 1229–1235, September 1992, gezeigt wird. Dies ist eine symmetrische Komprimiererschaltung, die dafür ausgelegt ist, wenn alle vier Eingangssignale I1–I4 im Wesentlichen gleichzeitig ankommen. Die vom Komprimierer ausgeführte Logik ist: Cout = I1·I2 + I3·I4; C = ~{[~(I1^I2) +~ (I3^I4)]·[~(I1·I2) +~ (I3·I4)]} + {Cin·(I1^I2^I3^I4)}; S = [(I1^I2)^(I3^I4)]^Cin;wobei ~, +, ^ und · die logischen Operationen NICHT, ODER, EXKLUSIV-ODER bzw. UND darstellen. Um die verschiedenen Schaltungen zu vergleichen, nehmen wir Einheitsverzögerungen mit Verzögerungen von 1 Einheit für ein invertierendes Gatter, 2 Einheiten für ein nichtinvertierendes Gatter und 2 Einheiten für ein EXKLUSIV-ODER- oder NICHT-EXKLUSIV-ODER-Gatter an. Die Zahlen in der Figur stellen die Verzögerungen am Ausgang jedes Gatters dar. Cout zu erzeugen, dauert 2 Einheitsverzögerungen. Cout wird zu Cin in einer benachbarten Zelle der Bitwertigkeit der nächsthöheren Ordnung in derselben Stufe geliefert.
  • Sowohl den Summenterm S als auch den Übertragterm C zu erzeugen, dauert 6 Einheitsverzögerungen.
  • Die Schaltungen in 911 sind vollständig neu. Verschiedene Regeln wurden beim Entwickeln dieser Schaltungen befolgt. Die Codierung für den Summenausgang S ist eindeutig. S ist immer die Parität der fünf Eingangsbits I1–I4 und C. Insbesondere wenn die Anzahl von 1-en in den fünf Eingangsbits ungerade ist, ist S 1; S ist ansonsten 0. Die Codierung für die Übertragausgänge Cout und C ist nicht eindeutig, was Flexibilität im Entwurf vorsieht. Diese Übertragausgänge stellen die Anwesenheit von zwei oder mehr 1-en im Eingangsmuster dar. Wenn zwei oder drei 1-en an den Eingängen vorhanden sind, ist eine und nur eine 1 in den Übertragausgängen (entweder C oder Cout) vorhanden und der andere Übertragausgang ist eine Null. Eine beliebige Kombination, die diese Regel befolgt, ist eine gültige Kombination, die zu einer korrekten Operation des Komprimierers führt. Eine andere Regel, die für die Optimierung der Schaltung befolgt wird, besteht darin, Cout von Cin unabhängig zu machen. Daher sollte die Bitzuweisung für Cout dieselbe für Cin gleich entweder 0 oder 1 sein. Dies erfolgt aus Geschwindigkeitsgründen, um eine Welligkeit durch die Bitpositionen zu vermeiden, da Cin von der Bitposition der nächstniedrigeren Wertigkeit und auf derselben Ebene in der Hierarchie stammt. Der Komprimierer von 8 ist nur ein spezielles Beispiel dieser Regeln.
  • In 9 und 10 ist die Komprimiererlogik: Cout = [(I1 + I2)·(I3 + I4)] + (I1·I2) + (I3·I4); C = (I1·I2·I3·I4) + [Cin·(I1^I2^I3^I4)]; S = [(I1^I2)^(I3^I4)]^Cin
  • Bei der Implementierung dieser Logik von 9 dauert das Erzeugen von Cout 2 Einheitsverzögerungen, während das Erzeugen der Summen- und Übertragterme S und C jeweils 6 Einheitsverzögerungen dauert. Es bestehen gleiche Verzögerungen von den Eingängen I1–I4 zu den primären Ausgängen S und C. Mit anderen Worten, wie der Komprimierer von 8 ist die Schaltung in 9 auch symmetrisch.
  • Der Komprimierer in 10 stellt eine asymmetrische Version dar. Diese Version weist eine kürzere Verzögerung vom Eingang I1 und zweitens vom Eingang I2, dann von den Eingängen I3 und I4 auf, um Cout (und daher auch C-Enden, die von Cin abhängen, von Cout einer ähnlichen benachbarten Schaltung) zu erzeugen. Der Übertragausgang C ist auch geringfügig um eine 1 Einheitsverzögerung schneller als der Summenausgang S (5 gegenüber 6 Einheiten). Diese asymmetrische Version ist bevorzugt, wenn nicht alle Eingangssignale gleichzeitig zur Verfügung stehen. Somit können die am langsamsten ankommenden Signale an den Eingängen I1 und I2 mit kürzerer Verzögerung bereitgestellt werden, während die früher ankommenden Signale zu den Eingängen I3 und I4 mit längerer Verzögerung geliefert werden können. In 5 könnte dieser asymmetrische Komprimierer für die Untermatrixstufe SA31 verwendet werden, in der die Produktterme vor der Ankunft der Partialsummen von der Stufe SA30 erzeugt werden. In der Struktur von 3 und 4, in der Volladdiererstufen SA0 zuerst angeordnet sind, wären alle Komprimiererstufen SA1, SA2 und SA3 der Untermatrizes CSA2, CSA3, CSA4 vorzugsweise asymmetrisch. Andere asymmetrische Schaltungen könnten in Abhängigkeit von den Logikzellen, die dem Entwickler zur Verfügung stehen, synthetisiert werden.
  • In 11 implementiert die Komprimiererschaltung die folgende Logik: Cout = (I1 + I2)·(I3 + I4); C = [(I1·I2)·~(I3^I4)] + [~(I1^I2)·(I3·I4)] + Cin·(I1^I2^I3^I4); S = [(I1^I2)^(I3^I4)]^Cin
  • Wie die Komprimierer in 8 und 9 ist sie jedoch in Bezug auf die Eingänge I1–I4 symmetrisch. Wie 10 liefert sie jedoch das Übertragausgangssignal C um 1 Einheitsverzögerung (5 gegenüber 6 Einheiten) geringfügig schneller als das Summenausgangssignal S.
  • Die folgende Tabelle fasst die Vorteile der vorliegenden Erfindung relativ zum Stand der Technik zum Vergleich zusammen. Man beachte, dass die Verzögerungen als Volladdiererverzögerungen (FA) ausgedrückt sind.
    Architektur Anordnung Ausbreitungswege Verzögerungsskalierung 17×17-Verzögerung
    Übertraggrößenmatrix Regelmäßig Unausgeglichen (Welligkeit) O(N) 15 FA
    Baum Unregelmäßig Von Natur aus ausgeglichen O(log N) 6 FA
    Baum mit Komprimierern Unregelmäßig Von Natur aus ausgeglichen O(log N) 4,5 FA
    Hekstra Regelmäßig Durch die Konstruktion ausgeglichen O(√N) 7 FA
    Die Erfindung Regelmäßig Durch die Konstruktion ausgeglichen O(√N) 5,5 FA
  • Die Erfindung hat den Vorteil, dass sie sowohl in ihrer Anordnung regelmäßig als auch in ihrem Betrieb relativ schnell ist (5,5 Volladdierer-Verzögerungen), wobei sie folglich vorteilhafte Eigenschaften von sowohl Matrixarchitekturen als auch Baumarchitekturen kombiniert. Ein weiterer Vorteil besteht darin, dass abgesehen von den Verbindungen zwischen ihren Hauptmatrixstufen, alle Verbindungen lokal sind, so dass nur zwei Signalbahnen in der Anordnung bereitgestellt werden müssen, egal wie groß sie skaliert ist. Dies ist ein Aspekt ihrer Regelmäßigkeit und daher ihrer kleinen Schaltungsfläche. Im Gegensatz dazu erfordern Baumarchitekturen immer mehr Leitwegbahnen, wenn sie zu größeren Größen skaliert werden.
  • Obwohl die vorliegende Erfindung wie die Hekstra-Architektur ausgeglichene Verzögerungen in ihren Ausbreitungswegen aufweist, sind sie nicht wie Baumarchitekturen von Natur aus ausgeglichen, sondern nur durch die Konstruktion mit einer zweckmäßigen Wahl von Untermatrixgrößen ausgeglichen. Wenn die Komprimiererschaltungen von 811 in die Architektur der vorliegenden Erfindung integriert werden, war folglich eine spezielle Sorgfalt erforderlich, um sicherzustellen, dass der Ausgleich aufrechterhalten wird. Insbesondere wurde jeder Signalweg durch irgendeine der Untermatrizes und durch die Hauptmatrix so konstruiert, dass er dieselbe Anzahl von Komprimiererschaltungen wie alle anderen Signalwege aufweist. Jede fortlaufende Untermatrix, die in eine nachfolgende Stufe der Hauptaddierermatrix eingespeist wird, weist einen Komprimierer mehr als die vorherige Untermatrix auf. Ein Volladdierer kann (wahlweise) in jedem Untermatrixweg vorhanden sein, wie es in 35 der Fall ist. Wenn der Volladdierer einer Untermatrix vorangeht, dann sollten irgendwelche Komprimierer im Rest dieser Untermatrix vom asymmetrischen Typ sein. Wenn der Volladdierer das letzte Element der Untermatrix vor dem Einspeisen in die Hauptmatrix ist, dann kann die erste Komprimiererschaltung vom symmetrischen Typ sein. Alle Hauptmatrixkomprimierer sind vom symmetrischen Typ. Mit dieser sorgfältigen Konstruktion können störende Transaktionen minimiert werden. (Zusätzliche Verzögerungselemente könnten hinzugefügt werden, wo es erforderlich ist, um ein restliches Ungleichgewicht zu handhaben, wie von T. Sakuta et al. in dem Artikel, auf den vorher hingewiesen wurde, gezeigt.)
  • Die Architektur der vorliegenden Erfindung kann auch durch Erhöhen der Anzahl von Hauptmatrixstufen und entsprechenden Untermatrizes skaliert werden. Ein 32×32-Multiplizierer kann beispielsweise mit vier Hauptaddiererstufen und keinen Volladdiererstufen in den Untermatrizes implementiert werden (d. h. nur Komprimierer). Er weist eine Ausbreitungsverzögerung von nur 7,5 Volladdierern auf. Ein 61×61-Multiplizierer kann mit sechs Hauptaddiererstufen und einer Verzögerung von nur 11,5 Volladdierern (immer noch schneller als eine 17×17-Matrixarchitektur) implementiert werden, wobei die Untermatrizes CSA0 und CSA1 aus einem Volladdierer, gefolgt von einem Komprimierer, bestehen und jede nachfolgende Untermatrix einen zusätzlichen Komprimierer hinzufügt. Diese Konstruktionen sind in 12 bzw. 13 auf dieselbe Weise wie in 3 dargestellt. Als Endanmerkung wird beobachtet, dass die Struktur von 13 leicht modifiziert werden kann, um einen 58×58-Multiplizierer zu verwirklichen. Dies wird durch Entfernen der Reihe von Volladdierern F bewerkstelligt. Der resultierende 58×58-Multiplizierer weist eine Verzögerung von 10,5 Volladdierern auf.

Claims (16)

  1. Multiplikationsschaltung mit: einem Mittel zum Empfangen eines M-Bit-Multiplikanden und eines N-Bit-Multiplikators und zum Erzeugen von N M-Bit-Partialprodukten, wobei M und N ganze zahlen sind, die größer als 8 sind, wobei jedes Bit von jedem Partialprodukt eine Bitwertigkeit aufweist, die einem festgelegten Bit eines (M + N)-Bit-Produkts entspricht; einem Additionsmittel (CSAn, MSn) zum Summieren der N M-Bit-Partialprodukte, so dass Bits der Partialprodukte mit derselben Bitwertigkeit zusammenaddiert werden, wobei das Additionsmittel in eine Architektur mit einer Vielzahl von Untermatrizes (CSAn), die Partialsummen erzeugen, und eine mehrstufige Hauptmatrix (MSn), die die Partialsummen addiert, organisiert ist, wobei mindestens eine Untermatrix (CSA2..n) eine Vier-zu-Zwei-Komprimierungsschaltung (C) mit vier Signaleingängen (I1–I4) und einem zusätzlichen Übertrageingang (Cin) umfasst und auch Summen- und Übertragsignalausgänge (C, S) aufweist; und einem Endaddierer; dadurch gekennzeichnet, dass die Architektur eine asymmetrische, aber nicht von Natur aus hinsichtlich der Verzögerung ausgeglichene Verzweigungsarchitektur aufweist, in der eine erste Hauptmatrixstufe (MS1) zum Empfangen von Partialsummen von zwei Untermatrizes (CSA0, CSA1) dient und jede nachfolgende Hauptmatrixstufe (MS2..n) zum Empfangen von Partialsummen von einer vorherigen Hauptmatrixstufe und nur einer entsprechenden Untermatrix dient, wobei die Untermatrix (CSAn) für jede nachfolgende Hauptmatrixstufe (MSn) fortlaufend größer ist als Untermatrizes für vorherige Hauptmatrixstufen, um ausgeglichene Ausbreitungsverzögerungen für Partialsummen, die zu jeder Hauptmatrixstufe geliefert werden, vorzusehen, wobei jede fortlaufende Untermatrix (CSA3..n), die der ersten und der zweiten Untermatrix (CSA1,2) folgt und ein Ausgangssignal in eine nachfolgende Stufe der Hauptmatrix (MS2..n) einspeist, einen zusätzlichen Komprimierer (C) gegenüber der vorherigen Untermatrix (CSA2..n-1) umfasst; in jeder Komprimierungsschaltung (C) die vier Signaleingänge (I1–I4) mit Ausgängen von einer vorherigen Stufe verbunden sind und der zusätzliche Übertrageingang (Cin) mit einem Übertragausgang (Cout) aus einer gleichen Stufe der nächstniedrigeren Bitwertigkeit verbunden ist und auch die Summen- und Übertragsignalausgänge (C, S) mit Signaleingängen einer nachfolgenden Stufe verbunden sind und der zusätzliche Übertragausgang (Cout) mit einem Übertrageingang für eine gleiche Stufe der nächsthöheren Bitwertigkeit verbunden ist, wobei ein Zustand des zusätzlichen Übertragausgangs (Cout) von Zuständen aller vier der Signaleingänge (I1–I4), jedoch nicht vom zusätzlichen Übertrageingang (Cin) abgeleitet wird und Zustände der Summen- und Übertragsignalausgänge (C, S) von allen vier der Signaleingänge (I1–I4) und dem zusätzlichen Übertrageingang (Cin) abgeleitet werden, der zusätzliche Übertrageingang (Cin) zum Verarbeiten eines Ergebnisses einer Operation an allen vier Signaleingängen (I1–I4) dient, um die Zustände der Summen- und Übertragsignalausgänge (C, S) abzuleiten, der Summensignalausgang (S) so beschaffen ist, dass er einen Zustand aufweist, der auf 1 gesetzt wird, wenn die Anzahl von 1-en in den vier Signaleingängen (I1–I4) und dem zusätzlichen Übertrageingang (Cin) ungerade ist, wobei der Summensignalausgang (S) so beschaffen ist, dass er ansonsten auf 0 gesetzt wird, der Übertragsignalausgang (C) und der zusätzliche Übertragausgang (Cout) so beschaffen sind, dass sie beide auf 1 gesetzt werden, wenn die Anzahl von 1-en in den vier Signaleingängen (I1–I4) und dem zusätzlichen Übertrageingang (Cin) 4 oder 5 ist, einer und nur einer des Übertragsignalausgangs (C) und des zusätzlichen Übertragausgangs (Cout) so beschaffen ist, dass er auf 1 gesetzt wird, wenn die Anzahl von 1-en in den vier Signaleingängen und dem zusätzlichen Übertrageingang 2 oder 3 ist, und der Übertragsignalausgang (C) und der zusätzliche Übertragausgang (Cout) so beschaffen sind, dass sie beide auf 0 gesetzt werden, wenn die Anzahl von 1-en in den vier Signaleingängen (I1–I4) und dem zusätzlichen Übertrageingang (Cin) 0 oder 1 ist; und der Endaddierer ein Vektorkombinationsaddierer zum Empfangen eines Mehrbit-Summenworts und eines Mehrbit-Übertragworts ist, die zusammen eine Partialsumme von einer letzten Hauptmatrixstufe (MS3) des Additionsmittels darstellen, wobei der Vektorkombinationsaddierer beschaffen ist, um das Summenwort und das Übertragwort zum Erzeugen des (M + N)-Bit-Produkts zu summieren.
  2. Multiplikationsschaltung nach Anspruch 1, wobei jede Zelle einer Untermatrixstufe (SAn) und jede Zelle einer Hauptmatrixstufe (MSn), die insgesamt vier Partialprodukteingaben empfängt und einen Summenterm und einen Übertragterm erzeugt, eine Komprimierungsschaltung (C) umfasst.
  3. Multiplikationsschaltung nach Anspruch 1, wobei jede Zelle einer Untermatrixstufe (SAn) und jede Zelle einer Hauptmatrixstufe (MSn), die insgesamt drei Partialprodukteingaben empfängt und einen Summenterm und einen Übertragterm erzeugt, einen Volladdierer (F) und einen Halbaddierer (H) der Reihe nach umfasst.
  4. Multiplikationsschaltung nach Anspruch 1, wobei der Multiplikand und der Multiplikator in einer Binärschreibweise ohne Vorzeichen vorliegen, wobei das Mittel zum Erzeugen von Partialprodukten Kreuzprodukte des M-Bit-Multiplikanden mit den N Bits des Multiplikators erzeugt.
  5. Multiplikationsschaltung nach Anspruch 1, wobei der Multiplikand und der Multiplikator in Zweierkomplement-Schreibweise vorliegen, wobei das Mittel zum Erzeugen von Partialprodukten Kreuzprodukte gemäß dem Baugh-Wooley-Algorithmus erzeugt.
  6. Multiplikationsschaltung nach Anspruch 1, wobei das Additionsmittel (CSAn, MSn) linear mit der ersten Hauptmatrixstufe (MSn) nach den zwei Untermatrizes (CSAn), von denen die erste Hauptmatrixstufe Partialsummen empfängt, angeordnet ist, wobei alle Stufen irgendeiner Untermatrix miteinander gruppiert sind und jede Hauptmatrixstufe (MSn) im Anschluss an die erste Hauptmatrixstufe den Stufen der der Hauptmatrixstufe entsprechenden Untermatrix folgt, wodurch alle Signalausbreitungswege abgesehen von Wegen zwischen aufeinander folgenden Hauptmatrixstufen lokal sind, und wodurch jede Untermatrixstufe (SAn) Bahnen für nur zwei sich kreuzende Signalausbreitungswege erfordert.
  7. Multiplikationsschaltung nach Anspruch 1, wobei mindestens eine der Komprimierungsschaltungen (C) umfasst: den ersten Signaleingang (I1), den zweiten Signaleingang (I2), den dritten Signaleingang (I3), den vierten Signaleingang (I4) und den zusätzlichen Übertrageingang (Cin); ein erstes Logikgatter, das aus einem NICHT-UND-Gatter mit zwei Eingängen besteht, wobei die zwei Eingänge des NICHT-UND-Gatters mit dem ersten und dem zweiten Signaleingang (I1, I2) verbunden sind; ein zweites Logikgatter, das aus einem NICHT-UND-Gatter mit zwei Eingängen besteht, wobei die zwei Eingänge des NICHT-UND-Gatters mit dem dritten und dem vierten Signaleingang (I3, I4) verbunden sind; ein drittes Logikgatter, das aus einem ODER-Gatter mit zwei Eingängen besteht, wobei die zwei Eingänge des ODER-Gatters invertierte Eingänge sind und mit Ausgängen des ersten und des zweiten Logikgatters verbunden sind, wobei das dritte Logikgatter den zusätzlichen Übertragausgang (Cout) vorsieht; ein viertes Logikgatter, das aus einem ODER-Gatter mit zwei Eingängen besteht, das in einen Eingang eines NICHT-UND-Gatters mit zwei Eingängen einspeist, wobei ein zweiter Eingang des NICHT-UND-Gatters mit dem Ausgang des ersten Logikgatters verbunden ist, wobei die zwei Eingänge des ODER-Gatters mit dem ersten und dem zweiten Signaleingang (I1, I2) verbunden sind; ein fünftes Logikgatter, das aus einem ODER-Gatter mit zwei Eingängen besteht, das in einen Eingang eines NICHT-UND-Gatters mit zwei Eingängen einspeist, wobei ein zweiter Eingang des NICHT-UND-Gatters mit dem Ausgang des zweiten Logikgatters verbunden ist, wobei die zwei Eingänge des ODER-Gatters mit dem dritten und dem vierten Signaleingang (I3, I4) verbunden sind; ein sechstes Logikgatter, das aus einem ersten und einem zweiten ODER-Gatter mit zwei Eingängen besteht, das in jeweilige Eingänge eines NICHT-UND-Gatters mit zwei Eingängen einspeist, wobei die zwei Eingänge des ersten ODER-Gatters mit den Ausgängen des ersten und des zweiten Logikgatters verbunden sind, wobei die zwei Eingänge des zweiten ODER-Gatters mit Ausgängen des vierten und des fünften Logikgatters verbunden sind; ein siebtes Logikgatter, das aus einem Exklusiv-ODER-Gatter mit zwei Eingängen besteht, wobei die zwei Eingänge des Exklusiv-ODER-Gatters mit den Ausgängen des vierten und des fünften Logikgatters verbunden sind; ein achtes Logikgatter, das aus einem UND-Gatter mit zwei Eingängen besteht, das in einen Eingang eines ODER-Gatters mit zwei Eingängen einspeist, wobei ein zweiter Eingang des ODER-Gatters mit einem Ausgang des sechsten Logikgatters verbunden ist, wobei die zwei Eingänge des NICHT-UND-Gatters mit dem zusätzlichen Übertrageingang (Cin) und einem Ausgang des siebten Logikgatters verbunden sind, wobei das achte Logikgatter den Übertragsignalausgang (C) vorsieht; und ein neuntes Logikgatter, das aus einem Exklusiv-ODER-Gatter mit zwei Eingängen besteht, wobei die zwei Eingänge des Exklusiv-ODER-Gatters mit dem Übertrageingang und dem Ausgang des siebten Logikgatters verbunden sind, wobei das neunte Logikgatter einen Summensignalausgang (S) vorsieht.
  8. Multiplikationsschaltung nach Anspruch 1, wobei mindestens eine der Komprimierungsschaltungen umfasst: den ersten Signaleingang (I1), den zweiten Signaleingang (I2), den dritten Signaleingang (I3), den vierten Signaleingang (I4) und den zusätzlichen Übertrageingang (Cin); ein erstes Logikgatter, das aus einem NICHT-ODER-Gatter mit zwei Eingängen besteht, wobei die zwei Eingänge des NICHT-ODER-Gatters mit dem ersten und dem zweiten Signaleingang (I1, I2) verbunden sind; ein zweites Logikgatter, das aus einem NICHT-ODER-Gatter mit zwei Eingängen besteht, wobei die zwei Eingänge des NICHT-ODER-Gatters mit dem dritten und dem vierten Signaleingang (I3, I4) verbunden sind; ein drittes Logikgatter, das aus einem NICHT-UND-Gatter mit zwei Eingängen besteht, wobei die zwei Eingänge des NICHT-UND-Gatters mit dem ersten und dem zweiten Signaleingang (I1, I2) verbunden sind, ein viertes Logikgatter, das aus einem NICHT-UND-Gatter mit zwei Eingängen besteht, wobei die zwei Eingänge des NICHT-UND-Gatters mit dem dritten und dem vierten Signaleingang (I3, I4) verbunden sind; ein fünftes Logikgatter, das aus einem NICHT-ODER-Gatter mit zwei Eingängen besteht, wobei die zwei Eingänge des NICHT-ODER-Gatters mit Ausgängen des ersten und des zweiten Logikgatters verbunden sind; ein sechstes Logikgatter, das aus einem NICHT-UND-Gatter mit zwei Eingängen besteht, wobei die zwei Eingänge des NICHT-UND-Gatters mit Ausgängen des dritten und des vierten Logikgatters verbunden sind; ein siebtes Logikgatter, das aus einem NICHT-ODER-Gatter mit zwei Eingängen besteht, wobei die zwei Eingänge des NICHT-ODER-Gatters mit Ausgängen des fünften und des sechsten Logikgatters verbunden sind, wobei das siebte Logikgatter den Übertragsignalausgang (C) vorsieht; ein achtes Logikgatter, das aus einem NICHT-ODER-Gatter mit zwei Eingängen besteht, wobei die zwei Eingänge des NICHT-ODER-Gatters mit den Ausgängen des dritten und des vierten Logikgatters verbunden sind; ein neuntes Logikgatter, das aus einem ODER-Gatter mit zwei Eingängen besteht, das in einen Eingang eines NICHT-UND-Gatters mit zwei Eingängen einspeist, wobei ein zweiter Eingang des NICHT-UND-Gatters mit dem Ausgang des dritten Logikgatters verbunden ist, wobei die zwei Eingänge des ODER-Gatters mit dem ersten und dem zweiten Signaleingang (I1, I2) verbunden sind; ein zehntes Logikgatter, das aus einem ODER-Gatter mit zwei Eingängen besteht, das in einen Eingang eines NICHT-UND-Gatters mit zwei Eingängen einspeist, wobei ein zweiter Eingang des NICHT-UND-Gatters mit dem Ausgang des vierten Logikgatters verbunden ist, wobei die zwei Eingänge des ODER-Gatters mit dem dritten und dem vierten Signaleingang (I3, I4) verbunden sind; ein elftes Logikgatter, das aus einem Exklusiv-ODER-Gatter mit zwei Eingängen besteht, wobei die zwei Eingänge des Exklusiv-ODER-Gatters mit Ausgängen des neunten und des zehnten Logikgatters verbunden sind; ein zwölftes Logikgatter, das aus einem UND-Gatter mit zwei Eingängen besteht, das in einen Eingang eines ODER-Gatters mit zwei Eingängen einspeist, wobei ein zweiter Eingang des ODER-Gatters mit einem Ausgang des achten Logikgatters verbunden ist, wobei die zwei Eingänge des UND-Gatters mit dem zusätzlichen Übertrageingang (Cin) und einem Ausgang des elften Logikgatters verbunden sind, wobei das zwölfte Logikgatter den zusätzlichen Übertragausgang (Cout) vorsieht; und ein dreizehntes Logikgatter, das aus einem Exklusiv-ODER-Gatter mit zwei Eingängen besteht, wobei die zwei Eingänge des Exklusiv-ODER-Gatters mit dem zusätzlichen Übertrageingang (Cin) und dem Ausgang des elften Logikgatters verbunden sind, wobei das dreizehnte Logikgatter den Summensignalausgang (S) vorsieht.
  9. Multiplikationsschaltung nach Anspruch 1, wobei mindestens eine der Komprimierungsschaltungen umfasst: einen ersten Signaleingang (I1), den zweiten Signaleingang (I2), den dritten Signaleingang (I3), den vierten Signaleingang (I4) und den zusätzlichen Übertrageingang (Cin); ein erstes Logikgatter, das aus einem ODER-Gatter mit drei Eingängen besteht, das in einen Eingang eines NICHT-UND-Gatters mit zwei Eingängen einspeist, wobei ein zweiter Eingang des NICHT-UND-Gatters mit dem ersten Signaleingang verbunden ist, wobei die drei Eingänge des ODER-Gatters mit dem zweiten, dem dritten und dem vierten Signaleingang (I2, I3, I4) verbunden sind; ein zweites Logikgatter, das aus einem ODER-Gatter mit zwei Eingängen besteht, das in einen Eingang eines NICHT- UND-Gatters mit zwei Eingängen einspeist, wobei ein zweiter Eingang des NICHT-UND-Gatters mit dem zweiten Signaleingang (I2) verbunden ist, wobei die zwei Eingänge des ODER-Gatters mit dem dritten und dem vierten Signaleingang (I3, I4) verbunden sind; ein drittes Logikgatter, das aus einem NICHT-UND-Gatter mit zwei Eingängen besteht, wobei die zwei Eingänge des NICHT-UND-Gatters mit dem dritten und dem vierten Signaleingang (I3, I4) verbunden sind; ein viertes Logikgatter, das aus einem NICHT-UND-Gatter mit drei Eingängen besteht, wobei die drei Eingänge des NICHT-UND-Gatters mit Ausgängen des ersten, des zweiten und des dritten Logikgatters verbunden sind, wobei das vierte Logikgatter den zusätzlichen Übertragausgang (Cout) vorsieht; ein fünftes Logikgatter, das aus einem NICHT-UND-Gatter mit vier Eingängen besteht, wobei die vier Eingänge des NICHT-UND-Gatters mit dem ersten, dem zweiten, dem dritten und dem vierten Signaleingang (I1–I4) verbunden sind; ein sechstes Logikgatter, das aus einem Exklusiv-ODER-Gatter mit zwei Eingängen besteht, wobei die zwei Eingänge des Exklusiv-ODER-Gatters mit dem ersten und dem zweiten Signaleingang (I1, I2) verbunden sind; ein siebtes Logikgatter, das aus einem Exklusiv-ODER-Gatter mit zwei Eingängen besteht, wobei die zwei Eingänge des Exklusiv-ODER-Gatters mit dem dritten und dem vierten Signaleingang (I3, I4) verbunden sind; ein achtes Logikgatter, das aus einem Exklusiv-NICHT-ODER-Gatter besteht, wobei die zwei Eingänge des Exklusiv-NICHT-ODER-Gatters mit Ausgängen des sechsten und des siebten Logikgatters verbunden sind; einen Inverter, der mit dem zusätzlichen Übertrageingang (Cin) verbunden ist; ein neuntes Logikgatter, das aus einem ODER-Gatter mit zwei Eingängen besteht, das in einen Eingang eines NICHT-UND-Gatters mit zwei Eingängen einspeist, wobei ein zweiter Eingang des NICHT-UND-Gatters mit einem Ausgang des fünften Logikgatters verbunden ist, wobei die zwei Eingänge des ODER-Gatters mit Ausgängen des achten Logikgatters und des Inverters verbunden sind, wobei das neunte Logikgatter den Übertragsignalausgang (C) vorsieht; und ein zehntes Logikgatter, das aus einem Exklusiv-ODER-Gatter mit zwei Eingängen besteht, wobei die zwei Eingänge des Exklusiv-ODER-Gatters mit den Ausgängen des achten Logikgatters und des Inverters verbunden sind, wobei das zehnte Logikgatter einen Summenausgang vorsieht.
  10. Multiplikationsschaltung nach Anspruch 1, wobei zumindest eine der Komprimierungsschaltungen (C) umfasst: den ersten Signaleingang (I1), den zweiten Signaleingang (I2), den dritten Signaleingang (I3), den vierten Signaleingang (I4) und den zusätzlichen Übertrageingang (Cin); ein erstes Logikgatter, das aus einem NICHT-ODER-Gatter mit zwei Eingängen besteht, wobei die zwei Eingänge des NICHT-ODER-Gatters mit dem ersten und dem zweiten Signaleingang (I1, I2) verbunden sind; ein zweites Logikgatter, das aus einem NICHT-ODER-Gatter mit zwei Eingängen besteht, wobei die zwei Eingänge des NICHT-ODER-Gatters mit dem dritten und dem vierten Signaleingang (I3, I4) verbunden sind; ein drittes Logikgatter, das aus einem NICHT-ODER-Gatter mit zwei Eingängen besteht, wobei die zwei Eingänge des NICHT-ODER-Gatters mit Ausgängen des ersten und des zweiten Logikgatters verbunden sind, wobei das dritte Logikgatter den zusätzlichen Übertragausgang (Cout) vorsieht; ein viertes Logikgatter, das aus einem Exklusiv-NICHT-ODER-Gatter mit zwei Eingängen besteht, wobei die zwei Eingänge des Exklusiv-NICHT-ODER-Gatters mit dem ersten und dem zweiten Signaleingang (I1, I2) verbunden sind; ein fünftes Logikgatter, das aus einem Exklusiv-NICHT-ODER-Gatter mit zwei Eingängen besteht, wobei die zwei Eingänge des Exklusiv-NICHT-ODER-Gatters mit dem dritten und dem vierten Signaleingang (I3, I4) verbunden sind; ein sechstes Logikgatter, das aus einem NICHT-UND-Gatter mit drei Eingängen besteht, wobei die drei Eingänge des NICHT-UND-Gatters mit dem ersten und dem zweiten Signaleingang (I1, I2) und einem Ausgang des fünften Logikgatters verbunden sind; ein siebtes Logikgatter, das aus einem NICHT-UND-Gatter mit drei Eingängen besteht, wobei die drei Eingänge des NICHT-UND-Gatters mit dem dritten und dem vierten Signaleingang (I3, I4) und einem Ausgang des vierten Logikgatters verbunden sind; ein achtes Logikgatter, das aus einem Exklusiv-NICHT-ODER-Gatter mit zwei Eingängen besteht, wobei die zwei Eingänge des Exklusiv-NICHT-ODER-Gatters mit den Ausgängen des vierten und des fünften Logikgatters verbunden sind; einen Inverter, der mit dem zusätzlichen Übertrageingang (Cin) verbunden ist; ein neuntes Logikgatter, das aus einem ODER-Gatter mit zwei Eingängen besteht, das in einen Eingang eines NICHT-UND-Gatters mit drei Eingängen einspeist, wobei der zweite und der dritte Eingang des NICHT-UND-Gatters mit Ausgängen des sechsten und des siebten Logikgatters verbunden sind, wobei die zwei Eingänge des ODER-Gatters mit Ausgängen des achten Logikgatters und des Inverters verbunden sind, wobei das neunte Logikgatter den Übertragsignalausgang (C) vorsieht; und ein zehntes Logikgatter, das aus einem Exklusiv-ODER-Gatter mit zwei Eingängen besteht, wobei die zwei Eingänge des Exklusiv-ODER-Gatters mit den Ausgängen des achten Logikgatters und des Inverters verbunden sind, wobei das zehnte Logikgatter einen Summenausgang vorsieht.
  11. Multiplikationsschaltung mit: einen Mittel zum Empfangen eines M-Bit-Multiplikanden und eines N-Bit-Multiplikators und zum Erzeugen von Partialprodukttermen aus diesen, wobei jeder Partialproduktterm einem festgelegten Bit eines (M + N)-Bit-Produkts entspricht; und für jedes Produktbit einem Additionsmittel (CSAn, MSn) zum Addieren aller Partialproduktterme, die diesem Produktbit entsprechen, plus irgendwelcher Übertragterme, die vom Additionsmittel für das nächste niedrigerwertige Produktbit erzeugt werden, wobei jedes Additionsmittel eine Summe erzeugt, die das Produktbit und einen oder mehrere Übertragterme bildet, die zum Additionsmittel für das nächste höherwertige Produktbit übertragen werden sollen, wobei jedes Additionsmittel in eine asymmetrische, nicht von Natur aus hinsichtlich der Verzögerung ausgeglichene Architektur organisiert ist, die durch eine Vielzahl von Addierstufen gekennzeichnet ist, die Partialsummen bilden, wobei die Addierstufen in eine Vielzahl von Ketten von aufeinander folgenden Untermatrixaddierern (CSAn) und eine einzelne Kette von aufeinander folgenden Hauptmatrixaddierern (MSn) organisiert sind, wobei eine erste Stufe in der Kette von Hauptmatrixaddierern (MSn) ein Addierer ist, der mit zwei Ketten von Untermatrixaddierern verbunden ist, um Partialsummen von diesen zu empfangen, wobei jede Stufe der Kette von Hauptmatrixaddierern im Anschluss an die erste Stufe mit einer vorangehenden Stufe der Hauptmatrixaddierer-Kette und mit einer und nur einer Kette von Untermatrixaddierern verbunden ist, wobei jede Addierstufe in der Kette von Hauptmatrixaddierern eine Vier-zu-Zwei-Komprimierungsaddiererschaltung (C) ist, wobei die zwei Ketten von Untermatrixaddierern, die mit der ersten Stufe der Hauptmatrix verbunden sind, in der Anzahl jeder Art von Addierer in diesen Ketten identisch sind, wobei jede Kette von Untermatrixaddierern, die mit nachfolgenden Stufen der Hauptmatrix verbunden sind, zu einer Kette von Untermatrixaddierern, die mit einer vorangehenden Stufe der Hauptmatrix verbunden sind, in der Anzahl von jeder Art von Addierer in dieser Kette identisch ist, abgesehen davon, dass sie eine weitere Vier-zu-Zwei-Komprimierungsaddiererschaltung (C) gegenüber der vorangehenden Kette aufweist, wobei jeder Signalausbreitungsweg durch die Ketten von Untermatrixaddierern und durch die Hauptmatrix eine ausgeglichene Verzögerung aufweist, jede Vier-zu-Zwei-Komprimierungsaddiererschaltung (C) vier Signaleingänge (I1–I4), die mit Ausgängen von einer vorherigen Stufe verbunden sind, und einen zusätzlichen Übertrageingang (Cin), der mit einem Übertragausgang von einer gleichen Stufe der nächstniedrigeren Bitwertigkeit verbunden ist, aufweist und auch Summen- und Übertragsignalausgänge (C, S), die mit Signaleingängen einer nachfolgenden Stufe verbunden sind, und einen zusätzlichen Übertragausgang (Cout), der mit einem zusätzlichen Übertrageingang (Cin) für eine gleiche Stufe der nächsthöheren Bitwertigkeit verbunden ist, aufweist, wobei ein Zustand des zusätzlichen Übertragausgangs (Cout) von Zuständen aller vier der Signaleingänge (I1–I4), aber nicht vom zusätzlichen Übertrageingang (Cin) abgeleitet wird, und Zustände der Summen- und Übertragsignalausgänge (C, S) von allen vier der Signaleingänge (I1–I4) und dem zusätzlichen Übertrageingang (Cin) abgeleitet werden, wobei der zusätzliche Übertrageingang zum Verarbeiten eines Ergebnisses der Operation an allen vier Signaleingängen (I1–I4) dient, um die Zustände der Summen- und Übertragsignalausgänge (C, S) abzuleiten, der Summensignalausgang (S) so beschaffen ist, dass er einen Zustand aufweist, der auf 1 gesetzt wird, wenn die Anzahl von 1-en in den vier Signaleingängen (I1–I4) und im zusätzlichen Übertrageingang (Cin) ungerade ist, wobei der Summensignalausgang (S) so beschaffen ist, dass er ansonsten auf 0 gesetzt wird, der Übertragsignalausgang (C) und der zusätzliche Übertragausgang (Cout) so beschaffen sind, dass sie beide auf 1 gesetzt werden, wenn die Anzahl von 1-en in den vier Signaleingängen und dem zusätzlichen Übertrageingang 4 oder 5 ist, einer und nur einer des Übertragsignalausgangs (C) und des zusätzlichen Übertragausgangs (Cout) so beschaffen ist, dass er auf 1 gesetzt wird, wenn die Anzahl von 1-en in den vier Signaleingängen (I1–I4) und dem zusätzlichen Übertrageingang (Cin) 2 oder 3 ist, und der Übertragsignalausgang (C) und der zusätzliche Übertragausgang (Cout) so beschaffen sind, dass sie beide auf 0 gesetzt werden, wenn die Anzahl von 1-en in den vier Signaleingängen (I1–I4) und dem zusätzlichen Übertrageingang (Cin) 0 oder 1 ist; wobei Vier-zu-Zwei-Komprimierungsaddiererschaltungen (C) in anderen Stufen der Kette von Untermatrixaddierern als einer ersten Stufe asymmetrische Komprimierer sind, bei denen zwei Eingaben in die Vier-zu-Zwei-Komprimierungsaddiererschaltungen (C) so beschaffen sind, dass sie sich langsamer als zwei andere Eingaben in Summen- und Übertragausgänge der Vier-zu-Zwei-Komprimierungsaddiererschaltungen (C) ausbreiten, und nach dem Additionsmittel ein Vektorkombinationsaddierer zum Empfangen eines Mehrbit-Summenworts und eines Mehrbit-Übertragsworts vom Additionsmittel für jedes Produktbit vorgesehen ist, wobei der Vektorkombinationsaddierer beschaffen ist, um entsprechende Bits derselben Bitwertigkeit des Summenworts und des Übertragworts zum Erzeugen des (M + N)-Bit-Produkts zu summieren.
  12. Multiplikationsschaltung nach Anspruch 11, welche ferner eine Reihe von Akkumulatoraddierern für zumindest jedes Bit des Produkts umfasst.
  13. Multiplikationsschaltung nach Anspruch 12, wobei die Akkumulatoraddierer zwischen den Additionsmitteln (CSAn, MSn) und dem Vektorkombinationsaddierer liegen.
  14. Multiplikationsschaltung nach Anspruch 11, wobei der Multiplikand und der Multiplikator in einer Binärschreibweise ohne Vorzeichen vorliegen, wobei das Mittel zum Erzeugen von Partialprodukttermen M×N Kreuzprodukte aus den M Bits des Multiplikanden und den N Bits des Multiplikators erzeugt.
  15. Multiplikationsschaltung nach Anspruch 11, wobei der Multiplikand und der Multiplikator in einer Zweierkomplement-Schreibweise vorliegen, wobei das Mittel zum Erzeugen von Partialprodukttermen die Terme gemäß dem Baugh-Wooley-Algorithmus erzeugt.
  16. Multiplikationsschaltung nach Anspruch 11, wobei die Vier-zu-Zwei-Komprimierungsaddiererschaltungen (C) in der Hauptaddierermatrix (MSn) und irgendwelche Vier-zu-Zwei-Komprimierungsaddiererschaltungen (C) in einer ersten Stufe von irgendeiner Kette von Untermatrixaddierern symmetrische Vier-zu-Zwei-Komprimierungsaddiererschaltungen (C) sind, bei denen sich vier Eingaben in die Vier-zu-Zwei-Komprimierungsaddiererschaltung (C) im Wesentlichen gleich in der Geschwindigkeit zu Summen- und Übertragausgängen der Vier-zu-Zwei-Komprimierungsaddiererschaltung (C) ausbreiten.
DE69838877T 1997-10-28 1998-10-22 Architektur eines schnellen regulären multiplizierers Expired - Fee Related DE69838877T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US959245 1992-10-09
US08/959,245 US6029187A (en) 1997-10-28 1997-10-28 Fast regular multiplier architecture
PCT/US1998/022471 WO1999022292A1 (en) 1997-10-28 1998-10-22 Fast regular multiplier architecture

Publications (2)

Publication Number Publication Date
DE69838877D1 DE69838877D1 (de) 2008-01-31
DE69838877T2 true DE69838877T2 (de) 2008-12-11

Family

ID=25501832

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69838877T Expired - Fee Related DE69838877T2 (de) 1997-10-28 1998-10-22 Architektur eines schnellen regulären multiplizierers

Country Status (12)

Country Link
US (1) US6029187A (de)
EP (1) EP1025486B1 (de)
JP (1) JP2001521240A (de)
KR (1) KR20010040263A (de)
CN (1) CN1191519C (de)
CA (1) CA2304334A1 (de)
DE (1) DE69838877T2 (de)
HK (1) HK1030822A1 (de)
MY (1) MY116428A (de)
NO (1) NO20002193L (de)
TW (1) TW405086B (de)
WO (1) WO1999022292A1 (de)

Families Citing this family (81)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6366944B1 (en) * 1999-01-15 2002-04-02 Razak Hossain Method and apparatus for performing signed/unsigned multiplication
US6708193B1 (en) * 2000-02-21 2004-03-16 Hewlett-Packard Development Company, L.P. Linear summation multiplier array implementation for both signed and unsigned multiplication
GB2365636B (en) 2000-08-04 2005-01-05 Automatic Parallel Designs Ltd A parallel counter and a multiplication logic circuit
US6883011B2 (en) 2000-08-04 2005-04-19 Arithmatica Limited Parallel counter and a multiplication logic circuit
US7136888B2 (en) 2000-08-04 2006-11-14 Arithmatica Limited Parallel counter and a logic circuit for performing multiplication
TW479193B (en) * 2000-11-29 2002-03-11 Ind Tech Res Inst Multiplier with low power consumption and the operation method thereof
GB2373602B (en) 2001-03-22 2004-11-17 Automatic Parallel Designs Ltd A multiplication logic circuit
US7225217B2 (en) * 2001-10-09 2007-05-29 The Regents Of The University Of California Low-power Booth-encoded array multiplier
EP1308836A1 (de) * 2001-10-31 2003-05-07 Motorola, Inc. Addierer-Baum mit einer reduzierten Carry-Ripple Addierstufe
US20040010536A1 (en) * 2002-07-11 2004-01-15 International Business Machines Corporation Apparatus for multiplication of data in two's complement and unsigned magnitude formats
US7260595B2 (en) 2002-12-23 2007-08-21 Arithmatica Limited Logic circuit and method for carry and sum generation and method of designing such a logic circuit
US6909767B2 (en) 2003-01-14 2005-06-21 Arithmatica Limited Logic circuit
US7042246B2 (en) 2003-02-11 2006-05-09 Arithmatica Limited Logic circuits for performing threshold functions
US7308471B2 (en) 2003-03-28 2007-12-11 Arithmatica Limited Method and device for performing operations involving multiplication of selectively partitioned binary inputs using booth encoding
WO2004104820A2 (en) 2003-05-23 2004-12-02 Arithmatica Limited A sum bit generation circuit
CN1324456C (zh) * 2004-01-09 2007-07-04 上海交通大学 采用混合压缩两级流水乘加单元的数字信号处理器
US20050228845A1 (en) * 2004-04-12 2005-10-13 Mathstar, Inc. Shift and recode multiplier
US7424507B1 (en) * 2004-09-30 2008-09-09 National Semiconductor Corporation High speed, low power, pipelined zero crossing detector that utilizes carry save adders
US8620980B1 (en) 2005-09-27 2013-12-31 Altera Corporation Programmable device with specialized multiplier blocks
US8266199B2 (en) * 2006-02-09 2012-09-11 Altera Corporation Specialized processing block for programmable logic device
US8301681B1 (en) 2006-02-09 2012-10-30 Altera Corporation Specialized processing block for programmable logic device
US8266198B2 (en) * 2006-02-09 2012-09-11 Altera Corporation Specialized processing block for programmable logic device
US8041759B1 (en) 2006-02-09 2011-10-18 Altera Corporation Specialized processing block for programmable logic device
US7836117B1 (en) 2006-04-07 2010-11-16 Altera Corporation Specialized processing block for programmable logic device
US7822799B1 (en) 2006-06-26 2010-10-26 Altera Corporation Adder-rounder circuitry for specialized processing block in programmable logic device
US8386550B1 (en) 2006-09-20 2013-02-26 Altera Corporation Method for configuring a finite impulse response filter in a programmable logic device
US8386553B1 (en) 2006-12-05 2013-02-26 Altera Corporation Large multiplier for programmable logic device
US7930336B2 (en) * 2006-12-05 2011-04-19 Altera Corporation Large multiplier for programmable logic device
US7814137B1 (en) 2007-01-09 2010-10-12 Altera Corporation Combined interpolation and decimation filter for programmable logic device
US7865541B1 (en) 2007-01-22 2011-01-04 Altera Corporation Configuring floating point operations in a programmable logic device
US8650231B1 (en) 2007-01-22 2014-02-11 Altera Corporation Configuring floating point operations in a programmable device
US8645450B1 (en) 2007-03-02 2014-02-04 Altera Corporation Multiplier-accumulator circuitry and methods
US7949699B1 (en) 2007-08-30 2011-05-24 Altera Corporation Implementation of decimation filter in integrated circuit device using ram-based data storage
US8959137B1 (en) 2008-02-20 2015-02-17 Altera Corporation Implementing large multipliers in a programmable integrated circuit device
US8244789B1 (en) 2008-03-14 2012-08-14 Altera Corporation Normalization of floating point operations in a programmable integrated circuit device
US8626815B1 (en) 2008-07-14 2014-01-07 Altera Corporation Configuring a programmable integrated circuit device to perform matrix multiplication
US8255448B1 (en) 2008-10-02 2012-08-28 Altera Corporation Implementing division in a programmable integrated circuit device
US8307023B1 (en) 2008-10-10 2012-11-06 Altera Corporation DSP block for implementing large multiplier on a programmable integrated circuit device
US8805916B2 (en) * 2009-03-03 2014-08-12 Altera Corporation Digital signal processing circuitry with redundancy and bidirectional data paths
US8645449B1 (en) 2009-03-03 2014-02-04 Altera Corporation Combined floating point adder and subtractor
US8468192B1 (en) 2009-03-03 2013-06-18 Altera Corporation Implementing multipliers in a programmable integrated circuit device
US8886696B1 (en) 2009-03-03 2014-11-11 Altera Corporation Digital signal processing circuitry with redundancy and ability to support larger multipliers
US8549055B2 (en) 2009-03-03 2013-10-01 Altera Corporation Modular digital signal processing circuitry with optionally usable, dedicated connections between modules of the circuitry
US8706790B1 (en) 2009-03-03 2014-04-22 Altera Corporation Implementing mixed-precision floating-point operations in a programmable integrated circuit device
US8650236B1 (en) 2009-08-04 2014-02-11 Altera Corporation High-rate interpolation or decimation filter in integrated circuit device
US8412756B1 (en) 2009-09-11 2013-04-02 Altera Corporation Multi-operand floating point operations in a programmable integrated circuit device
US8396914B1 (en) 2009-09-11 2013-03-12 Altera Corporation Matrix decomposition in an integrated circuit device
US8539016B1 (en) 2010-02-09 2013-09-17 Altera Corporation QR decomposition in an integrated circuit device
US7948267B1 (en) 2010-02-09 2011-05-24 Altera Corporation Efficient rounding circuits and methods in configurable integrated circuit devices
US8601044B2 (en) * 2010-03-02 2013-12-03 Altera Corporation Discrete Fourier Transform in an integrated circuit device
US8458243B1 (en) 2010-03-03 2013-06-04 Altera Corporation Digital signal processing circuit blocks with support for systolic finite-impulse-response digital filtering
US8484265B1 (en) 2010-03-04 2013-07-09 Altera Corporation Angular range reduction in an integrated circuit device
US8510354B1 (en) 2010-03-12 2013-08-13 Altera Corporation Calculation of trigonometric functions in an integrated circuit device
US8539014B2 (en) * 2010-03-25 2013-09-17 Altera Corporation Solving linear matrices in an integrated circuit device
US8862650B2 (en) 2010-06-25 2014-10-14 Altera Corporation Calculation of trigonometric functions in an integrated circuit device
US8589463B2 (en) 2010-06-25 2013-11-19 Altera Corporation Calculation of trigonometric functions in an integrated circuit device
US8577951B1 (en) 2010-08-19 2013-11-05 Altera Corporation Matrix operations in an integrated circuit device
US8645451B2 (en) 2011-03-10 2014-02-04 Altera Corporation Double-clocked specialized processing block in an integrated circuit device
US9600278B1 (en) 2011-05-09 2017-03-21 Altera Corporation Programmable device using fixed and configurable logic to implement recursive trees
US8812576B1 (en) 2011-09-12 2014-08-19 Altera Corporation QR decomposition in an integrated circuit device
US8949298B1 (en) 2011-09-16 2015-02-03 Altera Corporation Computing floating-point polynomials in an integrated circuit device
US9053045B1 (en) 2011-09-16 2015-06-09 Altera Corporation Computing floating-point polynomials in an integrated circuit device
US8762443B1 (en) 2011-11-15 2014-06-24 Altera Corporation Matrix operations in an integrated circuit device
US8543634B1 (en) 2012-03-30 2013-09-24 Altera Corporation Specialized processing block for programmable integrated circuit device
US9098332B1 (en) 2012-06-01 2015-08-04 Altera Corporation Specialized processing block with fixed- and floating-point structures
US8996600B1 (en) 2012-08-03 2015-03-31 Altera Corporation Specialized processing block for implementing floating-point multiplier with subnormal operation support
US9207909B1 (en) 2012-11-26 2015-12-08 Altera Corporation Polynomial calculations optimized for programmable integrated circuit device structures
US9189200B1 (en) 2013-03-14 2015-11-17 Altera Corporation Multiple-precision processing block in a programmable integrated circuit device
US9348795B1 (en) 2013-07-03 2016-05-24 Altera Corporation Programmable device using fixed and configurable logic to implement floating-point rounding
US9379687B1 (en) 2014-01-14 2016-06-28 Altera Corporation Pipelined systolic finite impulse response filter
KR102318741B1 (ko) * 2015-03-25 2021-11-01 삼성전자주식회사 병렬 곱셈기의 배치 방법
US9684488B2 (en) 2015-03-26 2017-06-20 Altera Corporation Combined adder and pre-adder for high-radix multiplier circuit
US11321049B2 (en) 2017-05-04 2022-05-03 The Research Foundation For The State University Of New York Fast binary counters based on symmetric stacking and methods for same
US10942706B2 (en) 2017-05-05 2021-03-09 Intel Corporation Implementation of floating-point trigonometric functions in an integrated circuit device
CN108108812B (zh) * 2017-12-20 2021-12-03 南京风兴科技有限公司 用于卷积神经网络的高效可配置卷积计算加速器
TWI688895B (zh) * 2018-03-02 2020-03-21 國立清華大學 快速向量乘累加電路
US10908879B2 (en) 2018-03-02 2021-02-02 Neuchips Corporation Fast vector multiplication and accumulation circuit
JP7023149B2 (ja) * 2018-03-22 2022-02-21 キオクシア株式会社 半導体装置
CN110190843B (zh) * 2018-04-10 2020-03-10 中科寒武纪科技股份有限公司 压缩器电路、华莱士树电路、乘法器电路、芯片和设备
CN108984149B (zh) * 2018-08-07 2023-03-03 电子科技大学 一种高速低功耗的近似4-2压缩器
CN111475136B (zh) * 2020-04-10 2023-03-03 电子科技大学 一种零均值误差的近似4-2压缩器

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3866030A (en) * 1974-04-01 1975-02-11 Bell Telephone Labor Inc Two{3 s complement parallel array multiplier
US4575812A (en) * 1984-05-31 1986-03-11 Motorola, Inc. X×Y Bit array multiplier/accumulator circuit
US4901270A (en) * 1988-09-23 1990-02-13 Intel Corporation Four-to-two adder cell for parallel multiplication
KR920006323B1 (ko) * 1990-05-31 1992-08-03 삼성전자 주식회사 스킵(Skip)배열과 수정형 월리스(Wallace)트리를 사용하는 병렬 승산기
FR2665275B1 (fr) * 1990-07-27 1992-11-13 France Etat Multiplieur cellulaire en arbre de type gradin inverse et son procede de realisation.
US5265043A (en) * 1991-12-23 1993-11-23 Motorola, Inc. Wallace tree multiplier array having an improved layout topology
WO1994012928A1 (en) * 1992-11-20 1994-06-09 Unisys Corporation Enhanced fast multiplier
US5343417A (en) * 1992-11-20 1994-08-30 Unisys Corporation Fast multiplier
US5347482A (en) * 1992-12-14 1994-09-13 Hal Computer Systems, Inc. Multiplier tree using nine-to-three adders
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
EP1025486A4 (de) 2004-04-14
TW405086B (en) 2000-09-11
KR20010040263A (ko) 2001-05-15
NO20002193L (no) 2000-06-27
MY116428A (en) 2004-01-31
CN1278341A (zh) 2000-12-27
NO20002193D0 (no) 2000-04-27
CA2304334A1 (en) 1999-05-06
WO1999022292A8 (en) 1999-07-01
WO1999022292A1 (en) 1999-05-06
HK1030822A1 (en) 2001-05-18
JP2001521240A (ja) 2001-11-06
EP1025486A1 (de) 2000-08-09
CN1191519C (zh) 2005-03-02
US6029187A (en) 2000-02-22
EP1025486B1 (de) 2007-12-19
DE69838877D1 (de) 2008-01-31

Similar Documents

Publication Publication Date Title
DE69838877T2 (de) Architektur eines schnellen regulären multiplizierers
DE69632978T2 (de) Multi-Operand-Addierer, der Parallelzähler benutzt
DE3700991C2 (de) Digitaler Übertragsvorgriffsaddierer
DE10105945B4 (de) Multiplizierer mit Linearsummierungsarray sowohl zur vorzeichenbehafteten als auch zur vorzeichenlosen Multiplikation
DE3686681T2 (de) Parallelmultiplizierer.
DE3854321T2 (de) Populationszählung in Rechnersystemen.
DE102020113922A1 (de) Multipliziererschaltungsanordnung mit reduzierter latenz für sehr grosse zahlen
DE69731700T2 (de) Arithmetischer Schaltkreis und arithmetisches Verfahren
DE3789132T2 (de) Digitale Multipliziererarchitektur mit Dreifachgitter zur Summation von Teilprodukten.
DE3927009A1 (de) Addierschaltung
DE3901995C2 (de)
DE69025182T2 (de) Digitaler prozessor für zweierkomplementberechnungen
DE4101004C2 (de) Paralleler Multiplizierer mit Sprungfeld und modifiziertem Wallac-Baum
DE69434806T2 (de) Verfahren, System und Vorrichtung zum automatischen Entwurf einer Multiplikatorschaltung und durch die Durchführung dieses Verfahrens entworfene Multiplikatorschaltung
DE3036747A1 (de) Binaere multiplikationszellenschaltung
DE102020105536A1 (de) Maschinenlerntrainingsarchitektur für programmierbare Vorrichtungen
DE69300069T2 (de) Digitaler Rechnervorgang und arithmetische Einheit zur dessen Ausführung.
DE69026414T2 (de) Binäres Addiergerät
DE2730918A1 (de) Anordnung zum multiplizieren von binaerzahlen
DE69125761T2 (de) Übertragvorgriffsaddierer
EP0090298B1 (de) In MOS-Technik integrierter schneller Multiplizierer
DE3434777A1 (de) Verfahren und vorrichtung zur vorzeichenerzeugung fuer einen uebertragsicherstellungsaddierer
DE3880825T2 (de) Anordnung zur schnellen addition von binärzahlen.
DE10117041C1 (de) Carry-Ripple Addierer
DE68910375T2 (de) Rekursiver Addierer zur Berechnung der Summe zweier Operanden.

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee