DE4223999C1 - Digital multiplication circuit using canonically signed digit code - has multiplexer converted and added to two's-complement value to generate reduced partial products that are added - Google Patents

Digital multiplication circuit using canonically signed digit code - has multiplexer converted and added to two's-complement value to generate reduced partial products that are added

Info

Publication number
DE4223999C1
DE4223999C1 DE19924223999 DE4223999A DE4223999C1 DE 4223999 C1 DE4223999 C1 DE 4223999C1 DE 19924223999 DE19924223999 DE 19924223999 DE 4223999 A DE4223999 A DE 4223999A DE 4223999 C1 DE4223999 C1 DE 4223999C1
Authority
DE
Germany
Prior art keywords
csd code
csd
multiplier according
code multiplier
added
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE19924223999
Other languages
German (de)
Inventor
Andreas 3502 Vellmar De Herrfeld
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.)
Individual
Original Assignee
Individual
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 Individual filed Critical Individual
Priority to DE19924223999 priority Critical patent/DE4223999C1/en
Application granted granted Critical
Publication of DE4223999C1 publication Critical patent/DE4223999C1/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • G06F7/533Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even
    • G06F7/5332Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even by skipping over strings of zeroes or ones, e.g. using the Booth Algorithm
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03HIMPEDANCE NETWORKS, e.g. RESONANT CIRCUITS; RESONATORS
    • H03H17/00Networks using digital techniques
    • H03H17/02Frequency selective networks
    • H03H17/0223Computation saving measures; Accelerating measures
    • H03H17/0227Measures concerning the coefficients
    • H03H17/023Measures concerning the coefficients reducing the wordlength, the possible values of coefficients
    • H03H2017/0232Canonical signed digit [CSD] or power of 2 coefficients

Landscapes

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

Abstract

The digital circuit has the multiplier represented in canonically signed digit (CSD) form and the multiplicand in 2's complement form. A particular feature of the CSD code is that each second line of the multiplication structure is zero. This halves the number of additions of partial products necessary to obtain a result. The circuit has a converter (3) for CSD code. The converter output is received by a stage (4) which adds a corrective digit and a partial product stage (2). The sign or most significant bit is handled by a switching stage (6). USE/ADVANTAGE - for multiplication of two binary numbers used with filter, signal processor, microprocessor or correlator. Reduces amount of hardware and delay time.

Description

Stand der TechnikState of the art

Bestehende Konzepte zur Multiplikation von binären Zahlen beruhen auf der Summation partieller Produkte verschiedener Wertigkeiten. Insbesondere sind hier sogenannte "Booth-Multiplizierer" bzw. "modifizierte Booth-Multiplizierer", "Pezaris" und "Baugh und Wooley" Multiplizierer zu nennen. Die Behandlung von vorzeichenbehafteten Dualzahlen geschieht entweder durch die Verwendung von verschiedenen Basis-Addier- bzw. Subtrahierzellen oder durch das Hinzufü­ gen von Korrekturfaktoren (vgl. z. B. Hwang, Kai: Computer Arithmetic, New York; Chichester; Brisbane; Singapore: John Wiley & Sons, 1979). Neuere Veröffentlichungen bauen auf diesen Konzepten auf und erzielen z. B. durch schnelle precarry-Generatoren (vgl. Sinha, B.P.; Srimani, P.K.: Fast parallel algoriths for binary multiplication and their implementation on systolic ar­ chitectures, IEEE, Transactions on Computers, Vol. C-38, 1989, pp. 424-431) hohe Verarbeitungsgeschwindigkeiten. Eine Erweiterung der Booth-Struktur besteht in der Zusammenfassung mehrerer Bits zu einem Block mit anschließen­ der Codewandlung (vgl. Sam, H.; Gupta, A.: A generalized recoding of two's complement binary numbers and its proof with application in multiplier im­ plementations, IEEE, Transactions on Computers, Vol. C-39, No. 8, 1990, pp. 1006-1015).Existing concepts for multiplying binary numbers are based on the Summation of partial products of different values. In particular are here so-called "booth multipliers" or "modified booth multipliers", Call "Pezaris" and "Baugh and Wooley" multipliers. The treatment of signed dual numbers happens either through the use of different basic add or subtract cells or by adding correction factors (see e.g. Hwang, Kai: Computer Arithmetic, New York; Chichester; Brisbane; Singapore: John Wiley & Sons, 1979). Newer Publications build on these concepts and achieve z. B. by fast precarry generators (see Sinha, B.P .; Srimani, P.K .: Almost in parallel algoriths for binary multiplication and their implementation on systolic ar chitectures, IEEE, Transactions on Computers, Vol. C-38, 1989, pp. 424-431) high processing speeds. An extension of the booth structure consists of combining several bits into a block the code conversion (see Sam, H .; Gupta, A .: A generalized recoding of two's complement binary numbers and its proof with application in multiplier im Implementations, IEEE, Transactions on Computers, Vol. C-39, No. 8, 1990, pp. 1006-1015).

Kritik des Standes der TechnikCritique of the state of the art

Die angeführten Konzepte besitzen den Nachteil, daß durch die durchzuführende Codierung bzw. durch das Hinzunehmen von Korrekturtermen zur Durchführung einer vorzeichenbehafteten Multiplikation im 2er-Komplement der Aufwand, gerechnet in Transistoren, über dem von Betrags-Multiplizierern der einfachsten Ausführungsform liegt.The concepts mentioned have the disadvantage that they have to be carried out by the Coding or by adding correction terms for implementation a signed multiplication in 2's complement the effort, calculated in transistors, above that of the simplest amount multipliers Embodiment lies.

Problemproblem

Aufgabe der Erfindung ist es, bekannte digitale Multiplizierer zweier Binärzahlen dergestalt weiterzuentwickeln, daß hiermit eine Verringerung des Hardwareauf­ wands und eine reduzierte Verzögerungszeit im Vergleich zu einem Betrags- Multiplizierer der einfachsten Ausführungsform erzielt wird. Der im Anspruch 1 angegebenen Erfindung liegt der Gedanke zugrunde, die Eigenschaften des CSD-Codes (canonically signed digit) auszunutzen, daß von zwei aufeinanderfolgenden Stellen mindestens eine gleich Null ist. The object of the invention is to provide known digital multipliers of two binary numbers to develop in such a way that this reduces the hardware to wall and a reduced delay time compared to an amount Multiplier of the simplest embodiment is achieved. The one in claim 1 specified invention is based on the idea of the properties of CSD codes (canonically signed digit) that take advantage of two consecutive Make at least one is zero.  

Erzielbare VorteileAchievable advantages

Der erfindungsgemäße CSD-Code Multiplizierer besitzt die Eigenschaft, daß durch die Zusammenfassung zweier partieller Produkte der gleichen Wertigkeit, die durch die Eigenschaft des CSD-Codes nicht beide gleich Eins seien können, die Anzahl der benötigten Addierereingänge für die partiellen Produkte auf etwa die Hälfte gegenüber herkömmlichen Multiplizierern reduziert werden kann. Fig. 2 zeigt an zwei Beispielen, welche Terme zusammengefaßt werden können und somit zu einer reduzierten Anzahl an partiellen Produkten führen. Ferner sind auch die weiteren Operationen zur Erlangung eines korrekten Ergebnisses mit aufgeführt, nämlich die CSD-Code Wandlung und die Behandlung führender Einsen. Der Multiplikand und das Ergebnis werden in Fig. 2a) als vorzeichen­ lose Dualzahl aufgefaßt und in Fig. 2b) als vorzeichenbehaftete 2er-Kom­ plementzahlen. Es sind demnach vorzeichenbehaftete sowie gemischt Vorzeichen- Betrags-Multiplikation und reine Betrags-Multiplikationen möglich. Die CSD- Code-Generierung kann mit Hilfe der Logik in Fig. 3 sehr schnell durchgeführt werden, so daß der CSD-Code Multiplizierer für partielle Multiplikationen einsetzbar ist. Sogenannte "führende Einsen", die bei der 2er-Komplementbil­ dung erzeugt werden, können durch eine in Fig. 4 aufgeführte kombinatorische Logik addiert werden, womit zusätzliche Addierer eingespart werden. Die Ver­ arbeitung negativer Multiplikanten wird mit minimalem Gatteraufwand erreicht. Alle verwendeten Addierer sind Standard-Voll- bzw. Halbaddierer.The CSD code multiplier according to the invention has the property that by combining two partial products of the same value, which due to the property of the CSD code cannot both be equal to one, the number of adder inputs required for the partial products is approximately half conventional multipliers can be reduced. Fig. 2 shows two examples, which terms can be combined, thus leading to a reduced number of partial products. Furthermore, the other operations for obtaining a correct result are also listed, namely the CSD code conversion and the treatment of leading ones. The multiplicand and the result are interpreted in Fig. 2a) as unsigned dual number and in Fig. 2b) as signed 2-complement numbers. Accordingly, signed and mixed sign-amount multiplication and pure amount multiplication are possible. The CSD code generation can be carried out very quickly using the logic in FIG. 3, so that the CSD code multiplier can be used for partial multiplications. So-called "leading ones", which are generated in the 2's complement formation, can be added by a combinatorial logic shown in FIG. 4, which saves additional adders. The processing of negative multiplicants is achieved with minimal gate effort. All adders used are standard full or half adders.

