JP3213982B2 - 除算回路 - Google Patents

除算回路

Info

Publication number
JP3213982B2
JP3213982B2 JP24700091A JP24700091A JP3213982B2 JP 3213982 B2 JP3213982 B2 JP 3213982B2 JP 24700091 A JP24700091 A JP 24700091A JP 24700091 A JP24700091 A JP 24700091A JP 3213982 B2 JP3213982 B2 JP 3213982B2
Authority
JP
Japan
Prior art keywords
subtraction
register
dividend
divisor
circuit
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
JP24700091A
Other languages
English (en)
Other versions
JPH0561649A (ja
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP24700091A priority Critical patent/JP3213982B2/ja
Publication of JPH0561649A publication Critical patent/JPH0561649A/ja
Application granted granted Critical
Publication of JP3213982B2 publication Critical patent/JP3213982B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、ファジィ推論の非ファ
ジィ化演算で行われる重心値算出の際の除算をデジタル
に実行する除算回路に関するものである。
【0002】
【従来の技術】デジタル演算において、整数型の数値同
士の除算を行う場合、除数を被除数から繰り返し減算す
る、いわゆる、減算シフト型除算(文献1:「コンピュ
ータの高速演算方式」、堀越弥著、P215、近代科学
社)を行う場合がある。
【0003】これは、被除数の最上位ビット(MSB)
と除数の最下位ビット(LSB)の桁を合わせて1回目
の除算を行う。減算可能なら、減算結果を部分剰余と
し、減算不可能なら、減算前の被除数を部分剰余とす
る。
【0004】次に、除数を下位ビット側に1ビットずら
して、同様なことを行う。以下同様に、除数ビット分減
算シフトを行うと整数の除算結果が得られる。
【0005】さらに減算シフトを続ければ、小数点以下
の演算結果を求めることができる。部分剰余は、各減算
シフトを行ったところまでの余りを表している。正確な
余りの求め方は、特公平3−37212号(文献2)に
詳しく述べられている。
【0006】さて、ファジィ推論においては、推論の最
後に非ファジィ化演算を行い、ファジィ量を普通の(ク
リスプな)量に変換するが、その手法として、ファジィ
量の重心値を求めるのが一般的である。この場合、重心
値Gは次式で求められる。
【0007】 G=(ΣAi×Di)/ΣDi (1)
【0008】ただし、Aiはメンバーシップ関数の台集
合(広がりを示す)の各要素、また、Diは、台集合の
各要素のグレードを示す。重心値Gは、分子分母の積和
演算の結果を除算して求める。一般的には、台集合の分
割数は16〜256程度の値をとり、要素やグレードは
4〜8ビット程度で表現している。
【0009】文献1によれば、減算シフト型除算を汎用
的に行うためには、被除数の2倍の桁数をもつ被除数レ
ジスタ、除数レジスタ、減算器が必要である。(1)式
に従って、除算を行う場合、例えば、要素を8ビットで
表し(即ち分割数が256)、グレードも8ビットで表
現する場合、分母分子についてそれぞれ積和演算を行う
と、分子は24ビット、分母は16ビットで表現され
る。
【0010】従来型の除算器で演算する場合は、大きい
方の24ビットを扱える必要があるので、結局、被除数
(分子)用のレジスタ、除数レジスタ(分母用)及び減
算器ともに48桁必要になる。最終的には、除算シフト
を24回繰り返して整数型の商を得る。
【0011】
【発明が解決しようとする課題】一方、ファジィ推論の
重心算出における除算は、次のような特徴を持つため、
従来型の除算器では、その構成において、多くの無駄な
演算を含んでいることになる。即ち、
【0012】被除数が24ビットであっても、除数は
16ビットしかないので、除算過程の中で減算シフトを
行う場合、少なくとも最初の16段分は除算不可能にな
ることが明白であるので、この16段分の減算シフトは
無駄な演算である。
【0013】被除数が24ビットの場合、従来法で
は、商フィールド用(24ビット)も含めて48ビット
のレジスタを用意している(被除数のMSBと除数のL
SBの桁を合わせて除算するので倍のサイズが必要)
が、商は8ビット以下であり、少なくとも商フィールド
用の上位16ビットは0とわかっているので結果的に無
駄になってしまう。レジスタだけではなく、減算器も商
フィールドの16ビット分は結果的にはなくても良い。
【0014】本発明の目的は、このような無駄な演算を
省き、最低限の構成で、同等の演算結果を得ることがで
きる除算回路を提供することにある。
【0015】
【課題を解決するための手段】上記目的を達成するた
め、本発明による除算回路においては、被除数を入力
し、除算演算の間、部分剰余を保持する被除数レジスタ
と、除数を入力し、除算演算の間、除数を保持する除数
レジスタと、前記被除数レジスタの値と前記除数レジス
タの値との減算を実行する減算回路と、減算可否を判別
する減算判別回路と、減算可能なら減算結果、減算不可
能なら減算前の被除数を次の減算用の部分剰余として被
除数レジスタに送る減算選択回路と、減算判別信号を順
次保持する商レジスタと、演算処理を制御するタイミン
グ制御回路とを備えた減算シフト型の除算回路であっ
て、被除数レジスタは、最上位ビットが減算判別回路に
接続されており、除数が被除数より大きいときに1を出
力する減算回路のオーバーフローの出力もまた減算判別
回路に接続されており、減算判別回路が被除数の最上位
ビットまたはオーバーフローのどちらかが1ならば減算
可能と判断するものである。
【0016】また、被除数を入力し、除算演算の間、部
分剰余を保持する被除数レジスタと、除数を入力し、除
算演算の間、除数を保持する除数レジスタと、前記被除
数レジスタの値と前記除数レジスタの値との減算を実行
する減算回路と、減算可否を判別する減算判別回路と、
減算可能なら減算結果、減算不可能なら減算前の被除数
を次の減算用の部分剰余として被除数レジスタに送る減
算選択回路と、減算判別信号を順次保持する商レジスタ
と、演算処理を制御するタイミング制御回路とを備えた
減算シフト型の除算回路であって、減算回路の桁数が除
数の桁数に等しく、被除数レジスタは、最上位ビットが
減算判別回路に接続され、被除数の最上位から除数ビッ
ト分レジスタに保持され、被除数の下位ビットが被除数
と除数の桁数の差の数分だけシフトレジスタで構成され
ており、被除数の上位ビットのレジスタの出力は、最上
位ビットを除いて減算器に接続されており、シフトレジ
スタのシリアル出力は、減算器の最下位ビットに接続さ
れており、減算を行う度に、シフトレジスタ内の上位ビ
ットから1ビットずつ出力するものである。
【0017】
【作用】前述で明らかにした無駄なレジスタや演算を、
先ずは、削除する。次に、残りの構成で更に最適化を行
う。被除数がaビット、除数がbビット、商の整数部の
みでcビットとすれば、 a−b=c なる関係がある。
【0018】そこで、まずは文献2で開示されているよ
うに、減算器の商フィールドを全部削除し、新たに、商
レジスタを必要なビット数分(cビット分)付加する。
これによって、減算器のサイズは被除数のビット数分
(aビット分)だけ用意すれば良い。
【0019】本発明では更に、次の点に改良を加えてい
る。即ち、減算するのは除数の方であり、最低限除数の
桁数分(bビット分)の減算器で減算可能なような構成
とした。これにより、被除数と除数の桁数の差の分(即
ちcビット分)の減算器を削除できる。この詳細を次に
示す。
【0020】シフト減算を被除数の最上位ビットを除
く上位ビットから行い、減算可否を判別する際の、減算
器のオーバーフローの処理を次のようにすることで、被
除数の最上位ビットの減算を行わないで済むようにし
た。即ち、被除数の最上位ビットがもし1ならば、除数
が最大値をとったとしても、必ず減算可能である。そこ
で、最上位ビットは減算器に接続せずに、直接、減算判
別回路に接続する。
【0021】また、被除数の最上位ビットが0の場合
は、減算器のオーバーフロー出力による判定を行う必要
があるので、減算器のオーバーフロー出力も減算判別回
路に接続する。
【0022】従って、最上位ビットまたは減算器のオー
バーフロー出力のどちらかが1の場合は、減算可能とな
り、減算選択回路は、減算結果を次の演算の部分剰余に
する。両方とも0の場合は、減算不可能となり、減算前
の被除数を次の演算の部分剰余にする。このように、最
上位ビットの減算を省くことで減算器を1ビット分縮小
することができる。
【0023】被除数の最上位ビットを除く上位ビット
から除数ビット分の減算を行う。この際、被除数は最上
位ビットから除数ビット分(bビット分)は、普通のレ
ジスタとし、下位cビット分は、シフトレジスタに保持
しておく。最初の減算のときには、すでに、シフトレジ
スタから上位ビットが出力されている。
【0024】減算後のシフト方法として、被除数の最上
位ビットを除くb−1ビット分を部分剰余の最上位ビッ
トに接続(即ち1ビット上位ビット側にワイヤ接続によ
ってシフト)し、部分剰余の最下位ビットにはシフトレ
ジスタの次のビットを入力する。これによって、減算は
常にbビット分でよく、結局シフトレジスタから2回目
以降に減算シフトによって供給されるc−1ビット分だ
け減算の数を減らすことができる。
【0025】及びの方法を用いることによって、結
局、全体でcビット分の減算器を削除できることにな
り、除算回路の構成を縮小することができる。
【0026】
【実施例】以下に本発明の一実施例を図1に示す。これ
は、24ビットの被除数を16ビットの除数で除算し8
ビットの商を得る除算回路である。回路は、汎用デジタ
ルICの組み合わせで実現している。
【0027】入力選択回路1は、除算器に被除数データ
をロードするためのものである。ロード信号が1のと
き、入力値を選択し、0のとき部分剰余を選択する。初
期ロード時に入力値を選択し、除算途中は常に部分剰余
を選択する。
【0028】被除数レジスタ2は、上位入力レジスタ3
(16ビット)がD型フリップフロップで構成されてお
り、クロックにより次の部分剰余を保持し、また、リセ
ットの入力で、保持したデータを零リセットする。
【0029】被除数レジスタ2の下位入力レジスタ4
は、請求項2記載のものであるが、パラレルをシリアル
に変換するP/Sシフトレジスタ5で構成され、P/S
シフトレジスタ5の出力は、加算器6の最下位ビット
と、次の被除数の最下位ビットとして入力選択回路1の
両方に接続されている。
【0030】本除算器の減算は、一般的に2の補数(否
定して1加える)を加算することで行っている。従っ
て、除数の入力レジスタは、否定をとるためのインバー
ティングバッファ(16ビット)であり、減算部の中
は、加算器6で構成される。+1を行うために加算器の
キャリー入力に1を加える。また、減算のオーバーフロ
ーの検知には加算器のキャリー出力を用いる。
【0031】減算シフト演算のなかで、シフト演算その
ものは、被除数レジスタ2の出力の最上位ビットを除く
下位ビットを加算器6に接続し、加算器6の最下位ビッ
トには、先に述べたようにP/Sシフトレジスタ5から
1ビット補うことによって行っている。
【0032】請求項1記載の除算判別回路7は、論理和
回路によって実現される。被除数レジスタの最上位ビッ
トと、加算器のキャリー出力とを、それぞれこの論理和
回路に入力している。除算判別回路7の出力は、1つ
は、減算選択回路8であるトライステートバッファのア
ウトプットイネーブル(OE)に、もう1つは商レジス
タ9であるS/Pシフトレジスタ10へ接続される。
【0033】減算選択回路8は、減算判別回路7が減算
可能であるという1を出力すると、減算結果を次の部分
剰余とする。そのために、減算結果を接続しているバッ
ファの逆論理のアウトプットイネーブルが動作するよう
に減算判別出力を一旦否定回路で受けてからアウトプッ
トイネーブル(OE)に接続している。
【0034】また、減算判別回路7が減算不能であると
いう0を出力すると、減算前の部分剰余を次の部分剰余
とする。この場合減算前のデータを保持しているバッフ
ァが出力動作する。
【0035】商レジスタ9は、シリアルをパラレルに変
換するS/Pシフトレジスタ10で減算シフトと同期し
て減算判別回路7の出力を保持していく。最初に保持し
たものが商の最上位ビット、最後が最下位ビットであ
る。減算シフトは、8段行われ、8ビットの商が得られ
る。
【0036】図2は、本除算回路を動作させるタイミン
グ発生回路の出力を示すものである。図2を用いて、図
1の動作を説明する。
【0037】先ず、リセット信号が送られ、被除数
レジスタ2の上位ビット用のD型フリップフロップ回路
と、商レジスタ9のシフトレジスタを零クリアする。次
に入力データ用のロード信号が1になり、入力値選択
回路1は、入力した被除数の上位ビットを選択回路に送
る。
【0038】この状態では、上位入力レジスタ3の出力
は零を示し、一方、除数レジスタ11の出力は、始めか
ら同じ値(除数の否定)が出力されているので、演算開
始直前は、加算器6のキャリー出力が1になり、減算判
別回路7が減算不可を示す。
【0039】それで、減算選択回路8は、減算結果でな
い方の値(今の場合入力ロードが1の間なので入力値)
が被除数レジスタ2の上位入力レジスタ3に送られてい
る。一方、下位入力レジスタ4であるP/Sシフトレジ
スタ5は、ロード信号(L)が0のとき、クロック入力
にかかわらずデータが保持される。ロードした時点で最
初のビット(即ち下位入力レジスタに入力したうちの最
大ビット)が出力されている。
【0040】この状態で、初めのクロックが挿入され
る。上位入力レジスタ3は、入力値を保持し、1段目の
減算用データが出揃う。P/Sシフトレジスタ5は、す
でに最初のビットを出力しているので、初回のみクロッ
クを与えない。
【0041】加算器6からは、加算結果とキャリー出力
が出力される。減算判別回路7がキャリー出力と被除数
レジスタの最上位ビットによって減算の可否を判別し、
これによって減算選択回路が次の部分剰余を選択し、上
位入力レジスタ3に送り込む(しかし次のクロックが
挿入されるまで上位入力レジスタ3のデータは変更しな
い)。クロックの反転クロックで減算判別回路7の
出力を商レジスタ9であるS/Pシフトレジスタ10が
ラッチする。これが商の最上位ビットである。
【0042】次に、第2のクロックが挿入される。上
位入力レジスタ3は、クロックに同期して次の部分剰余
をラッチする。一方、P/Sシフトレジスタ4は、次の
段からクロックに同期して、1ビット出力される。加
算及び減算判別を行って商の次のビットを得る。
【0043】以後、第3から第8のクロックを順に送
り、同様な演算を行い、8ビットの商が商レジスタ9に
蓄積される。最後に、出力のクロックを受けて、商レ
ジスタから出力レジスタ12にパラレルデータとして転
送される。
【0044】図3に除算の一例を示す。被除数の上位1
6ビットは、D型フリップフロップに、下位8ビット
は、シフトレジスタに保持される。シフトレジスタに保
持された下位ビットは、減算シフトの段数毎に1ビット
ずつ出力している。
【0045】初段は、被除数最上位ビットが1なので減
算可能である。第2段は、部分剰余の最上位ビットも加
算のキャリー出力も両方0なので減算不可であり、前の
部分剰余を次の部分剰余となる。
【0046】以下、同様の演算を行い、各段毎に減算判
別出力を保持し、8段の減算シフトの後、8個の減算判
別出力を保持したものが商となっている、初段で得られ
たものが最上位ビット、8段目で得られたものが最下位
ビットである。
【0047】以上、本発明の一例として、24ビットの
被除数を16ビットの除数で割り、8ビットの商を得る
場合を示した。データサイズは、この例に限定されるも
のではなく、除数のビット数が被除数のビット数よりも
小さい場合には、除数のビット数に応じた効果が得られ
る。
【0048】
【発明の効果】以上のように本発明の除算回路によれ
ば、先の述べたファジィの重心演算における除算のよう
に、被除数及び除数及び商のデータサイズが限定されて
いる場合には、構成をコンパクト化するには有効であ
る。
【0049】また、従来方法では、被除数の2倍のデー
タサイズのレジスタ及び演算器を用意していたのに対し
て、本発明によれば、除数ビット数分の減算器で除算で
きる。実施例で述べた、被除数24ビット、除数16ビ
ットの除算の場合、従来は48ビットの減算器を用意し
ていたのに対して、本発明では除数ビット分、即ち、1
6ビットの減算器で済む。
【0050】これにともない、入出力のレジスタも、従
来の被除数の倍のレジスタ数から大幅に減少させること
ができ、除数、被除数それぞれのビット数分のレジスタ
で済む。
【0051】また、動作クロックも従来方法では、24
段の減算シフトが必要だったため、24クロック必要だ
ったのに対し、本発明の減算シフト部では、商のビット
数分のクロック(上の実施例では8ビットの商を得るた
めに8クロック分)で済み、高速に除算を行うことがで
きる。
【図面の簡単な説明】
【図1】本発明の除算回路の一実施例を示す図である。
【図2】本発明の除算回路を動作させるタイミング発生
回路の出力を示した図である。
【図3】本発明の除算回路の動作説明図である。
【符号の説明】
1 入力選択回路 2 被除数レジスタ 3 上位入力レジスタ 4 下位入力レジスタ 5 P/Sシフトレジスタ 6 加算器 7 減算判別回路 8 減算選択回路 9 商レジスタ 10 S/Pシフトレジスタ 11 除数レジスタ 12 出力レジスタ

Claims (2)

    (57)【特許請求の範囲】
  1. 【請求項1】 被除数を入力し、除算演算の間、部分剰
    余を保持する被除数レジスタと、除数を入力し、除算演
    算の間、除数を保持する除数レジスタと、前記被除数レ
    ジスタの値と前記除数レジスタの値との減算を実行する
    減算回路と、減算可否を判別する減算判別回路と、減算
    可能なら減算結果、減算不可能なら減算前の被除数を次
    の減算用の部分剰余として被除数レジスタに送る減算選
    択回路と、減算判別信号を順次保持する商レジスタと、
    演算処理を制御するタイミング制御回路とを備えた減算
    シフト型の除算回路であって、 被除数レジスタは、最上位ビットが減算判別回路に接続
    されており、除数が被除数より大きいときに1を出力す
    る減算回路のオーバーフローの出力もまた減算判別回路
    に接続されており、減算判別回路が被除数の最上位ビッ
    トまたはオーバーフローのどちらかが1ならば減算可能
    と判断するものであることを特徴とする除算回路。
  2. 【請求項2】 被除数を入力し、除算演算の間、部分剰
    余を保持する被除数レジスタと、除数を入力し、除算演
    算の間、除数を保持する除数レジスタと、前記被除数レ
    ジスタの値と前記除数レジスタの値との減算を実行する
    減算回路と、減算可否を判別する減算判別回路と、減算
    可能なら減算結果、減算不可能なら減算前の被除数を次
    の減算用の部分剰余として被除数レジスタに送る減算選
    択回路と、減算判別信号を順次保持する商レジスタと、
    演算処理を制御するタイミング制御回路とを備えた減算
    シフト型の除算回路であって、 減算回路の桁数が除数の桁数に等しく、 被除数レジスタは、最上位ビットが減算判別回路に接続
    され、被除数の最上位から除数ビット分レジスタに保持
    され、被除数の下位ビットが被除数と除数の桁数の差の
    数分だけシフトレジスタで構成されており、 被除数の上位ビットのレジスタの出力は、最上位ビット
    を除いて減算器に接続されており、シフトレジスタのシ
    リアル出力は、減算器の最下位ビットに接続されてお
    り、減算を行う度に、シフトレジスタ内の上位ビットか
    ら1ビットずつ出力するものであることを特徴とする除
    算回路。
JP24700091A 1991-08-31 1991-08-31 除算回路 Expired - Fee Related JP3213982B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP24700091A JP3213982B2 (ja) 1991-08-31 1991-08-31 除算回路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP24700091A JP3213982B2 (ja) 1991-08-31 1991-08-31 除算回路

Publications (2)

Publication Number Publication Date
JPH0561649A JPH0561649A (ja) 1993-03-12
JP3213982B2 true JP3213982B2 (ja) 2001-10-02

Family

ID=17156888

Family Applications (1)

Application Number Title Priority Date Filing Date
JP24700091A Expired - Fee Related JP3213982B2 (ja) 1991-08-31 1991-08-31 除算回路

Country Status (1)

Country Link
JP (1) JP3213982B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008305335A (ja) * 2007-06-11 2008-12-18 Sanyo Electric Co Ltd 除算回路

Also Published As

Publication number Publication date
JPH0561649A (ja) 1993-03-12

Similar Documents

Publication Publication Date Title
JP2622896B2 (ja) 除算装置
US5016210A (en) Binary division of signed operands
US5309383A (en) Floating-point division circuit
JP2585649B2 (ja) 除算回路
EP0379998B1 (en) Divider for carrying out high speed arithmetic operation
JP3213982B2 (ja) 除算回路
JPH0317132B2 (ja)
JPH0546363A (ja) 除算器
JPH0831024B2 (ja) 演算プロセッサ
JP3028165B2 (ja) 高基数除算制御方法および高基数除算器
JP2575856B2 (ja) 演算回路
US6578062B1 (en) Method and circuit for digital division
JP3517162B2 (ja) 除算・開平演算装置
US5729487A (en) Electronic component capable, in particular, of performing a division of two numbers to the base 4.
JPH0225924A (ja) 浮動小数点演算処理装置
JP2907276B2 (ja) 演算処理装置
JP2520484B2 (ja) 除算回路
JP2675087B2 (ja) マイクロコンピュータ
JP3482102B2 (ja) 絶対値距離演算回路
JP3205020B2 (ja) 演算装置
JP3104569B2 (ja) 除算回路
JP2870018B2 (ja) 積和演算回路
JP3068640B2 (ja) 計算装置
JPH0553759A (ja) 固定小数点演算ユニツト
JPH05233218A (ja) 三則演算回路

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees