[go: up one dir, main page]

JP3482102B2 - 絶対値距離演算回路 - Google Patents

絶対値距離演算回路

Info

Publication number
JP3482102B2
JP3482102B2 JP13550097A JP13550097A JP3482102B2 JP 3482102 B2 JP3482102 B2 JP 3482102B2 JP 13550097 A JP13550097 A JP 13550097A JP 13550097 A JP13550097 A JP 13550097A JP 3482102 B2 JP3482102 B2 JP 3482102B2
Authority
JP
Japan
Prior art keywords
data
carry
circuit
partial
adder
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 - Lifetime
Application number
JP13550097A
Other languages
English (en)
Other versions
JPH10326182A (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.)
Oki Electric Industry Co Ltd
Original Assignee
Oki Electric Industry 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 Oki Electric Industry Co Ltd filed Critical Oki Electric Industry Co Ltd
Priority to JP13550097A priority Critical patent/JP3482102B2/ja
Priority to US09/021,985 priority patent/US5983250A/en
Publication of JPH10326182A publication Critical patent/JPH10326182A/ja
Application granted granted Critical
Publication of JP3482102B2 publication Critical patent/JP3482102B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods 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 for evaluating functions by calculation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/544Indexing scheme relating to group G06F7/544
    • G06F2207/5442Absolute difference