Durch jeweils eine geringe Zusatzlogik können weitere Eigenschaften des CSD- Code Multiplizierers problemlos erreicht werden: integrierte Additionen/Sub­ traktionen, Umschaltmöglichkeit zwischen Betrags- und Vorzeichenmultiplika­ tion, integrierte schaltbare Rundung durch Hinzufügen eines weiteren Additions­ einganges für jede Wertigkeit, auf die die Rundung durchgeführt werden können soll. Die Struktur ist sowohl in direkte parallele als auch in Pipeline-Strukturen umzusetzen. Die Struktur ist sowohl für Festkomma- als auch mit einer Zusatz­ logik für Fließkommamultiplizierer einsetzbar. Der problemlose Einsatz von CLA (carry look ahead) und CSA (carry save adder) Strukturen erlaubt eine weitere Beschleunigung der Multiplikation. Die zu verwendende Wortlänge ist bis zu einem Maximum bei einem ausgeführten Multiplizierer wählbar. Die Längen der Operanden können frei gewählt werden, ergeben jedoch erst ent­ scheidende Vorteile für Wortlängen größer als 12 Bit. Von Vorteil ist weiterhin durch die verringerte Zahl der Addierer eine geringere Leistungsaufnahme bei einer Ausführung in CMOS-Technik.With a little additional logic each further properties of the CSD Code multiplier can be easily achieved: integrated additions / sub tractions, switchover between amount and sign multiplications tion, integrated switchable rounding by adding another addition entry for each value to which the rounding can be carried out should. The structure is in both direct parallel and pipeline structures to implement. The structure is both for fixed point and with an addition logic can be used for floating point multipliers. The trouble-free use of CLA (carry look ahead) and CSA (carry save adder) structures allow one further acceleration of multiplication. The word length to be used is selectable up to a maximum with a multiplier executed. The Lengths of the operands can be chosen freely, but only result in ent Outstanding advantages for word lengths greater than 12 bits. It is still an advantage due to the reduced number of adders, lower power consumption a version in CMOS technology.

Verglichen mit einem vorzeichenlosen Betragsmultiplizierer benötigt ein CSD- Code Multiplizierer in einer 32 mal 32 Bit Ausführung ca. 10% weniger Transi­ storen. Die Gesamtverzögerungszeit verringert sich um etwa 40% bei gleichen Beschleunigungstechniken.Compared to an unsigned amount multiplier, a CSD Code multiplier in a 32 by 32 bit version approx. 10% less transi to disturb. The total delay time is reduced by approximately 40% for the same Acceleration techniques.

Detaillierte Beschreibung der AusführungDetailed description of the execution

Der CSD-Code läßt sich mathematisch aus einer 2er-Komplementzahl folgender­ maßen herleiten (vgl. Reitwiesner, Georg W.: Binary arithmetic, in: Advances in Computers, New York; London: Academic Press, 1960, pp. 232-313):The CSD code can be mathematically derived from a 2's complement number derive dimensions (cf. Reitwiesner, Georg W .: Binary arithmetic, in: Advances in Computers, New York; London: Academic Press, 1960, pp. 232-313):

mit der Bedingungunder the condition

ξiξi-1 = 0, αi≦λτβ (2)ξ i ξ i-1 = 0, αi ≦ λτβ (2)

Der CSD-Code läßt sich aus folgender Rekursion bestimmen:The CSD code can be determined from the following recursion:

Zunächst einmal erfolgt die Initialisierung durchFirst of all, the initialization is carried out by

γb -1 = Xβ -1 = 0 (3)γ b -1 = X β -1 = 0 (3)

Die eigentliche Rekursion, beginnend mit β bis zu α erfolgt durchThe actual recursion, starting with β up to α, takes place through

wobei Xα +1 definiert ist durchwhere X α +1 is defined by

Xα +1 = Xα (5)X α +1 = X α (5)

Im folgenden wird dieser ternäre Code aufgespalten in die zwei Variablen ϕi und ηi, die wie folgt definiert werden:In the following, this ternary code is split into the two variables ϕ i and η i , which are defined as follows:

Negative Werte von ξi werden definiert durchNegative values of ξ i are defined by

Fig. 2 zeigt ein Beispiel für die Multiplikation im CSD-Code. Durch die Eigen­ schaft in Gleichung (2) ergibt sich, daß mindestens jede zweite Zeile in der Multiplikationsstruktur gleich null ist. Dies führt dazu, daß jeweils zwei partielle Produkte gleicher Wertigkeit zusammengefaßt werden können, da nicht beide gleichzeitig eins sein können. Dieses wesentliche Merkmal der Erfindung führt dazu, daß sich die benötigte Transistorzahl und die Verzögerungszeit eines CSD- Code Multiplizierers ab einer bestimmten Wortlänge reduzieren. Fig. 2 shows an example of the multiplication in the CSD code. The property in equation (2) shows that at least every other line in the multiplication structure is zero. This means that two partial products of the same value can be combined, since both cannot be one at the same time. This essential feature of the invention means that the required number of transistors and the delay time of a CSD code multiplier are reduced from a certain word length.

Die Tatsache, daß sich diese Reduzierung erst ab einer bestimmten Wortlänge einstellt, resultiert zum einen aus der Generierung des CSD-Codes und aus einer etwas komplexeren Berechnung eines partiellen Produkts im Vergleich zu einem herkömmlichen Multiplizierer, da zwei Bitstellen zusammengefaßt werden. Ein partielles Produkt wird gebildet durchThe fact that this reduction occurs only after a certain word length setting results on the one hand from the generation of the CSD code and from one somewhat more complex calculation of a partial product compared to one conventional multiplier, since two bit positions are combined. A partial product is formed by

Die Bildung der partiellen Produkte ist in Fig. 1 (2) dargestellt. Dort werden mit den Eingängen ϕi, ηi und mi die partiellen Produkte Ei gebildet.The formation of the partial products is shown in Fig. 1 (2). The partial products E i are formed there with the inputs ϕ i , η i and m i .

Die Generierung des CSD-Codes leitet sich aus der mathematischen Rekursions­ gleichung (3) bis (5) ab. Hierbei wurde aus einer rekursiven Struktur eine parallele Schaltung mit kombinatorischen Elementen erzeugt, die hinsichtlich der Verzögerungszeit optimiert wurde und lediglich mit einer NOR-Gatterverzöge­ rung pro hinzukommender Wertigkeit anwächst. Diese Schaltung ermöglicht den Einsatz des CSD-Code-Prinzips in schnellen parallelen Multiplizierern. Das opti­ mierte Ergebnis ist in Fig. 3 dargestellt.The generation of the CSD code is derived from the mathematical recursion equation (3) to (5). In this case, a parallel circuit with combinatorial elements was generated from a recursive structure, which was optimized with regard to the delay time and only grows with one NOR gate delay per added value. This circuit enables the use of the CSD code principle in fast parallel multipliers. The optimized result is shown in Fig. 3.

Zwei weitere Besonderheiten kennzeichnen den CSD-Code Multiplizierer: Zum einen ist dies die Verarbeitung negativer Multiplikatorbits und zum anderen die Verarbeitung negativer Multiplikanden, d. h., daß im 2er-Komplement das MSB (Most Significant Bit) mMSB gleich 1 ist. Die Verarbeitung negativer Multiplika­ torbits erfolgt dadurch, daß alle Bits des Multiplikanden mi negiert werden, d. h. aber auch alle Stellen bis hin zum MSB des Ergebniswortes (vgl. Fig. 1 (4)), und eine 1 an der Stelle des LSBs addiert wird (vgl. Fig. 1 (5)). Die Inver­ tierung liefert sogenannte "führende Einsen", die korrekt addiert werden müssen (vgl. Fig. 4 und Fig. 1 (4)). Die Regelmäßigkeit dieser führenden Einsen, daß nämlich maximal jede zweite Zeile besetzt sein kann und daß die komplette Zeile oberhalb des MSBs der partiellen Produkte gleich 1 ist (Dreieckstruktur in Fig. 2), kann dazu ausgenutzt werden, eine kombinatorische Logik zu entwerfen, die alle führenden Einsen akkumuliert und die Betragsbits auf das Addiererfeld in Fig. 1 führt. Dieses Problem kann unabhängig von dem Multiplikanden mi gelöst werden. Gleichungsmäßig läßt sich eine Stufe dieser Logik beschreiben durchTwo other special features characterize the CSD code multiplier: On the one hand, this is the processing of negative multiplier bits and, on the other hand, the processing of negative multiplicands, ie that the MSB (Most Significant Bit) m MSB is 1 in 2's complement. The processing of negative multiplier torbits takes place in that all bits of the multiplicand m i are negated, ie but also all digits up to the MSB of the result word (see FIG. 1 (4)), and a 1 is added at the location of the LSB (see Fig. 1 (5)). The inversion provides so-called "leading ones", which must be added correctly (see. Fig. 4 and Fig. 1 (4)). The regularity of these leading ones, namely that a maximum of every second line can be occupied and that the complete line above the MSB of the partial products is 1 (triangular structure in FIG. 2) can be used to design combinatorial logic, all of which leading ones accumulated and the amount bits leading to the adder field in Fig. 1. This problem can be solved independently of the multiplicand m i . One level of this logic can be described equatively by

µα -1 = fa -1 (fα -2 + fα -3 + . . . + fβ) (9)µ α -1 = f a -1 (f α -2 + f α -3 + ... + f β ) (9)

Die zweite Besonderheit, nämlich die Verarbeitung von negativen Multiplikanden (MSB mMSB = 1), hängt eng mit dem eben geschilderten Problem zusammen. Das Problem läßt sich einfach dadurch lösen, daß bei negativem Multiplikanden der Multiplikator invertiert wird (Vertauschung der ϕi und ηi) und von dem Multiplikanden das 2er-Komplement gebildet wird. Diese Operation beinhaltet jedoch die Redundanz, daß die partiellen Produkte durch die doppelte Inver­ tierung keine Veränderung erfahren, so daß diese Operation nicht durchgeführt werden muß. Als einzige Operation zur Verarbeitung negativer Multiplikanden fällt an, die führenden Einsen mit den ϕi zu bilden, statt mit den ηi. Das Um­ schalten kann durch eine simple Logik der FormThe second peculiarity, namely the processing of negative multiplicands (MSB m MSB = 1), is closely related to the problem just described. The problem can be solved simply by inverting the multiplier in the case of a negative multiplicand (swapping the ϕ i and η i ) and forming the 2's complement from the multiplicand. However, this operation includes the redundancy that the partial products are not changed by the double inversion, so that this operation does not have to be carried out. The only operation to process negative multiplicands is to form the leading ones with the ϕ i instead of the η i . The switching can be done by a simple logic of the form

erfolgen (Fig. 4). Die Operation der 1-Addition an der Stelle des LSBs kann weiterhin mit den ηi durchgeführt werden (vgl. Fig. 1 (5)). Eine Unterscheidung zwischen Vorzeichenmultiplikationen und Betragsmultiplikationen kann dadurch erreicht werden, daß mit der Steuervariablen s das MSB des Multiplikanden m durchgeschaltet wird auf das mMSB (Vorzeichenmultiplikation), oder das mMSB = 0 konstant gehalten wird (Betragsmultiplikation).take place ( Fig. 4). The operation of the 1 addition at the location of the LSB can also be carried out with the η i (see FIG. 1 (5)). A distinction between sign multiplication and amount multiplication can be achieved by using the control variable s to switch through the MSB of the multiplicand m to the m MSB (sign multiplication), or to keep m MSB = 0 constant (amount multiplication).

Weitere Ausgestaltungen der ErfindungFurther refinements of the invention

Die vorgestellten Elemente, abgebildet in den Fig. 1, 3, 4 und 5, bilden eine Einheit und bewirken im Zusammenhang die Durchführung paralleler Multiplika­ tionen im CSD-Code. Das Prinzip unterliegt jedoch keinen weiteren Einschrän­ kungen, so daß viele gängige Verbesserungstechniken darauf anzuwenden sind. Im einzelnen sind zu nennen:The elements presented, shown in FIGS. 1, 3, 4 and 5, form a unit and, in conjunction, cause parallel multiplications to be carried out in the CSD code. However, the principle is not subject to any further restrictions, so that many common improvement techniques can be applied to it. The following should be mentioned in detail:

  • - der Multiplizierer ist sowohl parallel oder als pipeline-Struktur auszufüh­ ren,- The multiplier must be executed in parallel or as a pipeline structure ren,
  • - durch eine geringe Zahl an zusätzlichen Addierern lassen sich Additionen bzw. Subtraktionen über die gesamte Ergebniswortbreite mit einbinden unter geringer Zunahme der Gesamtverzögerungszeit,- With a small number of additional adders, additions can be made or include subtractions across the entire range of result words with little increase in total delay time,
  • - fügt man ein Steuersignal hinzu, das das mMSB Umschalten in Gleichung (10) an- bzw. abschaltet, so kann zwischen Vorzeichenmultiplikation und gemischter Vorzeichenbetragsmultiplikation gewählt werden. Wird zusätz­ lich nach Gleichung (5) Xα +1 = 0 gesetzt, sind reine Betragsmultiplikatio­ nen möglich, - If you add a control signal that switches the m MSB switching in equation (10) on or off, you can choose between sign multiplication and mixed sign amount multiplication. If X α +1 = 0 is also set according to equation (5), pure amount multiplications are possible,
  • - soll eine Rundung des Ergebnisses auf die Stelle x des Ergebniswortes durchgeführt werden, so ist für diese Stelle ein weiterer Additionseingang vorzusehen, auf den das Ergebnisbit der Stelle x-1 zu führen ist. Diese Operation läßt sich wiederum schaltbar ausführen,- Is to round the result to the x position of the result word there is another addition input for this point to be provided, to which the result bit of position x-1 is to be led. These Operation can be carried out switchable,
  • - CLA (carry look ahead) und CSA (carry save adder) Strukturen lassen sich auf Grund der Regelmäßigkeit und dem Einsatzes konventioneller Standard-Volladdierer problemlos zur Beschleunigung der Multiplikation einsetzen,- Leave CLA (carry look ahead) and CSA (carry save adder) structures due to the regularity and the use of conventional Standard full adder without problems to accelerate the multiplication deploy,
  • - sollen bei einer festen Struktur verschiedene Längen der Operanden zugelassen werden können, so ist lediglich der Abgriff des MSBs des Multiplikanden wählbar auszuführen,- With a fixed structure, different lengths of the operands should be used can only be authorized, the tap of the MSB is Selectable multiplicands,
  • - ein weiteres Kennzeichen des CSD-Code Multiplizierers ist die geringe mittlere Leistungsaufnahme in CMOS-Technik, die durch die verringerte Anzahl an partiellen Produkten erreicht wird,- Another characteristic of the CSD code multiplier is the low average power consumption in CMOS technology, which is reduced by the Number of partial products is reached,
  • - eine konkrete Berechnung des Produktes aus Verzögerungszeit und Tran­ sistorzahl, normiert auf die quadrierte Wortlänge der Operanden, ergab für einen CSD-Code Multiplizierer mit integrierten Additionen/Subtrak­ tionen eine Proportionalität mit 124 n und für einen Standard-Betrasmulti­ plizierer ohne Additionen/Subtraktionen eine Proportionalität mit 240 n, wobei n die Länge der beiden Operanden ist,- a concrete calculation of the product of delay time and oil sistor number, normalized to the squared word length of the operands, resulted for a CSD code multiplier with integrated additions / subtracts Proportionality with 124 n and for a standard multi multiplier without additions / subtractions a proportionality of 240 n, where n is the length of the two operands,
  • - die Flexibilität läßt den Einsatz in Mikroprozessoren, Signalprozessoren, Korrelatoren, digitalen Filtern u. ä. zu.- The flexibility allows the use in microprocessors, signal processors, Correlators, digital filters and. to.
BeispieleExamples

