JPH1195981A - 乗算回路 - Google Patents
乗算回路Info
- Publication number
- JPH1195981A JPH1195981A JP9253970A JP25397097A JPH1195981A JP H1195981 A JPH1195981 A JP H1195981A JP 9253970 A JP9253970 A JP 9253970A JP 25397097 A JP25397097 A JP 25397097A JP H1195981 A JPH1195981 A JP H1195981A
- Authority
- JP
- Japan
- Prior art keywords
- bits
- multiplication
- circuit
- bit
- circuits
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/52—Multiplying; Dividing
- G06F7/523—Multiplying only
- G06F7/53—Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel
- G06F7/5324—Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel partitioned, i.e. using repetitively a smaller parallel parallel multiplier or using an array of such smaller multipliers
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Advance Control (AREA)
- Complex Calculations (AREA)
Abstract
列に行うと共に、mビット×nビットの乗算をも行う乗
算回路を提供する。 【解決手段】 乗算回路MA1,MA2,MA3,MA
4は、それぞれ符号付き、符号無しの両方の16ビット
×16ビット乗算を実行する。乗算回路MA1,MA
2,MA3,MA4には、それぞれ被乗数のデータ選択
を行う選択回路Sel1,Sel3,Sel5,Sel
7、および乗数のデータ選択を行う選択回路Sel2,
Sel4,Sel6,Sel8が付加される。連結回路
Con1は、乗算回路MA3からの出力out16_3
と、乗算回路MA4からの出力out16_4とを連結
し、加算回路Add1は、この連結した値を、乗算回路
MA1からの出力out16_1を所定ビットシフトし
たデータおよび乗算回路MA2からの出力out16_
2を所定ビットシフトしたデータと加算して出力する。
Description
ッサやマイクロプロセッサなどの演算回路として使用さ
れる乗算回路に関する。
どを対象としたマルチメディア処理において、プロセッ
サのデータビット幅(例えば32ビットなど)に比べ、
小さいビット幅(例えば16ビットなど)で多数組の乗
算処理を行うことが要求される。しかし、乗算の高速化
には限度があるため、多数組の乗算を行うためには、ビ
ット幅が小さいことを利用して、並列に複数の乗算(例
えば4並列など)を行う。もちろん、通常のビット幅
(例えば32ビットなど)での乗算も処理できなければ
ならない。
能と、16ビット×16ビットの乗算を4組並列に行う
機能を全て装備した回路例を示す。32ビット×32ビ
ットの乗算を行う際は、32ビット×32ビット乗算器
51が働き、16ビット×16ビットの乗算を4組行う
際は、16ビット×16ビット乗算器52a,52b,
52c,52dが四つ同時に働く。
には、上記のように全ての回路を装備することができな
いため、32ビット×32ビット乗算器のみを用いて乗
算を行う。
みを用いて、16ビット×16ビット乗算と32ビット
×32ビット乗算とを行う回路例を示す。16ビット×
16ビットの乗算を行う際は、32ビット×32ビット
乗算器を61a,61b,61c,61dの4ブロック
に分割し、データの伝播が重ならない乗算ブロック61
aと乗算ブロック61dとを2回用いて乗算を行う。ま
た、32ビット×32ビットの乗算を行う際は、通常の
32ビット×32ビット乗算器として扱う。乗算ブロッ
ク61cおよび乗算ブロック61dの出力が、32ビッ
ト×32ビット乗算の場合および16ビット×16ビッ
ト乗算の場合、共に乗算結果の出力となる。なお、16
ビット×16ビット乗算を行う際には、乗算ブロック6
1aと乗算ブロック61dとの間で、データの干渉がお
こらないようにキャリーの伝播を切る機能が必要であ
る。
×b(乗数)として、mビットデータは0を下位側、
(m−1)を上位側として<(m−1):0>と表す。
32ビット×32ビット演算を行う際の、2の補数表現
された入力データの被乗数をx<31:0>、乗数をy
<31:0>と表す。また、4組の16ビット×16ビ
ット演算を行う際の、2の補数表現された入力データの
被乗数をa1<15:0>,a2<15:0>,a3<
15:0>,a4<15:0>とし、それぞれに対応す
る乗数をb1<15:0>,b2<15:0>,b3<
15:0>,b4<15:0>とする。
61dごとに、データ入力の前段に被乗数のデータ選択
を行う選択回路Sel1,Sel3,Sel5,Sel
7、および乗数のデータ選択を行う選択回路Sel2,
Sel4,Sel6,Sel8をそれぞれ付加し、4並
列の16ビット×16ビット乗算に対応する。
下位16ビット被乗数データx<15:0>と、4並列
16ビット乗算の被乗数データa1<15:0>,a3
<15:0>とが入力され、選択回路Sel2には、3
2ビット乗算の下位16ビット乗数データy<15:0
>と、4並列16ビット乗算の乗数データb1<15:
0>,b3<15:0>とが入力される。同様に、選択
回路Sel3には、32ビット乗算の上位16ビット被
乗数データx<31:16>と0とが入力され、選択回
路Sel4には、y<15:0>と0とが入力される。
選択回路Sel5には、データx<15:0>と0とが
入力され、選択回路Sel6には、32ビット乗算の上
位16ビット乗数データy<31:16>と、0とが入
力される。選択回路Sel7には、データx<31:1
6>と、4並列16ビット乗算の被乗数データa2<1
5:0>,a4<15:0>とが入力され、選択回路S
el8には、データy<31:16>と、4並列16ビ
ット乗算の乗数データb2<15:0>,b4<15:
0>とが入力される。
ット×32ビット乗算の場合には、乗算ブロック61a
は、選択回路Sel1によって被乗数データx<15:
0>、選択回路Sel2によって乗数データy<15:
0>が選択される。同様に、乗算ブロック61bは、選
択回路Sel3によって被乗数データx<31:16
>、選択回路Sel4にによって乗数データy<15:
0>が選択される。乗算ブロック61cは、選択回路S
el5によって被乗数データx<15:0>、選択回路
Sel6にによって乗数データy<31:16>が選択
される。乗算ブロック61dは、選択回路Sel7によ
って被乗数データx<31:16>、選択回路Sel8
にによって乗数データy<31:16>が選択される。
そして通常通り、入力データから部分積を生成し、部分
積の累積加算を行えば、32ビット×32ビット乗算結
果が得られる。
以下の順で演算する。演算すべき4組の16ビット×1
6ビットデータを、被乗数、乗数の順に、第1組:a1
<15:0>,b1<15:0>、第2組:a2<1
5:0>,b2<15:0>、第3組:a3<15:0
>,b3<15:0>、第4組:a4<15:0>,b
4<15:0>とする。最初の演算サイクルで第1組、
第2組、次の演算サイクルで第3組、第4組の乗算を実
行する。
ック61aには、被乗数a1<15:0>、乗数b1<
15:0>が入力されるように選択回路Sel1,Se
l2にて入力データを選択する。また乗算ブロック61
dには、被乗数a2<15:0>、乗数b2<15:0
>が入力されるように選択回路Sel7,Sel8にて
入力データを選択する。また乗算ブロック61b,乗算
ブロック61cは、累積加算時に余分なデータの伝播を
避けるために、被乗数、乗数共に、選択回路Sel3,
Sel5および選択回路Sel4,Sel6にて入力デ
ータ0を選択する。この状態で、32ビット×32ビッ
トの乗算を行うと、出力64ビットのうち、上位32ビ
ットに第2組:a2×b2の乗算結果が、下位32ビッ
トに第1組:a1×b1の乗算結果が出力される。
組:a3×b3,第4組:a4×b4の乗算結果を求め
る。こうして計2回の演算サイクルで4組の乗算結果が
求められる。
6の例では、占有面積の大きい乗算器が多数存在し、し
かも命令によって必ず動作しない回路が存在し、無駄が
多い。このため面積を重視する場合には非常に大きな問
題となる。
トの乗算ブロック四つに相当する乗算ブロックを搭載し
ているにもかかわらず、4組の16ビット×16ビット
乗算結果を得るためには、2回の演算サイクルを要す
る。すなわち、本従来例では、16ビット×16ビット
の乗算の性能から考えると、2倍もの回路面積を占有し
ているということになる。
かつ回路の機能を有効に利用して演算時間も増加させる
こと無く、m(mは偶数の自然数)/2ビット×n(n
は偶数の自然数)/2ビットの乗算を4組並列に行うと
共に、mビット×nビットの乗算をも行う乗算回路を提
供することを目的とする。
め、本発明の請求項1に記載の乗算回路は、m/2ビッ
ト×n/2ビットの乗算を行う四つの乗算回路と、これ
らの各乗算回路の被乗数入力側に接続され、複数の被乗
数から一つを選択する四つの被乗数選択回路と、前記各
乗算回路の乗数入力側に接続され、複数の乗数から一つ
を選択する四つの乗数選択回路と、前記各乗算回路から
の四つの出力データのうち、二つの出力データを連結す
る連結回路と、この連結回路によって連結されたデータ
と、前記四つの出力データのうちの他の二つの出力デー
タとを所定のビット位置にあわせて加算する加算回路と
を備え、四組のm/2ビット×n/2ビットの乗算を行
う際には、前記各被乗数選択回路が各々のm/2ビット
の被乗数を選択し、前記各乗数選択回路が対応する各々
のn/2ビットの乗数を選択して前記各乗算回路に入力
して4組の乗算を並列に行い、mビット×nビットの乗
算を行う際には、前記各被乗数選択回路がmビットのう
ち上位または下位のm/2ビットの被乗数を選択し、前
記各乗数選択回路がnビットのうち上位または下位のn
/2ビットの乗数を選択して前記各乗算回路に入力し、
これら各乗算回路の四つの乗算結果のうち、(mビット
のうち下位m/2ビット)×(nビットのうち下位n/
2ビット)および(mビットのうち上位m/2ビット)
×(nビットのうち上位n/2ビット)の乗算結果を前
記連結回路にて連結し、この連結された乗算結果と、他
の二つの乗算結果とを前記加算回路にてそれぞれ所定の
ビット位置にあわせて加算することを特徴とする構成を
有する。
記載の乗算回路は、四つの乗算回路からの乗算結果のう
ち二つの結果を連結して用いることによって、加算すべ
きデータを三つに削減することができ、四組のm/2ビ
ット×n/2ビット乗算とmビット×nビット乗算とを
行えるようしても、処理時間の増大を小さく抑えること
ができ、m/2ビット×n/2ビット乗算回路およびm
ビット×nビット乗算回路の両方を搭載する必要が無
い。
/2ビット×n/2ビットの乗算を行う二つの乗算回路
と、これらの各乗算回路の被乗数入力側に接続され、複
数の被乗数から一つを選択する二つの被乗数選択回路
と、前記各乗算回路の乗数入力側に接続され、複数の乗
数から一つを選択する二つの乗数選択回路と、前記各乗
算回路からの二つの出力データを連結する連結回路と、
前記各乗算回路に対応して、それぞれの出力データを保
持する第1および第2の出力保持回路と、これら第1お
よび第2の出力保持回路からの二つの出力データを加算
する第1の加算回路と、この第1の加算回路からの出力
データと、前記連結回路によって連結されたデータとを
所定のビット位置にあわせて加算する第2の加算回路と
を備え、四組のm/2ビット×n/2ビットの乗算を行
う際には、前記各被乗数選択回路が2組のm/2ビット
の被乗数を選択し、前記各乗数選択回路が各被乗数に対
応するn/2ビットの乗数を選択して、前記各乗算回路
に入力して2組の乗算を並列に行い、それら二つの出力
データを前記第1および第2の出力保持回路にて保持
し、さらに、再度、前記各被乗数選択回路が残りの2組
のm/2ビットの被乗数をそれぞれ選択し、前記各乗数
選択回路が各被乗数に対応する残りのn/2ビットの乗
数を選択して、前記各乗算回路に入力して残りの2組の
乗算を並列に行い、mビット×nビットの乗算を行う際
には、一方の乗算回路に接続される被乗数選択回路がm
ビットのうち上位m/2ビットの被乗数を選択し、対応
する乗数選択回路がnビットのうち下位n/2ビットの
乗数を選択して、他方の乗算回路に接続される被乗数選
択回路がmビットのうち下位m/2ビットの被乗数を選
択し、対応する乗数選択回路がnビットのうち上位n/
2ビットの乗数を選択して、前記各乗算回路に入力して
(mビットのうち上位m/2ビット)×(nビットのう
ち下位n/2ビット)および(mビットのうち下位m/
2ビット)×(nビットのうち上位n/2ビット)の2
組の乗算を並列に行い、それら二つの出力データを前記
第1および第2の出力保持回路にて保持し、さらに、再
度、一方の乗算回路に接続される被乗数選択回路がmビ
ットのうち下位m/2ビットの被乗数を選択し、対応す
る乗数選択回路がnビットのうち下位n/2ビットの乗
数を選択して、他方の乗算回路に接続される被乗数選択
回路がmビットのうち上位m/2ビットの被乗数を選択
し、対応する乗数選択回路がnビットのうち上位n/2
ビットの乗数を選択して、前記各乗算回路に入力して
(mビットのうち下位m/2ビット)×(nビットのう
ち下位n/2ビット)および(mビットのうち上位m/
2ビット)×(nビットのうち上位n/2ビット)の2
組の乗算を並列に行い、それら二つの乗算結果を前記連
結回路にて連結すると共に、前記第1および第2の出力
保持回路に保持されている2組の出力データを前記第1
の加算回路にて加算し、この第1の加算回路の加算結果
と前記連結回路にて連結されたデータとを、前記第2の
加算回路にて所定のビット位置にあわせて加算すること
を特徴とする。
記載の乗算回路は、乗算回路を四つから二つに削減し
て、2回に分けて実行することによって、1回目に乗算
した二つの乗算結果の加算を、2回目の乗算の最中に実
行できる。
/2ビット×n/2ビットの乗算を行う二つの乗算回路
と、これらの各乗算回路の被乗数入力側に接続され、複
数の被乗数から一つを選択する二つの被乗数選択回路
と、前記各乗算回路の乗数入力側に接続され、複数の乗
数から一つを選択する二つの乗数選択回路と、前記各乗
算回路からの二つの出力データを連結する連結回路と、
前記各乗算回路に対応して、それぞれの出力データを保
持する第1および第2の出力保持回路と、二つのデータ
を加算する加算回路と、この加算回路の加算結果を保持
する加算出力保持回路と、前記加算回路への入力データ
を切換え選択する加算入力選択回路とを備え、四組のm
/2ビット×n/2ビットの乗算を行う際には、前記各
被乗数選択回路が2組のm/2ビットの被乗数をそれぞ
れ選択し、前記各乗数選択回路が各被乗数に対応するn
/2ビットの乗数を選択して、前記各乗算回路に入力し
て2組の乗算を並列に行い、それら二つの出力データを
前記第1および第2の出力保持回路にて保持し、さら
に、再度、前記各被乗数選択回路が残りの2組のm/2
ビットの被乗数をそれぞれ選択し、前記各乗数選択回路
が各被乗数に対応する残りのn/2ビットの乗数を選択
して、前記各乗算回路に入力して残りの2組の乗算を並
列に行い、mビット×nビットの乗算を行う際には、一
方の乗算回路に接続される被乗数選択回路がmビットの
うち上位m/2ビットの被乗数を選択し、対応する乗数
選択回路がnビットのうち下位n/2ビットの乗数を選
択して、他方の乗算回路に接続される被乗数選択回路が
mビットのうち下位m/2ビットの被乗数を選択し、対
応する乗数選択回路がnビットのうち上位n/2ビット
の乗数を選択して、前記各乗算回路に入力して(mビッ
トのうち上位m/2ビット)×(nビットのうち下位n
/2ビット)および(mビットのうち下位m/2ビッ
ト)×(nビットのうち上位n/2ビット)の2組の乗
算を並列に行い、それら二つの出力データを前記第1お
よび第2の出力保持回路にて保持し、さらに、再度、一
方の乗算回路に接続される被乗数選択回路がmビットの
うち下位m/2ビットの被乗数を選択し、対応する乗数
選択回路がnビットのうち下位n/2ビットの乗数を選
択して、他方の乗算回路に接続される被乗数選択回路が
mビットのうち上位m/2ビットの被乗数を選択し、対
応する乗数選択回路がnビットのうち上位n/2ビット
の乗数を選択して、前記各乗算回路に入力して(mビッ
トのうち下位m/2ビット)×(nビットのうち下位n
/2ビット)および(mビットのうち上位m/2ビッ
ト)×(nビットのうち上位n/2ビット)の2組の乗
算を並列に行うと共に、前記第1および第2の出力保持
回路にて保持された加算結果を前記加算入力選択回路に
て選択して、前記加算回路にて加算し、その結果を前記
加算出力保持回路にて保持し、前記第1および第2の出
力保持回路に保持されている2組の出力データを前記連
結回路にて連結し、この連結回路にて連結されたデータ
と前記加算出力保持回路に保持された加算結果とを、前
記加算入力選択回路にて選択して、前記加算回路にて所
定のビット位置にあわせて加算することを特徴とする。
記載の乗算回路は、加算回路を一つに削減して、2回使
用することによって、請求項2に記載の乗算回路と比較
して面積を削減できる。
施の形態を詳細に説明する。
回路のブロック図である。まず32ビット×32ビット
演算を行う際の、2の補数表現された入力データの被乗
数をx<31:0>、乗数をy<31:0>と表す。ま
た、4並列の16ビット×16ビット演算を行う際の、
2の補数表現された入力データの被乗数をa1<15:
0>,a2<15:0>,a3<15:0>,a4<1
5:0>とし、それぞれに対応する乗数をb1<15:
0>,b2<15:0>,b3<15:0>,b4<1
5:0>とする。
は、それぞれ符号付き、符号無しの両方の16ビット×
16ビット乗算を実行する。乗算回路MA1には、デー
タ入力の前段に被乗数のデータ選択を行う選択回路Se
l1および乗数のデータ選択を行う選択回路Sel2が
付加されている。選択回路Sel1には、32ビット乗
算の上位16ビット被乗数データx<31:16>と、
4並列16ビット乗算の被乗数データのうちa1<1
5:0>とが入力され、選択回路Sel2には、32ビ
ット乗算の下位16ビット乗数データy<15:0>
と、4並列16ビット乗算の乗数データのうちのb1<
15:0>とが入力される。そして乗算回路MA1は、
出力out16_1を出力する。
には、それぞれ被乗数のデータ選択を行う選択回路Se
l3,Sel5,Sel7、および乗数のデータ選択を
行う選択回路Sel4,Sel6,Sel8が付加され
る。
下位16ビット被乗数データx<15:0>と、4並列
16ビット乗算の被乗数データのうちa2<15:0>
とが入力され、選択回路Sel4には、32ビット乗算
の上位16ビット乗数データy<31:16>と、4並
列16ビット乗算の乗数データのうちのb2<15:0
>とが入力される。そして乗算回路MA2は、出力ou
t16_2を出力する。
下位16ビット被乗数データx<15:0>と、4並列
16ビット乗算の被乗数データのうちa3<15:0>
とが入力され、選択回路Sel6には、32ビット乗算
の下位16ビット乗数データy<15:0>と、4並列
16ビット乗算の乗数データのうちのb3<15:0>
とが入力される。そして乗算回路MA3は、出力out
16_3を出力する。
上位16ビット被乗数データx<31:16>と、4並
列16ビット乗算の被乗数データのうちa4<15:0
>とが入力され、選択回路Sel8には、32ビット乗
算の上位16ビット乗数データy<31:16>と、4
並列16ビット乗算の乗数データのうちのb4<15:
0>とが入力される。そして乗算回路MA4は、出力o
ut16_4を出力する。
の出力out16_3と、乗算回路MA4からの出力o
ut16_4とを、出力out16_4を上位側、出力
out16_3を下位側として連結する。加算回路Ad
d1は、この連結した値と、乗算回路MA1からの出力
out16_1を<47:16>のビット位置にシフト
した値と、乗算回路MA2からの出力out16_2を
<47:16>のビット位置にシフトした値とを加算し
て出力する。
6ビット乗算を行う場合、選択回路Sel1にて16ビ
ットデータa1<15:0>を選択し、同様に選択回路
Sel2にてb1、選択回路Sel3にてa2、選択回
路Sel4にてb2、選択回路Sel5にてa3、選択
回路Sel6にてb3、選択回路Sel7にてa4、選
択回路Sel8にてb4を選択して、それぞれ乗算回路
MA1,MA2,MA3,MA4に入力する。そして各
乗算回路の出力out16_1,out16_2,ou
t16_3,out16_4が乗算結果となる。
場合について説明する。まず、2の補数表示された、3
2ビットデータx<31:0>とy<31:0>との積
は、以下の式にて求められる。
を符号ビットとして、 (−x31*231+x30*230+…+x16*216+x15*215 +…+x0*20)×(−y31*231+y30*230+…+y16*21 6 +y15*215+…+y0*20) =(−x31*215+x30*214+…+x16*20)×(−y31*215 +y30*214+…+y16*20)*231 +(−x31*215+x30*214+…+x16*20)×(y15*21 5 +y14*214+…+y0*20)*215 +(x15*215+x14*214+…+x0*20)×(−y31*215 +y30*214+…+y16*20)*215 +(x15*215+x14*214+…+x0*20)×(y15*215+ y14*214+…+y0*20) =x<31:16>×y<31:16>*231+x<31:16>×y<15 :0>*215+x<15:0>×y<31:16>*215+x<15:0> ×y<15:0> =Z1+Z2+Z3+Z4・・・(A) ただし、Z1=x<15:0>×y<15:0>、Z2
=x<15:0>×y<31:16>*215、Z3=
x<31:16>×y<15:0>*215、Z4=x
<31:16>×y<31:16>*231とする。
算:x<31:0>×y<31:0>の結果を得るため
には、部分積Z1,Z2,Z3,Z4をそれぞれ求め、
Z1+Z2+Z3+Z4を実行すれば良い。
出力結果のビット位置を示す。図に示されるように、Z
1とZ4とは、ビット位置が全く重ならないので、連結
して一つのデータとして扱うことが可能である。すなわ
ちZ1とZ4とを連結したデータをZ14とすれば、Z
14+Z2+Z3を計算することによって、32ビット
×32ビット乗算:x<31:0>×y<31:0>の
結果が得られる。
A2でZ2を、MA3でZ1を、MA4でZ4を計算す
るには、選択回路Sel1にてデータx<31:16>
を選択し、同様に選択回路Sel2にてy<15:0>
を、選択回路Sel3にてx<15:0>を、選択回路
Sel4にてy<31:16>を、選択回路Sel5に
てx<15:0>を、選択回路Sel6にてy<15:
0>を、選択回路Sel7にてx<31:16>を、選
択回路Sel8にてy<31:16>を選択する。
数共に符号無しデータ、Z2は被乗数が符号無しデー
タ、乗数が符号付きデータ(2の補数表示データ)、Z
3は被乗数が符号付きデータ、乗数が符号無しデータ、
Z4は被乗数、乗数共に符号付きデータとして扱う必要
がある。
out16_1を所定ビット(16ビット)シフトした
ものがZ3、out16_2を所定ビット(16ビッ
ト)シフトしたものがZ2、out16_3がZ1、o
ut16_4を所定ビット(32ビット)シフトしたも
のがZ4に対応する。このため、連結回路Con1に
て、out16_3とout16_4とを、out16
_4を上位側として連結し、さらに加算回路Add1に
て、連結した結果とout16_1を所定ビット(16
ビット)シフトしたものおよびout16_2を所定ビ
ット(16ビット)シフトしたものと加算することによ
って、32ビット×32ビットの乗算結果が得られる。
げ加算器(carry propagation adder) に限らず、桁上げ
保存加算器(carry save adder)を用いることも可能であ
る。
回路のブロック図である。各入力データは、第1の実施
の形態と同様である。
符号付き、符号無しの両方の16ビット×16ビット乗
算を実行する。乗算回路MA11には、データ入力の前
段に被乗数のデータ選択を行う選択回路Sel11およ
び乗数のデータ選択を行う選択回路Sel12が付加さ
れている。選択回路Sel11には、32ビット乗算の
被乗数データ上位16ビットx<31:16>および下
位16ビットx<15:0>と、4並列16ビット乗算
の被乗数データのうちa1<15:0>,a3<15:
0>とが入力され、選択回路Sel12には、32ビッ
ト乗算の乗数データ下位16ビットy<15:0>と、
4並列16ビット乗算の乗数データのうちのb1<1
5:0>,b3<15:0>とが入力される。そして乗
算回路MA11は、出力out16_11を出力する。
データ選択を行う選択回路Sel13および乗数のデー
タ選択を行う選択回路Sel14が付加される。
の被乗数データ上位16ビットx<31:16>および
下位16ビットx<15:0>と、4並列16ビット乗
算の被乗数データのうちa2<15:0>,a4<1
5:0>とが入力され、選択回路Sel14には、32
ビット乗算の乗数データ上位16ビットy<31:16
>と、4並列16ビット乗算の乗数データのうちのb2
<15:0>,b4<15:0>とが入力される。そし
て乗算回路MA12は、出力out16_12を出力す
る。
らの出力out16_11を保持し、レジスタReg2
は、乗算回路MA12からの出力out16_12を保
持する。加算回路Add11は、レジスタReg1の出
力とレジスタReg2の出力とを加算する。
11からの出力out16_11と、乗算回路MA12
からの出力out16_12とを、出力out16_1
2を上位側、出力out16_11を下位側として連結
して出力out16_cとする。加算回路Add12
は、この連結した出力out16_cと、加算回路Ad
d11からの出力を<47:16>のビット位置にシフ
トしたデータとを加算して出力する。
6ビット乗算を行う場合、2サイクルタイムを要して、
以下の動作を行う。
6ビット乗算の被乗数データa1<15:0>を選択
し、同様に選択回路Sel12にて16ビット乗算の乗
数データb1<15:0>を、選択回路Sel13にて
16ビット乗算の被乗数データa2<15:0>を、選
択回路Sel14にて16ビット乗算の乗数データb2
<15:0>を選択する。
入力されたデータを乗算して、その結果を出力out1
6_11,out16_12に出力し、レジスタReg
1,レジスタReg2にて保持する。
6ビット乗算の被乗数データa3<15:0>を選択
し、同様に選択回路Sel12にて16ビット乗算の乗
数データb3<15:0>を、選択回路Sel13にて
16ビット乗算の被乗数データa4<15:0>を、選
択回路Sel14にて16ビット乗算の乗数データb4
<15:0>を選択する。
入力されたデータを乗算して、その結果を出力out1
6_11,out16_12に出力する。そして先にレ
ジスタReg1,レジスタReg2に保持されたデータ
とあわせて、計4組の16ビット×16ビット乗算結果
が得られる。
場合も、4組の16ビット×16ビット乗算と同様に2
サイクルタイムを要する。
MA11にて、Z2を乗算回路MA12にて求めるた
め、選択回路Sel11にて32ビット乗算の被乗数デ
ータ上位16ビットx<31:16>を選択し、同様に
選択回路Sel12にて32ビット乗算の乗数データ下
位16ビットy<15:0>を、選択回路Sel13に
て32ビット乗算の被乗数データ下位16ビットx<1
5:0>を、選択回路Sel14にて32ビット乗算の
乗数データ上位16ビットy<31:16>を選択す
る。
入力されたデータを乗算して、その結果を出力out1
6_11,out16_12に出力し、レジスタReg
1,レジスタReg2にて保持する。
MA11にて、Z4を乗算回路MA12にて求めるた
め、選択回路Sel11にて32ビット乗算の被乗数デ
ータ下位16ビットx<15:0>を選択し、同様に選
択回路Sel12にて32ビット乗算の乗数データ下位
16ビットy<15:0>を、選択回路Sel13にて
32ビット乗算の被乗数データ上位16ビットx<3
1:16>を、選択回路Sel14にて32ビット乗算
の乗数データ上位16ビットy<31:16>を選択す
る。
入力されたデータを乗算して、その結果を出力out1
6_11,out16_12に出力し、out16_1
2を上位側、out16_11を下位側として連結し
て、この結果をout16_cとする。
eg1に保持されたデータと,レジスタReg2に保持
されたデータとを、加算回路Add11にて加算する。
その加算結果を<47:16>のビット位置にあわせて
シフトし、加算回路Add12にてシフトした結果と連
結結果out16_cとを加算して出力し、32ビット
×32ビット乗算結果を得る。
dd11,12は、順次桁上げ加算器に限らず、桁上げ
保存加算器を用いることも可能である。また本実施の形
態では、乗数側を固定して被乗数側を切り替えたが、被
乗数側を固定して乗数側を切り替えても同様の結果が得
られる。
回路のブロック図である。本実施の形態は、第2の実施
の形態と比べ、各入力データおよび乗算回路、連結回
路、レジスタなどの構成は同様である。本実施の形態で
は、第2の実施の形態の加算回路Add11および加算
回路Add12の機能を、加算回路Add21にて兼用
して実行するため、加算出力保持回路と加算入力選択回
路とを備える。
ット乗算を行う場合の動作は、前述の第2の実施の形態
と同様である。
算において、第1サイクルでは乗算回路MA11,MA
12にてZ3,Z2を求め、レジスタReg1,レジス
タReg2に保持する。
12にてZ1,Z4を求めて、レジスタReg1,レジ
スタReg2に保持すると共に、レジスタReg1,レ
ジスタReg2に保持された値を加算入力選択回路にて
選択し、加算回路Add21にて加算して、その結果を
加算出力保持回路にて保持する。
1に保持されている値と、レジスタReg2に保持され
ている値とを、連結回路Con21にてレジスタReg
2の出力を上位、レジスタReg1の出力を下位になる
ように連結して、この連結されたデータZ14と加算出
力保持回路に保持された加算結果をビット位置<47:
16>にあわせてシフトしたものとを、加算入力選択回
路にて選択して、加算回路Add21にて加算する。
作をパイプライン動作とした場合のタイムチャートであ
る。第1の乗算命令開始によって、第1サイクルでは乗
算回路MA11,MA12にてZ3,Z2を求める。第
2サイクルでは加算回路Add21にてZ3+Z2を求
める(その加算結果をZa23とする)と共に、並列し
て乗算回路MA11,MA12にてZ1,Z4を求め
る。第3サイクルでは、第2の乗算命令開始によって、
乗算回路MA11,MA12にてZ3,Z2を求めると
共に、並列して加算回路Add21にて第1の乗算命令
のZ14+Za23を求める。このように、乗算回路M
A11,MA12にて乗算処理中に、並列して加算回路
Add21にて前の演算サイクルの乗算結果を用いて加
算処理を行う。このため、連続実行時には、実質的に2
サイクルごとに32ビット×32ビット乗算を行うこと
ができる。
記載の乗算回路は、m/2ビット×n/2ビットの乗算
を行う四つの乗算回路と、複数の被乗数から一つを選択
する四つの被乗数選択回路と、複数の乗数から一つを選
択する四つの乗数選択回路と、ビット位置の重ならない
二つの乗算出力データを連結する連結回路と、連結され
たデータと、他の二つの出力データとを加算する加算回
路とを備えたので、四つの乗算回路からの乗算結果を連
結して用いることによって、加算すべきデータを三つに
削減することができ、このため四組のm/2ビット×n
/2ビット乗算とmビット×nビット乗算とを行えるよ
うしても、処理時間の増大を小さく抑えることができ、
m/2ビット×n/2ビット乗算回路およびmビット×
nビット乗算回路の両方を搭載する必要が無いので面積
の増大もほとんどない。すなわちmビット×nビット乗
算回路とほぼ同様の回路面積にて、演算時間をほとんど
増やすこと無く、四組のm/2ビット×n/2ビット乗
算とmビット×nビット乗算とを行うことができる。
/2ビット×n/2ビットの乗算を行う二つの乗算回路
と、複数の被乗数から一つを選択する二つの被乗数選択
回路と、複数の乗数から一つを選択する二つの乗数選択
回路と、ビット位置の重ならない二つの乗算出力データ
を連結する連結回路と、乗算出力データを保持する第1
および第2の出力保持回路と、出力保持回路からの出力
データを加算する第1の加算回路と、加算出力データと
連結されたデータとを加算する第2の加算回路とを備え
たので、乗算回路を四つから二つに削減して、2回に分
けて実行することによって、1回目に乗算した二つの乗
算結果の加算を、2回目の乗算の最中に実行できるた
め、mビット×nビット乗算を分割して実行したことに
よる加算時間の増加分が吸収され、搭載している回路に
対して、最良の性能を発揮できる。
/2ビット×n/2ビットの乗算を行う二つの乗算回路
と、複数の被乗数から一つを選択する二つの被乗数選択
回路と、複数の乗数から一つを選択する二つの乗数選択
回路と、ビット位置の重ならない二つの乗算出力データ
を連結する連結回路と、乗算出力データを保持する第1
および第2の出力保持回路と、二つのデータを加算する
加算回路と、加算結果を保持する加算出力保持回路と、
加算回路への入力データを切換え選択する加算入力選択
回路とを備えたので、加算回路を一つに削減して、2回
使用することによって、請求項2に記載の乗算回路と比
較して、面積の削減を行うことができる。処理速度が一
見低下するように見えるが、パイプライン動作を行うこ
とによって、命令を連続実行時の処理速度は、加算回路
を二つ搭載した場合と同様の処理速度が得られる。
ク図である。
ット位置を示す図である。
ク図である。
ク図である。
作のタイムチャートである。
の16ビット×16ビット乗算器とを装備した回路例を
示す図である。
6ビット×16ビット乗算と32ビット×32ビット乗
算とを行う回路例を示す図である。
Claims (3)
- 【請求項1】 m(mは偶数の自然数)/2ビット×n
(nは偶数の自然数)/2ビットの乗算を行う四つの乗
算回路と、 これらの各乗算回路の被乗数入力側に接続され、複数の
被乗数から一つを選択する四つの被乗数選択回路と、 前記各乗算回路の乗数入力側に接続され、複数の乗数か
ら一つを選択する四つの乗数選択回路と、 前記各乗算回路からの四つの出力データのうち、二つの
出力データを連結する連結回路と、 この連結回路によって連結されたデータと、前記四つの
出力データのうちの他の二つの出力データとを所定のビ
ット位置にあわせて加算する加算回路とを備え、 四組のm/2ビット×n/2ビットの乗算を行う際に
は、前記各被乗数選択回路が各々のm/2ビットの被乗
数を選択し、前記各乗数選択回路が対応する各々のn/
2ビットの乗数を選択して前記各乗算回路に入力して4
組の乗算を並列に行い、 mビット×nビットの乗算を行う際には、前記各被乗数
選択回路がmビットのうち上位または下位のm/2ビッ
トの被乗数を選択し、前記各乗数選択回路がnビットの
うち上位または下位のn/2ビットの乗数を選択して前
記各乗算回路に入力し、これら各乗算回路の四つの乗算
結果のうち、(mビットのうち下位m/2ビット)×
(nビットのうち下位n/2ビット)および(mビット
のうち上位m/2ビット)×(nビットのうち上位n/
2ビット)の乗算結果を前記連結回路にて連結し、この
連結された乗算結果と、他の二つの乗算結果とを前記加
算回路にてそれぞれ所定のビット位置にあわせて加算す
ることを特徴とする乗算回路。 - 【請求項2】 m/2ビット×n/2ビットの乗算を行
う二つの乗算回路と、 これらの各乗算回路の被乗数入力側に接続され、複数の
被乗数から一つを選択する二つの被乗数選択回路と、 前記各乗算回路の乗数入力側に接続され、複数の乗数か
ら一つを選択する二つの乗数選択回路と、 前記各乗算回路からの二つの出力データを連結する連結
回路と、 前記各乗算回路に対応して、それぞれの出力データを保
持する第1および第2の出力保持回路と、 これら第1および第2の出力保持回路からの二つの出力
データを加算する第1の加算回路と、 この第1の加算回路からの出力データと、前記連結回路
によって連結されたデータとを所定のビット位置にあわ
せて加算する第2の加算回路とを備え、 四組のm/2ビット×n/2ビットの乗算を行う際に
は、前記各被乗数選択回路が2組のm/2ビットの被乗
数を選択し、前記各乗数選択回路が各被乗数に対応する
n/2ビットの乗数を選択して、前記各乗算回路に入力
して2組の乗算を並列に行い、それら二つの出力データ
を前記第1および第2の出力保持回路にて保持し、 さらに、再度、前記各被乗数選択回路が残りの2組のm
/2ビットの被乗数をそれぞれ選択し、前記各乗数選択
回路が各被乗数に対応する残りのn/2ビットの乗数を
選択して、前記各乗算回路に入力して残りの2組の乗算
を並列に行い、 mビット×nビットの乗算を行う際には、一方の乗算回
路に接続される被乗数選択回路がmビットのうち上位m
/2ビットの被乗数を選択し、対応する乗数選択回路が
nビットのうち下位n/2ビットの乗数を選択して、他
方の乗算回路に接続される被乗数選択回路がmビットの
うち下位m/2ビットの被乗数を選択し、対応する乗数
選択回路がnビットのうち上位n/2ビットの乗数を選
択して、前記各乗算回路に入力して(mビットのうち上
位m/2ビット)×(nビットのうち下位n/2ビッ
ト)および(mビットのうち下位m/2ビット)×(n
ビットのうち上位n/2ビット)の2組の乗算を並列に
行い、それら二つの出力データを前記第1および第2の
出力保持回路にて保持し、 さらに、再度、一方の乗算回路に接続される被乗数選択
回路がmビットのうち下位m/2ビットの被乗数を選択
し、対応する乗数選択回路がnビットのうち下位n/2
ビットの乗数を選択して、他方の乗算回路に接続される
被乗数選択回路がmビットのうち上位m/2ビットの被
乗数を選択し、対応する乗数選択回路がnビットのうち
上位n/2ビットの乗数を選択して、前記各乗算回路に
入力して(mビットのうち下位m/2ビット)×(nビ
ットのうち下位n/2ビット)および(mビットのうち
上位m/2ビット)×(nビットのうち上位n/2ビッ
ト)の2組の乗算を並列に行い、それら二つの乗算結果
を前記連結回路にて連結すると共に、前記第1および第
2の出力保持回路に保持されている2組の出力データを
前記第1の加算回路にて加算し、 この第1の加算回路の加算結果と前記連結回路にて連結
されたデータとを、前記第2の加算回路にて所定のビッ
ト位置にあわせて加算することを特徴とする乗算回路。 - 【請求項3】 m/2ビット×n/2ビットの乗算を行
う二つの乗算回路と、 これらの各乗算回路の被乗数入力側に接続され、複数の
被乗数から一つを選択する二つの被乗数選択回路と、 前記各乗算回路の乗数入力側に接続され、複数の乗数か
ら一つを選択する二つの乗数選択回路と、 前記各乗算回路からの二つの出力データを連結する連結
回路と、 前記各乗算回路に対応して、それぞれの出力データを保
持する第1および第2の出力保持回路と、 二つのデータを加算する加算回路と、 この加算回路の加算結果を保持する加算出力保持回路
と、 前記加算回路への入力データを切換え選択する加算入力
選択回路とを備え、 四組のm/2ビット×n/2ビットの乗算を行う際に
は、前記各被乗数選択回路が2組のm/2ビットの被乗
数をそれぞれ選択し、前記各乗数選択回路が各被乗数に
対応するn/2ビットの乗数を選択して、前記各乗算回
路に入力して2組の乗算を並列に行い、それら二つの出
力データを前記第1および第2の出力保持回路にて保持
し、 さらに、再度、前記各被乗数選択回路が残りの2組のm
/2ビットの被乗数をそれぞれ選択し、前記各乗数選択
回路が各被乗数に対応する残りのn/2ビットの乗数を
選択して、前記各乗算回路に入力して残りの2組の乗算
を並列に行い、 mビット×nビットの乗算を行う際には、一方の乗算回
路に接続される被乗数選択回路がmビットのうち上位m
/2ビットの被乗数を選択し、対応する乗数選択回路が
nビットのうち下位n/2ビットの乗数を選択して、他
方の乗算回路に接続される被乗数選択回路がmビットの
うち下位m/2ビットの被乗数を選択し、対応する乗数
選択回路がnビットのうち上位n/2ビットの乗数を選
択して、前記各乗算回路に入力して(mビットのうち上
位m/2ビット)×(nビットのうち下位n/2ビッ
ト)および(mビットのうち下位m/2ビット)×(n
ビットのうち上位n/2ビット)の2組の乗算を並列に
行い、それら二つの出力データを前記第1および第2の
出力保持回路にて保持し、 さらに、再度、一方の乗算回路に接続される被乗数選択
回路がmビットのうち下位m/2ビットの被乗数を選択
し、対応する乗数選択回路がnビットのうち下位n/2
ビットの乗数を選択して、他方の乗算回路に接続される
被乗数選択回路がmビットのうち上位m/2ビットの被
乗数を選択し、対応する乗数選択回路がnビットのうち
上位n/2ビットの乗数を選択して、前記各乗算回路に
入力して(mビットのうち下位m/2ビット)×(nビ
ットのうち下位n/2ビット)および(mビットのうち
上位m/2ビット)×(nビットのうち上位n/2ビッ
ト)の2組の乗算を並列に行うと共に、前記第1および
第2の出力保持回路にて保持された加算結果を前記加算
入力選択回路にて選択して、前記加算回路にて加算し、
その結果を前記加算出力保持回路にて保持し、 前記第1および第2の出力保持回路に保持されている2
組の出力データを前記連結回路にて連結し、 この連結回路にて連結されたデータと前記加算出力保持
回路に保持された加算結果とを、前記加算入力選択回路
にて選択して、前記加算回路にて所定のビット位置にあ
わせて加算することを特徴とする乗算回路。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP25397097A JP3479438B2 (ja) | 1997-09-18 | 1997-09-18 | 乗算回路 |
US09/156,674 US6286024B1 (en) | 1997-09-18 | 1998-09-18 | High-efficiency multiplier and multiplying method |
US09/906,095 US20010044816A1 (en) | 1997-09-18 | 2001-07-17 | High-efficiency multiplier and multiplying method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP25397097A JP3479438B2 (ja) | 1997-09-18 | 1997-09-18 | 乗算回路 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH1195981A true JPH1195981A (ja) | 1999-04-09 |
JP3479438B2 JP3479438B2 (ja) | 2003-12-15 |
Family
ID=17258472
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP25397097A Expired - Fee Related JP3479438B2 (ja) | 1997-09-18 | 1997-09-18 | 乗算回路 |
Country Status (2)
Country | Link |
---|---|
US (2) | US6286024B1 (ja) |
JP (1) | JP3479438B2 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019082511A1 (ja) * | 2017-10-23 | 2019-05-02 | 日立オートモティブシステムズ株式会社 | 演算装置及び車載制御装置 |
WO2019189878A1 (ja) * | 2018-03-30 | 2019-10-03 | 国立研究開発法人理化学研究所 | 演算装置および演算システム |
Families Citing this family (88)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6556044B2 (en) | 2001-09-18 | 2003-04-29 | Altera Corporation | Programmable logic device including multipliers and configurations thereof to reduce resource utilization |
JP3139466B2 (ja) * | 1998-08-28 | 2001-02-26 | 日本電気株式会社 | 乗算器及び積和演算器 |
US6421698B1 (en) * | 1998-11-04 | 2002-07-16 | Teleman Multimedia, Inc. | Multipurpose processor for motion estimation, pixel processing, and general processing |
US6574651B1 (en) * | 1999-10-01 | 2003-06-03 | Hitachi, Ltd. | Method and apparatus for arithmetic operation on vectored data |
US6598064B1 (en) * | 2000-01-04 | 2003-07-22 | National Semiconductor Corporation | Split multiplier array and method of operation |
US7062526B1 (en) * | 2000-02-18 | 2006-06-13 | Texas Instruments Incorporated | Microprocessor with rounding multiply instructions |
US7191202B2 (en) | 2001-05-25 | 2007-03-13 | Sun Microsystems, Inc. | Comparator unit for comparing values of floating point operands |
US7363337B2 (en) | 2001-05-25 | 2008-04-22 | Sun Microsystems, Inc. | Floating point divider with embedded status information |
US7613762B2 (en) * | 2001-05-25 | 2009-11-03 | Sun Microsystems, Inc. | Floating point remainder with embedded status information |
US7003540B2 (en) * | 2001-05-25 | 2006-02-21 | Sun Microsystems, Inc. | Floating point multiplier for delimited operands |
US7366749B2 (en) * | 2001-05-25 | 2008-04-29 | Sun Microsystems, Inc. | Floating point adder with embedded status information |
US7430576B2 (en) * | 2001-05-25 | 2008-09-30 | Sun Microsystems, Inc. | Floating point square root provider with embedded status information |
US7228324B2 (en) * | 2001-05-25 | 2007-06-05 | Sun Microsystems, Inc. | Circuit for selectively providing maximum or minimum of a pair of floating point operands |
US7069289B2 (en) * | 2001-05-25 | 2006-06-27 | Sun Microsystems, Inc. | Floating point unit for detecting and representing inexact computations without flags or traps |
US7069288B2 (en) * | 2001-05-25 | 2006-06-27 | Sun Microsystems, Inc. | Floating point system with improved support of interval arithmetic |
US6993549B2 (en) * | 2001-05-25 | 2006-01-31 | Sun Microsystems, Inc. | System and method for performing gloating point operations involving extended exponents |
US7133890B2 (en) * | 2001-05-25 | 2006-11-07 | Sun Microsystems, Inc. | Total order comparator unit for comparing values of two floating point operands |
US7395297B2 (en) * | 2001-05-25 | 2008-07-01 | Sun Microsystems, Inc. | Floating point system that represents status flag information within a floating point operand |
US7831652B2 (en) | 2001-05-25 | 2010-11-09 | Oracle America, Inc. | Floating point multiplier with embedded status information |
US7016928B2 (en) * | 2001-05-25 | 2006-03-21 | Sun Microsystems, Inc. | Floating point status information testing circuit |
US7444367B2 (en) * | 2001-05-25 | 2008-10-28 | Sun Microsystems, Inc. | Floating point status information accumulation circuit |
WO2003088033A1 (en) * | 2002-04-09 | 2003-10-23 | University Of Rochester | Multiplier-based processor-in-memory architectures for image and graphics processing |
US7219117B2 (en) * | 2002-12-17 | 2007-05-15 | Sun Microsystems, Inc. | Methods and systems for computing floating-point intervals |
US7236999B2 (en) * | 2002-12-17 | 2007-06-26 | Sun Microsystems, Inc. | Methods and systems for computing the quotient of floating-point intervals |
US7082592B1 (en) | 2003-06-16 | 2006-07-25 | Altera Corporation | Method for programming programmable logic device having specialized functional blocks |
US7318080B2 (en) * | 2003-11-06 | 2008-01-08 | Telefonaktiebolaget L M Ericsson (Publ) | Split radix multiplication |
US7698358B1 (en) | 2003-12-24 | 2010-04-13 | Altera Corporation | Programmable logic device with specialized functional block |
US7769797B2 (en) * | 2004-01-20 | 2010-08-03 | Samsung Electronics Co., Ltd. | Apparatus and method of multiplication using a plurality of identical partial multiplication modules |
US7506017B1 (en) | 2004-05-25 | 2009-03-17 | Altera Corporation | Verifiable multimode multipliers |
US20060004903A1 (en) * | 2004-06-30 | 2006-01-05 | Itay Admon | CSA tree constellation |
EP1710689A1 (en) * | 2005-04-07 | 2006-10-11 | STMicroelectronics (Research & Development) Limited | Combining circuitry for multipliers |
US8620980B1 (en) | 2005-09-27 | 2013-12-31 | Altera Corporation | Programmable device with specialized multiplier blocks |
US8266199B2 (en) | 2006-02-09 | 2012-09-11 | Altera Corporation | Specialized processing block for programmable logic device |
US8041759B1 (en) | 2006-02-09 | 2011-10-18 | Altera Corporation | Specialized processing block for programmable logic device |
US8301681B1 (en) | 2006-02-09 | 2012-10-30 | Altera Corporation | Specialized processing block for programmable logic device |
US8266198B2 (en) | 2006-02-09 | 2012-09-11 | Altera Corporation | Specialized processing block for programmable logic device |
US7739324B1 (en) | 2006-03-22 | 2010-06-15 | Cadence Design Systems, Inc. | Timing driven synthesis of sum-of-product functional blocks |
US7836117B1 (en) | 2006-04-07 | 2010-11-16 | Altera Corporation | Specialized processing block for programmable logic device |
US7822799B1 (en) | 2006-06-26 | 2010-10-26 | Altera Corporation | Adder-rounder circuitry for specialized processing block in programmable logic device |
US8386550B1 (en) | 2006-09-20 | 2013-02-26 | Altera Corporation | Method for configuring a finite impulse response filter in a programmable logic device |
US7930336B2 (en) | 2006-12-05 | 2011-04-19 | Altera Corporation | Large multiplier for programmable logic device |
US8386553B1 (en) | 2006-12-05 | 2013-02-26 | Altera Corporation | Large multiplier for programmable logic device |
US7814137B1 (en) | 2007-01-09 | 2010-10-12 | Altera Corporation | Combined interpolation and decimation filter for programmable logic device |
US7865541B1 (en) | 2007-01-22 | 2011-01-04 | Altera Corporation | Configuring floating point operations in a programmable logic device |
US8650231B1 (en) | 2007-01-22 | 2014-02-11 | Altera Corporation | Configuring floating point operations in a programmable device |
US8645450B1 (en) | 2007-03-02 | 2014-02-04 | Altera Corporation | Multiplier-accumulator circuitry and methods |
US7949699B1 (en) | 2007-08-30 | 2011-05-24 | Altera Corporation | Implementation of decimation filter in integrated circuit device using ram-based data storage |
US8959137B1 (en) | 2008-02-20 | 2015-02-17 | Altera Corporation | Implementing large multipliers in a programmable integrated circuit device |
US8244789B1 (en) | 2008-03-14 | 2012-08-14 | Altera Corporation | Normalization of floating point operations in a programmable integrated circuit device |
US8626815B1 (en) | 2008-07-14 | 2014-01-07 | Altera Corporation | Configuring a programmable integrated circuit device to perform matrix multiplication |
US8255448B1 (en) | 2008-10-02 | 2012-08-28 | Altera Corporation | Implementing division in a programmable integrated circuit device |
US8307023B1 (en) | 2008-10-10 | 2012-11-06 | Altera Corporation | DSP block for implementing large multiplier on a programmable integrated circuit device |
US8468192B1 (en) | 2009-03-03 | 2013-06-18 | Altera Corporation | Implementing multipliers in a programmable integrated circuit device |
US8549055B2 (en) | 2009-03-03 | 2013-10-01 | Altera Corporation | Modular digital signal processing circuitry with optionally usable, dedicated connections between modules of the circuitry |
US8645449B1 (en) | 2009-03-03 | 2014-02-04 | Altera Corporation | Combined floating point adder and subtractor |
US8886696B1 (en) | 2009-03-03 | 2014-11-11 | Altera Corporation | Digital signal processing circuitry with redundancy and ability to support larger multipliers |
US8706790B1 (en) | 2009-03-03 | 2014-04-22 | Altera Corporation | Implementing mixed-precision floating-point operations in a programmable integrated circuit device |
US8805916B2 (en) | 2009-03-03 | 2014-08-12 | Altera Corporation | Digital signal processing circuitry with redundancy and bidirectional data paths |
US8650236B1 (en) | 2009-08-04 | 2014-02-11 | Altera Corporation | High-rate interpolation or decimation filter in integrated circuit device |
US8412756B1 (en) | 2009-09-11 | 2013-04-02 | Altera Corporation | Multi-operand floating point operations in a programmable integrated circuit device |
US8396914B1 (en) | 2009-09-11 | 2013-03-12 | Altera Corporation | Matrix decomposition in an integrated circuit device |
US7948267B1 (en) | 2010-02-09 | 2011-05-24 | Altera Corporation | Efficient rounding circuits and methods in configurable integrated circuit devices |
US8539016B1 (en) | 2010-02-09 | 2013-09-17 | Altera Corporation | QR decomposition in an integrated circuit device |
US8601044B2 (en) | 2010-03-02 | 2013-12-03 | Altera Corporation | Discrete Fourier Transform in an integrated circuit device |
US8458243B1 (en) | 2010-03-03 | 2013-06-04 | Altera Corporation | Digital signal processing circuit blocks with support for systolic finite-impulse-response digital filtering |
US8484265B1 (en) | 2010-03-04 | 2013-07-09 | Altera Corporation | Angular range reduction in an integrated circuit device |
US8510354B1 (en) | 2010-03-12 | 2013-08-13 | Altera Corporation | Calculation of trigonometric functions in an integrated circuit device |
US8539014B2 (en) | 2010-03-25 | 2013-09-17 | Altera Corporation | Solving linear matrices in an integrated circuit device |
US8589463B2 (en) | 2010-06-25 | 2013-11-19 | Altera Corporation | Calculation of trigonometric functions in an integrated circuit device |
US8862650B2 (en) | 2010-06-25 | 2014-10-14 | Altera Corporation | Calculation of trigonometric functions in an integrated circuit device |
US8577951B1 (en) | 2010-08-19 | 2013-11-05 | Altera Corporation | Matrix operations in an integrated circuit device |
US8645451B2 (en) | 2011-03-10 | 2014-02-04 | Altera Corporation | Double-clocked specialized processing block in an integrated circuit device |
US9600278B1 (en) | 2011-05-09 | 2017-03-21 | Altera Corporation | Programmable device using fixed and configurable logic to implement recursive trees |
US8812576B1 (en) | 2011-09-12 | 2014-08-19 | Altera Corporation | QR decomposition in an integrated circuit device |
US9053045B1 (en) | 2011-09-16 | 2015-06-09 | Altera Corporation | Computing floating-point polynomials in an integrated circuit device |
US8949298B1 (en) | 2011-09-16 | 2015-02-03 | Altera Corporation | Computing floating-point polynomials in an integrated circuit device |
US8762443B1 (en) | 2011-11-15 | 2014-06-24 | Altera Corporation | Matrix operations in an integrated circuit device |
US8543634B1 (en) | 2012-03-30 | 2013-09-24 | Altera Corporation | Specialized processing block for programmable integrated circuit device |
US9098332B1 (en) | 2012-06-01 | 2015-08-04 | Altera Corporation | Specialized processing block with fixed- and floating-point structures |
US8996600B1 (en) | 2012-08-03 | 2015-03-31 | Altera Corporation | Specialized processing block for implementing floating-point multiplier with subnormal operation support |
US9207909B1 (en) | 2012-11-26 | 2015-12-08 | Altera Corporation | Polynomial calculations optimized for programmable integrated circuit device structures |
US9189200B1 (en) | 2013-03-14 | 2015-11-17 | Altera Corporation | Multiple-precision processing block in a programmable integrated circuit device |
US9348795B1 (en) | 2013-07-03 | 2016-05-24 | Altera Corporation | Programmable device using fixed and configurable logic to implement floating-point rounding |
US9379687B1 (en) | 2014-01-14 | 2016-06-28 | Altera Corporation | Pipelined systolic finite impulse response filter |
US9684488B2 (en) | 2015-03-26 | 2017-06-20 | Altera Corporation | Combined adder and pre-adder for high-radix multiplier circuit |
KR102338863B1 (ko) * | 2015-09-09 | 2021-12-13 | 삼성전자주식회사 | 연산을 제어하기 위한 장치 및 방법 |
US10942706B2 (en) | 2017-05-05 | 2021-03-09 | Intel Corporation | Implementation of floating-point trigonometric functions in an integrated circuit device |
CN107315710B (zh) * | 2017-06-27 | 2020-09-11 | 上海兆芯集成电路有限公司 | 全精度及部分精度数值的计算方法及装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4754421A (en) * | 1985-09-06 | 1988-06-28 | Texas Instruments Incorporated | Multiple precision multiplication device |
JPS62229440A (ja) * | 1986-03-31 | 1987-10-08 | Toshiba Corp | 配列乗算器 |
US6014684A (en) * | 1997-03-24 | 2000-01-11 | Intel Corporation | Method and apparatus for performing N bit by 2*N-1 bit signed multiplication |
-
1997
- 1997-09-18 JP JP25397097A patent/JP3479438B2/ja not_active Expired - Fee Related
-
1998
- 1998-09-18 US US09/156,674 patent/US6286024B1/en not_active Expired - Fee Related
-
2001
- 2001-07-17 US US09/906,095 patent/US20010044816A1/en not_active Abandoned
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019082511A1 (ja) * | 2017-10-23 | 2019-05-02 | 日立オートモティブシステムズ株式会社 | 演算装置及び車載制御装置 |
JP2019079183A (ja) * | 2017-10-23 | 2019-05-23 | 日立オートモティブシステムズ株式会社 | 演算装置及び車載制御装置 |
WO2019189878A1 (ja) * | 2018-03-30 | 2019-10-03 | 国立研究開発法人理化学研究所 | 演算装置および演算システム |
CN111971649A (zh) * | 2018-03-30 | 2020-11-20 | 国立研究开发法人理化学研究所 | 运算装置和运算系统 |
JPWO2019189878A1 (ja) * | 2018-03-30 | 2021-04-08 | 国立研究開発法人理化学研究所 | 演算装置および演算システム |
Also Published As
Publication number | Publication date |
---|---|
JP3479438B2 (ja) | 2003-12-15 |
US6286024B1 (en) | 2001-09-04 |
US20010044816A1 (en) | 2001-11-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3479438B2 (ja) | 乗算回路 | |
US6230179B1 (en) | Finite field multiplier with intrinsic modular reduction | |
JP3667635B2 (ja) | 演算装置 | |
EP0890899A2 (en) | Multiplication method and apparatus | |
JPS6347874A (ja) | 算術演算装置 | |
US6009450A (en) | Finite field inverse circuit | |
JP2012528391A (ja) | 飽和を伴う整数乗算および乗算加算演算 | |
US4677583A (en) | Apparatus for decimal multiplication | |
US5757377A (en) | Expediting blending and interpolation via multiplication | |
US5870322A (en) | Multiplier to selectively perform unsigned magnitude multiplication or signed magnitude multiplication | |
US6202078B1 (en) | Arithmetic circuit using a booth algorithm | |
US5912904A (en) | Method for the production of an error correction parameter associated with the implementation of modular operations according to the Montgomery method | |
JPH10503311A (ja) | ガロアフィールド多項式乗算/除算回路およびそれを組込むディジタル信号プロセッサ | |
JP3252954B2 (ja) | 乗算方法および乗算回路 | |
US20050246406A9 (en) | Emod a fast modulus calculation for computer systems | |
KR100315303B1 (ko) | 디지탈 신호 처리기 | |
KR100251547B1 (ko) | 디지탈신호처리기(Digital Sgnal Processor) | |
JPH0621983B2 (ja) | 乗算器 | |
KR100386979B1 (ko) | 갈로아체상에서 비트 직렬 승산기의 병렬화 방법 및 이를이용한 직병렬 승산기 | |
JP2001134556A (ja) | 繰り返し型乗算器とアレイ型乗算器 | |
KR100246472B1 (ko) | 디지탈신호처리기 | |
JPH0414173A (ja) | 固定小数点演算器 | |
JPH08292876A (ja) | 演算装置 | |
JPH1069372A (ja) | 演算実行方法及び演算装置 | |
KR19990021767A (ko) | 디지탈신호처리기 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081003 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081003 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091003 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101003 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111003 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111003 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121003 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131003 Year of fee payment: 10 |
|
LAPS | Cancellation because of no payment of annual fees |