Landscapes

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

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、ディジタル装置等
に設けられ、入力データ間の距離を絶対値で高速に求め
る(以下、この距離の絶対値を絶対値距離という)絶対
値距離演算回路に関するものである。
【0002】
【従来の技術】近年、ディジタル処理を応用した商品
が、次々に商品化されている。これらの商品におけるデ
ィジタル処理では、高速なアルゴリズムを高速な演算器
を用いて実行するので、アナログ処理では不可能であっ
た複雑な処理が可能になっている。このディジタル処理
の重要な応用のひとつに適応制御がある。適応制御は、
ディジタル電話等における処理の根幹をなすものであ
る。一般的な適応制御では、予測値と実測値との差(距
離)を計算し、その差の大小によって対象に対する制御
量を決定している。予測値と実測値との距離を計算する
ときには絶対値距離を求める場合が多く、DSP(Digi
tal Signal Processor)等のディジタル処理プロセッサ
では、絶対値距離演算命令を実行する機能を備えてい
る。つまり、絶対値距離演算を実行する絶対値距離演算
回路を内蔵している。図2は、従来の絶対値距離演算回
路の一例を示す構成図である。
【0003】この絶対値距離演算回路は、被減数データ
αと減数データβとを入力してこれらの差の絶対値|α
−β|を求める回路であり、データβを入力して該デー
タβの1に対する補数データ *βを生成するインバータ
1と、加算機能を有するALU(Arithmetic Logical U
nit)2とを、備えている。インバータ1は、所定のビッ
ト幅のデータβの各ビットの値を反転するものである。
インバータ1の出力側が、ALU2の2つ入力ポートの
うち一方の入力ポートに接続されている。ALU2の他
方の入力ポートには、データαが入力されるようになっ
ている。ALU2にはデータ *β,αの他に、“1”を
示すデータが与えられるようになっている。ALU2の
出力側には、2つのデータを選択するセレクタ3と、符
号反転回路4とが設けられている。符号反転回路4の入
力ポートには、ALU2の出力データが入力される接続
である。符号反転回路4は、ALU2の出力データの各
ビットの値を反転する図示しないインバータと、該イン
バータの出力する各ビットの値を一方の入力端子にそれ
ぞれ入力する図示しない複数の半加算器とで構成されて
いる。これらの半加算器のうちの最下位ビットに対応す
る半加算器には「1」が入力され、他の半加算器には下
位ビット側からのキャリーデータを入力するように連結
されている。セレクタ3には、ALU2の出力データと
符号反転回路4の出力データとが入力されると共に、A
LU2の出力データの最上位ビット(以下、MSBとい
う)の値が選択信号として入力されている。
【0004】従来の絶対値距離演算回路では、ALU2
の加算機能を用いてデータ *βとデータαとデータ
「1」とを加算し、α+ *β+1を演算する。即ち、
(α−β)が計算される。ALU2は、データ(α−
β)が正であるのか負であるのかをMSBで示す。符号
反転回路4は、ALU2が計算して出力したデータ(α
−β)の各ビットの値を反転したのち「1」を加算し、
(−(α−β))を計算する。セレクタ3は、ALU2
の出力データのMSBに基づき、データ(α−β)また
はデータ(−(α−β))を選択出力する。MSBが正
を示す“0”のとき、セレクタ3はデータ(α−β)を
選択する。MSBが負を示す“1”のとき、セレクタ3
は(−(α−β))選択する。これにより、|α−β|
が演算される。
【0005】
【発明が解決しようとする課題】しかしながら、従来の
絶対値距離演算回路では、次の(a)〜(c)のような
課題があった。 (a) 絶対値でデータαとデータβとの間の距離を求
めるために符号反転回路4が設けられているが、符号反
転回路4は連結された複数の半加算器を持つので、回路
規模が大きくなっていた。 (b) 符号反転回路4は、ALU2が絶対値距離の演
算以外の演算を行っているときも動作するので、消費電
力に無駄が多かった。 (c) 絶対値距離|α−β|を求める演算において、
解を得るまでにALU2の加算演算に加えて符号反転演
算も必要になる。そのため、ALU2における加算の高
速化を図っても、符号反転演算回路4によって速度が制
限され、高速演算に向いた絶対値距離演算回路を実現で
きなかった。 これらの(a)〜(c)の課題は、絶対値距離演算回路
に符号反転回路を設けたことで発生する。本発明は、符
号反転回路を用いずに絶対値距離演算回路を実現するこ
とを目的とする。
【0006】
【課題を解決するための手段】前記課題を解決するため
に、本発明のうちの第1の発明は、第1のディジタルデ
ータと第2のディジタルデータとの間の絶対値距離を求
める絶対値距離演算回路において、次のような補数生成
回路、加算器、キャリー生成手段、インバータ、及び出
力データ選定回路を備えている。補数生成回路は、第1
のディジタルデータの1の補数を求めるものである。加
算器は、最下位ビット(以下、LSBという)に“0”
または“1”のキャリーデータを入力して補数生成回路
の出力データと第2のディジタルデータとを加算し、M
SBに正或は負を“0”または“1”の符号で示す加算
結果を出力する機能を有している。キャリー生成手段
は、MSBの符号を反転してキャリーデータを生成して
加算器に帰還するものである。インバータは、加算器の
加算結果の各ビットの値を反転するものである。出力デ
ータ選定回路は、符号における初期値と加算器が最初に
行った加算で得られた第1の加算結果中のMSBの符号
とに基づき、加算器の第1の加算結果、該第1の加算結
果に対応したインバータの出力データ、該加算器が新た
なキャリーデータを用いて行った加算で得られた第2の
加算結果、または該第2の加算結果に対応したインバー
タの出力データから距離の絶対値となるデータを選定す
る機能を機能を有している。
【0007】第2の発明によれば、第1の発明の絶対値
距離演算回路に、次のようなキャリー固定手段を設けて
いる。キャリー固定手段は、第1のディジタルデータと
第2のディジタルデータとを比較し、第1及び第2のデ
ィジタルデータが等しい場合には、キャリー生成手段が
帰還するキャリーデータを“0”または“1”に固定す
るものである。第3の発明は、第1の発明における加算
器を、次のような複数段の加算部で構成すると共に、キ
ャリー固定回路を設けている。複数段の加算部は、各
々、第1のディジタルデータの一部を構成する所定ビッ
ト幅の第1の部分データの1の補数とこの第1の部分デ
ータに対応して第2のディジタルデータの一部を構成す
る所定ビット幅の第2の部分データとを下位ビットに入
力されるキャリーデータが“0”と仮定して加算する第
1の部分加算回路と、第1の部分データの1の補数と第
2の部分データとを下位ビットに入力されるキャリーデ
ータが“1”と仮定して加算する第2の部分加算回路
と、前段側から与えられたキャリーデータが“0”の場
合には第1の部分加算回路の出力データを選択し前段側
からのキャリーデータが“1”の場合には第2の部分加
算回路の出力データを選択する部分セレクタと、その部
分セレクタで選択した側の第1または第2の部分加算回
路の出力するキャリーデータを選択して後段側に出力す
るキャリー選択手段とを有している。
【0008】キャリー固定回路は、複数段の加算部にお
ける各第1の部分加算回路の出力するキャリーデータが
すべて“0”であり、かつ各第2の部分加算回路の出力
するキャリーデータがすべて“1”の時には、キャリー
生成手段が帰還するキャリーデータを“0”または
“1”に固定するものである。第1〜第3の発明によれ
ば、以上のように絶対値演算回路を構成したので、減数
となる第1のディジタルデータをβ、被減数になる第2
のディジタルデータをαとすると、データβの1の補数
*βが補数生成回路によって求められる。キャリー生成
手段はキャリーデータを生成して加算器に与える。加算
器は、キャリーデータを入力とした加算を行う。最初の
加算器の加算によって得られる第1の加算結果のMSB
に基づき、キャリー生成手段は新たなキャリーデータを
生成する。また、インバータは第1の加算結果の各ビッ
トの値を反転する。ここで、最初に加算器が行う加算で
は、キャリー生成手段の生成するキャリーデータが不定
なので、キャリーデータcが“1”または“0”の値を
とる。つまり、加算器が最初に行って得られた第1の加
算結果により、α+ *β+1(=α−β)またはα+ *
β+1(=α−β−1)が求められる。ところで、最終
的に求める絶対値距離|α−β|は、(α−β)が正の
値の場合には、該(α−β)が求める演算結果である
が、(α−β)が負の値の場合には、(−(α−β))
である。そこで、新たなキャリーデータを用いた加算器
の加算を行うことで第2の加算結果が得られる。そし
て、インバータを用いて、第2の加算結果の各ビットを
反転する。これら加算器の第1の加算結果、この第1の
加算結果に対応したインバータの出力データ、加算器が
新たなキャリーデータを用いて行った加算で得られた第
2の加算結果、または第2の加算結果に対応したインバ
ータの出力データには、求める絶対値距離|α−β|が
含まれる。求める絶対値距離|α−β|が出力データ選
定回路によって選定され、出力される。従って、前記課
題を解決できるのである。
【0009】
【発明の実施の形態】第1の実施形態 図1は、本発明の第1の実施形態を示す絶対値距離演算
回路の概略の構成図である。この絶対値距離演算回路
は、減数となる第1のディジタルデータβと被減数とな
る第2のディジタルデータαとを入力し、これらの差の
絶対値|α−β|を求める回路であり、データβを入力
して1の補数データ *βを生成する補数生成回路である
Nビット幅のインバータ11と、加算器であるALU1
2とを、備えている。インバータ11の出力側が、AL
U12の2つ入力ポートのうち一方の入力ポートに接続
されている。ALU12の他方に入力ポートには、デー
タαが入力されるようになっている。ALU12には、
データ *β,αの他に、キャリー生成手段である1ビッ
ト幅のインバータ13から出力するキャリーデータcが
入力される構成になっている。インバータ13は、AL
U12の出力データのMSBのデータを反転してキャリ
ーデータcを生成するものである。
【0010】ALU12の出力側には、出力データ選定
回路であるセレクタ14と、Nビット幅のインバータ1
5とが接続されている。インバータ15のNビット幅の
入力ポートには、ALU12の出力データが入力される
セレクタ14は、与えられたデータを一時的に保持する
図示しないレジスタを持ち、アルゴリズムに応じて選択
したデータを絶対値距離として出力するものである。セ
レクタ14には、ALU12の出力データとインバータ
15の出力データとが入力され、さらにALU12の出
力データのMSBの値が選択信号として入力される構成
になっている。次に、この第1の実施形態の絶対値距離
演算回路が行う絶対値距離演算の原理を、従来の絶対値
距離演算回路のアルゴリズムと対比させて説明する。
【0011】従来の絶対値距離演算回路では、ALU2
の加算機能を利用して、次の(1)式の計算を行い。続
いて、符号反転回路4で(2)式の計算を行う。 γ=α−β=α+ *β+1 ・・・(1) δ=−γ= *γ+1 ・・・(2) 但し、 *γ;γの1補数 そして、ALU2の出力データγの正負に応じて、次の
(3)式または(4)式の値を出力する。 |α−β|=γ,γ≧0 ・・・(3) |α−β|=δ,γ<0 ・・・(4) これに対し、この第1の実施形態の絶対値距離演算回路
では、ALU12の加算機能を使用して、次の(5)式
の計算を行う。 γ=α+ *β+c ・・・(5) 但し、c;LSBのキャリーデータ そして、ALU12の出力するγの値の正負により、キ
ャリーデータc及びALU12の出力データを次の
(6)、(7)式のように変化させる。 |α−β|=γ;c=1,γ≧0 ・・・(6) |α−β|=γ;c=0,γ<0 ・・・(7) 次に、図1の絶対値距離演算回路の動作を説明する。
【0012】被減算データαは、ALU12の一方の入
力ポートにパラレルに与えられ、デ被減算データ *β
は、インバータ11にパラレルに入力される。インバー
タ11は、減算データβの各ビットの値を反転し、デー
タβの1に対する補数データ *βを求める。この補数デ
ータ *βが、ALU12の他方の入力ポートにパラレル
に入力される。ALU12は、インバータ13から与え
られたデータをLSBのキャリーデータcとして、デー
タαとデータ *βとの加算を行う。このとき与えられた
キャリーデータcの初期値c1 が「0」の場合、ALU
12はγ1 =α+*β+0の計算を行ったことになる。
また、キャリーデータc1 の値が「1」の場合には、A
LU12はγ1 =α+ *β+1の計算を行ったことにな
る。インバータ13は、最初の加算で得られた第1の加
算結果γ1 におけるMSBの値を反転し、新たなキャリ
ーデータc2 を生成してALU12に帰還する。
【0013】最終的に求める絶対値距離|αーβ|は、
次の(8)式または(9)式である。 |α−β|=α−β, α−β≧0 ・・・(8) |α−β|=−(α−β) , α−β≧0 ・・・(9) そこで、ALU12はインバータ13から与えられたキ
ャリーデータc2 を、LSBのキャリー入力としてデー
タαとデータβと加算を行う。即ち、ALU12は、γ
2 =α+ *β+c2 の演算を行う。セレクタ14は、次
の(10)式が成立することを利用して、ALU12ま
たはインバータ15の出力データを選択して出力する。 −A= *A+1 ・・・(10) 但し、A;任意のディジタルデータ* A;Aの1の補数 セレクタ14の選択では、加算結果γ1 のMSBが正数
を示す場合、該ALU12の加算結果γ1 、または新た
なキャリーデータc2 に基づいたALU12の加算で得
られた第2の加算結果γ2 のうち、α+ *β+1の演算
をおこなった方の加算結果が選択される。加算結果γ1
のMSBが負数を示す場合、セレクタ14の選択では、
ALU12の最初の加算結果γ1 に対応するインバータ
15の出力データ、または新たなキャリーデータc2
用いて加算結果γ2 に対応するインバータ15の出力デ
ータのうち、α+ *β+0の演算結果を反転したことに
なる方の出力データが選択される。これにより、
(8)、(9)式の絶対値距離が求められる。
【0014】ここで、図1の絶対値距離演算回路が求め
る絶対値距離が正しいことを、数学的に証明する。な
お、キャリーデータの初期値c1 は不定なので、次の
(i)〜(Vi)のように場合分けして証明する。 (i) α−β>0、且つc1 =0のときALU12の
出力データγ1 は、 γ1 =α+ *β+0=α−β−1 である。ここで、α−β>0からα−β−1≧0とな
り、キャリーデータが変化し、c2 =1になる。よっ
て、ALU12の出力する加算結果γ2 は、 γ2 =α+ *β+1=α−β になり、セレクタ14がγ2 を選択することで正しい絶
対値距離が出力される。 (ii) α−β>0、且つc1 =1のときALU12の
出力データγ1 は、 γ1 =α+ *β+1=α−β である。セレクタ14がこのときのALU12の加算結
果γ1 を選択することで、正しい絶対値距離が出力され
る。 (iii) α−β=0、且つc1 =0のときALU12の
出力データγ1 は、 γ1 =α+ *β+0=α−β−1 である。ここで、α−β=0からγ1 =−1<0とな
り、キャリーデータは変化せずにc2 =1である。よっ
て、ALU13の出力する加算結果γ2 は、 γ2 =α+ *β+0=−1 になり、セレクタ14がこのγ2 に対応するインバータ
15の出力を選択することで、 INV(−1)=0 (INVは、インバータ15の反転処理を示す。)の正
しい絶対値距離が出力される。
【0015】(iv) α−β=0、且つc1 =1のとき
ALU12の出力データγ1 は、 γ1 =α+ *β+1=α−β である。ここで、α−β=0からγ1 =0となり、キャ
リーデータは変化せずc2 =1である。このときセレク
タ14がALU12の加算結果γ1 を選択することで、
正しい絶対値距離が出力される。 (v)α−β<0、且つc1 =0のときALU12の出
力データγ1 は、 γ1 =α+ *β+0=α−β−1 である。ここで、α−β<0からγ1 <0となり、キャ
リーデータは変化せずにc2 =0である。このとき、セ
レクタ14がインバータ15の出力データを選択するこ
とで、 INV(α−β−1)=−(α− *β−1)−1=−
(α−β) の正しい絶対値距離が出力される。 (vi)α−β<0、且つc1 =1のときALU12の出
力データγ1 は、 γ1 =α+ *β+1=α−β である。ここで、α−β<0からγ1 <0となり、キャ
リーデータが変化してc2 =0になる。このため、AL
U12の加算結果γ2 は、 γ2 =α+ *β+0=α−β−1 となる。ここで、α−β<0からγ2 <0になり、キャ
リーデータが変化しない。よって、c2 =0になる。こ
のとき、セレクタ14がインバータ15の出力データを
選択することで、 INV(α−β−1)=−(α− *β−1)−1=−
(α−β) の正しい絶対値距離が出力される。
【0016】以上のように、この第1の実施形態の絶対
値距離演算回路では、ALU12に対してキャリーデー
タc1 ,c2 を生成して帰還するキャリー生成手段のイ
ンバータ15と、ALU12の加算結果γ1 ,γ2 の各
ビットの値を反転するインバータ15とを設け、加算結
果γ1 の正負に応じたキャリーデータc2 を用い、AL
U12の加算出力を変化させている。そのため、従来の
ように半加算器を連結した符号反転回路4を用いずに、
絶対値距離を求めることができ、絶対値距離演算回路の
規模を小型化できると共に、無駄な消費電力も抑えるこ
とができる。
【0017】第2の実施形態 図3は、本発明の第2の実施形態を示す絶対値距離演算
回路の構成図である。この絶対値距離演算回路は、第1
の実施形態と同様の、データβを入力して該データβの
1に対する補数データ *βを生成する補数生成回路であ
るNビット幅のインバータ21と、加算器であるALU
22とを備えている。インバータ21の出力側が、AL
U22の2つの入力ポートのうち一方の入力ポートに接
続されている。ALU22の他方の入力ポートには、デ
ータαが入力されるようになっている。ALU22に
は、データ *β,αの他に、第1の実施形態とは異なる
キャリー生成手段であるNANDゲート23から出力さ
れるキャリーデータcが入力されるようになっている。
ALU22の出力側には、出力データ選定回路であるセ
レクタ24と、Nビット幅のインバータ25とが接続さ
れている。セレクタ24とインバータ25とは、第1の
実施形態と同様のものであり、インバータ25のNビッ
ト幅の入力ポートには、ALU22の出力データが入力
され、セレクタ24にはALU22の出力データとイン
バータ25の出力データが入力される構成になってい
る。このセレクタ24には、ALU22の出力データの
MSBの値が選択信号として入力され構成になってい
る。
【0018】この絶対値距離演算回路には、さらに、キ
ャリー固定手段である比較回路26が設けられている。
比較回路26は、データαとデータβの値を監視し、デ
ータαとデータβとが等しいときに“0”を出力し、デ
ータαとデータβとが異なるときに“1”を出力する機
能を有している。比較回路26の出力端子は、NAND
ゲート23の一方の入力端子に接続されている。NAN
Dゲート23の他方の入力端子にはALU22のMSB
が入力される接続になっている。ここで、第1の実施形
態における問題点を説明する。第1の実施形態では、A
LU12(22)のMSBによってキャリーデータcの
値を変化させている。換言すれば、ALU12(22)
の加算結果におけるMSBとLSB側に入力するキャリ
ーデータcとで帰還ループが構成されている。第1の実
施形態の(i)〜(vi)で証明したように、ALU12
(22)での加算が瞬時に実行されるならば、加算結果
に影響を与えない。ところが、現実のALU12(2
2)においては、加算の演算時間が必要となり、ALU
12(22)の演算時間に起因する振動が発生する可能
性がある。振動は(i)〜(vi)のうちの(iii),(i
v)の状態を遷移することで発生する。振動発生のメカ
ニズムを、時刻T0(初期状態)〜T2に分けて説明す
る。
【0019】・時刻T0においてキャリーデータcが
“0”とすると、ALU12(22)はα+ *β=α−
β−1を計算するが、この計算途中で、MSBが“0”
になる。即ち、キャリーデータcが“1”に変化する。 ・時刻T1において、キャリーデータcが“1”なの
で、ALU12(22)がα+ *β+1=α−βを計算
する。この計算の途中でMSBが再び“1”になり、キ
ャリーデータcが“0”に変化する。 ・時刻T2において、キャリーデータcが“0”なの
で、ALU12(22)はα+ *β=α−β−1を計算
するが、この計算途中でMSBが“0”になる。即ち、
キャリーデータcが“1”に変化する。 このように、α=βの場合にALU12(22)の演算
時間に起因した振動が発生する。次に、図3の絶対値距
離演算回路の動作を説明する。
【0020】データαとデータβとが異なる場合には、
比較回路26が“1”を出力する。比較回路26が
“1”を出力すると、NANDゲート23は、ALU2
2から与えられたMSBのレベルを反転したキャリーデ
ータcを生成してALU22に与える。これにより、A
LU22、インバータ25及びセレクタ24が第1の実
施形態と同様にそれぞれ動作し、正しい絶対値距離を出
力する。データαとデータβとが等しい場合、比較回路
26が“0”を出力する。そのため、NANDゲート2
3が出力するキャリーcが“1”に固定される。これに
より、第1の実施形態で発生する可能性があった振動が
防止される。以上のように、この第2の実施形態では、
比較回路26を設けると共に、第1の実施形態における
インバータ13をNANDゲート23に置換し、データ
αとデータβとが等しい場合に、キャリーデータcの値
を固定する構成にしたので、第1の実施形態で発生する
可能性があった振動を防止でき、しかも、正しい絶対値
距離が求められる。
【0021】第3の実施形態 図4は、本発明の第3の実施形態を示す絶対値距離演算
回路の構成図である。この絶対値距離演算回路は、例え
ば40ビット幅のデータαとデータβとの間の絶対値距
離を求める回路であり、補数生成回路である40ビット
幅のインバータ31を有するとともに、CSA(Carry
Select Adder)を採用した加算器であるALU40と、
このALU40の出力側に設けられた第1の実施形態と
同様のインバータ51及び出力データ選定回路のセレク
タ52と、キャリー生成手段となるNANDゲート53
と、キャリー固定回路60とを備えている。ALU40
は、例えば5段の加算部41,42,43,44,45
で構成されている。各加算部41〜45は、CSA41
a〜45aをそれぞれ持つと共に、キャリー選択手段で
あるセレクタ41b〜45bをそれぞれ有している。
【0022】加算部41はCSA41aによって6ビッ
ト幅の加算を行うものであり、インバータ31で生成さ
れた補数データ *βのうちの0ビットから5ビット目ま
でと、データαの0ビットから5ビット目までとを入力
する構成になっている。加算部42はCSA42aによ
って7ビット幅の加算を行うものであり、補数データ*
βのうちの6ビットから12ビット目までと、データα
の6ビットから12ビット目までとを入力する構成にな
っている。加算部43はCSA43aによって8ビット
幅の加算を行うものであり、補数データ *βのうちの1
3ビットから20ビット目までと、データαの13ビッ
トから20ビット目までとを入力する構成になってい
る。加算部44はCSA44aによって9ビット幅の加
算を行うものであり、補数データ *βのうちの21ビッ
トから29ビット目までと、データαの21ビットから
29ビット目までとを入力する構成になっている。加算
部45はCSA45aによって10ビット幅の加算を行
うものであり、補数データ *βのうちの30ビットから
39ビット目までと、データαの30ビットから39ビ
ット目までとを入力する構成になっている。
【0023】加算部41のLSBにNANDゲート53
の出力するキャリーデータcが入力されるようになって
いる。各加算部41〜45は、加算結果をセレクタ52
及びインバータ51に出力すると共に、それぞれ確定し
たキャリーデータをセレクタ41b〜45bから上位側
に送出するようになっている。そして、加算部45の出
力する加算結果のMSBが、NANDゲート53の一方
の入力端子に与えられる接続になっている。図5は、図
4中の各CSA41a〜45aの概要を示す構成図であ
る。各CSA41a〜45aは、前段からのキャリーデ
ータが“0”であると仮定し、2つの入力データの加算
を先に行う第1の部分加算回路46と、前段からのキャ
リーデータが“1”であると仮定し、2つの入力データ
の加算を先に行う第2の部分加算回路47と、該部分加
算回路46,47の計算結果を選択する部分セレクタ4
8とを備えている。そして、各部分加算回路46,47
は、自体で発生するキャリーデータをセレクタ41b〜
45bにそれぞれ出力する構成になっている。部分セレ
クタ48は、前段から与えられたキャリーデータが
“0”のときには、加算回路46の加算結果を選択し、
該キャリーデータが“1”のときには加算回路47の加
算結果を選択する機能を有している。このように構成す
ることで、実質のキャリー伝搬時間が、セレクタ41b
〜45bの遅延時間に等しくなり、高速に演算結果を出
力できる。
【0024】図4のキャリー固定回路60は、各CSA
41a〜45b中の加算回路46が出力するキャリーデ
ータをそれぞれ反転する5個のインバータ61,62,
63,64,65と、2個の4入力ANDゲート66,
67と、1個の4入力NANDゲート68とを、備えて
いる。ANDゲート66の4個の入力端子には、インバ
ータ64,65の出力データと、各CSA44a,CS
A45a中の部分加算回路47の出力するキャリーデー
タがそれぞれ入力される接続になっている。ANDゲー
ト67の4個の入力端子には、インバータ62,63の
出力データと、各CSA42a,43a中の部分加算回
路47の出力するキャリーデータが入力される接続にな
っている。NANDゲート68の4個の入力端子には、
ANDゲート66,67の出力データと、インバータ6
1の出力データと、CSA41中の部分加算回路47の
出力するキャリーデータとが入力されるようになってい
る。NANDゲート68の出力端子が、NANDゲート
53の他方の入力端子に接続されている。
【0025】次に、図4の絶対値距離演算回路の動作を
説明する。データαは分割されて各CSA41a〜45
中の加算回路46及び加算回路47に与えられ、データ
βの1の補数がインバータ31によって求められ、補数
データ *βが分割されて各CSA41a〜45中の部分
加算回路46及び部分加算回路47に与えられる。各C
SA41a〜45中の部分加算回路46,47は、前段
から確定したキャリーデータの入力をする前に、先に、
与えられたデータの加算を行う。ここで、40ビット幅
のデータαと40ビット幅のデータβとが等しい場合を
考える。データαとデータβとが等しい場合には、各C
SA41a〜45中の部分加算回路46の出力するキャ
リーデータがすべて“0”であり、且つ各CSA41a
〜45中の加算回路47の出力するキャリーデータがす
べて“1”になる。そのため、各ANDゲート66,6
7の出力データはそれぞれ“1”になり、NANDゲー
ト68の出力データは“0”に固定される。即ち、NA
NDゲート53からALU40のLSBに与えられるキ
ャリーデータcは、“1”に固定される。このように、
キャリーデータcが固定されることにより、第2の実施
形態で説明した振動が防止される。
【0026】データαとデータβとが異なる場合には、
各CSA41a〜45中の部分加算回路46の出力する
キャリーデータがすべて“0”、且つ各CSA41a〜
45中の加算回路47の出力するキャリーデータがすべ
て“1”という条件が成り立たない。そのため、NAN
Dゲート68の出力データは“1”になり、NANDゲ
ート53がCSA45aの加算結果のMSBを反転した
キャリーデータcを生成してCSA41aのLSBに与
える。加算部41では、キャリーデータcに基づき、C
SA41a中の部分加算回路46,47の加算結果を選
択すると共に、セレクタ41bで確定したキャリーデー
タを選択して上位側の加算部42に出力する。つまり、
キャリーデータcが“0”の場合には、部分セレクタ4
8が部分加算回路46の加算結果を選択し、セレクタ4
1bが部分加算回路46から出力されたキャリーデータ
を選択する。キャリーデータcが“1”の場合には、部
分セレクタ48が部分加算回路47の加算結果を選択
し、セレクタ41bが部分加算回路47から出力された
キャリーデータを選択する。各加算部42〜45では、
下位側の加算部41〜44から与えられたキャリーデー
タに基づき、加算部41における選択と同様の選択を行
う。各加算部41〜45から出力された加算結果は、4
0ビット幅の加算結果としてインバータ51及びセレク
タ52に与えられる。セレクタ52は、第1の実施形態
と同様の選択を行うことで、データαとデータβの間の
正しい絶対値距離を出力する。
【0027】以上のように、この第3の実施形態では、
ALU40をCSA41a〜45aを用いて構成すると
共にキャリー固定回路60を設け、第1の実施形態と同
様にセレクタ52の選択で絶対値距離を出力するように
したので、振動を防止しつつ、高速に正しい絶対値距離
を求めることができる。また、ALU40での処理を高
速化するためにCSAを採用することは一般的であり、
回路の増加はない。そのため、半加算器で構成した符号
反転回路を用いずに、絶対値距離演算回路を真実現でき
るので、回路規模を小さくできると共に無駄な消費電力
を抑制できる。なお、本発明は、上記実施形態に限定さ
れず種々の変形が可能である。例えば、第2の実施形態
では比較回路26とNANDゲート23を設け、データ
αとデータβとが等しい場合に、キャリーデータを
“1”に固定するようにしているが、“0”に固定する
構成にしても振動の発生を防止できる。また、第3の実
施形態では、キャリー固定回路60とNANDゲート5
3とを設け、データαとデータβとが等しい場合に、キ
ャリーデータを“1”に固定するようにしているが、
“0”に固定する構成にしても振動の発生を防止でき
る。
【0028】
【発明の効果】以上詳細に説明したように、第1〜第3
の発明によれば、第1のディジタルデータの1の補数を
求める補数生成回路と、“0”または“1”のキャリー
データを入力とした加算を行う加算器と、加算器の出力
するデータのMSBからキャリーデータを生成して帰還
するキャリー生成手段と、加算器の加算結果の各ビット
の値を反転するインバータと、そのMSBの初期値と加
算器が最初に行った加算で得られた第1の加算結果中の
符号とに基づき、絶対値距離を選択して出力する出力デ
ータ選定回路とを設けたので、従来のように半加算器で
構成された符号反転回路を用いずに正しい絶対値距離を
演算でき、回路規模を小型化できると共に、消費電力の
無駄を抑制できる。
【図面の簡単な説明】
【図1】本発明の第1の実施形態を示す絶対値距離演算
回路の概略の構成図である。
【図2】従来の絶対値距離演算回路の一例を示す構成図
である。
【図3】本発明の第2の実施形態を示す絶対値距離演算
回路の構成図である。
【図4】本発明の第3の実施形態を示す絶対値距離演算
回路の構成図である。
【図5】図4中の各CSA41a〜45aの概要を示す
構成図である。
【符号の説明】
11,21,31 インバータ(補
数生成回路) 12,22,40 ALU(加算
器) 13 インバータ(キ
ャリー生成手段) 14,24,52 セレクタ(出力
データ選定回路) 15,25,51 インバータ 23,53 NANDゲート
(キャリー生成手段) 26 比較回路(キャ
リー固定手段) 41〜45 加算部 41a〜45a CSA 41b〜45b セレクタ(キャ
リー選択手段) 46,47 第1及び第2の
部分加算回路 48 部分セレクタ 60 キャリー固定回

Claims (3)

    (57)【特許請求の範囲】
  1. 【請求項1】 第1のディジタルデータと第2のディジ
    タルデータとの間の距離を絶対値で求める絶対値距離演
    算回路において、 前記第1のディジタルデータの1の補数を求める補数生
    成回路と、 最下位ビットに“0”または“1”のキャリーデータを
    入力して前記補数生成回路の出力データと前記第2のデ
    ィジタルデータとを加算し、最上位ビットに正或は負を
    “0”または“1”の符号で示す加算結果を出力する加
    算器と、 前記最上位ビットの符号を反転して前記キャリーデータ
    を生成し、前記加算器に帰還するキャリー生成手段と、 前記加算器の加算結果の各ビットの値を反転するインバ
    ータと、 前記符号における初期値と前記加算器が最初に行った加
    算で得られた第1の加算結果中の前記符号とに基づき、
    該加算器の第1の加算結果、該第1の加算結果に対応し
    た前記インバータの出力データ、該加算器が新たな前記
    キャリーデータを用いて行った加算で得られた第2の加
    算結果、または該第2の加算結果に対応した該インバー
    タの出力データから前記距離の絶対値となるデータを選
    択して出力する出力データ選定回路とを、 備えたことを特徴とする絶対値距離演算回路。
  2. 【請求項2】 前記第1のディジタルデータと第2のデ
    ィジタルデータとを比較し、該第1及び第2のディジタ
    ルデータが等しい場合には、前記キャリー生成手段が帰
    還するキャリーデータを“0”または“1”に固定する
    キャリー固定手段を設けたことを特徴とする請求項1記
    載の絶対値距離演算回路。
  3. 【請求項3】 前記加算器は、前記第1のディジタルデ
    ータの一部を構成する所定ビット幅の第1の部分データ
    の1の補数と該第1の部分データに対応して前記第2の
    ディジタルデータの一部を構成する所定ビット幅の第2
    の部分データとを下位ビットに入力されるキャリーデー
    タが“0”と仮定して加算する第1の部分加算回路と、
    前記第1の部分データの1の補数と前記第2の部分デー
    タとを下位ビットに入力されるキャリーデータが“1”
    と仮定して加算する第2の部分加算回路と、前段側から
    与えられたキャリーデータが“0”の場合には前記第1
    の部分加算回路の出力データを選択し該前段側からのキ
    ャリーデータが“1”の場合には前記第2の部分加算回
    路の出力データを選択する部分セレクタと、前記部分セ
    レクタで選択した側の第1または第2の部分加算回路の
    出力するキャリーデータを選択して後段側に出力するキ
    ャリー選択手段とをそれぞれ有する複数段の加算部で構
    成し、 前記複数段の加算部における前記各第1の部分加算回路
    の出力するキャリーデータがすべて“0”であり、かつ
    前記各第2の部分加算回路の出力するキャリーデータが
    すべて“1”の時には、前記キャリー生成手段が帰還す
    るキャリーデータを“0”または“1”に固定するキャ
    リー固定回路を設けたことを特徴とする請求項1記載の
    絶対値距離演算回路。
JP13550097A 1997-05-26 1997-05-26 絶対値距離演算回路 Expired - Lifetime JP3482102B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP13550097A JP3482102B2 (ja) 1997-05-26 1997-05-26 絶対値距離演算回路
US09/021,985 US5983250A (en) 1997-05-26 1998-02-11 Arithmetic circuit for obtaining absolute-valued distance

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP13550097A JP3482102B2 (ja) 1997-05-26 1997-05-26 絶対値距離演算回路

Publications (2)

Publication Number Publication Date
JPH10326182A JPH10326182A (ja) 1998-12-08
JP3482102B2 true JP3482102B2 (ja) 2003-12-22

Family

ID=15153212

Family Applications (1)

Application Number Title Priority Date Filing Date
JP13550097A Expired - Lifetime JP3482102B2 (ja) 1997-05-26 1997-05-26 絶対値距離演算回路

Country Status (2)

Country Link
US (1) US5983250A (ja)
JP (1) JP3482102B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101314056B1 (ko) * 2009-07-27 2013-10-01 한국전자통신연구원 절대차 연산 장치

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01204138A (ja) * 1988-02-09 1989-08-16 Nec Corp 演算回路
JP3304971B2 (ja) * 1990-07-23 2002-07-22 沖電気工業株式会社 絶対値演算回路
JPH0764768A (ja) * 1993-08-27 1995-03-10 Oki Electric Ind Co Ltd 絶対値累積加算装置
US5563813A (en) * 1994-06-01 1996-10-08 Industrial Technology Research Institute Area/time-efficient motion estimation micro core
JPH10246722A (ja) * 1997-03-03 1998-09-14 Sekisui Chem Co Ltd プラスチック管融着接合部の検査方法