In Fig. 2a) ist der Modus einer Betragsmultiplikation gewählt. Der Multiplika­ tor links im CSD-Code entspricht dezimal 1 - 4 + 16 = 13. Der Multiplikand m wird als vorzeichenlose Dualzahl interpretiert und hat dezimal den Wert 1 + 2 + 8 = 11. Das Multiplikationsergebnis muß demnach dezimal lauten 13 · 11 = 143. In der Tat erhält man bei der Interpretation des Ergebnisses als vorzeichenlose Dualzahl 1 + 2 + 4 + 8 + 128 = 143. Die eingeklammerte (1) links im Ergebnis­ wort ist ohne Bedeutung. Die führenden Einsen müssen in diesem Modus (Be­ tragsmultiplikation mit mMSB = 0 (Fig. 1 (6)) erzeugt werden, d. h. sie werden immer durch ηi gebildet.The mode of an amount multiplication is selected in FIG. 2a). The multiplier on the left in the CSD code corresponds to decimal 1 - 4 + 16 = 13. The multiplicand m is interpreted as an unsigned dual number and has the value 1 + 2 + 8 = 11. The multiplication result must therefore be decimal 13 · 11 = 143 In fact, when interpreting the result as an unsigned dual number one gets 1 + 2 + 4 + 8 + 128 = 143. The bracketed (1) on the left in the result word has no meaning. The leading ones must be generated in this mode (amount multiplication with m MSB = 0 ( Fig. 1 (6)), ie they are always formed by η i .

In Fig. 2b) ist der Modus einer vorzeichenbehafteten Multiplikation gewählt, bei dem sowohl der Multiplikand m als auch das Ergebnis im 2er-Komplement interpretiert werden. Der Multiplikand im 2er-Komplement hat dezimal den Wert -5. Multipliziert mit dem Multiplikator 13 muß das Ergebnis dezimal 13 · -5 = -65 lauten. Die Interpretation des Ergebniswortes im 2er-Komplement liefert genau diesen Wert. Dadurch, daß das MSB des Multiplikanden m gleich 1 ist (negative Dezimalzahl), wurden die führenden Einsen mit den ϕi erzeugt statt der ηi. Sie treten demnach in der ersten und in der letzten Zeile auf, die jedoch nicht mehr berücksichtigt werden muß. In Fig. 2b) the mode of a signed multiplication is selected, in which both the multiplicand m and the result are interpreted in 2's complement. The multiplicand in 2's complement has the decimal value -5. Multiplied by the multiplier 13, the result must be decimal 13 · -5 = -65. The interpretation of the result word in 2's complement provides exactly this value. Because the MSB of the multiplicand m is 1 (negative decimal number), the leading ones were generated with the ϕ i instead of the η i . They therefore appear in the first and last lines, which, however, no longer have to be taken into account.

In beiden Modi wurde die 1-Addition mit den ηi durchgeführt (vgl. Fig. 1 (5)). Die eingekreisten partiellen Produkte kennzeichnen eine Möglichkeit, jeweils zwei Terme zusammmenzufassen, die nicht beide gleichzeitig eins seien können. Die Pfeile, die von dem Multiplikator im CSD-Code ausgehen, deuten an, daß in beiden Fällen die 1-Addition mit den ηi durchgeführt wird und die führenden Einsen in Fig. 2a) mit den ηi erzeugt und in Fig. 2b) mit den ϕi erzeugt werden.In both modes, the 1 addition was carried out with the η i (see FIG. 1 (5)). The circled partial products indicate a possibility of combining two terms, which cannot both be one at the same time. The arrows emanating from the multiplier in the CSD code indicate that in both cases the 1 addition is carried out with the η i and the leading ones in FIG. 2a) are generated with the η i and in FIG. 2b) are generated with the ϕ i .

Claims (15)

