JP3851025B2 - Division circuit - Google Patents

Division circuit Download PDF

Info

Publication number
JP3851025B2
JP3851025B2 JP18597699A JP18597699A JP3851025B2 JP 3851025 B2 JP3851025 B2 JP 3851025B2 JP 18597699 A JP18597699 A JP 18597699A JP 18597699 A JP18597699 A JP 18597699A JP 3851025 B2 JP3851025 B2 JP 3851025B2
Authority
JP
Japan
Prior art keywords
circuit
adder
input
division
result
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
JP18597699A
Other languages
Japanese (ja)
Other versions
JP2001014142A (en
Inventor
秀樹 福田
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.)
New Japan Radio Co Ltd
Original Assignee
New Japan Radio Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by New Japan Radio Co Ltd filed Critical New Japan Radio Co Ltd
Priority to JP18597699A priority Critical patent/JP3851025B2/en
Publication of JP2001014142A publication Critical patent/JP2001014142A/en
Application granted granted Critical
Publication of JP3851025B2 publication Critical patent/JP3851025B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

【0001】
【発明の属する技術分野】
本発明は、ディジタル信号処理装置等に用いられる除算回路に係り、特に、演算速度の向上等を図ったものに関する。
【0002】
【従来の技術】
ディジタル値の除算処理としては、例えば、比較と減算とを繰り返すことにより除算値を求める方法やMSB(Most Significant Bit)から逐次除算を試行錯誤する方法等が従来から知られている。
【0003】
【発明が解決しようとする課題】
しかしながら、いずれもその処理手順が乗算の場合に比して煩雑であり、そのため、このようなアルゴリズムに基づく除算回路は、乗算回路に比して回路構成が複雑となるばかりか比較的長い演算時間を要する傾向にあった。
そのため、従来、ディジタル信号処理回路等においては、可能な限り除算が出現しないようなアルゴリズムを採用し、除算回路を用いることなく回路を構成するものが提案されていたが、演算手順が十分に簡素なものとは言えず、結局、回路構成も十分に簡素化されたものがなかった。
【0004】
本発明は、上記実状に鑑みてなされたもので、簡素な回路構成で演算時間が短くて済む除算回路を提供するものである。
【0005】
【課題を解決するための手段】
上記発明の目的を達成するため、本発明に係る除算回路は、
n進法で符号化された被除数Uと除数Yとの除算結果X=U/Yを算出する除算回路であって、
1/YがΣa(1/n)と多項式に近似でき、ここで、tは1から順に選択される自然数であり、aは、演算定数である場合、
U×aを演算し、次に、この演算結果をtビットその最下位ビット側へシフトし、このシフト結果を累積的に加算してゆくことを前記tが1から予め定めた自然数まで行い、その演算結果を除算結果Xとして出力するよう構成されてなるものである。
【0006】
かかる構成の除算回路は、除数Yについて1/YがΣa(1/n)と多項式に近似でき、U/Yは、U×Σa(1/n)と表されることに着目し、かかる近似多項式に基づく演算が実現できるよう構成されたものであり、演算処理の短縮を図ることができることとなるものである。
【0007】
より具体的には、例えば、U及びYが2進数である場合、2つの入力データの乗算を行う乗算器と、
前記乗算器の出力データを、その最下位ビット側に外部から入力されるシフト信号に応じたビット数シフトして出力する右シフト回路と。
2つの入力データの加算を行う加算器と、
前記加算器の出力データに対して所定の遅延を施して出力する遅延回路と、
所定のタイミングで開閉成し、前記遅延回路からの出力データを前記加算器の一方の入力段へ入力する切換スイッチとを具備し、
前記加算器の他方の入力段には、前記右シフト回路の出力データが入力され、1/YがΣa(1/2)と多項式に近似でき、ここで、tは1から順に選択される自然数であり、aは演算定数である場合、前記乗算器には、前記被除数Uと、前記演算定数aとが、tが1から予め定められた自然数までに対応する回数順次入力され、
前記右シフト回路には、前記tに対応するシフト信号Tが前記tが1から予め定められた自然数までに対応する回数順次入力され、
前記切換スイッチの開閉動作によって、前記加算器において、前記右シフト回路からの出力データに、前記遅延回路を介しての前記加算器からのフィードバックデータが前記tが1から予め定めた自然数までに対応する回数累積的に加算されて、当該累積加算結果が除算結果Xとして得られるよう構成されてなるものが好適である。
【0008】
【発明の実施の形態】
以下、本発明の実施の形態について、図1乃至図3を参照しつつ説明する。
なお、以下に説明する部材、配置等は本発明を限定するものではなく、本発明の趣旨の範囲内で種々改変することができるものである。
最初に、本発明の実施の形態における除算回路の構成について図1を参照しつつ説明する。
この除算回路は、乗算器1と、右シフト回路2と、加算器3と、遅延回路4と、切換スイッチ5とを主たる構成要素として構成されたものとなっている。
乗算器1は、ディジタル値の乗算を行う公知・周知の回路構成を有してなるもので、被除数Uと演算定数aとが入力されて、これら2数の乗算が行われるようになっているものである。
【0009】
右シフト回路2は、シフト信号Tが入力され、乗算器1から入力された演算結果に対して、シフト信号Tに応じた右シフトを施し(詳細は後述)、加算器3へ出力するようになっており、公知・周知の構成を有してなるものである。
加算器3は、2つのデータの加算演算を行うもので、それ自体は公知・周知の構成を有してなるものである。本発明の実施の形態においては、この加算器3の出力側には、遅延回路4が接続されており、加算器3から出力されたデータが遅延回路4によって所定の遅延を受けた後、遅延回路4の出力側に接続された切換スイッチ5を介して加算器3の一方の入力段に入力されるようになっている。そして、この加算器3においては、他の入力段に入力された右シフト回路2からの入力データとの加算演算が行われるものとなっている。
【0010】
遅延回路4は、それ自体は、公知・周知の構成を有してなるものであるが、本発明の実施の形態においては、後述するようなこの除算回路の動作に鑑みて、加算器3での演算時間に比して十分大きな遅延時間に設定されたものとなっている。なお、このような遅延回路4は、例えば、ラッチやシフトレジスタなどのクロックの入力によってその駆動が行われる論理素子によって実現可能である。
切換スイッチ5は、遅延回路4で遅延された加算器3の出力データと、右シフト回路2からの出力データとが、加算器3で加算演算されるのに適したタイミングで閉成状態とされるようになっているものである。
【0011】
次に、この除算回路における演算処理の基本的な原理について説明する。
まず、例えば2進数Uを2進数Yで除するとする。
ここで、除数Yは、2の倍数であるとし、Y=(Y+1)2またはY=(Y−1)2と置き換えられるとする(但し、i=0、1、2、・・・)。
一方、U÷Yは、U×(1/Y)と表現されることから、1/Y={1/(Y+1)}×(1/2)となる。
ここで、{1/(Y+1)}は、次のような多項式に分解できる。
すなわち、1/(Y+1)=(1/ Y)−(1/ Y+(1/ Y−(1/ Y+(1/ Y+・・・と展開できる。したがって、この式は、下記する数式1のように整理することができる。
【0012】
【数1】

Figure 0003851025
【0013】
ここで、例えば、要求される演算精度が1/2程度であり、lがLより十分に大であるとすると、この数式1は、下記する数式2のように近似することができる。
【0014】
【数2】
Figure 0003851025
【0015】
同様にして、{1/(Y−1)}は、1/(Y+1)=(1/ Y)+(1/ Y+(1/ Y+(1/ Y+(1/ Y+・・・と多項式に展開できる。
【0016】
そして、先の{1/(Y−1)}の場合と同様に、下記する数式3のように整理することができる。
【0017】
【数3】
Figure 0003851025
【0018】
そして、要求される演算精度が1/2程度であり、lがLより十分に大であるとすると、この数式3は、下記する数式4のように近似することができる。
【0019】
【数4】
Figure 0003851025
【0020】
さらに、Y及びYが、共に2の倍数で、それぞれY=(Y+1)2、Y=(Y−1)2と表すことができる場合(但し、j=0、1、2、・・・)、qが1より十分に大とすれば、これらの式は、それぞれ下記する数式5、数式6のように近似することができる。
【0021】
【数5】
Figure 0003851025
【0022】
【数6】
Figure 0003851025
【0023】
したがって、上述したように、YあるいはYを、YあるいはYの多項式として展開する手順を、YあるいはYに相当する値が1となるまで順次繰り返してゆき、YあるいはYを、最終的に得られた近似式で表し、そのYあるいはYを、1/Yの式へ代入することにより、U/Yの除算式について下記するような数式7を得ることができる。
【0024】
【数7】
Figure 0003851025
【0025】
すなわち、1/Yを(1/2)の多項式で表現することができることとなる。なお、数式7においてaは演算定数である。
そして、ディジタル演算においては、この数式7における「U×a」の部分については、通常の乗算処理を行えばよく、「×(1/2)」の部分については、2進数の特性からU×aの演算結果を、t回右シフト(換言すれば、U×aの演算結果を、そのLSB(Least Significant Bit)側へt回シフト)することに相当することから、tの値に応じたデータのシフト処理を行うことで、除算処理を行うことなくU/Yの演算結果を得ることができることとなる。
先に図1に示された除算回路は、このような観点に基づき構成されたものである。
【0026】
なお、実際には、ある被除数Uに対して、除数Yと演算精度1/2とが与えられ、演算精度1/2を満足するように有限値fが決定されて、それを基に、先に説明したように、YあるいはYの近似多項式が求められ、さらにYあるいはYの近似多項式が求められるというようにして順次多項式への展開が繰り返され、先の数式7で表された近似多項式に対応するものが求められる。そして、この近似多項式に基づく演算処理が行われてU/Yが求められることとなる。
【0027】
次に、図2及び図3を参照しつつ、上述したようにU/Yについて数式7で表された近似式を求めるための処理手順について説明する。
最初に、U/Yが数式7に示された如くの近似多項式と表される場合において、各項の指数部のtの値、換言すれば、U×aの演算結果を右シフトする際の各々のシフト量S1,S2,・・・,Smを求める手順について、図2を参照しつつ説明する。
処理が開始されると、まず、演算パラメータm,S,Dの値が共に初期値ゼロに設定される(図2のステップ100参照)。
次いで、Yが1か否かが判定され(図2のステップ102参照)、Yが「1」であると判定された場合(NOの場合)には、処理の必要なしとして一連の処理が終了されることとなる一方、「1」であると判定された場合(YESの場合)にはステップ104へ進み、Yが偶数か否かが判定されることとなる。
【0028】
そして、Yが偶数であると判定された場合(YESの場合)には、ステップ106へ進み、演算パラメータSすなわちシフト量Sの値が、このステップ106を実行する直前のSの値に「1」を加算した値へ更新されることとなる。また、このステップ106においては、Yの値がこのステップ106の実行直前のYを2で除した値に更新され、その後、先のステップ102へ戻り一連の処理が繰り返されることとなる。
すなわち、Yが偶数である限りステップ102,104,106が繰り返されてシフト量S1,S2,・・・と求められてゆくこととなる。
【0029】
一方、ステップ104において、Yが偶数ではないと判定された場合(NOの場合)には、ステップ108へ進み、その時点における演算パラメータm,D,Sの各々の値が第1回目の結果として出力され、また、必要に応じて図示されない所定の記憶装置等に記憶されることとなる。なお、図2のステップ108において示された各々の数値は、あくまでも一例である。
次いで、ステップ110へ進み、演算パラメータmの値が、このステップ110の実行直前の値に「1」を加算した値に更新されると共に、Yの値がステップ110の実行直前の値に「1」を加算した値に更新されることとなる。
【0030】
そして、Yの値が「4」の倍数か否かが判定され(図2のステップ112参照)、4の倍数である場合(YESの場合)には、ステップ114へ進み、演算パラメータDが「+1」に設定されると共に、演算パラメータSが、このステップ114の実行直前の値に「2」を加算した値に更新される。さらに、Yの値が、このステップ114の実行直前の値を「4」で除した値に更新されて、その後、先のステップ102へ戻ることとなる。
【0031】
一方、ステップ112において、Yの値が4の倍数ではないと判定された場合(NOの場合)には、ステップ116へ進み、Yの値が、このステップ116の実行直前の値から「2」を減じた値に更新されることとなる。
次いで、ステップ118において、演算パラメータDの値が「−1」に設定されると共に、演算パラメータSの値が、このステップ118の実行直前の値に「2」を加算した値に更新され、さらに、Yが、このステップ118の実行直前の値を「4」で除した値に更新されて、先のステップ102へ戻ることとなる。
【0032】
ここで、ステップ110乃至118の処理の意味について説明する。まず、ステップ110以降の処理が行われる際のYは、奇数である。そのため、2のn乗という形とするためには、奇数に「1」を加算し又は奇数から「1」を減算して偶数とする必要がある。
さらに、奇数の前後の値は、いずれかが2の倍数であり、他方が4の倍数であるという数の性質を利用し、奇数であるYを4の倍数となるように「1」を加算するか又は「1」を減算するかして、4の倍数となったところで、ステップSを「2」更新するようにしたのが、ステップ110乃至118の処理である。
【0033】
例えば、理解を容易とするため、ステップ110の実行直前においてY=5であったと仮定すると、ステップ110においては、Y=5+1=6とされる。
これは、4の倍数ではないため、ステップ116へ進むこととなり、Y=6−2=4としてYが更新されることとなる。すなわち、このステップ116の処理は、ステップ110の実行直前のYの値から「1」を減算することに相当する。これで、Yは、4の倍数となるため、ステップ118において、シフト量の更新が行われ、また、Yが4で除されるようになっている。
また、ステップ110の実行直前において、例えばY=7の場合は、ステップ110の処理で4の倍数であるY=8となるため、ステップ114へ進みシフト量の更新と、Yの除算が行われようになっている。
【0034】
なお、演算パラメータDは、ステップ110の実行直前のYの値に「1」を加算して4の倍数となった場合と、ならない場合との識別のためのもので、この例では、「1」を加算して4の倍数となった場合にD=−1と、また、「1」を減算して4の倍数となった場合にD=+1としてある、
このようにして、Yの値が「1」となるまで、上述した処理が繰り返されてシフト量S1,S2,・・・,Smが求められることとなる。
【0035】
次に、図3を参照しつつ先の数式7における各項の演算定数aを求める手順について説明する。
処理が開始されると最初に、演算パラメータmが初期値ゼロに設定されると共に、1/Yの近似多項式の第1の段階として1/Y=1/Yと設定されることとなる(図3のステップ200参照)。
次いで、先の図2で説明した手順により求められた演算パラメータm,D,Sの各々の値に関し、最初の一組についての読み込みが行われる(図3のステップ202参照)。なお、図3のステップ202に示された各々の数値は、あくまでも一例である。
【0036】
そして、演算パラメータDの最初の値について、ゼロか否かの判定が行われ(図3のステップ204参照)、Dがゼロと判定された場合(YESの場合)、1/Yに(1/Y)×(1/2)が代入されて1/Yの更新が行われることとなる(図3のステップ206参照)。ここで、Sの値は、先のステップ204で判定されたDと、さらにmと共に先のステップ202において一組として読み込まれた際のものである。またここで、D=0である場合、1/Yがステップ206で説明したような式となるのは、D=0である場合というのは、先の図2に示されたシフト量を求める手順において、ステップ102乃至106が少なくとも一度実行されたことを意味し、これは、Yが2の倍数として少なくとも一回割り切れたことを意味するためである。
【0037】
一方、先のステップ204においてD=0ではないと判定された場合(NOの場合)には、D=+1か否かが判定され(図3のステップ208参照)、D=+1であると判定された場合(YESの場合)には、下記する数式8が1/Yに代入されることとなる(図3のステップ210参照)。
【0038】
【数8】
Figure 0003851025
【0039】
ここで、Sの値は、このステップ210の実行時点におけるDの値と共に先のステップ202においてmの値と共に読み込まれた際のものである。また、nの値は、このステップ210を実行する度毎に1から昇順に増やされるものである。そして、D=1の場合に1/Yが数式8に示された式に置き換えられるのは、D=+1である場合というのは、先の図2に示されたシフト量を求める手順において、ステップ114が実行されたことを意味するためである。
すなわち、ステップ210では、このステップを1回実行する度毎に、その際のnの値に対して、(−1)n−1{(1/Y)(1/2)}が定まり、このステップ210の実行直前までに求められたΣ(−1)n−1{(1/Y)(1/2)}に、新たに求められた(−1)n−1{(1/Y)(1/2)}が加算されて多項式Σ(−1)n−1{(1/Y)(1/2)}が更新され、それが1/Yへ代入されることとなる。
【0040】
一方、先のステップ208において、D=+1ではないと判定された場合(NOの場合)は、D=−1であることを意味することから、下記する数式9が1/Yに代入されることとなる(図3のステップ212参照)。
【0041】
【数9】
Figure 0003851025
【0042】
なお、ここで、S及びnの扱いは、先のステップ210で述べたと同様であり、ここでの再度の説明は省略する。また、D=−1の場合に1/Yが数式9に示された式に置き換えられるのは、D=−1である場合というのは、先の図2に示されたシフト量を求める手順において、ステップ118が実行されたことを意味するためである。
【0043】
上述したステップ206,210,212のいずれかが実行された後は、mの値が、その時点の値に「1」が加算されて更新され(図3のステップ214参照)、これが予め定められた最大値Mと等しいか否かが判定されることとなる(図3のステップ216参照)。この最大値Mは、所望の演算精度を得るのに十分な範囲で適宜選択され得るものである。
そして、このステップ216において、未だm=Mではないと判定された場合(NOの場合)には、先のステップ202へ戻り、上述した一連の処理が繰り返されることとなる。
【0044】
一方、ステップ216において、m=Mであると判定された場合(YESの場合)には、1/Yの近似多項式として必要とされる精度を満たす状態であるとして、ステップ206,210,212の複数回の実行により得られた1/Yに関する多項式が先に示した数式7の形式に展開されることとなる(図3のステップ218参照)。
次いで、数式7の形式に展開された際の各項のaの値と、指数部のtの値とがそれぞれ出力されて(図3のステップ220参照)、一連の処理が終了することとなる。
【0045】
なお、上述したような処理は、例えば、マイクロコンピュータ(図示せず)により図2及び図3に示された手順に従ったソフトウェアを実行させることにより実現でき、その場合には、得られた各々の演算定数a及びtの内、演算定数aをそのマイクロコンピュータから図1に示された回路へ入力すると共に、tについては、シフト信号Tとして所定の信号形式にそのマイクロコンピュータで変換して、あるいは外部の回路によりシフト信号Tに変換して図1に示された回路へ入力するようにすると好適である。
【0046】
次に、図1に示された除算回路によるX=U/Yの演算動作について説明する。
まず、前提として、除数Yについて、数式7の形式に展開した場合の各項のa及び指数部のtの値(換言すればシフト量S1,S2,・・・)が予め求められているものとする。
【0047】
まず、乗算器1に、被除数Uと最初の演算定数aが入力されると、U×aが演算されて、その演算結果は、右シフト回路2へ入力されることとなる。ここで、最初の演算定数aは、先の数式7においてt=1におけるものである。
右シフト回路2においては、乗算器1における演算結果がパラレル入力されるようになっており、そのパラレルデータが入力されると、外部からシフト信号Tが入力され、シフト信号Tに応じたパラレルデータの右シフト(換言すれば、LSB(LeastSignificantBit)側へのビットシフト)が行われる。ここで、シフト信号Tは、先の数式7において、(1/2)の指数部のtの値、すなわち換言すれば、先に図2を参照しつつ説明した手順によって求められたシフト量S1,S2,・・・に対応するもので、乗算器1から演算結果が入力される度毎にシフト量に対応するシフト信号Tが入力されるようになっている。
【0048】
そして、右シフト回路2で右シフトが施されたパラレルデータは、加算器3へ入力されることとなる。
ここで、右シフト回路2からの最初のパラレルデータが加算器3に入力される場合には、切換スイッチ5は開成状態とされており、その結果、右シフト回路2からの最初のパラレルデータは、加算器3からそのまま出力されることとなる。この加算器3からそのまま出力された最初のデータは、初期値が「1」に設定されている遅延回路4へ入力され、遅延されることなく出力されるようになっている。すなわち、遅延回路4は、最初の入力データに対しては、何ら遅延を施すことなく出力するように初期設定されている。
【0049】
一方、乗算器1へは、最初のデータ入力の後、適宜な時間経過後に、再び被除数Uと、次の演算定数aが入力されて乗算が行われ、その乗算結果が右シフト回路2へ出力されることとなる。
右シフト回路2においては、乗算器1からパラレルデータの入力に伴い、先に述べたように予め定められている所定のシフト量に対応するシフト信号Tが外部から入力され、このシフト信号Tに応じた右シフトが乗算器1から入力されたパラレルデータに施され、そのシフト結果は、加算器3へ出力されることとなる。
【0050】
加算器3においては、右シフト回路2からのシフト結果が入力されると共に、切換スイッチ5が閉成状態とされて、先の遅延回路4を介してフィードバックされた最初の出力データが入力されて加算演算が行われることとなる。そして、この加算結果は、遅延回路4により所定時間の遅延が施されて、切換スイッチ5を介して加算器3の入力段へフィードバックされることとなる。一方、この遅延回路4及び切換スイッチ5を介してのデータのフィードバックがなされるまでに、乗算器1では次の演算定数aが入力され、被除数Uとの乗算がなされ、さらに、右シフト回路2で所定のシフトが施されて、そのシフト結果が加算器3へ先のフィードバックデータと共に入力されることとなる。以下、同様にして加算器3での加算演算の結果が次々とフィードバックされて右シフト回路2からの新たなデータへ累積的に加算されてゆき、それが所定の回数、すなわち、先の図3で示された手順にしたがって求められた近似多項式の項の数(図3のステップ218参照)に対応する回数繰り返されて加算器3から得られる出力データがU/Yの演算結果に相当するXとなる。
【0051】
上述した発明の実施の形態においては、被除数及び除数が2進数であるとして説明したが、2進数以外の他のn進数にも同様に適用できることは勿論である。なお、この場合、先の数式7に対応する近似多項式は、被除数U及び除数Yがn進数であるとすれば、X=UΣa(1/n)となり、基本的には、2進数の場合と同様の回路構成による演算処理によってXを算出することができる。
【0052】
【発明の効果】
以上、述べたように、本発明によれば、除算を乗算とシフトと加算とで処理できるようにしたので、回路構成が比較的簡素になり、しかも、演算処理が比較的単純であるため、従来の乗算処理に比して演算時間の短縮が図られるという効果を奏するものである。
【図面の簡単な説明】
【図1】本発明の実施の形態における除算回路の一構成例を示す構成図である。
【図2】本発明の実施の形態における除算回路に用いられる右シフト回路におけるシフト量を求めるための手順を示すフローチャートである。
【図3】本発明の実施の形態における除算回路に入力される演算定数を求めるための手順を示すフローチャートである。
【符号の説明】
1…乗算器
2…右シフト回路
3…加算器
4…遅延回路
5…切換スイッチ[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a division circuit used in a digital signal processing apparatus or the like, and more particularly to a circuit for improving an operation speed or the like.
[0002]
[Prior art]
As digital value division processing, for example, a method of obtaining a division value by repeating comparison and subtraction, a method of trial and error of sequential division from MSB (Most Significant Bit), and the like are conventionally known.
[0003]
[Problems to be solved by the invention]
However, in any case, the processing procedure is complicated as compared with the case of multiplication. Therefore, the division circuit based on such an algorithm has not only a complicated circuit configuration but also a relatively long calculation time compared to the multiplication circuit. There was a tendency to require.
For this reason, in the past, digital signal processing circuits and the like have been proposed that employ an algorithm that does not cause division as much as possible and configure the circuit without using a division circuit, but the calculation procedure is sufficiently simple. After all, the circuit configuration was not sufficiently simplified.
[0004]
The present invention has been made in view of the above circumstances, and provides a division circuit that requires a short circuit time with a simple circuit configuration.
[0005]
[Means for Solving the Problems]
In order to achieve the above object, the divider circuit according to the present invention includes:
a division circuit for calculating a division result X = U / Y between a dividend U and a divisor Y encoded in an n-ary system,
1 / Y can be approximated to Σa t (1 / n) t and polynomial, where, t is a natural number selected from 1 sequentially when a t is a calculation constant,
U × a t is calculated, and then the calculation result is shifted to the least significant bit side by t bits, and the shift result is cumulatively added from 1 to a predetermined natural number. The operation result is output as the division result X.
[0006]
Division circuit having the above configuration, the divisor Y 1 / Y can be approximated to Σa t (1 / n) t and polynomial, U / Y is noted to be expressed as U × Σa t (1 / n ) t However, the calculation based on such an approximate polynomial can be realized, and the calculation process can be shortened.
[0007]
More specifically, for example, when U and Y are binary numbers, a multiplier that multiplies two input data;
A right shift circuit for shifting the output data of the multiplier by shifting the number of bits according to a shift signal input from the outside to the least significant bit side;
An adder for adding two input data;
A delay circuit that outputs a predetermined delay to the output data of the adder; and
A switching switch that opens and closes at a predetermined timing and inputs output data from the delay circuit to one input stage of the adder;
The other input stage of said adder, the right output data of the shift circuit is inputted, 1 / Y can be approximated to Σa t (1/2) t and polynomial, where, t is selected from 1 sequentially that is a natural number, it is a t If a processing constant, the multiplier, and the dividend U, the arithmetic constant a t is, t is the number of times sequentially input corresponding to up to natural number which is determined in advance from the 1 ,
The shift signal T corresponding to the t is sequentially input to the right shift circuit a number of times corresponding to the t from 1 to a predetermined natural number,
By the opening / closing operation of the changeover switch, in the adder, the output data from the right shift circuit corresponds to the feedback data from the adder via the delay circuit from t = 1 to a predetermined natural number. It is preferable that the cumulative addition result is obtained so that the cumulative addition result is obtained as the division result X.
[0008]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, embodiments of the present invention will be described with reference to FIGS. 1 to 3.
The members and arrangements described below do not limit the present invention and can be variously modified within the scope of the gist of the present invention.
First, the configuration of the divider circuit in the embodiment of the present invention will be described with reference to FIG.
This division circuit is configured with a multiplier 1, a right shift circuit 2, an adder 3, a delay circuit 4, and a changeover switch 5 as main components.
The multiplier 1, made of a known-known circuit arrangement for multiplying digital values are input and the dividend U and processing constant a t, so the multiplication of two numbers is carried out It is what.
[0009]
The right shift circuit 2 receives the shift signal T, performs a right shift according to the shift signal T on the operation result input from the multiplier 1 (details will be described later), and outputs the result to the adder 3. It has a known and well-known configuration.
The adder 3 performs an addition operation of two data, and has an arrangement known per se. In the embodiment of the present invention, a delay circuit 4 is connected to the output side of the adder 3, and after the data output from the adder 3 receives a predetermined delay by the delay circuit 4, the delay circuit 4 The signal is input to one input stage of the adder 3 via a change-over switch 5 connected to the output side of the circuit 4. The adder 3 performs an addition operation with the input data from the right shift circuit 2 input to another input stage.
[0010]
Although the delay circuit 4 itself has a known and well-known configuration, in the embodiment of the present invention, an adder 3 is used in view of the operation of the division circuit as described later. The delay time is set to be sufficiently larger than the calculation time. Such a delay circuit 4 can be realized by, for example, a logic element that is driven by a clock input such as a latch or a shift register.
The changeover switch 5 is closed at a timing suitable for the addition operation of the output data of the adder 3 delayed by the delay circuit 4 and the output data of the right shift circuit 2 by the adder 3. It is something that has come to be.
[0011]
Next, the basic principle of arithmetic processing in this division circuit will be described.
First, for example, suppose that the binary number U is divided by the binary number Y.
Here, the divisor Y is assumed to be a multiple of 2 i, Y = (Y 1 +1) 2 i or Y = (Y 2 -1) and replaced with a 2 i (where, i = 0, 1, 2 ...).
On the other hand, since U ÷ Y is expressed as U × (1 / Y), 1 / Y = {1 / (Y 1 +1)} × (1/2 i ).
Here, {1 / (Y 1 +1)} can be decomposed into the following polynomial.
That, 1 / (Y 1 +1) = (1 / Y 1) - (1 / Y 1) 2 + (1 / Y 1) 3 - (1 / Y 1) 4 + (1 / Y 1) 5 + ·・ ・ Can be deployed. Therefore, this equation can be organized as Equation 1 below.
[0012]
[Expression 1]
Figure 0003851025
[0013]
Here, for example, if the required calculation accuracy is about ½ L , and l is sufficiently larger than L, Equation 1 can be approximated as Equation 2 below.
[0014]
[Expression 2]
Figure 0003851025
[0015]
Similarly, {1 / (Y 2 −1)} is 1 / (Y 2 +1) = (1 / Y 2 ) + (1 / Y 2 ) 2 + (1 / Y 2 ) 3 + (1 / Y 2 ) 4 + (1 / Y 2 ) 5 +.
[0016]
Then, similarly to the case of {1 / (Y 1 −1)}, it can be arranged as shown in Equation 3 below.
[0017]
[Equation 3]
Figure 0003851025
[0018]
If the required calculation accuracy is about ½ L and l is sufficiently larger than L, Equation 3 can be approximated as Equation 4 below.
[0019]
[Expression 4]
Figure 0003851025
[0020]
Furthermore, when Y 1 and Y 2, a multiple of both 2 j, respectively Y 1 = (Y 3 +1) 2 j, Y 2 = the (Y 4 -1) can be expressed as 2 j (where, j = If 0, 1, 2,..., Q is sufficiently larger than 1, these equations can be approximated as the following Equations 5 and 6, respectively.
[0021]
[Equation 5]
Figure 0003851025
[0022]
[Formula 6]
Figure 0003851025
[0023]
Therefore, as described above, the Y 1 or Y 2, a procedure for deploying a polynomial in Y 3 or Y 4, the value corresponding to Y 3 or Y 4 is Yuki repeated sequentially until 1, Y 1 or Y 2 is represented by the finally obtained approximate expression, and by substituting Y 1 or Y 2 into the 1 / Y expression, the following Expression 7 can be obtained for the U / Y division expression. it can.
[0024]
[Expression 7]
Figure 0003851025
[0025]
That is, 1 / Y can be expressed by a polynomial of (1/2) t . Incidentally, a t in Equation 7 is a processing constant.
In the digital operation, the “U × a t ” portion in Equation 7 may be subjected to normal multiplication processing, and the “× (1/2) t ” portion is determined from the characteristics of the binary number. the calculation results of the U × a t, (in other words, the operation result of U × a t, the LSB (Least Significant Bit) t times shifted to side) t right shifts since the equivalent to, the t By performing the data shift process according to the value, the U / Y calculation result can be obtained without performing the division process.
The division circuit previously shown in FIG. 1 is configured based on such a viewpoint.
[0026]
Actually, a divisor Y and a calculation accuracy 1/2 L are given to a certain dividend U, and a finite value f is determined so as to satisfy the calculation accuracy 1/2 L. As described above, an approximation polynomial of Y 1 or Y 2 is obtained, and further, an approximation polynomial of Y 3 or Y 4 is obtained, and the expansion into the polynomial is repeated successively. The one corresponding to the approximate polynomial represented is obtained. Then, an arithmetic process based on this approximate polynomial is performed to obtain U / Y.
[0027]
Next, referring to FIGS. 2 and 3, the processing procedure for obtaining the approximate expression expressed by Expression 7 for U / Y as described above will be described.
First, when the U / Y is represented as an approximation polynomial as shown in Equation 7, the value of t in the exponent of each term, in other words, when the right-shift operation results of U × a t A procedure for obtaining the respective shift amounts S1, S2,..., Sm will be described with reference to FIG.
When the process is started, first, the values of the calculation parameters m, S, and D are all set to the initial value zero (see step 100 in FIG. 2).
Next, it is determined whether or not Y is 1 (see step 102 in FIG. 2), and if it is determined that Y is “1” (in the case of NO), a series of processing ends as no processing is necessary. On the other hand, if it is determined to be “1” (in the case of YES), the routine proceeds to step 104, where it is determined whether or not Y is an even number.
[0028]
If it is determined that Y is an even number (in the case of YES), the process proceeds to step 106, and the value of the calculation parameter S, that is, the shift amount S is set to “1” immediately before the execution of step 106. "Is added to the value added. In step 106, the value of Y is updated to a value obtained by dividing Y immediately before the execution of step 106 by 2. Thereafter, the process returns to the previous step 102 and a series of processes is repeated.
That is, as long as Y is an even number, steps 102, 104, and 106 are repeated to obtain the shift amounts S1, S2,.
[0029]
On the other hand, if it is determined in step 104 that Y is not an even number (in the case of NO), the process proceeds to step 108, and the values of the calculation parameters m, D, and S at that time are obtained as the first result. The data is output and stored in a predetermined storage device (not shown) or the like as necessary. Each numerical value shown in step 108 in FIG. 2 is merely an example.
Next, the process proceeds to step 110, where the value of the calculation parameter m is updated to a value obtained by adding “1” to the value immediately before execution of step 110, and the value of Y is set to “1” immediately before execution of step 110. "Is added to the value added.
[0030]
Then, it is determined whether or not the value of Y is a multiple of “4” (see step 112 in FIG. 2). If it is a multiple of 4 (in the case of YES), the routine proceeds to step 114 where the operation parameter D is “ The calculation parameter S is updated to a value obtained by adding “2” to the value immediately before execution of step 114. Furthermore, the value of Y is updated to a value obtained by dividing the value immediately before execution of step 114 by “4”, and then the process returns to the previous step 102.
[0031]
On the other hand, when it is determined in step 112 that the value of Y is not a multiple of 4 (in the case of NO), the process proceeds to step 116 where the value of Y is “2” from the value immediately before execution of step 116. Will be updated to a value obtained by subtracting.
Next, in step 118, the value of the calculation parameter D is set to “−1”, the value of the calculation parameter S is updated to a value obtained by adding “2” to the value immediately before the execution of step 118, and Y is updated to a value obtained by dividing the value immediately before execution of step 118 by “4”, and the process returns to the previous step 102.
[0032]
Here, the meaning of the processing of steps 110 to 118 will be described. First, Y when the processing after step 110 is performed is an odd number. Therefore, in order to obtain the form of 2 to the power of n, it is necessary to add “1” to the odd number or subtract “1” from the odd number to make the even number.
Furthermore, using the property of the number that one of the values before and after the odd number is a multiple of 2 and the other is a multiple of 4, add “1” so that the odd number Y is a multiple of 4. In step 110 to step 118, step S is updated by "2" when the value is a multiple of 4 by either subtracting "1" or subtracting "1".
[0033]
For example, if it is assumed that Y = 5 immediately before execution of step 110 for easy understanding, Y = 5 + 1 = 6 is set in step 110.
Since this is not a multiple of 4, the process proceeds to step 116, and Y is updated with Y = 6-2 = 4. That is, the processing of step 116 corresponds to subtracting “1” from the value of Y immediately before execution of step 110. Since Y is a multiple of 4, the shift amount is updated in step 118, and Y is divided by 4.
Further, immediately before the execution of step 110, for example, if Y = 7, Y = 8, which is a multiple of 4 in the processing of step 110, so the process proceeds to step 114 where the shift amount is updated and Y is divided. It is like that.
[0034]
The calculation parameter D is for identifying whether the value of Y just before execution of step 110 is “1” and becomes a multiple of 4 or not. In this example, “1” ”Is added to be a multiple of 4, D = −1, and when“ 1 ”is subtracted to be a multiple of 4, D = + 1.
In this way, the shift amount S1, S2,..., Sm is obtained by repeating the above-described processing until the value of Y becomes “1”.
[0035]
Next, a description will be given of a procedure for obtaining the processing constant a t the respective terms in the preceding equation 7 with reference to FIG.
When the process is started, the calculation parameter m is first set to an initial value of zero, and 1 / Y = 1 / Y is set as the first stage of the 1 / Y approximation polynomial (FIG. 3 step 200).
Next, with respect to the values of the operation parameters m, D, and S obtained by the procedure described in FIG. 2, the first set is read (see step 202 in FIG. 3). In addition, each numerical value shown by step 202 of FIG. 3 is an example to the last.
[0036]
Then, it is determined whether or not the first value of the calculation parameter D is zero (see step 204 in FIG. 3). When D is determined to be zero (in the case of YES), it is set to 1 / Y (1 / Y) × (1/2 S ) is substituted and 1 / Y is updated (see step 206 in FIG. 3). Here, the value of S is the value when D determined in the previous step 204 and m are read as a set in the previous step 202 together with m. Here, when D = 0, 1 / Y becomes an expression as described in step 206. When D = 0, the shift amount shown in FIG. 2 is obtained. In the procedure, it means that steps 102 to 106 have been executed at least once, because this means that Y is divisible at least once as a multiple of two.
[0037]
On the other hand, if it is determined in step 204 that D = 0 is not satisfied (in the case of NO), it is determined whether D = + 1 (see step 208 in FIG. 3), and it is determined that D = + 1. If it is determined (in the case of YES), the following formula 8 is substituted for 1 / Y (see step 210 in FIG. 3).
[0038]
[Equation 8]
Figure 0003851025
[0039]
Here, the value of S is the value when D is read together with the value of m in the previous step 202 together with the value of D at the time of execution of step 210. Also, the value of n is increased from 1 to ascending order every time step 210 is executed. In the case where D = 1, 1 / Y is replaced by the equation shown in Equation 8 when D = + 1 in the procedure for obtaining the shift amount shown in FIG. This means that step 114 has been executed.
That is, in step 210, every time this step is executed once, (−1) n−1 {(1 / Y) (1/2 S )} n is determined with respect to the value of n at that time. , Σ (−1) n−1 {(1 / Y) (1/2 S )} n obtained immediately before the execution of step 210 is newly obtained (−1) n−1 {( 1 / Y) (1/2 S )} n is added to update the polynomial Σ (−1) n−1 {(1 / Y) (1/2 S )} n , which is assigned to 1 / Y. Will be.
[0040]
On the other hand, if it is determined in step 208 that D = + 1 is not satisfied (in the case of NO), this means that D = −1. Therefore, the following formula 9 is substituted for 1 / Y. (Refer to step 212 in FIG. 3).
[0041]
[Equation 9]
Figure 0003851025
[0042]
Here, the handling of S and n is the same as that described in the previous step 210, and the description thereof is omitted here. Further, when D = −1, 1 / Y is replaced with the equation shown in Equation 9 when D = −1 because the shift amount shown in FIG. 2 is obtained. This means that step 118 has been executed.
[0043]
After any of the above-described steps 206, 210, and 212 is executed, the value of m is updated by adding “1” to the value at that time (see step 214 in FIG. 3), which is predetermined. It is determined whether or not it is equal to the maximum value M (see step 216 in FIG. 3). The maximum value M can be appropriately selected within a range sufficient to obtain a desired calculation accuracy.
If it is determined in step 216 that m = M is not yet satisfied (in the case of NO), the process returns to the previous step 202 and the above-described series of processing is repeated.
[0044]
On the other hand, if it is determined in step 216 that m = M (in the case of YES), it is assumed that the accuracy required as an approximate polynomial of 1 / Y is satisfied, and steps 206, 210, and 212 are performed. The polynomial relating to 1 / Y obtained by the plurality of executions is expanded in the form of Equation 7 shown above (see step 218 in FIG. 3).
Then, the value of a t sections when deployed in the form of Equation 7, (see step 220 in FIG. 3) is outputted and the value of t in the exponent, and a series of processing ends Become.
[0045]
Note that the processing described above can be realized, for example, by causing a microcomputer (not shown) to execute software according to the procedure shown in FIGS. 2 and 3, and in that case, each obtained among processing constant a t and t of the processing constant a t with input from the microcomputer to the circuit shown in FIG. 1, for t, converted by the microcomputer as a shift signal T into a predetermined signal format It is preferable that the shift signal T is converted by an external circuit or input to the circuit shown in FIG.
[0046]
Next, a calculation operation of X = U / Y by the division circuit shown in FIG. 1 will be described.
First, as a premise, the divisor Y, (shift amount S1, S2 in other words,...) Values of a t and exponent t of sections when deployed in the form of Equation 7 is obtained in advance Shall.
[0047]
First, the multiplier 1, the dividend U and the first processing constant a t is input, and U × a t is calculated, the calculation result is to be input to the right shifter 2. Here, the first processing constant a t, is in the t = 1 In Equation 7 above.
In the right shift circuit 2, the operation result in the multiplier 1 is input in parallel. When the parallel data is input, the shift signal T is input from the outside, and the parallel data corresponding to the shift signal T is input. To the right (in other words, bit shift to the LSB (Least Significant Bit) side). Here, the shift signal T is the value of t in the exponent part of (1/2) t in Equation 7 above, that is, the shift amount obtained by the procedure described above with reference to FIG. .. Corresponding to S1, S2,..., And a shift signal T corresponding to the shift amount is input every time a calculation result is input from the multiplier 1.
[0048]
Then, the parallel data subjected to the right shift by the right shift circuit 2 is input to the adder 3.
Here, when the first parallel data from the right shift circuit 2 is input to the adder 3, the changeover switch 5 is in an open state. As a result, the first parallel data from the right shift circuit 2 is , The data is output from the adder 3 as it is. The first data output as it is from the adder 3 is input to the delay circuit 4 whose initial value is set to “1”, and is output without being delayed. That is, the delay circuit 4 is initially set to output the first input data without any delay.
[0049]
On the other hand, to the multiplier 1, after the first data input, after the lapse of an appropriate time, and again dividend U, multiplied is entered following processing constant a t is performed, the multiplication result is to right-shift circuit 2 Will be output.
In the right shift circuit 2, a shift signal T corresponding to a predetermined shift amount set in advance as described above is input from the outside as parallel data is input from the multiplier 1. A corresponding right shift is applied to the parallel data input from the multiplier 1, and the shift result is output to the adder 3.
[0050]
In the adder 3, the shift result from the right shift circuit 2 is input, the changeover switch 5 is closed, and the first output data fed back through the delay circuit 4 is input. An addition operation is performed. The addition result is delayed by a predetermined time by the delay circuit 4 and fed back to the input stage of the adder 3 via the changeover switch 5. On the other hand, until the feedback data via the delay circuit 4 and the switching switch 5 is performed, the multiplier 1 in the next processing constant a t is input, made multiplies the dividend U, further right shift circuit A predetermined shift is performed at 2, and the shift result is input to the adder 3 together with the previous feedback data. Similarly, the result of the addition operation in the adder 3 is fed back one after another and added to new data from the right shift circuit 2 in a cumulative manner, which is a predetermined number of times, that is, the previous FIG. The output data obtained from the adder 3 by being repeated a number of times corresponding to the number of terms of the approximate polynomial obtained in accordance with the procedure shown in FIG. 3 (see step 218 in FIG. 3) corresponds to the operation result of U / Y. It becomes.
[0051]
In the embodiment of the invention described above, the dividend and the divisor have been described as being binary numbers, but it is needless to say that the present invention can be similarly applied to other n-ary numbers other than binary numbers. In this case, the approximation polynomial corresponding to the above formula 7, if the dividend U and the divisor Y are to be n notation, X = UΣa t (1 / n) t , and the basically binary X can be calculated by an arithmetic process using a circuit configuration similar to the case.
[0052]
【The invention's effect】
As described above, according to the present invention, since division can be processed by multiplication, shift, and addition, the circuit configuration becomes relatively simple, and the arithmetic processing is relatively simple. Compared with the conventional multiplication process, the calculation time can be shortened.
[Brief description of the drawings]
FIG. 1 is a configuration diagram illustrating a configuration example of a division circuit according to an embodiment of the present invention.
FIG. 2 is a flowchart showing a procedure for obtaining a shift amount in a right shift circuit used in a divider circuit according to an embodiment of the present invention.
FIG. 3 is a flowchart showing a procedure for obtaining an operation constant input to the division circuit according to the embodiment of the present invention.
[Explanation of symbols]
DESCRIPTION OF SYMBOLS 1 ... Multiplier 2 ... Right shift circuit 3 ... Adder 4 ... Delay circuit 5 ... Changeover switch

Claims (2)

n進法で符号化された被除数Uと除数Yとの除算結果X=U/Yを算出する除算回路であって、
1/YがΣa(1/n)と多項式に近似でき、ここで、tは1から順に選択される自然数であり、aは、演算定数である場合、
U×aを演算し、次に、この演算結果をtビットその最下位ビット側へシフトし、このシフト結果を累積的に加算してゆくことを前記tが1から予め定めた自然数まで行い、その演算結果を除算結果Xとして出力するよう構成されてなることを特徴とする除算回路。
a division circuit for calculating a division result X = U / Y between a dividend U and a divisor Y encoded in an n-ary system,
1 / Y can be approximated to Σa t (1 / n) t and polynomial, where, t is a natural number selected from 1 sequentially when a t is a calculation constant,
U × a t is calculated, and then the operation result is shifted to the least significant bit side by t bits, and the shift result is cumulatively added from 1 to a predetermined natural number. A division circuit configured to output the calculation result as a division result X.
2進法で符号化された被除数Uと除数Yとの除算結果X=U/Yを算出する除算回路であって、
2つの入力データの乗算を行う乗算器と、
前記乗算器の出力データを、その最下位ビット側に外部から入力されるシフト信号に応じたビット数シフトして出力する右シフト回路と。
2つの入力データの加算を行う加算器と、
前記加算器の出力データに対して所定の遅延を施して出力する遅延回路と、
所定のタイミングで開閉成し、前記遅延回路からの出力データを前記加算器の一方の入力段へ入力する切換スイッチとを具備し、
前記加算器の他方の入力段には、前記右シフト回路の出力データが入力され、1/YがΣa(1/2)と多項式に近似でき、ここで、tは1から順に選択される自然数であり、aは演算定数である場合、前記乗算器には、前記被除数Uと、前記演算定数aとが、tが1から予め定められた自然数までに対応する回数順次入力され、
前記右シフト回路には、前記tに対応するシフト信号Tが前記tが1から予め定められた自然数までに対応する回数順次入力され、
前記切換スイッチの開閉動作によって、前記加算器において、前記右シフト回路からの出力データに、前記遅延回路を介しての前記加算器からのフィードバックデータが前記tが1から予め定めた自然数までに対応する回数累積的に加算されて、当該累積加算結果が除算結果Xとして得られることを特徴とする除算回路。
A division circuit for calculating a division result X = U / Y between a dividend U and a divisor Y encoded in binary;
A multiplier for multiplying two input data;
A right shift circuit for shifting the output data of the multiplier by shifting the number of bits according to a shift signal input from the outside to the least significant bit side;
An adder for adding two input data;
A delay circuit that outputs a predetermined delay to the output data of the adder; and
A switching switch that opens and closes at a predetermined timing and inputs output data from the delay circuit to one input stage of the adder;
The other input stage of said adder, the right output data of the shift circuit is inputted, 1 / Y can be approximated to Σa t (1/2) t and polynomial, where, t is selected from 1 sequentially that is a natural number, it is a t If a processing constant, the multiplier, and the dividend U, the arithmetic constant a t is, t is the number of times sequentially input corresponding to up to natural number which is determined in advance from the 1 ,
The shift signal T corresponding to the t is sequentially input to the right shift circuit a number of times corresponding to the t from 1 to a predetermined natural number,
By the opening / closing operation of the changeover switch, in the adder, the output data from the right shift circuit corresponds to the feedback data from the adder via the delay circuit from t = 1 to a predetermined natural number. A division circuit characterized in that the cumulative addition result is obtained as a division result X by being cumulatively added.
JP18597699A 1999-06-30 1999-06-30 Division circuit Expired - Fee Related JP3851025B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP18597699A JP3851025B2 (en) 1999-06-30 1999-06-30 Division circuit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP18597699A JP3851025B2 (en) 1999-06-30 1999-06-30 Division circuit

Publications (2)

Publication Number Publication Date
JP2001014142A JP2001014142A (en) 2001-01-19
JP3851025B2 true JP3851025B2 (en) 2006-11-29

Family

ID=16180182

Family Applications (1)

Application Number Title Priority Date Filing Date
JP18597699A Expired - Fee Related JP3851025B2 (en) 1999-06-30 1999-06-30 Division circuit

Country Status (1)

Country Link
JP (1) JP3851025B2 (en)

Also Published As

Publication number Publication date
JP2001014142A (en) 2001-01-19

Similar Documents

Publication Publication Date Title
US6279020B1 (en) Programmable circuit for realizing a digital filter
JP3276852B2 (en) Code conversion circuit
JP2722412B2 (en) Calculation method of error correction parameter accompanying execution of modular operation by Montgomery method
KR920003494B1 (en) Real time 2's complement number code multification method and circuit
KR100218825B1 (en) Multiplication device and sum of products calculation device
JP3851025B2 (en) Division circuit
US20040054706A1 (en) Modular arithmetic apparatus and method having high-speed base conversion function
JP5175983B2 (en) Arithmetic unit
JP3660075B2 (en) Dividing device
US7167885B2 (en) Emod a fast modulus calculation for computer systems
US8301682B2 (en) Divider for fixed point division
JP3851024B2 (en) Multiplier
JP4293665B2 (en) Remainder multiplier
US5615141A (en) Multiplying apparatus
JP3074958B2 (en) Serial multiplier with addition function
JP4042215B2 (en) Arithmetic processing apparatus and method
JP2004226516A (en) Power remainder computing method and program for the same
JP3695561B2 (en) Accumulator
KR100761132B1 (en) Apparatus and method for computing SHA-1
KR100196426B1 (en) Divider circuit and method of driving the same
JP2853790B2 (en) Expression device for logical expressions including arithmetic operations
JPH01311323A (en) Divider
JP3482817B2 (en) Quotient digit selection circuit and division operation unit
JP2004164417A (en) Method and apparatus for logarithmic calculation
Tietze et al. Combinatorial logic circuitry

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050228

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060801

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20060808

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060831

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120908

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140908

Year of fee payment: 8

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees