(57)【特許請求の範囲】
【請求項１】
ある数値に対応するように符号化された複数の多値論理信号を入力とし、それらの数値の和に対応する多値論理信号を出力とする回路において、
そのｋ桁（ｋ＝０、１、２、．．．）の演算回路は、桁上げ信号を発生させるための多入力比較器と、ｋ桁の入力とこれらの入力の桁上げ信号とｋ−１桁の桁上げ信号の重み付き線形電圧加算を行う多入力増幅器とを有し、
前記多入力比較器と多入力増幅器はそれぞれ容量結合により対応する入力信号と接続され、
前記多入力電圧増幅器の電圧利得が、前記容量結合の容量と負帰還回路の容量との比で決定されることを特徴とする多値論理回路。
【請求項２】
前記入力、出力または中間出力の多値論理信号がどの多値レベルにあるかを判定する複数の弁別器と、弁別器の出力を線形加算するための多入力増幅器とを更に有することを特徴とする請求項１記載の多値論理回路。
【請求項３】
ある数値に対応するように符号化された複数組の多値論理信号を入力とし、それらの数値の和に対応する多値論理信号を出力とする多値論理回路において、
ｋ桁（ｋ＝０、１、２、．．．）の演算回路は桁上げ信号を発生させるための多入力比較器と、ｋ桁の入力の和からその桁の桁上げ信号を引いた値がどの論理値にあるかを判定する多入力比較器とを含み、
前記多入力比較器が容量結合によりその入力と接続されることを特徴とする多値論理回路。
【請求項４】
ｋ桁の入力の和から桁上げ信号を引いた値を判定する多入力比較器の出力と、ｋ−１桁からの桁上げ信号とを、容量結合により多入力増幅器に接続することで多値出力を得ることを特徴とする請求項３記載の多値論理回路。
【請求項５】
ｋ桁の入力の和から桁上げ信号を引いた値を判定する多入力比較器の出力と、ｋ−１桁からの桁上げ信号とからなる２値レベルの出力の組を、そのまま又は２値論理演算したものを出力することを特徴とする請求項３記載の多値論理回路。
【請求項６】
前記多値論理信号は、各桁の重みがＲ（Ｒは２以上の自然数）のべきで表され、各桁がＮ通りの値をとる符号を用い、そのＮ値に多入力比較器と多入力増幅器の入出力電圧範囲を等分割した電圧レベルに対応することを特徴とする請求項１ないし５のいずれか一項記載の多値論理回路。
【請求項７】
前記符号は２Ｍ進２Ｍ＋３値符号（Ｍは２以上の自然数）、又はＮ≧Ｒ＋２（Ｒ，Ｎは自然数でＲ≧３）を満たすＲ進Ｎ値符号であり、前記桁上げ信号を発生させるための多入力比較器は、ｋ桁の入力の和と一定の数値とを比較する比較器を具備することを特徴とする請求項６記載の多値論理回路。
【請求項８】
前記多値論理信号は２Ｍ進２Ｍ＋１（Ｍは自然数）を用い、前記桁上げ信号を発生する多入力比較器は、ｋ桁の入力の和とｋ−１桁の入力の和の正負を示す数値との和と、所定の２つの数値とを比較する比較器とを有し、前記桁上げ信号は得られる２つの比較結果で表されるとともに、
更にｋ桁の入力の和の正負を示す数値を出力する判定器を有することを特徴とする請求項６記載の多値論理回路。
【請求項９】
前記符号は２Ｍ進２Ｍ＋１値符号（Ｍは自然数）であり、前記桁上げ信号を発生させるための多入力比較器は、ｋ桁の入力の和の正負を判定する比較器と、その出力とｋ桁の入力とｋ−１桁の入力の和の正負を示す数値の三者の和と一定の数値とを比較する比較器を具備することを特徴とする請求項６記載の多値論理回路。
【請求項１０】
前記多入力増幅器は、容量結合により複数の入力と接続されたＣＭＯＳインバータ回路に容量を介して出力から負帰還をかけた回路を含むことを特徴とする請求項１ないし９のいずれか一項記載の多値論理回路。
【請求項１１】
前記多入力増幅器は、入出力間を容量で結合したＣＭＯＳインバータ回路を含むことを特徴とする請求項１ないし９のいずれか一項記載の多値論理回路。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、回路形式の面では、容量結合で複数の入力が接続され、その重み付き線形和で決まる出力を発生する機能を持つ回路に関し、特にニューロンＭＯＳと呼ばれる回路形式に関する。また、本発明は、機能面からみれば、１つの信号線の電圧レベルを３以上にすることにより、通常の２進の論理回路より高い機能を持つ多値論理回路に関する。
【０００２】
【従来の技術】
公知のように、ニューロンＭＯＳ回路は、ＭＯＳトランジスタのゲートをフローティングとし、それに入力信号を容量的に結合することにより、入力電圧の重み付き線形和に応じて、トランジスタのチャネルが形成することを利用した回路であり、ニューラルネットワーク、ＦＰＧＡ等に用いると、非常に回路が簡単化できるという提案がされている。このようなニューロンＭＯＳ回路については、例えば次の文献に詳しい：Ｈ．ＩＳＨＩＩ  ｅｔ  ａｌ．、”Ｈａｒｄｗａｒｅ−Ｂａｃｋｐｒｏｐａｇａｔｉｏｎ  Ｌｅａｒｎｉｎｇ  ｏｆ  Ｎｅｕｒｏｎ  ＭＯＳ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋｓ”、１９９２  ＩＥＤＭ  Ｔｅｃｈ．Ｄｉｇ．、ｐｐ４３５−ｐｐ４３８。
【０００３】
図４０に、ニューロンＭＯＳ回路の一例を示す。図示の回路は、ＰチャネルＭＯＳトランジスタとＮチャネルＭＯＳトランジスタを用いて、コンプリメンタリー型のソース接地増幅器である。２つのＭＯＳトランジスタは共通のフローティングゲートＦＧを有し、これに入力信号Ｖ１〜Ｖｎ（ｎは任意の整数）を容量結合する。入力電圧Ｖ１〜Ｖｎの重み付き線形和で決まるフローティングゲート電位に対して、出力電圧Ｖｏｕｔは急峻に立ち下がる特性となる。
【０００４】
他方、多値論理回路は、通常バイポーラトランジスタを用いたＥＣＬ回路やＩＩＬ回路を用いて構成される。これらの回路は通常、線形和を取りやすい電流モードで動作する。従って、消費電力が大きいという問題点がある。
近年、ニューロンＭＯＳ回路を多値論理回路に適用することが提案されている。ニューロンＭＯＳ回路は電圧モードで入力電圧の線形和が簡単にとれるため、これを多値論理回路に適用すれば、消費電力及び回路の簡素化の点で非常に有効であると考えられる。
【０００５】
【発明が解決しようとする課題】
しかしながら、図４０に示す構成のニューロンＭＯＳ回路は、入力電位の僅かな変化に対して、出力電圧がハイレベル（ＶDD）からローレベル（ＶSS）に変化する２値出力回路である。
【０００６】
この点を解決し、多値出力が可能なニューロンＭＯＳ回路が提案されている。
図４１は、コンプリメンタリー型のソースフォロワ増幅器である。ＮチャネルＭＯＳトランジスタのソースとＰチャネルＭＯＳトランジスタのソースとが共通に接続され、ここから出力電圧Ｖｏｕｔが取り出される。このような多値出力可能なニューロンＭＯＳ回路は例えば、次の文献に詳しい：Ｔ．Ｓｈｉｂａｔａ  ｅｔ  ａｌ．、”Ｎｅｕｒｏｎ  ＭＯＳ  Ｖｏｌｔａｇｅ−Ｍｏｄｅ  Ｃｉｒｃｕｉｔ  Ｔｅｃｈｎｏｌｏｇｙ  ｆｏｒ  Ｍｕｌｔｉｐｌｅ−ｖａｌｕｅｄＬｏｇｉｃ”、ＩＥＣＥ  ＴＲＡＮＳ．  ＥＬＥＣＴＲＯＮ．、ＶＯＬ．Ｅ７６−Ｃ、ＮＯ．３、ＭＡＲＣＨ  １９９３、ｐｐ３４７−ｐｐ３５６。  また、図４１に示すニューロンＭＯＳ回路を用いて多値メモリを構成することも提案されている（例えば、Ｒ．Ａｕ  ｅｔ  ａｌ．、”Ｎｅｕｒｏｎ−ＭＯＳ  Ｍｕｌｔｉｐｌｅ−Ｖａｌｕｅｄ  Ｍｅｍｏｒｙ  Ｔｅｃｈｎｏｌｏｇｙ  ｆｏｒ  Ｉｎｔｅｌｌｉｇｅｎｔ  Ｄａｔａ  Ｐｒｏｃｅｓｓｉｎｇ”、Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ａｄｖａｎｃｅｄ  Ｍｉｃｒｏｅｌｅｃｔｒｏｎｉｃ  Ｄｅｖｉｃｅｓ  ａｎｄ  Ｐｒｏｃｅｓｓｉｎｇ、ｐｐ８０−ｐｐ８５参照）。
【０００７】
しかしながら、多値出力可能な図４１に示すニューロンＭＯＳ回路は、ソースフォロワのためフローティングゲートＦＧの電位に対して利得がほぼ１であるため、個々の入力Ｖ１〜Ｖｎに対しては利得が１より小さくなってしまうという問題点がある。この問題点は、図４１に示すニューロンＭＯＳ回路で多値論理回路等を構成する上で障害となり、その応用分野が制限されてしまう。
【０００８】
従って、本発明は上記従来の問題点を解決し、入力電圧の重み付き線形和に比例した出力を発生し、その重みを任意に設定できる十分な利得を持った低電力消費の多値論理回路を提供することを目的とする。
【０００９】
【課題を解決するための手段】
請求項１に記載の発明は、ある数値に対応するように符号化された複数の多値論理信号を入力とし、それらの数値の和に対応する多値論理信号を出力とする回路において、そのｋ桁（ｋ＝０、１、２、．．．）の演算回路は、桁上げ信号を発生させるための多入力比較器と、ｋ桁の入力とこれらの入力の桁上げ信号とｋ−１桁の桁上げ信号の重み付き線形電圧加算を行う多入力増幅器とを有し、前記多入力比較器と多入力増幅器はそれぞれ容量結合により対応する入力信号と接続され、前記多入力電圧増幅器の電圧利得が、前記容量結合の容量と負帰還回路の容量との比で決定されることを特徴とする多値論理回路多値論理回路である。
【００１０】
請求項１に記載の発明によれば、前記多入力電圧増幅器の電圧利得が、前記容量結合の容量と負帰還回路の容量との比で決定される多値論理回路であるため、この比を適当に選択することで出力を飽和させることなく、入力の重み付き線形和に比例した十分な利得の出力（加算結果）を得ることができる。また、電圧モードで動作するため、低消費電力化が可能となる。
【００１１】
請求項２に記載の発明は、請求項１において、前記入力、出力または中間出力の多値論理信号がどの多値レベルにあるかを判定する複数の弁別器と、弁別器の出力を線形加算するための多入力増幅器とを更に有する。すなわち、この弁別器と多入力増幅器とは多値量子化器を構成し、この多値量子化器で量子化することで多値レベルの誤差を補正することができ、この誤差が後段に伝搬して積算されることがない。
【００１２】
請求項３に記載の発明は、ある数値に対応するように符号化された複数組の多値論理信号を入力とし、それらの数値の和に対応する多値論理信号を出力とする多値論理回路において、ｋ桁（ｋ＝０、１、２、．．．）の演算回路は桁上げ信号を発生させるための多入力比較器と、ｋ桁の入力の和からその桁の桁上げ信号を引いた値がどの論理値にあるかを判定する多入力比較器とを含み、前記多入力比較器が容量結合によりその入力と接続されることを特徴とする多値論理回路である。これにより、多入力比較器での量子化作用によるレベル判定結果と桁上げ信号とを一度に加算することができ、簡単な構成で誤差の伝搬を防止することができる。
【００１３】
請求項４に記載の発明は、請求項３において、ｋ桁の入力の和から桁上げ信号を引いた値を判定する多入力比較器の出力と、ｋ−１桁からの桁上げ信号とを、容量結合により多入力増幅器に接続することで多値出力を得ることを特徴とする多値論理回路である。すなわち、請求項３で得られたレベル判定結果と桁上げ信号とを多入力増幅器で一度に加算する。
【００１４】
請求項５に記載の発明は、請求項３において、ｋ桁の入力の和から桁上げ信号を引いた値を判定する多入力比較器の出力と、ｋ−１桁からの桁上げ信号とからなる２値レベルの出力の組を、そのまま又は２値論理演算したものを出力することを特徴とする多値論理回路である。これにより、２値コード化された多値出力が得られる。
【００１５】
請求項６に記載の発明は、請求項１ないし５のいずれか一項において、前記多値論理信号は、各桁の重みがＲ（Ｒは２以上の自然数）のべきで表され、各桁がＮ通りの値をとる符号を用い、そのＮ値に多入力比較器と多入力増幅器の入出力電圧範囲を等分割した電圧レベルに対応することを特徴とする多値論理回路である。
【００１６】
請求項７に記載の発明は、請求項６において、前記符号は２Ｍ進２Ｍ＋３値符号（Ｍは２以上の自然数）、又はＮ≧Ｒ＋２（Ｒ，Ｎは自然数でＲ≧３）を満たすＲ進Ｎ値符号であり、前記桁上げ信号を発生させるための多入力比較器は、ｋ桁の入力の和と一定の数値とを比較する比較器を具備することを特徴とする多値論理回路である。請求項７に記載の発明の多値論理回路は、２Ｍ進２Ｍ＋３値冗長加算器、２Ｍ＋１進２Ｍ＋３値冗長加算器、２Ｍ進２Ｍ＋２値冗長加算器等の、Ｎ≧Ｒ＋２を満たすＲ進Ｎ値冗長加算器として機能する。
【００１７】
請求項８に記載の発明は、請求項６において、前記多値論理信号は２Ｍ進２Ｍ＋１（Ｍは自然数）を用い、前記桁上げ信号を発生する多入力比較器は、ｋ桁の入力の和とｋ−１桁の入力の和の正負を示す数値との和と、所定の２つの数値とを比較する比較器とを有し、前記桁上げ信号は得られる２つの比較結果で表されるとともに、更にｋ桁の入力の和の正負を示す数値を出力する判定器を有することを特徴とする多値論理回路である。この多値論理回路は２Ｍ進２Ｍ＋１冗長加算器として作用する。
【００１８】
請求項９に記載の発明は、請求項６において、前記符号は２Ｍ進２Ｍ＋１値符号（Ｍは自然数）であり、前記桁上げ信号を発生させるための多入力比較器は、ｋ桁の入力の和の正負を判定する比較器と、その出力とｋ桁の入力の和とｋ−１桁の入力の和の正負を示す数値と三者の和と一定の数値とを比較する比較器を具備することを特徴とする多値論理回路である。この多値論理回路は２Ｍ進２Ｍ＋１冗長加算器として作用する。
【００１９】
請求項１０に記載の発明は、請求項１ないし９のいずれか一項において、前記多入力増幅器は、容量結合により複数の入力と接続されたＣＭＯＳインバータ回路に容量を介して出力から負帰還をかけた回路を含むことを特徴とする多値論理回路である。
【００２０】
請求項１１に記載の発明は、請求項１ないし９のいずれか一項において、前記多入力増幅器は、入出力間を容量で結合したＣＭＯＳインバータ回路を含むことを特徴とする多値論理回路である。
【００２１】
【発明の実施の形態】
まず、本発明による多値論理回路の基本となる容量結合型多入力増幅器について説明する。
図１は図４０に示すニューロンＭＯＳ回路に相当する容量結合型多入力増幅器（ニューロンＭＯＳインバータ）を示す等価回路図、図２は図１に示す反転増幅器Ａの一構成例であるＣＭＯＳインバータ、図３は本発明による多値論理回路の基本となる容量帰還型多入力増幅器である。
【００２２】
まず、通常のＣＭＯＳインバータ（図２）の入出力特性は
ＶO ＝−Ａ（Ｖi −Ｖinv ）＋Ｖinv             （１）
で表される。ここで、Ｖi は入力電圧、ＶO は出力電圧、Ｖinv は入力と出力が同電位となる入力電圧（インバータ電圧）、Ａはインバータ電圧Ｖinv での電圧利得の絶対値である。
【００２３】
図１に示すニューロンＭＯＳ回路では、ゲート電極はフローティングとなり、入力は容量結合でフローティングゲート電極と結合されている。従って、フローティングゲートの電位Ｖg は、
【００２４】
【数１】
0003748119.tif 000002
【００２５】
で表される。ここで、Ｖk は入力ｋの電位、ＣK は入力ｋとフローティングゲートの結合容量である。Ｃg はフローティングゲートとチャネルの容量、Ｖchはチャネルの実効電位、Ｃstは浮遊容量、Ｖstは浮遊容量が結合している部分の実効電位である。また、Ｃtot はフローティングゲートに結合している全ての容量の和で、
【００２６】
【数２】
0003748119.tif 000003
【００２７】
である。
式（１）と式（２）とからニューロンＭＯＳインバータの特性は
【００２８】
【数３】
0003748119.tif 000004
【００２９】
となる。ただし、Ｖinv'は実効インバータ電圧で
0003748119.tif 000005
である。
【００３０】
インバータの電圧利得Ａは通常非常に大きいため、各入力に対する電圧利得Ａk も
Ａk ＝−ＡＣk ／Ｃtot                                 （６）
と大きい値になる。このため、入力が少し変化すると出力はＶDDからＶSSに変化してしまい、中間の出力は得られない。従って、ニューロンＭＯＳインバータは式（２）で表される入力の重み付き線形和が一定値（Ｖinv'）以上であるかを弁別する働きを持つが、入力の重み付き線形和に比例した出力を得ることは出来ない。
【００３１】
図３に示す容量帰還型多入力増幅器では、１つの入力端子（Ｌとする）を容量ＣL を介して出力端子に接続している。この構成において、式（４）は次のようになる。
【００３２】
【数４】
0003748119.tif 000006
【００３３】
これを、ＶO について解くと、
【００３４】
【数５】
0003748119.tif 000007
【００３５】
となる。Ａが十分大きければ、
【００３６】
【数６】
0003748119.tif 000008
【００３７】
である。各入力に対する電圧利得Ａk も
Ａk ＝−ＣK ／ＣL                                     （９）
と容量比だけで決まる値になり、この値を適当に選べば出力を飽和させることなく、入力の重み付き線形和に比例した出力を得ることができる。以下の説明では、出力端子に接続され、負帰還に用いられる容量ＣL をフィードバック容量ＣF と呼ぶ場合がある。
【００３８】
一方、図４１に示すニューロンＭＯＳソースフォロワを用いると、入力の重み付き線形和に比例した出力を得る（多値出力）ことができる。
ソースフォロワの特性は、その入出力間電位差をＶthとすると、ほぼ
ＶO ＝Ｖi −Ｖth                                    （１０）
で表されるから、ニューロンＭＯＳソースフォロワの特性は、
【００３９】
【数７】
0003748119.tif 000009
【００４０】
となり、各入力に対する電圧利得Ａk も
Ａk ＝Ｃk ／Ｃtot                                   （１２）
と容量比だけで決まる値となり、出力を飽和させることなく、入力の重み付き線形和に比例した出力を得ることができる。
【００４１】
しかしながら、この電圧利得Ａk は全ての入力に対するものを集めても１より小さく、各入力に対しては更に小さい。従って、各入力に対する電圧利得を自由に選べないことが判る。これにより、多値論理回路等を構成する上で障害となるなど、応用分野が制限されてしまう。
【００４２】
これに対して、図３に示すフィードバック容量ＣF 付多入力増幅器では、電圧利得は式（９）で表され、自由に選べることがわかる。
なお、フィードバック容量ＣF については、前述した文献のうち、イシイらの文献に示されているが、入出力特性は容量比で変化することを示すに留まり、後述する多値論理回路への適用を示唆する記載はない。
【００４３】
図３に示す回路構成について、更に説明する。反転増幅器Ａとしては、図２に示すＣＭＯＳを用い、容量ＣL を介して負帰還をかけることで、各入力に対する電圧利得を決定している。また、入力の一部を直流電圧源に接続することにより、実効インバータ電圧Ｖinv を変えることもできる。入力Ｘをこのための入力とし、他の入力に対する実効インバータ電圧Ｖinv"を式（８）より求めると、
【００４４】
【数８】
0003748119.tif 000010
【００４５】
となり、
【００４６】
【数９】
0003748119.tif 000011
【００４７】
が得られる。複数の入力をこの目的で用いる場合は並列容量と容量で重み付けした平均電圧を用いればよい。例えば、Ｃx1とＣx2をそれぞれＶDDとＶSS（＝０）に接続した場合、合成容量Ｃx1＋Ｃx2、等価電圧ＶDDＣX1／（Ｃx1＋Ｃx2）とすればよい。
【００４８】
次に、図３の構成を利用した種々の基本多値論理回路を説明する。これらの基本多値論理回路は、後述する多値論理回路（多値加算回路）で用いられるものである。なお、以下に説明する基本多値論理回路では、上述の実効インバータ電圧は適当な値に設定されているものとし、インバータ電圧を制御するための直流入力は省略してある。
【００４９】
図４は、多値インバータを示す図である。図４に示す構成では、入力容量Ｃとフィードバック容量ＣF とを同じ値（ＣF ＝Ｃ）にすることにより、入力に対する出力の利得を−１にしている。また、実効インバータ電圧は電源電圧ＶDDの１／２に設定してある。すなわち、出力電圧Ｖo は
ＶO ＝−（Ｖi −ＶDD／２）＋ＶDD／２＝ＶDD−Ｖi 
となる。Ｎ値（Ｎは２以上の自然数）信号ｘ（ｘ∈｛０、１、２、．．．、Ｎ−１｝）に電圧レベルｘ／（Ｎ−１）ＶDDを対応させれば、その否定￣ｘは次の通り書ける。
￣ｘ＝Ｎ−１−ｘ
この否定￣ｘが出力に現れる。
【００５０】
図５は、Ｒ進反転型Ｄ／Ａコンバータである（Ｒは２以上の自然数）。この構成では、入力の容量の比をＲのべきに比例するように設定してある（Ｃ、ＲＣ、Ｒ2 Ｃ、．．．、ＲL-1 Ｃ）。これにより、各入力に対する利得は−Ａ、−ＡＲ、−ＡＲ2 、．．．、−ＡＲL-1 となる。また、実効インバータ電圧Ｖinv は次のように調節する。まず、Ｄ／Ａコンバータの出力Ｖo は、
ＶO ＝−ＡΣＲk-1 （Ｖk −Ｖinv ）＋Ｖinv 
で表される。
【００５１】
入力のＲ値信号
ｘ＝ΣＲk-1 ｘk     （ｘk ∈｛０、１、２、．．．、Ｒ−１｝）
の各桁ｘk に電圧レベルｘ／（Ｒ−１）ＶDDを対応させれば、
0003748119.tif 000012
が得られる。特に、
Ａ＝（Ｒ−１）／（ＲL −１）、Ｖinv ＝ＶDD／２
とすると、
Ｖo ＝ＶDD（１−１／（ＲL −１）ΣＲk-1 ｘk ）
となり、また
Ａ＝（Ｒ−１）／ＲL 、Ｖinv ＝ＶDDＲL ／（２ＲL −１）
とすると、
Ｖo ＝ＶDD（１−１／ＲL ΣＲk-1 ｘk ）
となり、入力のＲ値Ｌ桁信号ｘに応じた出力がほぼフルスケールで得られることが判る。
【００５２】
図６は、多入力反転増幅器を複数用いることにより、正の重みも可能にした回路である。前段の反転増幅器の入力容量をＣ1k（Ｋ＝１、２、．．．、Ｌ１）、フィードバック容量をＣ1Fとし、後段の反転増幅器の入力容量をＣ21（ｌ＝０、１、２、．．．、Ｌ２）、フィードバック容量をＣ2Fとする。そして、前段の反転増幅器の出力が後段の反転増幅器の０番目の入力に容量Ｃ2kを介して接続されている。このとき、それぞれの利得が十分大きいとすると、
【００５３】
【数１０】
0003748119.tif 000013
【００５４】
となり、正負の両方の重みが得られることがわかる。ここで
【００５５】
【数１１】
0003748119.tif 000014
【００５６】
である。ただし、どのような入力に対しても前段の反転増幅器の出力が飽和しないようにするためには、
Ｃ1F≧ΣＣ1k
とする必要がある。
【００５７】
図７は、Ｎ値量子化器である。Ｎ値の値ｎを電圧レベルｎ／（Ｎ−１）ＶDDに対応させる場合、入力の比較器Ａ1 、Ａ2 、ＡN のしきい値はそれぞれ
（ｎ−１／２）／（Ｎ−１）ＶDD（ｎ∈｛１、２、．．．、Ｎ−１｝）
に設定する。これらの出力を同じ重み（容量Ｃ／（Ｎ−１））で後段の多入力反転増幅器に入力することにより、Ｎ値量子化器を得ることができる。
【００５８】
図８は、図７に示すＮ値量子化器の動作特性を示す図で、（Ａ）は入力電圧Ｖi に対する比較器Ａ１、Ａ２、Ａ３（図７では省略）、ＡN の出力電圧を示し、図（Ｂ）はＮ値量子化器の入出力特性を示す。
図９は、Ｒ進Ｎ値加算器の要部を示す図である（Ｒは２以上の整数）。すなわち、図９に示す加算器は、各桁の重みがＲ（Ｒは２以上の自然数）のべきで表され（すなわち、Ｒ進数で）、各桁がＮ通りの値をとる符号を処理する。このような符号として、各桁が正負の対称な値をとるＳＤ（Ｓｉｇｎｅｄ  Ｄｉｇｉｔ）符号がある。周知のように、ＳＤ符号は冗長性を有する。例えば、４桁の４進ＳＤ数は１０進数の”１０”に対して複数の表現が可能である。（（００２２）、（１−３−１−２）等）。上記冗長性とは、ある数値が複数通りの表現で表わされる可能性があることを意味している。この点に鑑み、上記加算器は特にＲ進Ｎ値冗長加算器とも呼ばれる。
【００５９】
図９において、ｋ桁のｘk とｙk の加算結果ｚk は破線で囲まれた部分（加算器の基本演算回路）で行われ、その中間の出力（中間和）ｗk （＝ｘk ＋ｙk ＝ｓk ＋Ｒｃk ）と、ｋ−１桁からの桁上げ信号ｃk-1 との和で算出される。すなわち、桁上げ信号の伝搬は１けたのみに限られる。
【００６０】
図１０は、Ｒ進Ｎ値冗長加算器の図９の破線で囲まれた部分に相当する回路図である。ただし、Ｒ＝２Ｍ≧４、Ｎ＝２Ｍ＋３である。なお、Ｒ＝２Ｍ＋１≧３、Ｎ＝２Ｍ＋３の場合も同様に構成できる。入力ｘk とｙk を加算した中間和ｗk から和信号ｓk と桁上げ信号ｃk を算出し、そのうちの和信号ｓk とｋ−１桁からの桁上げ信号ｃk-1 との和ｚk を算出する。
【００６１】
比較器Ａ１を含む多入力反転増幅器と、比較器Ａ２を含む多入力反転増幅器とは、入力ｘk とｙk とからｋ＋１桁に伝搬する桁上げ信号ｃk を生成する。増幅器Ａ４を含む多入力反転増幅器は、和信号ｓk （＝ｗk −Ｒｃk ）を算出する。増幅器Ａ３を含む多入力反転増幅器は、和信号ｓk と、ｋ−１桁からの桁上げ信号ｃk-1 とから最終的な答えｚk を算出する。
【００６２】
以下、式を用いて図１０の構成及び動作を説明する。
Ｒ進Ｎ値冗長加算器の入力信号は、次の通り表される。
ｘ＝ΣＲk ｘk       （ｘk ∈｛−（Ｍ＋１）、−Ｍ、．．．、Ｍ、Ｍ＋１｝）
ｙ＝ΣＲk ｙk       （ｙk ∈｛−（Ｍ＋１）、−Ｍ、．．．、Ｍ、Ｍ＋１｝）
入力信号の各桁において、ｘk とｙk の中間和ｗk を作り、それを和信号ｓk （ｓk ∈｛−Ｍ、−（Ｍ−１）、．．．、−１、０、１、．．．、Ｍ−１、Ｍ｝）と桁上げ信号ｃk （ｃk ∈｛−１、０、１｝に分解する。最終的な答えｚk （ｚk ∈｛−（Ｍ＋１）、−Ｍ、．．．、−１、０、１、．．．、Ｍ、Ｍ＋１｝）は、和信号ｓk と１つ下の桁上げ信号ｃk-1 の和として得られる。すなわち、
ｗk ＝ｘk ＋ｙk ＝ｓk ＋Ｒｃk 
ｚk ＝ｓk ＋ｃk-1 
となる。桁上げ信号は、
【００６３】
【数１２】
0003748119.tif 000015
【００６４】
となる。ただし、Ｒ＝２Ｍの場合には、ｗk ＝−Ｍの時ｃk ＝−１、ｗk ＝Ｍの時ｃk ＝１としてもよい。
桁上げ信号ｃk は、これを２つの成分αk とβk に分け、ｘk とｙk から生成する。
【００６５】
【数１３】
0003748119.tif 000016
【００６６】
すなわち、図６に示す増幅器を用いることにより、ｘk 、ｙk 、αk 、βk の重み付き線形和としてｚk を得る。
なお、容量の決定に際しては、比較器Ａ１及びＡ２の出力は、−（２Ｍ＋２）αk 、−（２Ｍ＋２）βk に対応したレベルであることを考慮する。すなわち、比較器Ａ１からの出力は−（２Ｍ＋２）αk であり、一方これを受ける容量の重みは入力ｘk に対しＲ倍なので、その容量を｛Ｒ／（２Ｍ＋２）｝Ｃ2 に設定する。同様に、比較器Ａ２からの出力は−（２Ｍ＋２）βk であり、一方これを受ける容量の重みは入力ｙk に対しＲ倍なので、その容量を｛Ｒ／（２Ｍ＋２）｝Ｃ2 に設定する。
【００６７】
また、増幅器Ａ３の入力容量は次のように設定する。和信号−ｓk を受ける容量Ｃ3 に対し、ｋ−１桁の桁上げ信号ｃk-1 （−（２Ｍ＋２）αk-1 ＋｛−（２Ｍ＋２）βk-1 ）は等しい重み付けである。よって、桁上げ信号を受ける容量はそれぞれ｛１／（２Ｍ＋２）｝Ｃ3 である。
【００６８】
図１１は、図１０に示す２Ｍ進２Ｍ＋３値冗長加算器の中間和ｗk と信号ｃk 、ｓk 、αk 、βk との関係を示す図である。なお、図中、各信号は実線、破線のいずれをも取り得る。
図１１に示すように、中間和ｗk に対し、桁上げ信号ｃk は±Ｍの前後で変化する。従って、図１０に示す比較器Ａ1 のしきい値を−（Ｍ±１／２）、比較器Ａ2 のしきい値を（Ｍ±１／２）に設定することで、桁上げ信号ｃk の値を決定できる。なお、このときのαk とβk は、図１１に示す通りである。増幅器Ａ4 の出力−ｓk はｘk ＋ｙk −Ｒ（αk ＋βk ）に等しいので、図１１に示すように変化する。
【００６９】
ここで、一例としてＭ＝２の場合を考える。すなわち、４進７値冗長加算器では、
ｗk ＝ｘk ＋ｙk ＝４ｃk ＋ｓk 
となる。よって、ｗk とｃk 及びｓk との関係は図１２に示すようになる。ｗk ＝±２の場合には、ｃk 及びｓk はいずれの値をも取り得る。従って、例えば比較器Ａ1 とＡ2 のしきい値を各々−１．５と＋１．５に設定することで、桁上げ信号ｃk の値を決定できる。比較器Ａ1 、Ａ2 の出力は電源電圧ＶDD又はＶS のいずれかの値をとる。ＶDDは７値（Ｍ＝２）の＋３（＝Ｍ＋１）に相当し、ＶSSは−３（＝−（Ｍ＋１））に相当する。よって、Ａ1 及びＡ2 の出力はそれぞれ、−（２Ｍ＋２）αk 、（２Ｍ＋２）βk となり、これらを受ける容量は次の通りである。
｛Ｒ／（２Ｍ＋２）｝Ｃ2 ＝４／（２×２＋２）＝２／３Ｃ2 
また、増幅器Ａ3 の入力容量は等しい重み付けであるが、Ｍ＝２の場合、ｋ−１桁からの桁上げ信号ｃk-1 は本来の値の６倍なので、桁上げ信号ｃk-1 を受ける２つの容量は−ｓk を受ける容量Ｃ3 に対しそれぞれ１／６に重み付けされている。
【００７０】
図１０に示す２Ｍ進２Ｍ＋３冗長加算器の説明においては、各桁が正負の対称な値をとるＳＤ符号を用いる場合を説明したが、２Ｍ進２Ｍ＋２値でｘk ∈｛−Ｍ、．．．、Ｍ、Ｍ＋１｝又はｘk ∈｛−（Ｍ＋１）、Ｍ、．．．、Ｍ｝といった非対称な値を持つ符号や、ｘk ∈｛０、．．．、２Ｍ、２Ｍ＋１｝といった正だけの値を取る符号を用いた場合でも同様の考え方で構成可能である。
【００７１】
図１３は、図９と同様のＲ進Ｎ値冗長加算器の要部の構成を示す図であるが、図１３の構成の場合にはＲ＝２Ｍ≧２、Ｎ＝２Ｍ＋１の場合である。図９に示す構成と異なり、処理部１０でｋ桁の桁上げ信号ｃk はｋ−１桁の中間和ｗk-1 に関する情報（具体的には、その符号）を参照して決められる。
【００７２】
図１４は、図１３に示すＲ進Ｎ値冗長加算器の破線で囲まれた部分に相当する回路図である。比較器Ａ１を含む多入力反転増幅器と、比較器Ａ２を含む多入力反転増幅器とは、入力ｘk とｙk とｋ−１桁からの中間和ｗk-1 の符号（−２Ｍγk-1 ）からｋ＋１桁に伝搬する桁上げ信号ｃk を生成する。比較器Ａ3 を含む多入力反転増幅器は、入力ｘk とｙk とから、ｋ＋１桁に送る中間和ｗk の符号（−２Ｍγk ）を生成する。増幅器Ａ５を含む多入力反転増幅器は、和信号ｓk （＝ｗk −Ｒｃk ）を算出する。増幅器Ａ４を含む多入力反転増幅器は、和信号ｓk と、ｋ−１桁からの桁上げ信号ｃk-1 とから最終的な答えｚk を算出する。
【００７３】
以下、式を用いて図１４の構成及び動作を説明する。
図１４に示す加算器では、入力信号
ｘ＝ΣＲk-1 ｘk     （ｘk ∈｛−Ｍ、−（Ｍ−１）、．．．、Ｍ−１、Ｍ｝）
ｙ＝ΣＲk-1 ｙk     （ｙk ∈｛−Ｍ、−（Ｍ−１）、．．．、Ｍ−１、Ｍ｝）
の各桁の入力信号から中間和ｗk を作成し、それを和信号ｓk （ｓk ∈｛−Ｍ、−（Ｍ−１）、．．．、Ｍ−１、Ｍ｝）と桁上げ信号ｃk （ｃk ∈｛−１、０、１｝に分解する。最終的な答えｚk （ｚk ∈｛−Ｍ、−（Ｍ−１）、．．．、Ｍ−１、Ｍ｝）は、和信号ｓk と１つ下の桁上げ信号ｃk-1 の和として得られる。この場合には、ｓk とｃk-1 の和が定められた範囲に収まるようにするため、桁上げ信号の生成に工夫をする。すなわち、上記範囲に収まるようにするために、｜ｗk ｜＝Ｍの時には、ｗk-1 ≦０の場合ｓk ＞０となるように、ｗk-1 の場合ｓk ＜０となるようにｃk を求める。
【００７４】
図１４の回路構成において、中間和の正負を判断する比較器Ａ3 を設け、入力容量Ｃ4 を介して入力ｘk 、ｙk を受け取り、その和を基準値を比較する。そして、比較器Ａ3 が出力する比較結果より１つ上の桁の２つの比較器Ａ1 とＡ2 のしきい値を制御している。比較器Ａ1 とＡ2 は、ｋ−１桁からの符号を示す信号−２Ｍγk-1 をインバータＩＮＶ及び各比較器に接続された入力容量を介して受け取る。信号−２Ｍγk-1 は電源電圧ＶDD又はＶSSなので、この信号を受ける入力容量は１／２Ｍに重み付けされている。このようにして、ｋ−１桁の中間和の符号を考慮して、桁上げ信号が生成される。
【００７５】
なお、桁上げ信号を受ける増幅器Ａ５の入力容量はＲ／２Ｍ＝２Ｍ／２Ｍ＝１の重みである。また、増幅器Ａ４の入力容量は次のように設定する。和信号−ｓk を受ける容量Ｃ3 に対し、ｋ−１桁の桁上げ信号ｃk-1 （−２Ｍαk-1 ＋｛−２Ｍβk-1 ｝）は等しい重み付けである。よって、桁上げ信号を受ける容量はそれぞれ（１／２Ｍ）Ｃ3 である。
【００７６】
図１５は、図１４に示す２Ｍ進２Ｍ＋１値冗長加算器の中間和ｗk と信号ｃk 、ｓk 、αk 、βk 、γk との関係を示す図である。なお、図中、実線はγk-1 ＝１／２の場合であり、破線はγk-1 ＝−１／２の場合である。
図１５に示すように、中間和ｗk に対し、桁上げ信号ｃk は±Ｍの前後で変化する。更に、γk は０近傍で変化する。従って、図１４に示す比較器Ａ1 のしきい値を−Ｍ、比較器Ａ2 のしきい値をＭに設定することで、桁上げ信号ｃk の値を決定できる。なお、このときのαk とβk は、図１５に示す通りである。増幅器Ａ5 の出力−ｓk はｘk ＋ｙk −Ｒ（αk ＋βk ）  に等しいので、図１５に示すように変化する。
【００７７】
ここで、一例としてＭ＝２の場合を考える。すなわち、４進５値冗長加算器では、
ｗk ＝ｘk ＋ｙk ＝４ｃk ＋ｓk 
となる。よって、ｗk とｃk 及びｓk との関係は図１６に示すようになる。ｗk ＝±２の場合には、ｃk 及びｓk の値は次の通りである。ｗk ＝−２でｃk ＝−１の時はｓk ＝２であり、ｃk ＝０の時にはｓk ＝−２である。またｗk ＝２でｃk ＝０の時にはｓk ＝２であり、ｃk ＝１の時にはｓk ＝−２である。よって、ｗk ＝±２の場合には、いずれか一方のｃk とｓk を選択する必要がある。
【００７８】
いま、γk を次のように設定する。
【００７９】
【数１４】
0003748119.tif 000017
【００８０】
この場合、桁上げ信号ｃk のαk とβk を次のように設定する。
【００８１】
【数１５】
0003748119.tif 000018
【００８２】
以上の通り、比較器Ａ1 とＡ2 のしきい値を各々−２と＋２に設定することで、桁上げ信号ｃk の値を決定できる。比較器Ａ1 、Ａ2 の出力は電源電圧ＶDD又はＶSSのいずれかの値をとる。ＶDDは５値（Ｍ＝２）の＋２（＝Ｍ）に相当し、ＶSSは−２（＝−Ｍ）に相当する。一方、Ｒ＝２ＭでＭ＝２の時Ｒ＝４である。よって、増幅器Ａ５の入力容量はすべてＣ2 に等しい。
【００８３】
また、増幅器Ａ4 の入力容量は等しい重み付けであるが、Ｍ＝２の場合、ｋ−１桁からの桁上げ信号ｃk-1 は本来の値の４倍なので、桁上げ信号ｃk-1 を受ける２つの容量は−ｓk を受ける容量Ｃ3 に対しそれぞれ１／４に重み付けされている。
【００８４】
以上、図１４及び図１５に示す冗長加算器を説明した。この説明においては、各桁が正負の対称な値をとるＳＤ符号を用いる場合を説明したが、２Ｍ進２Ｍ＋１値でｘk ∈｛０、．．．、２Ｍ−１、２Ｍ｝といった正だけの値を取る符号を用いた場合でも同様の考え方で構成可能である。
【００８５】
以上、本発明の実施例を説明した。なお、図１０及び図１４の構成において、最終的な加算結果ｚk を入力とする図７に示すような量子化器（電圧ｚk がどの多値レベルにあるかを判定する複数の弁別器と、弁別器の出力を線形加算するための多入力増幅器）を接続することで、多値レベルの誤差が後段へ積算されることを防止することができる。
【００８６】
また、このような量子化器を図１０及び図１４に示す加算器内部に設けてもよい。例えば、入力ｘk とｙk とをそれぞれ量子化する量子化器を設け、これらの量子化器の出力を図１０及び図１４に示す入力ｘk 、ｙk とする。
また、中間出力−ｓk を量子化しても良い。ｓk は２Ｍ＋１値であるので２Ｍ進２Ｍ＋３値加算器の場合はｚk ，ｘk ，ｙk を量子化するのに比べ、必要とされる比較器の数が少なくなる利点がある。
【００８７】
このように、量子化器を設けることで多値レベルの誤差の積算を防ぐことができる。以下、この点を詳述する。前述した構成の冗長加算器は、その前段部分で重みに応じたレベル（ハイレベル又はローレベル）を出力し、後段部分のフィードバックによるアナログ的動作で多値を出力する。フローティングゲートの電位は分圧で決まるが、増幅器をＣＭＯＳ回路で構成した場合には電源電圧（ＶDDやＶSS）付近では入力と出力とが線形の関係にない。従って、入力電圧がこの電源電圧付近のレベルにあると、誤差を生じる可能性がある。また容量の作製誤差も出力の後妻の原因となる。このような誤差の発生を防止するために、上述した量子化器が設けられる。
【００８８】
量子化器はアナログ的処理において発生する誤差を回避するものであるから、例えばフィードバック容量を有する多入力増幅器の出力に設ける。この場合、量子化器は多入力増幅器の多値出力をレベル判定した後、再度加算する処理を行うので効率が悪い。以下に説明する実施例は、この点を考慮したものである。
【００８９】
以下に説明する実施例では、冗長加算器の内部に電圧がどの多値レベルにあるかを判定する機能を有する。
図１７〜図２０は、２Ｍ進２Ｍ＋３値冗長加算器を説明するための図である。なお、図１７〜図２０には説明の都合上、一部重複する図を含む。図１７はこの冗長加算器の所定部分の信号を表し、（ｂ）はその原理構成を示す図である。なお、図１７及び図１８は既に説明したものであるが、ここでは−ｓk を生成する多入力増幅器Ａ3 のフィードバック容量を｛Ｍ／（Ｍ＋１）｝Ｃ、この出力と次段への結合容量を｛Ｍ／（Ｍ＋１）｝Ｃ3 としている。これは、ｘk 、ｙk 、ｚk が２Ｍ＋３値であるのに対し、ｓk が２Ｍ＋１であるので、ｘk 、ｙk に対するゲインを（Ｍ＋１）／Ｍとして−ｓk の出力がフルスケールで振れるようにしたためである。容量をそれぞれＣ2 , Ｃ3 としても問題がないし、ＣＭＯＳインバータ特性によってはむしろフルスケールで振らないほうが良い場合もありうる。
【００９０】
図１９は、ＣＭＯＳインバータによるニューロンＭＯＳ回路を用いた場合の回路図である。図示する回路では、ニューロンＭＯＳインバータのしきい値をＶDD／２と仮定している。符号の＋は図１７での実線に、−は破線に対応する。図１９に示す回路はｘk 、ｙk が多入力増幅器を通してｚk に出力されているため、多段に接続するとアナログ的な動作による誤差が蓄積される問題がある。このため、入力、出力又は内部に量子化器を挿入し、多値レベルの再生を行う必要があることは前述した通りである。入力は２つあるので、入力を量子化しようとすると２つの量子化器が必要であり効率的ではない。また、出力のレベルが２Ｍ＋３値であるのに対してｓk は２Ｍ＋１なので、ｓk の後に量子化器を挿入するのが最も有利である。量子化器はコンパレータを並列に並べた構成でも良いし、後に説明するようなコンパレータの出力を別のコンパレータに加える構成でも良い。
【００９１】
しかし、量子化器はコンパレータでレベルを検出し２値の信号の組とした後、多入力増幅器でその和を取り多値に戻している。そしてｓk の後に量子化器を挿入した場合、その出力にまた多入力増幅器で桁上げ信号を加えることになる。これは無駄なので、コンパレータの出力と桁上げ信号を一度に足したほうが有利である。また、ｓk を生成するための多入力増幅器はフィードバックを外せばコンパレータとして働くので、これを量子化器のコンパレータとして兼用することができる。
【００９２】
図２０はこのような考えに基づいて構成した２Ｍ進２Ｍ＋３値冗長加算器（図の構成はＭ＝２の場合に相当する）であり、内部に量子化作用を含むため、誤差の累積という問題点はない。この回路ではｓk ＝ｘk ＋ｙk −２Ｍ（αk ＋βk ）の信号を２Ｍ個（図では４個）のコンパレータＣＯＭＰ1 、ＣＯＭＰ2 、ＣＯＭＰ3 、ＣＯＭＰ4 に並列に接続することで加算している。各コンパレータの出力及び桁上げ信号αK-1 、βK-1 を最終段の多入力増幅器Ａで加算している。各コンパレータの出力及び桁上げ信号αk-1 、βk-1 はすべて±０．５をとる信号と考えることができるので、すべて同じ重みで加える。図２０に示す構成では同一構成のコンパレータＣＯＭＰ1 、ＣＯＭＰ2 、ＣＯＭＰ3 、ＣＯＭＰ4 を４個（＝２Ｍ）並列に並べ、これらのコンパレータのしきい値設定用入力をＶDD又はＶSSのどちらかに接続するかでしきい値を変えている。例えば、、コンパレータＣＯＭＰ1 の７つの入力端子（しきい値設定用入力）のうち３つに電源電圧ＶSSを印加し、コンパレータＣＯＭＰ2 では２つの入力端子に電源電圧ＶSSを印加し、１つに電源電圧ＶDDを印加している。なお、最上位と最下位のコンパレータＣＯＭＰ1 とＣＯＭＰ4 を除いてＶDDとＶSSに接続されているしきい値設定用入力が両方存在するので、これらを相殺して容量の数を減らすことができる。また、多段構成のコンパレータを用いてもよい。４つのコンパレータＣＯＭＰ1 、ＣＯＭＰ2 、ＣＯＭＰ3 、ＣＯＭＰ4 のそれぞれの出力信号線は多値増幅器Ａの入力に接続されている。この４つの信号線とＶDD、ＶSSとでｓK の５値が表される。
【００９３】
図１９及び図２０の最終段の多値増幅器Ａ4 、ＡはニューロンＭＯＳソースフォロワで置き換えることもできる。その場合には出力レベルが反転するが、冗長多値加算器を用いた乗算器では加算ツリーが規則的な構造をとるため、出力レベルの反転はあまり大きな問題とはならない。
【００９４】
図１７〜図２０に示す回路は２Ｍ＋１進２Ｍ＋３値冗長加算器にもそのまま用いることができる。ただし、この場合では符号は＋をとり、図中のＲは２Ｍ＋１をとる。
図２１〜図２４は、２Ｍ進２Ｍ＋１値冗長加算器を説明するための図である。これは、２Ｍ進２Ｍ＋１冗長加算器の原理をそのまま回路化したものである。図２１は図１５と同一であり、図２２は図１４の回路構成と実質的に同一である。図２３はＣＭＯＳインバータによるニューロンＭＯＳ回路を用いた場合の回路図である。基本的に、図２３は前述した２Ｍ進２Ｍ＋３値冗長加算器と同様の考え方で構成されている。
【００９５】
図２４は、内部に量子化作用を含む構成の回路図である。図２４も前述した２Ｍ進２Ｍ＋３値冗長加算器と同様の考え方で構成されている。図示するように、同一構成のコンパレータＣＯＭＰ1 、ＣＯＭＰ2 、ＣＯＭＰ3 、ＣＯＭＰ4 を４個（＝２Ｍ）並列に並べ、これらのコンパレータのしきい値設定用入力をＶDD又はＶSSのどちらかに接続するかでしきい値を変えている。なお、２４の場合には、最終段の多値増幅器ＡはニューロンＭＯＳソースフォロワで置き換えることはできない。
【００９６】
図２５〜図２８は、２Ｍ進２Ｍ＋２値冗長加算器を説明するための図である。図示の構成は、多値レベルとして−ＭからＭ＋１までの値をとる場合を想定している。中間和に対して図２５に示すようにｓk 、ｃk を発生させれば、ｓk ∈｛−Ｍ＋１、−Ｍ＋２．．．．Ｍ−１、Ｍ｝、ｃk ∈｛−１、０、１｝となり、その和であるｚk はｚk ∈｛−Ｍ、−Ｍ＋１．．．．Ｍ、Ｍ＋１｝となる。このように、２Ｍ進２Ｍ＋３値冗長加算器とほとんど同様の操作で桁上げ信号の伝搬のない加算が可能である。２Ｍ進２Ｍ＋３値冗長加算器との違いは正負に対する対称性を放棄することで、多値レベルを一つ下げていることである。
【００９７】
図２７及び図２８に示す構成は基本的には２Ｍ進２Ｍ＋３値冗長加算器に関する前述の説明と同様である。図２５に示すように、しきい値は正負に対して対称でないため、しきい値の設定に注意する必要がある。２Ｍ進２Ｍ＋３値冗長加算器とは異なりｓk は２Ｍ値であるため、コンパレータＣＯＭＰ1 、ＣＯＭＰ2 、ＣＯＭＰ3 の構成は容易になる。最終段の多値増幅器Ａは、ニューロンＭＯＳソースフォロワで置き換えることもできる。
【００９８】
図２９〜図３２は、図２１〜図２４に示す２Ｍ進２Ｍ＋１値冗長加算器を改良した構成を示す図である。前述したように、２Ｍ進２Ｍ＋１値冗長加算器では、一つ下の桁の中間和の正負を表す信号γk-1 に応じて、桁上げ信号発生のためのしきい値を変化させる必要がある。このため、図２１〜図２４に示す回路では、中間和ｗk とγk-1 の和をコンパレータＡ1 、Ａ2 に加えることでαk 、βk を生成している。このことは、ｗk ＋γk-1 に対して各信号を考えると、その入出力特性を一定にすることができることを示唆している。
【００９９】
図２９はこの様子を示している。ｗk ＋γk-1 に対してｓk ＋γk-1 は一定の特性となり、しかも２Ｍ値であることがわかる。図３０はこの原理による加算器を示したもので、コンパレータＡ1 、Ａ2 だけではなく後段の多入力増幅器Ａ5 にもγk-1 を加えてやることで出力−ｓk −γk-1 を得ている。そして、最終段の多入力増幅器Ａ4 にもγk-1 を加えてやることで、余分なγk-1 をキャンセルしている。
【０１００】
図３１及び図３２は上記原理に基づく具体的な回路構成である。図２１〜図２４に示す構成に比べ、ｓk ＋γk-1 が２Ｍ値であることによりコンパレータＣＯＭＰ1 、ＣＯＭＰ2 、ＣＯＭＰ3 の構成が容易になっている。なお、最終段の多値増幅器Ａ4 はニューロンＭＯＳソースフォロワで置き換えることはできない。
【０１０１】
図３３〜図３６は図２９〜図３２に示す２Ｍ進２Ｍ＋１値冗長加算器を更に改良したものである。図２９を見ると、αk 、βk 、γk は必ずαk 、βk 、γk の順で立ち上がるので、４通りの組み合わせしかないことがわかる。従って、適切に選択することで、２値の信号２つにまとめることができる可能性がある。図３３はこの様子を表したもので、２値信号γk 、αk ＋βk −γk があれば必要な情報であるγk とｃk ＝αk ＋βk を作り出すことができる。αk ＋βk −γk を生成するのにαk 、βk のしきい値がｗk ＋γk-1 の正負に対して対称であることを利用することができる。−γk 出力を桁上げ信号発生のためのコンパレータＡ1 に加えてやることにより、γk が正のときはβK のしきい値で、γk が負のときはαK のしきい値で反転するコンパレータとして動作させることが可能になり、その出力としてαk ＋βk −γk の反転γk −αk −βk が得られる。
【０１０２】
図３４はこの原理による加算器である。前段の多値増幅器Ａ5 にはｗk ，γk-1 ，−γk ，γk −αk −βk を、最終段の多値増幅器Ａ4 へは桁上げ信号αk-1 ＋βk-1 とγk-1 のキャンセル用信号の和としてγk-1 −αk-1 ＋βk-1 を−ｓk に加えればよい。
【０１０３】
図３５及び図３６はこの原理に基づく具体的な回路構成である。図２９〜図３２と比べ桁上げ信号生成の構成が簡単になっている。最終段の多値増幅器Ａ4 は、ニューロンＭＯＳソースフォロワで置き換えることもできる。
図３７〜図３９は、多値を２値コード化した信号で表す方式を用いた場合の多値加算器を示す図である。
【０１０４】
上記説明した図１７〜図３６の多値加算器はいずれも一つの信号線の電圧レベルで直接多値レベルを表す方式を用いている。しかし、図２０、図２４、図２８、図３２及び図３６に示す多値加算器では、量子化器であるコンパレータの出力も桁上げ信号も２値であり、最終段の多入力増幅器Ａで多値レベルに戻す構成となっている。従って、これらの出力を直接外部に取り出せば、２値コード化された多値出力を持つ多値加算器が得られる。この形式の多値加算器を用いる場合には多段に接続することを考えると、入力ｘk 、ｙk も同じ２値コードの信号の組を用いることになる。図１７〜図３６に示す方式では、同じ重みの信号がそれぞれ２Ｍ＋２、２Ｍ＋２、２Ｍ＋１、２Ｍ＋２、２Ｍずつあり、これらをＣ／（２Ｍ＋２）、Ｃ／２Ｍ、Ｃ／（２Ｍ＋１）、Ｃ／２Ｍ、Ｃ／２Ｍという容量を介してコンパレータに接続すればよい。
【０１０５】
しかしながら、図２１〜図２４、及び図２９〜図３２に示す方式では信号の数と容量の積がＣにならないことから判るように、これらを適切にまとめることで２値信号の数を減らすことができる。
図３７は図２４に基づき信号線の数を減らしたものである。ここでは簡単のため、入力ｘk 、ｙk の信号線それぞれ１本が容量Ｃを介して接続されているように示されているが、実際には２Ｍ本の信号をＣ／２Ｍの容量で接続する。信号線削減による簡単化の原理を以下に説明する。
【０１０６】
図２１から判るように、αk-1 がローレベルのとき（即ち−αk-1 出力がハイレベルのとき）にはγk-1 もローレベルであり、ｓk の特性は破線の形になる。このとき、ｓk は２Ｍ＋１値の内最低のレベルは取りえないため、最低のレベルを検出するコンパレータＣＯＭＰ4 の出力はローレベルとなる。従って、−αK-1 出力とこのコンパレータの出力が同時にハイレベルになることはない。従って、ＯＲゲートによりこれらの信号をまとめることができる。同様に、−βK-1 出力と最高レベルを検出するコンパレータＣＯＭＰ1 の出力は同時にローレベルになることはないので、ＡＮＤゲートによりこれらの信号をまとめることができる。図３７では、出力が反転レベルにならないようにＮＡＮＤゲートＧ1 とＮＯＲゲートＧ2 を用い他の出力にインバータＩＮＶ1 とＩＮＶ2 を入れている。しかしながら、反転を許すならばＯＲゲートとＡＮＤゲートを用いることができ、インバータＩＮＶ1 、ＩＮＶ2 は不要となる。
【０１０７】
図３８は、図３２に基づき信号線の数を減らしたものである。図３３で説明したように、γk −αk −βk が２値になるので、γk 、−αk 、−βk をコンパレータＡに入れることで２値信号を得ている。ただし、信号の符号を考えるとインバータが必要となる。また、この図の構成ではｍ＝２の場合を想定し、ｓk ＋γk-1 が４値になることを利用して多段構成のコンパレータＣＯＭＰ1 、ＣＯＭＰ2 によりｓk ＋γk-1 を量子化している。前段のコンパレータＣＯＭＰ1 の出力に応じてそれ以降の段ＣＯＭＰ2 のしきい値を変化させることにより、逐次比較型Ａ／Ｄ変換器と同じような原理で２のべきで重み付けされた２値信号を得ることができる。従って、出力信号３つの重みは図３８では下から２、１、１となる。これらの信号線は次段の加算器とＣ／２、Ｃ／４、Ｃ／４の容量を介して接続すればよい。
【０１０８】
この方式のコンパレータは非常に効率のよい量子化が可能なので素子数をかなり低減できるが、遅延段数が増えるという問題点がある。また、このコンパレータが最も効率的なのは量子化レベルが２のべきのときであるが、他の場合でも同様な考え方でコンパレータを構成することは可能である。
【０１０９】
図３９は図３６に基づくものである。図３３〜図３６に示す方式はもともと余分な信号線はないので図３６の最終段を除いたものでもよい。しかし、ここでは多段構成のコンパレータを用いて信号線をｌｏｇ2 （２Ｍ）＋１本にしたものを示している。Ｍ＝２では（ｂ）と同様に出力信号３つの重みは下から２、１、１となり、次段の加算器とＣ／２、Ｃ／４、Ｃ／４で結合させればよい。この方式では図３８と異なり、出力レベルの反転を許せば出力のインバータは不要であり、もともとγk −αk −βk が得られることもあり、非常に簡単な構成で冗長加算器が構成できることがわかる。多段構成のコンパレータを用いることで遅延段数が増加するが、多値出力型で必要な最終段の多入力増幅器が不要となるため、Ｍ＝２では全体として遅延段数は増加しない。
【０１１０】
【発明の効果】
以上説明したように、本発明によれば以下の効果が得られる。
請求項１に記載の発明によれば、前記多入力電圧増幅器の電圧利得が、前記容量結合の容量と負帰還回路の容量との比で決定される多値論理回路であるため、この比を適当に選択することで出力を飽和させることなく、入力の重み付き線形和に比例した十分な利得の出力（加算結果）を低消費電力で得ることができる。
【０１１１】
請求項２に記載の発明によれば、多値量子化器で量子化することで、多値レベルの誤差を補正することができ、この誤差が後段に伝搬して積算されることがない。
請求項３、４に記載の発明によれば、これにより、多入力比較器での量子化作用によるレベル判定結果と桁上げ信号とを一度に加算することができ、簡単な構成で誤差の伝搬を防止することができる。
【０１１２】
請求項５に記載の発明によれば、２値コード化された多値出力が得られる。
請求項６、７に記載の発明によれば、２Ｍ進２Ｍ＋３値冗長加算器、２Ｍ＋１進２Ｍ＋３値冗長加算器、２Ｍ進２Ｍ＋２値冗長加算器等の、Ｎ≧Ｒ＋２を満たすＲ進Ｎ値冗長加算器を提供できる。
【０１１３】
請求項８、９に記載の発明によれば、２Ｍ進２Ｍ＋１値冗長加算器を提供できる。
【図面の簡単な説明】
【図１】容量結合型多入力増幅器（ニューロンＭＯＳインバータ）を示す等価回路図である。
【図２】図１に示す反転増幅器Ａの一構成例であるＣＭＯＳインバータを示す回路図である。
【図３】本発明による多値論理回路の基本となる容量帰還型多入力増幅器を示す図である。
【図４】容量帰還型多入力増幅器を用いた多値インバータを示す図である。
【図５】容量帰還型多入力増幅器を用いたＲ進反転Ｄ／Ａ変換器を示す図である。
【図６】容量帰還型多入力増幅器を用いた多入力増幅器を示す図である。
【図７】容量帰還型多入力増幅器を用いたＮ値量子化器を示す図である。
【図８】図７に示すＮ値量子化器の動作を示す図である。
【図９】本発明の一実施例によるＲ進Ｎ値冗長加算器（ただし、Ｒ＝２Ｍ≧４、Ｎ＝２Ｍ＋３）の要部を示す図である。
【図１０】図９の破線で囲んだ部分の構成を示す図である。
【図１１】図１０に示す構成の動作を示す図である。
【図１２】図１０に示す回路構成において、Ｍ＝２の場合の動作を示す図である。
【図１３】本発明の別の実施例によるＲ進Ｎ値冗長加算器（ただし、Ｒ＝２Ｍ≧２、Ｎ＝２Ｍ＋１）の要部を示す図である。
【図１４】図１３の破線で囲んだ部分の構成を示す図である。
【図１５】図１４に示す構成の動作を示す図である。
【図１６】図１５に示す回路構成において、Ｍ＝２の場合の動作を示す図である。
【図１７】２Ｍ進２Ｍ＋３値冗長加算器を説明するための図（その１）である。
【図１８】２Ｍ進２Ｍ＋３値冗長加算器を説明するための図（その２）である。
【図１９】２Ｍ進２Ｍ＋３値冗長加算器を説明するための図（その３）である。
【図２０】２Ｍ進２Ｍ＋３値冗長加算器を説明するための図（その４）である。
【図２１】２Ｍ進２Ｍ＋１値冗長加算器を説明するための図（その１）である。
【図２２】２Ｍ進２Ｍ＋１値冗長加算器を説明するための図（その２）である。
【図２３】２Ｍ進２Ｍ＋１値冗長加算器を説明するための図（その３）である。
【図２４】２Ｍ進２Ｍ＋１値冗長加算器を説明するための図（その４）である。
【図２５】２Ｍ進２Ｍ＋２値冗長加算器を説明するための図（その１）である。
【図２６】２Ｍ進２Ｍ＋２値冗長加算器を説明するための図（その２）である。
【図２７】２Ｍ進２Ｍ＋２値冗長加算器を説明するための図（その３）である。
【図２８】２Ｍ進２Ｍ＋２値冗長加算器を説明するための図（その４）である。
【図２９】図２１〜図２４に示す２Ｍ進２Ｍ＋１値冗長加算器を改良した構成を示す図（その１）である。
【図３０】図２１〜図２４に示す２Ｍ進２Ｍ＋１値冗長加算器を改良した構成を示す図（その２）である。
【図３１】図２１〜図２４に示す２Ｍ進２Ｍ＋１値冗長加算器を改良した構成を示す図（その３）である。
【図３２】図２１〜図２４に示す２Ｍ進２Ｍ＋１値冗長加算器を改良した構成を示す図（その４）である。
【図３３】図２９〜図３２に示す２Ｍ進２Ｍ＋１値冗長加算器を更に改良した構成を示す図（その１）である。
【図３４】図２９〜図３２に示す２Ｍ進２Ｍ＋１値冗長加算器を更に改良した構成を示す図（その２）である。
【図３５】図２９〜図３２に示す２Ｍ進２Ｍ＋１値冗長加算器を更に改良した構成を示す図（その３）である。
【図３６】図２９〜図３２に示す２Ｍ進２Ｍ＋１値冗長加算器を更に改良した構成を示す図（その４）である。
【図３７】多値を２値コード化した信号で表す方式を用いた場合の多値加算器を示す図（その１）である。
【図３８】多値を２値コード化した信号で表す方式を用いた場合の多値加算器を示す図（その２）である。
【図３９】多値を２値コード化した信号で表す方式を用いた場合の多値加算器を示す図（その３）である。
【図４０】ニューロンＭＯＳ回路の一構成例を示す図である。
【図４１】ニューロンＭＯＳ回路の別の構成例を示す図である。
【符号の説明】
ｘk 、ｙk   入力信号
ｚk   出力信号
ｃk   桁上げ信号
Ａ、Ａ1 〜Ａ5   ＣＭＯＳインバータ回路
【図１】
0003748119.tif 000019
【図２】
0003748119.tif 000020
【図３】
0003748119.tif 000021
【図４】
0003748119.tif 000022
【図５】
0003748119.tif 000023
【図６】
0003748119.tif 000024
【図７】
0003748119.tif 000025
【図８】
0003748119.tif 000026
【図９】
0003748119.tif 000027
【図１０】
0003748119.tif 000028
【図１１】
0003748119.tif 000029
【図１２】
0003748119.tif 000030
【図１３】
0003748119.tif 000031
【図１４】
0003748119.tif 000032
【図１５】
0003748119.tif 000033
【図１６】
0003748119.tif 000034
【図１７】
0003748119.tif 000035
【図１８】
0003748119.tif 000036
【図１９】
0003748119.tif 000037
【図２０】
0003748119.tif 000038
【図２１】
0003748119.tif 000039
【図２２】
0003748119.tif 000040
【図２３】
0003748119.tif 000041
【図２４】
0003748119.tif 000042
【図２５】
0003748119.tif 000043
【図２６】
0003748119.tif 000044
【図２７】
0003748119.tif 000045
【図２８】
0003748119.tif 000046
【図２９】
0003748119.tif 000047
【図３０】
0003748119.tif 000048
【図３１】
0003748119.tif 000049
【図３２】
0003748119.tif 000050
【図３３】
0003748119.tif 000051
【図３４】
0003748119.tif 000052
【図３５】
0003748119.tif 000053
【図３６】
0003748119.tif 000054
【図３７】
0003748119.tif 000055
【図３８】
0003748119.tif 000056
【図３９】
0003748119.tif 000057
【図４０】
0003748119.tif 000058
【図４１】
0003748119.tif 000059