Also Published As

Publication number Publication date
JPH10326182A (ja) 1998-12-08
US5983250A (en) 1999-11-09

Similar Documents

Publication Publication Date Title
US7315163B2 (en) Arithmetic unit
RU2408057C2 (ru) Умножитель с фиксированной точкой с предварительным насыщением
JP3304971B2 (ja) 絶対値演算回路
JPH01144122A (ja) 除算回路
US9448767B2 (en) Three-term predictive adder and/or subtracter
US4866655A (en) Arithmetic processor and divider using redundant signed digit
KR101007259B1 (ko) 패리티 생성 회로, 계수 회로 및 계수 방법
JP3482102B2 (ja) 絶対値距離演算回路
JPH09222991A (ja) 加算方法および加算器
JP2012141952A (ja) 除算回路及び除算方法
JP5549743B2 (ja) 10進絶対値加算器
JPH0464091B2 (ja)
JPH0511980A (ja) 桁あふれ検出方式とその回路
WO1992022027A1 (en) Divider
JP3675111B2 (ja) 3入力比較器
JP2606326B2 (ja) 乗算器
JP2606339B2 (ja) 乗算器
JPH10333885A (ja) 乗算回路
JP2685466B2 (ja) アドレス演算器
JP3233432B2 (ja) 乗算器
JP3198868B2 (ja) 乗算処理装置
JP2908231B2 (ja) ベクトル演算装置
JPH06342367A (ja) 乗算回路
JPH07319668A (ja) 冗長2進乗算器および冗長2進alu並びにプログラム制御回路
JPH0553768A (ja) 除算器

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20030930

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

Free format text: PAYMENT UNTIL: 20081010

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20081010

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20091010

Year of fee payment: 6

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

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

Free format text: PAYMENT UNTIL: 20091010

Year of fee payment: 6

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20091010

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20101010

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20101010

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20111010

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20111010

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20121010

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20121010

Year of fee payment: 9

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

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

Free format text: PAYMENT UNTIL: 20121010

Year of fee payment: 9

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350