1. Digitaler CSD-Code Multiplizierer zweier Binärzahlen, dargestellt im 2er-Komplement, bei dem die Anzahl der Standard Volladdierer dadurch reduziert ist, daß der Multiplikator im CSD-Code dargestellt wird und sich auf Grund des Null-Wertes jeden zweiten Multiplikatorbits jeweils zwei partielle Produkte benachbarter Wertigkeit zu einem zusammen­ fassen lassen.1. Digital CSD code multiplier of two binary numbers, shown in 2's complement, which results in the number of standard full adders reduced is that the multiplier is shown in the CSD code and due to the zero value every second multiplier bit two partial products of neighboring value combined into one get caught. 2. CSD-Code Multiplizierer nach Anspruch 1, dadurch gekennzeichnet, daß die partiellen Produkte (Fig. 1 (2)) durch schnelle Gatter mit negierten Ausgängen erzeugt werden.2. CSD code multiplier according to claim 1, characterized in that the partial products ( Fig. 1 (2)) are generated by fast gates with negated outputs. 3. CSD-Code Multiplizierer nach Anspruch 1, dadurch gekennzeichnet, daß der benötigte CSD-Code erzeugt (Fig. 1 (3)) werden kann unter Zunahme der Verzögerungszeit pro Wertigkeit um die eines schnellen NOR- Gatters.3. CSD code multiplier according to claim 1, characterized in that the required CSD code generated ( Fig. 1 (3)) can be increased by increasing the delay time per value by that of a fast NOR gate. 4. CSD-Code Multiplizierer nach Anspruch 1, dadurch gekennzeichnet, daß bei der 2er-Komplementbildung des Multiplikanden sogenannte "führende Einsen" entstehen (Fig. 1 (4)), die auf Grund ihrer Regelmäßigkeit mit einer geringen kombinatorischen Logik aufsummiert werden können (Fig. 4).4. CSD code multiplier according to claim 1, characterized in that in the 2's complement formation of the multiplicand so-called "leading ones" arise ( Fig. 1 (4)), which can be added up due to their regularity with a low combinational logic ( Fig. 4). 5. CSD-Code Multiplizierer nach einem der vorhergehenden Ansprüche, ge­ kennzeichnet dadurch, daß bei negativen Multiplikanden, d. h., daß das MSB gleich 1 ist, durch Umschalten von den negativen Bits auf die positiven Bits der CSD-Codes zur Behandlung der führenden Einsen diese ohne jede weitere Schaltungsmaßnahme verarbeitet werden können (Fig. 4).5. CSD code multiplier according to one of the preceding claims, characterized in that in the case of negative multiplicands, ie that the MSB is 1, by switching from the negative bits to the positive bits of the CSD codes for treating the leading ones can be processed without any further circuit measure ( Fig. 4). 6. CSD-Code Multiplizierere nach einem der vorhergehenden Ansprüche, da­ durch gekennzeichnet, daß weder von den beiden zu multiplizierenden Faktoren vor der Verarbeitung noch von dem Ergebniswort nach der Verarbeitung Komplemente gebildet werden müssen.6. CSD code multiplier according to one of the preceding claims, since characterized in that neither of the two to be multiplied Factors before processing still from the result word after the Processing complements must be formed. 7. CSD-Code Multiplizierer nach einem der vorhergehenden Ansprüche, da­ durch gekennzeichnet, daß bekannte Beschleunigungstechniken angewen­ det werden können, wie rein parallele und pipeline-Technik sowie CLA (carry look ahead) und CSA (carry save adder) Strukturen.7. CSD code multiplier according to one of the preceding claims, since characterized in that known acceleration techniques apply Can be detected, such as purely parallel and pipeline technology and CLA (carry look ahead) and CSA (carry save adder) structures. 8. CSD-Code Multiplizierer nach einem der vorhergehenden Ansprüche, da­ durch gekennzeichnet, daß die mittlere Verlustleistung der Schaltung gegenüber herkömmlichen Multiplizierern durch die reduzierte Anzahl an Volladdierern niedriger ist.8. CSD code multiplier according to one of the preceding claims, since characterized in that the average power loss of the circuit compared to conventional multipliers due to the reduced number  Full adders is lower. 9. CSD-Code Multiplizierer nach einem der vorhergehenden Ansprüche, ge­ gekennzeichnet dadurch, daß unter geringer Zunahme der Transistorzahl und der Gesamtverzögerungszeit Additionen und Subtraktionen integriert werden können.9. CSD code multiplier according to one of the preceding claims, ge characterized in that with a small increase in the number of transistors and the total delay time integrates additions and subtractions can be. 10. CSD-Code Multiplizierer nach einem der vorhergehenden Ansprüche, ge­ kennzeichnet dadurch, daß zwischen Betrags-, gemischter Betrags-/Vor­ zeichenmultiplikation und Vorzeichenmultiplikation gewählt werden kann.10. CSD code multiplier according to one of the preceding claims, ge characterized by the fact that between amount, mixed amount / before sign multiplication and sign multiplication can be selected. 11. CSD-Code Multiplizierer nach einem der vorhergehenden Ansprüche, ge­ kennzeichnet dadurch, daß Rundungen durch Hinzufügen eines weiteren Addierereinganges für diese Wertigkeit bei entsprechender Verschaltung durchgeführt werden können.11. CSD code multiplier according to one of the preceding claims, ge indicates that rounding by adding another Addition inputs for this value with appropriate interconnection can be carried out. 12. CSD-Code Multiplizierer nach einem der vorhergehenden Ansprüche, da­ durch gekennzeichnet, daß bei bestehender Struktur die Wortlänge der Faktoren bis zu einem Maximum variiert werden kann.12. CSD code multiplier according to one of the preceding claims, there characterized in that, in the case of an existing structure, the word length of the Factors can be varied to a maximum. 13. CSD-Code Multiplizierer nach einem der vorhergehenden Ansprüche, da­ durch gekennzeichnet, daß die Multiplikatorlänge nicht gleich der Multi­ plikandenlänge sein muß.13. CSD code multiplier according to one of the preceding claims, since characterized in that the multiplier length is not equal to the multi must be plicand length. 14. CSD-Code Multiplizierer nach einem der vorhergehenden Ansprüche, da­ durch gekennzeichnet, daß er z. B. in digitalen Filtern, Signalprozessoren, Mikroprozessoren, Korrelatoren einsetzbar ist.14. CSD code multiplier according to one of the preceding claims, since characterized in that he z. B. in digital filters, signal processors, Microprocessors, correlators can be used. 15. CSD-Code Multiplizierer nach einem der vorhergehenden Ansprüche, da­ durch gekennzeichnet, daß er sowohl als Festkomma- als auch durch Zusatzlogik als Gleitkommamultiplizierer einzusetzen ist.15. CSD code multiplier according to one of the preceding claims, there characterized by the fact that it is both a fixed-point and a Additional logic is to be used as a floating point multiplier.
DE19924223999 1992-07-21 1992-07-21 Digital multiplication circuit using canonically signed digit code - has multiplexer converted and added to two's-complement value to generate reduced partial products that are added Expired - Fee Related DE4223999C1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE19924223999 DE4223999C1 (en) 1992-07-21 1992-07-21 Digital multiplication circuit using canonically signed digit code - has multiplexer converted and added to two's-complement value to generate reduced partial products that are added

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE19924223999 DE4223999C1 (en) 1992-07-21 1992-07-21 Digital multiplication circuit using canonically signed digit code - has multiplexer converted and added to two's-complement value to generate reduced partial products that are added

Publications (1)

Publication Number Publication Date
DE4223999C1 true DE4223999C1 (en) 1993-07-08

Family

ID=6463737

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19924223999 Expired - Fee Related DE4223999C1 (en) 1992-07-21 1992-07-21 Digital multiplication circuit using canonically signed digit code - has multiplexer converted and added to two's-complement value to generate reduced partial products that are added

Country Status (1)

Country Link
DE (1) DE4223999C1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006103601A2 (en) * 2005-03-31 2006-10-05 Nxp B.V. Canonical signed digit multiplier
CN110647307A (en) * 2019-09-24 2020-01-03 上海寒武纪信息科技有限公司 Data processor, method, chip and electronic equipment

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4615016A (en) * 1983-09-30 1986-09-30 Honeywell Information Systems Inc. Apparatus for performing simplified decimal multiplication by stripping leading zeroes
US4748584A (en) * 1984-05-09 1988-05-31 Kabushiki Kaisha Toshiba Parallel multiplier utilizing Booth's algorithm

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4615016A (en) * 1983-09-30 1986-09-30 Honeywell Information Systems Inc. Apparatus for performing simplified decimal multiplication by stripping leading zeroes
US4748584A (en) * 1984-05-09 1988-05-31 Kabushiki Kaisha Toshiba Parallel multiplier utilizing Booth's algorithm

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006103601A2 (en) * 2005-03-31 2006-10-05 Nxp B.V. Canonical signed digit multiplier
WO2006103601A3 (en) * 2005-03-31 2007-01-11 Koninkl Philips Electronics Nv Canonical signed digit multiplier
US8046401B2 (en) 2005-03-31 2011-10-25 Nxp B.V. Canonical signed digit multiplier
CN110647307A (en) * 2019-09-24 2020-01-03 上海寒武纪信息科技有限公司 Data processor, method, chip and electronic equipment
CN110647307B (en) * 2019-09-24 2024-04-09 上海寒武纪信息科技有限公司 Data processor, method, chip and electronic equipment

Similar Documents

Publication Publication Date Title
DE3036747A1 (en) BINARY MULTIPLICATION CELL SWITCHING
EP0453641B1 (en) CORDIC-processor for vector rotation with carry-save architecture
EP0051079B1 (en) Binary mos ripple carry parallel adder/subtractor and appropriate adding/subtracting stage
DE2918692C2 (en) Digital filter
DE19718224A1 (en) Digital neural network processor for consumer goods, games, telecommunications or medical equipment or vehicle
EP0628183B1 (en) Circuit arrangement for the digital multiplying of integer numbers
DE3434777C2 (en)
DE4223999C1 (en) Digital multiplication circuit using canonically signed digit code - has multiplexer converted and added to two's-complement value to generate reduced partial products that are added
EP0249279B1 (en) Digital filter
DE10151129A1 (en) Method and device for calculating a result of an exponentiation
DE3936503A1 (en) Digital fuzzy logic controller - has parallel processing stages to operate on specific parameters for fast operation
DE69821145T2 (en) AREA EFFICIENT MANUFACTURE OF COEFFICIENT ARCHITECTURE FOR BIT SERIAL FIR, IIR FILTERS AND COMBINATORIAL / SEQUENTIAL LOGICAL STRUCTURE WITHOUT LATENCY
EP1248186A2 (en) Carry-ripple adder
DE10106085B4 (en) Method and arrangement for finite field multiplication
EP0825523B1 (en) Method and circuit for multiplying a multiplicand and a multiplier by the Booth-method in iterative steps
DE3700740A1 (en) LINEAR APPROXIMATION CHANGEOVER
DE10050589B4 (en) Apparatus and method for use in performing a floating point multiply-accumulate operation
DE10223853B4 (en) Method and integrated circuit for performing a multiplication modulo M
US4074212A (en) Multisection filter using inflected amplitude change function to sharpen its band-edge responses
WO1995025998A1 (en) Multiplier with reduced run time
KR960014183B1 (en) Power-of-two fir filter
WO1999045462A1 (en) Data bus for signal processors
DE69821144T2 (en) AREA EFFICIENT MANUFACTURE OF COEFFICIENT ARCHITECTURE FOR BIT SERIAL FIR, IIR FILTERS AND COMBINATORIAL / SEQUENTIAL LOGICAL STRUCTURE WITHOUT LATENCY
DE19521092C1 (en) Binary multiplier cell circuit
DE4315898A1 (en) Device for calculating the quotient of two rational numbers

Legal Events

Date Code Title Description
8100 Publication of the examined application without publication of unexamined application
D1 Grant (no unexamined application published) patent law 81
8322 Nonbinding interest in granting licenses declared
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee