DE69434806T2 - Verfahren, System und Vorrichtung zum automatischen Entwurf einer Multiplikatorschaltung und durch die Durchführung dieses Verfahrens entworfene Multiplikatorschaltung - Google Patents

Verfahren, System und Vorrichtung zum automatischen Entwurf einer Multiplikatorschaltung und durch die Durchführung dieses Verfahrens entworfene Multiplikatorschaltung Download PDF

Info

Publication number
DE69434806T2
DE69434806T2 DE69434806T DE69434806T DE69434806T2 DE 69434806 T2 DE69434806 T2 DE 69434806T2 DE 69434806 T DE69434806 T DE 69434806T DE 69434806 T DE69434806 T DE 69434806T DE 69434806 T2 DE69434806 T2 DE 69434806T2
Authority
DE
Germany
Prior art keywords
circuit
constant
sum
bits
value
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 - Lifetime
Application number
DE69434806T
Other languages
English (en)
Other versions
DE69434806D1 (de
Inventor
Tamotsu Nishiyama
Shintaro Tsubata
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.)
Panasonic Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Publication of DE69434806D1 publication Critical patent/DE69434806D1/de
Application granted granted Critical
Publication of DE69434806T2 publication Critical patent/DE69434806T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • 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
    • 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
    • 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/4824Methods 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 using signed-digit representation

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Complex Calculations (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Image Generation (AREA)

Description

  • ALLGEMEINER STAND DER TECHNIK
  • Die vorliegende Erfindung betrifft ein Verfahren, ein System und eine Vorrichtung zum automatischen Entwerfen einer logischen Schaltung, insbesondere eines Multiplikators oder einer logischen Schaltung mit einem Multiplikator, und einen Multiplikator.
  • Herkömmliche Multiplikatoren zum Durchführen von Multiplikation mit digitalen Informationen werden oft nicht nur als einzelne, unabhängige LSIs, sondern auch als in solchen LSIs als DSP (digitaler Signalprozessor) zu montierende Elemente verwendet. Da sich die Bitbreite in Multiplikation jedoch erhöht, und ihre Anwendungen diversifizierter sind, müssen Multiplikatoren dieses Typs eine reduzierte Schaltungsgröße und auch eine reduzierte Chip-Fläche (chip area) aufweisen, um mit höherer Geschwindigkeit zu arbeiten. Um die Anforderungen zu erfüllen, wurden Schaltungssysteme vorgeschlagen, die verschiedene Multiplikationsverfahren verwenden.
  • Zum Beispiel wird ein Multiplikationsverfahren, welches das 2-Bit-Booth-Recoding-System verwendet, das eines der Multiplikationsverfahren mit der höchsten Geschwindigkeit ist, in "Nikkei Electronics" (29. Mai, S. 75–89 (1978)) offenbart. Das Multiplikationsverfahren verwendet den folgenden Algorithmus, um die Multiplikationsgeschwindigkeit zu erhöhen.
  • Wenn ein n-Bit-Multiplikand X mit einem m-Bit-Multiplikand Y multipliziert werden soll, wird der Multiplikationsfaktor Y z.B. durch zwei Komplemente dargestellt wie folgt:
    Figure 00010001
    wobei ym = ys, q = m/2, wenn m eine gerade Zahl ist, oder q = (m – 1)/2, wenn m eine ungerade Zahl ist, und y0 = 0 (y ist ein der Einfachheit halber vorgegebener Wert).
  • Daher wird das Produkt P von X und Y
    Figure 00020001
  • Da die Werte von y2i, y2i + 1 und y2i + 2 hier 0 oder 1 sind, wird (y2i + y2i + 1 – 2y2i + 2) 0, ±1 oder ±2, so dass jedes ihrer Teilprodukte ein Wert wird, der durch Multiplizieren von 0, ±X oder ±2X mit 22i erhalten wird.
  • Tabelle 1
    Figure 00020002
  • Hier kann eine Schaltung zum Erzeugen der Teilprodukte aus einer Schiebeschaltung bestehen, primär zum Verschieben des Multiplikanden ±X um ein Bit, bis er verdoppelt ist, und einer Schiebeschaltung zum Verschieben einer Mantisse (0, ±X oder ±2X) um 2 Bits, bis sie zur Potenz von 22i erhoben ist (wägend) (weighing).
  • Was die Anzahl von logischen Stufen in einer Schaltung zum Berechnen der Gesamtsumme der Teilprodukte betrifft, wird sie, da die Anzahl der Teilprodukte q = m/2, (m ist eine gerade Zahl), oder q = (m – 1)/2 wird, (m ist eine ungerade Zahl), ungefähr log2 m – 1, (m ist eine gerade Zahl), oder log2 (m – 1) – 1, (m ist eine ungerade Zahl), wenn ein Addierer mit 2 Eingängen so angeschlossen ist, das ein Binärbaum gebildet wird.
  • Als ein Beispiel für Hochgeschwindigkeits-Multiplikatoren, die das 2-Bit-Booth-Recoding-System nicht verwenden, offenbart die japanische Patentveröffentlichung Nr. 03-017737 einen Multiplikator, der redundanten Binärcode verwendet.
  • Mit dem oben genannten Multiplikator, wenn sich der Multiplikationsfaktor aus 24 Bits zusammensetzt, wird die Anzahl seiner Teilprodukte 12, und die Anzahl seiner logischen Stufen wird 4.
  • EP-A-0 447 244 (INTERNATIONAL BUSINESS MACHINES CORPORATION) offenbart einen Tabellensuchmultiplikator, der für Hochgeschwindigkeitsberechnungen geeignet ist. Der Multiplikator multipliziert zwei Mehrbit-Binäroperanden, um ein Binärergebnis mittels einer Suchtabelle (LUT) herzustellen, die alle möglichen Produkte der Operanden enthält.
  • Eine Reduzierung der Gesamtmenge an Speicher, die zum Speichern der Tabelle erforderlich ist, wird durch Segmentieren eines Operanden in eine Vielzahl von sich nicht überlappenden Bitgruppen und Erstellen von Suchtabellen für die Bitgruppen erzielt, wobei jede Suchtabelle Produkte ihrer zugeordneten Bitgruppe und den anderen, nicht-partitionierten Operanden enthält. Die Multiplikation erfolgt durch Erzeugen von Teilprodukten aus den Suchtabellen, Verschieben der Teilprodukte zum Berücksichtigen der relativen Signifikanz ihrer zuordneten Bitgruppen und Addieren der Teilprodukte zum Bereitstellen des sich daraus ergebenden Produkts.
  • Andererseits wurde die Erhöhung der Multiplikationsgeschwindigkeit und die Reduzierung der Schaltungsgröße nicht nur durch Verbessern der Leistung eines solchen Multiplikationsalgorithmus, wie oben erwähnt, verfolgt, sondern auch durch Optimierung auf der Ebene von logischen Elementen.
  • In den letzten Jahren wurden Multiplikatoren und logische Schaltungen, die Multiplikatoren enthalten, meistens unter Verwendung von automatischen Entwurfssystemen entworfen. Ein derartiges System dient dazu, einen redundanten Teil der Schaltung zu eliminieren oder andere Operationen durchzuführen, indem ein Teil der Schaltung durch eine gleichwertige Schaltung, die eine kleinere Anzahl von logischen Elementen und logischen Stufen aufweist, ersetzt wird im Fall von z.B. Erweitern von Schaltungsinforma tionen auf der Ebene von logischen Elementen auf Schaltungsinformationen auf der Ebene von montierten Elementen, die tatsächlich in einem Chip montiert sind.
  • Wenn Funktionsbeschreibungs-Informationen, die eine Funktion, die auf der Schaltung gewünscht wird, in einer Hardware-Beschreibungssprache oder dergleichen dargestellt werden, werden sie in ein derartiges automatisches Entwurfssystem eingegeben, das System wandelt sie in Schaltungsfunktions-Informationen in einer internen Darstellungsform um, welche eine Schaltung darstellt, die sich aus virtuellen Funktionselementen zusammensetzt, deren Funktionen primär und allein definiert werden. Dann werden die daraus resultierenden Schaltungsfunktions-Informationen weiter in Logikschaltungs-Informationen umgewandelt, welche eine Schaltung darstellen, die sich aus realen logischen Schaltungen zusammensetzt, gefolgt von der Erzeugung von Informationen zur montierten Schaltung, welche eine Schaltung darstellen, der reale Elemente, die durch spezielle Technologie montiert werden, zugewiesen sind.
  • In dem Fall, in dem die Funktion, die durch die oben genannten Funktionsbeschreibungs-Informationen dargestellt wird, Multiplikation enthält, wird, wenn ein anpassungsfähiger (versatile) Multiplikator mit einer spezifizierten Bitbreite, (z.B. 4, 8, 17 oder 32 Bits), sich vorher in einer Bibliothek als ein Hardware-Makro befunden hat und somit verfügbar ist, der anpassungsfähige Multiplikator zum Beispiel zu der logischen Schaltung zugewiesen. Wenn ein Multiplikator erforderlich ist, der sich nicht in der Bibliothek befindet, wird eine logische Schaltung, die einen Schiebe- und Addierer-Multiplikator oder dergleichen bildet, neu erzeugt. Wenn entweder der Multiplikationsfaktor oder Multiplikand eine Konstante ist, und der Wert davon eine gewisse Potenzzahl von 2 (power-of-2 number) ist, wird die Schaltung nach dem Einsatz einer Schiebeschaltung normal erzeugt.
  • Wenn der Multiplikationsfaktor eine Konstante ist, deren Wert keine Potenzzahl von 2 ist, werden jedoch die Werte aller Bits eines Teilprodukts, das einem Bit mit dem Wert von 0 in dem Multiplikationsfaktor entspricht, 0, so dass die Signale von einer Schaltung zum Erzeugen oder Addieren solcher Teilprodukte unvorteilhafterweise in dem gleichen Zustand bleiben.
  • Zum Lösen des Problems haben herkömmliche automatische Entwurfsvorrichtungen ein Verfahren angewendet, in dem eine multiplizierende Schaltung unter Verwendung von Variablen als ihrem Multiplikationsfaktor und Multiplikanden und eine Schaltung zum Erzeugen einer Konstante erzeugt werden, bevor die Schaltung auf der Ebene von logischen Elementen optimiert wird, wie oben erwähnt, wodurch das Löschen von logischen Elementen erfolgt, die Signale erzeugen, die in dem gleichen Zustand bleiben.
  • Bei den herkömmlichen automatischen Entwurfssystemen wird die Optimierung der Schaltung auf der Ebene von logischen Elementen jedoch lokalisiert, da die Ersetzung durch eine gleichwertige Schaltung mit einer kleineren Anzahl von logischen Elementen und logischen Stufen auf Abschnitte der Schaltung begrenzt ist, die mit spezifischen Mustern zusammenfallen, die vorher gesetzt wurden. Wenn eine solche Optimierung in dem Fall durchgeführt wird, in dem der Multiplikationsfaktor oder Multiplikand eine Konstante ist, kann eine Schaltung mit der Mindestanzahl von logischen Elementen und dergleichen nicht notwendigerweise erzielt werden. Insbesondere wenn Übertragsspeicheraddierer in einer Baumstruktur so verbunden sind, dass sie Teilprodukte addieren, ist der sich daraus ergebende Baum normalerweise unausgewogen, wenn der Abschnitt, der mit einer Schaltung zum Addieren der Teilprodukte verknüpft ist, in denen die Werte aller Bits 0 sind, weggelassen wird. Daher ist es schwierig, die Anzahl von logischen Elementen und die Anzahl von logischen Stufen durch teilweises Ersetzen der Schaltung zu minimieren. Des Weiteren wurden die herkömmlichen automatischen Entwurfsvorrichtungen ohne Berücksichtigung der Erhöhung der Anzahl von bestimmten Produkten ausgelegt, in denen die Werte aller Bits 0 sind.
  • KURZDARSTELLUNG DER ERFINDUNG
  • Die vorliegende Erfindung wurde im Hinblick auf das Vorgenannte ausgeführt. Es ist daher eine Aufgabe der vorliegenden Erfindung, in dem Fall des Erzeugens eines Multiplikators zum Durchführen von Multiplikation unter Verwendung einer Konstante als ihrem Multiplikationsfaktor oder Multiplikanden und einer logischen Schaltung mit einem solchen Multiplikator ein Verfahren, ein System und eine Vorrichtung zum automatischen Entwerfen einer logischen Schaltung bereitzustellen, wodurch eine Schaltung mit einer kleineren Anzahl von logischen Elementen und logischen Stufen erzeugt werden kann, und einen Hochgeschwindigkeits-Multiplikator bereitzustellen, der Multiplikation unter Verwendung einer Konstante als seinem Multiplikationsfaktor oder Multiplikanden durchführt, und der eine kleinere Anzahl von logischen Elementen und logischen Stufen aufweist, die für Großintegration geeignet sind.
  • Diese Aufgabe wird von der Erfindung gelöst, wie in den unabhängigen Ansprüchen beansprucht.
  • Bevorzugte Ausführungsformen werden von den abhängigen Ansprüchen definiert.
  • Ein Verfahren zum automatischen Entwerfen einer logischen Schaltung zum Erzeugen von Informationen über die logische Schaltung zum Berechnen des Produkts eines Multiplikationsfaktors und eines Multiplikanden umfasst die folgenden Schritte: in Bezug auf jedes Bit des Multiplikationsfaktors (a) feststellen, ob der Multiplikationsfaktor eine Variable oder eine Konstante ist; (b) wenn der Multiplikationsfaktor eine Variable ist, Informationen über eine Schaltung erzeugen, um basierend auf dem Wert eines Bits von Bedeutung in dem Multiplikationsfaktor entweder ein Signal auszuwählen, das den Multiplikanden angibt, oder ein Signal, das 0 angibt, und das ausgewählte Signal als ein Teilprodukt ausgeben; (c) wenn der Multiplikationsfaktor eine Konstante ist, feststellen, ob der Wert des Bits in dem Multiplikationsfaktor 1 ist oder nicht; (d) wenn der Wert des Bits in dem Multiplikationsfaktor 1 ist, Informationen über eine Schaltung zum Ausgeben des Signals erzeugen, das den Multiplikanden als ein Teilprodukt angibt; und (e) nach dem Ausführen der Schritte (a) bis (d) Informationen über eine Schiebeschaltung erzeugen, um das Signal, das den Multiplikanden angibt, um ein Bit zu verschieben und das Ausgangssignal von der Schiebeschaltung neu als ein Signal zu setzen, das den Multiplikanden angibt, der in den Schritten (a) bis (d) verwendet werden soll, wobei die Schritte (a) bis (e) wiederholt für alle Bits des Multiplikationsfaktors ausgeführt werden.
  • Wenn bei der oben genannten Struktur der Multiplikationsfaktor eine Konstante in der Stufe zum Entwerfen einer logischen Schaltung mit der multiplizierenden Funktion ist, wird nur die Schaltung zum Berechnen des Produkts eines Bits mit dem Wert 1 in dem Multiplikationsfaktor und dem Multiplikanden als ein Teilprodukt erzeugt, wogegen die Schaltung zum Berechnen eines Teilprodukts in Bezug auf ein Bit mit dem Wert von 0 in dem Multiplikationsfaktor nicht erzeugt wird. Als Ergebnis dessen kann die Anzahl der Schaltungen zum Berechnen von Teilprodukten in der zu erzeugenden logischen Schal tung reduziert werden, wobei die Fläche für die Schaltungen zum Addieren von Teilprodukten reduziert werden kann. Demzufolge kann die Fläche für die logische Schaltung reduziert werden, und eine Berechnung mit höherer Geschwindigkeit kann problemlos durchgeführt werden.
  • Um die oben genannte Aufgabe zu erfüllen, umfasst ein Verfahren zum automatischen Entwerfen einer logischen Schaltung zum Erzeugen von Informationen über die logische Schaltung zum Berechnen des Produkte eines Multiplikationsfaktors und eines Multiplikanden die folgenden Schritte: in Bezug auf jede Gruppe, die aus n Teilprodukten besteht, die durch gleichmäßiges Teilen einer Vielzahl von Teilprodukten erhalten wird, welche die Produkte der einzelnen Bits des Multiplikationsfaktors und des Multiplikanden sind, (a) Informationen über eine Addierschaltung zum Empfangen der n Teilprodukte in eine Gruppe von Bedeutung erzeugen und die Summe der n Teilprodukte in der oben genannten Gruppe als m (< n) Teilprodukte ausgeben; und in Bezug auf alle der Vielzahl von Teilprodukten (b) nach dem wiederholten Ausführen des Schritts (a) alle Teilprodukte, welche die Ausgänge der in dem Schritt (a) erzeugten Addierschaltung sind, und diejenigen Teilprodukte der Vielzahl von Teilprodukten neu setzen, die von der in dem Schritt (a) erzeugten Addierschaltung nicht als die in dem Schritt (a) zu verarbeitende Vielzahl von Teilprodukten empfangen wurden, wobei die Schritte (a) und (b) wiederholt ausgeführt werden.
  • Bei der oben genannten Struktur kann die Schaltung zum Addieren von Teilprodukten erzeugt werden, indem Addierer mit geringerer Übertragsverbreitung (carry propagation) in einer Baumstruktur in der Stufe des Entwerfens einer logischen Schaltung mit der multiplizierenden Funktion angeordnet werden. Demzufolge kann in der sich daraus ergebenden logischen Schaltung die Anzahl der Stufen zum Addieren von Produkten reduziert werden, und Übertrag wird nicht in einzelner Addition verbreitet, wodurch Multiplikation mit einer höheren Geschwindigkeit implementiert wird.
  • Zum Erfüllen der oben genannten Aufgabe umfasst ein Verfahren zum automatischen Entwerfen einer logischen Schaltung zum Erzeugen von Informationen über die logische Schaltung zum Berechnen des Produkts eines Multiplikationsfaktors und eines Multiplikanden die folgenden Schritte: (a) zwei Konstanten A1 und A2 so bestimmen, dass die Differenz (A1 – A2) zwischen den Konstanten A1 und A2 gleich dem konstanten Multipli kationsfaktor A ist; (b) Informationen über eine erste, teilprodukterzeugende Schaltung zum Empfangen der Konstanten A1 und des Multiplikanden X erzeugen und ihre Teilprodukte ausgeben; (c) Informationen über eine zweite, teilprodukterzeugende Schaltung zum Empfangen der Konstante A2 und des Multiplikanden X erzeugen und ihre Teilprodukte ausgeben; (d) Informationen über eine logische NICHT-Schaltung zum Empfangen der Ausgangssignale von der zweiten, teilprodukterzeugenden Schaltung erzeugen und deren logische NICHT-Signale ausgeben; und (e) Informationen über eine Schaltung zum Empfangen der Ausgangssignale der ersten, teilprodukterzeugenden Schaltung, der Ausgangssignale von der logischen NICHT-Schaltung und eines Korrektursignals erzeugen, deren Summe berechnen und die Summe als das Produkt des Multiplikationsfaktors A und des Multiplikanden X ausgeben.
  • Das Verfahren zum automatischen Entwerfen einer logischen Schaltung zum Erzeugen von Informationen über die logische Schaltung zum Berechnen des Produkts eines Multiplikationsfaktors und des Multiplikanden umfasst die folgenden Schritte: (a) drei Konstanten A1, A2 und A3 so bestimmen, dass die Differenz A1 – (A2 + A3) zwischen der Konstante A1 und der Summe der Konstanten A2 und A3 gleich dem konstanten Multiplikationsfaktor A ist; (b) feststellen, ob die Konstante A1 gleich dem Multiplikationsfaktor A ist oder nicht, und ob jede der Konstanten A2 und A3 0 ist oder nicht; (c) wenn die Konstante A1 gleich dem Multiplikationsfaktor A ist, (c-1) Informationen über eine erste, teilprodukterzeugende Schaltung zum Empfangen des Multiplikationsfaktors A1 und des Multiplikanden X erzeugen und ihre Teilprodukte ausgeben und (c-2) Informationen über eine erste Teilproduktsummenschaltung zum Empfangen aller Ausgangssignale von der ersten, teilprodukterzeugenden Schaltung erzeugen, ihre Summe berechnen und die Summe als das Produkt des Multiplikationsfaktors A und des Multiplikanden X ausgeben; und (d) wenn die Konstante A1 nicht gleich dem Multiplikationsfaktor A ist, und wenigstens eine der Konstanten A2 und A3 nicht 0 ist, (d-1) Informationen über eine zweite, teilprodukterzeugende Schaltung zum Empfangen der Konstanten A1 und des Multiplikanden X erzeugen und ihre Teilprodukte ausgeben, (d-2) Informationen über eine dritte, teilprodukterzeugende Schaltung zum Empfangen der Konstanten A2 und A3 und des Multiplikanden X erzeugen und ihre Teilprodukte ausgeben, (d-3) Informationen über eine erste logische NICHT-Schaltung zum Empfangen der Ausgangssignale von der dritten, teilprodukterzeugenden Schaltung erzeugen und deren logische NICHT-Signale ausgeben, und (d-4) Informationen über eine zweite Teilproduktsummenschaltung zum Empfangen der Ausgangssignale von der zweiten, teilprodukterzeugenden Schaltung, der Ausgangssignale von der ersten logischen NICHT-Schaltung und eines ersten Korrektursignals erzeugen, ihre Summe berechnen und die Summe als das Produkt des Multiplikationsfaktors A und des Multiplikanden X ausgeben.
  • Bei der oben genannten Struktur wird in dem Fall, in dem der Multiplikationsfaktor A eine große Anzahl von Bits, deren Wert 1 ist, in der Stufe zum Entwerfen einer logischen Schaltung mit der multiplizierenden Funktion aufweist, der Multiplikationsfaktor in die Konstanten A1 und A2 geteilt, die A = A1 – A2 erfüllen, (oder der Multiplikationsfaktor A wird in die Konstanten A1, A2 und A3 geteilt, die A = A1 – (A2 + A3) erfüllen), so dass es möglich wird, die Gesamtanzahl der Bits mit dem Wert 1 in den Konstanten A1 und A2 (oder in den Konstanten A1, A2 und A3) kleiner zu halten als die Anzahl der Bits mit dem Wert 1 in dem Multiplikationsfaktor A. Daher kann die Anzahl von Teilprodukten in der oben genannten logischen Schaltung reduziert werden.
  • Zum Erfüllen der oben genannten Aufgabe umfasst ein Verfahren zum automatischen Entwerfen einer logischen Schaltung zum Erzeugen von Informationen über die logische Schaltung zum Berechnen des Produkts eines Multiplikationsfaktors und eines Multiplikanden die folgenden Schritte: (a) das logische NICHT-Signal des konstanten Multiplikationsfaktors A aus dem Multiplikationsfaktor A herstellen; (b) in Bezug auf jedes Bit des logischen NICHT-Signals des Multiplikationsfaktors A (b-1) feststellen, ob der Wert eines Bits von Bedeutung in dem logischen NICHT-Signal des Multiplikationsfaktors A 1 ist oder nicht, (b-2) wenn der Wert des Bits in dem logischen NICHT-Signal des Multiplikationsfaktors A 1 ist, Informationen über eine Schaltung zum Ausgeben eines Signals erzeugen, das den Multiplikanden X als ein Teilprodukt angibt, und (b-3) nach dem Ausführen der Schritte (b-1) und (b-2) Informationen über eine Schiebeschaltung erzeugen, um das Signal, das den Multiplikanden X angibt, um ein Bit zu verschieben, und das Ausgangssignal von der Schiebeschaltung als den Multiplikanden X neu setzen, der in den Schritten (b-1) und (b-2) verwendet werden soll, wobei die Schritte (b-1) bis (b-3) wiederholt ausgeführt werden in Bezug auf alle Bits des logischen NICHT-Signals des Multiplikationsfaktors A, um Informationen über eine teilprodukterzeugende Schaltung zu erzeugen; (c) Informationen über eine Teilprodukte addierende Schaltung zum Empfangen aller Ausgangssignale von der teilprodukterzeugenden Schaltung und des Signals, das den Multiplikanden X angibt, erzeugen und die Additionsergebnisse als eine spezifizierte Anzahl von Teilprodukten ausgeben; (d) Informationen über eine logische NICHT-Schaltung zum Empfangen der Ausgangssignale aus der Teilprodukte addierenden Schaltung erzeugen und deren logische NICHT-Signale ausgeben; (e) ein Korrektursignal aus dem Multiplikanden X erzeugen; und (f) Informationen über eine Endsummenschaltung zum Empfangen des Korrektursignals und der Ausgangssignale von der logischen NICHT-Schaltung erzeugen, deren Summe berechnen und die Summe als das Produkt des Multiplikationsfaktors A und des Multiplikanden X ausgeben.
  • Bei der oben genannten Struktur wird in dem Fall, in dem die Anzahl der Bits mit dem Wert 1 in dem konstanten Multiplikationsfaktor A in der Stufe zum Entwerfen einer logischen Schaltung mit der multiplizierenden Funktion groß ist, das logische NICHT-Signal des Multiplikationsfaktors A hergestellt, so dass die Schaltung zum Berechnen von Teilprodukten nur in Bezug auf die Bits mit dem Wert 1 in dem logischen NICHT-Signal des Multiplikationsfaktor A erzeugt werden kann. Dementsprechend wird es möglich, die Anzahl der Schaltungen zum Berechnen von Teilprodukten in der oben genannten logischen Schaltung gleich der oder kleiner als die Hälfte der Anzahl aller Bits in dem Multiplikationsfaktor A zu halten.
  • Zum Erfüllen der oben genannten Aufgabe umfasst ein System zum automatischen Entwerfen einer logischen Schaltung: eine Eingabeeinrichtung zum Empfangen verschiedener Informationen; eine Speichereinrichtung zum Speichern der verschiedenen Informationen, die verarbeitet werden; eine Verarbeitungseinrichtung zum Herstellen von Informationen über die logische Schaltung zum Berechnen des Produkts eines Multiplikationsfaktors und des Multiplikanden, die über die Eingabeeinrichtung eingegeben werden; und eine Ausgabeeinrichtung zum Ausgeben der Informationen über die logische Schaltung, die von der Verarbeitungseinrichtung hergestellt werden, wobei die Verarbeitungseinrichtung die folgenden Schritte ausführt: (a) zwei Konstanten A1 und A2 so bestimmen, dass die Differenz (A1 – A2) zwischen den Konstanten A1 und A2 gleich dem konstanten Multiplikationsfaktor A ist; (b) feststellen, welches der kleinere Wert ist von der Anzahl der Bits mit dem Wert 1 in dem Multiplikationsfaktor A und der Summe der Anzahl der Bits mit dem Wert 1 in den Konstanten A1 und A2 ist; (c) wenn die Anzahl der Bits mit dem Wert 1 der kleinere Wert ist, (c-1) Informationen über eine erste, teilprodukterzeugende Schaltung zum Empfangen des Multiplikationsfaktors A und des Multiplikanden X erzeugen und die Produkte der einzelnen Bits in dem Multipli kationsfaktor A und des Multiplikanden X als Teilprodukte ausgeben; und (c-2) Informationen über eine erste Teilproduktsummensschaltung zum Empfangen aller Ausgangssignale von der ersten, teilprodukterzeugenden Schaltung erzeugen, deren Summe berechnen und die Summe als das Produkt des Multiplikationsfaktors A und des Multiplikanden X ausgeben; und (d) wenn die Summe der Anzahlen der Bits mit dem Wert 1 in den Konstanten A1 und A2 der kleinere Wert ist, (d-1) Informationen über eine zweite, teilprodukterzeugende Schaltung zum Empfangen der Konstanten A1 und des Multiplikanden X erzeugen und ihre Teilprodukte ausgeben, (d-2) Informationen über eine dritte, teilprodukterzeugende Schaltung zum Empfangen der Konstanten A2 und des Multiplikanden X erzeugen und ihre Teilprodukte ausgeben, (d-3) Informationen über eine logische NICHT-Schaltung zum Empfangen der Ausgangssignale von der dritten teilprodukterzeugenden Schaltung erzeugen und deren logische NICHT-Signale ausgeben, und (d-4) Informationen über eine zweite Teilproduktsummenschaltung zum Empfangen der Ausgangssignale von der zweiten, teilprodukterzeugenden Schaltung, der Ausgangssignale von der logischen NICHT-Schaltung und eines Korrektursignals erzeugen, deren Summe berechnen und die Summe als das Produkt des Multiplikationsfaktors A und des Multiplikanden X ausgeben.
  • Eine Vorrichtung zum automatischen Entwerfen einer logischen Schaltung mit der multiplizierenden Funktion zum Berechnen des Produkts eines Multiplikationsfaktors und eines Multiplikanden umfasst: eine Einrichtung zum Empfangen von verschiedenen Informationen von außen, einschließlich Informationen über den Multiplikationsfaktor A, Informationen über den Multiplikanden X und Informationen über das Produkt P; eine Einrichtung zum Empfangen der Informationen über den Multiplikationsfaktor A und zum Bestimmen von Informationen über eine Zahl A1 und Informationen über eine Konstante A2, so dass die Differenz (A1 – A2) zwischen der Zahl A1 und der Konstanten A2 gleich dem Multiplikationsfaktor A ist; eine Einrichtung zum Empfangen der Informationen über die Zahl A1 und der Informationen über den Multiplikanden X und zum Erzeugen von Informationen über eine erste, teilprodukterzeugende Schaltung, welche die Zahl A1 und den Multiplikanden X empfängt und die Produkte der einzelnen Bits, deren Wert nicht 0 ist in dem Multiplikationsfaktor A und dem Multiplikanden X, als Teilprodukte ausgibt; eine Einrichtung zum Empfangen der Informationen über die Konstante A2 und der Informationen über den Multiplikanden X und zum Erzeugen von Informationen über eine zweite teilprodukterzeugende Schaltung, welche die Konstante A2 und den Multiplikan den X empfängt und die Produkte der einzelnen Bits, deren Wert nicht 0 ist in der Konstanten A2 und dem Multiplikanden X, als Teilprodukte ausgibt; eine Einrichtung zum Empfangen von Informationen über die Ausgangssignale von der zweiten, teilprodukterzeugenden Schaltung und zum Erzeugen von Informationen über eine logische NICHT-Schaltung, welche die Ausgangssignale von der zweiten, teilprodukterzeugenden Schaltung empfängt und deren logische NICHT-Signale ausgibt; eine Einrichtung zum Erfassen der Gesamtanzahl von Ausgangssignalen von der ersten, teilprodukterzeugenden Schaltung und von der logischen NICHT-Schaltung; eine Einrichtung zum Empfangen von Informationen über die Ausgangssignale von der ersten, teilprodukterzeugenden Schaltung und von Informationen über die Ausgangssignale von der logischen NICHT-Schaltung und zum Erzeugen von Informationen über eine Teilproduktaddierschaltung, welche alle Ausgangssignale von der ersten, teilprodukterzeugenden Schaltung und von der logischen NICHT-Schaltung empfängt und die Additionsergebnisse als Teilprodukte ausgibt; eine Einrichtung zum Empfangen entweder der Informationen über die Ausgangssignale von der logischen NICHT-Schaltung oder der Informationen über die Ausgangssignale von der zweiten, teilprodukterzeugenden Schaltung und zum Erzeugen eines Korrektursignals auf der Basis der Anzahl der Ausgangssignale, die durch die empfangenen Informationen angegeben werden; und eine Einrichtung zum Empfangen von Informationen über die Ausgangssignale von der Teilprodukte addierenden Schaltung, Informationen über das Korrektursignal und den Informationen über das Produkt P und zum Erzeugen von Informationen über eine Teilproduktsummen erzeugende Schaltung, welche die Summe der Ausgangssignale von der Teilprodukte addierenden Schaltung und des Korrektursignals berechnet, die Summe auf das Produkt P als das Produkt des Multiplikationsfaktors A und des Multiplikanden X setzt und das Produkt P ausgibt.
  • Wenn bei der oben genannten Struktur die Verarbeitungseinrichtung des automatischen Entwurfssystems die Prozessabfolge ausführt, oder wenn die einzelnen Einrichtungen der Vorrichtung zum automatischen Entwerfen ihre jeweiligen Prozesse ausführen, kann eine logische Schaltung mit einer reduzierten Anzahl von Teilprodukten und einer reduzierten Anzahl von logischen Stufen problemlos erzeugt werden.
  • Um die oben genannte Aufgabe zu erfüllen, umfasst ein Multiplikator zum Ausgeben des Produkts eines Multiplikationsfaktors A, der A = A1 – A2 in Bezug auf die Konstanten A1 und A2 erfüllt, und eines Multiplikanden: eine erste, teilprodukterzeugende Einrichtung zum Empfangen der Konstante A1 und des Multiplikanden X und zum Ausgeben von Teilprodukten nur in Bezug auf die Bits mit dem Wert 1 in der Konstanten A1; eine zweite, teilprodukterzeugende Einrichtung zum Empfangen der Konstanten A1 und des Multiplikanden X und zum Ausgeben von Teilprodukten nur in Bezug auf die Bits mit dem Wert 1 in der Konstante A2; eine logische NICHT-Einrichtung zum Empfangen der Ausgangssignale und zum Ausgeben ihrer logischen NICHT-Signale; und eine Teilproduktsummeneinrichtung zum Empfangen der Ausgangssignale von der ersten teilprodukterzeugenden Einrichtung, der Ausgangssignale von der logischen NICHT-Einrichtung und eines Korrektursignals, zum Berechnen ihrer Summe und zum Ausgeben der Summe als das Produkt des Multiplikationsfaktors A und des Multiplikanden X.
  • Ein Multiplikator zum Ausgeben des Produkts eines Multiplikationsfaktors A und eines Multiplikanden X umfasst: eine teilprodukterzeugende Einrichtung zum Empfangen des logischen NICHT-Signals und des Multiplikanden X und zum Ausgeben von Teilprodukten nur in Bezug auf die Bits mit dem Wert 1 in dem logischen NICHT-Signal des Multiplikationsfaktors A; eine teilproduktaddierende Einrichtung zum Empfangen der Ausgabesignale von der teilprodukterzeugenden Einrichtung und dem Multiplikanden X, zum Addieren der Ausgabesignale von der teilprodukterzeugenden Einrichtung und dem Multiplikanden X unter Verwendung von einstufigen oder mehrstufigen Addiereinrichtungen, und zum Ausgeben der Additionsergebnisse als Teilprodukte; eine logische NICHT-Einrichtung zum Empfangen der Ausgangssignale von der Teilprodukte addierenden Einrichtung und zum Ausgeben ihrer logischen NICHT-Signale; und eine Teilproduktsummen-Einrichtung zum Empfangen der Ausgangssignale von der logischen NICHT-Einrichtung und eines Korrektursignals, welches aus dem Multiplikanden X erzeugt werden kann, zum Berechnen der Summe der Ausgangssignale der logischen NICHT-Einrichtung und des Korrektursignals, und zum Ausgeben der Summe als das Produkt des Multiplikationsfaktors A und des Multiplikanden X.
  • Bei der oben genannten Struktur gibt jede teilprodukterzeugende Einrichtung ein Teilprodukt nur in Bezug auf ein Bit mit dem Wert 1 in dem logischen NICHT-Signal des Multiplikationsfaktors A oder in den Konstanten A1 und A2 aus, welche A = A1 – A2 erfüllen, so dass die Anzahl von Teilprodukten reduziert werden kann. Außerdem werden die sich daraus ergebenden Teilprodukte durch den Additionsbaum addiert, der aus Übertragsspeicheraddierern besteht, welche als die teilproduktaddierende Einrichtung dienen. Demzufolge kann ein Hochgeschwindigkeits-Multiplikator bereitgestellt werden, der eine reduzierte Anzahl von logischen Elementen und eine reduzierte Anzahl von logischen Stufen aufweist, die für Großintegration geeignet sind.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • 1 ist ein Blockschaltbild, das die Struktur eines Systems zum automatischen Entwerfen einer Logikschaltung gemäß einer ersten Ausführungsform der vorliegenden Erfindung zeigt;
  • 2 ist eine Ansicht, welche die Struktur einer Speichervorrichtung des oben genannten automatischen Entwurfssystems zeigt;
  • 3 ist ein Ablaufdiagramm, das einen Entwurfsprozess gemäß dem oben genannten automatischen Entwurfsystems zeigt;
  • 4 ist ein Ablaufdiagramm, das im Detail einen Prozess zum Umwandeln eines Funktionselements in Schritt 43 von 3 zeigt;
  • 5 ist ein Ablaufdiagramm, das im Detail einen Prozess zum Erzeugen eines Multiplikators in Schritt 85 von 4 zeigt;
  • 6 ist ein Ablaufdiagramm, das im Detail den Prozess zum Umwandeln eines Funktionselements in Schritt 1012 von 5 zeigt;
  • 7 ist ein Ablaufdiagramm, das im Detail den Prozess zum Erzeugen eines Multiplikators in Schritt 1013 von 5 zeigt;
  • 8 ist ein Ablaufdiagramm, das im Detail einen Prozess zum Erzeugen eines Multiplikators unter Verwendung eines Additionsbaums in Schritt 142 von 7 zeigt;
  • 9 ist ein Ablaufdiagramm, das im Detail einen Prozess zum Erzeugen einer teilprodukterzeugenden Schaltung in Schritt 151 von 8 zeigt;
  • 10 ist ein Ablaufdiagramm, das im Detail einen Prozess zum Erzeugen eines Teilprodukt-Additionsbaums in Schritt 153 von 8 zeigt;
  • 11 ist ein Ablaufdiagramm, das im Detail einen Prozess zum Erzeugen eines Multiplikators durch Vorzeichenumkehrung in Schritt 146 von 7 zeigt;
  • 12 ist ein Ablaufdiagramm, das im Detail einen Prozess zum Erzeugen eines Multiplikators durch Teilung in Schritt 148 von 7 zeigt;
  • 13 ist ein Ablaufdiagramm, das im Detail einen Prozess zum Teilen eines Multiplikationsfaktors in Schritt 143 von 7 zeigt;
  • 14 ist ein Ablaufdiagramm, das einen Prozess zum Erzeugen eines Multiplikators durch ein System zum automatischen Entwerfen einer Logikschaltung gemäß einer zweiten Ausführungsform der vorliegenden Erfindung zeigt;
  • 15 ist ein Blockschaltbild, das die Struktur eines Systems zum automatischen Entwerfen einer Logikschaltung gemäß einer dritten Ausführungsform der vorliegenden Erfindung zeigt;
  • 16(a) bis 16(c) zeigen ein Beispiel von Schaltungsdaten, die in der Speichervorrichtung des automatischen Entwurfsystems gemäß der oben genannten ersten Ausführungsform gespeichert werden sollen: 16(a) ist eine Ansicht, die schematisch eine Schaltung zeigt, 16(b) ist eine Ansicht, die Funktionsbeschreibungs-Informationen zeigt, und 16(c) ist eine Ansicht, die Schaltungsfunktions-Informationen zeigt;
  • 17(a) bis 17(c) zeigt ein weiteres Beispiel der Schaltungsdaten, die in der Speichervorrichtung des automatischen Entwurfsystems gemäß der oben genannten ersten Ausführungsform gespeichert werden sollen: 17(a) ist eine Ansicht, die schematisch eine Schaltung zeigt, 17(b) ist eine Ansicht, welche die Funktionsbeschreibungs-Informationen zeigt, und 17(c) ist eine Ansicht, die Schaltungsfunktions-Informationen zeigt;
  • 18(a) bis 18(d) sind Ansichten, die schematisch einen Multiplikator als ein Funktionselement in dem Entwurfsprozess unter Verwendung des automatischen Entwurfssystems gemäß der oben genannten ersten Ausführungsform zeigen;
  • 19(a) bis 19(d) sind Schaltungsbilder, die eine Schaltung zeigen, die in dem Prozess zum Erzeugen eines Multiplikators von 5 erzeugt wird;
  • 20(a) ist eine Ansicht, die schematisch eine Umwandlungsregel 1 zeigt;
  • 20(b) ist eine Ansicht, die eine tatsächliche Darstellungsform der Umwandlungsregel 1 zeigt;
  • 21 ist eine Ansicht, die schematisch eine Umwandlungsregel 2 zeigt;
  • 22 ist eine Ansicht, die schematisch eine Umwandlungsregel 3 zeigt;
  • 23 ist eine Ansicht, die schematisch eine Umwandlungsregel 4 zeigt;
  • 24 ist eine Ansicht, die schematisch eine Umwandlungsregel 5 zeigt;
  • 25 ist eine Ansicht, die schematisch eine Umwandlungsregel 6 zeigt;
  • 26 ist eine Ansicht, die schematisch eine Umwandlungsregel 7 zeigt; und
  • 27 ist eine Ansicht, die schematisch eine Umwandlungsregel 8 zeigt.
  • AUSFÜHRLICHE BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
  • (Erste Ausführungsform)
  • Unter folgender Bezugnahme auf die Zeichnungen wird im Folgenden ein System zum automatischen Entwerfen einer Logikschaltung gemäß einer ersten Ausführungsform der vorliegenden Erfindung beschreiben.
  • Zunächst wird die Hardware-Struktur des automatischen Entwurfssystems gemäß der ersten Ausführungsform unter Bezugnahme auf 1 und 2 beschrieben.
  • 1 ist ein Blockschaltbild, das ein Beispiel der Hardware-Struktur eines Systems zum automatischen Entwerfen einer Logikschaltung zeigt. In der Zeichnung dient eine Eingabevorrichtung 11 zum Eingeben von Funktionsbeschreibungs-Informationen über eine Schaltung, die von dem automatischen Entwurfssystem entworfen werden soll. Die Eingabevorrichtung 11 kann aus einer Tastatur, einer Maus, einem Lichtstift, einem Kartenleser oder einem schematischen Eingabesystem bestehen. Abgesehen von den vorgenannten Vorrichtungen, welche die Eingaben von Informationen über eine direkte Betätigung durch eine Bedienperson empfangen, kann sie auch aus einer Magnetplattenvorrichtung, die Informationen, die vorher über die vorgenannten Vorrichtungen eingegeben wurden, als eine Datei speichert, oder aus einer Netzwerkvorrichtung bestehen, welche Informationen empfängt, die von einer anderen Vorrichtung gesendet werden.
  • Eine CPU 12 dient zum Durchführen von Schaltungsentwurfsprozessen, wie beispielsweise logische Synthese oder Schaltungsoptimierung durch Ausführen einer Reihe von Prozessen, welche im Folgenden beschrieben werden.
  • Eine Ausgabevorrichtung 13 dient zum Ausgeben von Schaltungsinformationen, welche das Ergebnis des Entwurfsprozesses durch die CPU 12 sind, oder von einer Reihe von Informationen bei der Verarbeitung. Die Ausgabevorrichtung 13 kann aus einem grafischen Bildschirm, einem Zeichenbildschirm, einem Drucker oder Plotter bestehen. Die Ausgabevorrichtung 13 kann auch aus der Magnetplattenvorrichtung oder Netzwerkvorrichtung bestehen, ähnlich wie die Eingabevorrichtung 11.
  • Eine Speichervorrichtung 14 besteht beispielsweise aus einer Entwurfsprozess-Speichereinheit 21, einer Elementbibliothek-Speichereinheit 22 und einer Schaltungsdaten-Speichereinheit 23, wie in 2 gezeigt, so dass sie Informationen, die über die Einga bevorrichtung 11 eingegeben werden, und Programme oder Daten über Schaltungsentwurfsprozesse speichern kann.
  • Insbesondere speichert die Entwurfsprozess-Speichereinheit 21 eine Reihe von Programmen, mit denen die vorgenannte CPU 12 Entwurfsprozesse ausführt, und Umwandlungsregel-Informationen, die im Laufe dieser Prozesse anzuwenden sind.
  • Die Elementbibliothek-Speichereinheit 22 speichert Informationen über die Funktionen von Funktionselementen, logischen Elementen und montierten Elementen und über ihre Fläche, über Verzögerungszeit und Antriebskräfte (driving forces), um eine Elementbibliothek bereitzustellen.
  • Die Schaltungsdaten-Speichereinheit 23 speichert Funktionsbeschreibungsdaten, welche über die Eingabevorrichtung 11 eingegeben werden, und Informationen über Schaltungsfunktion, Informationen über die logische Schaltung und Informationen über die montierte Schaltung, die jeweils von den Schaltungsentwurfsprozessen erzeugt werden.
  • Die vorgenannten Funktionsbeschreibungs-Informationen beziehen sich hauptsächlich auf eine Funktion, die auf einer Schaltung erforderlich ist, und werden in einer Hardware-Beschreibungssprache dargestellt. Die Informationen über Schaltungsfunktion beziehen sich hauptsächlich auf eine Schaltung, die aus virtuellen Funktionselementen besteht, deren Funktionen nur definiert werden und in einer internen Darstellungsform dargestellt werden. Die Informationen über die logische Schaltung zeigen eine Schaltung, die aus realen logischen Elementen besteht, die sich auf einer logischen Ebene befinden, die selten von dem Herstellungsprozess oder Entwurfsverfahren abhängig ist. Andererseits hängen die Informationen über die montierte Schaltung in hohem Maße von dem Herstellungsprozess und Entwurfsverfahren ab und zeigen eine Schaltung, in der zugewiesene Elemente tatsächlich durch eine spezielle Technologie montiert werden, (z.B. eine Standard-Zelle, die aus einem CMOS-Transistor, einer Zelle in der Bibliothek eines Gate-Array, oder TTL, ECL und dergleichen besteht, die vom Herstellungsprozess abhängig sind).
  • Beispiele der vorgenannten Funktionselemente sind in Tabelle 2 gezeigt. Zum Beispiel stellt ein Mehrbit-Addierer ein Funktionselement zum Addieren von zwei Mehrbit-Zahlen dar. Ein Komparator stellt ein Funktionselement zum Vergleichen von zwei Mehrbit-Zahlen dar. Ein Mehrbit-UND stellt ein Funktionselement zum Berechnen von bitweisen logischen Produkten von zwei Mehrbit-Signalen dar. Ein Mehrbit-INV stellt ein logisches Element zum Berechnen von bitweisem logischen NICHT in einem Mehrbit-Signal dar.
  • Ein Ripper und Mixer sind Funktionselemente jeweils zum bequemen Teilen eines Mehrbit-Signals und Verarbeiten des Mehrbit-Signals als Ganzem im Verlauf des Umwandlungsprozesses. Der Ripper und Mixer werden schließlich in eine Schaltung umgewandelt, die sich aus montierten Elementen zusammensetzt, und eliminiert, wenn alle Signale in 1-Bit-Signale verarbeitet worden sind.
  • Im allgemeinen gibt es keine Schaltung, die sich aus montierten Elementen zusammensetzt, die diesen Funktionselementen direkt entsprechen. Die Funktionselemente werden zu einer Schaltung erweitert, die sich aus realen logischen Elementen zusammensetzt, die ihre Funktionen ausführen, und dann durch eine Schaltung ersetzt, die sich aus montierten Elementen zusammensetzt.
  • Tabelle 2
    Figure 00200001
  • Beispiele der logischen Elemente sind in Tabelle 3 gezeigt, in der BITWEISER ADDIERER ein Element zum Addieren von zwei 1-Bit-Signalen ist und 1-BIT-UND ein logisches Element zum Berechnen des logischen Produkts von zwei oder mehreren 1-Bit-Signalen darstellt.
  • Die Schaltung setzt sich aus montierten Elementen zusammen, welche diesen logischen Elementen entsprechen und vorher festgelegt werden, so dass die logischen Elemente schließlich durch die Schaltung auf der letzten Stufe der Entwurfsverarbeitung ersetzt werden.
  • Tabelle 3
    Figure 00210001
  • Als Nächstes werden spezifische Beispiele der Funktionsbeschreibungs-Informationen und der Schaltungsfunktions-Informationen, die in der Schaltungsdaten-Speichereinheit 23 gespeichert werden sollen, unter Bezugnahme auf 16 und 17 beschrieben. Diese Informationengruppen werden z.B. als Textinformationen gespeichert.
  • Eine Schaltung, die sich z.B. aus einem 1-Bit-UND-Gate mit zwei Eingängen (1-bit 2-input AND gate) und einem 1-Bit-Addierer mit 3 Eingängen zusammensetzt, wie in 16(a) gezeigt, wird in den Funktionsbeschreibungs-Informationen beschrieben, die in 16(b) gezeigt sind. Die Funktionsbeschreibungs-Informationen werden in die Schaltungsfunktions-Informationen oder die in 16(c) gezeigten Informationen über die logische Schaltung umgewandelt. Die Schaltungsfunktions-Informationen und Informationen über die logische Schaltung unterscheiden sich möglicherweise nicht besonders voneinander in dem oben gezeigten Fall, in dem die Funktionsbeschreibungs-Informationen direkt der Schaltung entsprechen, die sich aus den Funktionselementen zusammensetzt.
  • In diesem Beispiel enthalten die in 16(c) gezeigten Schaltungsfunktions-Informationen eine Kennungsbezeichnung 31 zum Identifizieren eines einzelnen Elements und eine Vielzahl von Paaren von Attribut-Code 32 und Attribut-Wert 33. Der Attribut-Code 32 und Attribut-Wert 33 in jedem Paar werden abgebildet mit " :: ". Die einzelnen Paare werden getrennt durch " ; ", und die Kennungsbezeichnungen 31 werden von anderen Informationen durch " ::: " getrennt. Die Attribut-Codes 32 enthalten "eine Art von", "Eingang", "Ausgang" und dergleichen, wobei jeder zeigt, dass sein entsprechender Attribut-Wert 33 sich auf die Art von Element, sein Eingangssignal und sein Ausgangssignal bezieht.
  • Das heißt, das Element des Gate 01 ist ein Addierer, seine Eingangssignale sind sig1, sig2 und sig3, und seine Ausgangssignale sind sig4 und sig5. Andererseits ist das Element von Gate 02 ein UND, seine Eingangssignale sind sig6 und sig7, und sein Ausgangssignal ist sig3. Es wird ebenfalls gezeigt, dass gate01 und gate02 durch das Signal sig3 verbunden sind.
  • In ähnlicher Weise wird eine Schaltung, die sich aus einem Multiplikator 51, der als ein Funktionselement dient, einer Signalleitung 52, in welche eine 8-Bit-Konstante mit dem Wert 130 (82h in hexadezimaler Schreibweise) als ein Multiplikationsfaktor eingegeben wird, einer Signalleitung 53, in welche ein 8-Bit-Multiplikand a eingegeben wird, und einer Signalleitung 54, welche ein 16-Bit-Multiplikationsergebnis b ausgibt, zusammensetzt, wie in 17(a) gezeigt, in den in 17(b) gezeigten Funktionsbeschreibungs-Informationen beschrieben und in die Schaltungsfunktions-Informationen umgewandelt, wie in 17(c) gezeigt. Hier ist die Unterscheidung zwischen dem Multiplikationsfaktor und dem Multiplikanden zur Erleichterung von Umwandlungsprozessen vorgesehen.
  • In den Funktionsbeschreibungs-Informationen von 17(b) ist der Multiplikand a ein Signal mit der Bitbreite 8, die von 0 Bit bis 7 Bit reicht. Die Variable b ist ein Signal mit der Breite 16, die von 0 Bit bis 15 Bit reicht. Es wird gezeigt, dass der Wert der Variab len b das Produkt des Multiplikanden a und des Multiplikationsfaktors 130 ist, welcher durch ein 8-Bit-Signal mit dem Wert 130 dargestellt wird.
  • In den Schaltungsfunktions-Informationen von 17(c) zeigt die erste Zeile, dass das funktionale Element die Kennungsbezeichnung gate01 hat, und es als ein Multiplikator dient. Die Beschreibungen in der zweiten und der vierten Zeile zeigen, dass das Signal, das durch ein Kennzeichen i1 dargestellt wird, ein 8-Bit-Eingangssignal a mit einem Wert von 130 ist. Die Beschreibungen in der dritten und der fünften Zeile zeigen, dass das Signal, das durch ein Kennzeichen i2 dargestellt wird, ein 8-Bit-Eingangssignal ist, welches eine Konstante ist. Die Beschreibung in der sechsten Zeile zeigt, dass das Signal, das durch ein Kennzeichen o dargestellt ist, ein 16-Bit-Ausgangssignal b ist.
  • Als Nächstes wird unter Bezugnahme auf die Zeichnungen ein Schaltungs-Entwurfsprozess beschrieben, der von dem auf diese Weise ausgebildeten automatischen Entwurfssystem durchgeführt wird. Aus Gründen der Einfachheit wird der Informationen-Inhalt in der folgenden Beschreibung durch solche schematischen Darstellungen gezeigt, wie in 16(a) und 17(a) gezeigt, ungeachtet der Typen von Informationen, wie beispielsweise den Funktionsbeschreibungs-Informationen, Schaltungsfunktions-Informationen und Informationen über die logische Schaltung. Sofern notwendig, werden solche Begriffe wie Multiplikationsfaktor und Multiplikand auch anstelle ihrer Werte oder Signale verwendet, die den Multiplikationsfaktor oder Multiplikanden darstellen, und der Begriff Schaltung wird auch anstelle von Informationen verwendet, die eine Schaltung darstellen, vorausgesetzt, dass dadurch keine Verwirrung verursacht wird.
  • Die folgende Beschreibung verwendet auch die im Folgenden gezeigte Schreibweise. Eine Zahl mit der Bitbreite von (a – b + 1), die vom a-ten Bit zum b-ten Bit (a > b) aus der Position des niedrigstwertigen Bits reicht, wird bezeichnet mit X(a : b), wobei das a-te Bit in der Zahl X mit X(a) bezeichnet wird.
  • Des Weiteren wird eine Funktion definiert wie folgt. Für ein k-Bit-Signal Y wird die Anzahl von 1-Bits mit dem Wert 1 als posibits (Y) definiert, wogegen die Anzahl der Bits mit dem Wert 0 als negabits (Y) definiert wird. Die Anzahl von Bits, die durch Berechnen der Anzahl der Bits mit dem Wert 1 aus dem niedrigstwertigen Wert erhalten wird, bis sie zu P(P < k) wird, wird als effbitwidth (Y, P) definiert. Da die Prozesse zum Erhalten der Werte dieser Funktionen leicht ausgeführt werden können, wird deren ausführliche Beschreibung weggelassen.
  • 3 ist ein Ablaufdiagramm, das die Hauptroutine des Schaltungs-Entwurfsprozesses zeigt, die von dem automatischen Entwurfssystem gemäß der ersten Ausführungsform durchgeführt wird.
  • Wie in 3 gezeigt, wird in Schritt 41 ein Prozess zum Eingeben der Funktionsbeschreibungs-Informationen, die auf der Basis der funktionalen Spezifikation von einem Funktions-Entwickler (functional designer) für die Schaltung über die Eingabevorrichtung 11 dargestellt werden, und zu deren Speichern in der Schaltungsdaten-Speichereinheit 23 durchgeführt. Es ist auch möglich, die Eingabevorrichtung 11 so auszulegen, dass sie die Eingabe von nicht nur den Funktionsbeschreibungs-Informationen, sondern auch von den Schaltungsfunktions-Informationen und den Informationen über die logische Schaltung auf vergleichsweise einfachen Abschnitten der Schaltung empfängt.
  • In Schritt 42 wird ein Prozess zum Interpretieren der Funktionsbeschreibungs-Informationen, die in Schritt 41 eingegeben wurden, zum Erzeugen von Schaltungsfunktions-Informationen, in welchen eine Schaltung, die aus den Funktionselementen besteht und deren Funktion in den Funktionsbeschreibungs-Informationen gezeigt ist, in der internen Darstellungsform dargestellt ist, und zu deren Speichern in der Schaltungsdaten-Speichereinheit 23 durchgeführt.
  • In Schritt 43 wird ein Prozess zum Umwandeln aller Funktionselemente, die in den Schaltungsfunktions-Informationen enthalten sind, in logische Elemente und zum Speichern der sich daraus ergebenen Informationen über die logische Schaltung in der Schaltungsdaten-Speichereinheit 23 durchgeführt. Hinsichtlich der Schaltung mit einem Multiplikator wird die Schaltungsoptimierung auf der Funktionselement-Ebene ebenfalls durchgeführt. Der Prozess von Schritt 43 wird später ausführlich beschrieben.
  • In Schritt 44 wird ein Prozess zum Zuweisen aller logischen Elemente, die in den Informationen über die logische Schaltung enthalten sind, zu montierten Elementen über den Element-Umwandlungsprozess basierend auf speziellen Umwandlungsregel-Informationen durchgeführt. In diesem Schritt wird auch eine Schaltungsoptimierung auf der Ebene logischer Elemente im Verlauf des Zuweisens der logischen Elemente zu dem montierten Element durchgeführt.
  • In Schritt 45 wird ein Prozess zum Erzeugen eines Schaltschemas und einer Netzliste basierend auf Informationen über die montierte Schaltung und dergleichen und zu ihrem Ausgeben an die Ausgabevorrichtung 13 durchgeführt. Die oben genannte Netzliste bezieht sich auf Informationen über z.B. die Verbindungen zwischen den montierten Elementen in der Schaltung, die von den montierten Elementen gebildet werden.
  • Die Prozesse, die in den Schritten 42 und 44 durchgeführt werden, sind die gleichen wie diejenigen, die in der offengelegten japanischen Patentveröffentlichung Nr. 3-15984 und im USP Nr. 5043914 offenbart sind, so dass deren ausführliche Beschreibung hier weggelassen wird.
  • Im Folgenden wird ein Prozess zum Umwandeln eines Funktionselements, der in Schritt 43 von 3 durchgeführt wird, ausführlich unter Bezugnahme auf 4 beschrieben.
  • 4 ist ein Ablaufdiagramm, das im Detail den Prozess des Umwandelns eines Funktionselements in Schritt 43 von 4 zeigt. Wie in der Zeichnung gezeigt, wird eines der Funktionselemente, die in der Schaltungsfunktions-Beschreibung enthalten sind, in Schritt 81 ausgewählt.
  • In den Schritten 82 und 83 wird bestimmt, ob das ausgewählte Funktionselement ein Addierer oder ein Multiplikator ist oder nicht. Wenn es ein Addierer ist, fährt der Prozess mit Schritt 84 fort. Wenn es ein Multiplikator ist, fährt der Prozess mit Schritt 85 fort. Wenn es weder ein Addierer noch ein Multiplikator ist, fährt der Prozess mit Schritt 86 fort.
  • In jedem der Schritte 84 bis 86 wird das ausgewählte Funktionselement in eine Schaltung mit der gleichen Funktion umgewandelt, welche von wenigstens einem von anderen Funktionselementen und logischen Elementen gebildet wird. Nachdem ihre Schaltungsinformationen erzeugt worden sind, fährt der Prozess mit Schritt 87 fort.
  • In Schritt 87 wird bestimmt, ob die Schaltung ein Funktionselement enthält oder nicht. Ist dies der Fall, kehrt der Prozess zu Schritt 81 zurück, um die Prozesse der Schritte 81 bis 86 zu wiederholen. Ist dies nicht der Fall, was bedeutet, dass die durch die Umwandlung erhaltene Schaltung nur aus logischen Schaltungen gebildet wird, ist der Prozess zum Umwandeln eines Funktionselements in Schritt 43 abgeschlossen, wodurch er zur Hauptroutine zurückkehrt.
  • In den Schritten 84 bis 86 stellt ein einzelner Umwandlungsprozess nicht notwendigerweise eine Schaltung bereit, die nur von logischen Elementen gebildet wird. Stattdessen kann die sich aus der Umwandlung ergebende Schaltung vorübergehend andere Funktionselemente enthalten. In diesem Fall wird in Schritt 87 bestimmt, dass ein Funktionselement enthalten ist, und durch rekursives Durchführen ähnlicher Umwandlungsprozesse wird schließlich eine Schaltung erhalten, die nur von logischen Schaltungen gebildet wird. Speziell ein Mehrbit-Addierer wird wiederholt in Schritt 84 in eine Schaltung, die aus einem Addierer mit einer kleineren Anzahl von Bits (Funktionselement) besteht, und in einen 1-Bit-Addierer (logisches Element) umgewandelt, so dass er schließlich in eine Schaltung umgewandelt wird, die nur von 1-Bit-Addierern gebildet wird. Andererseits werden ein Subtrahierer und ein Teiler in Schritt 86 in eine Schaltung umgewandelt, die aus Funktionselementen, wie beispielsweise Addierern, und logischen Schaltungen besteht, und dann werden die Addierer in Schritt 84 in 1-Bit-Addierer umgewandelt. Damit werden die einzelnen Prozesse durch rekursives Durchführen der Umwandlungsprozesse problemlos vereinfacht.
  • Der Multiplikator, der als solcher in Schritt 83 mit "JA" bestimmt wird, und welcher der Umwandlung in Schritt 85 unterzogen wird, ist mit der in 18(a) bis 18(d) gezeigten Funktion versehen. Die Multiplikatoren von 18(a) bis 18(d) sind insofern die gleichen, als jeder von ihnen die Funktion des Multiplizierens eines Multiplikanden, der durch ein n-Bit-Signal dargestellt wird, mit einem Multiplikationsfaktor, der durch ein m-Bit-Signal dargestellt wird, aufweist, um ein Produkt P auszugeben, das durch ein Signal dargestellt wird, welches die Bitbreite von (n + m) aufweist. Sie sind jedoch insofern verschieden, als der Multiplikationsfaktor und der Multiplikand, welche eingegeben werden, eine Konstante oder eine Variable sind. In dem Multiplikator von 18(a) ist jeder von dem Multiplikationsfaktor und dem Multiplikanden eine Konstante. In dem Multiplikator von 18(b) ist der Multiplikationsfaktor eine Variable, wogegen der Multiplikand eine Konstante ist. In dem Multiplikator von 18(c) ist der Multiplikationsfaktor eine Konstante, wogegen der Multiplikand eine Variable ist. In dem Multiplikator von 18(d) ist jeder von dem Multiplikationsfaktor und dem Multiplikanden eine Variable.
  • Der Einfachheit halber wird die Konstante A in der folgenden Beschreibung als eine positive Zahl behandelt. In dem Fall, in dem die Konstante A eine negative Zahl ist, wird das Vorzeichen der Konstanten A umgedreht, um Informationen über die Multiplikationsschaltung in Bezug auf die sich daraus ergebende Konstante A' mit dem umgekehrten Vorzeichen und über die Schaltung zum Umkehren des Vorzeichens des Multiplikationsergebnisses zu erzeugen, wodurch die korrekte Prozedur bereitgestellt wird. In der folgenden Beschreibung kann die Variable X einen positiven oder negativen Wert besitzen. Wenn die Variable X auf eine positive Zahl begrenzt werden soll, kann eine 0-Erweiterung in der Vorzeichenerweiterung durchgeführt werden zum Verschieben von Q2 auf eine Bitposition höherer Ordnung (one bit higher-order position) und um '0' auf seine niedrigstwertige Bitposition zu setzen, was später beschrieben wird.
  • Im Folgenden wird der Prozess zum Erzeugen eines Multiplikators, der in Schritt 85 von 4 durchgeführt wird, ausführlich unter Bezugnahme auf 5, 18 und 19 beschrieben. Der Prozess zum Erzeugen eines Multiplikators dient zum Umwandeln eines Multiplikators in eine Schaltung, die aus anderen Funktionselementen, (wie beispielsweise einem Multiplikator und einem Addierer), und logischen Elementen besteht.
  • 5 ist ein Ablaufdiagramm, das im Detail den Prozess zum Erzeugen eines Multiplikators in Schritt 85 zeigt. Wie in der Zeichnung gezeigt, wird in Schritt 1001 bestimmt, ob jeder von dem Multiplikationsfaktor und Multiplikanden eine Konstante ist oder nicht. Wenn die Antwort JA lautet, wie in 18(a), fährt der Prozess mit Schritt 1002 fort, in dem ihr Produkt berechnet wird und eine Umwandlung in eine Schaltung vorgenommen wird, die ein Signal erzeugt, das seinen Wert in Binärcode darstellt. Insbesondere, wenn der Multiplikand A = 4 und der Multiplikationsfaktor B = 5 ist, wird eine Umwandlung in eine Schaltung vorgenommen, die ein Signal ausgibt, das den Wert von 4 × 5 = 20 (in Binärcode '10100') als P(4:0) darstellt, und ein Signal, das den Wert von 0 als P(n + m – 1:5) darstellt, wie in 19(a) gezeigt.
  • Wenn in Schritt 1001 bestimmt wird, dass wenigstens einer von dem Multiplikationsfaktor oder dem Multiplikanden eine Variable ist, fährt der Prozess mit Schritt 1003 fort, in dem bestimmt wird, ob der Multiplikand eine Konstante ist, und wenn der Multiplikand eine Konstante ist, fährt der Prozess mit Schritt 1004 fort, in dem der Multiplikationsfaktor und Multiplikand vertauscht werden, so dass der Prozess mit Schritt 1005 fortfährt. Wenn der Multiplikand andererseits keine Konstante ist, fährt der Prozess direkt mit Schritt 1005 fort. Das heißt, in dem Fall, in dem der in 18(b) gezeigte Multiplikator verwendet wird, wird er in den in 18(c) gezeigten Multiplikator umgewandelt, so dass wenigstens der Multiplikand durchgehend eine Variable ist.
  • In den Schritten 1005, 1007 und 1009 wird bestimmt, ob der Multiplikationsfaktor eine spezielle Konstante ist oder nicht, d.h. sein Wert 0, 1 oder eine Zahl ist, die durch die Erhebung von 2 in eine gewisse Potenz erzielt wird. Wenn der Multiplikationsfaktor 0 ist, wird eine Umwandlung in eine Schaltung zum Ausgeben eines Signals vorgenommen, welches zeigt, dass die Werte aller Bits 0 sind, wie in 19(b) gezeigt (Schritt 1006). Wenn der Multiplikationsfaktor 1 ist, wird eine Umwandlung in eine Schaltung vorgenommen, welche ein Signal ausgibt, das den Wert des Multiplikanden als P(n – 1:0) darstellt, wobei ein Signal mit dem Wert X(n – 1) als P(n + m – 1:n) durch Vorzeichenerweiterung ausgegeben wird, wie in 19(c) (Schritt 1008) gezeigt. Wenn der Multiplikationsfaktor eine Zahl ist, die erhalten wird, indem 2 in eine gewisse Potenz erhoben wird, z.B. wenn sie 8 (= 23) ist, wird eine Umwandlung in eine Schaltung vorgenommen, die ein Signal ausgibt, das den Wert des Multiplikanden als P(n + 2:3) darstellt, ein Signal mit dem Wert 0 als P(2:0) ausgibt, und ein Signal ausgibt, in welchem der Wert jedes Bits X(n – 1) als P(n + m – 1:n + 3) durch Vorzeichenerweiterung dargestellt ist, wie in 19(d) (Schritt 1010) gezeigt.
  • In Schritt 1011 wird bestimmt, ob der Multiplikationsfaktor sich aus 1 Bit oder 2 oder mehreren Bits zusammensetzt. Wenn sich der Multiplikationsfaktor aus 1 Bit zusammensetzt, fährt der Prozess mit Schritt 1012 fort, wobei ein Multiplikator 131 in eine Schaltung umgewandelt wird, die sich aus UND-Schaltungen 132 bis 135 zusammensetzt, wie in 20 gezeigt. Wenn sich der Multiplikationsfaktor aus 2 oder mehreren Bits zusammensetzt, fährt der Prozess mit Schritt 1013 fort, in dem eine Umwandlung in einen Mehrbit-Multiplikator vorgenommen wird, der sich aus wenigstens einem von anderen Funktionselementen, (wie beispielsweise einem Multiplikator und Addierer mit ei ner reduzierten Bitbreite), und logischen Elementen zusammensetzt. Die Bestimmung des Multiplikationsfaktors, der sich aus 1 Bit in Schritt 1011 zusammensetzt, ist auf den Fall begrenzt, in dem der Multiplikationsfaktor eine Variable ist, denn wenn der Multiplikationsfaktor eine 1-Bit-Konstante ist, hätten die in den Schritten 1005 und 1007 erhaltenen Antworten "JA" lauten müssen. Die Bestimmung des Multiplikationsfaktors, der sich aus 2 oder mehreren Bits zusammensetzt, umfasst die Fälle, in denen der Multiplikationsfaktor eine Variable ist und in denen der Multiplikationsfaktor eine Konstante ist.
  • In den Schritten 1006, 1008, 1010 und 1012 wird eine Umwandlung in eine Schaltung basierend auf den Umwandlungsregel-Informationen vorgenommen, die vorher in der Entwurfsprozess-Speichereinheit 21 gespeichert worden sind.
  • Im Folgenden wird ein Prozess zum Umwandeln eines Funktionselements, der in Schritt 1012 von 5 durchgeführt wird, ausführlich unter Bezugnahme auf 6 und 20 beschrieben. In dem Prozess des Umwandelns eines Funktionselements wird die in 6 gezeigte Umwandlung in Übereinstimmung mit einer Umwandlungsregel 1 vorgenommen, die in 20(b) gezeigt ist.
  • 6 ist ein Ablaufdiagramm, das im Detail den Prozess zum Umwandeln eines Funktionselements in Schritt 1012 von 6 zeigt. Wie in der Zeichnung gezeigt, wird eine Bedingungsklausel, die in den Umwandlungsregel-Informationen von 20(b) vor "= = >" steht, in Schritt 71 zuerst mit den anfänglichen Schaltungsinformationen verglichen. Wenn sie eine Umwandlungs-Anwendungsbedingung erfüllt, werden die Bezeichnungen von Signalleitungen und dergleichen abgebildet.
  • In Schritt 72 werden die Schaltungsinformationen über den anfänglichen Multiplikator als ein Funktionselement aus der Schaltungsdaten-Speichereinheit 23 gelöscht.
  • In Schritt 73 werden Informationen über eine Schaltung, die nach der Umwandlung erhalten werden soll, auf der Basis der Schaltungsinformationen über Funktionselemente oder logische Elemente, die in einer Bedingungsklausel gezeigt sind, die nach "= = >" in den Umwandlungsregel-Informationen von 20(b) steht, und der vorhergehenden Abbildung erzeugt. Die sich daraus ergebenden Informationen werden dann in die Schaltungsdaten-Speichereinheit 23 eingegeben.
  • In Schritt 74 wird bestimmt, ob nicht verarbeitete Funktions- oder logische Elemente in der Bedingungsklausel bleiben oder nicht. Wenn die Antwort JA lautet, kehrt der Prozess zu oben genanntem Schritt 73 zurück. Wenn die Antwort im Gegensatz dazu jedoch NEIN lautet, wird der Prozess zum Umwandeln eines Funktionselements in Schritt 1012 angeschlossen.
  • Der Nachweis einer Umwandlung in eine Schaltung, die dem anfänglichen Multiplikator gemäß der oben genannten Umwandlungsregel 1 entspricht, wird später zusammen mit dem Nachweis von anderen Umwandlungsregeln erhalten. Da jedoch ein spezieller Prozess zum Umwandeln von Elementen im USP Nr. 5043914 offenbart ist, wird die ausführliche Beschreibung davon weggelassen. Obwohl die Umwandlungsregel-Informationen tatsächlich in der internen Darstellungsform dargestellt werden, wie in 20(b) gezeigt, werden sie der Einfachheit halber in der folgenden Beschreibung hauptsächlich durch solche schematische Abbildungen veranschaulicht, wie in 20(a) gezeigt.
  • Im Folgenden wird ein Prozess zum Erzeugen eines Multiplikators, der in Schritt 1013 von 5 durchgeführt wird, im Detail unter Bezugnahme auf 7 beschrieben. In dem Prozess werden die Anzahl von Teilprodukten und die Anzahl von logischen Stufen zum Berechnen der Summe der Teilprodukte hauptsächlich auf die folgende Weise reduziert: In dem Fall, in dem der Multiplikationsfaktor eine Konstante ist, wird eine Umwandlung in eine Schaltung vorgenommen, die ein Teilprodukt nur in Bezug auf ein Bit mit dem Wert 1 in dem Multiplikationsfaktor, in seiner logischen NICHT-Zahl, die durch Invertieren aller Bits in dem Multiplikationsfaktor durch die logische Nicht-Operation erhalten wurde, oder in zwei Zahlen berechnet, die zwischen sich eine Differenz aufweisen, die gleich dem Multiplikationsfaktor ist, wodurch die Anzahl der Teilprodukte reduziert wird. In jedem der Fälle, in denen der Multiplikationsfaktor eine Konstante ist, und in denen der Multiplikationsfaktor eine Variable ist, wird eine Umwandlung in eine Schaltung unter Verwendung eines Additionsbaums mit weniger Übertragsverbreitung vorgenommen.
  • 7 ist ein Ablaufdiagramm, das im Detail den Prozess zum Erzeugen eines Multiplikators in Schritt 1013 zeigt. Wie in 7 gezeigt, wird in Schritt 141 zuerst festgestellt, ob der Multiplikationsfaktor eine Variable ist oder nicht. Wenn der Multiplikationsfaktor eine Variable ist, was die Multiplikation zwischen Variablen angibt, fährt der Prozess mit Schritt S142 fort, in dem der Prozess zum Erzeugen eines Multiplikators unter Verwendung eines Additionsbaums durchgeführt wird. Wenn andererseits festgestellt wird, dass der Multiplikationsfaktor eine Konstante A ist, fährt der Prozess mit Schritt 143 fort, in dem die Konstante A in zwei Konstanten A1 und A2 aufgeteilt wird, die zwischen sich eine Differenz aufweisen, die der Konstante A entspricht.
  • In Schritt 142 wird ein Prozess zum Erzeugen eines Multiplikators durchgeführt, in dem ein Multiplikator zum Multiplizieren des Multiplikanden X mit dem variablen Multiplikationsfaktor Y oder dem konstanten Multiplikationsfaktor A in eine Schaltung umgewandelt wird, die sich aus wenigstens einem von einem Teilprodukt-Additionsbaum, einem Addierer und einer teilprodukterzeugenden Schaltung in Übereinstimmung mit einer Umwandlungsregel 2 zusammensetzt.
  • In Schritt 143 wird ein Prozess zum Bestimmen der Konstanten A1 und A2 durchgeführt, die A = A1 – A2 erfüllen und die den Wert posibits(A1) + posibits(A2) minimieren. insbesondere wird der Prozess in Übereinstimmung mit dem Ablaufdiagramm von 13 in der vorliegenden Ausführungsform durchgeführt. Dessen ausführliche Beschreibung wird später gegeben.
  • In Schritt 144 wird festgestellt, ob die Anzahl der Bits mit dem Wert 1 in dem Multiplikationsfaktor A größer ist als die Summe der Anzahl von Bits mit dem Wert 1 in der Konstanten A1 und der Anzahl der Bits mit dem Wert 1 in der Konstanten A2. Mit anderen Worten, es wird festgestellt, ob posibits(A) > posibits(A1) + posibits(A2) erfüllt ist oder nicht. Wenn festgestellt wird, dass posibits(A) > posibits(A1) + posibits(A2) erfüllt ist, fährt der Prozess mit Schritt 147 fort, in dem eine weitere Feststellung getroffen wird. Wenn posibits(A) > posibits(A1) + posibits(A2) nicht erfüllt ist, fährt der Prozess mit Schritt 145 fort, in dem eine weitere Feststellung getroffen wird.
  • In Schritt 145 wird festgestellt, ob die Anzahl der Bits mit dem Wert 1 in dem Multiplikationsfaktor A größer als die Summe der Anzahl der Bits mit dem Wert 0 in dem Multiplikationsfaktor A und 2 ist. Mit anderen Worten, es wird festgestellt, ob posibits(A) > m/2 + 1 erfüllt ist. Wenn posibits(A) > m/2 + 1 erfüllt ist, fährt der Prozess mit Schritt 146 fort, in dem ein Prozess zum Erzeugen eines Multiplikators durch Vorzeichenumkehrung durchgeführt wird. Wenn posibits(A) > m/2 + 1 andererseits nicht erfüllt ist, fährt der Pro zess mit Schritt 142 fort, in dem ein Prozess zum Erzeugen eines Multiplikators unter Verwendung eines Additionsbaums durchgeführt wird.
  • In Schritt 146 wird ein Prozess durchgeführt, in welchem eine Umwandlung in Übereinstimmung mit einer Umwandlungsregel 7 von 26 in eine Schaltung erfolgt, die aus Folgendem besteht: einer teilprodukterzeugenden Schaltung zum Berechnen des Produkts eines Multiplikationsfaktors A0 und des Multiplikanden X; einem Teilprodukt-Additionsbaum; einer logischen NICHT-Schaltung für die Ausgabe des Teilprodukt-Additionsbaums; und einer Endsummenschaltung. Der Multiplikationsfaktor A0 wurde durch Invertieren aller Bits in dem Multiplikationsfaktor durch die logische NICHT-Operation erhalten. Da der Wert der posibits(A0) durch Invertieren aller Bits in dem Multiplikator A durch die logische NICHT-Operation kleiner gemacht wird als der Wert der posibits(A), wird die Anzahl der Bits mit dem Wert 1 in dem ursprünglichen Multiplikationsfaktor A kleiner, wobei die Schaltungen zum Berechnen von Teilprodukten nur in Bezug auf die Bits mit dem Wert 1 erzeugt werden, wodurch die Anzahl der Schaltungen zum Berechnen von Teilprodukten und die Anzahl von logischen Stufen in einer Schaltung zum Berechnen der Summe der Teilprodukte reduziert wird.
  • In Schritt 147 wird festgestellt, ob die Summe der Anzahl der Bits mit dem Wert 1 in dem Multiplikationsfaktor A1 und die Anzahl der Bits mit dem Wert 1 in dem Multiplikationsfaktor A2 größer als die Summe der Anzahl der Bits mit dem Wert 0 in dem Multiplikationsfaktor A und 2 ist. Mit anderen Worten, es wird festgestellt, ob posibits(A1) + posibits(A2) > m – posibits(A) + 2 erfüllt ist oder nicht. Wenn posibits(A1) + posibits(A2) > m – posibits(A) + 2 erfüllt ist, fährt der Prozess mit Schritt 146 fort, um den Prozess zum Erzeugen eines Multiplikators durch Vorzeichenumkehrung durchzuführen. Wenn andererseits posibits(A1) + posibits(A2) > m – posibits(A) + 2 nicht erfüllt ist, fährt der Prozess mit Schritt 148 fort, um einen Prozess zum Erzeugen eines Multiplikators durch Teilung durchzuführen.
  • In Schritt 148 wird ein Prozess durchgeführt, in dem eine Umwandlung in Übereinstimmung mit einer Umwandlungsregel 8 von 27 in eine Schaltung erfolgt, die aus Folgendem besteht: einer teilprodukterzeugenden Schaltung zum Berechnen des Produkts der oben genannten Konstanten A1 und des Multiplikanden X; einer teilprodukterzeugenden Schaltung zum Berechnen des Produkts der oben genannten Konstanten A2 und des Multiplikanden X; einer logischen NICHT-Schaltung für die Ausgabe der letzteren teilprodukterzeugenden Schaltung; einem Teilprodukt-Additionsbaum; und einer Endsummenschaltung. Da die Summe des Werts der posibits(A1) und des Werts der posibits(A2) kleiner wird als der Wert der posibits(A), wird die Anzahl der Bits mit dem Wert 1 kleiner als die Anzahl der Bits mit dem Wert 1 in dem ursprünglichen Multiplikationsfaktor A, wobei die Schaltungen zum Berechnen von Teilprodukten nur in Bezug auf die Bits mit dem Wert 1 erzeugt werden, wodurch die Anzahl der Schaltungen zum Berechnen von Teilprodukten und die Anzahl von logischen Stufen in einer Schaltung zum Berechnen der Summe der Teilprodukte reduziert wird.
  • Obwohl die vorliegende Ausführungsform die drei Feststellungsprozesse jeweils in den Schritten 144, 145 und 147 von 7 durchgeführt hat, ist es auch möglich, stattdessen einen Feststellungsprozess zum Vergleichen der posibits(A) mit den posibits(A1 + posibits(A2) und den negabits(A) + 2 (d.h. m + 2 – posibits(A)) durchzuführen. Wenn in diesem Fall der Wert der posibits(A) der kleinste ist, (oder einschließlich des Falls, in dem er gleich irgendeinem Vergleichsobjekt ist), fährt der Prozess mit Schritt 142 fort. Wenn der Wert der posibits(A1 + posibits(A2) der kleinste ist, (einschließlich des Falls, in dem er gleich dem Wert der negabits(A) + 2 ist), fährt der Prozess mit Schritt 148 fort. Wenn der Wert der negabits(A) + 2 der kleinste ist, (nur wenn er allein der kleinste ist), fährt der Prozess mit Schritt 146 fort.
  • Im folgenden wird der Prozess zum Erzeugen eines Multiplikators unter Verwendung eines Additionsbaums, der in Schritt 142 von 7 durchgeführt wird, im Detail unter Bezugnahme auf 8 und 21 beschrieben.
  • 21 ist eine Ansicht, die schematisch die Umwandlungsregel 2 zeigt, die in dem Prozess zum Erzeugen eines Multiplikators in Schritt 142 verwendet wird. Wie in der Zeichnung gezeigt, gibt die Umwandlungsregel 2 die Umwandlung eines Multiplikators 191 zum Multiplizieren des n-Bit-Multiplikanden X mit dem m-Bit-Variablen-Multiplikationsfaktor Y oder dem m-Bit-Konstanten-Multiplikationsfaktor A und zum Ausgeben des L-Bit-Produkts P an eine Schaltung an, die aus Folgendem besteht: einer teilprodukterzeugenden Schaltung 192 zum Multiplizieren des Multiplikanden X mit dem Multiplikationsfaktor Y oder A und zum Berechnen von Teilprodukten P1, ....., Pk; einem Teilprodukt-Additionsbaum 193 zum Addieren der Teilprodukte P1, ....., Pk; und einer Endsum menschaltung. Da es für die oben genannte Endsummenschaltung jedoch ausreichend ist, den Ausgang Q2 des Teilprodukt-Additionsbaums 193 auf eine Bitposition höherer Ordnung zu verschieben und '0' auf seine niedrigstwertige Bitposition zu setzen, besteht die oben genannte Endsummenschaltung aus einem Addierer 194 zum Addieren eines Signals R, das durch Verschieben der Bits niedrigerer Ordnung (L – 1) des Teilprodukts Q2 um ein Bit, (d.h. verdoppelt) und des Teilprodukts Q1 erhalten wurde.
  • Wenn die Anzahl der Teilprodukte zwei ist, (d.h. k = 2 oder posibits(A) = 2), gibt die Umwandlungsregel 2 speziell die Umwandlung des Multiplikators 191 in eine Schaltung an, die aus Folgendem besteht: einer teilprodukterzeugenden Schaltung 195 zum Multiplizieren des Multiplikanden X mit dem Multiplikationsfaktor A und zum Berechnen der Teilprodukte P1 und P2; und einer Endsummenschaltung 196 zum Addieren der Teilprodukte P1 und P2.
  • Wenn die Anzahl des Teilprodukts eins beträgt, (d.h. k = 1 oder posibits(A) = 1), ), gibt die Umwandlungsregel 2 speziell die Umwandlung des Multiplikators 191 in eine teilprodukterzeugenden Schaltung 197 zum Multiplizieren des Multiplikanden X mit dem Multiplikationsfaktor A und zum Berechnen des Teilprodukts P an.
  • Insbesondere multiplizieren die teilprodukterzeugenden Schaltungen 192, 195 und 197 den Multiplikanden X(n – 1:0) mit dem Multiplikationsfaktor Y(m – 1:0) oder A(m – 1:0) und geben k L-Bit-Signale P1(L – 1:0), ....., Pk(L – 1:0) als Teilprodukte aus. Die teilprodukterzeugende Schaltung 197 gibt jedoch das L-Bit-Signal (P(L – 1:0) aus.
  • Der Teilprodukt-Additionsbaum 193 empfängt k Teilprodukte P1(L – 1:0),), ....., Pk(L – 1:0), addiert sie und gibt das Additionsergebnis als ein L-Bit-Signal Q1(L – 1:0), das eine Teilsumme ist, und als ein L-Bit-Signal Q2(L – 1:0), das ein Teilübertrag ist, aus.
  • Der Addierer 194 addiert das Signal Q1(L – 1:0) und ein Signal R(L – 1:0), in weichem die Bits höherer Ordnung (n – 1) sich aus dem Signal Q2(L – 2:0) zusammensetzen, und das niedrigstwertige Bit sich aus '0', (d.h. R(L – 1:0) = Q2(L – 2:0), R(0) =), zusammensetzt, und gibt die Summe als das L-Bit-Signal P(L – 1:0) aus.
  • Der Addierer 196 ist eine Schaltung zum Addieren des Signals P1(L – 1:0) und des Signals P2(L – 1:0) und gibt die Summe als das L-Bit-Signal P(L – 1:0) aus.
  • Obwohl die Addierer 194 und 196 in 21 sich aus Übertragsvorgriffsaddierern (CLA) zusammensetzen, können sie aus Addierern eines anderen Typs zusammengesetzt werden.
  • 8 ist ein Ablaufdiagramm, das im Detail den Prozess zum Erzeugen eines Multiplikators unter Verwendung des Additionsbaums in Schritt 142 zeigt. Wie in der Zeichnung gezeigt, wird in Schritt 151 in Übereinstimmung mit einer Umwandlungsregel 3 von 22 ein Prozess zum Erzeugen einer Schaltung zum Erzeugen von Teilprodukten aus dem Multiplikanden X und dem Variablen-Multiplikationsfaktor Y oder dem konstanten Multiplikationsfaktor A durchgeführt.
  • In Schritt 152 wird ein Prozess durchgeführt, um festzustellen, ob die Anzahl der in Schritt 151 berechneten Teilprodukte 1, 2 oder größer ist. Mit anderen Worten, er ist ein Prozess zum Feststellen, ob der Multiplikationsfaktor eine Konstante ist und posibits(A) = 1, der Multiplikationsfaktor eine Konstante ist und posibits(A) = 2, oder der Multiplikationsfaktor und die posibits(A) keine der oben genannten Bedingungen erfüllen. Wenn festgestellt wird, dass die Anzahl der Teilprodukte 1 beträgt, (d.h. der Multiplikationsfaktor ist eine Konstante und posibits(A) = 1), fährt der Prozess mit Schritt 155 fort, in dem der Multiplikator, für den die Schaltung in dem vorher genannten Prozess erzeugt worden ist, aus den Schaltungsdaten gelöscht wird. Wenn die Anzahl der Teilprodukte 2 beträgt, (d.h. der Multiplikationsfaktor ist eine Konstante und posibits(A) = 2), fährt der Prozess mit Schritt 154 fort, in dem eine Schaltung zum Addieren der zwei Teilprodukte zum Berechnen der Endsumme erzeugt wird. Wenn die Anzahl der Teilprodukte 3 oder mehr beträgt, (d.h. der Multiplikationsfaktor ist eine Variable oder der Multiplikationsfaktor ist eine Konstante und posibits(A) > 2), fährt der Prozess mit Schritt 153 fort, in dem der Teilprodukt-Additionsbaum zum Addieren der Teilprodukte erzeugt wird.
  • In Schritt 153 wird in Übereinstimmung mit einer Umwandlungsregel 4 von 23 ein Prozess zum Erzeugen des Teilprodukt-Additionsbaums 193 mit geringerer Übertragsverbreitung durchgeführt, der aus Addierern auf mehreren Stufen besteht.
  • In Schritt 154 wird ein Prozess zum Erzeugen von Schaltungsinformationen, welche die Addierer 194 und 196 von 21 angeben, und zu deren Eingeben in die Schaltungsdaten-Speichereinheit 23 durchgeführt. Insbesondere ist er ein Prozess zum Erzeugen des Addierers 194 zum Addieren der zwei Ausgänge Q1 und Q2 des Teilprodukt-Additionsbaums 193 nach dem Verschieben von Q2 auf eine Bitposition höherer Ordnung und dem Setzen von '0' auf seine niedrigstwertige Bitposition, oder ein Prozess zum Erzeugen des Addierers 196 zum Addieren der zwei Ausgänge P1 und P2 der teilprodukterzeugenden Schaltung 195. Obwohl jeder der Addierer 194 und 196 sich aus einem Übertragsvorgriffsaddierer (CLA) zusammensetzt, können sie aus Addierern eines anderen Typs zusammengesetzt werden.
  • In Schritt 155 wird ein Prozess zum Löschen der Schaltungsinformationen über einen Multiplikator, der dem Multiplikator 191 von 21 entspricht, aus der Schaltungsdaten-Speichereinheit 23 durchgeführt.
  • Im Folgenden wird der Prozess zum Erzeugen einer teilprodukterzeugenden Schaltung, der in Schritt 151 von 8 durchgeführt wird, im Detail unter Bezugnahme auf 9 und 22 beschrieben.
  • 22 ist eine Ansicht, die schematisch die Umwandlungsregel 3 zeigt, die in dem Prozess zum Erzeugen einer teilprodukterzeugenden Schaltung in Schritt 151 verwendet wird. Wie in der Zeichnung gezeigt, gibt die Umwandlungsregel 3 an, dass eine teilprodukterzeugende Schaltung 161 zum Multiplizieren, wenn der Multiplikationsfaktor eine Variable ist, des n-Bit-Multiplikanden X(n – 1:0) mit dem (m – K)-Bit-Variablen-Multiplikationsfaktor Y(m – 1:K) und zum Ausgeben der L-Bit-Teilprodukte P1, P2, ...., in eine Schaltung umgewandelt wird, die aus Folgendem besteht: einer Selektorschaltung 162 zum Empfangen jedes 1 Bits Y(K) des Multiplikationsfaktors und des Multiplikanden X und zum Ausgeben, wenn Y(K) = 1, des X(n – 1:0), während, wenn Y(K) = 0, ein n-Bit-Signal mit dem Wert 0 ausgegeben wird; einer Schaltung zum Aufbauen eines Signals P1(L – 1:0) aus dem Ausgangssignal R der Selektorschaltung 162, die sich aus den unteren L Bits des Signals zusammensetzt, das durch Verbinden eines Signals, das sich nur aus den Bits mit dem Wert 0 zusammensetzt, mit dem höchstwertigen Bit des Ausgangssignals R (d.h. durch 0-Erweiterung) erhalten wird; und einer teilprodukterzeugenden Schaltung 163 zum Multiplizieren des (n + 1)-Bit-Multiplikanden X(n – 1:0) × 2 (d.h. ei nem (n + 1)-Bit-Signal, das durch Verbinden eines Signals mit dem Wert 0 mit dem niedrigstwertigen Bit des X(n – 1:0) erhalten wird), mit dem (m – K – 1)-Bit-Multiplikationsfaktor Y(m – 1:K + 1) und zum Ausgeben von L-Bit-Teilprodukten P2, .... (wobei K eine ganze Zahl ist, die 0 ≤ K < m erfüllt). Die teilprodukterzeugende Schaltung 163 wird jedoch nicht erzeugt, wenn K = m – 1. In diesem Fall setzt sich die Schaltung aus dem Selektor 162 und einer Schaltung zusammen, die aus dem Ausgangssignal R der Selektorschaltung 162 aufgebaut wird, die sich aus den unteren L Bits des Signals zusammensetzt, das durch Verbinden eines Signals, das sich nur aus den Bits mit dem Wert 0 zusammensetzt, mit dem höchstwertigen Bit des Ausgangssignals R erhalten wird. Obwohl in 22 eine Umwandlung in eine logische UND-Schaltung erfolgt, die als die Selektorschaltung 162 zum Ausführen der logischen UND-Operation zwischen dem 1-Bit-Signal Y(K) und dem n-Bit-Multiplikanden X(n – 1:0) dient, kann sie aus einem Selektor zum Auswählen des n-Bit-Multiplikanden X(n – 1:0) oder einem Signal mit dem Wert 0 in Reaktion auf das 1-Bit-Signal Y(K) bestehen.
  • Die Umwandlungsregel 3 gibt an, dass die teilprodukterzeugende Schaltung 161 zum Multiplizieren, wenn der Multiplikationsfaktor eine Konstante ist, des n-Bit-Multiplikanden X(n – 1:0) mit dem (m – K)-Bit-Konstanten-Multiplikationsfaktor A(m – 1:K) und zum Ausgeben der L-Bit-Teilprodukte P1, P2, ...., wenn der 1-Bit-A(K) 1 ist, in eine Schaltung umgewandelt wird, die aus Folgendem besteht: einer Schaltung zum Aufbauen eines Signals P1(L – 1:0) aus dem n-Bit-Signal X(n – 1:0), das sich aus den unteren L Bits des Signals zusammensetzt, das durch Verbinden eines Signals, das sich nur aus den Bits mit dem Wert 0 zusammensetzt, mit dem höchstwertigen Bit des n-Bit-Signals X(n – 1:0), (d.h. durch 0-Erweiterung) erhalten wird; und einer teilprodukterzeugenden Schaltung 164 zum Multiplizieren des (n + 1)-Bit-Multiplikanden X(n – 1:0)) × 2 (d.h. einem (n + 1)-Bit-Signal, das durch Verbinden eines Signals mit dem Wert 0 mit dem niedrigstwertigen Bit des X(n – 1:0) erhalten wird), mit dem (m – K – 1)-Bit-Multiplikationsfaktor A(m – 1:K + 1) und zum Ausgeben von L-Bit-Teilprodukten P2, .... Die Umwandlungsregel 3 gibt auch an, dass, wenn das 1 Bit A(K) 0 ist, die teilprodukterzeugende Schaltung 161 in eine Schaltung umgewandelt wird, die nur aus der teilprodukterzeugenden Schaltung 164 besteht, (wobei K eine ganze Zahl ist, die 0 ≤ K < m erfüllt). Die teilprodukterzeugende Schaltung 164 wird jedoch nicht erzeugt, wenn K = m – 1. In diesem Fall setzt sich die Schaltung aus dem Selektor 162 und einer Schaltung zusammen, die aus dem Ausgangssignal R der Selektorschaltung 162 aufgebaut wird, die sich aus den unteren L Bits des Signals zusammensetzt, das durch Verbinden eines Signals, das sich nur aus den Bits mit dem Wert 0 zusammensetzt, mit dem höchstwertigen Bit des Ausgangssignals R erhalten wird.
  • Die teilprodukterzeugenden Schaltungen 163 und 164, die in Übereinstimmung mit der Umwandlungsregel 3 erzeugt werden, werden rekursiv unter wiederholter Verwendung der Umwandlungsregel 3 umgewandelt, bis K = m – 1 erfüllt ist.
  • 9 ist ein Ablaufdiagramm, das im Detail den Prozess zum Erzeugen einer teilprodukterzeugenden Schaltung in Schritt 151 zeigt. Wie in der Zeichnung gezeigt, wird in Schritt 121 ein Prozess durchgeführt, um den Anfangswert 0 auf eine Variable K zu setzen, welche die Bitposition des Multiplikationsfaktors Y oder A angibt. Mit anderen Worten. Der Prozess dient dazu, um K = 0 zu setzen.
  • In Schritt 122 wird ein Prozess durchgeführt, um festzustellen, ob der Multiplikationsfaktor die Variable Y ist oder nicht. Wenn der Multiplikationsfaktor die Variable Y ist, fährt der Prozess mit Schritt 124 fort, in dem ein Prozess zum Erzeugen einer Selektorschaltung durchgeführt wird. Wenn der Multiplikationsfaktor eine Konstante A ist, fährt der Prozess mit Schritt 123 fort, in dem ein weiteren Feststellungsprozess durchgeführt wird.
  • In Schritt 123 wird ein Prozess zum Feststellen durchgeführt, ob der Wert des 1 Bit A(K) des Multiplikationsfaktors A1 ist oder nicht. Wenn A(K) = 1, fährt der Prozess mit Schritt 125 fort, in dem ein 0-Erweiterungsprozess in Bezug auf das Signal durchgeführt wird. Wenn A(K) = 0 ist, fährt der Prozess mit Schritt 126 fort, in dem das Hochzählen (counting up) der Bitpositionsvariablen K durchgeführt wird.
  • In Schritt 124 wird ein Prozess zum Erzeugen einer Selekt-Schaltung zum Erzeugen von Schaltungsinformationen über die logische UND-Schaltung 162 zum Ausführung der logischen UND-Operation zwischen dem 1-Bit-Signal Y(K) und dem n-Bit-Multiplikanden X(n – 1:0) und zum Eingeben der sich daraus ergebenden Schaltungsinformationen in die Schaltungsdaten-Speichereinheit 23 durchgeführt.
  • In Schritt 125 wird ein Prozess zum Erzeugen von Schaltungsinformationen über eine Schaltung zum Durchführen des 0-Erweiterungsprozesses in Bezug auf das Teilprodukt X(n – 1:0) × Y(K), (d.h. R), oder X(n – 1:0), das dem 1 Bit Y(K) oder A(K) des Multiplikationsfaktors entspricht, und zum Ausgeben eines Signals P1(L – 1:0), das sich aus den unteren L Bits des Signals zusammensetzt, das durch den 0-Erweiterungsprozess erhalten wird, und zum Eingeben der sich daraus ergebenden Schaltungsinformationen in die Schaltungsdaten-Speichereinheit 23 durchgeführt, wie in 22 gezeigt.
  • In Schritt 126 wird ein Prozess zum Erhöhen des Werts der Bitpositionsvariablen K um 1 durchgeführt, d.h. ein Hochzählen des Werts der Bitpositionsvariablen K.
  • In Schritt 127 wird ein Prozess zum Setzen der anschließenden teilprodukterzeugenden Schaltung 163 oder 164, wie in 22 gezeigt, durchgeführt, um einen Umwandlungsprozess rekursiv durchzuführen. Insbesondere ist er ein Prozess, um das (n + 1)-Bit-Signal mit dem Wert X × 2, welches das Doppelte des n-Bit-Multiplikanden X ist, als den Multiplikanden X zu setzen und den Wert der Bitbreite n um eins zu erhöhen.
  • In Schritt 128 wird ein Prozess zum Feststellen durchgeführt, ob die Bitpositionsvariable K kleiner als die Bitbreite m des Multiplikationsfaktors ist. Wenn K kleiner als m ist, (d.h. K < m), fährt der Prozess in Bezug auf den Multiplikanden X, der in den Schritten 126 und 127 neu gesetzt worden ist, die Bandbreite n und die Bitpositionsvariable K mit Schritt 122 bis 127 fort. Wenn K gleich m ist, wird der Prozess zum Erzeugen einer teilprodukterzeugenden Schaltung in Schritt 152 abgeschlossen.
  • Im Folgenden wird der Prozess zum Erzeugen eines Teilprodukt-Additionsbaums, der in Schritt 153 von 8 durchgeführt wird, im Detail unter Bezugnahme auf 10, 23, 24 und 25 beschrieben.
  • 23 ist eine Ansicht, die schematisch eine Umwandlungsregel 4 zeigt, die in dem Prozess zum Erzeugen eines Teilprodukt-Additionsbaums in Schritt 153 zu verwenden ist. Wie in der Zeichnung gezeigt, gibt die Umwandlungsregel 4 an, dass, wenn die Anzahl K der Teilprodukte größer als 3 ist, (d.h. K > 3), ein Teilprodukt-Additionsbaum 181 zum Addieren von K Teilprodukten P0, ..., PK – 1 und zum Ausgeben der Teilsumme Q0 und des Teilübertrags Q1 in eine Schaltung umgewandelt wird, die aus einem 1-Stufen-Addierer 182 zum Addieren der K Teilprodukte P0, ..., PK – 1 und einem Teilprodukt-Additionsbaum 183 zum Empfangen des Ausgangs des 1-Stufen-Addierers 182 besteht.
  • Die Umwandlungsregel 4 gibt auch an, dass, wenn die Anzahl K der Teilprodukte gleich 3 ist, (d.h. K = 3), der Teilprodukt-Additionsbaum 181 in einen Übertragsspeicheraddierer (CSA) 184 zum Addieren der drei Teilprodukte P0, P1 und P2 und zum Ausgeben der Teilsumme Q0 und des Teilübertrags Q1 umgewandelt wird.
  • Der Teilprodukt-Additionsbaum 183, der in Übereinstimmung mit der Umwandlungsregel 4 erzeugt wird, wird rekursiv durch wiederholte Verwendung der gleichen Umwandlungsregel 4 umgewandelt, bis K = 3 erfüllt ist.
  • 24 ist eine Ansicht, die schematisch eine Umwandlungsregel 5 zum Erzeugen des 1-Stufen-Addierers 182 von 23 zeigt. In der Zeichnung bezeichnet K die Anzahl von anfänglichen Teilprodukten, I bezeichnet die Anzahl der Teilprodukte, die bisher verarbeitet worden sind, und J bezeichnet die Anzahl der Teilprodukte, die in den vergangenen Prozessen erzeugt worden sind, um in die nächste Stufe eingegeben zu werden, (hier sind I, J, und K ganze Zahlen, die 0 ≤ J ≤ I < K erfüllen).
  • Die Umwandlungsregel 5 gibt an, dass, wenn I kleiner als (K – 3) ist, (d.h. I < K – 3), eine Umwandlung in einen Übertragsspeicheraddierer (CSA) 192 zum Addieren von drei Teilprodukten PI, PI + 1 und PI + 2 und zum Ausgeben einer Teilsumme QJ und eines Teilübertrags QJ + 1 und in einen 1-Stufen-Addierer 183 zum Addieren von Teilprodukten PI + 3, ..., PK – 1 durchgeführt wird.
  • Die Umwandlungsregel 5 gibt auch an, dass wenn I gleich (K – 3) ist, (d.h. I = K – 3)), eine Umwandlung in einen Übertragsspeicheraddierer (CSA) 194 zum Addieren von drei Teilprodukten PI, PI + 1 und PK – 1 und zum Ausgeben der Teilsumme QJ und des Teilübertrags QJ + 1 erfolgt.
  • Die Umwandlungsregel gibt auch an, dass, wenn I gleich (K – 2) ist, (d.h. I = K – 2), eine Umwandlung in eine Schaltung zum Ausgeben von PK – 2 und PK – 1 jeweils als n-Bit-Signale QJ und QJ + 1 erfolgt, und wenn I gleich (K – 1) ist, (d.h. I = K – 1), eine Umwandlung in eine Schaltung zum Ausgeben von PK – 1 als das n-Bit-Signal QJ + 1 erfolgt.
  • Der Teilübertrag QJ + 1 ist jedoch ein Signal, das aus dem Ausgang R des Übertragsspeicheraddierers (CSA) 192 oder 194 aufgebaut wird, das sich aus den unteren n Bits des Signals zusammensetzt, das durch Verbinden eines 1-Bit-Signals mit dem Wert 0 mit dem niedrigstwertigen Bit des Ausgangs R erhalten wird.
  • 10 ist ein Ablaufdiagramm, das im Detail den Prozess zum Erzeugen eines Teilprodukt-Additionsbaums in Schritt 153 zeigt. Wie in der Zeichnung gezeigt, wird in Schritt 170 ein Prozess zum Setzen der Anzahl der Teilprodukte auf K durchgeführt. Insbesondere in dem Beispiel von 21, wenn der Multiplikationsfaktor die Variable Y ist, wird der Wert gleich der Bitbreite m des Multiplikationsfaktors auf K gesetzt. Wenn der Multiplikationsfaktor die Konstante A ist, wird der Wert gleich den posibits(A) auf K gesetzt.
  • In Schritt 171 wird ein Prozess durchgeführt, um die anfänglichen Werte 0 auf die Variablen I und J zu setzen, der Prozess dient dazu, I = 0, J = 0 zu setzen.
  • In den Schritten 172 bis 177 wird ein Prozess zum Erzeugen des in 23 gezeigten 1-Stufen-Addierers 182 durchgeführt.
  • In Schritt 172 wird ein Prozess zum Erzeugen von Schaltungsinformationen über eine Schaltung durchgeführt, die den Übertragsspeicheraddierer (CSA) 192 oder 194 zum Addieren der drei in 24 gezeigten Teilprodukte PI, PI + 1 und PI + 2 und zum Ausgeben der Teilsumme QJ und des Teilübertrags QJ + 1 und zum Eingeben der sich daraus ergebenen Schaltungsinformationen in die Schaltungsdaten-Speichereinheit 23 enthält.
  • Es ist leicht zu verstehen, dass unter Verwendung einer Umwandlungsregel 6 von 25 der Übertragsspeicheraddierer (CSA) 192 oder 194 bitweise in einen vollständigen Addierer 202 oder 204 umgewandelt werden kann, was zu einer Schaltung führt, die sich aus n vollständigen Addierern zusammensetzt.
  • In Schritt 173 wird ein Prozess zum Aktualisieren der Werte I und J durchgeführt. Insbesondere ist dieser ein Prozess zum Aktualisieren des Werts I auf (I + 3) und des Werts von J auf (J + 2).
  • In Schritt 174 wird ein Prozess zum Feststellen durchgeführt, ob I gleich oder kleiner als (K – 3) ist oder nicht. Wenn I gleich oder kleiner als (K – 3) ist, fährt der Prozess mit Schritt 172 fort, um die Prozesse der Schritte 172 und 173 in Bezug auf I und J, die in Schritt 173 aktualisiert wurden, wiederholt durchzuführen. Wenn I größer als (K – 3) wird, (d.h. I > K – 3), fährt der Prozess mit Schritt 175 fort, um die folgende Feststellung zu treffen.
  • In Schritt 175 wird ein Prozess zum Feststellen durchgeführt, ob I gleich K ist oder nicht. Wenn I gleich K ist, (d.h. I = K), fährt der Prozess mit Schritt 178 fort, in dem ein weiterer Feststellungsprozess durchgeführt wird. Wenn I andererseits nicht gleich K ist, fährt der Prozess mit Schritt 176 fort, in dem ein Prozess zum Verbinden von PI mit QI durchgeführt wird.
  • In Schritt 176 wird ein Prozess zum Erzeugen von Schaltungsinformationen über die Verbindung zwischen PI und QI und zum Eingeben der sich daraus ergebenden Schaltungsinformationen in die Schaltungsdaten-Speichereinheit 23 (hier I = K – 1 oder I = K – 2) durchgeführt.
  • In Schritt 177 wird ein Prozess zum Hochzählen jedes der Werte von I und J durchgeführt. Insbesondere ist er ein Prozess zum Aktualisieren des Werts von I auf (I + 1) und des Werts von J auf (J + 1). Wenn der vorliegende Prozess abgeschlossen ist, kehrt der Prozess zu Schritt 175 zurück, in dem der Feststellungsprozess in Bezug auf I und J durchgeführt wird, die aktualisiert worden sind.
  • In Schritt 178 wird ein Prozess zum Feststellen durchgeführt, ob J gleich 2 ist oder nicht. Wenn J gleich 2 ist, (d.h. J = 2), ist der Prozess zum Erzeugen eines Teilprodukt-Additionsbaums in Schritt 153 abgeschlossen. Wenn J andererseits nicht gleich 2 ist, fährt der Prozess mit Schritt 179 fort, und der Teilprodukt-Additionsbaum wird danach rekursiv verarbeitet.
  • In Schritt 179 wird ein Prozess durchgeführt, um den anschließenden Teilprodukt-Additionsbaum 183 von 23, wie in 23 gezeigt, zu setzen, um einen Umwandlungsprozess rekursiv durchzuführen. Insbesondere werden die Ausgänge Q0, ..., QJ – 1 des 1- Stufen-Addierers 182 als die Teilprodukte P0, ..., PJ – 1 gesetzt, die in den Teilprodukt-Additionsbaum 183 einzugeben sind.
  • In Schritt 180 wird ein Prozess zum Aktualisieren von K durchgeführt. Mit anderen Worten, er ist ein Prozess, um die Anzahl J der Teilprodukte, die in den Teilprodukt-Additionsbaum 183 von 23 einzugeben sind, auf K zu setzen.
  • Die Prozesse der Schritte 171 bis 177 werden in Bezug auf K und die Teilprodukte P0, ..., PJ – 1 wiederholt ausgeführt, die in den Schritten 179 und 180 aktualisiert wurden.
  • Indem der Additionsbaum auf diese Weise erzeugt wird, kann eine Schaltung zum Berechnen der Summe von Teilprodukten ausgebildet werden, welche sich aus Addierern ohne Übertragsverbreitung zusammensetzt, die in einer gut ausgewogenen hierarchischen Struktur angeordnet sind, so dass die Anzahl von logischen Stufen reduziert werden kann.
  • Im Folgenden wird der Prozess zum Erzeugen eines Multiplikators durch Vorzeichenumkehrung, der in Schritt 146 durchgeführt wird, im Detail unter Bezugnahme auf 11 und 26 beschrieben. In dem Prozess zum Erzeugen eines Multiplikators ist es erforderlich, das Produkt der logischen NICHT-Konstante A0 des Multiplikationsfaktors A und des Multiplikanden X zu korrigieren, um das Produkt des Multiplikationsfaktors A und des Multiplikanden X zu berechnen.
  • 26 ist eine Ansicht, die schematisch eine Umwandlungsregel 7 zeigt, um eine Umwandlung in eine Schaltung vorzunehmen, die eine Schaltung für die oben genannte Korrektur in dem Prozess zum Erzeugen eines Multiplikators von Schritt 146 enthält. Wie in der Zeichnung gezeigt, gibt die Umwandlungsregel 7 an, dass ein Multiplikator 221 zum Multiplizieren des n-Bit-Multiplikanden X mit dem m-Bit-Konstanten-Multiplikationsfaktor A zum Ausgeben des L-Bit-Produkts P in eine Schaltung umgewandelt wird, die aus Folgendem besteht: einer teilprodukterzeugenden Schaltung 222 zum Multiplizieren des Multiplikanden X mit dem logischen NICHT A0 des Multiplikationsfaktors A, um die Teilprodukte P0, ..., Pk – 1 zu berechnen; einem Teilprodukt-Additionsbaum 223 zum Addieren der Teilprodukte P0, ..., Pk – 1 und des Multiplikanden X; L-Bit logische NICHT-Schaltungen 224 und 225 zum Ausführen der logischen NICHT-Operation in Be zug auf jedes von der Teilsumme Q0 und des Teilübertrags Q1, welche die Ausgänge des Teilprodukt-Additionsbaums 223 sind; und einer Endsummenschaltung zum Addieren der Ausgänge R1 und R2, welche die jeweiligen Ausgänge der logischen NICHT-Schaltungen 224 und 225 sind; einer Endsummenschaltung zum Addieren der jeweiligen Ausgänge R1 und R2 der logischen NICHT-Schaltungen 224 und 225 und eines Signals R3, das sich aus den unteren L Bits eines Signals mit dem Wert X × 2m + 2 zusammensetzt. Der Teilübertrag Q1 ist jedoch ein Signal, das durch Verschieben der unteren (L – 1) Bits des Teilübertragausgangs des Teilprodukt-Additionsbaums 223 um ein Bit (d.h. verdoppelt) erhalten wird, um den Teilübertrag Q1 auf eine Bitposition höherer Ordnung zu verschieben und '0' auf seine niedrigstwertige Bitposition zu setzen. In dem Beispiel von 26 setzt sich die oben genannte Endsummenschaltung aus einem Übertragsspeicheraddierer (CSA) 226 und einem Übertragsvorgriffsaddierer (CLA) 227 zusammen. Obwohl eine logische NICHT-Schaltung 220 in 26 vorgesehen ist, um das logische NICHT A0 des Multiplikationsfaktors A zu erhalten, ist es auch möglich, A0 vorher durch Berechnung zu erhalten.
  • 11 ist ein Ablaufdiagramm, das im Detail den Prozess zum Erzeugen eines Multiplikators durch Vorzeichenumkehrung in Schritt 146 von 7 zeigt. Wie in der Zeichnung gezeigt, wird in Schritt 211 ein Prozess zum Herstellen eines logischen NICHT-Signals zum Ausführen der logischen NICHT-Operation unter Bezug auf den Multiplikationsfaktor A durchgeführt, um die m-Bit-Konstante A0 herzustellen. Insbesondere wird der Wert, der erhalten wird, indem die logische NICHT-Operation unter Bezug auf jedes Bit des Multiplikationsfaktors A ausgeführt wird, als A0 definiert. Mit anderen Worten, A0(i) = #A(i) wird durchgeführt in Bezug auf jedes i, das I = 0 bis (m – 1) erfüllt. Hier stellt #A(i) die logische NICHT-Operation dar, die unter Bezug auf das 1 Bit A(i) durchgeführt wird.
  • In Schritt 212 wird ein Prozess zum Erzeugen einer teilprodukterzeugenden Schaltung 222 von 26 durchgeführt, welcher dem Prozess zum Erzeugen einer teilprodukterzeugenden Schaltung ähnlich ist, der in Schritt 152 von 8 durchgeführt wird. Mit anderen Worten, er ist ein Prozess zum Erzeugen von Teilprodukten aus dem Multiplikanden X und der logischen NICHT-Konstante A0 des Multiplikationsfaktors A unter Verwendung der Umwandlungsregel 3, die in 22 gezeigt ist.
  • In Schritt 213 wird ein Prozess zum Erzeugen des Teilprodukt-Additionsbaums 223 von 26 durchgeführt, welcher dem Prozess zum Erzeugen eines Teilprodukt-Additionsbaums ähnlich ist, der in Schritt 153 von 8 durchgeführt wird. Mit anderen Worten, er ist ein Prozess zum Erstellen, unter Verwendung der in 23 gezeigten Umwandlungsregel 4, des Teilprodukt-Additionsbaums von 26 mit geringerer Übertragverbreitung, der aus Addierern auf mehreren Stufen besteht.
  • In Schritt 214 wird ein Prozess zum Erzeugen von Schaltungsinformationen über logische NICHT-Schaltungen 224 und 225, welche den Ausgang des Teilprodukt-Additionsbaums 223 von 26 empfangen, und zum Eingeben der sich daraus ergebenden Schaltungsinformationen in die Schaltungsdaten-Speichereinheit 23 durchgeführt. In der vorliegenden Ausführungsform besteht jede der logischen NICHT-Schaltungen 224 und 225 aus einem L-Bit-Inverter.
  • In Schritt 215 wird ein Prozess zum Herstellen eines Korrektursignals R3 von 26 aus dem Multiplikanden X durchgeführt. Insbesondere kann das L-Bit-Korrektursignal R3 aus den unteren L Bits eines Signals bestehen, das durch den zahlenmäßigen Ausdruck X × 2m + 2 angegeben wird.
  • In Schritt 216 wird ein Prozess zum Erzeugen von Schaltungsinformationen über die Endsummenschaltung zum Addieren der jeweiligen Ausgänge R1 und R2 der logischen NICHT-Schaltungen 224 und 225 von 26 und des Korrektursignals R3 und zum Eingeben der sich daraus ergebenden Schaltungsinformationen in die Schaltungsdaten-Speichereinheit 23 durchgeführt. In dem spezifischen, in 26 gezeigten Beispiel ist es ein Prozess zum Erzeugen des Übertragsspeicheraddierers (CSA) 226 zum Addieren der Ausgänge R1 und R2 und des Korrektursignals R3; und des Übertragsvorgriffsaddierers (CLA) 227 zum Addieren der Teilsumme und des Teilübertrags, welche die Ausgänge des Übertragsspeicheraddierers (CSA) 226 sind. Bevor die Teilsumme und der Teilübertrag addiert werden, welche die Ausgänge des Übertragsspeicheraddierers (CSA) 226 sind, verschiebt der Übertragsvorgriffsaddierer (CLA) 227 jedoch den Teilübertrag auf eine Bitposition höherer Ordnung und setzt '0' auf seine niedrigstwertige Bitposition, bevor es auf die Teilsumme aufaddiert wird.
  • Obwohl sich die Endsummenschaltung in der vorliegenden Ausführungsform aus dem Übertragsspeicheraddierer (CSA) 226 und dem Übertragsvorgriffsaddierer (CLA) 227 zusammensetzt, kann sie aus anderen Elementen bestehen. Obwohl das L-Bit-Korrektursignal in Schritt 215 mit R3 = X × 2m + 2 angegeben wird, kann es mit R3 = X × 2m + 1 oder R3 = X × 2m angegeben werden, so dass jeweils '1' oder '2' in dem Übertragsvorgriffsspeicher (CLA) 227 dazu addiert werden. Um '1' zu addieren, wird der Übertrag in dem Übertragsvorgriffsaddierer (CLA) 227 auf 1 gesetzt, oder das Teilübertragsignal von dem Übertragsspeicheraddierer (CSA) 226 wird um eine Bitposition höherer Ordnung verschoben und '1' auf die niedrigstwertige Bitposition gesetzt, so dass es von dem Übertragsvorgriffsaddierer (CLA) 227 zu der Teilsumme addiert wird. Um '2' zu addieren, wird das Teilübertragsignal von dem Übertragsspeicheraddierer (CSA) 226 um eine Bitposition höherer Ordnung verschoben und '1' auf die niedrigstwertige Bitposition gesetzt, so dass es von dem Übertragsvorgriffsaddierer (CLA) 227 zu der Teilsumme addiert wird, wobei der Übertragseingang (carry in) auf 1 gesetzt wird.
  • In Schritt 217 wird ein Prozess zum Löschen der Schaltungsinformationen über einen Multiplikator, der dem Multiplikator 221 von 26 entspricht, aus der Schaltungsdaten-Speichereinheit 23 durchgeführt.
  • Im Folgenden wird der Prozess zum Erzeugen eines Multiplikators durch Teilung, der in Schritt 148 von 7 durchgeführt wird, im Detail unter Bezugnahme auf 12 und 27 beschrieben.
  • 27 ist eine Ansicht, die schematisch eine Umwandlungsregel 8 zeigt, die in dem Prozess zum Erzeugen eines Multiplikators durch Teilung in Schritt 148 zu verwenden ist. Wie in der Zeichnung gezeigt, gibt die Umwandlungsregel 8 an, dass, wenn posibits(A1) + posibits(A2) > 2, ein Multiplikator 241 zum Multiplizieren des n-Bit-Multiplikanden X mit dem m-Bit-Konstanten- Multiplikationsfaktor A und zum Ausgeben des L-Bit-Produkts P in eine Schaltung umgewandelt wird, die aus Folgendem besteht: einer teilprodukterzeugenden Schaltung 242 zum Multiplizieren des Multiplikanden X mit A1, das in Schritt 143 von 7 bestimmt wurde, um die Teilprodukte P0, ..., Pk – 1 zu berechnen; einer teilprodukterzeugenden Schaltung 243 zum Multiplizieren des Multiplikanden X mit A2, das in Schritt 143 bestimmt wurde, um die Teilprodukte O0, ..., OH – 1 zu berechnen; logische L-Bit-NICHT-Schaltungen 244, ..., 245 zum Ausführen der logi schen NICHT-Operation in Bezug auf diese Teilprodukte O0, ..., OH – 1; einem Teilprodukt-Additionsbaum 246 zum Addieren der Ausgänge R0, ..., RH – 1 der logischen NICHT-Schaltungen 244, ..., 245 und der Teilprodukte P0, ..., Pk; und einer Endsummenschaltung zum Addieren der Teilsumme Q0 und des Teilübertrags Q1, welche die Ausgänge des Teilprodukt-Additionsbaums 246 sind, und eines Korrekturwerts H.
  • Da in diesem Fall jedoch angenommen wird, dass die Korrekturzahl H 2 ist, (d.h. H = 2), gibt die Umwandlungsregel 8 hier an, dass die oben genannte Endsummenschaltung in eine Schaltung umgewandelt wird, die aus einem Übertragsvorgriffsaddierer (CLA) 247 zum Addieren der Teilsumme Q0, die der Ausgang des Teilprodukt-Additionsbaums 246 ist, und eines Signals, das sich aus den unteren L Bits eines Signals mit dem Wert (Q1 x + 1) zusammensetzt, besteht, das auch der Ausgang des Teilprodukt-Additionsbaums 246 ist, wobei der Übertragseingang auf 1 gesetzt wird. Das Signal, das dem Teilübertrag Q1 entspricht, der in den Übertragsvorgriffsaddierer (CLA) 247 eingegeben wird, wurde durch Verschieben der unteren (L – 1) Bits des Teilübertragausgangs Q1 des Teilprodukt-Additionsbaums 246 um ein Bit (d.h. Verdoppelung) und durch Setzen von '1' auf seine niedrigstwertige Bitposition erhalten. Wenn die Korrekturzahl 1 ist, wird insbesondere die oben genannte Endsummenschaltung in eine Schaltung umgewandelt, die aus einem Übertragsvorgriffsaddierer (CLA) besteht, um einfach die Teilsumme Q0 und den Teilübertrag Q1 zu addieren, welche die Ausgänge des Teilprodukt-Additionsbaums 246 sind, wobei der Übertragseingang auf 1 gesetzt wird, (d.h. eine Schaltung ähnlich der Übertragsvorgriffsschaltung (CLA) 240 von 27).
  • In allgemeinen Fällen, in denen die Korrekturzahl H 3 oder mehr ist, wird Addition durch Addieren der Korrekturzahl H zu der Eingabe in den Teilprodukt-Additionsbaum 246 implementiert, so dass die Endsummenschaltung in eine Schaltung umgewandelt werden kann, die sich aus einem Übertragsvorgriffsaddierer (CLA) zum Addieren der Teilsumme Q0 und des Teilübertrags Q1 zusammensetzt, welche die Ausgänge des Teilprodukt-Additionsbaums sind.
  • Die Umwandlungsregel 8 gibt auch an, dass, wenn posibits(A1) + posibits(A2) = 2, eine Umwandlung in eine Schaltung erfolgt, die aus Folgendem besteht: einer teilprodukterzeugenden Schaltung 248 zum Multiplizieren des Multiplikanden X mit A1, das in Schritt 143 bestimmt wurde, um das Teilprodukt P0 zu berechnen; einer teilprodukterzeugenden Schaltung 249 zum Multiplizieren des Multiplikanden X mit A2, das in Schritt 143 bestimmt wurde, um das Teilprodukt Q0 zu berechnen; einer logischen NICHT-Schaltung 250 zum Ausführen der logischen NICHT-Operation in Bezug auf das Teilprodukt Q0; und dem Übertragsvorgriffsaddierer (CLA) 240 zum Addieren des Ausgangs R0 der logischen NICHT-Schaltung 250 und des Teilprodukts P0, wobei der Übertragseingang auf 1 gesetzt wird.
  • Obwohl sich die Endsummenschaltung in dem Beispiel von 27 aus den Übertragsvorgriffsaddierern (CLA) 247 und 240 zusammensetzt, kann sie sich auch aus einem Addierer eines anderen Typs zusammensetzen.
  • 12 ist ein Ablaufdiagramm, das im Detail den Prozess zum Erzeugen eines Multiplikators durch Teilung zeigt, der in Schritt 148 durchgeführt wird. Wie in der Zeichnung gezeigt, wird in Schritt 231 ein Prozess zum Erzeugen der teilprodukterzeugenden Schaltung 242 von 27 zum Multiplizieren des Multiplikanden X mit der Konstanten A1, die in Schritt 143 bestimmt wurde, statt mit dem Multiplikationsfaktor A durchgeführt, ähnlich dem Prozess zum Erzeugen einer teilprodukterzeugenden Schaltung, der in Schritt 151 von 8 durchgeführt wird. Mit anderen Worten, er ist ein Prozess zum Erzeugen einer Schaltung zum Erzeugen von Teilprodukten aus dem Multiplikanden X und der oben genannten Konstanten A1 unter Verwendung der in 22 gezeigten Umwandlungsregel 3.
  • In Schritt 232 wird ein Prozess zum Erzeugen der teilprodukterzeugenden Schaltung 243 von 27 zum Multiplizieren des Multiplikanden X mit der Konstanten A2, die in Schritt 143 bestimmt wurde, statt mit dem Multiplikationsfaktor A durchgeführt, ähnlich Schritt 231. Mit anderen Worten, er ist ein Prozess zum Erzeugen einer teilprodukterzeugenden Schaltung aus dem Multiplikanden X und der oben genannten Konstanten A2 unter Verwendung der in 22 gezeigten Umwandlungsregel 3.
  • In Schritt 233 wird ein Prozess zum Erzeugen von Schaltungsinformationen über die logischen NICHT-Schaltungen 244, ... 245, die in Schritt 232 erzeugt wurden und welche die Ausgänge O0, ..., OH – 1 der teilprodukterzeugenden Schaltung 243 von 27 empfangen, und zum Eingeben der sich daraus ergebenden Schaltungsdaten in die Schal tungsdaten-Speichereinheit 23 durchgeführt. In dem vorliegenden Beispiel besteht jede der logischen NICHT-Schaltungen 244, ..., 245 aus einem L-Bit-Inverter.
  • In Schritt 234 wird ein Prozess zum Feststellen durchgeführt, ob die posibits(A1) + posibits(A2) gleich 2 sind, (d.h. posibits(A1) + posibits(A2) = 2). Wenn die posibits(A1) + posibits(A2) gleich 2 sind, fährt der Prozess mit Schritt 236 fort, in dem die Endsummenschaltung erzeugt wird. Wenn andererseits die posibits(A1) + posibits(A2) nicht gleich 2 sind, fährt der Prozess mit Schritt 235 fort, in dem der Teilprodukt-Additionsbaum erzeugt wird.
  • In Schritt 235 wird ein Prozess zum Erzeugen des Teilprodukt-Additionsbaums 246 von 27 für die Ausgänge der in den Schritten 231 und 233 erzeugten Schaltungen durchgeführt, ähnlich dem Prozess zum Erzeugen eines Teilprodukt-Additionsbaums, der in Schritt 153 von 8 durchgeführt wurde. Mit anderen Worten, er ist ein Prozess unter Verwendung der in 23 gezeigten Umwandlungsregel 4 zum Bilden des Teilprodukt-Additionsbaums 246 zum Addieren der Teilprodukte P0, ..., Pk – 1 und R0, ..., RH – 1 von 27 durch einen Additionsbaum mit weniger Übertragsverbreitung, der aus Addierern auf mehreren Stufen besteht.
  • In Schritt 236 wird ein Prozess zum Erzeugen von Schaltungsinformationen über die Endsummenschaltung zum Addieren der Teilsumme Q0 und des Teilübertrags Q1, die von dem Teilprodukt-Additionsbaum 246 ausgegeben werden, und der Korrekturzahl H oder zum Addieren des Ausgangs P0 der teilprodukterzeugenden Schaltung 248, des Ausgangs R0 von der logischen NICHT-Schaltung 250 und der Korrekturzahl 1 und zum Eingeben der sich daraus ergebenden Schaltungsinformationen in die Schaltungsdaten-Speichereinheit 23 durchgeführt.
  • Insbesondere in dem in 27 gezeigten Beispiel, (in dem H = 2), ist er ein Prozess zum Erzeugen des Übertragsvorgriffsaddierers (CLA) 247 zum Addieren der Teilsumme Q0, die von dem Teilprodukt-Additionsbaum 246 ausgegeben wurde, und eines Signals, das sich aus den unteren L Bits eines Signals mit dem Wert zusammensetzt, der durch den zahlenmäßigen Ausdruck Q1 × 2 + 1 angegeben wird, wobei der Übertragseingang auf 1 gesetzt wird. Um die Korrekturzahl 1 in dem Übertragsvorgriffsaddierer (CLA) 247 zu addieren, wird der Übertragseingang zum Übertragsvorgriffsaddierer (CLA) 247 auf 1 gesetzt, oder das Teilübertragssignal Q1 wird auf eine Bitposition höherer Ordnung verschoben und '1' auf seine niedrigstwertige Bitposition gesetzt, so dass es von dem Übertragsvorgriffsaddierer (CLA) 247 zu der Teilsumme addiert wird. Zum Addieren der Korrekturzahl 2 wird das Teilübertragssignal Q1 auf eine Bitposition höherer Ordnung verschoben und '1' auf seine niedrigstwertige Bitposition gesetzt, so dass es von dem Übertragsvorgriffsaddierer (CLA) 247 zu der Teilsumme addiert wird, wobei der Übertragseingang auf 1 gesetzt wird. Wenn die posibits(A1) + posibits(A2) = 2, ist es ein Prozess zum Erzeugen des Übertragsvorgriffsaddierers (CLA) 240 zum Addieren des Ausgangs P0 der teilprodukterzeugenden Schaltung 248 und des Ausgangs R0 von der logischen NICHT-Schaltung 250, wobei der Übertragseingang auf 1 gesetzt wird.
  • Obwohl die Endsummenschaltung in der vorliegenden Ausführungsform die Korrekturzahl H mittels der Übertragsvorgriffsaddierer (CLA) 247 und 240 addiert, kann die Struktur nur in dem Fall verwendet werden, in dem H gleich oder kleiner als 2 ist. Die Endsummenschaltung kann jedoch eine andere Struktur haben, vorausgesetzt, sie kann die oben genannte Teilsumme Q0, den Teilübertrag Q1 und die Korrekturzahl H addieren. Es ist auch möglich, wie bei 27 beschrieben, den Teilprodukt-Additionsbaum zum Addieren der Korrekturzahl H ebenfalls in Schritt 235 zu erzeugen, ohne die Korrekturzahl H in der Endsummenschaltung zu addieren.
  • In Schritt 237 wird ein Prozess zum Löschen der Schaltungsinformationen über einen Multiplikator, der dem Multiplikator 241 von 27 entspricht, aus der Schaltungsdaten-Speichereinheit 23 durchgeführt.
  • 13 ist ein Ablaufdiagramm, das im Detail den Prozess zum Bestimmen von A1 und A2 in Schritt 143 zeigt. Wie in der Zeichnung gezeigt, werden die anfänglichen Werte in Schritt 251 auf die Bitpositionsvariable i und eine Kandidaten-Bitpositions-Datengruppe U (candidate-bit-position aggregate) gesetzt. Mit anderen Worten, 0 wird auf i gesetzt, und die leere Klasse, (d.h. ⌀), wird auf U gesetzt.
  • In Schritt 252 wird ein Prozess zum Feststellen durchgeführt, ob die vier Bits A(i + 3:i) des Multiplikationsfaktors A in binärer Darstellung gleich '1101' sind oder nicht. Wenn die Antwort JA lautet, fährt der Prozess mit Schritt 253 fort, in dem die Kandidaten-Bitposi tions-Datengruppe U gesetzt wird. Wenn die Antwort NEIN lautet, fährt der Prozess mit Schritt 254 fort, in dem ein weiterer Feststellungsprozess durchgeführt wird.
  • In Schritt 253 wird ein Prozess zum Hinzufügen von Elementen (i + 1) und (i + 2) zu der Kandidaten-Bitpositions-Datengruppe U durchgeführt. Mit anderen Worten die neue Verbindung U U{i + 1, i + 2} von U und {i + 1, i + 2} wird neu auf U gesetzt.
  • In Schritt 254 wird ein Prozess zum Feststellen durchgeführt, ob die vier Bits A(i + 3:i) des Multiplikationsfaktors A in binärer Darstellung gleich '1100' sind oder nicht. Wenn die Antwort JA lautet, fährt der Prozess mit Schritt 255 fort, in dem '1100' auf die Kandidaten-Bitpositions-Datengruppe U gesetzt wird. Wenn die Antwort NEIN lautet, fährt der Prozess mit Schritt 256 fort, in dem ein weiterer Feststellungsprozess durchgeführt wird.
  • In Schritt 255 wird ein Prozess zum Hinzufügen des Elements (i + 2) zu der Kandidaten-Bitpositions-Datengruppe U durchgeführt. Mit anderen Worten die neue Verbindung U U{i + 2} von U und {i + 2} wird neu auf U gesetzt.
  • In Schritt 256 wird ein Prozess zum Feststellen durchgeführt, ob eine Feststellung in Bezug auf jedes Bit des Multiplikationsfaktors A getroffen worden ist oder nicht. Mit anderen Worten, er ist ein Prozess zum Feststellen, ob die Bitpositionsvariable i kleiner als (m – 3) ist. Wenn i kleiner als (m – 3) ist, fährt der Prozess mit Schritt 257 fort, in dem die Bitpositionsvariable i hochgezählt wird. Wenn i andererseits gleich oder größer als (m – 3) ist, fährt der Prozess mit Schritt 258 fort, in dem ein weiterer Prozess zum Setzen von Anfangswerten durchgeführt wird.
  • In Schritt 257 wird ein Prozess zum Aktualisieren der Bitpositionsvariablen i auf den Wert (i + 1) durchgeführt, um das folgende Bit in dem Multiplikationsfaktor A zu verarbeiten. Nachdem der vorliegende Prozess abgeschlossen ist, kehrt der Prozess zu Schritt 252 zurück, wo die Prozesse der Schritt 252 bis 255 wiederholt in Bezug auf i, das aktualisiert worden ist, ausgeführt werden.
  • In Schritt 258 wird ein Prozess zum Setzen der Anfangswerte auf A1, A2 und einen Zähler j durchgeführt. Mit anderen Worten, der Multiplikationsfaktor A, 0 und 1 wird jeweils auf A1, A2 und j gesetzt.
  • In Schritt 259 wird ein Prozess zum Bestimmen einer Datengruppe V durchgeführt, die aus j Elementen besteht, die aus der Kandidaten-Bitpositions-Datengruppe U so ausgewählt wurden, dass die posibits(A + Σ2α) minimiert werden. Hier wird angenommen, dass α ein vorgegebenes Element der Datengruppe V darstellt, und Σ2α die Summe von 2α's darstellt, die für alle Elemente der Datengruppe V berechnet wird.
  • In Schritt 260 wird ein Prozess zum Vergleichen der posibits(A + Σ2α) + j + δ mit den posibits(A1) + posibits(A2) in Bezug auf die Datengruppe V durchgeführt, die in Schritt 259 bestimmt wurde, wobei δ 1 ist, wenn posibits(A2) = 2 und 0 in anderen Fällen ist. Hier wird δ zu dem oben genannten zahlenmäßigen Ausdruck hinzugefügt, denn wenn posibits(A2) = 2, wird die Korrekturzahl H, die in der Beschreibung von 12 genannt wurde, 3 oder mehr, so dass es notwendig wird, die Korrekturzahl in dem Teilprodukt-Additionsbaum 246 von 27 zu addieren. Wenn in Schritt 260 festgestellt wird, dass die posibits(A + Σ2α) + j + δ kleiner sind als die posibits(A1) + posibits(A2), fährt der Prozess mit Schritt 261 fort, in dem der Prozess zum Aktualisieren von A1 und A2 durchgeführt wird. Wenn die posibits(A + Σ2α) + j + δ andererseits gleich oder größer als die posibits(A1) + posibits(A2) sind, fährt der Prozess mit Schritt 262 fort, in dem festgestellt wird, ob der Prozess zum Bestimmen von A1 und A2 abgeschlossen ist.
  • In Schritt 261 wird ein Aktualisierungsprozess durchgeführt, um den Wert (A + Σ2α) auf A1 zu setzen und den Wert von Σ2α auf A2 zu setzen.
  • In Schritt 262 wird ein Prozess zum Feststellen durchgeführt, ob die Datengruppe V gleich der Kandidaten-Bitpositions-Datengruppe U, (d.h. V = U), ist oder nicht. Wenn die Datengruppe V gleich der Kandidaten-Bitpositions-Datengruppe U ist, wird der Prozess zum Bestimmen von A1 und A2 von Schritt 143 abgeschlossen. Wenn die Datengruppe V nicht gleich der Kandidaten-Bitpositions-Datengruppe U ist, fährt der Prozess mit Schritt 263 fort, in dem der Zähler j hochgezählt wird.
  • In Schritt 263 wird ein Prozess zum Aktualisieren des Zählers j auf den Wert (j + 1) durchgeführt. Nachdem der vorliegenden Prozess abgeschlossen ist, kehrt der Prozess zum Schritt 259 zurück, wo die Prozesse der Schritte 259 bis 261 wiederholt in Bezug auf j, das aktualisiert worden ist, durchgeführt werden.
  • Obwohl in dem in 13 gezeigten Beispiel der Prozess in der vorliegenden Ausführungsform in Bezug auf jedes j durchgeführt worden ist, bis V = U erfüllt ist, wenn in Schritt 260 die posibits(A + ΣF2α) + j + δ gleich oder größer als die posibits(A1) + posibits(A2) sind, ist es der Einfachheit halber möglich, den Prozess abzuschließen, ohne mit Schritt 262 fortzufahren. Wenn der Feststellungsprozess von Schritt 262 durch einen Prozess zum Feststellen ersetzt wird, ob j = 2 ist oder nicht, werden die posibits(A1) + posibits(A2) kleiner als die posibits(A), so dass er den Effekt der Reduzierung der Anzahl von Teilprodukten erreicht.
  • Als Nächstes wird unter Verwendung von zahlenmäßigen Ausdrücken nachgewiesen, dass eine Umwandlung an einer Schaltung, die dem ursprünglichen Multiplikator entspricht, in Übereinstimmung mit den vorgenannten Umwandlungsregeln 1 bis 8 vorgenommen werden kann. Die Beschreibung für die Verwendung der Umwandlungsregeln 2 bis 6 wird aus offensichtlichen Gründen weggelassen. Eine Beschreibung wird unter der Annahme gegeben, dass L = m + n ist, ohne an Allgemeingültigkeit zu verlieren.
  • Umwandlungsregel 1 (siehe 20)
  • In 20 bezeichnet ein Bezugszeichen 132 eine UND-Schaltung zum Ausführen des logischen UND P(n – 1) zwischen einem 1-Bit-Multiplikanden X(n – 1) und einem 1-Bit-Variablen-Multiplikationsfaktor Y(0), 133 bezeichnet eine UND-Schaltung zum Ausführen des logischen UND P(n – 2) zwischen einem 1-Bit-Multiplikanden X(n – 2) und einem 1-Bit-Variablen-Multiplikationsfaktor Y(0), ..., 134 bezeichnet eine UND-Schaltung zum Ausführen des logischen UND P(1)zwischen einem 1-Bit-Multiplikanden X(1) und einem 1-Bit-Variablen-Multiplikationsfaktor Y(0), und 135 bezeichnet eine UND-Schaltung zum Ausführen des logischen UND P(0) zwischen einem 1-Bit-Multiplikanden X(0) und einem variablen 1-Bit-Multiplikationsfaktor Y(0).
  • Da Y(0) = 0 oder 1, ist
    Figure 00530001
  • Da jedes Y(0) und P(i) sich aus 1 Bit zusammensetzt, ist X(i)·Y(0) = X(i) und Y(0).
  • Daher ist P(i) = X(i) und Y(0) (0 ≤ i ≤ n – 1) P(n) = 0
  • Umwandlungsregel 7 (siehe 26)
  • Im Folgenden wird die logische NICHT-Zahl, die durch Invertieren aller Bits in einer Mehrbit-Zahl Z durch die logischen NICHT-Operation erhalten wird, durch #Z dargestellt.
  • Für die Konstante A ist –A = #A + 1 – 2m ← → #A + 1 = 2m – A.
  • Für eine n-Bit-Zahl X ist [Zweier-Komplement von X] = #X + 1 = –X.
  • Daher ist P = X·A = X·(2m – #A – 1) = X·2m – [X·Zweier-Komplement von (#A + 1)] ...(3)
  • Des Weiteren, da Q0 + Q1 = X·(#A + 1) –X·(#A + 1) = –(Q0 + Q1) = –Q0 – Q1 ...(4)
  • Und zwar ist [x·Zweier-Komplement von ('A + 1)] = [Zweier-Komplement von Q0] + [Zweier-Komplement von Q1]
  • Daher wird die Gleichung (3) zu P = X·A = X·2m + [Zweier-Komplement von Q0] + [Zweier-Komplement von Q1] = X·2m + #Q0 + 1 + #Q1 + 1 = #Q0 + #Q1 + X·2m + 2 = #Q0 + #Q1 + (X·2m + 2) ...(5)
  • Der dritte Ausdruck (X·2m + 2) in der Gleichung (5) kann als das Signal R3 erhalten werden, indem ein m-Bit-Signal, das den Wert 2 angibt, mit einem Signal verbunden wird, das den Multiplikanden X angibt.
  • Der erste Ausdruck #Q0 und der zweite Ausdruck #Q1 in der Gleichung (5) sind logisches NICHT der Teilsumme Q0 und des Teilübertrags Q1, die jeweils von dem Teilprodukt-Additionsbaum 223 ausgegeben werden. Q1 wird jedoch um eine Bitposition höherer Ordnung verschoben und '0' auf seine niedrigstwertige Bitposition gesetzt, wie in 26 gezeigt. Daher kann das Produkt P mittels Addieren des ersten bis dritten Ausdrucks in der Gleichung (5) durch die Endsummenschaltung erhalten werden, die aus dem Übertragsspeicheraddierer (CSA) 226 und dem Übertragsvorgriffsaddierer (CLA) 227 besteht.
  • Da Q0 + Q1 = X·#A + X ...(6)von der Gleichung (4) abgeleitet werden kann, entspricht #A in dem ersten Ausdruck auf der rechten Seite der Gleichung (6) A0 in 26, so dass der erste Ausdruck X·#A auf der rechten Seite als die Teilprodukte P0, ..., Pk – 1 von der teilprodukterzeugenden Schaltung 222 erhalten werden kann. Andererseits können Q0 und Q1 auf der linken Seite der Gleichung (6) als die Teilsumme Q0 und der Teilübertrag Q1 durch das Addieren der Teilprodukte P0, ..., Pk – 1 und X in dem zweiten Ausdruck auf der rechten Seite durch die teilprodukterzeugende Schaltung 223 erhalten werden. Wenn jedoch X in dem zweiten Ausdruck auf der rechten Seite der Gleichung (6) durch den Teilprodukt-Additionsbaum 223 addiert wird, wird ein Signal, das durch die 0-Erweiterung von X erhalten wird, eingegeben.
  • Umwandlungsregel 8 (siehe 27)
  • Im Folgenden wird die logische NICHT-Zahl, die durch Invertieren aller Bits in einer Mehrbit-Zahl Z durch die logischen NICHT-Operation erhalten wird, durch #Z dargestellt.
  • Für die Konstante A ist A = A1 – A2und für eine n-Bit-Zahl X ist allgemein [Zweier-Komplement von X] = #X + 1 = –X.
  • Daher ist P = X·A = X· (A1 – A2) = X··A1 – X·A2) ...(7)
  • Des Weiteren, da
    Figure 00560001
    wird die Gleichung (7) zu
    Figure 00570001
    wobei jedes Pi in dem ersten Ausdruck ein Teilprodukt für das m-Bit-Signal A1 und den Multiplikanden X ist, das von der teilprodukterzeugenden Schaltung 242 berechnet werden kann, und jedes Oi in dem zweiten Ausdruck ein Teilprodukt für das m-Bit-Signal A2 und den Multiplikanden X ist, das von der teilprodukterzeugenden Schaltung 243 und den logischen NICHT-Schaltungen 244, ..., 245 berechnet werden kann. Im Allgemeinen kann das Produkt P erhalten werden durch das Addieren dieser Teilprodukte Pi (i = 0, ..., K – 1) und Oi (i = 0, ..., H – 1) und H in dem dritten Ausdruck durch den Teilprodukt-Additionsbaum 246 und die Endsummenschaltung 247.
  • Als Nächstes, wenn H (H > 0) gleich oder kleiner als 2 ist, wie in dem Beispiel von 27 gezeigt, ist
    Figure 00570002
  • Daher ist P = X·A = Q0 + Q1·2 + H = Q0 + (Q1·2 + 1) + (H – 1) ...(9) wobei der erste Ausdruck Q0 und Q1·2 in dem zweiten Ausdruck als die Teilsumme Q0 und der Teilübertrag Q1 des Teilprodukt-Additionsbaums 246 erhalten werden können zum Addieren des Teilprodukts Pi (i = 0, ..., K – 1) und Oi (i = 0, ..., H – 1); der zweite Ausdruck Q1·2 + 1 ein Signal ist, das aus dem Teilübertrag Q1 durch Verbinden eines 1-Bit-Signals mit dessen niedrigstwertigem Bit aufgebaut wird, wie in 27 gezeigt, wobei dessen höchstwertiges Bit Q1 (m + n – 1), (d.h. das (m + n)-te Bit) jedoch nicht berücksichtigt wurde; und der erste Ausdruck Q0, der zweite Ausdruck (Q1·2 + 1) und der dritte Ausdruck (H – 1) von der Endsummenschaltung 247 addiert werden, um das Produkt P zu berechnen.
  • Die Umwandlungsregel 7 kann in einem speziellen Fall als die Umwandlungsregel 8 betrachtet werden. Das heißt, die Umwandlungsregel 7 entspricht der Umwandlungsregel 8 in dem Fall, in dem –A = #A + 1 – 2m ← → A = 2m – (#A + 1)durch die Konstante A erfüllt wird, A1 = 2m A2 = (#A + 1)in der Umwandlungsregel 8 erfüllt werden
  • Daher ist P = X·A = X·(2m – #A – 1) = X·2m – X·(#A – 1) = X·2m + [X·Zweier-Komplement von (#A + 1)],wobei eine n-Bit-Zahl X Folgendes erfüllt [Zweier-Komplement von X] = #X + 1 = –X.
  • Des Weiteren, da
    Figure 00590001
  • Der erste, der zweite und der dritte Ausdruck der Gleichung (10) sind Eingänge zu dem Teilprodukt-Additionsbaum. Daher kann das Produkt P durch Addieren des Ausgangs des oben genannten Teilprodukt-Additionsbaums und des vierten Ausdrucks (K + 1) von der Endsummenschaltung berechnet werden.
  • Der erste Ausdruck der Gleichung (10) wurde durch Verschieben des Multiplikanden X um m Bits erhalten. Der zweite Ausdruck der Gleichung (10) ist der Ausgang der teilprodukterzeugenden Schaltung zum Empfangen des logischen NICHT #A des Multiplikationsfaktors und des Multiplikanden X. Der dritte Ausdruck der Gleichung (10) ist der Ausgang von der logischen NICHT-Schaltung zum Empfangen des Multiplikanden X.
  • Die Umwandlungsregel 2 kann in einem weiteren speziellen Fall auch als die Umwandlungsregel 8 betrachtet werden. Daher kann die Umwandlungsregel 2 leicht von der Umwandlungsregel 8 abgeleitet werden, indem A1 = A und A2 = 0 gesetzt wird.
  • Somit wird in dem System zum automatischen Entwerfen einer Schaltung gemäß der ersten Ausführungsform, wenn der in den Multiplikator eingegebene Multiplikationsfaktor die Konstante A ist, und die Gesamtanzahl der Bits mit dem Wert 1 in dem Multiplikationsfaktor A 3 oder mehr beträgt, die Schaltung zum Berechnen von Teilprodukten erzeugt, die den Bits mit dem Wert 1 in dem Multiplikationsfaktor A entsprechen, so dass die Schaltung zum Berechnen der Summe der Teilprodukte durch den Additionsbaum von Übertragsspeicheraddierern gebildet wird. Demzufolge kann die Anzahl von logischen Stufen zur Addition reduziert sowie eine Multiplikation mit höherer Geschwindigkeit implementiert werden.
  • Wenn die Gesamtanzahl der Bits mit dem Wert 1 in dem Multiplikationsfaktor A 2 oder weniger beträgt, wird die Schaltung zum Berechnen von Teilprodukten nur in Bezug auf die Bits mit dem Wert 1 gebildet. Demzufolge kann sowohl die Anzahl von Teilprodukten als auch die Schaltungsfläche reduziert werden.
  • Wenn die Gesamtanzahl der Bits mit dem Wert 1 in dem Multiplikationsfaktor A groß ist, wird Folgendes gebildet: die Schaltung zum Berechnen von Teilprodukten aus der logischen NICHT-Zahl des Multiplikationsfaktors A und dem Multiplikanden; der Additionsbaum von Übertragsspeicheraddierern zum Addieren der Teilprodukte und des Korrektursignals; und eine Korrekturschaltung. Demzufolge können die Anzahl von Teilprodukten sowie Schaltungsfläche reduziert werden.
  • Wenn die Gesamtanzahl der Bits mit dem Wert 1 in dem Multiplikationsfaktor A groß ist, wird alternativ in Bezug auf die Konstanten A1 und A2 (A = A1 – A2), die zwischen sich eine Differenz aufweisen, die dem Multiplikationsfaktor A entspricht, und die Mindest-Gesamtanzahl der Bits mit dem Wert 1 besitzen, Folgendes gebildet: die Schaltung zum Berechnen der Teilprodukte der Konstanten A1 und des Multiplikanden; die Schaltung zum Berechnen der Teilprodukte der Konstanten A2 und des Multiplikanden; die Schaltung zum Ausführen der logischen NICHT-Operation in Bezug auf die Teilprodukte für die Konstante A2; der Additionsbaum von Übertragsspeicheraddierern zum Addieren der Teilprodukte für die Konstante A1 und das logische NICHT der Teilprodukte für die Konstante A2; und die Korrekturschaltung. Demzufolge kann sowohl die Anzahl von Teilprodukten als auch Schaltungsfläche reduziert werden
  • (Zweite Ausführungsform)
  • Im Folgenden wird ein System zum automatischen Entwerfen einer Logikschaltung gemäß einer zweiten Ausführungsform der vorliegenden Erfindung beschrieben. Das automatische Entwurfssystem der zweiten Ausführungsform weist die gleiche Hardware-Struktur auf wie die erste Ausführungsform, mit Ausnahme dessen, dass in dem Prozess zum Entwerfen einer Schaltung ein Prozess zum Erzeugen eines Multiplikators von 14 durchgeführt statt des Prozesses zum Erzeugen eines Multiplikators von 7.
  • 14 ist ein Ablaufdiagramm, das im Detail den Prozess zum Erzeugen eines Multiplikators zeigt, der in Schritt 1013 von 15 durchgeführt wird. Der Prozess zum Erzeugen eines Multiplikators wurde erhalten durch Entwerfen des Prozesses zum Erzeugen eines Multiplikators durch Teilung in 12 der ersten Ausführungsform. In dem vorliegenden Prozess zum Erzeugen eines Multiplikators wird die Anzahl der logischen Stufen in der Schaltung zum Berechnen der Anzahl und Summe von Teilprodukten im Allgemeinen wie folgt reduziert: Wenn der Multiplikator eine Konstante ist, wird eine Umwandlung in eine Schaltung zum Berechnen von Teilprodukten nur in Bezug auf die Bits mit dem Wert 1 in zwei Konstanten vorgenommen, die zwischen sich eine Differenz aufweisen, die dem Multiplikationsfaktor entspricht, um die Anzahl der Teilprodukte zu reduzieren. Wenn der Multiplikationsfaktor eine Konstante ist, oder wenn der Multiplikationsfaktor eine Variable ist, wird eine Umwandlung in eine Schaltung unter Verwendung eines Additionsbaums mit geringerer Übertragsverbreitung vorgenommen, um die Anzahl der logischen Stufen in der Schaltung zum Berechnen der Summe von Teilprodukten zu reduzieren.
  • Wie in 14 gezeigt, wird in Schritt 270 zuerst ein Feststellungsprozess durchgeführt, ähnlich wie in Schritt 141 von 7. Wenn der Multiplikationsfaktor eine Variable ist, welche angibt, dass Multiplikation des variablen Multiplikanden mit dem variablen Multiplikationsfaktor durchgeführt wird, fährt der Prozess mit Schritt 271 fort, in dem die zwei Konstanten A1 und A2 gesetzt werden. Wenn andererseits der Multiplikationsfaktor die Konstante A ist, fährt der Prozess mit Schritt 272 fort, in dem der Multiplikationsfaktor A in die zwei Konstanten A1 und A2 geteilt wird.
  • In Schritt 271 wird ein Prozess zum Setzen der zwei Konstanten A1 und A2 durchgeführt. Insbesondere ist er ein Prozess, um den Multiplikationsfaktor A und 0 jeweils auf A1 und A2, (d.h. A1 = A und A2 = 0) zu setzen. Nachdem der vorliegende Prozess in Schritt 271 abgeschlossen ist, fährt der Prozess mit Schritt 273 fort.
  • In Schritt 272 wird in Übereinstimmung mit dem Ablaufdiagramm von 13 ein Prozess zum Bestimmen von A1 und A2 durchgeführt, die A = A1 – A2 erfüllen und den Wert der posibits(A1) + posibits(A2) minimieren, ähnlich wie in Schritt 143 von 7. In speziellen Fällen umfasst das Paar von A1 und A2, das in dem vorliegenden Prozess bestimmt wird, A1 = A und A2 = 0, was der Umwandlungsregel 2 entspricht, und A1 = 2m und A2 = (#A + 1), was der Umwandlungsregel 9 entspricht.
  • In Schritt 273 wird der Prozess zum Erzeugen einer teilprodukterzeugenden Schaltung, die in der Beschreibung von 9 genannt wurde, für A1, das in Schritt 271 oder 272 bestimmt wurde, anstelle des Multiplikationsfaktors A durchgeführt, ähnlich wie in Schritt 231 von 12. Mit anderen Worten, er ist ein Prozess zum Erzeugen von Teilprodukten aus dem oben genannten A1 und dem Multiplikanden X in Übereinstimmung mit der Umwandlungsregel 3, die in 22 gezeigt ist.
  • In Schritt 274 wird festgestellt, ob die Konstante A2 gleich 0 ist oder nicht. Wenn A2 gleich 0 ist, (d.h. A2 = 0), fährt der Prozess mit Schritt 277 fort, indem die Prozesse für A2 in den Schritten 275 und 276 weggelassen werden. Wenn A2 andererseits nicht gleich 0 ist, fährt der Prozess mit Schritt 275 fort, in dem ein Prozess zum Erzeugen einer teilprodukterzeugenden Schaltung für A2 durchgeführt wird.
  • In Schritt 275 wird der Prozess zum Erzeugen einer teilprodukterzeugenden Schaltung, der in der Beschreibung von 9 genannt worden ist, für die Konstante A2, die in Schritt 271 oder 272 bestimmt worden ist, anstelle des Multiplikationsfaktors A durchgeführt, ähnlich wie in Schritt 232 von 12. Mit anderen Worten, er ist ein Prozess zum Erzeugen von Teilprodukten aus dem Multiplikanden X und der oben genannten Konstante A2 in Übereinstimmung mit der Umwandlungsregel 3, die in 22 gezeigt ist.
  • In Schritt 276 wird ein Prozess zum Erzeugen von Schaltungsinformationen über eine logische NICHT-Schaltung zum Empfangen des Ausgangs der teilprodukterzeugenden Schaltung, die in Schritt 275 erzeugt worden ist, und zum Eingeben der sich daraus ergebenden Schaltungsinformationen in die Schaltungsdaten-Speichereinheit 23 durchgeführt, ähnlich wie in Schritt 233 von 12. In der vorliegenden Ausführungsform setzt sich die logische NICHT-Schaltung aus einem Inverter zusammen.
  • In Schritt 277 wird ein Prozess zum Feststellen durchgeführt, ob die Summe der Anzahl der Teilprodukte für A1 und der Anzahl der Teilprodukte für A2, welche durch posibits(A1) + posibits(A2) vorgegeben wird, gleich 1 ist, gleich 2 ist oder größer als 2 ist. Wenn die Summe der Teilprodukte gleich 1 ist, (d.h. posibits(A1) + posibits(A2) = 1), fährt der Prozess mit Schritt 280 fort, in dem der Prozess zum Löschen eines Multiplikators durchgeführt wird. Wenn die Summe der Teilprodukte gleich 2 ist, (d.h. posibits(A1) + posibits(A2) = 2), fährt der Prozess mit Schritt 279 fort, in dem eine Endsummenschaltung erzeugt wird. Wenn die Summe der Teilprodukte größer als 2 ist, fährt der Prozess mit Schritt 278 fort, in dem ein Teilprodukt-Additionsbaum erzeugt wird. Wenn A1 jedoch eine Variable ist, (d.h. der Multiplikationsfaktor ist eine Variable), entspricht die Anzahl der Teilprodukte für A2 ihrer Bitbreite m.
  • In Schritt 278 wird ein Prozess zum Erzeugen eines Teilprodukt-Additionsbaums in Bezug auf die Ausgänge der Schaltungen erzeugt, die in den Schritten 273 und 276, wie in der Beschreibung von 10 genannt, ähnlich wie in Schritt 235 von 12 erzeugt worden sind. Mit anderen Worten, er ist ein Prozess zum Erzeugen eines Additionsbaums mit geringerer Übertragsverbreitung, der in Übereinstimmung mit der in 23 gezeigten Umwandlungsregel 4 aus Addierern auf mehreren Stufen besteht.
  • In Schritt 279 wird ein Prozess zum Erzeugen von Schaltungsinformationen über eine Endsummenschaltung zum Addieren von: der Teilsumme Q0 und dem Teilübertrag Q1, die von dem Teilprodukt-Additionsbaum ausgegeben worden sind, und der Korrekturzahl H; dem Ausgang der teilprodukterzeugenden Schaltung, dem Ausgang der logischen NICHT-Schaltung und der Korrekturzahl H; den Ausgängen der Teilprodukt- Additionsbäume; oder den Ausgängen der teilprodukterzeugenden Schaltungen, und zum Eingeben der sich daraus ergebenden Schaltungsinformationen in die Schaltungsdaten-Speichereinheit durchgeführt, ähnlich wie in Schritt 154 von 8 oder Schritt 236 von 12.
  • In Schritt 280 wird ein Prozess zum Löschen der Schaltungsinformationen über einen Multiplikator aus der Schaltungsdaten-Speichereinheit 23 durchgeführt, ähnlich wie in Schritt 155 von 8, Schritt 217 von 11 oder Schritt 237 von 12.
  • (Dritte Ausführungsform)
  • Im Folgenden wird eine Vorrichtung zum automatischen Entwerfen einer Logik-Schaltung gemäß einer dritten Ausführungsform der vorliegenden Erfindung beschrieben.
  • Die automatische Entwurfsvorrichtung der dritten Ausführungsform führt den Prozess von Schritt 1013 in 5 durch, ähnlich wie in den Schritten 141 bis 148 von 7.
  • 15 ist ein Blockschaltbild, das die Struktur der automatischen Entwurfsvorrichtung der dritten Ausführungsform zeigt, in welcher ein Bezugszeichen 2600 eine Eingabeeinrichtung bezeichnet, Bezugszeichen 2601 bis 2604 Feststellungseinrichtungen bezeichnen, ein Bezugszeichen 2611 eine Multiplikationsfaktor-Teilungseinrichtung zum Teilen des Multiplikationsfaktors A in A1 und A2 bezeichnet, 2612 eine Einrichtung zum Herstellen eines logischen NICHT-Signals bezeichnet, 2613 eine Einrichtung zum Herstellen einer Korrekturzahl bezeichnet, 2614 eine Einrichtung zum Herstellen eines Korrektursignals bezeichnet, Bezugszeichen 2621 bis 2624 eine Einrichtung zum Erzeugen einer teilprodukterzeugenden Schaltung bezeichnen, 2651 und 2652 Einrichtungen zum Erzeugen einer logischen NICHT-Schaltung bezeichnen, 2661 bis 2663 Einrichtungen zum Erzeugen eines Teilprodukt-Additionsbaums bezeichnen, ein Bezugszeichen 2671 eine Einrichtung zum Erzeugen einer Signalverbindungsschaltung bezeichnet, Bezugszeichen 2681 bis 2685 Einrichtung zum Erzeugen einer Endsummenschaltung bezeichnen, und ein Bezugszeichen 2690 eine Einrichtung zum Löschen eines Multiplikators (Schaltungs-Löscheinrichtung) bezeichnet.
  • Die Eingabeeinrichtung 2600 liest Schaltungsinformationen über den Multiplikator 191, 221 oder 241 von 24, 46 oder 27, welcher das ursprüngliche Funktionselement ist, aus der Schaltungsdaten-Speichereinheit 23 von 2 und gibt Informationen, die angeben, dass eine Eingabe in den Multiplikator 191, 221 oder 241 der m-Bit-Multiplikationsfaktor Y oder A ist, an die Feststellungseinrichtung 2601 und die Multiplikator-Löscheinrichtung (Schaltungs-Löscheinrichtung) 2690 aus, während Informationen, die angeben, dass die andere Eingabe in den Multiplikator 191, 221 oder 241 der n-Bit-Multiplikand X ist, an die Einrichtungen zum Erzeugen der teilprodukterzeugenden Schaltung 2621 bis 2624, die Einrichtung zum Herstellen des Korrektursignals 2614 und die Multiplikator-Löscheinrichtung (Schaltungs-Löscheinrichtung) 2690 ausgegeben werden. Die Eingabeeinrichtung 2600 gibt auch Informationen, die angeben, dass der Ausgang des Multiplikators 191, 221 oder 241 das L-Bit-Produkt P ist, an die Einrichtungen zum Erzeugen der Endsummenschaltung 2681 bis 2685, die Einrichtung zum Erzeugen der Signalverbindungsschaltung 2671 und die Multiplikator-Löscheinrichtung (Schaltungs-Löscheinrichtung) 2690 aus.
  • Die Feststellungseinrichtung 2601 dient zum Feststellen, ob der Multiplikationsfaktor für den Multiplikator 191, 221 oder 241 die Variable Y oder Konstante A ist oder nicht. Wenn der Multiplikationsfaktor die Variable Y ist, gibt die Feststellungseinrichtung 2601 Informationen über den Multiplikationsfaktor Y an die Einrichtung zum Erzeugen der teilprodukterzeugenden Schaltung 2621 aus. Wenn der Multiplikationsfaktor andererseits die Konstante A ist, gibt die Feststellungseinrichtung 2601 Informationen über den Multiplikationsfaktor A an die Einrichtung zum Teilen des Multiplikationsfaktors 2611 aus.
  • Die Einrichtung zum Teilen des Multiplikationsfaktors 2611 bestimmt zuerst die Konstanten A1 und A2, die in Übereinstimmung mit dem in 13 gezeigten Verfahren A = A1 – A2 erfüllen und posibits(A1) + posibits(A2) minimieren, so dass der Multiplikationsfaktor A in die Konstanten A1 und A2 geteilt wird. Die Einrichtung zum Teilen des Multiplikationsfaktors 2611 gibt dann Informationen über die Konstanten A1 und A2 und über den ursprünglichen Multiplikationsfaktor A an die Feststellungseinrichtung 2602 aus.
  • Die Feststellungseinrichtung 2602 dient zum Feststellen, welches der kleinste Wert von den posibits(A), posibits(A1) + posibits(A2) und negabits(A) + 2, (d.h. m-posibits(A) + 2), ist. Wenn die posibits(A) der kleinste Wert sind, (einschließlich des Falls, in dem die po sibits(A) gleich irgendeinem anderen Vergleichsobjekt sind), gibt die Feststellungseinrichtung 2602 an die Einrichtung zum Erzeugen der teilprodukterzeugenden Schaltung 2621 Informationen über den Multiplikationsfaktor A für den Multiplikator 191 aus. Wenn die posibits(A1) + posibits(A2) der kleinste Wert sind, (einschließlich des Falls, in dem die posibits(A1) + posibits(A2) gleich den negabits(A) + 2 sind), gibt die Feststellungseinrichtung 2602 an die Einrichtung zum Erzeugen der teilprodukterzeugenden Schaltung 2622 Informationen über A1, das durch die Einrichtung zum Teilen des Multiplikationsfaktors 2611 in Bezug auf den Multiplikationsfaktor A bestimmt worden ist, an den Multiplikator 241 aus, und gibt an die Einrichtung zum Erzeugen der teilprodukterzeugenden Schaltung 2623 und die Einrichtung zum Herstellen der Korrekturzahl 2613 Informationen über A2, das ebenfalls von der Einrichtung zum Teilen des Multiplikationsfaktors 2611 in Bezug auf den Multiplikationsfaktor A bestimmt worden ist, an den Multiplikator 241 aus. Wenn nur die negabits(A) + 2 der kleinste Wert sind, gibt die Feststellungseinrichtung 2602 an die Einrichtung zum Herstellen des logischen NICHT-Signals 2612 Informationen über den Multiplikationsfaktors A für den Multiplikator 221 aus.
  • Die Einrichtung zum Herstellen des logischen NICHT-Signals 2612 dient zum Berechnen der Konstanten A0, indem die logische NICHT-Operation in Bezug auf den Multiplikationsfaktor A für den Multiplikator 221 ausgeführt wird. Die Einrichtung zum Herstellen des logischen NICHT-Signals 2612 gibt an die Einrichtung zum Erzeugen der teilprodukterzeugenden Schaltung 2624 Informationen über die Konstante A0 aus.
  • Jede der Einrichtungen zum Erzeugen der teilprodukterzeugenden Schaltung 2621 bis 2624 dient zum: Empfangen von Informationen über den Multiplikanden X für den Multiplikator 191, 221 oder 241 und über irgendeines von Y, A, A1, A2 und A0 und Erzeugen von Schaltungsinformationen über eine teilprodukterzeugende Schaltung, welche das Produkt daraus als Teilprodukte ausgibt; und Eingeben der sich daraus ergebenen Schaltungsinformationen in die Schaltungsdaten-Speichereinheit 23.
  • Insbesondere dient die Einrichtung zum Erzeugen der teilprodukterzeugenden Schaltung 2621 zum Empfangen von Informationen über den Multiplikanden X für den Multiplikator 191 und über den Multiplikationsfaktor Y oder A, zum Erzeugen einer teilprodukterzeugenden Schaltung, welche ihre Teilprodukte P1, ..., PK ausgibt, und zum Eingeben von Informationen über die sich daraus ergebende Schaltung in die Schaltungs daten-Speichereinheit 23. Die Einrichtung zum Erzeugen der teilprodukterzeugenden Schaltung 2621 gibt Informationen über die oben genannten Teilprodukte P1, ..., PK an die Feststellungseinrichtung 2603 aus.
  • Die Einrichtung zum Erzeugen der teilprodukterzeugenden Schaltung 2622 dient zum Empfangen von Informationen über den Multiplikanden X für den Multiplikator 241 und über den oben genannten Multiplikationsfaktor A1, zum Erzeugen einer teilprodukterzeugenden Schaltung, welche ihre Teilprodukte P0, ..., PK – 1 ausgibt, und zum Eingeben von Informationen über die sich daraus ergebende Schaltung in die Schaltungsdaten-Speichereinheit 23. Die Einrichtung zum Erzeugen der teilprodukterzeugenden Schaltung 2622 gibt Informationen über die oben genannten Teilprodukte P0, ..., PK – 1 an die Feststellungseinrichtung 2604 aus.
  • Die Einrichtung zum Erzeugen der teilprodukterzeugenden Schaltung 2623 dient zum Empfangen von Informationen über den Multiplikanden X für den Multiplikator 241 und über den oben genannten Multiplikationsfaktor A2, zum Erzeugen einer teilprodukterzeugenden Schaltung, welche ihre Teilprodukte Q0, ..., QH – 1 ausgibt, und zum Eingeben von Informationen über die sich daraus ergebende Schaltung in die Schaltungsdaten-Speichereinheit 23. Die Einrichtung zum Erzeugen der teilprodukterzeugenden Schaltung 2623 gibt Informationen über die oben genannten Teilprodukte Q0, ..., QH – 1 an die Einrichtung zum Erzeugen der logischen NICHT-Schaltung 2651 aus.
  • Die Einrichtung zum Erzeugen der teilprodukterzeugenden Schaltung 2624 dient zum Empfangen von Informationen über den Multiplikanden X für den Multiplikator 221 und über die logischen NICHT-Konstante A0 des Multiplikationsfaktors A, zum Erzeugen einer teilprodukterzeugenden Schaltung, welche ihre Teilprodukte P0, ..., PK – 1 ausgibt, und zum Eingeben von Informationen über die sich daraus ergebende Schaltung in die Schaltungsdaten-Speichereinheit 23. Die Einrichtung zum Erzeugen der teilprodukterzeugenden Schaltung 2624 gibt Informationen über die oben genannten Teilprodukte P0, ..., PK – 1 an die Einrichtung zum Erzeugen des Teilprodukt-Additionsbaums 2663 aus.
  • Die Einrichtung zum Erzeugen der logischen NICHT-Schaltung 2651 dient zum Empfangen der oben genannten Teilprodukte Q0, ..., QH – 1, zum Erzeugen einer logischen NICHT-Schaltung, welche ihre jeweiligen logischen NICHT-Signale R0, ..., RH – 1 ausgibt und zu ihrem Eingeben in die Schaltungsdaten-Speichereinheit 23. Die Einrichtung zum Erzeugen der logischen NICHT-Schaltung 2651 gibt Informationen über die oben genannten Teilprodukte Q0, ..., QH – 1 an die Feststellungseinrichtung 2604 aus.
  • Die Feststellungseinheit 2603 dient zum Feststellen, ob die Anzahl K der oben genannten Teilprodukte P1, ..., PK 1, 2 oder 3 oder mehr beträgt. Wenn die Anzahl K der oben genannten Teilprodukte 1 ist, gibt die Feststellungseinrichtung 2603 Informationen über das Teilprodukt P1 an die Einrichtung zum Erzeugen der Signalverbindungsschaltung 2671 aus. Wenn die Anzahl K der oben genannten Teilprodukte 2 ist, gibt die Feststellungseinrichtung 2603 Informationen über die Teilprodukte P1 und P2 an die Einrichtung zum Erzeugen der Endsummenschaltung 2681 aus. Wenn die Anzahl K der oben genannten Teilprodukte 3 oder mehr beträgt, gibt die Feststellungseinrichtung 2603 Informationen über die Teilprodukte P1, ..., PK an die Einrichtung zum Erzeugen des Teilprodukt-Additionsbaums 2661 aus.
  • Die Feststellungseinheit 2604 dient zum Feststellen, ob die Summe (K + H) der Anzahl der oben genannten Teilprodukte P0, ..., PK – 1 und die Anzahl der Teilprodukte R0, ..., RH – 1 2, (d.h. K = 1 und H = 1) oder 3 oder mehr beträgt. Wenn die Summe (K + H) Anzahl 2 ist, (d.h. K = 1 und H = 1), gibt die Feststellungseinrichtung 2604 Informationen über die Teilprodukte P0 und R0 an die Einrichtung zum Erzeugen der Endsummenschaltung 2684 aus. Wenn die Summe (K + H) der Anzahl K der oben genannten Teilprodukte 3 oder mehr beträgt, gibt die Feststellungseinrichtung 2604 Informationen über die Teilprodukte P0, ..., PK – 1 und R0, ..., RH – 1 an die Einrichtung zum Erzeugen des Teilprodukt-Additionsbaums 2662 aus.
  • Jede der Einrichtungen zum Erzeugen des Teilprodukt-Additionsbaums 2661 bis 2663 dient zum: Empfangen von Informationen über die Teilprodukte P1, ..., PK, die Teilprodukte P0, ..., PK – 1 und R0, ..., RH – 1 oder die Teilprodukte P0, ..., PK – 1; Addieren der Teilprodukte, die durch die empfangenden Informationen angegeben werden; Erzeugen von Schaltungsinformationen über einen Teilprodukt-Additionsbaum, welcher die Teilsumme und den Teilübertrag (Q1 und Q2 oder Q0 und Q1) ausgibt; und ihrem Eingeben in die Schaltungsdaten-Speichereinheit 23.
  • Insbesondere dient die Einrichtung zum Erzeugen des Teilprodukt-Additionsbaums 2661 zum: Empfangen von Informationen über die Teilprodukte P1, ..., PK; Erzeugen eines Teilprodukt-Additionsbaums, welcher ihre Teilsumme Q1 und den Teilübertrag Q2 ausgibt; und Eingeben der Informationen über den sich daraus ergebenden Additionsbaum in die Schaltungsdaten-Speichereinheit 23. Die Einrichtung zum Erzeugen des Teilprodukt-Additionsbaums 2661 gibt Informationen über die oben genannte Teilsumme Q1 und den Teilübertrag Q2 an die Einrichtung zum Erzeugen der Endsummenschaltung 2682 aus.
  • Die Einrichtung zum Erzeugen des Teilprodukt-Additionsbaums 2662 dient zum: Empfangen von Informationen über die Teilprodukte P0, ..., PK – 1 und R0, ..., RH – 1; Erzeugen eines Teilprodukt-Additionsbaums, welcher ihre Teilsumme Q0 und den Teilübertrag Q1 ausgibt; und Eingeben von Informationen über den sich daraus ergebenden Additionsbaum in die Schaltungsdaten-Speichereinheit 23. Die Einrichtung zum Erzeugen des Teilprodukt-Additionsbaums 2662 gibt Informationen über die oben genannte Teilsumme Q0 und den Teilübertrag Q1 an die Einrichtung zum Erzeugen der Endsummenschaltung 2683 aus.
  • Die Einrichtung zum Erzeugen des Teilprodukt-Additionsbaums 2663 dient zum: Empfangen von Informationen über die Teilprodukte P0, ..., PK – 1; Erzeugen eines Teilprodukt-Additionsbaums, welcher ihre Teilsumme Q0 und den Teilübertrag Q1 ausgibt; und Eingeben von Informationen über den sich daraus ergebenden Additionsbaum in die Schaltungsdaten-Speichereinheit 23. Die Einrichtung zum Erzeugen des Teilprodukt-Additionsbaums 2663 gibt Informationen über die oben genannte Teilsumme Q0 und den Teilübertrag Q1 an die Einrichtung zum Erzeugen der logischen NICHT-Schaltung 2652 aus.
  • Die Einrichtung zum Erzeugen der logischen NICHT-Schaltung 2652 dient zum: Empfangen von Informationen über die Teilsumme Q0 und den Teilübertrag Q1; Erzeugen einer logischen NICHT-Schaltung, welche ihre jeweiligen logischen NICHT-Signale R1 und R2 ausgibt; und Eingeben von Informationen über die sich daraus ergebende Schaltung in die Schaltungsdaten-Speichereinheit 23. Die Einrichtung zum Erzeugen der logischen NICHT-Schaltung 2652 gibt Informationen über die jeweiligen logischen NICHT- Signale R1 und R2 an die Einrichtung zum Erzeugen der Endsummenschaltung 2685 aus.
  • Die Einrichtung zum Herstellen der Korrekturzahl 2613 dient zum Empfangen von Informationen über die oben genannte Konstante A2 und Berechnen von H= posibits(A2) als der Korrekturzahl für die Endsumme. Die Einrichtung zum Herstellen der Korrekturzahl 2613 gibt Informationen über die Korrekturzahl H an die Einrichtung zum Erzeugen der Endsummenschaltung 2683 aus.
  • Die Einrichtung zum Herstellen des Korrektursignals 2614 dient zum Empfangen von Informationen über den Multiplikanden X und die Zahl 2 und Herstellen eines Korrektursignals R3 für die Endsumme, die sich aus den unteren L Bits des Signals zusammensetzt, das durch den zahlenmäßigen Ausdruck X × 2m + 2 angegeben wird, wie in 26 gezeigt. Die Einrichtung zum Herstellen des Korrektursignals 2614 gibt Informationen über das Korrektursignal R3 an die Einrichtung zum Erzeugen der Endsummenschaltung 2685 aus.
  • Jede der Einrichtungen zum Erzeugen der Endsummenschaltung 2681 und 2685 dient zum: Empfangen von Informationen über die Teilprodukte P1 und P2, über die Teilsumme Q1 und den Teilübertrag Q2, über die Teilsumme Q0, den Teilübertrag Q1 und die Korrekturzahl H, über die Teilprodukte P0 und R0 oder über die Signale R1, R2 und R3; Addieren der Gruppe, die durch die empfangenen Informationen angegeben wird; Erzeugen von Schaltungsinformationen über eine Endsummenschaltung, welche die Endsumme als das L-Bit-Produkt P ausgibt, welches der Ausgang des Multiplikators 191, 221 oder 241 ist; und Eingeben der sich daraus ergebenden Schaltungsinformationen in die Schaltungsdaten-Speichereinheit 23.
  • Insbesondere dient die Einrichtung zum Erzeugen der Endsummenschaltung 2681 zum: Empfangen von Informationen über die Teilprodukte P1 und P2 und Informationen, die angeben, dass der Ausgang des Multiplikators 191 das L-Bit-Produkt P ist; Addieren dieser Teilprodukte P1 und P2; Erzeugen von Schaltungsinformationen über eine Endsummenschaltung, welche die Endsumme als das Produkt P von dem Multiplikator 191 ausgibt; und Eingeben der sich daraus ergebenden Schaltungsinformationen in die Schaltungsdaten-Speichereinheit 23.
  • Die Einrichtung zum Erzeugen der Endsummenschaltung 2682 dient zum: Empfangen von Informationen über die oben genannte Teilsumme Q1 und den Teilübertrag Q2 und von Informationen, die angeben, dass der Ausgang des Multiplikators 191 das L-Bit-Produkt P ist; Addieren dieser Teilsumme Q1 und des Teilübertrags Q2; Erzeugen von Schaltungsinformationen über eine Endsummenschaltung, welche die Endsumme als das Produkt P von dem Multiplikator 191 ausgibt; und Eingeben der sich daraus ergebenden Schaltungsinformationen in die Schaltungsdaten-Speichereinheit 23.
  • Die Einrichtung zum Erzeugen der Endsummenschaltung 2683 dient zum: Empfangen von Informationen über die oben genannte Teilsumme Q0, den Teilübertrag Q1 und die Korrekturzahl H und von Informationen, die angeben, dass der Ausgang des Multiplikators 241 das L-Bit-Produkt P ist; Addieren dieser Teilsumme Q0, des Teilübertrags Q1 und der Korrekturzahl H; Erzeugen von Schaltungsinformationen über eine Endsummenschaltung, welche die Endsumme als das Produkt P von dem Multiplikator 241 ausgibt; und Eingeben der sich daraus ergebenden Schaltungsinformationen in die Schaltungsdaten-Speichereinheit 23.
  • Die Einrichtung zum Erzeugen der Endsummenschaltung 2684 dient zum: Empfangen von Informationen über die oben genannten Teilprodukte P0 und R0 und von Informationen, die angeben, dass der Ausgang des Multiplikators 241 das L-Bit-Produkt P ist; Addieren dieser Teilprodukte P0 und R0; Erzeugen von Schaltungsinformationen über eine Endsummenschaltung, welche die Endsumme als das Produkt P von dem Multiplikator 241 ausgibt; und Eingeben der sich daraus ergebenden Schaltungsinformationen in die Schaltungsdaten-Speichereinheit 23.
  • Die Einrichtung zum Erzeugen der Endsummenschaltung 2685 dient zum: Empfangen von Informationen über die logischen NICHT-Signale R1 und R2 und das Korrektursignal R3 und von Informationen, die angeben, dass der Ausgang des Multiplikators 221 das L-Bit-Produkt P ist; Addieren dieser logischen NICHT-Signale R1, R2 und des Korrektursignals R3; Erzeugen von Schaltungsinformationen über eine Endsummenschaltung, welche die Endsumme als das Produkt P des Multiplikators 221 ausgibt; und Eingeben der sich daraus ergebenden Schaltungsinformationen in die Schaltungsdaten-Speichereinheit 23.
  • Die Einrichtung zum Erzeugen der Signalverbindungsschaltung 2671 dient zum: Empfangen von Informationen über das Teilprodukt P1 und von Informationen, die angeben, dass der Ausgang des Multiplikators 191 das L-Bit-Produkt P ist und das Signal P1 mit dem Signal P verbindet; Erzeugen von Schaltungsinformationen über eine Signalverbindungsschaltung; und Eingeben der sich daraus ergebenden Schaltungsinformationen in die Schaltungsdaten-Speichereinheit 23.
  • Die Multiplikator-Löscheinrichtung (Schaltungs-LÖscheinrichtung) 2690 dient zum: Empfangen von Informationen, die angeben, dass die Eingänge in den Multiplikator 191, 221 oder 241 der m-Bit-Multiplikationsfaktor Y oder A und der n-Bit-Multiplikand X sind, und von Informationen, die angeben, dass der Ausgang des Multiplikators 191, 221 oder 241 das L-Bit-Produkt P ist; und Löschen der Schaltungsinformationen über den Multiplikator 191, 221 oder 241 aus der Schaltungsdaten-Speichereinheit 23.
  • Obwohl das in 15 gezeigte Beispiel zweckmäßigerweise die Einrichtungen zum Erzeugen der teilprodukterzeugenden Schaltung 2621 bis 2624, die Einrichtungen zum Erzeugen des Teilprodukt-Additionsbaums 2661 bis 2663, die Einrichtungen zum Erzeugen der logischen NICHT-Schaltung 2651 und 2652 und die Einrichtungen zum Erzeugen der Endsummenschaltung 2681 bis 2685 als verschiedene Einrichtungen beschrieben hat, welche die gleiche Funktion aufweisen, ist es auch möglich, einen Teil oder alle der Einrichtungen zum Erzeugen der teilprodukterzeugenden Schaltung 2621 bis 2624, der Einrichtungen zum Erzeugen des Teilprodukt-Additionsbaums 2661 bis 2663, der Einrichtungen zum Erzeugen der logischen NICHT-Schaltung 2651 und 2652 und der Einrichtungen zum Erzeugen der Endsummenschaltung 2681 bis 2685 durch die gleichen Einrichtungen zu implementieren.
  • Obwohl das in 15 gezeigte Beispiel den Ausgang H der Einrichtung zum Herstellen der Korrekturzahl 2613 als den Eingang zur Einrichtung zum Erzeugen der Endsummenschaltung 2683 verwendet hat, ist es auch möglich, insbesondere in dem Fall, in dem H 3 oder mehr beträgt, den Ausgang H der Einrichtung zum Erzeugen der Korrekturzahl 2613 als eine Korrekturzahl zu dem Eingang der Einrichtung zum Erzeugen des Teilprodukt-Additionsbaums zu addieren.
  • In dem Fall, in dem ein Multiplikator zum Multiplizieren des variablen Multiplikanden mit dem variablen Multiplikationsfaktor verwendet wird, (d.h. in dem Fall, in dem der Multiplikationsfaktor die Variable Y ist), ist die teilprodukterzeugende Schaltung, die erzeugt werden soll, nicht auf die Einrichtung zum Erzeugen der teilprodukterzeugenden Schaltung 2621 beschränkt, wie oben beschrieben. Es ist auch möglich, stattdessen eine Schaltung unter Verwendung des 2-Bit-Booth-Recoding-Systems zu erzeugen.
  • (Vierte Ausführungsform)
  • Im Folgenden wird ein Multiplikator gemäß einer vierten Ausführungsform der vorliegenden Erfindung beschrieben.
  • Der Multiplikator der vierten Ausführungsform wird in Übereinstimmung mit der Umwandlungsregel 7 von 26 und mit der Umwandlungsregel 8 von 27 erzeugt. Obwohl die vorliegende Ausführungsform den Fall zeigt, in dem die Variable X zum Zweck der Vereinfachung der Beschreibung eine positive Zahl ist, kann, wenn die Variable X entweder eine positive Zahl oder eine negative Zahl sein kann, eine Vorzeichenerweiterung durchgeführt werden, bevor die logische NICHT-Operation durchgeführt wird, oder die logische NICHT-Operation kann vor der Durchführung einer Vorzeichenerweiterung durchgeführt werden.
  • In 26 und 27 setzt sich jede der teilprodukterzeugenden Schaltungen 222, 242, 243, 248 und 249 aus einer Schiebeschaltung für den Multiplikanden X zusammen, der einem Bit mit dem Wert 1 in den Konstanten A1 und A2 entspricht. Die Gates 220, 224, 225, 244, 245 und 250 sind Inverter. Jeder der Teilproduktaddierer 223 und 246 besteht aus Übertragsspeicheraddierern, die in einer Baumstruktur angeordnet sind. Ein Addierer 226 setzt sich aus einem Übertragsspeicheraddierer zum Addieren von Korrekturausdrücken zusammen. Jede der Endsummenschaltungen 227, 247 und 240 ist ein Übertragsvorgriffsspeicher, der Korrekturausdrücke unter Verwendung des Übertragseingangs addiert.
  • Wie oben beschrieben, können Berechnungen für das Produkt P durch Korrektur in verschiedener Weise modifiziert werden.
  • In jedem der oben genannten Multiplikatoren wird die Konstante A0 durch Invertieren aller Bits in dem Multiplikationsfaktor A durch die logische NICHT-Operation erhalten, oder die Konstanten A1 und A2, die A = A1 – A2 erfüllen, werden erhalten, so dass der Multiplikand X mit der erhaltenen Konstanten multipliziert wird. Als Ergebnis dessen, auch wenn die Anzahl aller Bits in dem Multiplikationsfaktor A größer als m/2 ist, ist es möglich, die Anzahl der Teilprodukte bei m/s oder weniger beizubehalten, wodurch Schaltungsfläche reduziert und die Multiplikationsgeschwindigkeit erhöht wird.
  • In jeder der vorgenannten ersten bis vierten Ausführungsform sind die Schaltungsinformationen, die in der Schaltungsinformationen-Speichereinheit 23 gespeichert sind, in Informationendarstellungen beschrieben worden, die Schaltungen in Form von Funktionselementen, logischen Elementen und montierten Elementen darstellen, und insbesondere in Form von Eingängen und Ausgängen in und aus diesen Elementen. Die vorliegende Erfindung ist jedoch nicht darauf beschränkt, und es ist auch möglich, einen Prozess zum Umwandeln von Schaltungen in Übereinstimmung mit ähnlichen Umwandlungsregeln durchzuführen, auch wenn stattdessen Informationendarstellungen verwendet werden, die auf Beziehungen zwischen den Elementen, nämlich Signalen, basieren.
  • Der Umwandlungsprozess ist auch nicht auf den Prozess zum Umwandeln von Schaltungen in Übereinstimmung mit den vorgenannten Umwandlungsregeln beschränkt. Der Umwandlungsprozess kann ein Prozess zum aufeinander folgenden Erzeugen und Eingeben von Teilen von Schaltungsdaten in einer spezifizierten Reihenfolge sein.
  • Die vorgenannten Ausführungsformen haben nur den Fall beschrieben, in dem das Produkt P des m-Bit-Multiplikationsfaktors und des n-Bit-Multiplikanden allgemein eine vorgegebene Bitbreite L aufweist. Wenn die Bitbreite L des Produkts P kleiner als (n + m) ist, werden die niedrigerwertigen L Bits des Multiplikationsergebnisses als das Produkt P verwendet. Wenn im Gegensatz dazu die Bitbreite L des Produkts P größer als (n + m) ist, wird das Multiplikationsergebnis mit der Bitbreite (n + m) als die niedrigerwertigen L Bits verwendet, während die höherwertigen Bits einer Vorzeichenerweiterung oder 0-Erweiterung unterzogen werden, um so das Produkt P bereitzustellen.

Claims (34)

  1. Verfahren zum automatischen Entwerfen einer logischen Schaltung zum Erzeugen von Informationen über die logische Schaltung zum Berechnen des Produktes eines Multiplikationsfaktors A und eines Multiplikanten X, das die folgenden Schritte umfasst: (a) Bestimmen (143, 272) von zwei Konstanten A1 und A2 so, dass die Differenz (A1 – A2) zwischen den Konstanten A1 und A2 dem Multiplikationsfaktor A gleich ist und die Gesamtzahl von Bits mit dem Wert von 1 in den Konstanten A1 und A2 kleiner ist als die Zahl von Bits mit dem Wert 1 in dem Multiplikationsfaktor A; (b) Erzeugen (231, 273) von Informationen über eine erste Teilprodukt-Erzeugungsschaltung zum Empfangen der Konstante A1 und des Multiplikanten X sowie zum Ausgeben ihrer Teilprodukte; (c) Erzeugen (212, 232, 275) von Informationen über eine zweite Teilprodukt-Erzeugungsschaltung zum Empfangen der Konstante A2 und des Multiplikanten X sowie zum Ausgeben ihrer Teilprodukte; (d) Erzeugen (214, 233, 276) von Informationen über eine logische NICHT-Schaltung zum Empfangen der Ausgangssignale von der zweiten Teilprodukt-Erzeugungsschaltung und zum Ausgeben der logischen NICHT-Signale derselben; und (e) Erzeugen (216, 234236, 277279) von Informationen über eine Summenschaltung zum Empfangen der Ausgangssignale von der ersten Teilprodukt-Erzeugungsschaltung und der Ausgangssignale von der logischen NICHT-Schaltung, zum Berechnen der Summe derselben und zum Ausgeben der Summe als das Produkt des Multiplikationsfaktors A und des Multiplikanten X.
  2. Verfahren zum automatischen Entwerfen einer logischen Schaltung nach Anspruch 1, wobei Schritt (a) des Weiteren umfasst, dass die zwei Konstanten A1 und A2 so bestimmt werden, dass die Summe der Anzahl der Bits mit dem Wert 1 in der Konstante A1 und der Anzahl der Bits mit dem Wert 1 in der Konstante A2 minimiert wird; und die in Schritt (e) eingesetzte Summenschaltung eine Teilprodukt-Summenschaltung ist.
  3. Verfahren zum automatischen Entwerfen einer logischen Schaltung nach Anspruch 1, wobei der Schritt (e) der folgenden Schritte aufweist: (e-1) Erzeugen von Informationen über eine Teilprodukt-Addierschaltung zum Empfangen der Ausgangssignale von der ersten Teilprodukt-Erzeugungsschaltung sowie der Ausgangssignale von der logischen NICHT-Schaltung und zum Ausgeben der Additionsergebnisse als eine vorgegebene Anzahl von Teilprodukten; und (e-2) Erzeugen von Informationen über eine Endsummen-Schaltung zum Empfangen der Ausgangssignale von der Teilprodukt-Addierschaltung und eines Korrektursignals, zum Berechnen der Summe derselben und zum Ausgeben der Summe als das Produkt des Multiplikationsfaktors A und des Multiplikanten X.
  4. Verfahren zum automatischen Entwerfen einer logischen Schaltung nach Anspruch 3, wobei Schritt (a) des Weiteren umfasst, das die zwei Konstanten A1 und A2 so bestimmt werden, dass die Summe der Anzahl der Bits mit dem Wert 1 in der Konstante A1 und der Anzahl der Bits mit dem Wert 1 in der Konstante A2 minimiert wird.
  5. Verfahren zum automatischen Entwerfen einer logischen Schaltung nach Anspruch 1, wobei der Schritt (e) die folgenden Schritte aufweist: (e-1) in Bezug auf jede Gruppe, die aus n Teilprodukten besteht und die gewonnen werden, indem eine Vielzahl von Teilprodukten gleichmäßig geteilt wird, (e-1-1) Erzeugen von Informationen über eine Addierschaltung zum Empfangen der n Teilprodukte in einer Gruppe von Bedeutung und Ausgeben der Summe der n Teilprodukte als m (< n) Teilprodukte und in Bezug auf alle der Vielzahl von Teilprodukten (e-1-2) nach wiederholtem Ausführen des Schritts (e-1-1) erneutes Einstellen aller Teilprodukte, die die Ausgänge der in dem Schritt (e-1-1) erzeugten Addierschaltung sind, und derjenigen Teilprodukte der Vielzahl von Teilprodukten, die nicht durch die in dem Schritt (e-1-1) erzeugten Addierschaltung empfangen wurden, als die Vielzahl von Teilprodukten, die in dem Schritt (e-1-1) zu verarbeiten sind, wobei die Schritte (e-1-1) und (e-1-2) wiederholt ausgeführt werden, um Informationen über ein Teilprodukt-Addierschaltung zum Ausgeben von m Teilprodukten zu erzeugen; und (e-2) Erzeugen von Informationen über eine Endsummenschaltung zum Empfangen der Ausgangssignale von der Teilprodukt-Addierschaltung und eines Korrektursignals, zum Berechnen der Summe derselben und zum Ausgeben der Summe als das Produkt des Multiplikationsfaktors A und des Multiplikanten X.
  6. Verfahren zum automatischen Entwerfen einer logischen Schaltung nach Anspruch 5, wobei Schritt (a) des Weiteren umfasst, dass die zwei Konstanten A1 und A2 so bestimmt werden, dass die Summe der Anzahl der Bits mit dem Wert 1 in der Konstante A1 und der Anzahl der Bits mit dem Wert 1 in der Konstante A2 minimiert wird.
  7. Verfahren zum automatischen Entwerfen einer logischen Schaltung nach Anspruch 1, wobei der Schritt (e) die folgenden Schritte aufweist: (e-1) Feststellen, ob die Summe der Anzahl der Bits mit dem Wert 1 in der Konstante A1 und der Anzahl der Bits mit dem Wert 1 in der Konstante A2, einer vorgegebenen Anzahl gleich ist oder größer als diese; (e-2) wenn die Summe der Anzahl der Bits mit dem Wert 1 in der Konstante A1 und der Anzahl der Bits mit dem Wert 1 in der Konstante A2 der vorgegebenen Anzahl gleich ist, Erzeugen von Informationen über eine Endsummenschaltung zum Empfangen der Ausgangssignale von der ersten Teilprodukt-Erzeugungsschaltung, der Ausgangssignale von der logischen NICHT-Schaltung und eines Korrektursignals, zum Berechnen der Summe derselben und zum Ausgeben der Summe als das Produkt des Multiplikationsfaktors A und des Multiplikanten X; und (e-3) wenn die Summe der Anzahl der Bits mit dem Wert 1 in der Konstante A1 und der Anzahl der Bits mit dem Wert 1 in der Konstante A2 größer ist als die vorgegebene Anzahl, (e-3-1) Erzeugen von Informationen über eine Teilprodukt-Addierschaltung zum Empfangen der Ausgangssignale von der ersten Teilprodukt-Erzeugungsschaltung und der Ausgangssignale von der logischen NICHT-Schaltung sowie zum Ausgeben der Additionsergebnisse als die vorgegebene Anzahl von Teilprodukten, und (e-3-2) Erzeugen von Informationen über eine Endsummenschaltung zum Empfangen der Ausgangssignale von der Teilprodukt-Addierschaltung und des Korrektursignals, zum Berechnen der Summe derselben und zum Ausgeben der Summe als das Produkt des Multiplikationsfaktors A und des Multiplikanten X.
  8. Verfahren zum automatischen Entwerfen einer logischen Schaltung nach Anspruch 7, wobei Schritt (a) des Weiteren umfasst, dass die zwei Konstanten A1 und A2 so bestimmt werden, dass die Summe der Anzahl der Bits mit dem Wert 1 in der Konstante A1 und der Anzahl der Bits mit dem Wert 1 in der Konstante A2 minimiert wird.
  9. Verfahren zum automatischen Entwerfen einer logischen Schaltung nach Anspruch 1, wobei der Schritt (e) die folgenden Schritte aufweist: (e-1) Feststellen, ob die Summe der Anzahl der Bits mit dem Wert 1 in der Konstante A1 und der Anzahl der Bits mit dem Wert 1 in der Konstante A2, 1, 2 oder größer als 2 ist; (e-2) wenn die Summe der Anzahl der Bits mit dem Wert 1 in der Konstante A1 und der Anzahl der Bits mit dem Wert 1 in der Konstante A2 1 beträgt, Erzeugen von Informationen über eine Schaltung zum Ausgeben der Ausgangssignale von der ersten Teilprodukt-Erzeugungsschaltung als das Produkt des Multiplikationsfaktors A und des Multiplikanten X; (e-3) wenn die Summe der Anzahl der Bits mit dem Wert 1 in der Konstante A1 und der Anzahl der Bits mit dem Wert 1 in der Konstante A2 2 beträgt, Erzeugen von Informationen über eine Endsummenschaltung zum Empfangen der Ausgangssignale von der ersten Teilprodukt-Erzeugungsschaltung, der Ausgangssignale von der logischen NICHT-Schaltung und eines Korrektursignals, zum Berechnen der Summe derselben sowie zum Ausgeben der Summe als das Produkt des Multiplikationsfaktors A und des Multiplikanten X; und (e-4) wenn die Summe der Anzahl der Bits mit dem Wert 1 in der Konstante A1 und der Anzahl der Bits mit dem Wert 1 in der Konstante A2 größer ist als 2, (e-4-1) Erzeugen von Informationen über eine Teilprodukt-Addierschaltung, die aus Übertragsspeicher-Addierern besteht, die in einer Baumstruktur angeordnet sind, zum Empfangen der Ausgangssignale von der ersten Teilprodukt-Erzeugungsschaltung sowie der Ausgangssignale von der logischen NICHT-Schaltung und Ausgeben der Additionsergebnisse als zwei Teilprodukte, und (e-4-2) Erzeugen von Informationen über eine Endsummenschaltung zum Empfangen der Ausgangssignale von der Teilprodukt-Addierschaltung und eines Korrektursignals, zum Berechnen der Summe derselben und zum Ausgeben der Summe als das Produkt des Multiplikationsfaktors A und des Multiplikanten X.
  10. Verfahren zum automatischen Entwerfen einer logischen Schaltung nach Anspruch 9, wobei Schritt (a) des Weiteren umfasst, dass die zwei Konstanten A1 und A2 so bestimmt werden, dass die Summe der Anzahl der Bits mit dem Wert 1 in der Konstante A1 und der Anzahl der Bits mit dem Wert 1 in der Konstante A2 minimiert wird.
  11. Verfahren zum automatischen Entwerfen einer logischen Schaltung nach Anspruch 1, wobei Schritt (b) umfasst: In Bezug auf jedes Bit der Konstante A1, (b-1) Feststellen, ob der Wert eines Bits von Bedeutung in der Konstante A1 1 ist, (b-2) wenn der Wert des Bits in der Konstante A1 1 ist, Erzeugen von Informationen über eine Schaltung zum Ausgeben eines Signals, das den Multiplikanten X anzeigt, als ein Teilprodukt, und (b-3) nach Ausführen der Schritte (b-1) und (b-2) Erzeugen von Informationen über eine erste Schiebeschaltung zum Verschieben des Signals, das den Multiplikanten X anzeigt, um ein Bit und zum erneuten Setzen des Ausgangssignals von der ersten Schiebeschaltung als das Signal, das den Multiplikanten X anzeigt, der in den Schritten (b-1) und (b-2) zu verwenden ist, wobei die Schritte (b-1) bis (b-3) wiederholt in Bezug auf alle Bits der Konstante A1 ausgeführt werden, um die erste Teilprodukt-Erzeugungsschaltung zu erzeugen; und Schritt (c) umfasst: In Bezug auf jedes Bit der Konstante A2, (c-1) Feststellen, ob der Wert eines Bits von Bedeutung in der Konstante A2 1 ist, (c-2) wenn der Wert des Bits in der Konstante A2 1 ist, Erzeugen von Informationen über eine Schaltung zum Ausgeben des Signals, das den Multiplikanten X anzeigt, als ein Teilprodukt, und (c-3) nach Ausführen der Schritte (c-1) und (c-2) Erzeugen von Informationen über eine zweite Schiebeschaltung zum Verschieben des Signals, das den Multiplikanten X anzeigt, um ein Bit und erneutes Setzen des Ausgangssignals von der zweiten Schiebeschaltung als das Signal, das den Multiplikanten X anzeigt, der in den Schritten (c-1) und (c-2) zu verwenden ist, wobei die Schritte (c-1) bis (c-3) in Bezug auf alle Bits der Konstante A2 wiederholt ausgeführt werden, um die zweite Teilprodukt-Erzeugungsschaltung zu erzeugen.
  12. Verfahren zum automatischen Entwerfen einer logischen Schaltung nach Anspruch 11, wobei Schritt (a) des Weiteren umfasst, dass die zwei Konstanten A1 und A2 so bestimmt werden, dass die Summe der Anzahl der Bits mit dem Wert 1 in der Konstante A1 und der Anzahl der Bits mit dem Wert 1 in der Konstante A2 minimiert wird.
  13. Verfahren zum automatischen Entwerfen einer logischen Schaltung nach Anspruch 1, das des Weiteren die folgenden Schritte umfasst: (f) Feststellen (274), ob die Konstante A1 dem Multiplikationsfaktor A gleich ist oder nicht, und/oder ob A2 0 ist oder nicht; und wobei: wenn die Konstante A1 dem Multiplikationsfaktor A gleich ist oder die Konstante A2 0 ist, die Schritte (b) und (e) ausgeführt werden und die Summenschaltung in dem Schritt (e) die Ausgangssignale von der ersten Teilprodukt-Erzeugungsschaltung empfängt; und wenn die Konstante A1 dem Multiplikationsfaktor A nicht gleich ist und/oder die Konstante A2 nicht 0 ist, die Schritte (b), (c), (d) und (e) ausgeführt werden.
  14. Verfahren zum automatischen Entwerfen einer logischen Schaltung nach Anspruch 13, wobei Schritt (a) des Weiteren umfasst, dass die zwei Konstanten A1 und A2 so bestimmt werden, dass die Summe der Anzahl der Bits mit dem Wert 1 in der Konstante A1 und der Anzahl der Bits mit dem Wert 1 in der Konstante A2 minimiert wird.
  15. Verfahren zum automatischen Entwerfen einer logischen Schaltung nach Anspruch 13, wobei die in Schritt (a) verwendete Konstante A2 die Summe (A21 + A22) von Konstanten A21 und A22 ist; in dem Schritt (f) festgestellt wird, ob die Konstante A1 dem Multiplikationsfaktor A gleich ist oder nicht, oder ob jede der Konstanten A21 und A22 0 ist oder nicht; Eingänge der zweiten Teilprodukt-Erzeugungsschaltung in dem Schritt (c) die Konstante A21, A22 und der Multiplikant X sind; wenn die Konstante A1 dem Multiplikationsfaktor A gleich ist und/oder beide der Konstanten A21 und A22 0 sind, die Schritte (b) und (c) ausgeführt werden und die Summenschaltung in dem Schritt (b) die Ausgangssignale von einer ersten Teilprodukt-Erzeugungsschaltung empfängt; und wenn die Konstante A1 dem Multiplikationsfaktor A nicht gleich ist und/oder jede der Konstanten A21 und A22 nicht 0 ist, die Schritte (b), (c), (d) und (e) ausgeführt werden.
  16. Verfahren zum automatischen Entwerfen einer logischen Schaltung nach Anspruch 15, wobei der Schritt (a) des Weiteren umfasst, dass die drei Konstanten A1, A21 und A22 so bestimmt werden, dass die Summe der Anzahl der Bits mit dem Wert 1 in der Konstante A1, die Anzahl der Bits mit dem Wert 1 in der Konstante A21 und die Anzahl der Bits mit dem Wert 1 in der Konstante A22 minimiert wird.
  17. Verfahren zum automatischen Entwerfen einer logischen Schaltung nach Anspruch 15, wobei in Bezug auf jedes Bit der Konstante A1 der Schritt (b) die folgenden Schritte aufweist: (b-1) Feststellen, ob der Wert des Bits von Bedeutung der Konstante A1 1 ist oder nicht; (b-2) wenn der Wert des Bits in der Konstante A1 1 ist, Erzeugen von Informationen über eine Schaltung zum Ausgeben des Signals, das den Multiplikanten X anzeigt, als ein Teilprodukt; und (b-3) nach Ausführen der Schritte (b-1) und (b-2) Erzeugen von Informationen über eine zweite Schiebeschaltung zum Verschieben des Signals, das den Multiplikanten X anzeigt, um ein Bit und erneutes Setzen des Ausgangssignals von der zweiten Schiebeschaltung als das Signal, das den Multiplikanten X anzeigt, der in den Schritten (b-1) und (b-2) zu verwenden ist, in Bezug auf alle Bits der Konstante A1 die Schritte (b-1) bis (b-3) wiederholt ausgeführt werden, um die erste Teilprodukt-Erzeugungsschaltung zu erzeugen, und in Bezug auf jedes Bit der Konstanten A21 und A22 der Schritt (c) die folgenden Schritte aufweist: (c-1) Feststellen, ob der Wert eines Bits von Bedeutung der Konstanten A21 und A22 1 ist; (C-2) wenn der Wert des Bits in den Konstanten A21 und A22 1 ist, Erzeugen von Informationen über eine Schaltung zum Ausgeben des Signals, das den Multiplikanten X anzeigt, als ein Teilprodukt; (c-3) nach Ausführen der Schritte (c-1) und (c-2) Erzeugen von Informationen über eine dritte Schiebeschaltung zum Verschieben des Signals, das den Multiplikanten X anzeigt, um ein Bit und erneutes Setzen des Ausgangs des Signals von der dritten Schiebeschaltung als das Signal, das den Multiplikanten X anzeigt, der in den Schritten (c-1) und (c-2) zu verwenden ist, in Bezug auf alle Bits der Konstanten A21 und A22 die Schritte (e-1) bis (e-3) wiederholt ausgeführt werden, um die zweite Teilprodukt-Erzeugungsschaltung zu erzeugen.
  18. Verfahren zum automatischen Entwerfen einer logischen Schaltung nach Anspruch 17, wobei der Schritt (a) des Weiteren umfasst, dass die drei Konstanten A1, A21 und A22 so bestimmt werden, dass die Summe der Anzahl der Bits mit dem Wert 1 in der Konstante A1, der Anzahl der Bits mit dem Wert 1 in der Konstante A21 und der Anzahl der Bits mit dem Wert 1 in der Konstante A22 minimiert wird.
  19. Verfahren zum automatischen Entwerfen einer logischen Schaltung nach Anspruch 15, wobei in Bezug auf jede Gruppe, die aus n Teilprodukten besteht und gewonnen wurde, indem eine Vielzahl von zweiten Teilprodukten gleichmäßig geteilt wurde, die aus den Ausgangssignalen von der ersten Teilprodukt-Erzeugungsschaltung, den Ausgangssignalen von der ersten logischen NICHT-Schaltung und dem ersten Korrektursignal zusammengesetzt sind, der Schritt (e) die folgenden Schritte aufweist: (e-1) Erzeugen von Informationen über eine Addierschaltung zum Empfangen der n Teilprodukte in einer Gruppe von Bedeutung und Ausgeben der Summe der n Teilprodukte als m (< n) Teilprodukte; und in Bezug auf alle der Vielzahl erster Teilprodukte (e-2) nach wiederholtem Ausführen des Schritts (e-1) erneutes Setzen aller Teilprodukte, die die Ausgänge der in dem Schritt (e-1) erzeugten Addierschaltung sind, und derjenigen Teilprodukte der Vielzahl zweiter Teilprodukte, die durch die in dem Schritt (e-1) erzeugte Addierschaltung nicht empfangen wurden, als die Vielzahl zweiter Teilprodukte, die in dem Schritt (e-1) zu verarbeiten sind, die Schritte (e-1) und (e-2) wiederholt ausgeführt werden, um Informationen über die zweite Teilprodukt-Summen-Schaltung zu erzeugen.
  20. Verfahren zum automatischen Entwerfen einer logischen Schaltung nach Anspruch 19, wobei der Schritt (a) des Weiteren umfasst, dass die drei Konstanten A1, A21 und A22 so bestimmt werden, dass die Summe der Anzahl der Bits mit dem Wert 1 in der Konstante A1, die Anzahl der Bits mit dem Wert 1 in der Konstante A21 und die Anzahl der Bits mit dem Wert 1 in der Konstante A22 minimiert wird.
  21. Verfahren zum automatischen Entwerfen einer logischen Schaltung nach Anspruch 15, das des Weiteren die folgenden Schritte umfasst: (g) Feststellen, ob die Konstante A21 dem logischen NICHT des Multiplikationsfaktors A gleich ist oder nicht und die Konstante A22 1 ist; und (h) wenn die Konstante A21 dem logischen NICHT des Multiplikators A gleich ist und die Konstante A22 1 ist, (h-1) Erzeugen von Informationen über eine vierte Teilprodukt-Erzeugungsschaltung zum Empfangen der Konstante A21 und des Multiplikanten X und zum Ausgeben ihrer Teilprodukte, (h-2) Erzeugen von Informationen über eine Teilprodukt-Addierschaltung zum Empfangen aller Ausgangssignale von der vierten Teilprodukt-Erzeugungsschaltung sowie eines Signals, das den Multiplikanten X anzeigt, und zum Ausgeben der Additionsergebnisse als Teilprodukte, (h-3) Erzeugen von Informationen über eine zweite logische NICHT-Schaltung zum Empfangen der Ausgangssignale von der Teilprodukt-Addierschaltung und zum Ausgeben der logischen NICHT-Signale derselben, (h-4) Erzeugen eines zweiten Korrektursignals aus dem zweiten Multiplikanten X, und (h-5) Erzeugen von Informationen über eine Endsummenschaltung zum Empfangen des zweiten Korrektursignals und der Ausgangssignale von der zweiten logischen Nicht-Schaltung, Berechnen der Summe derselben und Ausgeben der Summe als das Produkt des Multiplikationsfaktors A und des Multiplikanten X.
  22. Verfahren zum automatischen Entwerfen einer logischen Schaltung nach Anspruch 21, wobei der Schritt (a) des Weiteren umfasst, dass die drei Konstanten A1, A21 und A22 so bestimmt werden, dass die Summe der Anzahl der Bits mit dem Wert 1 in der Konstante A1, der Anzahl der Bits mit dem Wert 1 in der Konstante A21 und der Anzahl der Bits mit dem Wert 1 in der Konstante A22 minimiert wird.
  23. Verfahren zum automatischen Entwerfen einer logischen Schaltung nach Anspruch 21, wobei in Bezug auf jedes Bit der Konstante A1 der Schritt (b) die folgenden Schritte aufweist: (b-1) Feststellen, ob der Wert eines Bits von Bedeutung in der Konstante A1 1 ist; (b-2) wenn der Wert des Bits in der Konstante A1 1 ist, Erzeugen von Informationen über eine Schaltung zum Ausgeben des Signals, das den Multiplikanten X anzeigt, als ein Teilprodukt; und (b-3) nach Ausführen der Schritte (b-1) und (-2) Erzeugen von Informationen über eine zweite Schiebeschaltung zum Verschieben des Signals, das den Multiplikanten X anzeigt, um ein Bit und erneutes Setzen des Ausgangsignals von der zweiten Schiebeschaltung als das Signal, das den Multiplikanten X anzeigt, der in den Schritten (b-1) und (b-2) zu verwenden ist, in Bezug auf alle Bits der Konstante A1, die Schritte (b-1) bis (b-2) wiederholt ausgeführt werden, um die zweite Teilprodukt-Erzeugungsschaltung zu erzeugen; und in Bezug auf jedes Bit der Konstanten A21 und A22 der Schritt (c) die folgenden Schritte aufweist: (c-1) Feststellen, ob der Wert eines Bits von Bedeutung in den Konstanten A21 und A22 1 ist; (c-2) wenn der Wert des Bits in den Konstanten A21 und A22 1 ist, Erzeugen von Informationen über eine Schaltung zum Ausgeben des Signals, das den Multiplikanten X anzeigt, als ein Teilprodukt; (c-3) nach Ausführen der Schritte (c-1) und (c-2) Erzeugen von Informationen über eine dritte Schiebeschaltung zum Verschieben des Signals, das den Multiplikanten X anzeigt, um ein Bit und erneutes Setzen des Ausgangsignals der dritten Schiebeschaltung als das Signal, das den Multiplikanten X anzeigt, der in den Schritten (c-1) und (c-2) zu verwenden ist, in Bezug auf alle Bits der Konstanten A21 und A22 die Schritte (c-1) bis (c-3) wiederholt ausgeführt werden, um die dritte Teilprodukt-Erzeugungsschaltung zu erzeugen, und in Bezug auf jedes Bit der Konstante A21 der Schritt (h-1) die folgenden Schritte aufweist: (h-1-1) Feststellen, ob der Wert eines Bits von Bedeutung in der Konstante A21 1 ist; (h-1-2) wenn der Wert des Bits in der Konstante A21 1 ist, Erzeugen von Informationen über eine Schaltung zum Ausgeben des Signals, das den Multiplikanten X anzeigt, als ein Teilprodukt; und (h-1-3) nach Ausführen der Schritte (h-1-1) und (h-1-2) Erzeugen von Informationen über eine vierte Schiebeschaltung zum Verschieben des Signals, das den Multiplikanten X anzeigt, um ein Bit und erneutes Setzen des Ausgangs der vierten Schiebeschaltung als das Signal, das den Multiplikanten X anzeigt, der in den Schritten (h-1-1) und (h-1-2) zu verwenden ist, in Bezug auf alle Bits der Konstante A21 die Schritte (h-1-1) bis (h-1-3) wiederholt ausgeführt werden, um die vierte Teilprodukt-Erzeugungsschaltung zu erzeugen.
  24. Verfahren zum automatischen Entwerfen einer logischen Schaltung nach Anspruch 23, wobei der Schritt (a) des Weiteren umfasst, dass die drei Konstanten A1, A21 und A22 so bestimmt werden, dass die Summe der Anzahl der Bits mit dem Wert 1 in der Konstante A1, der Anzahl der Bits mit dem Wert 1 in der Konstante A21 und der Anzahl der Bits mit dem Wert 1 in der Konstante A22 minimiert wird.
  25. Verfahren zum automatischen Entwerfen einer logischen Schaltung nach Anspruch 21, wobei: in Bezug auf jede Gruppe, die aus n Teilprodukten besteht und gewonnen wurde, indem eine Vielzahl zweiter Teilprodukte gleichmäßig geteilt wurde, die aus den Ausgangssignalen von der ersten Teilprodukt-Erzeugungsschaltung, den Ausgangssignalen von der ersten logischen NICHT-Schaltung und dem ersten Korrektursignal zusammengesetzt sind, der Schritt (e) die folgenden Schritte aufweist: (e-1) Erzeugen von Informationen über eine Addierschaltung zum Empfangen der n Teilprodukte in einer Gruppe von Bedeutung und zum Ausgeben der Summe der n Teilprodukte als m (< n) Teilprodukte; und in Bezug auf alle der Vielzahl zweiter Teilprodukte, (e-2) nach wiederholtem Ausführen des Schritts (e-1) erneutes Setzen aller Teilprodukte, die die Ausgänge der in dem Schritt (e-1) erzeugten Addierschaltung sind, und derjenigen Teilprodukte der Vielzahl zweiter Teilprodukte, die durch die in dem Schritt (e-1) erzeugte Addierschaltung nicht empfangen wurden, als die Vielzahl zweiter Teilprodukte, die in dem Schritt (e-1) zu verarbeiten sind, die Schritte (e-1) und (e-2) wiederholt ausgeführt werden, um Informationen über die zweite Teilprodukt-Summenschaltung zu erzeugen, und in Bezug auf jede Gruppe, die aus n Teilprodukten besteht und ermittelt wurde, indem eine Vielzahl dritter Teilprodukte gleichmäßig geteilt wurde, die aus den Ausgangssignalen von der vierten Teilprodukt-Erzeugungsschaltung und dem Signal, das den Multiplikanten X anzeigt, zusammengesetzt sind, der Schritt (h-2) die folgenden Schritte aufweist: (h-2-1) Erzeugen von Informationen über eine Addierschaltung zum Empfangen der n Teilprodukte in einer Gruppe von Bedeutung und zum Ausgeben der Summe der n Teilprodukte als m (< n) Teilprodukte; und in Bezug auf alle der Vielzahl dritter Teilprodukte, (h-2-2) nach wiederholtem Ausführen der Schritte (h-2-1) erneutes Setzen aller Teilprodukte, die die Ausgänge der in dem Schritt (h-2-1) erzeugten Addierschaltungen sind, und derjenigen Teilprodukte der Vielzahl dritter Teilprodukte, die durch die in dem Schritt (h-2-1) erzeugte Addierschaltung nicht empfangen wurden, als die Vielzahl dritter Teilprodukte, die in dem Schritt (h-2-1) zu verarbeiten sind, die Schritte (h-2-1) und (h-2-2) wiederholt ausgeführt werden, um Informationen über die Teilprodukt-Addierschaltung zu erzeugen.
  26. Verfahren zum automatischen Entwerfen einer logischen Schaltung nach Anspruch 25, wobei der Schritt (a) des Weiteren umfasst, dass die drei Konstanten A1, A21 und A22 so bestimmt werden, dass die Summe der Anzahl der Bits mit dem Wert 1 in der Konstante A1, die Anzahl der Bits mit dem Wert 1 in der Konstante A21 und die Anzahl der Bits mit dem Wert 1 in der Konstante A22 minimiert wird.
  27. Verfahren zum automatischen Entwerfen einer logischen Schaltung nach Anspruch 1, das des Weiteren die folgenden Schritte umfasst: (f) Feststellen (144), welche von der Anzahl der Bits mit dem Wert 1 in dem Multiplikationsfaktor A und der Summe der Anzahl der Bits mit dem Wert 1 in den Konstanten A1 und A2 die kleinere ist; (g) Erzeugen (151) von Informationen über eine dritte Teilprodukt-Erzeugungsschaltung zum Empfangen des Multiplikationsfaktors A und des Multiplikanten X und zum Ausgeben der Produkte der einzelnen Bits in dem Multiplikationsfaktor A und des Multiplikanten X als Teilprodukte, und (h) Erzeugen (153154) von Informationen über eine erste Teilprodukt-Summen-Schaltung zum Empfangen aller Ausgangssignale von der dritten Teilprodukt-Erzeugungsschaltung, zum Berechnen der Summe derselben sowie zum Ausgeben der Summe als das Produkt des Multiplikationsfaktors A und des Multiplikanten X; und wobei wenn die Anzahl der Bits mit dem Wert 1 in dem Multiplikationsfaktor A die kleinere ist, die Schritte (g) und (h) ausgeführt werden; wenn die Summe der Anzahl der Bits mit dem Wert 1 in der Konstante A1 und A2 kleiner ist, die Schritte (b), (c), (d) und (e) ausgeführt werden; und die in dem Schritt (e) verwendete Schaltung eine zweite Teilprodukt-Summenschaltung ist.
  28. Verfahren zum automatischen Entwerfen einer logischen Schaltung nach Anspruch 1, das des Weiteren die folgenden Schritte umfasst: (f) Feststellen (144, 145, 147), welche von der Anzahl der Bits mit dem Wert 1 in dem Multiplikationsfaktor A, der Summe der Anzahl der Bits mit dem Wert 1 in dem Konstanten A1 und A2 und der Summe der Anzahl der Bits mit dem Wert 0 in dem Multiplikationsfaktor A und 2 die kleinste ist; (g) Erzeugen (151) von Informationen über eine dritte Teilprodukt-Erzeugungsschaltung zum Empfangen des Multiplikationsfaktors A sowie des Multiplikanten X und zum Ausgeben der Produkte der einzelnen Bits in dem Multiplikationsfaktor A sowie dem Multiplikanten X als Teilprodukte; (h) Erzeugen (153154) von Informationen über eine erste Teilprodukt-Summenschaltung zum Empfangen aller Ausgangssignale von der dritten Teilprodukt-Erzeugungsschaltung, zum Berechnen der Summe derselben und zum Ausgeben der Summe als das Produkt des Multiplikationsfaktors A und des Multiplikanten X; (i) aus dem Muitiplikator A Herstellen (211) des logischen NICHT-Signals desselben; (j) Erzeugen (212) von Informationen über eine vierte Teilprodukt-Erzeugungsschaltung zum Empfangen des logischen NICHT-Signals des Multiplikationsfaktors A sowie des Multiplikanten X und zum Ausgeben der Produkte der einzelnen Bits in dem logischen NICHT-Signal des Multiplikationsfaktors A sowie des Multiplikanten X als Teilprodukte; (k) Erzeugen (213) von Informationen über eine Teilprodukt-Addierschaltung zum Empfangen aller Ausgangssignale von der vierten Teilprodukt-Erzeugungsschaltung sowie eines Signals, das den Multiplikanten X anzeigt, und zum Ausgeben der Additionsergebnisse als Teilprodukte; (l) Erzeugen (214) von Informationen über eine zweite logische NICHT-Schaltung zum Empfangen der Ausgangssignale von der Teilprodukt- Addierschaltung und zum Ausgeben der logischen NICHT-Signale derselben; (m) Herstellen (215) eines zweiten Korrektursignals aus dem Multiplikanten X; (n) Erzeugen (216) von Informationen über eine Endsummenschaltung zum Empfangen des zweiten Korrektursignals und der Ausgangssignale von der zweiten logischen NICHT-Schaltung, zum Berechnen der Summe derselben sowie zum Ausgeben der Summe als das Produkt des Multiplikationsfaktors A und des Multiplikanten X und wobei die in dem Schritt (e) verwendete Summenschaltung eine zweite Teilprodukt-Summenschaltung ist; wenn die Anzahl der Bits mit dem Wert 1 in dem Multiplikationsfaktor A die kleinste ist, die Schritte (g) und (h) ausgeführt werden; wenn die Summe der Anzahl der Bits mit dem Wert 1 in den Konstanten A1 und A2 die kleinste ist, die Schritte (b), (c), (d) und (e) ausgeführt werden; und wenn die Summe der Anzahl der Bits mit dem Wert 0 in dem Multiplikationsfaktor A und 2 die kleinste ist, die Schritte (i), (j), (k), (l), (m) und (n) ausgeführt werden.
  29. Verfahren zum automatischen Entwerfen einer logischen Schaltung nach Anspruch 1, das des Weiteren die folgenden Schritte umfasst: (f) Herstellen (211) des logischen NICHT-Signals des konstanten Multiplikationsfaktors A aus dem Multiplikationsfaktor A; (g) Herstellen (215) eines Korrektursignals aus dem Multiplikanten X; (h) Erzeugen (213) von Informationen über eine Teilprodukt-Addierschaltung zum Empfangen der Ausgangssignale von der zweiten Teil produkt-Erzeugungsschaltung sowie eines Signals, das den Multiplikanten X anzeigt, und zum Ausgeben der Additionsergebnisse als Teilprodukte; und wobei die in dem Schritt (c) verwendete Konstante A2 das logische NICHT-Signal des konstanten Multiplikationsfaktors A ist, die Ausgangssignale von der in dem Schritt (d) verwendeten zweiten Teilprodukt-Erzeugungsschaltung die Ausgangssignale von der Teilprodukt-Addier-Schaltung sind, die in dem Schritt (e) verwendete Summenschaltung eine Endsummenschaltung ist, und die Ausgangssignale von der in dem Schritt (e) verwendeten ersten Teilprodukt-Erzeugungsschaltung ein Korrektursignal sind.
  30. Verfahren zum automatischen Entwerfen einer logischen Schaltung nach Anspruch 29, wobei Schritt (c) umfasst: in Bezug auf jedes Bit des logischen NICHT-Signals des Multiplikationsfaktors A, (c-1) Feststellen, ob der Wert eines Bits von Bedeutung in dem logischen NICHT-Signal des Multiplikationsfaktors A 1 ist; (c-2) wenn der Wert des Bits in dem logischen NICHT-Signal des Multiplikationsfaktors A 1 ist, Erzeugen von Informationen über eine Schaltung zum Ausgeben eines Signals, das den Multiplikanten X anzeigt, als ein Teilprodukt; und (c-3) nach Ausführen der Schritte (c-1) und (c-2) Erzeugen von Informationen über eine Schiebeschaltung zum Verschieben des Signals, das den Multiplikanten X anzeigt, um ein Bit und erneutes Setzen des Aus gangssignals von der Schiebeschaltung als den Multiplikanten X der in den Schritten (c-1) und (c-2) zu verwenden ist; wobei die Schritte (c-1) bis (c-3) wiederholt in Bezug auf alle Bits des logischen NICHT-Signals des Multiplikationsfaktors A ausgeführt werden, um Informationen über eine vierte Teilprodukt-Erzeugungsschaltung zu erzeugen.
  31. Verfahren zum automatischen Entwerfen einer logischen Schaltung nach Anspruch 30, wobei Schritt (h) umfasst: in Bezug auf jede Gruppe, die aus n Eingangssignalen besteht und gewonnen wird, indem eine Vielzahl von Eingangssignalen gleichmäßig geteilt wird, die aus allen Ausgangssignalen von der vierten Teilprodukt-Erzeugungsschaltung und dem Signal, das den Multiplikanten X anzeigt, zusammengesetzt sind, (h-1) Erzeugen von Informationen über eine Addierschaltung zum Empfangen der n Eingangssignale in einer Gruppe von Bedeutung und zum Ausgeben der Summe der n Eingangssignale als m (< n) Signale; und in Bezug auf alle Eingangssignale, (h-2) nach wiederholtem Ausführen des Schritts (h-1) erneutes Setzen aller Ausgangssignale von der in dem Schritt (h-1) erzeugten Addierschaltungen und derjenigen Eingangssignale der Vielzahl von Eingangssignalen, die durch die in dem Schritt (h-1) erzeugten Addierschaltung nicht empfangen wurden, als die Vielzahl von Eingangssignalen, die in dem Schritt (h-1) zu verarbeiten sind, wobei die Schritte (h-1) und (h-2) wiederholt ausgeführt werden, um Informationen über eine Teilprodukt-Addierschaltung zu erzeugen.
  32. Verfahren zum automatischen Entwerfen einer logischen Schaltung, die umfasst: eine Eingabeeinrichtung (11) zum Empfangen verschiedener Informationen; eine Speichereinrichtung (14) zum Speichern der verschiedenen Informationen, die verarbeitet werden; eine Verarbeitungseinrichtung (12) zum Herstellen von Informationen über die logische Schaltung zum Berechnen des Produktes eines Multiplikationsfaktors und des Multiplikanten, die über die Eingabeeinrichtung eingegeben werden; und eine Ausgabeeinrichtung (13) zum Ausgeben der mittels der Verarbeitungseinrichtung hergestellten Informationen über die logische Schaltung, wobei die Verarbeitungseinrichtung so eingerichtet ist, dass sie die Schritte nach einem der Ansprüche 1 bis 31 ausführt.
  33. Vorrichtung zum automatischen Entwerfen einer logischen Schaltung mit der Multiplizierfunktion zum Berechnen des Produktes eines Multiplikationsfaktors und eines Multiplikanten, die Einrichtungen (20062685) zum Durchführen des Verfahrens nach einem der Ansprüche 1 bis 31 umfasst.
  34. Multiplikator zum Ausgeben eines Produktes unter Verwendung eines Multiplikationsfaktors A, wobei der Multiplikator eine logische Schaltung ist, die automatisch entworfen wird, indem das Verfahren nach einem der Ansprüche 1 bis 31 durchgeführt wird.
DE69434806T 1993-09-02 1994-09-02 Verfahren, System und Vorrichtung zum automatischen Entwurf einer Multiplikatorschaltung und durch die Durchführung dieses Verfahrens entworfene Multiplikatorschaltung Expired - Lifetime DE69434806T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP21878093 1993-09-02
JP5218780A JP2972498B2 (ja) 1993-09-02 1993-09-02 論理回路の自動設計方法、そのシステム及びその装置並びに乗算器

Publications (2)

Publication Number Publication Date
DE69434806D1 DE69434806D1 (de) 2006-09-14
DE69434806T2 true DE69434806T2 (de) 2006-12-21

Family

ID=16725265

Family Applications (3)

Application Number Title Priority Date Filing Date
DE69435167T Expired - Lifetime DE69435167D1 (de) 1993-09-02 1994-09-02 Multiplizierer
DE69434806T Expired - Lifetime DE69434806T2 (de) 1993-09-02 1994-09-02 Verfahren, System und Vorrichtung zum automatischen Entwurf einer Multiplikatorschaltung und durch die Durchführung dieses Verfahrens entworfene Multiplikatorschaltung
DE69435179T Expired - Lifetime DE69435179D1 (de) 1993-09-02 1994-09-02 Multiplizierer

Family Applications Before (1)

Application Number Title Priority Date Filing Date
DE69435167T Expired - Lifetime DE69435167D1 (de) 1993-09-02 1994-09-02 Multiplizierer

Family Applications After (1)

Application Number Title Priority Date Filing Date
DE69435179T Expired - Lifetime DE69435179D1 (de) 1993-09-02 1994-09-02 Multiplizierer

Country Status (7)

Country Link
US (1) US5600569A (de)
EP (3) EP0642093B1 (de)
JP (1) JP2972498B2 (de)
KR (1) KR0126626B1 (de)
CN (1) CN1102260C (de)
DE (3) DE69435167D1 (de)
TW (1) TW401557B (de)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10124298A (ja) * 1996-08-26 1998-05-15 Fujitsu Ltd 定数乗算器並びに定数乗算器自動生成方法および装置並びに定数乗算器自動生成プログラムを格納した記憶媒体
US6091892A (en) * 1996-11-13 2000-07-18 Xilinx, Inc. Method for mapping product terms in a complex programmable logic device
US5815422A (en) * 1997-01-24 1998-09-29 Vlsi Technology, Inc. Computer-implemented multiplication with shifting of pattern-product partials
US5841684A (en) * 1997-01-24 1998-11-24 Vlsi Technology, Inc. Method and apparatus for computer implemented constant multiplication with multipliers having repeated patterns including shifting of replicas and patterns having at least two digit positions with non-zero values
JP3701781B2 (ja) * 1997-11-28 2005-10-05 株式会社ルネサステクノロジ 論理回路とその作成方法
US6850631B1 (en) 1998-02-20 2005-02-01 Oki Electric Industry Co., Ltd. Photographing device, iris input device and iris image input method
CA2319888A1 (en) * 2000-09-18 2002-03-18 Ibm Canada Limited-Ibm Canada Limitee Method for generating instruction sequences for integer multiplication
US20030061252A1 (en) * 2001-09-27 2003-03-27 Murphy Charles D. Non-constant reduced-complexity multiplication in signal processing transforms
US20030074383A1 (en) * 2001-10-15 2003-04-17 Murphy Charles Douglas Shared multiplication in signal processing transforms
US20030182342A1 (en) * 2002-03-25 2003-09-25 Murphy Charles Douglas Low-cost multiplication in small DFT butterflies
TW200538919A (en) * 2004-05-21 2005-12-01 Hon Hai Prec Ind Co Ltd System and method for checking split plane of motherboard layout
US8386543B1 (en) * 2006-09-28 2013-02-26 L-3 Communications Corp Reduced memory usage for digital signal processing system and method
CN103605494A (zh) * 2013-10-17 2014-02-26 陕西万达信息工程有限公司 一种平方运算电路
KR101590141B1 (ko) 2014-04-09 2016-02-01 주식회사 세양 원단 표면 코팅용 액상 조성물
US9519459B2 (en) * 2014-06-20 2016-12-13 Wisconsin Alumni Research Foundation High efficiency computer floating point multiplier unit
US9841945B2 (en) * 2014-06-26 2017-12-12 Lattice Semiconductor Corporation Efficient constant multiplier implementation for programmable logic devices
RU185670U1 (ru) * 2018-05-24 2018-12-13 Федеральное государственное бюджетное образовательное учреждение высшего образования "МИРЭА - Российский технологический университет" Цифровой умножитель импульсных потоков на константу
CN112068802B (zh) * 2020-08-14 2022-11-11 清华大学 计数器的设计方法、装置及计数器

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5164844A (de) * 1974-12-03 1976-06-04 Fujitsu Ltd
US4792909A (en) * 1986-04-07 1988-12-20 Xerox Corporation Boolean logic layout generator
DE3619425A1 (de) * 1986-06-10 1987-12-17 Philips Patentverwaltung Digitales filter
JPH0315984A (ja) * 1987-09-25 1991-01-24 Matsushita Electric Ind Co Ltd 機能記述変換方法と論理設計システム
JP2506991B2 (ja) * 1987-09-25 1996-06-12 松下電器産業株式会社 回路変換システムと回路変換方法と反転論理生成方法および論理設計システム
US5146583A (en) * 1987-09-25 1992-09-08 Matsushita Electric Industrial Co., Ltd. Logic design system for creating circuit configuration by generating parse tree from hardware description language and optimizing text level redundancy thereof
JP2682142B2 (ja) * 1989-06-14 1997-11-26 松下電器産業株式会社 乗算装置
FR2656124A1 (fr) * 1989-12-15 1991-06-21 Philips Laboratoires Electro Multiplieur serie programmable.
JPH0540608A (ja) * 1990-03-16 1993-02-19 Internatl Business Mach Corp <Ibm> テーブルルツクアツプ乗算器及びその乗算方法
US5200907A (en) * 1990-04-16 1993-04-06 Tran Dzung J Transmission gate logic design method
US5412591A (en) * 1990-08-09 1995-05-02 Vlsi Technology, Inc. Schematic compiler for a multi-format high speed multiplier
US5313414A (en) * 1992-11-12 1994-05-17 Vlsi Technology, Inc. Canonical signed two's complement constant multiplier compiler
JP2840169B2 (ja) * 1992-12-28 1998-12-24 松下電器産業株式会社 論理回路の自動設計方法およびその装置
JPH06223097A (ja) * 1993-01-22 1994-08-12 Sony Corp 乗算器、積和演算器の回路記述の発生方法
JPH06243194A (ja) * 1993-02-17 1994-09-02 Matsushita Electric Ind Co Ltd 論理回路の自動設計方法およびその装置

Also Published As

Publication number Publication date
DE69435179D1 (de) 2009-02-12
EP1475699A3 (de) 2004-11-17
JP2972498B2 (ja) 1999-11-08
CN1102260C (zh) 2003-02-26
EP0642093B1 (de) 2006-08-02
EP0642093A3 (de) 1996-03-13
CN1106941A (zh) 1995-08-16
DE69434806D1 (de) 2006-09-14
EP1475699B8 (de) 2009-02-18
EP1752870B1 (de) 2008-12-31
EP1475699A2 (de) 2004-11-10
EP1475699B1 (de) 2008-11-12
EP1752870A2 (de) 2007-02-14
KR950009485A (ko) 1995-04-24
EP0642093A2 (de) 1995-03-08
KR0126626B1 (ko) 1998-04-04
US5600569A (en) 1997-02-04
DE69435167D1 (de) 2008-12-24
EP1752870A3 (de) 2007-05-16
JPH0773227A (ja) 1995-03-17
TW401557B (en) 2000-08-11

Similar Documents

Publication Publication Date Title
DE69434806T2 (de) Verfahren, System und Vorrichtung zum automatischen Entwurf einer Multiplikatorschaltung und durch die Durchführung dieses Verfahrens entworfene Multiplikatorschaltung
DE68927121T2 (de) Absolutwertberechnende Schaltung mit einem einzigen Addierer
DE68924477T2 (de) Gleitkommaeinheit mit gleichzeitiger Multiplikation und Addition.
DE3854321T2 (de) Populationszählung in Rechnersystemen.
DE69838877T2 (de) Architektur eines schnellen regulären multiplizierers
DE69821408T2 (de) Multiplikationsverfahren und -vorrichtung
DE69731700T2 (de) Arithmetischer Schaltkreis und arithmetisches Verfahren
DE68923262T2 (de) Zweierkomplementmultiplikation mit einem Vorzeichen-/Grössen-Multiplizierer.
DE102020113922A1 (de) Multipliziererschaltungsanordnung mit reduzierter latenz für sehr grosse zahlen
DE3686681T2 (de) Parallelmultiplizierer.
DE19758079A1 (de) Verfahren und Vorrichtung zur Galoisfeld-Multiplikation
DE102019120838A1 (de) Dynamische Gleitkommabereichserweiterung
DE68924386T2 (de) Verfahren und Gerät zur Radix-2**n-Division mit überlappender Quotientenbitauswahl und gleichzeitiger Rundung und Korrektur des Quotienten.
DE4101004C2 (de) Paralleler Multiplizierer mit Sprungfeld und modifiziertem Wallac-Baum
DE3888230T2 (de) Einrichtung und Verfahren zur Durchführung einer Schiebeoperation mit einer Multipliziererschaltung.
DE69025182T2 (de) Digitaler prozessor für zweierkomplementberechnungen
DE4403917A1 (de) Vorrichtung zum Berechnen einer Besetzungszählung
DE19781794C2 (de) Verfahren und Einrichtung zur Division von Gleitkomma- oder ganzen Zahlen
DE10013068C2 (de) Potenzierungsoperationsvorrichtung
DE102007037363B4 (de) Standardzelle für Arithmetiklogikeinheit und Chipkartensteuerung
DE3852576T2 (de) Einrichtung und Verfahren für eine erweiterte Arithmetik-Logik-Einheit zur Beschleunigung der ausgewählten Operationen.
DE4019646C2 (de) Vorrichtung und Verfahren zum Multiplizieren von Datenwörtern in Zweier-Komplement-Darstellung
DE69032391T2 (de) Mehrere Bit umkodierender Multiplizierer
DE69030169T2 (de) Hochleistungsaddierer mit Carry-Vorhersage
EP0605885B1 (de) Verfahren und Gerät zum automatischen Entwurf logischer Schaltung und Multiplikator

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: PANASONIC CORP., KADOMA, OSAKA, JP

8320 Willingness to grant licences declared (paragraph 23)