JPH10254680A - 2乗回路 - Google Patents

2乗回路

Info

Publication number
JPH10254680A
JPH10254680A JP6031697A JP6031697A JPH10254680A JP H10254680 A JPH10254680 A JP H10254680A JP 6031697 A JP6031697 A JP 6031697A JP 6031697 A JP6031697 A JP 6031697A JP H10254680 A JPH10254680 A JP H10254680A
Authority
JP
Japan
Prior art keywords
input
output
adder
circuit
value
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
Application number
JP6031697A
Other languages
English (en)
Other versions
JP3531402B2 (ja
Inventor
Tatsuya Uchiki
達也 打木
Hiroyasu Sano
裕康 佐野
Makoto Miyake
真 三宅
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP06031697A priority Critical patent/JP3531402B2/ja
Publication of JPH10254680A publication Critical patent/JPH10254680A/ja
Application granted granted Critical
Publication of JP3531402B2 publication Critical patent/JP3531402B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Complex Calculations (AREA)

Abstract

(57)【要約】 【課題】 ディジタル信号を用いて入力データの2乗値
を出力する2乗回路を、特に高速動作が要求される場合
に演算量が少なく簡単な回路構成で、かつ少ない誤差で
実現することを目的とする。 【解決手段】 入力xの上位ビットをMSB抽出回路1
01で抽出し、この上位ビットは左ビットシフト回路1
02へ、また下位ビットは左ビットシフト回路104へ
入力し、各々に独立なビットシフトを施す。または分割
した下位ビットをさらに最上位ビットと下位ビットに分
割し、各々に独立なビットシフトを施す操作を行い、ビ
ットシフトされた値を加算器105で加算し近似的二乗
出力を得る。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は、入力データの数
値の2乗を出力する2乗回路の改良に関する。
【0002】
【従来の技術】2乗演算は、乗数と被乗数が同一の乗算
とみなすことができる。従来の2乗回路に関して、ディ
ジタル回路での2乗値の導出法は、例えば文献「ハード
ウェアの知識」(大須賀節雄、近谷英昭著、オーム社)
に、ディジタル回路の乗算法が記載されている。ディジ
タル回路の乗算の基本規則は、被乗数に、乗数の各桁を
それぞれ乗算し、これを乗数の各桁に対応した桁数だけ
左に桁移動(ビットシフト)して部分積を求め、次いで
これらの部分積を加算することで乗算結果を得るもので
ある。すなわち (1)乗数の桁が0なら、被乗数に0をかけて0 (2)乗数の桁が1なら、被乗数に1をかけて被乗数 を、それぞれかけた乗数の桁と等しいだけ左ビットシフ
トして加えることにより、乗算結果を得ることができ
る。
【0003】この導出法は10進数の場合と同様であ
る。例えば10進数における6×5の、ディジタル回路
における計算法を例にとって説明する。2進数で表すと
6は110、5は101と表せる。以下、2進数で表記
した後の括弧内に10進数の数値を記すものとする。す
なわち110(6)、101(5)と表記する。110
(6)×101(5)の演算は次のようになる。
【0004】
【数1】
【0005】すなわち、乗数101(5)の各桁のう
ち、0である桁については0を、また1である桁は被乗
数110(6)を、その桁だけビットシフトして部分積
を求め、部分積を全て加算することによって乗算結果を
得ることができる。
【0006】ところで2乗は、乗数と被乗数が同一の乗
算と考えることができる。従って例えば、従来の2乗回
路において1011(11)の2乗は、以上述べた従来
の方法によると次のように求められる。
【0007】
【数2】
【0008】このような2乗値を求めるための従来の2
乗回路について具体的に説明する。従来の方法で入力デ
ータの2乗値を出力する2乗回路は、ゲートアレイ上や
ICなどの論理素子を用いた回路において、論理積ゲー
トと加算器を用いて実現することができる。一例とし
て、2乗回路の入力データが4ビットの場合の従来の2
乗回路の具体的なハードウェアの構成を示す構成図を図
15に示す。次に、図19を用いて従来の2乗回路の動
作について説明する。図15において、1701、17
02、1703、1704は論理積ゲート、1705、
1706、1707は加算器である。
【0009】次に回路の動作について説明する。図19
において、2乗回路に入力される4ビットのデータを下
位ビットから順にD0、D1、D2、D3とする。このとき
i(i:負でない整数)は0か1である。すなわちDi
∈{0、1}である。2乗回路に入力された4ビットの
ディジタルデータは、論理積ゲート1701に入力され
る。論理積ゲート1701は入力のD0とD0、D1
2、D3との論理積をとり、加算器1705に出力す
る。すなわち、論理積ゲート1701は、D0が0なら
ば0を、D0が1ならば入力データを、加算器1705
に出力する。
【0010】2乗回路に入力された4ビットのデータ
は、同様に論理積ゲート1702、論理積ゲート170
3、論理積ゲート1704に入力される。そして論理積
ゲート1702ではD1とD0、D1、D2、D3との論理
積をとり、加算器1705に出力する。また論理積ゲー
ト1703ではD2とD0、D1、D2、D3との論理積を
とり、加算器1706に出力する。さらに論理積ゲート
1704ではD3とD0、D1、D2、D3との論理積をと
り、加算器1707に出力する。すなわち、論理積ゲー
ト1702は、D1が0ならば0を、D1が1ならば入力
データを、加算器1705に出力する。さらに、論理積
ゲート1703は、D2が0ならば0を、D2が1ならば
入力データを、加算器1706に出力する。同様に、論
理積ゲート1704は、D3が0ならば0を、D3が1な
らば入力データを、加算器1707に出力する。
【0011】加算器1705の動作を説明する。加算器
1705では、論理積ゲート1701から出力される値
と、論理積ゲート1702から出力される値を1ビット
左ビットシフトした値を加算して、加算結果を出力す
る。すなわち、加算器1705は2乗回路の入力データ
の最下位桁と、下から2桁目の乗算結果を加算した加算
結果を出力する。
【0012】次に、加算器1706の動作を説明する。
加算器1706では、加算器1705の出力と、論理積
ゲート1703の出力を2ビット左ビットシフトした値
を加算して、加算結果を出力する。すなわち、加算器1
706は2乗回路の入力データの最下位桁と、下から2
桁目と、上から2桁めの乗算結果を加算した加算結果を
出力する。
【0013】次に、加算器1707の動作を説明する。
加算器1707では、加算器1706の出力と、論理積
ゲート1704の出力を3ビット左ビットシフトした値
を加算して、加算結果を出力する。すなわち、加算器1
707は2乗回路の入力データの各桁の乗算結果を加算
した加算結果を出力する。
【0014】このように、2乗する値すなわち被2乗値
が4ビットの場合、少なくとも4ビット以上の数値を3
回加算する必要がある。ところが2乗回路に高速動作が
要求される場合、加算器による遅延が問題となる。例え
ばゲートアレイ上の1ビット加算器の遅延は、文献「A
SICデータブックTC180G/Eシリーズマクロセ
ル」(東芝)によると約1.2nsである。従って4ビ
ット加算器の遅延は4.8nsとなるが、これは論理積
セルの遅延0.3nsの16倍に達する。4ビット加算
を3回行なう場合の遅延は4.8×3=14.4nsで
あるから、1/14.4ns=約70MHz以上の信号
は出力に1クロック以上の遅れを生じ、パイプライン処
理が必要となるためタイミング制御が複雑になり、回路
規模も増大するという問題があった。
【0015】2乗回路に入力データが入力されて、2乗
値が出力されるまでの遅延を少なくするためには、出力
のビット削減が一般的である。ビット削減は遅延を減少
できるだけでなく、回路規模も縮小できる。例えば入力
のビット数が7ビットである場合、従来の2乗回路のう
ちビット削減しない場合の回路構成を示す構成図を図2
0(a)に、ビット削減をした場合の回路構成を示す構
成図を図20(b)に示す。
【0016】図20(a)に示した回路は、入力のビッ
ト数が7ビットの場合の従来の2乗回路の構成図であ
り、回路の動作は図19に示した、入力が4ビットの場
合と同様であるため、回路の動作の説明を省略する。次
に、ビット削減した場合の回路の動作を、図20(b)
を用いて説明する。図20(b)において、1801、
1802、1803は論理積ゲート、1804、180
5は加算器である。
【0017】次に回路の動作について説明する。図20
(b)において、2乗回路に入力される7ビットのデー
タを下位ビットから順にD0、D1、D2、D3、D4
5、D6とする。このときDi(i:負でない整数)は
0か1である。すなわちDi∈{0、1}である。2乗
回路に入力された7ビットのディジタルデータは、論理
積ゲート1801に入力される。論理積ゲート1801
は入力のD4とD0、D1、D2、D3、D4、D5、D6との
論理積をとり、加算器1804に出力する。すなわち、
論理積ゲート1801は、D4が0ならば0を、D0が1
ならば入力データを、加算器1804に出力する。
【0018】2乗回路に入力された7ビットのデータ
は、同様に論理積ゲート1802、論理積ゲート180
3に入力される。そして論理積ゲート1802ではD5
とD0、D1、D2、D3、D4、D5、D6との論理積をと
り、加算器1804に出力する。また論理積ゲート18
03ではD6とD0、D1、D2、D3、D4、D5、D6との
論理積をとり、加算器1805に出力する。すなわち、
論理積ゲート1802は、D5が0ならば0を、D5が1
ならば入力データを、加算器1804に出力する。ま
た、論理積ゲート1803は、D6が0ならば0を、D6
が1ならば入力データを、加算器1805に出力する。
【0019】加算器1804の動作を説明する。加算器
1804では、論理積ゲート1801から出力される値
を4ビットシフトした値と、論理積ゲート1802から
出力される値を5ビットシフトした値を加算して、加算
結果を出力する。すなわち、加算器1804は2乗回路
の入力データの上から2桁目と、上から3桁目の乗算結
果を加算した加算結果を出力する。
【0020】次に、加算器1805の動作を説明する。
加算器1805では、加算器1804の出力と、論理積
ゲート1803から出力される値を6ビットシフトした
値を加算して、加算結果を出力する。すなわち、加算器
1805は2乗回路の入力データの最上位桁と、上から
2桁目と、上から3桁めの乗算結果を加算した加算結果
を出力する。
【0021】このように入力が7ビットの場合、ビット
削減をしなければ図20(a)に示したように加算回数
が7−1=6回必要であるのに対し、ビット削減をして
下位ビットとの乗算を行なわない構成とすることで、加
算回数を減らすことができる。例えば図20(b)に示
した回路のように、上から3ビットまでしか乗算を行な
わない構成とすれば、加算回数は2回まで減らすことが
できる。
【0022】ビット削減をして2乗回路の出力に対する
下位ビットの寄与をなくすと、加算回数が減って遅延が
減少し、回路規模を小さくできるという利点がある一方
で、2乗回路の出力が真の2乗値からの誤差を生ずると
いう問題点がある。例えば上に述べた7ビット入力のビ
ット削減した従来の2乗回路の入出力特性のグラフを図
21に示す。図21において、点線はビット削減なしの
理想的な場合、実線はビット削減ありの場合の2乗回路
の入出力特性である。図21からわかるように、ビット
削減を行なうことで実線からの誤差が大きくなるという
問題がある。
【0023】
【発明が解決しようとする課題】以上のように、従来の
2乗回路においては、入力データの桁に応じた個数の部
分積を、加算器で加算して2乗値を出力する構成であっ
た。従って、2乗回路の入力データのビット数が増えれ
ば増えるほど、加算器の加算回数が増加した。よって高
速な回路動作速度が求められる場合においては、2乗値
を出力するのに数クロックの遅延が生じる可能性があ
り、パイプライン処理を行う必要が生じてタイミング制
御が複雑となり、その結果回路規模が増大するという課
題があった。また、繰り返し加算を行なうことによる遅
延を少なくするために加算器の数を減らし、出力の下位
ビットの削減を行なう場合、2乗回路の出力値に誤差が
生じてしまい、正確な2乗値が出力されないという課題
があった。本発明は、このような課題を解決するために
なされたものであり、簡単な論理積回路構成で高速動作
に対応できる2乗回路を得ることを目的とする。
【0024】
【課題を解決するための手段】本発明に係る2乗回路
は、2乗回路の入力のMSB値を抽出するMSB値抽出
回路と、2乗回路の入力から上記MSB値抽出回路の出
力であるMSB値を減算して2乗回路の入力のLSP値
を求める加算器と、上記MSB値抽出回路の出力である
MSB値を左ビットシフトする左ビットシフト回路と、
上記加算器の出力であるLSP値を左ビットシフトする
左ビットシフト回路と、上記2つの左ビットシフト回路
の出力を加算して2乗結果を出力する加算器とを備える
ようにしたものである。
【0025】また、本発明に係る2乗回路は、入力のM
SB値を抽出するMSB値抽出回路として動作する、入
力の最上位ビットと全ビットの論理積を出力する複数の
論理積ゲートと、イネーブル入力によって加算出力をハ
イインピーダンスにする、入力の最上位ビットを一方の
入力とする複数の加算器と、2乗回路の入力が0の場合
に1を出力する論理積素子と、論理和素子と、3ステー
ト出力バッファを備えるようにしたものである。
【0026】また、本発明に係る2乗回路は、入力のM
SB値を抽出するMSB値抽出回路として動作する、入
力の最上位ビットと全ビットの論理積を出力する複数の
論理積ゲートと、イネーブル入力によって出力をハイイ
ンピーダンスにする複数の3ステート出力バッファゲー
トと、2乗回路の入力が0の場合に1を出力する論理積
素子と、論理和素子と、3ステート出力バッファと、入
力の最上位ビットを一方の入力とする2乗結果を出力す
る加算器とを備えるようにしたものである。
【0027】また、本発明に係る2乗回路は、2乗回路
の入力のMSB値を抽出するMSB値抽出回路と、2乗
回路の入力から上記MSB値抽出回路の出力であるMS
B値を減算して2乗回路の入力のLSP値を求める加算
器と、上記MSB値抽出回路の出力であるMSB値を左
ビットシフトする左ビットシフト回路と、上記加算器の
出力であるLSP値を左ビットシフトする左ビットシフ
ト回路と、上記加算器の出力であるLSP値のMSB値
を抽出するMSB値抽出回路と、上記加算器の出力であ
るLSP値から上記MSB値抽出回路の出力であるLS
P値のMSB値を減算して2乗回路の入力のLSP値の
LSP値を求める加算器と、上記MSB値抽出回路の出
力であるMSB値を左ビットシフトする左ビットシフト
回路と、上記加算器の出力であるLSP値を左ビットシ
フトする左ビットシフト回路と、上記4つの左ビットシ
フト回路の出力を加算して2乗結果を出力する加算器と
を備えるようにしたものである。
【0028】また、本発明に係る2乗回路は、2乗回路
の入力のMSB値を抽出するMSB値抽出回路と、2乗
回路の入力から上記MSB値抽出回路の出力であるMS
B値を減算して2乗回路の入力のLSP値を求める加算
器と、上記MSB値抽出回路の出力であるMSB値をデ
コードするデコーダと、上記デコーダ出力を左ビットシ
フトする左ビットシフト回路と、上記加算器の出力であ
るLSP値を左ビットシフトする左ビットシフト回路
と、上記2つの左ビットシフト回路の出力を加算して2
乗結果を出力する加算器とを備えるようにしたものであ
る。
【0029】また、本発明に係る2乗回路は、入力のM
SB値を抽出するMSB値抽出回路として動作する、入
力の最上位ビットと全ビットの論理積を出力する複数の
論理積ゲートと、イネーブル入力によって加算出力をハ
イインピーダンスにする複数の加算器と、2乗回路の入
力が0の場合に1を出力する論理積素子と、論理和素子
と、3ステート出力バッファを備えるようにしたもので
ある。
【0030】また、本発明に係る2乗回路は、入力のM
SB値を抽出するMSB値抽出回路として動作する、入
力の最上位ビットと全ビットの論理積を出力する複数の
論理積ゲートと、イネーブル入力によって出力をハイイ
ンピーダンスにする複数の3ステート出力バッファゲー
トと、2乗回路の入力が0の場合に1を出力する論理積
素子と、論理和素子と、3ステート出力バッファと、2
乗結果を出力する加算器とを備えるようにしたものであ
る。
【0031】また、本発明に係る2乗回路は、入力のM
SB値を抽出するMSB値抽出回路として動作する、入
力の最上位ビットと全ビットの論理積を出力する複数の
論理積ゲートと、加算器の入力をデコードするデコーダ
として動作する論理積素子とインバータと、イネーブル
入力によって加算出力をハイインピーダンスにする複数
の加算器と、2乗回路の入力が0の場合に1を出力する
論理積素子と、論理和素子と、3ステート出力バッファ
を備えるようにしたものである。
【0032】
【発明の実施の形態】
実施の形態1.図1は、実施の形態1における2乗回路
の構成を示す構成図であり、図1において、101はM
SB値抽出回路、102は左ビットシフト回路、103
は加算器、104は左ビットシフト回路、105は加算
器である。本実施の形態における2乗回路で求める値に
ついて説明する。2乗回路は入力されるデータの数値の
2乗の数値のデータを出力する回路である。入力データ
をx、出力データをyとすると、xとyの関係は次の式
で表せる。 y=x2 (1) 上式において、xをx1とx2の和で表すものとする。す
なわち x=x1+x2 (2) とする。式(2)を代入すると、式(1)は次のように
書き表せる。 y=(x1+x22 =x1 2+2x12+x2 2 (3) ここで、x1>x2が成り立つならば、それぞれを2乗し
たx1 2、x2 2の間には次の関係が成立する。 x1 2≫x2 2 (4) 式(4)の関係を用いると、式(3)は次のように変形
できる。 y=x1 2+2x12+x2 2 ≒x1 2+2x12 (5) すなわち、x1>x2が成り立つようにx1とx2を選べ
ば、2乗回路出力データyに対するx2 2の寄与を無視で
きる。本実施の形態1では式(5)の右辺を2乗回路の
出力として求める。
【0033】以下、図を用いて動作について説明する。
図1において、2値信号であるディジタルの入力データ
は2乗回路に入力されると、MSB値抽出回路101に
入力されてMSB値が抽出される。ここでMSBとは入
力データを2進表現した場合に1となる最も上位の桁の
ことである。2乗回路の入力データxの数値が2m≦x
≦2m+1−1(mは負でない整数)の範囲である場合、
mビット目がMSBである。この場合、MSB値は2m
である。また、以後入力データxからMSB値2mを引
いた値x−2mを表す複数のビット、つまりMSBより
下位の複数ビットをLSPとし、x−2mをLSP値と
する。MSB値抽出回路101はmビット目が1である
mを抽出して出力する。以下、入力データxのMSB
値である2mをx1、xからMSB値2mを引いたx−x1
すなわちLSP値をx2とする。従って、x、x1、x2
の間には以下の関係が成立する。 x=x1+x2 (2)
【0034】一例として、入力データx=11の場合を
考える。2進数で表すと11は1011である。以後、
2進数で表記した後の括弧内に10進数で数値を記すも
のとする。すなわち1011(11)と表記する。xは
MSB値である1000(8)と、入力データ1011
(11)からMSB値1000(8)を引いたLSP値
11(3)に分けることができる。MSB値抽出回路1
01は3ビット目が1である1000(8)を抽出して
出力する。なお、mは負でない整数であるから、最下位
のビットは0ビット目である。
【0035】MSB値抽出回路101は入力データxの
MSB値であるx1すなわち2mを出力する。MSB値抽
出回路101から出力されたx1は左ビットシフト回路
102に入力される。また、x1は左ビットシフト回路
102のシフト入力Sにも入力される。左ビットシフト
回路102に入力されたx1は、シフト入力Sで指定さ
れる桁だけ左ビットシフトされる。シフト入力Sにはm
ビット目が1のx1が入力されているので、x1はmビッ
トだけ左ビットシフトされ、x1’を出力する。ここ
で、x1’は2mをmビットシフトした値であるから22m
に等しい。すなわちx1’=x1 2である。左ビットシフ
ト回路102はx1すなわち2mを2乗して、x1 2すなわ
ち22mを加算器105に出力する。
【0036】入力データx=11の場合の左ビットシフ
ト回路102の動作を説明する。MSB値抽出回路10
1から出力された、入力データxのMSB値である10
00(8)は、左ビットシフト回路102で3ビットだ
け左ビットシフトされる。ここで、1000(8)は3
ビット目だけが1であるから、1000(8)の3ビッ
トシフトは2乗操作に等しい。ビットシフトされた値1
000000(64)は、左ビットシフト回路102の
出力として加算器105に入力される。
【0037】MSB値抽出回路101から出力される入
力データxのMSB値であるx1すなわち2mは、加算器
103にも入力される。加算器103は入力データxか
らx1を減算し、x−x1すなわちLSP値であるx2
左ビットシフト回路104に出力する。
【0038】入力データx=11の場合の加算器103
の動作を説明する。加算器103は、MSB値抽出回路
101から出力された入力データxのMSB値である1
000(8)を、入力データx=1011(11)から
減算し、入力データxのLSP値である11(3)を左
ビットシフト回路104に出力する。
【0039】左ビットシフト回路104には、加算器1
03の出力である入力データxのLSP値x2が入力さ
れる。また、左ビットシフト回路104のシフト入力S
にはMSB値抽出回路101から出力される入力データ
xのMSB値であるx1が入力される。左ビットシフト
回路104に入力されたx2は、シフト入力Sで指定さ
れる値に1を加えた桁だけ左ビットシフトされる。シフ
ト入力Sにはmビット目が1のx1が入力されているの
で、x2は(m+1)ビットだけ左ビットシフトされ
る。ここで左mビットシフトはx1倍に相当し、左1ビ
ットシフトは2倍に相当する。すなわち、左ビットシフ
ト回路104におけるx2の左(m+1)ビットシフト
は、2x12を導出する操作に等しい。左ビットシフト
回路104は、2x12を加算器105に出力する。
【0040】入力データx=11の場合の左ビットシフ
ト回路104の動作を説明する。加算器103から出力
された入力データxのLSP値である11(3)は、3
+1=4ビットだけ左ビットシフトされる。ここで、左
4ビットシフトは24=16倍の操作に等しく、2×x1
(8)×x2(3)=48が導出される。ビットシフト
された値は110000(48)であり、左ビットシフ
ト回路104の出力として加算器105に出力される。
【0041】加算器105では、左ビットシフト回路1
02から出力されるx1 2と、左ビットシフト回路104
から出力される2x12を加算し、2乗回路の出力とし
て出力する。入力x=11の場合、1000000(6
4)と110000(48)が加算されて、11100
00(112)が出力される。
【0042】以上のように、2乗回路の入力データをM
SB値とLSP値に分割して、それぞれに対して一定の
左ビットシフト演算を行なって部分積を求め、2つの部
分積を加算して2乗値を求めることにより、従来よりも
加算器の数を減らして、遅延が少ない2乗回路を得るこ
とができる。
【0043】実施の形態2.実施の形態1ではブロック
図を用いて2乗回路の動作の説明を行なったが、実際の
論理回路を用いて、2乗回路を構成することができる。
実施の形態2では実際のディジタル信号が2乗回路に入
力された場合のビット単位の処理を、論理回路を用いて
説明する。
【0044】実施の形態2でも、実施の形態1と同様に
y=x2をx=x1+x2とおくことによって、y≒x1 2
+2x12と近似した値を求める。以下、一例として入
力のビット数が4ビットの場合について、図を用いて実
施の形態2について説明する。図2は、実施の形態2に
おける2乗回路の構成を示す構成図であり、201、2
02、203は論理積ゲート、204、205、206
は加算器、207は3ステート出力バッファ、208は
論理積素子、209は論理和素子である。
【0045】次に回路の動作について説明する。図2に
おいて、2乗回路に入力される4ビットのデータを下位
ビットから順にD0、D1、D2、D3とする。このときD
i(i:負でない整数)は0か1である。すなわちDi
{0、1}である。まず、2乗回路に入力されるデータ
が0でない場合について説明する。すなわち、論理積記
号を&とすれば、D0&D1&D2&D3≠0である。2乗
回路に入力された4ビットのディジタル信号のうち、D
3は加算器204のイネーブルEに入力される。加算器
204はE=1ならば加算器204の入力AとBを加算
して加算結果を出力し、E=0ならば出力はハイインピ
ーダンスとなって加算結果を出力しない。従ってD3
1であれば、加算器204は入力D0、D1、D2、D3
用いて加算し、加算結果を出力する。これに対してD3
=0であれば、加算器204の出力はハイインピーダン
スとなって加算結果を出力しない。
【0046】一例として、2乗回路の入力が1011
(11)の場合について説明する。D3=1であるか
ら、加算器204のイネーブルEは1となって、加算器
204は入力AとBを加算して加算結果を出力する。
【0047】入力された4ビットのディジタル信号は論
理積ゲート201にも入力される。D3は論理積ゲート
201のCへ、またD0、D1、D2は論理積ゲート20
1のI 0、I1、I2へ、それぞれ入力される。論理積ゲ
ート201では、D3の反転と、下位の3ビットD0、D
1、D2との論理積をとり、加算器205及び論理積ゲー
ト202に出力する。すなわち論理積ゲート201は、
3=0であれば、O0、O1、O2からそれぞれD0
1、D2を出力し、D3=1であれば、O0、O1、O2
ら0を加算器205及び論理積ゲート202に出力す
る。
【0048】このことを図を用いて説明する。図3
(a)は、論理積ゲート201の構成を示す構成図であ
り、301はインバータ、302、303、304は論
理積素子である。論理積ゲート201のCはインバータ
301に接続されている。従って、インバータ301は
D3の反転D3を論理積素子302、303、304の
Bに出力する。
【0049】論理積ゲート201のI0、I1、I2は、
それぞれ論理積素子304、303、302のAに接続
されている。また、O0、O1、O2には、それぞれ論理
積素子304、303、302の論理積出力が接続され
ている。論理積素子302、303、304は、それぞ
れ入力AとBの論理積を出力する。従って、D3=0な
らば反転されたD3(以降、反転された信号は下向き矢
印↓を付す)は、↓D3=1となって論理積素子30
2、303、304のBには1が入力されるため、論理
積素子304、303、302の出力はそれぞれD0
1、D2と一致し、O0、O1、O2からはそれぞれD0
1、D2が出力される。反対にD3=1ならば↓D3=0
となって論理積素子302、303、304のBには0
が入力されるため、論理積素子304、303、302
の出力は全て0となり、O0、O1、O2からは0が出力
される。論理積ゲート201の入出力表を、図3(a)
と共に示す。
【0050】論理積ゲート201の出力は、加算器20
5及び論理積ゲート202に入力される。論理積ゲート
201のO0、O1、O2から出力される信号を、それぞ
れD0’、D1’、D2’とする。D3=0ならば、D2
=D2、D1’=D1、D0’=D0である。論理積ゲート
201の出力のうち、D2’は加算器205のイネーブ
ルEに入力される。加算器205は加算器204と同様
に、E=1ならば加算器205の入力AとBを加算して
加算結果を出力し、E=0ならば出力はハイインピーダ
ンスとなって加算結果を出力しない。従ってD2’=1
であれば、すなわち入力のMSBがD2であれば、加算
器205は入力D0’、D1’、D2’を用いて加算し、
加算結果を出力する。これに対してD2’=0であれ
ば、加算器205の出力はハイインピーダンスとなって
加算結果を出力しない。
【0051】一例として、2乗回路の入力が1011
(11)の場合について説明する。D3=1であるか
ら、論理積ゲート201はD0’、D1’、D2’を全て
0として出力する。するとD2’=0が加算器205の
イネーブルEに入力されるため、加算器205の出力は
ハイインピーダンスとなって、加算結果を出力しない。
【0052】論理積ゲート201から出力された
0’、D1’、D2’は、論理積ゲート202にも入力
される。D2’は論理積ゲート202のCへ、また
0’、D1’は論理積ゲート202のI0、I1へ、それ
ぞれ入力される。論理積ゲート202でも論理積ゲート
201と同様に、D2’の反転と、下位の2ビット
0’、D1’との論理積をとり、加算器206及び論理
積ゲート203に出力する。すなわち論理積ゲート20
2は、D2’=0であれば、O0、O1からそれぞれ
0’、D1’を、またD2’=1であれば、O0、O1
ら0を加算器206及び論理積ゲート203に出力す
る。
【0053】このことを図を用いて説明する。図3
(b)は、論理積ゲート202の構成を示す構成図であ
り、305はインバータ、306、307は論理積素子
である。論理積ゲート202のCはインバータ305に
接続されている。従って、インバータ305はD2’の
反転D2’を論理積素子306、307のBに出力す
る。
【0054】論理積ゲート202のI0、I1は、それぞ
れ論理積素子307、306のAに接続されている。ま
たO0、O1には、それぞれ論理積素子307、306の
論理積出力が接続されている。論理積素子306、30
7は、それぞれ入力AとBの論理積を出力する。従っ
て、D2’=0ならば↓D2’=1となって論理積素子3
06、307のBには1が入力されるため、論理積素子
307、306の出力はそれぞれD0’、D1’と一致
し、O0、O1からはそれぞれD0’、D1’が出力され
る。反対にD2’=1ならば↓D2’=0となって論理積
素子306、307のBには0が入力されるため、論理
積素子306、307の出力は全て0となり、O0、O1
からは0が出力される。論理積ゲート202の入出力表
を、図3(b)と共に示す。
【0055】論理積ゲート202の出力は、加算器20
6及び論理積ゲート203に入力される。論理積ゲート
202のO0、O1から出力される信号を、それぞれ
0’’、D1’’とする。D3=0かつD2=0ならば、
1’’=D1、D0’’=D0である。論理積ゲート20
2の出力のうち、D1’’は加算器206のイネーブル
Eに入力される。加算器206は加算器204、加算器
205と同様に、E=1ならば加算器206の入力Aと
Bを加算して加算結果を出力し、E=0ならば出力はハ
イインピーダンスとなって加算結果を出力しない。従っ
てD1’’=1であれば、すなわち入力のMSBがD1
あれば、加算器206は入力D0’’、D1’’を用いて
加算し、加算結果を出力する。これに対してD1’’=
0であれば、加算器206の出力はハイインピーダンス
となって加算結果を出力しない。
【0056】一例として、2乗回路の入力が1011
(11)の場合について説明する。D3=1であるか
ら、論理積ゲート201はD0’、D1’、D2’を全て
0として出力する。D2’=0であるから、論理積ゲー
ト202はD0’、D1’をそのまま出力する。すなわち
0’’、D1’’は共に0である。するとD1’’=0
が加算器206のイネーブルEに入力されるため、加算
器206の出力はハイインピーダンスとなって、加算結
果を出力しない。
【0057】論理積ゲート202から出力された
0’’、D1’’は、論理積ゲート203にも入力され
る。D1’’は論理積ゲート203のCへ、またD0’’
は論理積ゲート203のI0へ、それぞれ入力される。
論理積ゲート203でも論理積ゲート201、202と
同様に、D1’’の反転と、下位の1ビットD0’’との
論理積をとり、3ステート出力バッファ207及び論理
和素子209に出力する。すなわち論理積ゲート203
は、D1’’=0であれば、O0からD0’’を出力し、
1’’=1であれば、O0から0を3ステート出力バッ
ファ207及び論理和素子209に出力する。
【0058】このことを図を用いて説明する。図3
(c)は、論理積ゲート203の構成を示す構成図であ
り、308はインバータ、309は論理積素子である。
論理積ゲート203のCはインバータ308に接続され
ている。従って、インバータ308はD1’’の反転さ
れた↓D1’’を論理積素子309のBに出力する。
【0059】論理積ゲート203のI0は、論理積素子
309のAに接続されている。またO0には、論理積素
子309の論理積出力が接続されている。論理積素子3
09は、入力AとBの論理積を出力する。従って、
1’’=0ならば↓D1’’=1となって論理積素子3
09のBには1が入力されるため、論理積素子309の
出力はD0’’と一致し、O0からはD0’’が出力され
る。反対にD1’’=1ならば↓D1’’=0となって論
理積素子309のBには0が入力されるため、論理積素
子309の出力は0となり、O0からは0が出力され
る。論理積ゲート203の入出力表を、図3(c)と共
に示す。
【0060】論理積ゲート203の出力は、3ステート
出力バッファ207及び論理和素子209の入力aに入
力される。論理積ゲート203のO0から出力される信
号をD0’’’とする。D3=0かつD2=0かつD1=0
ならば、D0’’’=D0である。ところで今、2乗回路
の入力データは0でないので、論理積素子208は0を
出力し、論理和素子209の入力bには0が入力され
る。論理和素子209は入力aと入力bの論理和を出力
するので、論理和素子209から出力される値は入力a
すなわちD0’’’と等しい。すなわちD0’’’=0な
らば0を、またD0’’’=1ならば1を出力する。論
理和素子209の出力は、3ステート出力バッファ20
7のイネーブルEに入力される。3ステート出力バッフ
ァ207は、E=1ならば入力であるD0’’’を出力
し、E=0ならば出力はハイインピーダンスとなって入
力を出力しない。従って、D0’’’=1であれば、す
なわち入力のMSBがD1であれば、E=1となり、3
ステート出力バッファ207は1を出力し、D0’’’
=0であれば、すなわち入力のMSBがD1以外であれ
ば、E=0となり、3ステート出力バッファ207の出
力はハイインピーダンスとなって入力を出力しない。
【0061】一例として、2乗回路の入力が1011
(11)の場合について説明する。D3=1であるか
ら、論理積ゲート201はD0’、D1’、D2’を全て
0として出力する。D2’=0であるから、論理積ゲー
ト202はD0’、D1’をそのまま出力する。すなわち
0’’、D1’’は共に0である。D1’’=0である
から、論理積ゲート203はD0’’をそのまま、すな
わちD0’’’=0として出力する。また、2乗回路の
入力は0でないので、論理積素子208は0を出力す
る。論理和素子209はD0’’’=0と論理積素子2
08の出力すなわち0の論理和である0を出力する。従
って、3ステート出力バッファ207のイネーブルEは
0となり、出力はハイインピーダンスとなって入力
0’’’を出力しない。
【0062】次に、2乗回路の入力データが0の場合に
ついて説明する。すなわち、論理和記号を#とすれば、
0#D1#D2#D3=0である。このとき、論理積素子
208は論理和素子209の入力bに1を出力する。ま
た、加算器204、205、206のイネーブルEはい
ずれも0となるため、出力はいずれもハイインピーダン
スとなって加算結果を出力しない。さらに、論理積ゲー
ト203の出力D0’’’=0であるので、3ステート
出力バッファ207及び論理和素子209の入力aは共
に0となる。
【0063】論理和素子209は、入力aに入力された
論理積ゲート203の出力D0’’’と、入力bに入力
された論理積素子208の出力との論理和を、3ステー
ト出力バッファ207のイネーブルEに入力する。今、
論理積素子208は1を出力するため、論理和素子20
9は論理積ゲート203の出力D0’’’が0か1かに
かかわらず1を出力し、3ステート出力バッファ207
のイネーブルEには1が入力される。従って、3ステー
ト出力バッファ207は入力D0’’’=0を、2乗回
路の出力として出力する。
【0064】以上のように、2乗回路の入力データにお
けるMSBがD3ならば、すなわちD3=1ならば、加算
器204のみが加算を行なう。また、MSBがD2なら
ば、すなわちD3=0で、かつD2=1ならば、加算器2
05のみが加算を行なう。同様に、MSBがD1なら
ば、すなわちD3=0、D2=0で、かつD1=1なら
ば、加算器206のみが加算を行なう。さらにMSBが
0ならば、すなわちD3=0、D2=0、D1=0で、か
つD0=1ならば、3ステート出力バッファ207が1
を出力する。すなわち論理積ゲート201、202、2
03及び3ステート出力バッファ207は、入力のMS
B値抽出回路として動作する。そして2乗回路の入力デ
ータが0ならば3ステート出力バッファ207から0が
出力される。
【0065】次に、2乗回路の入力のMSBがD3、す
なわちD3=1の場合の加算器204の動作を図を用い
て説明する。D3=1であるから2乗回路の入力データ
の数値は8以上15以下であり、加算器204のみが加
算結果を出力する。図4(a)は加算器204の構成を
示す構成図である。図4(a)に示したように、加算器
204は7ビット加算器であり、入力AはA0からA6
での7個の入力(A0が最下位桁)がある。同様に、入
力BはB0からB6までの7個の入力(B0が最下位桁)
がある。
【0066】図4(a)に示すように、加算器204の
入力Aには、A6にD3=1が入力され、A0からA5まで
の6個の入力には0が入力される。すなわち、加算器2
04の入力Aには、MSB値である8の2乗=64が入
力される。一方、加算器204の入力Bには、B6
5、B4にそれぞれD2、D1、D0が入力され、B0から
3までの4個の入力には0が入力される。すなわち、
加算器204の入力Bには、2乗回路の入力データから
MSB値である8を引いた値を2×8=16倍した値が
入力される。加算器204では入力Aに入力される64
と、入力Bに入力される入力データから8を引いた値の
16倍を加算し、2乗回路の出力として出力する。従っ
て2乗回路の出力yは、2乗回路の入力xのMSB値x
1と、xからx1を引いたLSP値x2を用いて次のよう
に表せる。 y=x1 2+2x12 (6)
【0067】2乗回路の入力のMSBがD2、すなわち
3=0かつD2=1の場合の加算器205の動作を図を
用いて説明する。D3=0かつD2=1であるから2乗回
路の入力データの数値は4以上7以下であり、加算器2
05のみが加算結果を出力する。図4(b)は加算器2
05の構成を示す構成図である。図4(b)に示したよ
うに、加算器205は5ビット加算器であり、入力Aは
0からA4までの5個の入力(A0が最下位桁)があ
る。同様に、入力BはB0からB4までの5個の入力(B
0が最下位桁)がある。
【0068】図4(b)に示すように、加算器205の
入力Aには、A4にD2=1が入力され、A0からA3まで
の4個の入力には0が入力される。すなわち、加算器2
05の入力Aには、MSB値である4の2乗=16が入
力される。一方、加算器205の入力Bには、B4とB3
にそれぞれD1とD0が入力され、B0からB2までの3個
の入力には0が入力される。すなわち、加算器205の
入力Bには、2乗回路の入力データからMSB値である
4を引いた値を2×4=8倍した値が入力される。加算
器205では入力Aに入力される16と、入力Bに入力
される入力データから4を引いた値の8倍を加算し、2
乗回路の出力として出力する。従って2乗回路の出力y
は、2乗回路の入力xのMSB値x1と、xからx1を引
いたLSP値x2を用いて次のように表せる。 y=x1 2+2x12 (6)
【0069】2乗回路の入力のMSBがD1、すなわち
3=0かつD2=0かつD1=1の場合の加算器206
の動作を図を用いて説明する。D3=0かつD2=0かつ
1=1であるから2乗回路の入力データの数値は2ま
たは3であり、加算器206のみが加算結果を出力す
る。図4(c)は加算器206の構成を示す構成図であ
る。図4(c)に示したように、加算器206は3ビッ
ト加算器であり、入力AはA0からA2までの3個の入力
(A0が最下位桁)がある。同様に、入力BはB0からB
2までの3個の入力(B0が最下位桁)がある。
【0070】図4(c)に示すように、加算器206の
入力Aには、A2にD1=1が入力され、A0とA1には0
が入力される。すなわち、加算器206の入力Aには、
MSB値である2の2乗=4が入力される。一方、加算
器206の入力Bには、B2にD0が入力され、B0とB1
には0が入力される。すなわち、加算器206の入力B
には、2乗回路の入力データからMSB値である2を引
いた値を2×2=4倍した値が入力される。加算器20
6では入力Aに入力される4と、入力Bに入力される入
力データから2を引いた値の4倍を加算し、2乗回路の
出力として出力する。従って2乗回路の出力yは、2乗
回路の入力xのMSB値x1と、xからx1を引いたLS
P値x2を用いて次のように表せる。 y=x1 2+2x12 (6)
【0071】一例として、2乗回路の入力が1011
(11)の場合について説明する。この場合D3=1で
あるから、加算器204のみが加算結果を出力する。加
算器204の入力Aには、82=64が入力される。ま
た、加算器204の入力Bには11−8=3の16倍、
すなわち48が入力される。従って加算器204は64
+48=112を2乗回路の出力として出力する。
【0072】以上のように、2乗回路の入力データのM
SB値を抽出して、MSB値の2乗と、MSB値に応じ
た下位ビットの倍数を加算器で加算して2乗値を求める
ことにより、従来よりも加算器の数を減らし、回路規模
の小さな2乗回路を得ることができる。
【0073】実施の形態3.実施の形態2では、MSB
値抽出回路として動作する論理積ゲートの入力毎に加算
器を持ち、1つの入力データに対してどれか1つの加算
器あるいは3ステート出力バッファが2乗結果を出力す
る構成としたが、これは必ずしも必要ではない。例え
ば、図5に示すように加算器の入力に対して3ステート
出力バッファゲートを用いる構成としてもよい。一般に
加算器に比べ3ステートバッファの方がゲート数は少な
いので、3ステートバッファゲートを加算器の代わりに
用いることで、回路規模を小さくすることができる。
【0074】実施の形態3でも、実施の形態1と同様に
y=x2をx=x1+x2とおくことによって、y≒x1 2
+2x12と近似した値を求める。以下、一例として入
力のビット数が4ビットの場合について、図を用いて実
施の形態3について説明する。図5は、実施の形態3に
おける2乗回路の構成を示す構成図であり、501、5
02、503、504は3ステート出力バッファゲー
ト、505は加算器である。なお、図2と同一又は相当
部分については、同一番号を付して説明は省略する。
【0075】次に回路の動作について説明する。実施の
形態2と同様に、図5において、2乗回路に入力される
4ビットの信号を下位ビットから順にD0、D1、D2
3とする。このときDi∈{0、1}である。まず、2
乗回路に入力されるデータが0でない場合について説明
する。
【0076】実施の形態2と同様に、2乗回路に入力さ
れた4ビットのディジタル信号は論理積ゲート201に
入力される。論理積ゲート201では、D3の反転と、
下位の3ビットとの論理積をとり、論理積ゲート202
に出力する。論理積ゲート202では、D2’の反転
と、下位の2ビットとの論理積をとり、論理積ゲート2
03に出力する。論理積ゲート203では、D1’’の
反転と、D0との論理積をとり、3ステート出力バッフ
ァゲート304に出力する。すなわち、実施の形態2と
同様に、論理積ゲート201、202、203は、2乗
回路入力データのMSB値抽出回路として動作する。
【0077】3ステート出力バッファゲート501の動
作を説明する。2乗回路の入力データは、論理積ゲート
201の他、3ステート出力バッファゲート501にも
入力される。D0、D1、D2、D3は3ステート出力バッ
ファゲート501のI0、I1、I2、I3へ、それぞれ入
力される。3ステート出力バッファゲート501には、
加算器505の使用しない入力を0にするために、0が
入力G1に入力される。具体的にはG1を接地する。ま
た、入力された4ビットの入力データのうちD3は、3
ステート出力バッファゲート501のイネーブルEにも
入力される。3ステート出力バッファゲート501はE
=D3=1ならば入力をそのまま出力し、E=D3=0な
らば出力はハイインピーダンスとなって入力を出力しな
い。従って3ステート出力バッファゲート501は、D
3が1ならばD0、D1、D2、D3、G1(=0)を加算器
505に出力し、D3が0ならば、出力はハイインピー
ダンスとなって、入力であるD0、D1、D2、D3、G1
(=0)を加算器505に出力しない。
【0078】このことを図を用いて説明する。図6
(a)は3ステート出力バッファゲート501の構成を
示す構成図であり、601、602、603、604、
605は3ステート出力バッファである。3ステート出
力バッファゲート501のEは、3ステート出力バッフ
ァ601、602、603、604、605のイネーブ
ルEに接続される。3ステート出力バッファゲート50
1のG1、I0、I1、I2、I3は、それぞれ3ステート
出力バッファ605、604、603、602、601
に接続されている。従って605、604、603、6
02、601には、それぞれ0、D0、D1、D2、D3
入力される。また、Og、O0、O1、O2、O3には、そ
れぞれ3ステート出力バッファ605、604、60
3、602、601の出力が接続されている。
【0079】3ステート出力バッファ601、602、
603、604、605のイネーブルEにはD3が入力
され、E=D3=1ならば3ステート出力バッファ60
5、604、603、602、601は、それぞれG1
(=0)、D0、D1、D2、Dを出力し、E=D
0ならば3ステート出力バッファ605、604、60
3、602、601の各出力は全てハイインピーダンス
となって信号を出力しない。3ステート出力バッファ5
01の入出力表を、図6(a)とともに示す。
【0080】一例として、2乗回路の入力が1011
(11)の場合について説明する。D3=1であるか
ら、3ステート出力バッファゲート501はD0、D1
2、D3、G1(=0)を、加算器505に出力する。
【0081】次に、3ステート出力バッファゲート50
2の動作を説明する。論理積ゲート201から出力され
るD0’、D1’、D2’は、論理積ゲート202の他、
3ステート出力バッファゲート502にも入力される。
0’、D1’、D2’は3ステート出力バッファゲート
502のI0、I1、I2へ、それぞれ入力される。3ス
テート出力バッファゲート502には、加算器505の
使用しない入力を0にするために、0が入力G2に入力
される。具体的にはG2を接地する。また、3ステート
出力バッファゲート502の入力のうちD2’は、3ス
テート出力バッファゲート502のイネーブルEにも入
力される。3ステート出力バッファゲート502はE=
2’=1ならば入力をそのまま出力し、E=D2’=0
ならば出力はハイインピーダンスとなって入力を出力し
ない。従って3ステート出力バッファゲート502は、
2’が1ならばD0’、D1’、D2’、G2(=0)を
加算器505に出力し、D2’が0ならば、出力はハイ
インピーダンスとなって、入力であるD0、D1、D2
2(=0)を加算器505に出力しない。
【0082】このことを図を用いて説明する。図6
(b)は3ステート出力バッファゲート502の構成を
示す構成図であり、606、607、608、609は
3ステート出力バッファである。3ステート出力バッフ
ァゲート502のEは、3ステート出力バッファ60
6、607、608、609のイネーブルEに接続され
る。3ステート出力バッファゲート502のG2、I0
1、I2は、それぞれ3ステート出力バッファ609、
608、607、606に接続されている。従って60
9、608、607、606には、それぞれ0、
0’、D1’、D2’が入力される。また、Og、O0
1、O2には、それぞれ3ステート出力バッファ60
9、608、607、606の出力が接続されている。
【0083】3ステート出力バッファ606、607、
608、609のイネーブルEにはD2’が入力され、
E=D2’=1ならば3ステート出力バッファ609、
608、607、606は、それぞれG2(=0)、
0’、D1’、D2’を出力し、E=D2’=0ならば3
ステート出力バッファ609、608、607、606
の各出力は全てハイインピーダンスとなって信号を出力
しない。3ステート出力バッファ502の入出力表を、
図6(b)とともに示す。
【0084】一例として、2乗回路の入力が1011
(11)の場合について説明する。D3=1であるか
ら、論理積ゲート201はD0’、D1’、D2’を全て
0として出力する。D2’=0であるから、3ステート
出力バッファゲート502のイネーブルEには0が入力
される。従って3ステート出力バッファゲート502の
出力はハイインピーダンスとなって、入力である
0’、D1’、D2’、G2(=0)を加算器505に出
力しない。
【0085】次に、3ステート出力バッファゲート50
3の動作を説明する。論理積ゲート202から出力され
るD0’’、D1’’は、論理積ゲート203の他、3ス
テート出力バッファゲート503にも入力される。
0’’、D1’’は3ステート出力バッファゲート50
3のI0、I1へ、それぞれ入力される。3ステート出力
バッファゲート503には、加算器505の使用しない
入力を0にするために、0が入力G3に入力される。具
体的にはG3を接地する。また、3ステート出力バッフ
ァゲート503の入力のうちD1’’は、3ステート出
力バッファゲート503のイネーブルEにも入力され
る。3ステート出力バッファゲート503はE=
1’’=1ならば入力をそのまま出力し、E=D1’’
=0ならば出力はハイインピーダンスとなって入力を出
力しない。従って3ステート出力バッファゲート503
は、D1’’が1ならばD0’’、D1’’、G3(=0)
を加算器505に出力し、D1’’が0ならば、出力は
ハイインピーダンスとなって、入力であるD0’’、
1’’、G3(=0)を加算器505に出力しない。
【0086】このことを図を用いて説明する。図6
(c)は3ステート出力バッファゲート503の構成を
示す構成図であり、610、611、612は3ステー
ト出力バッファである。3ステート出力バッファゲート
503のEは、3ステート出力バッファ610、61
1、612のイネーブルEに接続される。3ステート出
力バッファゲート503のG3、I0、I1は、それぞれ
3ステート出力バッファ612、611、610に接続
されている。従って612、611、610には、それ
ぞれ0、D0’’、D1’’が入力される。また、Og
0、O1には、それぞれ3ステート出力バッファ61
2、611、610の出力が接続されている。
【0087】3ステート出力バッファ610、611、
612のイネーブルEにはD1’’が入力され、E=
1’’=1ならば3ステート出力バッファ612、6
11、610は、それぞれG3(=0)、D0’’、
1’’を出力し、E=D1’’=0ならば3ステート出
力バッファ610、611、612の各出力は全てハイ
インピーダンスとなって信号を出力しない。3ステート
出力バッファ503の入出力表を、図6(c)とともに
示す。
【0088】一例として、2乗回路の入力が1011
(11)の場合について説明する。D3=1であるか
ら、論理積ゲート201はD0’、D1’、D2’を全て
0として出力する。D2’=0であるから、論理積ゲー
ト202はD0’、D1’をそのまま、すなわち
0’’、D1’’を共に0として出力する。D1’’=
0であるから、3ステート出力バッファゲート503の
イネーブルEには0が入力される。従って3ステート出
力バッファゲート503の出力はハイインピーダンスと
なって、入力であるD0’’、D1’’、G3(=0)を
加算器505に出力しない。
【0089】次に、3ステート出力バッファゲート50
4の動作を説明する。論理積ゲート203から出力され
るD0’’’は、3ステート出力バッファゲート504
に入力される。D0’’’、は3ステート出力バッファ
ゲート504のI0へ入力される。3ステート出力バッ
ファゲート504には、加算器505の使用しない入力
を0にするために、入力0がG4に入力される。具体的
にはG4を接地する。また、3ステート出力バッファゲ
ート504に入力されるD0’’’は、論理和素子20
9の入力aにも入力される。ところで今、2乗回路の入
力は0でないので、論理積素子208は0を出力し、論
理和素子209の入力bには0が入力される。論理和素
子209は入力aと入力bの論理和を出力するので、論
理和素子209から出力される値はD0’’’と等し
い。すなわち、D0’’’=0ならば0を出力し、D0
1ならば1を出力する。論理和素子209の出力は、3
ステート出力バッファゲート504のイネーブルEに入
力される。3ステートバッファゲート504はE=1な
らば入力をそのまま出力し、E=0ならば出力はハイイ
ンピーダンスとなって入力を出力しない。従って、3ス
テート出力バッファゲート504は、D0’’’=1な
らばD0’’’、G4(=0)を加算器505に出力し、
0’’’=0ならば、出力はハイインピーダンスとな
って、入力であるD0、G4(=0)を加算器505に出
力しない。
【0090】このことを図を用いて説明する。図6
(d)は3ステート出力バッファゲート504の構成を
示す構成図であり、613、614は3ステート出力バ
ッファである。3ステート出力バッファゲート504の
Eは、3ステート出力バッファ613、614のイネー
ブルEに接続される。3ステート出力バッファゲート5
04のG4、I0は、それぞれ3ステート出力バッファ6
14、613に接続されている。従って614、613
には、それぞれ0、D0’’’が入力される。また、
g、O0には、それぞれ3ステート出力バッファ61
4、613の出力が接続されている。
【0091】3ステート出力バッファ613、614の
イネーブルEには論理和素子209の出力が入力され、
E=1ならば3ステート出力バッファ614、613
は、それぞれG4(=0)、D0’’’を出力し、E=0
ならば3ステート出力バッファ613、614の各出力
は全てハイインピーダンスとなって信号を出力しない。
3ステート出力バッファ504の入出力表を、図6
(d)とともに示す。
【0092】一例として、2乗回路の入力が1011
(11)の場合について説明する。D3=1であるか
ら、論理積ゲート201はD0、D1、D2を全て0とし
て出力し、このためD2=0であるから、論理積ゲート
202はD0、D1をそのまま、すなわちD0、D1を共に
0として出力する。さらにD1=0であるから、論理積
ゲート203はD0をそのまま、すなわちD0=0として
出力する。すると論理和素子209の入力aには0が入
力される。このとき論理和素子209は、D0=0と論
理積素子208から入力される0との論理和すなわち0
を、3ステート出力バッファゲート504のイネーブル
Eに入力する。従って3ステート出力バッファゲート5
04の出力はハイインピーダンスとなって、入力である
0、G4(=0)を加算器505に出力しない。
【0093】次に、加算器505の動作を図を用いて説
明する。図7は、3ステート出力バッファゲート50
1、502、503、504と加算器505の接続を説
明する図であり、図5における3ステート出力バッファ
ゲート501、502、503、504と加算器505
を、入出力接続を含めて詳細に記した図である。図7に
示すように、加算器505は7ビット加算器であり、入
力AはA0からA6までの7個の入力(A0が最下位桁)
がある。同様に、入力BはB0からB6までの7個の入力
(B0が最下位桁)がある。入力AのうちA5、A3、A1
の入力を常に0とする。具体的にはA5、A3、A1を接
地する。同様に入力Bのうち、B1、B0の入力を常に0
とする。具体的にはB1、B0を接地する。
【0094】3ステート出力バッファゲート501、5
02、503、504の出力と加算器505の接続を説
明する。3ステート出力バッファゲート501の出力の
うち、O3は加算器505のA6に接続される。またO2
はB6、O1はB5、O0はB4にそれぞれ接続される。ま
た、それ以外の加算器505の入力には3ステート出力
バッファゲート501のOgが接続される。次に、3ス
テート出力バッファゲート502の出力のうち、O2
加算器505のA4に接続される。またO1はB4、O0
3にそれぞれ接続される。また、それ以外の加算器5
05の入力には3ステート出力バッファゲート502の
gが接続される。次に、3ステート出力バッファゲー
ト503の出力のうち、O1は加算器505のA2に接続
される。またO0はB2に接続される。また、それ以外の
加算器505の入力には3ステート出力バッファゲート
503のOgが接続される。次に、3ステート出力バッ
ファゲート504の出力のうち、O0は加算器505の
0に接続される。また、それ以外の加算器505の入
力には3ステート出力バッファゲート504のOgが接
続される。
【0095】次に、2乗回路の入力のMSBがD3、す
なわちD3=1の場合の加算器505の動作を説明す
る。このとき2乗回路の入力データの数値は8以上15
以下であり、3ステート出力バッファゲート501のみ
が入力を加算器505に出力する。加算器505の入力
Aには、A6に3ステート出力バッファゲート501か
ら出力されるD3が入力される。A1、A3、A5は接地さ
れており、入力は0である。またA0、A2、A4は3ス
テート出力バッファゲート501のG1(=0)が入力
されるため、入力は0である。すなわち、加算器505
の入力Aには、82=64が入力される。一方、加算器
505の入力Bには、B6、B5、B4にそれぞれD2、D
1、D0が入力される。B0、B1は接地されており、入力
は0である。またB2、B3は3ステート出力バッファゲ
ート501の出力G1(=0)が入力されるため、入力
は0である。すなわちB0、B1、B2、B3が0であるこ
とから、加算器505の入力Bには、D2、D1、D0
表される2乗回路の入力データから8を引いた値の16
倍が入力される。加算器505は入力Aに入力される6
4と、入力Bに入力される入力データから8を引いた値
の16倍を加算し、2乗回路の出力として出力する。
【0096】次に、2乗回路の入力のMSBがD2、す
なわちD3=0で、D2=1の場合の加算器505の動作
を説明する。このとき2乗回路の入力データの数値は4
以上7以下であり、3ステート出力バッファゲート50
2のみが入力を加算器505に出力する。加算器505
の入力Aには、A4に3ステート出力バッファゲート5
02から出力されるD2が入力される。A1、A3、A5
接地されており、入力は0である。またA0、A2、A6
は3ステート出力バッファゲート502の出力G2(=
0)が入力されるため、入力は0である。すなわち、加
算器505の入力Aには、42=16が入力される。一
方、加算器505の入力Bには、B4、B3にそれぞれD
1、D0が入力される。B0、B1は接地されており、入力
は0である。またB2、B5、B6は3ステート出力バッ
ファゲート502の出力G2(=0)が入力されるた
め、入力は0である。すなわちB0、B1、B2が0であ
ることから、加算器505の入力Bには、D1、D0で表
される2乗回路の入力データから4を引いた値の8倍が
入力される。加算器505は入力Aに入力される16
と、入力Bに入力される入力データから4を引いた値の
8倍を加算し、2乗回路の出力として出力する。
【0097】次に、2乗回路の入力のMSBがD1、す
なわちD3=0、D2=0で、かつD1=1の場合の加算
器505の動作を説明する。このとき2乗回路の入力デ
ータの数値は2または3であり、3ステート出力バッフ
ァゲート503のみが入力を加算器505に出力する。
加算器505の入力Aには、A2に3ステート出力バッ
ファゲート503から出力されるD1が入力される。
1、A3、A5は接地されており、入力は0である。ま
たA0、A4、A6は3ステート出力バッファゲート50
3の出力G3(=0)が入力されるため、入力は0であ
る。すなわち、加算器505の入力Aには、22=4が
入力される。一方、加算器505の入力Bには、B2
0が入力される。B0、B1は接地されており、入力は
0である。またB3、B4、B5、B6は3ステート出力バ
ッファゲート503の出力G3(=0)が入力されるた
め、入力は0である。すなわちB0、B1が0であること
から、加算器505の入力Bには、D0で表される2乗
回路の入力データから2を引いた値の4倍が入力され
る。加算器505は入力Aに入力される4と、入力Bに
入力される入力データから2を引いた値の4倍を加算
し、2乗回路の出力として出力する。
【0098】一例として、2乗回路の入力が1011
(11)の場合について説明する。この場合D0=1で
あるから、3ステート出力バッファゲート501のみが
加算器505に入力する。加算器505の入力Aには、
82=64が入力される。また、加算器505の入力B
には、11−8=3の16倍、すなわち48が入力され
る。従って加算器505は64+48=112を2乗回
路の出力として出力する。
【0099】以上のように、2乗回路の入力データのM
SBを抽出して、MSBの2乗と、MSBに応じた下位
ビットの倍数を加算器で加算して2乗値を求めることに
より、従来よりも加算器の数を減らすことができる。さ
らに、3ステート出力バッファゲートを用いて加算器の
数を減らすことにより、回路規模の小さな2乗回路を得
ることができる。
【0100】実施の形態4.実施の形態1では、MSB
値抽出回路を用いて入力データのMSB値を求め、入力
データをMSB値とLSP値に分割して演算を行なう構
成とした。本実施の形態4では、LSP値に対してさら
にMSB値を抽出し、MSB値とLSP値に分割して演
算を行い、加算することで、出力の誤差を小さくする。
【0101】本実施の形態4における2乗回路で求める
値について説明する。2乗回路は入力データの数値の2
乗の数値のデータを出力する回路である。入力データを
x、出力データをyとすると、xとyの関係は次の式で
表せる。 y=x2 (1) 上式において、xをx1とx2の和で表すものとする。す
なわち x=x1+x2 (2) が成立する。式(2)を代入すると、式(1)は次のよ
うに書き表せる。 y=(x1+x22 =x1 2+2x12+x2 2 (3) 実施の形態1では、x1>x2が成り立つようにx1とx2
を選ぶことで、式(3)においてx2 2を無視した値を求
めた。実施の形態4では、x1>x2が成り立つようにx
1とx2を選び、さらにx1をx3とx4の和で表すものと
する。すなわち x2=x3+x4 (7) が成立する。式(7)を代入すると、式(3)は次のよ
うに書き表せる。 y=x1 2+2x12+x2 2 =x1 2+2x12+x3 2+2x34+x4 2 (3)’ ここで、x3>x4が成り立つならば、それぞれを2乗し
たx3 2、x4 2の間には次の関係が成立する。 x3 2≫x4 2 (8) 式(8)の関係を用いると、式(3)’は次のように変
形できる。 y=x1 2+2x12+x3 2+2x34+x4 2 ≒x1 2+2x12+x3 2+2x34 (9) すなわち、x3>x4が成り立つようにx3とx4を選べ
ば、2乗出力データyに対するx4 2の寄与を無視でき
る。本実施の形態4では式(9)の右辺を2乗回路の出
力として求める。以下、図を用いて実施の形態4につい
て説明する。図8は、実施の形態4における2乗回路の
構成を示す構成図であり、図8において、801はMS
B値抽出回路、802は左ビットシフト回路、803は
加算器、804は左ビットシフト回路、805は加算器
である。また、図1と同一または相当部分については同
一符号を付してその説明は省略する。
【0102】次に回路の動作について説明する。図8に
おいて、実施の形態1と同様にディジタルの入力データ
は2乗回路に入力されると、MSB値抽出回路101に
入力されてMSB値が抽出される。2乗回路の入力デー
タxの数値が2m≦x≦2m+1−1(mは負でない整数)
の範囲である場合、mビット目がMSBである。この場
合、MSB値抽出回路101はmビット目が1である2
mを抽出して出力する。以下、入力xのMSB値である
mをx1、xから2mを引いたLSP値x−2mすなわち
x−x1をx2とする。すなわち、x、x1、x2の間には
以下の関係が成立する。 x=x1+x2 (6)
【0103】一例として、入力データx=14の場合を
考える。2進数で表すと14は1110(14)であ
る。xはMSBである1000(8)と、入力データ1
110(14)からMSB値1000(8)を引いたL
SP値110(6)に分けることができる。MSB値抽
出回路101は3ビット目が1である1000(8)を
抽出して出力する。
【0104】MSB値抽出回路101は入力データxの
MSB値であるx1すなわち2mを出力する。MSB値抽
出回路101から出力されたx1は左ビットシフト回路
102に入力される。また、x1は左ビットシフト回路
102のシフト入力Sにも入力される。左ビットシフト
回路102に入力されたx1は、シフト入力Sで指定さ
れる桁だけ左ビットシフトされる。シフト入力Sにはm
ビット目が1のx1が入力されているので、x1はmビッ
トだけ左ビットシフトされ、x1’を出力する。ここ
で、x1’は2mをmビットシフトした値であるから22m
に等しい。すなわちx1’=x1 2である。左ビットシフ
ト回路102はx1すなわち2mを2乗して、x1 2すなわ
ち22mを加算器805に出力する。
【0105】入力データx=14の場合の左ビットシフ
ト回路102の動作を説明する。MSB値抽出回路10
1から出力された、入力データxのMSB値である10
00(8)は、左ビットシフト回路102で3ビットだ
け左ビットシフトされる。ここで、1000(8)は3
ビット目だけが1であるから、1000(8)の3ビッ
トシフトは2乗操作に等しい。ビットシフトされた値1
000000(64)は、左ビットシフト回路102の
出力として加算器805に入力される。
【0106】MSB値抽出回路101から出力される入
力データxのMSB値であるx1すなわち2mは、加算器
103にも入力される。加算器103は入力データxか
らx1を減算し、x−x1すなわちLSP値であるx2
左ビットシフト回路104に出力する。
【0107】入力データx=14の場合の加算器103
の動作を説明する。加算器103は、MSB値抽出回路
101から出力された入力データxのMSB値である1
000(8)を、入力データx=1110(14)から
減算し、入力データxのLSP値である110(6)を
左ビットシフト回路104に出力する。
【0108】左ビットシフト回路104には、加算器1
03の出力である入力データxのLSP値x2が入力さ
れる。また、左ビットシフト回路104のシフト入力S
にはMSB値抽出回路101から出力される入力データ
xのMSB値であるx1が入力される。左ビットシフト
回路104に入力されたx2は、シフト入力Sで指定さ
れる値に1を加えた桁だけ左ビットシフトされる。シフ
ト入力Sにはmビット目が1のx1が入力されているの
で、x2は(m+1)ビットだけ左ビットシフトされ
る。ここで左mビットシフトはx1倍に相当し、1ビッ
トシフトは2倍に相当する。すなわち、左ビットシフト
回路104におけるx2の左(m+1)ビットシフト
は、2x12を導出する操作に等しい。左ビットシフト
回路104は、2x12を加算器805に出力する。
【0109】入力データx=14の場合の左ビットシフ
ト回路104の動作を説明する。加算器103から出力
された入力データxのLSP値である110(6)は、
3+1=4ビットだけビットシフトされる。ここで、4
ビットシフトは24=16倍の操作に等しく、2×x1
(8)×x2(6)=96が導出される。ビットシフト
された値は1100000(96)であり、左ビットシ
フト回路104の出力として加算器105に出力され
る。
【0110】加算器103から出力される入力データx
のLSP値x2は、MSB値抽出回路801にも入力さ
れてMSB値が抽出される。入力データxのLSP値x
2の数値が2n≦x≦2n+1−1(nは負でない整数、m
>n)の範囲である場合、nビット目がMSBである。
この場合、MSB値抽出回路801はnビット目が1で
ある2nを抽出して出力する。以下、入力データxのL
SP値x2のMSB値である2nをx3、x2から2nを引
いたx2−2nすなわちx2−x3をx4とする。すなわ
ち、x2、x3、x4の間には以下の関係が成立する。 x2=x3+x4 (7)
【0111】入力データx=14の場合のMSB値抽出
回路801の動作を説明する。入力データxのLSP値
である110(6)は、MSB値である100(4)
と、110(6)から100(4)を引いたLSP値1
0(2)に分けることができる。MSB値抽出回路80
1は2ビット目が1である100(4)を抽出して出力
する。
【0112】MSB値抽出回路801はx2のMSB値
であるx3すなわち2nを出力する。MSB値抽出回路8
01から出力されたx3は左ビットシフト回路802に
入力される。また、x3は左ビットシフト回路802の
シフト入力Sにも入力される。左ビットシフト回路80
2に入力されたx3は、シフト入力Sで指定される桁だ
け左ビットシフトされる。シフト入力Sにはnビット目
が1のx3が入力されているので、x3はnビットだけ左
ビットシフトされ、x3’を出力する。ここで、x3’は
nを左nビットシフトした値であるから22nに等し
い。すなわちx3’=x32である。左ビットシフト回路
802はx3すなわち2nを2乗して、x3 2すなわち22n
を加算器805に出力する。
【0113】入力データx=14の場合の左ビットシフ
ト回路802の動作を説明する。MSB値抽出回路80
1から出力された、入力データxのLSP値x2のMS
B値である100(4)は、左ビットシフト回路802
で2ビットだけ左ビットシフトされる。ここで、100
(4)は2ビット目だけが1であるから、100(4)
の左2ビットシフトは2乗操作に等しい。ビットシフト
された出力10000(16)は、左ビットシフト回路
802の出力として加算器805に入力される。
【0114】MSB値抽出回路801から出力されるx
2のMSB値であるx3すなわち2nは、加算器803に
も入力される。加算器803は入力データxのLSP値
2からx3を減算し、x2−x3すなわちx4を左ビット
シフト回路804に出力する。
【0115】入力データx=14の場合の加算器803
の動作を説明する。加算器803は、MSB値抽出回路
801から出力されたx2のMSB値である100
(4)を、加算器603の入力である110(6)から
減算し、x2のLSP値である10(2)を左ビットシ
フト回路804に出力する。
【0116】左ビットシフト回路804には、加算器8
03の出力であるx2のLSP値x4が入力される。ま
た、左ビットシフト回路804のシフト入力Sには、M
SB値抽出回路801から出力されるx2のMSB値で
あるx3が入力される。左ビットシフト回路804に入
力されたx4は、シフト入力Sで指定される値に1を加
えた桁だけ左ビットシフトされる。シフト入力Sにはn
ビット目が1のx3が入力されているので、x4は(n+
1)ビットだけ左ビットシフトされる。ここで左nビッ
トシフトはx3倍に相当し、1ビットシフトは2倍に相
当する。すなわち、左ビットシフト回路804における
4の(n+1)ビットシフトは、2x34を導出する
操作に等しい。左ビットシフト回路804は、2x34
を加算器805に出力する。
【0117】入力データx=14の場合の左ビットシフ
ト回路804の動作を説明する。加算器803から出力
されたx2のLSP値である10(2)は、2+1=3
ビットだけビットシフトされる。ここで、3ビットシフ
トは23=8倍の操作に等しく、2×x3(4)×x
4(2)=16が導出される。左ビットシフトされた値
は10000(16)であり、左ビットシフト回路80
4の出力として加算器805に出力される。
【0118】加算器805では、左ビットシフト回路1
02から出力されるx1 2と左ビットシフト回路104か
ら出力される2x12と左ビットシフト回路802から
出力されるx3 2と左ビットシフト回路804から出力さ
れる2x34を加算し、2乗回路の出力として出力す
る。入力データx=14の場合、1000000(6
4)と1100000(96)と10000(16)と
10000(16)が加算されて、11000000
(192)が出力される。
【0119】図17に、2乗回路の入出力のグラフを示
す。点線が理想値、実線が実施の形態4における2乗回
路の入出力、一点鎖線が実施の形態1における2乗回路
の入出力である。実施の形態4の方が出力の近似誤差が
少ないことがわかる。
【0120】以上のように、2乗回路の入力データをM
SB値とLSP値に分割して、それぞれに対しあらかじ
め定められた左ビットシフト演算を行なって部分積を求
め、さらにLSP値に対しても同様にMSB値とLSP
値に分割して、それぞれに対しあらかじめ定められた左
ビットシフト演算を行なって部分積を求め、これら4つ
の部分積を加算して2乗値を求めることにより、従来よ
りも加算器の数を減らして、遅延が少ない2乗回路を得
ることができる。またLSP値をさらに分割してビット
シフト演算を施して加算することで、より誤差の少ない
2乗回路を得ることができる。
【0121】実施の形態5.実施の形態1では入力デー
タをMSB値とLSP値に分割して、それぞれに対しあ
らかじめ定められた左ビットシフト演算を行なって部分
積を求め、2つの部分積を加算して2乗値を求める構成
とした。実施の形態5では、左ビットシフト回路に入力
するデータをデコーダでデコードし、デコーダ出力を左
ビットシフト回路で左ビットシフトして部分積を求め、
2つの部分積を加算して2乗値を求める構成として動作
を説明する。
【0122】実施の形態1では、y=x2をx=x1+x
2とおき、y≒x1 2+2x12と近似した。この場合、
近似誤差はx2 2である。2乗回路の入力データxの数値
が2m≦x≦2m+1−1(mは負でない整数)の範囲であ
る場合、mビット目がMSBである。ここで実施の形態
1と同様に、x1をxのMSB値とすれば、x2の最上位
ビットの値によって、近似誤差x2 2の値は変動する。
【0123】例えば、もしx2の最上位ビット、すなわ
ち(m−1)ビット目が0であれば、x2はx1/2より
小さい。x2=x1/2の場合の近似誤差の割合、すなわ
ちx2 2/yは、次のように求められる。 x2 2/y=(x1/2)2/(3x1/2)2 =1/9 (10) 従って(m−1)ビット目が0の場合、近似誤差の割合
は1/9より小さくなる。
【0124】しかしながら、もしx2の最上位ビット、
すなわち(m−1)ビット目が1であれば、x2はx1
り小さい。x2=x1の場合の近似誤差の割合、すなわち
2 2/yは、次のように求められる。 x2 2/y=x1 2/(2x12 =1/4 (11) 従って(m−1)ビット目が1の場合、近似誤差の割合
は1/4程度の大きな値を取りうる。
【0125】実施の形態5では、まずy=x2をx=x1
+x2とおくことによって、y≒x1 2+2x12と近似
する。さらにx2の最上位ビットにより表される数値を
5とおき、x1 2を(x1+x5/2)×x1にデコードす
ることで、2乗回路の出力値yを次のように表す。 y=x1 2+2x12+x15/2 (12) 本実施の形態5では式(12)の右辺を2乗回路の出力
として求める。式(12)によれば、x2の最上位ビッ
トが0の場合、x5=0より式(12)の右辺第3項は
0となって実施の形態1で求めた値と一致するが、x2
の最上位ビットが1の場合、x5=2m-1より右辺第3項
の値である22(m-1)が出力に加えられ、実施の形態1に
比べて近似誤差を減らすことができる。以下、図を用い
て実施の形態5について説明する。図9は、実施の形態
5における2乗回路の構成を示す構成図であり、図9に
おいて、901はデコーダである。また、図1と同一ま
たは相当部分については同一符号を付してその説明は省
略する。
【0126】次に回路の動作について説明する。図9に
おいて、2値信号であるディジタルの入力データは2乗
回路に入力されると、MSB値抽出回路101に入力さ
れてMSB値が抽出される。2乗回路の入力データxの
数値が2m≦x≦2m+1−1(mは負でない整数)の範囲
である場合、mビット目がMSBである。この場合、M
SB値抽出回路101はmビット目が1である2mを抽
出して出力する。以下、入力データxのMSB値である
mをx1、xから2mを引いたx−2mすなわちLSP値
をx−x1をx2とする。従って、x、x1、x2の間には
以下の関係が成立する。 x=x1+x2 (6)
【0127】一例として、入力データx=14の場合を
考える。2進数で表すと14は1110(14)であ
る。xはMSB値である1000(8)と、入力データ
1110(14)からMSB値1000(8)を引いた
LSP値110(6)に分けることができる。MSB値
抽出回路101は3ビット目が1である1000(8)
を抽出して出力する。
【0128】MSB値抽出回路101は入力データxの
MSB値であるx1すなわち2mを出力する。MSB値抽
出回路101から出力されるx1は、デコーダ901に
入力されると共に加算器103にも入力される。加算器
103は入力データxからx1を減算し、x−x1すなわ
ちx2をデコーダ901に出力する。
【0129】入力データx=14の場合の加算器103
の動作を説明する。加算器103は、MSB値抽出回路
101から出力された入力データxのMSB値である1
000(8)を、入力データxである1110(14)
から減算し、入力データxのLSP値である110
(6)をデコーダ901に出力する。
【0130】MSB値抽出回路101から出力される入
力データxのMSB値であるx1すなわち2mと、加算器
103の出力であるx2は、デコーダ901に入力され
てデコードされる。このことを図を用いて説明する。図
10はデコーダ901の構成を示す構成図であり、10
01は最上位ビット抽出回路、1002は右ビットシフ
ト回路、1003は加算器である。
【0131】デコーダ901に入力されたx2は、最上
位ビット抽出回路1001に入力されて最上位ビットが
抽出される。xのMSBはmビット目であるので、xの
LSP値であるx2の最上位ビットは(m−1)ビット
目である。(m−1)ビット目が0であれば最上位ビッ
ト抽出回路1001はx5=0を、また(m−1)ビッ
ト目が1であれば最上位ビット抽出回路1001はx5
=2m-1を、右ビットシフト回路1002に出力する。
【0132】最上位ビット抽出回路1001から出力さ
れたx5は、右ビットシフト回路1002に入力されて
1ビットだけ右ビットシフトされる。従って右ビットシ
フト回路1002から出力される値x5/2は、入力x
の(m−1)ビット目が0か1かにより、0かまたは2
m-2となる。右ビットシフト回路1002から出力され
るx5/2は、加算器1003に入力されてx1と加算さ
れる。従って加算器1003から出力される値(x1
5/2)は、入力xの(m−1)ビット目が0か1か
により、2mかまたは2m+2m-2となる。加算器100
3の出力はデコーダ901の出力として左ビットシフト
回路102に入力される。
【0133】入力データx=14の場合のデコーダ90
1の動作を説明する。入力データxのLSP値である1
10(6)の最上位ビットは1である。最上位ビット値
抽出回路1001は2ビット目が1である100(4)
を抽出して、右ビットシフト回路1002に出力する。
右ビットシフト回路1002は、最上位ビット抽出回路
1001から出力された2ビット目が1である100
(4)を1ビット右ビットシフトし、10(2)を加算
器1003に出力する。加算器1003は、MSB値抽
出回路101から出力された1000(8)と、右ビッ
トシフト回路1002から出力される10(2)を加算
して、加算結果1010(10)をデコーダ901の出
力として左ビットシフト回路102に出力する。
【0134】デコーダ901から出力された(x1+x5
/2)は、左ビットシフト回路102に入力される。ま
た、MSB値抽出回路101から出力されたx1は、左
ビットシフト回路102のシフト入力Sにも入力され
る。左ビットシフト回路102に入力された(x1+x5
/2)は、シフト入力Sで指定される桁だけ左ビットシ
フトされる。シフト入力Sにはmビット目が1のx1
入力されているので、(x1+x5/2)はmビットだけ
左ビットシフトされ、x1’を出力する。ここで、x1
は2mかまたは2m+2m-2をmビットシフトした値であ
るから、22mかまたは22m+22m-2に等しい。すなわち
1’=(x1 2+x15/2)である。左ビットシフト
回路102はx1 2すなわち22mと、x15/2すなわち
0かまたは2mm-2の和を加算器105に出力する。
【0135】入力データx=14の場合のビットシフト
回路102の動作を説明する。デコーダ901から出力
された入力データxのMSB値である1000(8)
と、LSP値の最上位ビットを1ビット右ビットシフト
した10(2)の和である1010(10)は、左ビッ
トシフト回路102で3ビット左ビットシフトされる。
左ビットシフトされた値1010000(80)は、左
ビットシフト回路102の出力として加算器105に入
力される。
【0136】加算器103から出力される入力データx
のLSP値x2は、デコーダ901に入力されると共に
左ビットシフト回路104に入力される。また、左ビッ
トシフト回路104のシフト入力Sには、MSB値抽出
回路101から出力される入力データxのMSB値であ
るx1が入力される。左ビットシフト回路104に入力
されたx2は、シフト入力Sで指定される値に1を加え
た桁だけ左ビットシフトされる。シフト入力Sにはmビ
ット目が1のx1が入力されているので、x2は(m+
1)ビットだけ左ビットシフトされる。ここで左mビッ
トシフトはx1倍に相当し、左1ビットシフトは2倍に
相当する。すなわち、左ビットシフト回路104におけ
るx2の左(m+1)ビットシフトは、2x12を導出
する操作に等しい。左ビットシフト回路104は、2x
12を加算器105に出力する。
【0137】入力データx=14の場合の左ビットシフ
ト回路104の動作を説明する。加算器103から出力
された入力データxのLSP値である110(6)は、
3+1=4ビットだけ左ビットシフトされる。ここで、
左4ビットシフトは24=16倍の操作に等しく、2×
1(8)×x2(6)=96が導出される。ビットシフ
トされた値は110000(96)であり、ビットシフ
ト回路104の出力として加算器105に出力される。
【0138】加算器105では、左ビットシフト回路1
02から出力されるx1 2+x15/2と、左ビットシフ
ト回路104から出力される2x12を加算し、2乗回
路の出力として出力する。入力x=14の場合、101
0000(80)と110000(96)が加算され
て、1110000(176)が出力される。
【0139】以上のように、2乗回路の入力データをM
SB値とLSP値に分割して、MSB値をLSP値の最
上位ビットを用いてデコードし、デコーダ出力とLSP
値のそれぞれに対しあらかじめ定められた左ビットシフ
ト演算を行なって部分積を求め、2つの部分積を加算し
て2乗値を求めることにより、従来よりも加算器の数を
減らして、遅延が少ない2乗回路を、少ない誤差で得る
ことができる。
【0140】実施の形態6.実施の形態5では演算機能
を持つブロックを用いて2乗回路の動作の説明を行なっ
た。実施の形態6では実際のディジタル信号が2乗回路
に入力された場合のビット単位の処理を、論理回路を用
いて説明する。
【0141】実施の形態6でも、実施の形態5と同様に
y=x2をx=x1+x2とおくことによって、y≒x1 2
+2x12と近似する。さらにx2の最上位ビットによ
り表される数値をx5とおき、x1 2を(x1+x5/2)
×x1にデコードすることで、結局y=x1 2+2x12
+x15/2を2乗回路の出力として求める。以下、一
例として入力のビット数が4ビットの場合について、図
を用いて実施の形態6について説明する。図11は、実
施の形態6における2乗回路の構成を示す構成図であ
り、1101、1102、1103は加算器である。ま
た、図2と同一または相当部分については同一符号を付
してその説明は省略する。
【0142】実施の形態2と同様に、2乗回路に入力さ
れた4ビットのディジタル信号は論理積ゲート201に
入力される。論理積ゲート201では、D3の反転と、
下位の3ビットとの論理積をとり、論理積ゲート202
に出力する。論理積ゲート202では、D2’の反転
と、下位の2ビットとの論理積をとり、論理積ゲート2
03に出力する。論理積ゲート203では、D1’’の
反転と、D0との論理積をとり、3ステート出力バッフ
ァゲート304に出力する。すなわち、実施の形態2と
同様に、論理積ゲート201、202、203は、2乗
回路入力データのMSB値抽出回路として動作する。
【0143】2乗回路に入力された4ビットのデータの
うち、D3は加算器1101のイネーブルEに入力され
る。加算器1101はE=1ならば加算器の入力を加算
して加算結果を出力し、E=0ならば出力はハイインピ
ーダンスとなって加算結果を出力しない。従ってD3
1であれば、加算器1101は入力D0、D1、D2、D3
を用いて加算し、加算結果を出力する。これに対してD
3=0であれば、加算器1101の出力はハイインピー
ダンスとなって加算結果を出力しない。
【0144】一例として、2乗回路の入力が1110
(14)の場合について説明する。D3=1であるか
ら、加算器1101のイネーブルEは1となって、加算
器1101は加算結果を出力する。
【0145】論理積ゲート201の出力のうち、D2
加算器1102のイネーブルEに入力される。加算器1
102は加算器1101と同様に、E=1ならば入力を
加算して加算結果を出力し、E=0ならば出力はハイイ
ンピーダンスとなって加算結果を出力しない。従ってD
2=1であれば、加算器1102は入力D0、D1、D
を用いて加算し、加算結果を出力する。これに対してD
=0であれば、加算器1102の出力はハイインピー
ダンスとなって加算結果を出力しない。
【0146】論理積ゲート202の出力のうち、D1
加算器1103のイネーブルEに入力される。加算器1
103は加算器1101、1102と同様に、E=1な
らば入力を加算して加算結果を出力し、E=0ならば出
力はハイインピーダンスとなって加算結果を出力しな
い。従ってD1=1であれば、加算器1103は入力
0、D1を用いて加算し、加算結果を出力する。これに
対してD1=0であれば、加算器1103の出力はハイ
インピーダンスとなって加算結果を出力しない。
【0147】次に、2乗回路の入力のMSBがD3、す
なわちD3=1の場合の加算器1101の動作を図を用
いて説明する。D3=1であるから2乗回路の入力デー
タの数値は8以上15以下であり、加算器1101のみ
が加算結果を出力する。図12(a)は加算器1101
の構成を示す構成図である。図12(a)に示したよう
に、加算器1101は7ビット加算器であり、入力Aは
0からA6までの7個の入力(A0が最下位桁)があ
る。同様に、入力BはB0からB6までの7個の入力(B
0が最下位桁)がある。
【0148】図12(a)に示すように、加算器110
1の入力Aには、A6、A4にそれぞれD3=1、D2が入
力され、A0からA3及びA5の5個の入力には0が入力
される。すなわち、加算器1101の入力Aには、MS
B値である8の2乗=64と、LSP値の最上位ビット
を1ビット右ビットシフトした値の和が入力される。一
方、加算器1101の入力Bには、B6、B5、B4にそ
れぞれD2、D1、D0が入力され、B0からB3までの4
個の入力には0が入力される。すなわち、加算器110
1の入力Bには、2乗回路の入力データからMSB値で
ある8を引いた値を2×8=16倍した値が入力され
る。加算器1101では入力AとBを加算し、2乗回路
の出力として出力する。
【0149】2乗回路の入力のMSBがD2、すなわち
3=0で、かつD2=1の場合の加算器1102の動作
を図を用いて説明する。D2=1であるから2乗回路の
入力データの数値は4以上7以下であり、加算器110
2のみが加算結果を出力する。図12(b)は加算器1
102の構成を示す構成図である。図12(b)に示し
たように、加算器1102は5ビット加算器であり、入
力AはA0からA4までの5個の入力(A0が最下位桁)
がある。同様に、入力BはB0からB4までの5個の入力
(B0が最下位桁)がある。
【0150】図12(b)に示すように、加算器110
2の入力Aには、A4、A2にそれぞれD2、D1が入力さ
れ、A0、A1、A3の3個の入力には0が入力される。
すなわち、加算器1102の入力Aには、MSB値であ
る4の2乗=16と、LSP値の最上位ビットを1ビッ
ト右ビットシフトした値の和が入力される。一方、加算
器1102の入力Bには、B4とB3にそれぞれD1とD0
が入力され、B0からB2までの3個の入力には0が入力
される。すなわち、加算器1102の入力Bには、2乗
回路の入力データからMSB値である4を引いた値を2
×4倍した値が入力される。加算器1102では入力A
とBを加算し、2乗回路の出力として出力する。
【0151】2乗回路の入力のMSBがD1、すなわち
3=0、D2=0で、かつD1=1である場合の加算器
1103の動作を図を用いて説明する。D1=1である
から2乗回路の入力データの数値は2または3であり、
加算器1103のみが加算結果を出力する。図12
(c)は加算器1103の構成を示す構成図である。図
12(c)に示したように、加算器1103は3ビット
加算器であり、入力AはA0からA2までの3個の入力
(A0が最下位桁)がある。同様に、入力BはB0からB
2までの3個の入力(B0が最下位桁)がある。
【0152】図12(c)に示すように、加算器110
3の入力Aには、A2、A0にD1、D0が入力され、A1
には0が入力される。すなわち、加算器1103の入力
Aには、MSB値である2の2乗=4と、LSP値の最
上位ビットを1ビット右ビットシフトした値の和が入力
される。一方、加算器1103の入力Bには、B2にD0
が入力され、B0とB1には0が入力される。すなわち、
加算器1103の入力Bには、2乗回路の入力データか
らMSB値である2を引いた値を2×2倍した値が入力
される。加算器1103では入力Aと、入力Bを加算
し、2乗回路の出力として出力する。
【0153】一例として、2乗回路の入力が1110
(14)の場合について説明する。この場合D3=1で
あるから、加算器1101のみが加算結果を出力する。
加算器1101の入力Aには、8×(8+2)=80が
入力される。また、加算器1101の入力Bには14−
8=6の16倍、すなわち96が入力される。従って加
算器1101は80+96=176を2乗回路の出力と
して出力する。
【0154】以上のように、2乗回路の入力データをM
SB値とLSP値に分割して、MSB値とLSP値の最
上位ビットを用いてデコードし、デコーダ出力とLSP
値のそれぞれに対しMSB値に応じた左ビットシフト演
算を行ない、左ビットシフト演算の結果を加算して2乗
値を求めることにより、従来よりも加算器の数を減らし
て、遅延が少ない2乗回路を、少ない誤差で得ることが
できる。
【0155】図13に、2乗回路の入出力のグラフを示
す。点線が理想値、実線が実施の形態6における2乗回
路の入出力、一点鎖線が実施の形態1における2乗回路
の入出力である。図13から、実施の形態6の方が出力
の近似誤差が少ないことがわかる。
【0156】実施の形態7.
【0157】実施の形態6では、論理積ゲートの出力を
加算器の出力とする構成としたが、これは必ずしも必要
ではなく、実施の形態3と同様に論理積ゲートの出力を
3ステート出力バッファゲートの入力とし、3ステート
出力バッファゲートの入力とする構成とし、3ステート
出力バッファゲートの出力を加算器で加算する構成とし
てもよい。
【0158】この場合の2乗回路の構成図は、例えば2
乗回路の入力が4ビットの場合は図3と同一の構成図と
なる。以下2乗回路の入力が4ビットの場合を例にと
り、実施の形態7における2乗回路の構成図が図3であ
るとして説明する。実施の形態7において実施の形態3
と異なる点は3ステート出力バッファゲート501、5
02、503と加算器505の接続法である。
【0159】実施の形態7における3ステート出力バッ
ファゲート501、502、503と加算器505の接
続を図を用いて説明する。図14は、3ステート出力バ
ッファゲート501、502、503と加算器505の
接続を説明する図であり、図14における3ステート出
力バッファゲート501、502、503、504と加
算器505を、入出力接続を含めて詳細に記した図であ
る。図14に示すように、加算器505は7ビット加算
器であり、入力AはA0からA6までの7個の入力(A0
が最下位桁)がある。同様に、入力BはB0からB6まで
の7個の入力(B0が最下位桁)がある。入力Aのうち
5、A3、A1の入力を常に0とする。具体的にはA5
3、A1を接地する。同様に入力Bのうち、B1、B0
入力を常に0とする。具体的にはB1、B0を接地する。
【0160】3ステート出力バッファゲート501、5
02、503、504の出力と加算器505の接続を説
明する。3ステート出力バッファゲート501の出力の
うち、O3、O2はそれぞれ加算器505のA6、A4に接
続される。またO2はB6にも接続され、O1はB5、O0
はB4にそれぞれ接続される。また、それ以外の加算器
505の入力には3ステート出力バッファゲート501
のOgが接続される。次に、3ステート出力バッファゲ
ート502の出力のうち、O2、O1はそれぞれ加算器5
05のA4、A2に接続される。またO1はB4にも接続さ
れ、O0はB3に接続される。また、それ以外の加算器5
05の入力には3ステート出力バッファゲート502の
gが接続される。次に、3ステート出力バッファゲー
ト503の出力のうち、O1、O0は加算器505の
2、A0に接続される。またO0はB2にも接続される。
また、それ以外の加算器505の入力には3ステート出
力バッファゲート503のOgが接続される。次に、3
ステート出力バッファゲート504の出力のうち、O0
は加算器505のA0に接続される。また、それ以外の
加算器505の入力には3ステート出力バッファゲート
504のOgが接続される。
【0161】次に、2乗回路の入力のMSBがD3、す
なわちD3=1の場合の加算器505の動作を説明す
る。このとき2乗回路の入力データの数値は8以上15
以下であり、3ステート出力バッファゲート501のみ
が入力を加算器505に出力する。加算器505の入力
Aには、A6、A4に3ステート出力バッファゲート50
1から出力されるD3、D2が入力される。A1、A3、A
5は接地されており、入力は0である。またA0、A2
3ステート出力バッファゲート501のG1(=0)が
入力されるため、入力は0である。すなわち、加算器5
05の入力Aには、MSB値である8の2乗=64と、
LSP値の最上位ビットを1ビット右ビットシフトした
値の和が入力される。一方、加算器505の入力Bに
は、B6、B5、B4にそれぞれD2、D1、D0が入力され
る。B0、B1は接地されており、入力は0である。また
2、B3は3ステート出力バッファゲート501の出力
1(=0)が入力されるため、入力は0である。すな
わち、加算器505の入力Bには、2乗回路の入力デー
タからMSB値である8を引いた値を2×8=16倍し
た値が入力される。加算器505は入力Aと、入力Bを
加算し、2乗回路の出力として出力する。
【0162】次に、2乗回路の入力のMSBがD2、す
なわちD3=0で、D2=1の場合の加算器505の動作
を説明する。このとき2乗回路の入力データの数値は4
以上7以下であり、3ステート出力バッファゲート50
2のみが入力を加算器505に出力する。加算器505
の入力Aには、A4、A2に3ステート出力バッファゲー
ト502から出力されるD2、D1が入力される。A1
3、A5は接地されており、入力は0である。また
0、A6は3ステート出力バッファゲート502の出力
2(=0)が入力されるため、入力は0である。すな
わち、加算器505の入力Aには、MSB値である4の
2乗=16と、LSP値の最上位ビットを1ビット右ビ
ットシフトした値の和が入力される。一方、加算器50
5の入力Bには、B4、B3にそれぞれD1、D0が入力さ
れる。B0、B1は接地されており、入力は0である。ま
たB2、B5、B6は3ステート出力バッファゲート50
2の出力G2(=0)が入力されるため、入力は0であ
る。すなわち、加算器505の入力Bには、2乗回路の
入力データからMSB値である4を引いた値を2×4=
8倍した値が入力される。加算器505は入力Aと、入
力Bを加算し、2乗回路の出力として出力する。
【0163】次に、2乗回路の入力のMSBがD1、す
なわちD3=0、D2=0で、かつD1=1の場合の加算
器505の動作を説明する。このとき2乗回路の入力デ
ータの数値は2または3であり、3ステート出力バッフ
ァゲート503のみが入力を加算器505に出力する。
加算器505の入力Aには、A2、A0に3ステート出力
バッファゲート503から出力されるD1、D0が入力さ
れる。A1、A3、A5は接地されており、入力は0であ
る。またA4、A6は3ステート出力バッファゲート50
3の出力G3(=0)が入力されるため、入力は0であ
る。すなわち、加算器505の入力Aには、MSB値で
ある2の2乗=4と、LSP値の最上位ビットを1ビッ
ト右ビットシフトした値の和が入力される。一方、加算
器505の入力Bには、B2にD0が入力される。B0
1は接地されており、入力は0である。またB3
4、B5、B6は3ステート出力バッファゲート503
の出力G3(=0)が入力されるため、入力は0であ
る。すなわち、加算器505の入力Bには、2乗回路の
入力データからMSB値である2を引いた値を2×2=
4倍した値が入力される。加算器505は入力Aと、入
力Bを加算し、2乗回路の出力として出力する。
【0164】一例として、2乗回路の入力が1110
(14)の場合について説明する。この場合D0=1で
あるから、3ステート出力バッファゲート501のみが
加算器505に入力する。加算器505の入力Aには、
8×(8+2)=80が入力される。また、加算器50
5の入力Bには、14−8=6の16倍、すなわち96
が入力される。従って加算器505は80+96=17
6を2乗回路の出力として出力する。
【0165】以上のように、2乗回路の入力データをM
SB値とLSP値に分割して、MSB値とLSP値の最
上位ビットを用いてデコードし、デコーダ出力とLSP
値のそれぞれに対しMSB値に応じた左ビットシフト演
算を行ない、左ビットシフト演算の結果を加算して2乗
値を求めることにより、従来よりも加算器の数を減ら
し、遅延を少なくできる。さらに、3ステート出力バッ
ファゲートを用いて加算器の数を減らすことにより、少
ない誤差で2乗回路を得ることができる。
【0166】実施の形態8.実施の形態6では、デコー
ドの方法として入力データのLSP値の最上位ビットを
1ビット右ビットシフトして、MSB値と加算する方法
を、実際の論理回路を用いた場合について説明したが、
このデコード法は必ずしも必要ではない。例えば、2乗
回路の構成を図15に示すような構成としてもよい。図
15は実施の形態8における2乗回路の構成図であり、
1501はデコーダである。実施の形態8における2乗
回路の動作について、図15を用いて説明する。なお実
施の形態2における図2、ならびに実施の形態6におけ
る図11と同一または相当部分については同一符号を付
してその説明は省略する。
【0167】実施の形態8と実施の形態6との相違点
は、図15に示したように、加算器1101の入力に、
デコーダ1501が挿入されていることである。また実
施の形態8でも、実施の形態6と同様、2乗回路の入力
のMSBがD3、すなわちD3=1の場合だけ加算器11
01が動作する。D3=1であるから2乗回路の入力デ
ータの数値は8以上15以下であり、加算器1101の
みが加算結果を出力する。入力データは、論理積ゲート
201、加算器1101に入力されるとともにデコーダ
1501にも入力される。
【0168】図18はデコーダ1501の構成を示す構
成図であり、デコーダ1501と加算器1101の接続
も同時に示す。図18において、2101は論理積素
子、2102はインバータである。図18に示すよう
に、加算器1101の入力のうちD1、D2は論理積素子
2101に入力される。論理積素子2101は入力のD
1とD2の論理積をとって、加算器1101のA5に入力
する。またD1はインバータ2102にも入力される。
インバータ2102はD1の反転を、加算器1101の
4に入力する。その他の加算器1101の入力Aに
は、A6にD3=1が入力され、A0からA3の4個の入力
には0が入力される。一方、加算器1101の入力Bに
は、B6、B5、B4にそれぞれD2、D1、D0が入力さ
れ、B0からB3までの4個の入力には0が入力される。
加算器1101では入力Aと入力Bを加算し、2乗回路
の出力として出力する。
【0169】図16に、2乗回路の入出力のグラフを示
す。点線が理想値、実線が実施の形態8における2乗回
路の入出力、一点鎖線が実施の形態6における2乗回路
の入出力である。入力データが大きい場合、実施の形態
8のようなデコーダを用いることにより、実施の形態6
における2乗回路よりも近似誤差を少なくすることがで
きる。
【0170】
【発明の効果】この発明は以上説明したように構成され
ているので、以下に記載されるような効果を奏する。
【0171】実施の形態1では、2乗回路の入力のMS
B値を抽出する。2乗回路の入力からMSB値を減算し
て2乗回路の入力のLSP値を求める。MSB値を左ビ
ットシフトする。LSP値を左ビットシフトする。左ビ
ットシフトした値を加算して2乗結果を出力すること
で、算器による加算回数を減らして回路規模の小さな2
乗回路を実現できる。
【0172】また、実施の形態2では、複数の論理積ゲ
ートで複数の論理積を出力する。複数の論理積ゲート出
力を用いて複数の加算器で加算する。入力の論理積を出
力する。論理積出力と論理積ゲート出力の論理和を出力
する。論理和出力により入力を出力することで、加算器
による加算回数を減らして回路規模の小さな2乗回路を
実現できる。
【0173】また、実施の形態3では、複数の論理積ゲ
ートで複数の論理積を出力する。複数の論理積ゲート出
力の最上位ビットにより入力を出力する。入力の論理積
を出力する。論理積出力と論理積ゲート出力の論理和を
出力する。論理和出力により入力を出力する。加算器で
加算して2乗結果を出力することで、加算器による加算
回数を減らして回路規模の小さな2乗回路を実現でき
る。
【0174】また、実施の形態4では、2乗回路の入力
のMSB値を抽出する。2乗回路の入力からMSB値を
減算して2乗回路の入力のLSP値を求める。MSB値
を左ビットシフトする。LSP値を左ビットシフトす
る。2乗回路の入力のLSP値のMSB値を抽出する。
2乗回路の入力のLSP値からLSP値のMSB値を減
算して2乗回路の入力のLSP値のLSP値を求める。
LSP値のMSB値を左ビットシフトする。LSP値の
LSP値を左ビットシフトする。左ビットシフトした値
を加算して2乗結果を出力することで、加算器による加
算回数を減らし、回路規模が小さく、さらに出力の誤差
の小さな2乗回路を実現することができる。
【0175】また、実施の形態5では、2乗回路の入力
のMSB値を抽出する。2乗回路の入力からMSB値を
減算して2乗回路の入力のLSP値を求める。LSP値
を用いてMSB値をデコードする。デコード結果を左ビ
ットシフトする。LSP値を左ビットシフトする。左ビ
ットシフトした値を加算して2乗結果を出力すること
で、加算器による加算回数を減らし、回路規模が小さ
く、さらに出力の誤差の小さな2乗回路を実現すること
ができる。
【0176】また、実施の形態6では、複数の論理積ゲ
ートで複数の論理積を出力する。複数の論理積ゲート出
力を用いて複数の加算器で加算する。入力の論理積を出
力する。論理積出力と論理積ゲート出力の論理和を出力
する。論理和出力により入力を出力することで、加算器
による加算回数を減らして回路規模の小さな、さらに出
力の誤差の少ない2乗回路を実現できる。
【0177】また、実施の形態7では、複数の論理積ゲ
ートで複数の論理積を出力する。複数の論理積ゲート出
力の最上位ビットにより入力を出力する。複数の論理積
ゲート入力の論理積を出力する。論理積出力と論理積ゲ
ート出力の論理和を出力する。論理和出力により入力を
出力する。加算器で加算して2乗結果を出力すること
で、加算器による加算回数を減らして回路規模の小さ
な、さらに出力の誤差の少ない2乗回路を実現できる。
【0178】また、実施の形態8では、複数の論理積ゲ
ートで複数の論理積を出力する。複数の論理積ゲート出
力の最上位ビットにより入力を出力する。複数の論理積
ゲート入力の論理積を出力する。論理積出力と論理積ゲ
ート出力の論理和を出力する。論理和出力により入力を
出力する。加算器入力の論理積を出力する。加算器入力
の反転を出力する。加算器で加算して2乗結果を出力す
ることで、加算器による加算回数を減らして回路規模の
小さな、さらに出力の誤差の少ない2乗回路を実現でき
る。
【図面の簡単な説明】
【図1】 本発明の実施の形態1による2乗回路の構成
図である。
【図2】 本発明の実施の形態2による2乗回路の構成
図である。
【図3】 本発明の実施の形態2による論理積ゲートの
構成を示す構成図及びその入出力を示す図である。
【図4】 本発明の実施の形態2による加算器の構成図
である。
【図5】 本発明の実施の形態3による2乗回路の構成
図である。
【図6】 本発明の実施の形態3による3ステート出力
バッファゲートの構成図とその入出力を示す図である。
【図7】 本発明の実施の形態3による3ステート出力
バッファゲートと加算器の接続を示す接続図である。
【図8】 本発明の実施の形態4による2乗回路の構成
図である。
【図9】 本発明の実施の形態5による2乗回路の構成
図である。
【図10】 本発明の実施の形態5によるデコーダの構
成図である。
【図11】 本発明の実施の形態6による2乗回路の構
成図である。
【図12】 本発明の実施の形態6による加算器の構成
図である。
【図13】 本発明の実施の形態6による2乗回路の入
出力特性図である。
【図14】 本発明の実施の形態7による3ステート出
力バッファゲートと加算器の接続を示す接続図である。
【図15】 本発明の実施の形態8における2乗回路の
構成図である。
【図16】 本発明の実施の形態8による2乗回路の入
出力特性図である。
【図17】 本発明の実施の形態4による2乗回路の入
出力特性図である。
【図18】 本発明の実施の形態8におけるデコーダと
加算器の構成を示す構成図である。
【図19】 従来の2乗回路の構成を示す構成図であ
る。
【図20】 従来の2乗回路の構成を示す構成図と、従
来のビット削減を行なう2乗回路の構成を示す構成図で
ある。
【図21】 従来のビット削減を行なう2乗回路の入出
力特性図である。
【符号の説明】
101 MSB値抽出回路 102、104 左ビットシフト回路 103、105 加算器 201、202、203 論理積ゲート 204、205、206 加算器 207 3ステート出力バッファ 208 論理積素子 209 論理和素子 301、305、308 インバータ 302、303、304、306、307、309 論
理積素子 501、502、503、504 3ステート出力バッ
ファゲート 505 加算器 601〜614 3ステート出力バッファ 801 MSB値抽出回路 802、804 左ビットシフト回路 803、805 加算器 901 デコーダ 1001 最上位ビット抽出回路 1002 右ビットシフト回路 1003 加算器 1101、1102、1103 加算器 1501 デコーダ 1701、1702、1703、1704 論理積ゲー
ト 1705、1706、1707 加算器 1801、1802、1803 論理積ゲート 1804、1805 加算器 2101 論理積素子 2102 インバータ。

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】 入力のMSB値を抽出するMSB値抽出
    回路と、前記MSB値抽出回路の出力を左ビットシフト
    する左ビットシフト回路と、入力から前記MSB値抽出
    回路の出力を減算してLSP値を出力する加算器と、前
    記加算器の出力であるLSP値を左ビットシフトする左
    ビットシフト回路と、前記2つの左ビットシフト回路の
    出力を加算する加算器を備えたことを特徴とする2乗回
    路。
  2. 【請求項2】 入力のMSB値を抽出するMSB値抽出
    回路として動作する、入力の最上位ビットと入力の全ビ
    ットとの論理積を出力する複数の論理積ゲートと、前記
    複数の論理積ゲートの出力を入力とし、特に論理積ゲー
    トの最上位ビットを一方の入力とする、イネーブル入力
    によって加算出力をハイインピーダンスにする複数の加
    算器と、2乗回路の入力が0の場合に1を出力する論理
    積素子と、論理和素子の出力と論理積ゲートの出力を入
    力とする論理和素子と、論理和素子の出力によって入力
    を出力する3ステート出力バッファを備えたことを特徴
    とする2乗回路。
  3. 【請求項3】 入力のMSB値を抽出するMSB値抽出
    回路として動作する、入力の最上位ビットと入力の全ビ
    ットとの論理積を出力する複数の論理積ゲートと、前記
    複数の論理積ゲートの出力を入力とし、イネーブル入力
    によって入力を出力する複数の3ステート出力バッファ
    ゲートと、2乗回路の入力が0の場合に1を出力する論
    理積素子と、前記論理和素子の出力と論理積ゲートの出
    力を入力とする論理和素子と、前記複数の3ステート出
    力バッファゲートの出力を入力とし、特に3ステート出
    力バッファゲートの最上位ビットを一方の入力とする、
    加算結果を出力する加算器とを備えたことを特徴とする
    2乗回路。
  4. 【請求項4】 入力のMSB値を抽出するMSB値抽出
    回路と、前記MSB値抽出回路の出力を左ビットシフト
    する左ビットシフト回路と、入力から前記MSB値抽出
    回路の出力を減算してLSP値を出力する加算器と、前
    記加算器の出力であるLSP値を左ビットシフトする左
    ビットシフト回路と、前記LSP値のMSB値を抽出す
    るMSB値抽出回路と、前記MSB値抽出回路の出力で
    あるLSP値のMSB値を左ビットシフトする左ビット
    シフト回路と、入力のLSP値から前記MSB値抽出回
    路の出力であるLSP値のMSB値を減算してLSP値
    のLSP値を出力する加算器と、前記加算器の出力であ
    るLSP値のLSP値を左ビットシフトする左ビットシ
    フト回路と、前記4つの左ビットシフト回路の出力を加
    算する加算器を備えたことを特徴とする2乗回路。
  5. 【請求項5】 入力のMSB値を抽出するMSB値抽出
    回路と、入力から前記MSB値抽出回路の出力を減算し
    てLSP値を出力する加算器と、前記MSB値抽出回路
    の出力と前記加算器の出力であるLSP値を入力とする
    デコーダと、前記デコーダの出力を左ビットシフトする
    左ビットシフト回路と、前記加算器の出力であるLSP
    値を左ビットシフトする左ビットシフト回路と、前記2
    つの左ビットシフト回路の出力を加算する加算器を備え
    たことを特徴とする2乗回路。
  6. 【請求項6】 入力のMSB値を抽出するMSB値抽出
    回路として動作する、入力の最上位ビットと入力の全ビ
    ットとの論理積を出力する複数の論理積ゲートと、前記
    複数の論理積ゲートの出力を入力とし、イネーブル入力
    によって加算出力をハイインピーダンスにする複数の加
    算器と、2乗回路の入力が0の場合に1を出力する論理
    積素子と、論理和素子の出力と論理積ゲートの出力を入
    力とする論理和素子と、論理和素子の出力によって入力
    を出力する3ステート出力バッファを備えたことを特徴
    とする2乗回路。
  7. 【請求項7】 入力のMSB値を抽出するMSB値抽出
    回路として動作する、入力の最上位ビットと入力の全ビ
    ットとの論理積を出力する複数の論理積ゲートと、前記
    複数の論理積ゲートの出力を入力とし、イネーブル入力
    によって入力を出力する複数の3ステート出力バッファ
    ゲートと、2乗回路の入力が0の場合に1を出力する論
    理積素子と、論理和素子の出力と論理積ゲートの出力を
    入力とする論理和素子と、複数の3ステート出力バッフ
    ァゲートの出力を入力とし、加算結果を出力する加算器
    とを備えたことを特徴とする2乗回路。
  8. 【請求項8】 入力のMSB値を抽出するMSB値抽出
    回路として動作する、入力の最上位ビットと入力の全ビ
    ットとの論理積を出力する複数の論理積ゲートと、加算
    器の入力をデコードするデコーダとして動作する論理積
    素子とインバータと、前記複数の論理積ゲートの出力と
    論理積素子の出力とインバータの出力を入力とし、イネ
    ーブル入力によって加算出力をハイインピーダンスにす
    る複数の加算器と、2乗回路の入力が0の場合に1を出
    力する論理積素子と、論理和素子の出力と論理積ゲート
    の出力を入力とする論理和素子と、論理和素子の出力に
    よって入力を出力する3ステート出力バッファを備えた
    ことを特徴とする2乗回路。
JP06031697A 1997-03-14 1997-03-14 2乗回路 Expired - Fee Related JP3531402B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP06031697A JP3531402B2 (ja) 1997-03-14 1997-03-14 2乗回路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP06031697A JP3531402B2 (ja) 1997-03-14 1997-03-14 2乗回路

Publications (2)

Publication Number Publication Date
JPH10254680A true JPH10254680A (ja) 1998-09-25
JP3531402B2 JP3531402B2 (ja) 2004-05-31

Family

ID=13138659

Family Applications (1)

Application Number Title Priority Date Filing Date
JP06031697A Expired - Fee Related JP3531402B2 (ja) 1997-03-14 1997-03-14 2乗回路

Country Status (1)

Country Link
JP (1) JP3531402B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104049940A (zh) * 2013-03-15 2014-09-17 英特尔公司 用于减少短整数乘法数量的系统、装置和方法
WO2017026775A1 (ko) * 2015-08-10 2017-02-16 한국전력공사 혼합 제곱 연산 방법, 장치 및 이의 저장매체

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104049940A (zh) * 2013-03-15 2014-09-17 英特尔公司 用于减少短整数乘法数量的系统、装置和方法
KR101539173B1 (ko) * 2013-03-15 2015-07-27 인텔 코포레이션 단 정수 곱셈들의 수를 감소시키기 위한 시스템들, 장치들 및 방법들
WO2017026775A1 (ko) * 2015-08-10 2017-02-16 한국전력공사 혼합 제곱 연산 방법, 장치 및 이의 저장매체

Also Published As

Publication number Publication date
JP3531402B2 (ja) 2004-05-31

Similar Documents

Publication Publication Date Title
US4953115A (en) Absolute value calculating circuit having a single adder
EP0018519B1 (en) Multiplier apparatus having a carry-save/propagate adder
JPH0713742A (ja) 乗算装置
EP0613082A1 (en) 4:2 adder and multiplier circuit employing the same
US5023827A (en) Radix-16 divider using overlapped quotient bit selection and concurrent quotient rounding and correction
JPS588009B2 (ja) デイジタル乗算器
US5132925A (en) Radix-16 divider using overlapped quotient bit selection and concurrent quotient rounding and correction
US5299145A (en) Adder for reducing carry processing
CN1108557C (zh) 减少高速算术单元中超前进位加法器级数的结构和方法
US5862068A (en) Arithmetic circuit for calculating a square-root of a sum of squares
JPH0619685A (ja) 並列乗算回路
US4866655A (en) Arithmetic processor and divider using redundant signed digit
JPH0546363A (ja) 除算器
JP3531402B2 (ja) 2乗回路
JPH0448255B2 (ja)
JPS58137045A (ja) 並列乗算器
JPH0467213B2 (ja)
JP3071607B2 (ja) 乗算回路
JP2606326B2 (ja) 乗算器
EP0738958A2 (en) Multiplier
JP3074958B2 (ja) 加算機能付きシリアル乗算器
JP3456450B2 (ja) 固定小数点乗算器および方法
Kamp et al. A Fast 16× 16 Bit Asynchronous CMOS Multiplier
US5615141A (en) Multiplying apparatus
JP4042215B2 (ja) 演算処理装置およびその方法

Legal Events

Date Code Title Description
A977 Report on retrieval

Effective date: 20040127

Free format text: JAPANESE INTERMEDIATE CODE: A971007

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

Effective date: 20040210

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Effective date: 20040223

Free format text: JAPANESE INTERMEDIATE CODE: A61

LAPS Cancellation because of no payment of annual fees