JP2007156620A - Multiplier with asynchronous code and its algorithm - Google Patents
Multiplier with asynchronous code and its algorithm Download PDFInfo
- Publication number
- JP2007156620A JP2007156620A JP2005347941A JP2005347941A JP2007156620A JP 2007156620 A JP2007156620 A JP 2007156620A JP 2005347941 A JP2005347941 A JP 2005347941A JP 2005347941 A JP2005347941 A JP 2005347941A JP 2007156620 A JP2007156620 A JP 2007156620A
- Authority
- JP
- Japan
- Prior art keywords
- multiplier
- partial product
- bit
- multiplicand
- ppg
- 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.)
- Pending
Links
Images
Abstract
Description
本発明は乗算器とそのアルゴリズムに関し、特に非同期式符号付き乗算器とそのアルゴリズムに関する。 The present invention relates to a multiplier and its algorithm, and more particularly to an asynchronous signed multiplier and its algorithm.
乗算器は、マイクロプロセッサ、データ信号処理、離散コサイン変換等々といった多くのアプリケーションにおいて重要な役割を果たしている。実際、乗算器は計算チップにおける大部分の演算時間を消費する。従って、乗算器の実行時間はチップの全体効率を決定する。今日まで、同期回路設計における幾つかのアプローチが提供され、非同期回路設計におけるアプローチもある程度提案されている。概して、非同期的方法は同期回路を凌ぐ、低い電力消費、少ない平均計算時間、異なる製造プロセス及び環境への適合可能性、等の幾つかの優位点を有する。特に、これらの優位点は、ある種のVLSI(超大規模集積回路)が遭遇する問題点を解決する上で極めて重要である。 Multipliers play an important role in many applications such as microprocessors, data signal processing, discrete cosine transforms, and so on. In fact, the multiplier consumes most of the computation time in the computing chip. Thus, the execution time of the multiplier determines the overall efficiency of the chip. To date, several approaches in synchronous circuit design have been provided, and some approaches in asynchronous circuit design have also been proposed. In general, asynchronous methods have several advantages over synchronous circuits, such as low power consumption, low average computation time, adaptability to different manufacturing processes and environments, and the like. In particular, these advantages are extremely important in solving the problems encountered by certain types of VLSIs (very large scale integrated circuits).
今日の乗算器のタイプは、右から左(R−L)のアレイ乗算器、左から右(L−R)のアレイ乗算器、区分アレイ乗算器及び多重アレイ乗算器に分けることができる。 Today's types of multipliers can be divided into right-to-left (R-L) array multipliers, left-to-right (L-R) array multipliers, partitioned array multipliers, and multiple array multipliers.
図1A及び図1Bは各々、順次桁上げ式(ripple−carry)のアレイ乗算器100と桁上げ保存式(carry−save)のアレイ乗算器120とを略示したものであり、これらのアレイ乗算器は双方とも8×8の左から右(L−R)のアーキテクチャを有する。図1A及び図1Bを参照すると、L−R乗算器100または120は主として、部分積生成器(PPG)102と、L−R加算器アレイ104と、最終段加算器108とを含む。R−L乗算器とL−R乗算器との相違は、加算器アレイ104及び最終段加算器108にある。R−L加算器アレイでは、合計演算は最下位ビットの部分積(LSBPP)で開始され、次に合計及び桁上げが一段ずつ次の上位ビットへ広がって最終的に最終段加算器で最上位ビットの部分積(MSBPP)が加算される。反対に、L−R加算器アレイでは、合計演算は最上位ビットの部分積(MSBPP)で開始され、結果は一段ずつ次の下位ビットへ広がって最終的に最終段加算器で最下位ビットの部分積(LSBPP)が加算される。
FIG. 1A and FIG. 1B schematically illustrate a carry-
乗数または被乗数何れかの1ビットは0であることは周知であり、対応する部分積は「0」になるはずである。しかしながら従来型の乗算器の場合、「0」ビットに対しても部分積演算はやはり冗長的に実行され、時間を無駄にしている。加えて演算要素に関しては、その一般的なビットの長さがシステムにおける設計されたビット長さより遙かに短い。即ち、高位ビットの値はしばしば「0」であり、これらの0に対する計算は単に多大な時間の無駄である。 It is well known that one bit of either the multiplier or the multiplicand is 0, and the corresponding partial product should be “0”. However, in the case of the conventional type multiplier, the partial product operation is also executed redundantly for “0” bits, and time is wasted. In addition, for arithmetic elements, the general bit length is much shorter than the designed bit length in the system. That is, the value of the high order bit is often “0”, and the computation for these zeros is simply a waste of time.
図2は、乗数及び被乗数のヒット数と有効ビット長さとの関係の統計分布を示すグラフである。図2を参照すると、このグラフは6,746,853個のデータからの統計であり、1つのデータの最大有効ビットは一般に16ビットである。言い替えれば、16ビットを超えるビット値はほぼ全て「0」である。従って、この統計結果は、乗算演算を高速化するかなりの余地があることを立証している。 FIG. 2 is a graph showing a statistical distribution of the relationship between the number of hits of the multiplier and multiplicand and the effective bit length. Referring to FIG. 2, this graph is a statistic from 6,746,853 data, and the maximum valid bit of one data is generally 16 bits. In other words, almost all bit values exceeding 16 bits are “0”. Therefore, this statistical result proves that there is considerable room for speeding up multiplication operations.
上記記述を基礎として、本発明の目的は、より速い乗算演算を有する非同期式符号付き乗算器を提供することにある。 Based on the above description, an object of the present invention is to provide an asynchronous signed multiplier having a faster multiplication operation.
本発明の別の目的は、符号付きデータを計算するための非同期式符号付き乗算のアルゴリズムを提供することにある。 Another object of the present invention is to provide an asynchronous signed multiplication algorithm for calculating signed data.
本発明によって提供される非同期式符号付き乗算器は、乗数及び被乗数に対する符号付きの乗算演算に適し、上記乗数及び被乗数は各々Nビット及びMビットを有する。N及びMはゼロより大きい正の整数であり、乗数、被乗数及び積は全て2の補数である。本発明の非同期式符号付き乗算器は、乗数及び被乗数による部分積結果を生成するために使用されるN個の部分積生成器(PPG)を含み、上記部分積はDiで示され、Diはi番目のPPGにおける、被乗数のあらゆるビット数と乗数のi番目のビット数とのタイミングを合わせることによって得られる部分積を表示する。さらにiは、N以下かつ1以上の整数である。各部分積結果はM個の部分積を含み、部分積生成器からの全出力は演算モジュールへ送られ、下記[数1]の計算が実行される。
上記[数1]の計算から、第1の演算結果が得られる。その後、演算モジュールは第2の演算結果を得るために第1の演算結果にDNを加算する。演算モジュールはさらに先行ゼロビット検出器へ結合され、これは乗数及び被乗数をビット順に、MSB(最上位ビット)からLSB(最下位ビット)へとチェックする。チェックの間、最初の「1」ビットに先行する「0」ビットは何れも空ビットとしてカウントされ、対応する部分積値は「0」で出力される。最初の「1」ビットからLSBまでの全てのビットは、有効ビットと呼ばれる。
The asynchronous signed multiplier provided by the present invention is suitable for a signed multiplication operation on a multiplier and a multiplicand, and the multiplier and multiplicand each have N bits and M bits. N and M are positive integers greater than zero, and the multiplier, multiplicand, and product are all two's complement. The asynchronous signed multiplier of the present invention includes N partial product generators (PPG) that are used to generate partial product results with multipliers and multiplicands, where the partial products are denoted by Di, where Di is In the i-th PPG, the partial product obtained by matching the timing of every bit number of the multiplicand with the i-th bit number of the multiplier is displayed. Further, i is an integer of N or less and 1 or more. Each partial product result includes M partial products, and all outputs from the partial product generator are sent to the arithmetic module, and the following [Equation 1] is calculated.
The first calculation result is obtained from the calculation of [Equation 1]. Thereafter, the calculation module adds DN to the first calculation result to obtain the second calculation result. The arithmetic module is further coupled to a leading zero bit detector, which checks the multiplier and multiplicand in bit order, MSB (most significant bit) to LSB (least significant bit). During the check, any “0” bits preceding the first “1” bit are counted as empty bits, and the corresponding partial product value is output as “0”. All bits from the first “1” bit to the LSB are called valid bits.
本発明の上記実施形態では、非同期式符号付き乗算器はさらに、上述の第2の演算結果を決定するための演算モジュールに結合される完了検出器を含む。 In the above embodiment of the present invention, the asynchronous signed multiplier further includes a completion detector coupled to the arithmetic module for determining the second arithmetic result described above.
一方で本発明は、乗数及び被乗数に対する符号付き乗算演算に適する非同期式符号付き乗算器のためのアルゴリズムを提供し、この場合の乗数及び被乗数は各々Nビット及びMビットを有する。N及びMは、ゼロより大きい正の整数である。乗数または被乗数の最高位ビットは符号ビットである。本発明によれば、複数の第1の部分積値を得るために、被乗数は乗数の各ビット数と逐次i番目のビット数から最初のビット数へタイミングを合わせる。その後、取得した第1の部分積値は合計され、第1の演算結果が得られる。さらに被乗数は、複数の第2の部分積値を得るために乗数のN番目のビット数とタイミングを合わされる。次に第1の演算結果は第2の部分積値によって加算され、第2の演算結果が得られる。乗数及び被乗数における任意の「0」ビットに関しては、「0」ビットに関連する演算が免除され、関連する部分積値は直接「0」に設定される。 On the other hand, the present invention provides an algorithm for an asynchronous signed multiplier suitable for a signed multiplication operation on a multiplier and a multiplicand, where the multiplier and multiplicand have N bits and M bits, respectively. N and M are positive integers greater than zero. The most significant bit of the multiplier or multiplicand is a sign bit. According to the present invention, in order to obtain a plurality of first partial product values, the multiplicand adjusts the timing from the bit number of the multiplier to the first bit number sequentially. Thereafter, the acquired first partial product values are summed to obtain a first calculation result. In addition, the multiplicand is timed with the Nth bit number of the multiplier to obtain a plurality of second partial product values. Next, the first calculation result is added by the second partial product value to obtain a second calculation result. For any “0” bit in the multiplier and multiplicand, the operation associated with the “0” bit is exempted and the associated partial product value is set directly to “0”.
乗数の最上位ビットに関連する部分積値は最終合計の加算を行うための全合計演算の終わりにスケジューリングされることから、本発明は、符号の付いた数に対する演算を実行して計算時間を節約することができる。 Since the partial product value associated with the most significant bits of the multiplier is scheduled at the end of the total sum operation to add the final sum, the present invention performs the operation on the signed number to reduce the computation time. Can be saved.
図3は、5×5の左から右の符号の付いた数の正規乗算演算を示す図である。M1及びM2が被乗数及び乗数を示す図3を参照すると、乗数M2の例えばx4、x3及びx2である上位ビットは「0」であることが想定され、よってこの「0」ビットに関連する部分積値は被乗数M1の値に関わらず「0」になる。常識的に言って、「0」ビットに関連する演算は時間を節約するために免除され、関連の部分積値は直接「0」に設定される。 FIG. 3 is a diagram illustrating 5 × 5 numbered normal multiplication operations with a sign from left to right. Referring to FIG. 3, where M1 and M2 indicate the multiplicand and multiplier, it is assumed that the upper bits of multiplier M2, for example x4, x3 and x2, are "0", and therefore the partial product associated with this "0" bit. The value is “0” regardless of the value of the multiplicand M1. Commonly speaking, operations associated with a “0” bit are exempted to save time, and the associated partial product value is set directly to “0”.
しかしながら被乗数M1及び乗数M2の符号の付いた数の場合、状況は上述のものとは異なり、被乗数M1及び乗数M2の最上位ビットy4及びx4は符号ビットである。図3からは、符号の付いた数に対する乗算演算の場合、被乗数M1及び乗数M2の最上位ビット双方に関連する部分積(y4x4)を除く被乗数M1/乗数M2の一方の最上位ビットに関連する残りの部分積は、破線で囲まれた部分に示すように位相を反転される必要のあることが分かる。故に、もとの「0」部分積は、位相反転の後「1」になる。 However, for the signed numbers of multiplicand M1 and multiplier M2, the situation is different from that described above, and the most significant bits y4 and x4 of multiplicand M1 and multiplier M2 are sign bits. From FIG. 3, in the case of a multiplication operation on a signed number, it relates to one most significant bit of the multiplicand M1 / multiplier M2 excluding the partial product (y4x4) related to both the most significant bit of the multiplicand M1 and the multiplier M2. It can be seen that the remaining partial products need to be inverted in phase as shown in the portion enclosed by the broken line. Therefore, the original “0” partial product becomes “1” after phase inversion.
さらに、通常、有効ビット長さは長くないため、第1の行の部分積値、例えば図3におけるy4x4、(y3x4)’、(y2x4)’、(y1x4)’及び(y0x4)’が「1」になる確率は極めて高く、従って後続の部分値に対する加算演算は次の部分値が「0」であるか否かに関わらず連続して実行されることが分かる。これは、多大な時間を不必要に浪費する。 Furthermore, since the effective bit length is usually not long, the partial product values of the first row, for example, y4x4, (y3x4) ′, (y2x4) ′, (y1x4) ′, and (y0x4) ′ in FIG. It can be seen that the addition operation for the subsequent partial value is executed continuously regardless of whether or not the next partial value is “0”. This wastes a lot of time unnecessarily.
上述の問題点を解決するために、本発明は、例えば図4に示すような5×5のL−R符号付き乗算アルゴリズムを提供する。逆転の発想から、本発明は、図3におけるもとの第1の行の部分積値を最終段に配置替えをして計算する。その結果、図3におけるもとの第2の行の部分積値、即ち(y4x3)’、y3x3、y2x3、y1x3及びy0x3は第1の行へ進められて計算される。この新規再配列の下では、被乗数M1または乗数M2の上位ビットが「0」として発見されると、関連する部分積値は計算なしにゼロとしてフラグを立てられる可能性がある。位相反転の後に最上位ビットに関連する幾つかの部分積値が「1」になるとしても、反転された部分積値は既に計算の終わりにスケジューリングされているので実際の計算時間は依然として節約される。 In order to solve the above problems, the present invention provides a 5 × 5 LR signed multiplication algorithm as shown in FIG. From the idea of reversal, the present invention calculates the partial product value of the original first row in FIG. As a result, the partial product values of the original second row in FIG. 3, ie, (y4x3) ', y3x3, y2x3, y1x3 and y0x3, are advanced to the first row and calculated. Under this new rearrangement, if the higher order bits of multiplicand M1 or multiplier M2 are found as “0”, the associated partial product value may be flagged as zero without calculation. Even if some partial product values associated with the most significant bit after phase inversion become “1”, the actual calculation time is still saved because the inverted partial product values are already scheduled at the end of the calculation. The
図5は、本発明の一実施形態による非同期式符号付き乗算器の略回路図である。図5を参照すると、本実施形態によって提供される乗算器500は8×8乗算器であり、これは、本乗算器が符号の付いた8ビットの乗数と符号の付いた8ビットの被乗数とに対する乗算演算のために機能し得ることを意味する。但し、本実施形態の8×8乗算器500は本発明を説明するための単なる例示であり、本発明の範囲を限定するものではない。先に述べたように、本発明が提供する非同期式符号付き乗算器は、Nビットの乗数及びMビットの被乗数に対する乗算演算を処理するように設計される。この場合のN及びMは、0より大きい正の整数である。実際、当業者にとって、本発明の原理を基礎として本発明の精神を逸脱することなく、他の仕様によって所望される乗算器を構築することは容易である。
FIG. 5 is a schematic circuit diagram of an asynchronous signed multiplier according to an embodiment of the present invention. Referring to FIG. 5, the
乗算器500は、複数の部分積生成器(PPG)C1乃至C8を含む。本発明においては、PPGの番号は乗算器のビット数と同じもので指定される。乗算器500はさらに、演算モジュール510と、先行ゼロビット検出器540と、完了検出器550とを含む。
The
図5を参照すると、PPG C1〜C8は乗数及び被乗数に応じて部分積結果を生成し、i番目のPPGにより生成される部分積結果はDiで表示される。下付き文字iは、被乗数の全ビット及び乗数のi番目のビットに対するi番目のPPG装置の乗算を表す。例えば、D3は、被乗数の全ビットが乗数の第3のビットで乗じられた、第3のPPG C3からの部分積結果を意味する。各部分積結果は複数の部分積値を有し、PPGにおける各部分積値はシンボル「・」でマーキングされている。 Referring to FIG. 5, PPGs C1 to C8 generate partial product results according to the multiplier and multiplicand, and the partial product results generated by the i-th PPG are displayed as Di. The subscript i represents the multiplication of the i-th PPG device for all bits of the multiplicand and the i-th bit of the multiplier. For example, D3 means the partial product result from the third PPG C3 in which all bits of the multiplicand are multiplied by the third bit of the multiplier. Each partial product result has a plurality of partial product values, and each partial product value in the PPG is marked with a symbol “·”.
演算モジュール510は、加算器モジュール512、514、516、518及び520を含む。各加算器モジュールは、複数の第1の加算器と複数のマルチプレクサ、例えば第1の加算器528とマルチプレクサ530とを含む。この場合、各第1の加算器は対応するPPGからの出力、即ち対応する部分積値を受信する。例えば、第1の加算器528はPPG C1から第1の部分積値を受信する。加えて、各マルチプレクサは第1の入力端と第2の入力端とを有する。この場合、マルチプレクサの第1の入力端は対応する加算器からの出力を受信するが、第2の入力端は(図6に示すように)定数「0」を受信する。各マルチプレクサからの出力は、次の段の加算器モジュールへ送られる。例えば、マルチプレクサ530の入力端のうちの1つは第1の加算器528からの出力を受信するが、その別の入力端は定数「0」を受信し、第1の加算器528からの出力は次の段の加算器モジュール516における第1の加算器532へ送られる。
The
図6は、図5における演算モジュールの第1の加算器とマルチプレクサとの相互接続を示す部分拡大図である。図6を参照して第1の加算器528を例にとれば、本実施形態における第1の加算器528は、各々最終段の演算モジュールからの部分積値及び/または出力を受信するための3つの入力端A、B及びCを有する。第1の加算器528は合計出力端と桁上げ出力端とを有し、上記合計出力端は入力端A、B及びCによって受信される値の合計を出力するために使用される。さらに、第1の加算器528の桁上げ生成に伴って、桁上げの値が桁上げ出力端から出力される。
FIG. 6 is a partially enlarged view showing the interconnection between the first adder and the multiplexer of the arithmetic module in FIG. Taking the
マルチプレクサ530における入力端の1つ及びマルチプレクサ531における入力端の1つは各々、第1の加算器528の合計出力端からの出力及び桁上げ出力端からの出力を受信する。マルチプレクサ530及び531の別の端は、定数「0」を受信する。マルチプレクサ530及び531は各々、もう1つの端である選択端Zを有する。選択端Zは、例えば図5における先行ゼロビット検出器540へ結合される。このようにして、先行ゼロビット検出器540はマルチプレクサ531からの出力を制御しかつ切り替えることができる。
One of the input terminals of the
再度図5を参照すると、演算モジュール510はさらに、第2の加算器モジュール522と、第3の加算器モジュール524と、最終段の加算器526とを含む。この場合、第2の加算器モジュール522は、加算器モジュール512、514、516、518及び520内のマルチプレクサの一部からの出力を受信するための複数の第2の加算器を含む。本発明においては、第2の加算器モジュール522及び部分積生成器(PPG)C1乃至C7は7つの出力、即ちPPG C1乃至PPG C7からの(N−1)個の出力に対して前記[数1]の計算を実行し、第1の演算結果を得る。但し、本実施形態の場合、前記[数1]のNは8である。
Referring back to FIG. 5, the
加算器モジュール512、514、516、518、520及び第2の加算器モジュール522による公式(1)の計算の実行に伴って、先行ゼロビット検出器540が乗数または被乗数の何れかに先行ゼロビットを発見すると、部分積の全ての関連出力は「0」に設定される。本実施形態では、先行ゼロビット検出器540が乗数または被乗数の何れかに先行ゼロビットを検出すると、制御信号が生成されてマルチプレクサの選択端Zへ送られ、よってマルチプレクサは第1の加算器による演算なしに直接定数「0」を出力する。
As the calculation of formula (1) is performed by the
第3の加算器モジュール524もまた複数の第3の加算器を含み、これらは各々、8番目の、即ちN番目のPPG C8によって生成される部分積値を受信する。第3の加算器モジュール524及び最終段の加算器526はD8を第1の演算値へ加算し、即ち第1の演算値をPPG C8によって生成される部分積結果へ加算して第2の演算値を得る。この第2の演算値は、乗数及び被乗数に対する乗算演算による単なる最終積値である。
The
本実施形態では、最終段の加算器526からの出力は完了検出器550へ送信され、完了検出器550を使用して第2の演算値の検出を完了させる必要がある。
In this embodiment, the output from the
上述の説明から、本発明は、乗数におけるN番目のビットの部分積を最終段における計算のために戻すことが分かり、よって本発明は、符号付き乗算の実行に際しても依然として演算時間を節約することができる。 From the above description, it can be seen that the present invention returns the partial product of the Nth bit in the multiplier for computation in the final stage, so that the present invention still saves computation time when performing signed multiplication. Can do.
当業者には、本発明の範囲または精神を逸脱することなく本発明の構成に様々な修正及び変更を実行可能であることが明らかであろう。上記内容に鑑みれば、上記明細及び例は単なる例示として考慮されるべきものであり、本発明の真の範囲及び精神は添付の請求の範囲及びこれらに相当するものにより指示されている。 It will be apparent to those skilled in the art that various modifications and variations can be made to the structure of the present invention without departing from the scope or spirit of the invention. In view of the foregoing, the above specification and examples should be considered as exemplary only, with the true scope and spirit of the invention being indicated by the appended claims and equivalents thereof.
添付の図面は本発明をさらに理解するために包含されるものであり、本明細書の一部に組み込まれかつ上記一部を構成する。諸図面は本発明の実施形態を例示し、明細書本文と共に本発明の原理を説明する働きをする。 The accompanying drawings are included to provide a further understanding of the invention, and are incorporated in and constitute a part of this specification. The drawings illustrate embodiments of the invention and, together with the description, serve to explain the principles of the invention.
100 アレイ乗算器
104 L−R加算器アレイ
108 最終段加算器
120 アレイ乗算器
500 乗算器
510 演算モジュール
512 加算器モジュール
516 加算器モジュール
522 加算器モジュール
524 加算器モジュール
526 加算器
528 加算器
530 マルチプレクサ
531 マルチプレクサ
532 加算器
540 先行ゼロビット検出器
550 完了検出器
100
Claims (5)
上記乗数及び被乗数の各々に応じて部分積結果を生成するために使用されるN個の部分積生成器(PPG)を備え、上記部分積結果はDiで示され、Diはi番目のPPGにおいて、上記被乗数のあらゆるビット数と上記乗数のi番目のビット数とのタイミングを合わせることによる部分積結果を表示し、iは、N以下かつ1以上の整数であり、各部分積結果はM個の部分積値を含み、
上記PPGからの出力を受信しかつ下記数1の演算の実行に使用されて第1の演算結果を得る演算モジュールを備え、
上記第1の演算結果には上記演算モジュールによりDNが加算されて第2の演算結果が取得され、
上記演算モジュールへ結合される先行ゼロビット検出器を備え、上記先行ゼロビット検出器が上記乗数又は被乗数の何れかにおいて先行ゼロビットを検出すると、上記検出された「0」ビットに対応する全ての部分積値出力はゼロビットに対する演算なしに「0」へ設定される非同期式符号付き乗算器。 An asynchronous signed multiplier for performing a signed multiplication operation on a multiplier and a multiplicand, wherein the multiplier and multiplicand have N bits and M bits, respectively, and N and M are positive integers greater than zero. And the multiplier and multiplicand are signed numbers,
N partial product generators (PPG) used to generate partial product results according to each of the multiplier and multiplicand, wherein the partial product results are denoted by Di, where Di is the i th PPG , Display partial product results by matching the timings of any number of bits of the multiplicand and the i-th number of bits of the multiplier, i is an integer equal to or less than N and equal to or greater than 1, and each of the partial product results is M Including partial product values of
A calculation module that receives the output from the PPG and that is used to execute the calculation of the following formula 1 to obtain a first calculation result;
DN is added to the first calculation result by the calculation module to obtain a second calculation result,
A partial zero value corresponding to the detected "0" bit when the leading zero bit detector is coupled to the arithmetic module and the leading zero bit detector detects a leading zero bit in either the multiplier or multiplicand Asynchronous signed multiplier whose output is set to "0" without operation on zero bits.
(N−1)番目のPPG、(N−2)番目のPPGから最初のPPGまでの出力を逐次累積するために各々対応する部分積値を受信する複数の第1の加算器と、
各々が第1の入力端、第2の入力端及び出力端を有する複数のマルチプレクサとを備え、各マルチプレクサの上記第1の入力端は各々対応する第1の加算器からの出力を受信し、各マルチプレクサの上記第2の入力端は定数「0」を受信し、上記マルチプレクサは上記先行ゼロビット検出器の出力に従ってその第1の入力端または第2の入力端を選択してその出力端へ結合し、上記マルチプレクサはその第1の入力端または第2の入力端のデータを次の段のPPGによって結合される第1の加算器へ送信し、
各々上記マルチプレクサの一部からの出力を受信する複数の第2の加算器と、
N番目のPPG及び第1のPPGからの出力を受信する複数の第3の加算器と、
上記第1のPPGからの出力に関連する演算を処理するマルチプレクサからの出力を受信して第2の演算値を計算するための最終段加算器と、を備える請求項1記載の非同期式符号付き乗算器。 The arithmetic module further includes
A plurality of first adders each receiving a corresponding partial product value to sequentially accumulate outputs from the (N-1) th PPG, the (N-2) th PPG to the first PPG;
A plurality of multiplexers each having a first input end, a second input end and an output end, wherein the first input ends of each multiplexer each receive an output from a corresponding first adder; The second input of each multiplexer receives a constant “0”, and the multiplexer selects its first input or second input according to the output of the leading zero bit detector and couples it to its output. And the multiplexer transmits the data of the first input terminal or the second input terminal to the first adder combined by the PPG of the next stage,
A plurality of second adders each receiving an output from a portion of the multiplexer;
A plurality of third adders for receiving outputs from the Nth PPG and the first PPG;
2. An asynchronous signed adder as claimed in claim 1, comprising: a final stage adder for receiving an output from a multiplexer that processes an operation associated with an output from the first PPG and calculating a second operation value Multiplier.
(N−1)番目のビット数から最初のビット数へと逐次複数のビット数により上記被乗数のタイミングを合わせて複数の第1の部分積値を取得するためのステップと、
上記第1の部分積値を合計して第1の演算結果を取得するためのステップと、
上記乗数のN番目のビット数により上記被乗数のタイミングを合わせて複数の第2の部分積値を取得するためのステップと、
上記第2の部分積値を上記第1の合計値に加えて第2の演算結果を取得するためのステップと、
上記乗数または被乗数において先行ゼロビットが検出されれば、「0」のビットに対して演算を実行することなく「0」のビットに関連する部分積値を直接ゼロに設定するステップとを含むアルゴリズム。 An algorithm for asynchronous signed multiplication suitable for performing a signed multiplication operation on a multiplier and a multiplicand, wherein the multiplier is an N-bit number and N is a positive integer greater than zero; The most significant bit of the multiplier and multiplicand is a sign bit,
(N-1) a step for acquiring a plurality of first partial product values by matching the timing of the multiplicand with a plurality of bits sequentially from the number of bits to the first number of bits;
Summing the first partial product values to obtain a first calculation result;
A step for obtaining a plurality of second partial product values by matching the timing of the multiplicand with the Nth bit number of the multiplier;
Adding the second partial product value to the first total value to obtain a second calculation result;
If a leading zero bit is detected in the multiplier or multiplicand, the partial product value associated with the “0” bit is directly set to zero without performing an operation on the “0” bit.
Phase inversion of the partial product value associated with the most significant bit of the multiplier or associated with the most significant bit of the multiplicand, except for the partial product value between the most significant bit of the multiplier and the most significant bit of the multiplicand The algorithm for an asynchronous signed multiplier according to claim 4, further comprising:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005347941A JP2007156620A (en) | 2005-12-01 | 2005-12-01 | Multiplier with asynchronous code and its algorithm |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005347941A JP2007156620A (en) | 2005-12-01 | 2005-12-01 | Multiplier with asynchronous code and its algorithm |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007156620A true JP2007156620A (en) | 2007-06-21 |
Family
ID=38240934
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005347941A Pending JP2007156620A (en) | 2005-12-01 | 2005-12-01 | Multiplier with asynchronous code and its algorithm |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2007156620A (en) |
-
2005
- 2005-12-01 JP JP2005347941A patent/JP2007156620A/en active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Yang et al. | A new RSA cryptosystem hardware design based on Montgomery's algorithm | |
Tenca et al. | High-radix design of a scalable modular multiplier | |
US6601077B1 (en) | DSP unit for multi-level global accumulation | |
US5790446A (en) | Floating point multiplier with reduced critical paths using delay matching techniques | |
US5787030A (en) | Correct and efficient sticky bit calculation for exact floating point divide/square root results | |
US20210349692A1 (en) | Multiplier and multiplication method | |
US11816448B2 (en) | Compressing like-magnitude partial products in multiply accumulation | |
US10761806B2 (en) | Transcendental calculation unit apparatus and method | |
JP2012528391A (en) | Integer and multiply-add operations with saturation | |
CN111936965A (en) | Random rounding logic | |
Takagi et al. | A hardware algorithm for integer division | |
US7539720B2 (en) | Low latency integer divider and integration with floating point divider and method | |
JP2001222410A (en) | Divider | |
KR100627993B1 (en) | Three input split-adder | |
JPH1195982A (en) | Circuit, method and system for arithmetic processing | |
US7607165B2 (en) | Method and apparatus for multiplication and/or modular reduction processing | |
KR20080050226A (en) | Modular multiplication device and method for designing modular multiplication device | |
JPH04355827A (en) | Square root extracting operation device | |
Son et al. | Design and implementation of scalable low-power Montgomery multiplier | |
Rahimzadeh et al. | Radix-4 implementation of redundant interleaved modular multiplication on FPGA | |
JP2007156620A (en) | Multiplier with asynchronous code and its algorithm | |
US9804998B2 (en) | Unified computation systems and methods for iterative multiplication and division, efficient overflow detection systems and methods for integer division, and tree-based addition systems and methods for single-cycle multiplication | |
US6725360B1 (en) | Selectively processing different size data in multiplier and ALU paths in parallel | |
JP4290203B2 (en) | Reduction array apparatus and method | |
US7213043B2 (en) | Sparce-redundant fixed point arithmetic modules |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20071205 |
|
A131 | Notification of reasons for refusal |
Effective date: 20071207 Free format text: JAPANESE INTERMEDIATE CODE: A131 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20080501 |