(57)【特許請求の範囲】
【請求項１】
入力状態数ξにおける出力値を、論理的１または０に選択的に設定する２段論理フィードフォワード型しきい素子回路であって、
｛ｉｎｔ［（２／３）ξ］＋ｍｏｄ［ξ／３］｝個の１段目のしきい素子を有し、
上記１段目のしきい素子の｛ｉｎｔ［（２／３）ξ］｝個は、少なくとも４つの入力閾値を有し、
上記｛ｉｎｔ［（２／３）ξ］｝個のしきい素子の出力値に乗算される重みのうちの半数は、他の半数の２倍の値を有し、
上記｛ｉｎｔ［（２／３）ξ］｝個のしきい素子とは別の｛ｍｏｄ［ξ／３］｝個の１段目のしきい素子は、少なくとも２つの入力閾値を有し、
上記｛ｍｏｄ［ξ／３］｝個の１段目のしきい素子の出力値に乗算される重みの値は、上記｛ｉｎｔ［（２／３）ξ］｝個の重みの小さい値と等しいことを特徴とする論理関数機能再構成可能集積回路。
【請求項２】
請求項１において、
上記しきい素子が、複数の容量を有し、
上記容量の一方の端子に、入力変数と関数機能を構成するデータとが入力され、上記容量の他方の端子が、互いに接続され、１つの端子となる構造を有し、
上記１つの端子の電位が、しきい処理を行う非線形素子の入力値となる構造を有することを特徴とする論理関数機能再構成可能集積回路。
【請求項３】
請求項２において、
上記しきい処理を行う非線形素子は、ＭＯＳトランジスタを用いたインバータであることを特徴とする論理関数機能再構成可能集積回路。
【請求項４】
任意の論理関数を実現するしきい素子回路網であって、上記しきい素子を複数段結合する構造を有し、論理関数機能を構成するデータとして、多値表現されたデータを用いる論理関数機能再構成可能集積回路における再構成方法であって、
入力ベクトルを１次元表示し、それぞれ区別した値を、入力状態数と呼ぶときに、
連続する３つの入力状態数を、１つのグループとし、
上記グループのそれぞれの入力状態数であるときのしきい素子網の出力値と、上記しきい回路網中の２つのしきい素子の出力値とを対応付け、
上記２つのしきい素子の出力値と、それぞれのしきい素子に入力される関数構成データの値とを対応付け、
上記関数構成データの値を変更することによって、任意の論理関数を実現することを特徴とする論理関数機能再構成方法。
【請求項５】
任意の対称関数を実現するしきい素子回路網であって、上記しきい素子を複数段結合する構造を有し、対称関数機能を構成するデータとして、多値表現されたデータを用いる論理関数機能再構成可能集積回路における再構成方法であって、
入力ベクトルを１次元表示し、それぞれ区別した値を、入力状態数と呼ぶときに、
連続する３つの入力状態数を、１つのグループとし、
上記グループのそれぞれの入力状態数であるときのしきい素子網の出力値と、しきい回路網中の２つのしきい素子の出力値とを対応付け、
上記２つのしきい素子の出力値と、それぞれのしきい素子に入力される関数構成データの値とを対応付け、
関数構成データの値を変更することによって、任意の対称関数を実現することを特徴とする対称関数機能再構成方法。
【請求項６】
任意の論理関数を実現するしきい素子回路網であって、上記しきい素子を複数段結合する構造を有し、論理関数機能を構成するデータとして、多値表現されたデータを用いる論理関数機能再構成可能集積回路であって、
入力ベクトルを１次元表示し、それぞれ区別した値を、入力状態数と呼ぶときに、
連続する３つの入力状態数を、１つのグループとするグループ化手段と；
上記グループのそれぞれの入力状態数であるときのしきい素子網の出力値と、上記しきい回路網中の２つのしきい素子の出力値とを対応付ける第１の対応付け手段と；
上記２つのしきい素子の出力値と、それぞれのしきい素子に入力される関数構成データの値とを対応付ける第２の対応付け手段と；
を有し、上記関数構成データの値を変更することによって、任意の論理関数を実現することを特徴とする論理関数機能再構成可能集積回路。
【請求項７】
任意の対称関数を実現するしきい素子回路網であって、上記しきい素子を複数段結合する構造を有し、対称関数機能を構成するデータとして、多値表現されたデータを用いる論理関数機能再構成可能集積回路であって、
入力ベクトルを１次元表示し、それぞれ区別した値を、入力状態数と呼ぶときに、
連続する３つの入力状態数を、１つのグループとするグループ化手段と；
上記グループのそれぞれの入力状態数であるときのしきい素子網の出力値と、しきい回路網中の２つのしきい素子の出力値とを対応付ける第１の対応付け手段と；
上記２つのしきい素子の出力値と、それぞれのしきい素子に入力される関数構成データの値とを対応付ける第２の対応付け手段と；
を有し、関数構成データの値を変更することによって、任意の対称関数を実現することを特徴とする論理関数機能再構成可能集積回路。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、集積回路製造後であっても、論理関数機能を再構成することが可能である集積回路に係り、特に、論理関数の再構成を可能にする可変論理部として、しきい素子回路網を使用する集積回路において、素子数の低減方法とその方法を実現する回路の構成とに関するものである。
【０００２】
【従来の技術】
デバイス製造後に論理関数機能の書き換えが可能であるＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）に代表される再構成可能デバイスを用いたリコンフィギュラブルコンピューテイングシステム（ＲＣＳ：Ｒｅｃｏｎｆｉｇｕｒａｂｌｅ  Ｃｏｍｐｕｔｉｎｇ  Ｓｙｓｔｅｍ）の研究開発が、文献１「末吉敏則、Ｒｅｃｏｎｆｉｇｕｒａｂｌｅ  Ｃｏｍｐｕｔｉｎｇ  Ｓｙｓｔｅｍの現状と課題−Ｃｏｍｐｕｔｅｒ  Ｅｖｏｌｕｔｉｏｎへ向けて−、信学技報、ＶＬＤ９６−７９，ＣＰＳＹ９６−９１，ｐｐ．１１１−１１８．１９９６−１２」に示すように行われている。
【０００３】
上記研究開発が進む様々なＲＣＳにおいて、論理関数機能の再構成を可能にしているデバイス部分は、論理関数機能の可変性を実現する可変論理部とメモリ回路とを基本回路し、これらの基本回路の構成についても、様々な提案がされている。
【０００４】
従来、再構成可能デバイスは、製品のプロトタイピングや多品種少量生産を必要とするＡＳＩＣの代替品として、主に利用されている。この利用方法においては、システムに組み込む前または、組み込んだ後に、一度、必要となる機能を構成することで十分である。
【０００５】
この要求に応える再構成可能デバイスの可変論理部における基本デバイスとしては、真理値表をＳＲＡＭ（Ｓｔａｔｉｃ−ＲＡＭ）等のメモリ回路に直接実装するＬＵＴ（Ｌｏｏｋ−Ｕｐ  Ｔａｂｌｅ）型、マルチプレクサのカスケード接続構造と接続切り替え素子であるアンチフィーズとを用いて論理関数を表現する方法を実装するマルチプレクサ（ＭＵＸ、Ｍｕｌｔｉｐｌｅｘｅｒ）型、論理関数をＡＮＤ−ＯＲの論理和形（積和形）等で表現し、論理関数機能を保持するＥＥＰＲＯＭ等を使用するＰＬＡ（Ｐｒｏｇｒａｍａｂｌｅ  Ｌｏｇｉｃ  Ａｒｒａｙ）型がある。
【０００６】
一方、可変論理部の性能と機能の向上とを目的として、上記のデバイスとは異なるしきい素子を用いた可変論理部も提案されている。
【０００７】
上記しきい素子を用いた可変論理部は、たとえば、文献２「青山一生、澤田宏、名古屋彰、中島和生、ニューロンＭＯＳによる対称関数回路の設計手法、信学技法、ＣＰＳＹ９９−９０，ｐｐ．４９−５６．１９９９−１１」、文献３「青山一生、澤田宏・名古屋彰・ニューロンＭＯＳによる論理関数回路の一設計手法、第１３回  回路とシステム（軽井沢）ワークショップ、Ａｐｒｉ１、２０００」に記載されている。文献２と文献３とには、ニューロンＭＯＳインバータを用いた回路レベルが記述されている。
【０００８】
ここでは、回路固有の特性ではなく、論理関数機能の可変性に焦点を当てるために、ニューロンＭＯＳインバータを、否定出力型しきい素子とみなし、ニューロンＭＯＳインバータを用いた可変論理部に関する従来技術を、論理素子レベルで説明する。
【０００９】
図１７は、２段論理フィードフォワード回路を示す図である。
【００１０】
上記文献２では、対称関数機能を持つ可変論理部を、図１７に示す２段論理フィードフォワード回路を用いて、自動設計する手法について記載している。
【００１１】
対称関数とは、入力変数の任意の置換に対して、出力値が不変である論理関数であり、算術演算や論理演算を行なう回路において多用されている。たとえば、ＡＮＤ、ＯＲ、ＮＡＮＤ、ＮＯＲ、Ｅｘｃｌｕｓｉｖｅ−ＯＲ（ＸＯＲ）、Ｅｘｃｌｕｓｉｖｅ−ＮＯＲ（ＸＮＯＲ）は、全て対称関数である。
【００１２】
ここでは、図１７に示す２段論理フィードフォワード回路が、対称関数機能を実現することを、１段目のしきい素子の動作と、２段目のしきい素子の動作とを用いて、説明する。
【００１３】
図１７に示すような否定出力型しきい素子を用いた回路に、論理的に「１」または「０」をとる入力変数Ｘ１〜Ｘｋが入力され、各入力変数に掛けられる重みを１とする。さらに、
【００１４】
【数１】
0003555110.tif 000002
【００１５】
が入力状態数ξであると定義する。
【００１６】
また、１段目の（ｋ＋１）個の否定出力型しきい素子の「入力閾値」ｔｈｉ、（１≦ｉ≦ｋ＋１）を、制御変数ｃｆｇｉによって、｛ｉ−（３／２）、ｉ−（１／２）｝のいずれか一方を選択できるとする。
【００１７】
ここでは、ｃｆｇｉが論理的１であるときに、小さい値、すなわちｔｈｉ＝ｉ−（３／２）であり、ｃｆｇｉが論理的０であるときに、大きい値、ｔｈｉ＝ｉ−（１／２）である。
【００１８】
ここで用いた「入力閾値」は、入力変数とその重みとの積和値からみた閾値のことである。たとえば、入力変数以外に重み１を持つ１つの制御変数ｃｆｇｉが、しきい素子に入力されている場合、このしきい素子の全ての入力値と重みとの積和値Ｓｕｍは、次の式（１）、式（２）で表される。
【００１９】
【数２】
0003555110.tif 000003
【００２０】
上記積和値Ｓｕｍが大小比較され、出力値が決定される場合における比較対象の値を、閾値と呼び、（Ｓｕｍ−ｃｆｇｉ）の比較対象の値を、「入力閾値」と呼ぶ。したがって、入力閾値は、制御変数の値によって変化する。
【００２１】
上記入力閾値を持つ場合、１段目のｉ番目の否定出力型しきい素子の出力Ｙｉは、式（３）になる。
【００２２】
【数３】
0003555110.tif 000004
【００２３】
２段目の１つの否定出力型しきい素子の閾値は、ｔｈ＝ｋ＋（１／２）に設定され、しきい素子に入力される値に対する重みｗは、１に設定されている。
【００２４】
図１８は、２段目の否定出力型しきい素子の入力状態数に対する入力の和の関係を表す図である。
【００２５】
図１８において、その横軸は、入力状態数であるξを示し、その縦軸は、入力変数と重みとの積
【００２６】
【数４】
0003555110.tif 000005
【００２７】
と、１段目の否定出力型しきい素子の出力値と重みとの積と
【００２８】
【数５】
0003555110.tif 000006
【００２９】
の和を表している。
【００３０】
２段目の否定出力型しきい素子は、縦軸の値を、閾値であるｋ＋（１／２）と比較し、その大小関係に応じて出力する。
【００３１】
図１８中、白抜き丸印（○）は、Ｙ（ξ＋１）＝０である場合、すなわち、図１７における、ｃｆｇ（ξ＋１）＝１である場合を表し、塗りつぶし丸印（●）は、Ｙ（ξ＋１）＝１である場合、すなわち、ｃｆｇ（ξ＋１）＝０である場合を表す。
【００３２】
図１８より、図１７中２段目の否定出力型しきい素子は、○印である場合、入力の和が閾値よりも小さいので、論理的１を出力し、●印である場合、入力の和が閾値より大きいので、論理的０を出力する。
【００３３】
入力状態数がξであるときにおける入出力関係式は、式（４）になる。ただし、２段目の否定出力型しきい素子の出力値をＺとした。
【００３４】
【数６】
0003555110.tif 000007
【００３５】
式（４）から判るように、図１７の回路では、ある１つの入力状態数に、ある１つの１段目の否定出力型しきい素子の出力値を対応させ、取り得る２つの出力値（１，０）を、その否定出力型しきい素子に入力される１つの制御変数によって選択可能にすることにより、ある入力状態数のときに、論理的１または論理的０を選択的に出力できるようにしている。ある入力状態数において選択的に出力値を決定できることは、任意の対称関数を実現できることを意味している。
【００３６】
この回路と方法とを用いる場合、入力状態数と、１段目の否定出力型しきい素子の数とを一致させる必要がある。したがって、任意のｋ入力変数対称関数を実現するためには、入力状態数と等しい（ｋ＋１）の否定出力型しきい素子が、１段目に必要である。
【００３７】
一方、上記文献３には、否定出力型しきい素子を用いて、任意の論理関数を実現するための２通りの回路構成と方法とが記載されている。
【００３８】
まず、論理関数を実現するには、対称関数の場合と異なり、入力変数の置換に対して、異なる出力値を与えられることが必要であり、このためには、入力状態として、対称関数を実現する際に用いた入力変数中の論理的１である変数の数である入力状態数ではなく、入力ベクトルを用いる必要があると述べられている。
【００３９】
入力ベクトルをしきい素子の入力状態として用いる典型的な方法として、入力変数に対する重みｗとして、２のべき乗を用いる方法が示されている。このときに、入力状態数は、論理関数用に新たに式（５）のように定義し直され、ｋ入力変数論理関数の入力状態数は、０〜２ｋ−１である２ｋ個の整数となる。
【００４０】
【数７】
0003555110.tif 000008
【００４１】
論理関数を実現する第１の方法は、上記任意の対称関数を実現する場合と同様の方法で、１段目に、入力状態数の数と同数である２ｋ個の否定出力型しきい素子を用い、そのそれぞれの出力値に、各入力状態数であるときにおける２段目の否定出力型しきい素子の出力値を対応させる方法である。
【００４２】
上記第１の方法は、入力変数の数に応じて指数関数的に増加する２ｋ個の否定出力型しきい素子を、１段目に必要とする。
【００４３】
図１９は、論理関数を実現する第２の方法を実現する回路構成を示す図である。
【００４４】
この第２の方法が、上記第１の方法と異なる点は、
（１）１段目の否定出力型しきい素子として、１つの制御信号によって、２つの入力閾値から１つの入力閾値を選択できる否定出力型しきい素子のみならず、２つの制御信号によって、４つの入力閾値から１つの入力閾値を選択できる否定出力型しきい素子を用いた点、
（２）１段目の否定出力型しきい素子の出力に乗算される重みｗｙｉとして、異なる値である｛１，２｝のどちらかを用いることができる点、
である。
【００４５】
これらの点によって、連続する４つの入力状態数を、３つの否定出力型しきい素子の出力値に対応付けることが可能になり・任意のｋ入力変数論理関数を実現する際に、１段目の否定出力型しきい素子として、（３／４）・２ｋ個の素子が必要になる。
【００４６】
上記従来例では、ｋ入力変数の任意の対称関数を実現するには、２段論理フィードフォワード型回路構成の１段目の否定出力型しきい素子を、（ｋ＋１）個必要であり、任意の論理関数を実現するには、少くとも（３／４）・２ｋ個が必要である。
【００４７】
回路規模の低減のためには、任意の対称関数と、任意の論理関数とを実現する際に使用する否定出力型しきい素子の数をできる限り少くする方法が望まれている。
【００４８】
【発明が解決しようとする課題】
従来の否定出力型しきい素子用いた２段論理フィードフォワード回路による可変論理部では、任意の対称関数を実現する際に、１段目に（ｋ＋１）個の否定出力型しきい素子が必要であり、論理関数を実現する際には、１段目に少なくとも（３／４）・２ｋ個の否定出力型しきい素子が必要である。
【００４９】
本発明は、しきい素子を用いた再構成可能デバイスの可変論理部において、使用する素子数を低減することができる方法とその方法を実現する回路を提供することを目的とするものである。
【００５０】
【課題を解決するための手段】
本発明は、しきい素子回路網に入力される入力ベクトルの１次元表示である入力状態数について、３つの入力状態数を１つのグループとし、各グループのそれぞれの入力状態数であるときにおけるしきい素子回路網の出力値と、２つのしきい素子の出力値とを対応付け、上記２つのしきい素子の出力値を上記しきい素子に入力する多値表現された関数機能構成データによって制御することによって、しきい素子回路網におけるしきい素子数を低減するものである。
【００５１】
従来技術である任意のｋ入力変数対称関数を実現する場合と、任意のｋ入力変数論理関数を実現する場合とについて、一般的である２段論理しきい素子回路網を用いて説明する。
【００５２】
任意のｋ入力変数対称関数を実現する場合、各入力状態数であるときにおける出力値と、２段論理回路の１段目の１つのしきい素子の出力値とを対応付けるので、入力状態数である（ｋ＋１）個のしきい素子が、１段目に必要であり、２段目のしきい素子をも含めると、少なくとも（ｋ＋２）個のしきい素子が必要である。
【００５３】
任意のｋ入力変数論理関数を実現する場合、上記任意の対称関数を実現する方法と同じ方法を採用すると、１段目のしきい素子として、入力状態数と同数の２ｋ個のしきい素子が必要になり、２段目のしきい素子をも含めると、少なくとも（２ｋ＋１）個のしきい素子が必要である。
【００５４】
また、入力状態数をグループ化する方法として、入力状態数が２のべき乗であるので、４＝２２個の入力状態数を１つのグループとし、各グループのそれぞれの入力状態数であるときにおけるしきい素子回路網の出力値と、１段目の３つのしきい素子の出力値とを対応付け、しきい素子数を、（２ｋ・３／４＋１）個に低減する方法が提案されている。
【００５５】
本発明は、入力状態数をグループ化する際に、３つの入力状態数を１つのグループにし、余りの発生を許容するものである。このようにしたので、本発明は、任意の数の入力状態数に適用することができる。
【００５６】
【発明の実施の形態および実施例】
［アウトライン］
本発明は、しきい素子回路網を用いた論理関数機能再構成可能デバイスに関して、任意の論理関数、または、任意の対称関数を実現する際に必要となるしきい素子数を低減する回路である。
【００５７】
本発明の第１の実施例は、任意の論理関数を実現する際に、素子数を低減する実施例であり、本発明の第２の実施例は、任意の対称関数を実現する際に、素子数を低減する実施例であり、第１、２の実施例ともに、しきい素子を用いた論理レベルで説明する。本発明の第３の実施例は、回路レベルで説明し、具体的な回路例を挙げる。
【００５８】
以下の説明では、ｉｎｔ［ｘ／ｙ］は、実数ｘ，ｙ（ｙ≠０）によるｘ／ｙの整数部分であり、ｍｏｄ［ｘ／ｙ］は、実数ｘ，ｙ（ｙ≠０）によるｘ／ｙの余りの整数である。なお、０≦ｍｏｄ［ｘ／ｙ］＜ｙである。
【００５９】
［第１の実施例］
第１の実施例は、任意の論理関数を実現する回路において、複数ビットによる多値表現を用い、しきい素子数を低減する方法と回路構成である。
【００６０】
従来方法は、約２ｋ個または約（３／４）・２ｋ個のしきい素子を必要とする。第１の実施例は、必要なしきい素子数を、約（２／３）・２ｋ個に低減することができ、正確には、必要なしきい素子数を、ｉｎｔ［（２／３）・２ｋ］＋ｍｏｄ［２ｋ／３］＋１個に低減することができる。
【００６１】
［第２の実施例］
第２の実施例は、任意の対称関数を実現する回路において、複数ビットによる多値表現を用い、しきい素子数を低減する方法と回路構成である。
【００６２】
従来方法は、（ｋ＋２）個のしきい素子を必要とする。第２の実施例は、必要なしきい素子数を、約（２／３）・（ｋ＋１）個に低減し、正確には、ｉｎｔ［（２／３）・（ｋ＋１）］＋ｍｏｄ［（ｋ＋１）／３］＋１個に低減する。
【００６３】
［第３の実施例］」
第３の実施例は、しきい素子の実装対象と、実回路レベルにおいて任意の論理関数とを、ｉｎｔ［（２／３）・２ｋ］＋ｍｏｄ［２ｋ／３］＋１個のしきい素子によって実現する回路である。この回路は、第２の実施例を参照することによって、任意の対称関数にも適用可能なように変更できる。
【００６４】
第３の実施例におけるしきい素子の具体的な実装対象は、複数の入力ゲート（信号が入力される端子）と、過渡的に電気的絶縁状態にすることが可能な端子とが、容量を介して直列接続され、上記電気的絶縁状態にすることが可能な端子の電位を入力値とする非線形素子によって構成されるしきい素子（たとえば、ニューロンＭＯＳインバータ）である。
【００６５】
上記実施例では、任意の論理関数または任意の対称関数を実現するために、制御変数の多値表現を行い、素子数を低減している。
【００６６】
多値の表現方法として、多ビット化（第２の実施例であり、これは空間上に分散された２値信号の組合せによって多値を表現したとも言える）、多電位を用いて信号の振幅上に多値を表現する方法や、Ｐｕｌｓｅ  Ｗｉｄｔｈ  Ｍｏｄｕｌａｔｉｏｎ（ＰＷＭ）を用い、２値信号を時間軸上に分散し、多値を表現する方法でも、上記と同様の効果を得ることができる。
【００６７】
また、時間軸上での展開は、ＰＷＭのみならず、Ｐｕｌｓｅ  Ｄｅｎｓｉｔｙ  Ｍｏｄｕｒａｔｉｏｎ（ＰＤＭ）を使った場合も、上記と同様である。
【００６８】
［第１の実施例］
［ｋ入力変数論理関数を実現するための回路構成に対する要求］
ｋ入力変数論理関数を実現するためには、ｋ個の入力変数で構成される２ｋ個の入力ベクトルが、しきい素子の入力としてみたときに、互いに異なることが必要であり、かつ、互いに区別された各入力ベクトルに対する出力値として、論理的「１」または「０」を選択的に与えることが可能であることが必要である。上記２つの要請を満たすときに、ｋ入力変数によって構成される２ｋ個の入力ベクトルに対する２ｑ個（ただし、ｑ＝２ｋ、つまり、２の２のｋ乗個、たとえばｋ＝３であれば２８＝２５６個）の論理関数を実現することができる。
【００６９】
しきい素子上で、２ｋ個の入力ベクトルを互いに区別する（入力ベクトルを識別可能にする）ために、各入力変数に対して異なる重みを用いる。
【００７０】
たとえば、入力ベクトル｛Ｘ１，Ｘ２，…，Ｘｉ，…，Ｘｋ｝に対する重みを｛ｗｘ１，ｗｘ２，…，ｗｘｉ，…，ｗｘｋ｝とすると、ｗｘｉ＝２ｉ−１とすることによって、入力ベクトルは識別可能になる。このときに、入力変数と重みとの積和値
【００７１】
【数８】
0003555110.tif 000009
【００７２】
は、式（６）を満たす整数値であり、この積和値を、入力状態数（ξ）と呼ぶ。
【００７３】
【数９】
0003555110.tif 000010
【００７４】
入力ベクトルを識別可能にする方法は、ｗｘｉ＝２ｉ−１とする方法だけに限定されない。たとえば、ｗｘｉ＝αｉ−１、（α＞２）とする方法でもよい。しかし、上記実施例においては、簡単化のために、ｗｘｉ＝２ｉ−１を用いる。
【００７５】
［任意の論理関数を実現する回路の一般的構成］
図１は、本発明の第１の実施例である集積回路（論理関数機能再構成可能集積回路１００）の構成を示すブロック図である。
【００７６】
集積回路１００は、ｋ入力変数の任意の論理関数を、｛ｉｎｔ［（２／３）・２ｋ］＋ｍｏｄ［２ｋ／３］｝＋１個の否定出力型しきい素子（以下、これを「しきい素子」という）によって実現する２段論理フィードフォワード型回路である。
【００７７】
集積回路１００は、１段目のｎ＝｛ｉｎｔ［（２／３）・２ｋ］＋ｍｏｄ［２ｋ／３］｝個のしきい素子ＴＨＧ１〜ＴＨＧｎと、２段目の１つのしきい素子ＴＨＧ０とによって構成されている。ただし、ｉｎｔ（２／３）・２ｋは、（２／３）・２ｋの整数部分を表し、ｍｏｄ［２ｋ／３］は、２ｋ／３の余りの整数を表す。
【００７８】
図１９に示す従来の２段論理フィードフォワード回路では、連続する４つの入力状態数に、３つの１段目のしきい素子の出力を対応付けることによって、任意のｋ入力変数論理関数を、（３／４）・２ｋ＋１個のしきい素子数を用いて実現できる。
【００７９】
一方、上記第１の実施例では、連続する３つの入力状態数に、２つの１段目のしきい素子の出力を対応付けることによって、任意の論理関数を実現する。ｋ入力変数の入力状態数の個数は、２ｋであり、３つの入力状態数を１つのグループにした場合、必ず余りが出る。
【００８０】
上記実施例は、余りが存在することを許容する方法である。この余りの入力状態数ｍｏｄ［２ｋ／３］に対して、それぞれ１段目のしきい素子の出力を対応付ける。このために、上記実施例におけるしきい素子数は、１段目のしきい素子数ｉｎｔ［（２／３）・２ｋ］＋ｍｏｄ［２ｋ／３］に、２段目のしきい素子数１を加えた値になる。しきい素子数は、ｍｏｄ［２ｋ／３］が１または２であるので、ｋ≦３では、従来方法と同数であるが、ｋ≧４では、上記実施例の方法によって、しきい素子数を低減することができる。
【００８１】
次に、各しきい素子の持つ特徴である入力と、「入力閾値」と、出力とについて一般的な部分について説明する。
【００８２】
ここで、「閾値」と「入力閾値」とは、従来技術で説明したのと同じ定義で用いる。１段目のしきい素子は、全ての入力変数と、入力閾値を制御するための制御変数とを入力とする。入力変数に乗算される重みについては、上記の通り、入力ベクトルを識別可能なように設定される。１段目のしきい素子には、２つの入力閾値から１つの入力閾値を選択できるものと、４つの入力閾値から１つの入力閾値を選択できるものとの２つの種類がある。
【００８３】
また、２つの種類のしきい素子は共に、１つの閾値を持つ否定出力型しきい素子であるので、入力の積和値が入力閾値を越えるまでは、論理的「１」を出力し、一旦入力閾値を越えると、論理的「０」を出力し、再び「１」を出力することはないという特徴を持つ。２段目のしきい素子は、全ての入力変数と、１段目の全てのしきい素子からの出力値とを入力とする。閾値は、予め決められた１つの値である。
【００８４】
次に、上記実施例における具体的回路構成を説明する前に、回路構成を分類する。
【００８５】
１段目のしきい素子数におけるｍｏｄ［２ｋ／３］は、１または２であるので、集積回路１００の具体的構成は、図２に示すｍｏｄ［２ｋ／３］＝１である場合と、図３に示すｍｏｄ［２ｋ／３］＝２である場合との２通りに分類される。
【００８６】
［ｍｏｄ［２ｋ／３］＝１の場合：Ａ］
図２は、ｍｏｄ［２ｋ／３］＝１である場合における回路構成を示す図である。
【００８７】
まず、初めに１段目のしきい素子の構成について述べ、次に、その動作について説明する。
【００８８】
１段目の全てのしきい素子の出力値と全ての入力変数とを入力とする２段目のしきい素子の構成を示し、最後に、２段目のしきい素子の動作に着目し、任意の論理関数を実現できることについて説明する。
【００８９】
［Ａ：１段目のしきい素子の構成］
今、ｍｏｄ［２ｋ／３］＝１であるから、２ｋ−１＝３・ｍとなる整数ｍが存在する。入力状態数ξに関して、値の小さい順に連続する３つの入力状態数を１組にすると、ξは、ｍ個の組と１つの入力状態数とに分けられる。連続する３つの入力状態数のそれぞれにおいて、集積回路１００の出力値として論理的「１」または「０」を、２つの１段目のしきい素子の出力値によって選択できるときに、ｍ個の組の入力状態数に対応付けられるしきい素子数は、２・ｍ個になる。
【００９０】
一方、１つの入力状態数における集積回路１００の出力値として、「１」と「０」とを選択できるように、１つのしきい素子の出力値を対応付ける。このときに、１段目のしきい素子数は、（２ｍ＋１）個になる。今、１段目のしきい素子を番号付けし、ＴＨＧ１，ＴＨＧ２，…，ＴＨＧ（２ｊ−１），ＴＨＧ（２ｊ），…，ＴＨＧ（２ｍ＋１）、（１≦ｊ≦ｍ）とする。
【００９１】
図４は、ｋ入力変数論理関数を実現する回路における１段目のしきい素子ＴＨＧ（２ｊ−１）を表す図である。
【００９２】
ＴＨＧ（２ｊ）も、ＴＨＧ（２ｊ−１）と同じ構成である。ＴＨＧ（２ｊ−１）には、全ての入力変数Ｘ１〜Ｘｋと、制御変数ｃｆｇ（２ｊ−１）１、ｃｆｇ（２ｊ−１）２とが入力される。また、入力値に乗算される重みは、入力変数Ｘｉに対して、ｗｘｉ＝２ｉ−１であり、制御変数ｃｆｇ（２ｊ−１）１に対する重みｗｃ（２ｊ−１）１を、ｗｃ（２ｊ−１）１＝２とし、ｃｆｇ（２ｊ−１）２に対する重みｗｃ（２ｊ−１）２を、ｗｃ（２ｊ−１）２＝１とする。また、閾値ｔｈ（２ｊ−１）は、ｔｈ（２ｊ−１）＝（３ｊ−１／２）であるとする。なお、出力値は、Ｙ（２ｊ−１）で表される。
【００９３】
図５は、１段目のしきい素子ＴＨＧ（２ｍ＋１）を表す図である。
【００９４】
しきい素子ＴＨＧ（２ｊ−１）と同じく、全ての入力変数を入力とし、それぞれに対する重みも同じである。しかし、制御変数が、ｃｆｇ（２ｍ＋１）１だけである点が、異なる。また、制御変数ｃｆｇ（２ｍ＋１）１に対する重みｗｃ（２ｍ＋１）１は、ｗｃ（２ｍ＋１）１＝１である。閾値ｔｈ（２ｍ＋１）は、ｔｈ（２ｍ＋１）＝（３ｍ＋１／２）に設定され、出力値は、Ｙ（２ｍ＋１）で表される。
【００９５】
［Ａ：１段目のしきい素子の動作］
次に、ＴＨＧ（２ｊ−１）とＴＨＧ（２ｍ＋１）との動作について順に説明する。
【００９６】
図４で示したＴＨＧ（２ｊ−１）に関して、入力状態数ξをＳｕｍｘと表現し直すと、全ての入力と、重みの積和値Ｓｕｍと、Ｓｕｍｘとの関係は、式（８）となる。
【００９７】
【数１０】
0003555110.tif 000011
【００９８】
式（８）において、（３ｊ−７／２）＜Ｓｕｍｘ＜（３ｊ−１／２）の場合は、ｃｆｇ（２ｊ−１）１とｃｆｇ（２ｊ−１）２との値に依存して出力値が決まる。
【００９９】
ここで、式（８）の関係を、ｊ＝１を具体例として説明する。
【０１００】
図６は、入力状態数ＳｕｍｘとＳｕｍとの関係を表す図である。
【０１０１】
縦軸のＳｕｍは、全ての入力が論理的「０」であるときの値である「０」と、全ての入力が論理的「１」であるときの値である「２ｋ＋２」との間の値を取る。閾値ｔｈ１は、（２＋１／２）であるので、Ｓｕｍｘが３以上の領域Ｂ１においては、式（８）に示すように、Ｓｕｍｘ＞（２＋１／２）を満たし、制御変数の値に依存せず、Ｓｕｍは、常に閾値を越え、出力値は、Ｙ１＝０となる。
【０１０２】
一方、Ｓｕｍｘ＝０、１、２である領域Ａ１では、制御変数の値に依存して、Ｓｕｍと閾値との関係は異なる。
【０１０３】
Ｓｕｍｘ＝０である場合は、ｃｆｇ１１とｃｆｇ１２との値が共に１である場合に、Ｓｕｍは閾値を越え、Ｓｕｍｘ＝１である場合は、ｃｆｇ１１の値が１であれば、Ｓｕｍ閾値を越え、Ｓｕｍｘ＝２の場合は、ｃｆｇ１１とｃｆｇ１２との少なくとも一方が１であれば、Ｓｕｍは閾値を越える。各入力状態数のときの２つの制御変数ｃｆｇ１１、ｃｆｇ１２の値と、Ｓｕｍおよび出力値Ｙ１との関係を、図２０にまとめてある。
【０１０４】
図７は、図２０に示す関係中の入力状態数Ｓｕｍｘと出力値Ｙ１との関係を示す図である。
【０１０５】
領域Ｂ１では、Ｓｕｍが閾値よりも大きいので、常に論理的「０」出力になる。一方、領域Ａ１では、図２０に示すように、４つの場合を取ることができる。
【０１０６】
図２０中の＃４は、図７の「ａ」に対応する。すなわち、制御変数の値の和だけで閾値を越えているので、如何なる入力状態数であっても、閾値を越えるため、出力値が０になる。図２０の＃３は、「ｂ」に対応し、＃２は、「ｃ」に対応し、＃１は、「ｄ」に対応する。
【０１０７】
上記のように、ｊ＝１である場合におけるしきい素子ＴＨＧ１は、４つの異なる場合を持つ。つまり、入力状態数Ｓｕｍｘが０以上で出力値が０になる場合と、Ｓｕｍｘ＝１で始めて出力値が０になる場合と、Ｓｕｍｘ＝２で始めて出力値が０になる場合と、Ｓｕｍｘ＝３で始めて出力値が０になる場合との４つの異なる場合を持つ。
【０１０８】
式（８）から判るように、上記具体的な例は、ＴＨＧ（２ｊ−１）、ＴＨＧ（２ｊ）の場合に容易に拡張できる。ＴＨＧ（２ｊ−１）とＴＨＧ（２ｊ）とについても、上記と同様に、始めて０を出力する入力状態数が４通り存在する。
【０１０９】
次に、図５に示すＴＨＧ（２ｍ＋１）の動作について、説明する。
【０１１０】
ＴＨＧ（２ｊ−１）の場合と同じく、全ての入力変数と、重みｗｃ（２ｍ＋１）１＝１が乗算された制御変数ｃｆｇ（２ｍ＋１）１とが入力であり、閾値ｔｈ（２ｍ＋１）が、ｔｈ（２ｍ＋１）＝（３ｍ＋１／２）＝（２ｋ−１／２）に設定されている。
【０１１１】
ｋ入力変数である場合、入力状態数Ｓｕｍｘの最大値は、２ｋ−１であるので、全ての入力変数が論理的「１」であっても、Ｓｕｍｘだけでは閾値を越えない。制御変数ｃｆｇ（２ｍ＋１）１が論理的「１」であるときに、初めてＳｕｍは、閾値を越える。Ｙ（２ｍ＋１）とＳｕｍとの関係は、式（９）で表される。
【０１１２】
【数１１】
0003555110.tif 000012
【０１１３】
以上、しきい素子ＴＨＧ（２ｍ＋１）の出力値Ｙ（２ｍ＋１）は、入力状態数（２ｋ−１）において、ｃｆｇ（２ｍ＋１）１の値に依存し、論理的「１」、「０」のいずれか一方を選択的に取ることを説明した。
【０１１４】
［Ａ：２段目のしきい素子の構成］
次に、２段目のしきい素子ＴＨＧ０の入力と閾値と出力とについて説明する。
【０１１５】
図２に示すように、ＴＨＧ０には、全ての入力変数と、全ての１段目のしきい素子の出力値とが入力される。入力変数の重みｗｘｉを、ｗｘｉ＝２ｉ−１とする。一方、１段目のしきい素子ＴＨＧ（２ｊ−１）の出力値Ｙ（２ｊ−１）の重み、ＴＨＧ（２ｊ）の出力値Ｙ（２ｊ）の重み、ＴＨＧ（２ｍ＋１）の出力値Ｙの重みを、それぞれｗｙ（２ｊ−１）、ｗｙ（２ｊ）、ｗｙ（２ｍ＋１）としたときに、ｗｙ（２ｊ−１）＝２、ｗｙ（２ｊ）＝１、ｗｙ（２ｍ＋１）＝１のように設定する。このときに、ＴＨＧ０に入力される値と、重みの積和値Ｓｕｍとは、入力状態数をＳｕｍｘとし、１段目のしきい素子の出力値と重みとの積和値をＳｕｍｙとし、出力値が、制御変数とは無関係に論理的１または０を取ることができると仮定すると、式（１０）に示すように、０以上（２ｋ＋１−１）以下の整数値となる。
【０１１６】
【数１２】
0003555110.tif 000013
【０１１７】
ここで、２段目のしきい素子ＴＨＧ０の閾値を、Ｓｕｍの取り得る値の最大値である（２ｋ＋１−１）の（１／２）である（２ｋ−（１／２））と設定する。
【０１１８】
［Ａ：２段目のしきい素子を用いた任意の論理関数実現の説明］
次に、図２に示す回路構成の２段目のしきい素子ＴＨＧ０の動作を説明し、最後に、任意の論理関数を実現できることについて説明する。
【０１１９】
図８は、２段目のしきい素子ＴＨＧ０において、入力される入力変数Ｘ１〜Ｘｋと、重みｗｘ１〜ｗｘｋとの積和値である入力状態数Ｓｕｍｘに対する全ての入力値に対する積和値（Ｓｕｍ＝Ｓｕｍｘ＋Ｓｕｍｙ）の関係を示す図である。
【０１２０】
入力状態数の小さい順に、３つの連続する入力状態数、たとえば、ｊ＝１に対応するＳｕｍｘ＝０、１、２に注目する。
【０１２１】
上記のように、１段目のしきい素子は、選択された１つの入力閾値を持つ否定出力のしきい関数を実現する素子であるので、一度論理的「０」を出力したしきい素子の出力値を、再び論理的「１」を出力するように設定することができない。ここで、この特徴を有するしきい素子が、論理的「０」を出力する最も小さい入力状態数を、「０出力状態数」と定義する。このときに、１段目のしきい素子ＴＨＧ１とＴＨＧ２とを除く全てのしきい素子の閾値は、３よりも大きくなるので、０出力状態数は３以上である。
【０１２２】
このために、入力状態数Ｓｕｍｘが０、１、２である場合、ＴＨＧ１、ＴＨＧ２を除く、全ての１段目のしきい素子は、論理的「１」を出力する。したがって、２段目のしきい素子ＴＨＧ０の入力の積和値の中で、１段目のしきい素子の出力による積和値Ｓｕｍｙは、式（１４）によって表され、全ての入力の積和値Ｓｕｍは、式（１５）で表される。また、式（１５）は、図８中の閾値近傍の階段型の実線で表されている。
【０１２３】
【数１３】
0003555110.tif 000014
【０１２４】
Ｓｕｍは、ＴＨＧ０の閾値である（２ｋ−１／２）と大小比較され、出力値が決定される。Ｓｕｍと（２ｋ−１／２）との差を、ΔＳｕｍとすると、ΔＳｕｍは、式（１６）で表される。
【０１２５】
【数１４】
0003555110.tif 000015
【０１２６】
今、ΔＳｕｍ＞０である場合を、ΔＳｕｍの論理値が「１」であると呼び、逆に、ΔＳｕｍ＜０である場合を、論理値が「０」であると呼ぶ。ΔＳｕｍの論理値が１であるときに、ＴＨＧ０の出力値Ｚは、Ｚ＝０になり、ΔＳｕｍの論理値が０であるときに、Ｚ＝１になる。式（１６）から、ΔＳｕｍの論理値を制御するのは、Ｙ１とＹ２との値であることが判る。
【０１２７】
ここで、Ｙ１、Ｙ２と、入力状態数Ｓｕｍｘとの関係について説明する。
【０１２８】
上記のように、１段目のしきい素子ＴＨＧ１とＴＨＧ２と０出力状態数は、０より小と、０と１との間と、１と２との間と、２と３との間との４つの区間のうちのいずれか１つに設定されることができる。
【０１２９】
図２１は、３つの入力状態数０、１、２を１組とした場合に実現できる８つのΔＳｕｍの状態を、２つのしきい素子の出力値Ｙ１、Ｙ２を制御することによって実現する方法を示す図である。
【０１３０】
図２１において、Ｙ１の０出力状態数が０である場合は、式（１６）におけるＳｕｍｘ＝０、１、２の３つの入力状態数の全てにおいて、Ｙ１＝０になり、Ｙ１の０出力状態数が２である場合は、Ｓｕｍｘ＝０、１であれば、Ｙ１＝１であり、Ｓｕｍｘ＝２であれば、Ｙ１＝０になることを意味している。他の場合も、これから類推できる。
【０１３１】
次に、図２１の＃５を用いてＴＨＧ０の動作の具体例を示す。
【０１３２】
図９は、図２１の＃５の場合を示す図である。
【０１３３】
Ｙ１の０出力状態数が１であり、Ｙ２の０出力状態数が２であるので、Ｓｕｍｘ＝０では、Ｙ１＝Ｙ２＝１であり、式（１６）から、ΔＳｕｍ＝１／２＞０になり、ΔＳｕｍの論理値は１になる。
【０１３４】
Ｓｕｍｘ＝１では、Ｙ１＝０、Ｙ２＝１であり、ΔＳｕｍ＝−１／２＜０になり、ΔＳｕｍの論理値は０になる。Ｓｕｍｘ＝２では、Ｙ１＝０、Ｙ２＝０であり、ΔＳｕｍ＝−１／２＜０になり、ΔＳｕｍの論理値は０になる。
【０１３５】
このように、入力状態数Ｓｕｍｘ＝０、１、２であるときのΔＳｕｍの論理値（１，０，０）を実現することができる。また、これは、ＴＨＧ０の出力値が、Ｓｕｍｘ＝０、１、２に対して、（０，１，１）であることを意味している。図２１で示した８つの状態は、３入力変数に対する任意の論理関数に対応しているとも言える。
【０１３６】
次に、上記ｊ＝１である場合の説明を、ｊ＝ｈとして一般化する。
【０１３７】
式（１８）の連続する３つの入力状態数Ｓｕｍｘに対して、上記説明と同様に、２つの１段目のしきい素子の出力Ｙ（２ｈ−１）とＹ（２ｈ）との値によって、選択的に任意のΔＳｕｍの論理値を設定できることについて、説明する。
【０１３８】
0003555110.tif 000016
このＳｕｍｘの領域では、１段目のしきい素子ＴＨＧ（２ｈ−１）とＴＨＧ（２ｈ）との２つの出力値Ｙ（２ｈ−１）、Ｙ（２ｈ）だけが、制御変数に依存し、他のしきい素子の出力値は、制御変数とは独立に決まることを示す。
【０１３９】
上記のように、ＴＨＧ（２ｈ−１）とＴＨＧ（２ｈ）との閾値は、それぞれｔｈ（２ｈ−１）＝（３ｈ−１／２）、ｔｈ（２ｈ）＝（３ｈ−１／２）である。このために、ＴＨＧ（２ｈ−１）とＴＨＧ（２ｈ）とに対する入力を、それぞれＳｕｍ（２ｈ−１）とＳｕｍ（２ｈ）にすると、式（７）と同じく、式（１８）、式（１９）で表される。
【０１４０】
Ｓｕｍ（２ｈ−１）＝２・ｃｆｇ（２ｈ−１）＋ｃｆｇ（２ｈ−１）＋Ｓｕｍｘ  …式（１８）
Ｓｕｍ（２ｈ）＝２・ｃｆｇ（２ｈ）１＋ｃｆｇ（２ｈ）２＋Ｓｕｍｘ  …式（１９）
０≦２・ｃｆｇ（２ｈ−１）＋ｃｆｇ（２ｈ−１）≦３であるので、式（１８）の領域のＳｕｍｘに対して、（Ｓｕｍ（２ｈ−１）−ｔｈ（２ｈ−１））は、ｃｆｇ（２ｈ−１）とｃｆｇ（２ｈ）との値に依存し、正の値、負の値のいずれか一方を選択的に取ることが可能である。これは、Ｓｕｍｘがこの領域にあるときに、ＴＨＧ（２ｈ−１）の出力値Ｙ（２ｈ−１）を制御変数の値に依存し、論理的１、０のいずれか一方にすることができることを意味する。また、Ｓｕｍ（２ｈ）−ｔｈ（２ｈ）に対しても、これと同じことが言える。
【０１４１】
一方、ｊ＜ｈのしきい素子ＴＨＧ（２ｊ−１）、ＴＨＧ（２ｊ）に対する入力は、Ｓｕｍｘが、式（１８）の領域では、Ｓｕｍｘ自身が閾値よりも大きいので、制御変数が如何なる値であっても、出力値は常に論理的０である。逆に、ｊ＞ｈのしきい素子では、Ｓｕｍｘが式（１８）の領域では、制御変数が如何なる値であっても、閾値を越えることがないので、出力値は、常に論理的に１である。
【０１４２】
以上、連続する３つの入力状態数の場合について説明した。
【０１４３】
Ｓｕｍｘが式（１８）の領域の３つの連続する入力状態数であるときに、しきい素子ＴＨＧ（２ｈ−１）とＴＨＧ（２ｈ）との２つのしきい素子の出力値だけが、すなわち、２つのしきい素子に入力される制御変数の組合せが、２段目のしきい素子ＴＨＧ０の入力と閾値（２ｋ−１／２）との大小関係を決めることになる。
【０１４４】
次に、ｍｏｄ［２ｋ／３］＝１の余りの１つの入力状態数について、２段目のしきい素子ＴＨＧ（２ｍ＋１）の入力値と重みの積和値とが、選択的に閾値の大小関係を変えることが可能であることについて説明する。
【０１４５】
最大入力状態数（２ｋ−１）を余りの１つとしたので、図２中のしきい素子ＴＨＧ（２ｍ＋１）以外の１段目のしきい素子ＴＨＧ１〜ＴＨＧ（２ｍ）の出力値は、全て論理的「０」である。また、Ｙ（２ｍ＋１）に重みとして乗算される値は、ｗｙ（２ｍ＋１）＝１であるから、入力状態数Ｓｕｍｘ＝２ｋ−１であるときのＳｕｍの値は、式（２０）になる。
【０１４６】
Ｓｕｍ＝Ｙ（２ｍ＋１）＋（２ｋ−１）  ……式（２０）
ＴＨＧ０の閾値は（２ｋ−１／２）であるので、式（２０）から判るように、しきい素子ＴＨＧ（２ｍ＋１）の出力値Ｙ（２ｍ＋１）に依存して、Ｓｕｍの値は、論理的１、０を選択的に取ることが可能である。
【０１４７】
以上、余りの入力状態数の場合にも、ＴＨＧ０の入力が、選択的に論理的１または０を取ることができることを説明した。
【０１４８】
上記方法と回路構成とによって、ｋ入力変数の際の任意の入力状態数のそれぞれにおいて、ＴＨＧ０の入力は、選択的に論理的１または０を取ることができる。これは、ＴＨＧ０に、選択的に論理的１または０に出力させることが可能であることを意味し、図２に示す回路構成を用いて、それぞれの入力状態数に対して、論理的１または０を出力させることができることを意味している。この機能によって、図２に示す回路は、任意のｋ入力変数論理関数を実現することが可能になる。
【０１４９】
上記実施例では、余りの入力状態数を、最大の入力状態数の場合として説明しているが、３つの入力状態数による組みを、他の入力状態から独立して取り扱うことが可能である点、式（２０）で表される１つの否定出力型しきい素子を用いた場合も、０出力状態数を設定することで他の入力状態への影響を排除できる点から、余りの入力状態数を、任意の入力状態数に設定することも可能である。
【０１５０】
［ｍｏｄ［２ｋ／３］＝２である場合：Ｂ］
次に、図３の回路図に示すｍｏｄ［２ｋ／３］＝２である場合について、ｍｏｄ［２ｋ／３］＝１である場合との相違点に焦点を当て説明する。
【０１５１】
入力状態数０から２ｋ−２までを、小さい順に連続する３つの入力状態数を１つの組にし、２ｋ−２＝３・ｍ、（１≦ｊ≦ｍ）とする。この中の１つの組において、８つの状態を２つのしきい素子を用いて選択的に実現する方法は、ｍｏｄ［２ｋ／３］で既に説明した方法と同じであり、上記の場合と異なる点は、余りの入力状態数（２ｋ−２，２ｋ−１）が２つある点である。
【０１５２】
上記実施例では、２つの余りの入力状態数に対して、ｍｏｄ［２ｋ／３］＝１の場合と同じく、他の入力状態数から独立して、選択的に論理的１または０を出力できるようにする。
【０１５３】
［Ｂ：１段目のしきい素子の構成と動作］
余りの入力状態数に対応する１段目のしきい素子を、ＴＨＧ（２ｍ＋１）とＴＨＧ（２ｍ＋１）とする。ＴＨＧ（２ｍ＋１）の構成は、図５に示すｍｏｄ［２ｋ／３］＝１である場合のしきい素子の構成と同じであるが、閾値ｔｈ（２ｍ＋１）＝（３・ｍ＋１／２）＝（２ｋ−３／２）である点は、注意を要する。ＴＨＧ（２ｍ＋２）の構成は、ＴＨＧ（２ｍ＋１）と類似であるが、制御変数としてｃｆｇ（２ｍ＋２）１を与える点と、閾値ｔｈ（２ｍ＋２）としてｔｈ（２ｍ＋２）＝（３・ｍ＋３／２）＝（２ｋ−１／２）を与える点と、出力値としてＹ（２ｍ＋２）を与える点とが異なる。
【０１５４】
２つのしきい素子の動作原理は、上記のｍｏｄ［２ｋ／３］＝１である場合のＴＨＧ（２ｍ＋１）と同様であり、ｍｏｄ［２ｋ／３］＝２である場合のＴＨＧ（２ｍ＋１）の出力値は、入力状態数Ｓｕｍｘ＝２ｋ−２であるときに、論理的１または０を、ｃｆｇ（２ｍ＋１）１の値によって選択的に取ることができ、ＴＨＧ（２ｍ＋２）の出力値は、入力状態数Ｓｕｍｘ＝２ｋ−１のときに、論理的１または０をｃｆｇ（２ｍ＋２）１の値によって選択的に取ることができる
［Ｂ：２段目のしきい素子の構成と動作］
ここで、ｍｏｄ［２ｋ／３］＝２である場合の２段目のしきい素子ＴＨＧ０の構成と動作とについて説明する。
【０１５５】
ＴＨＧ０には、全ての入力変数と重みとの積和値と、全ての１段目のしきい素子の出力値と重みとの積和値との和が入力される。入力変数と重みとの積和値に関しては、ｍｏｄ［２ｋ／３］＝１である場合と同じである。また、１段目のしきい素子ＴＨＧ１から、ＴＨＧ（２ｍ）の出力値と重みとの積和値についても、ｍｏｄ［２ｋ／３］＝１である場合と同様である。
【０１５６】
入力状態数Ｓｕｍｘ≦２ｋである場合は、ＴＨＧ１から、ＴＨＧ（２ｍ）のしきい素子によって、Ｓｕｍが制御され、ｍｏｄ［２ｋ／３］＝１である場合の動作から類推できる。また、Ｓｕｍｘ＝２ｋ＋１とＳｕｍｘ＝２ｋ＋２との場合のＳｕｍは、式（２１）で表される。
【０１５７】
Ｓｕｍ＝Ｙ（２ｍ＋１）＋Ｙ（２ｍ＋２）＋（２ｋ−２）  …式（２１）
Ｙ（２ｍ＋１）は、Ｓｕｍｘ＝２ｍ＋２＝２ｋ−１では、常に論理的０を出力し、逆に、Ｙ（２ｍ＋２）は、Ｓｕｍｘ＝２ｍ＋１＝２ｋ−２では、常に論理的１を出力するため、この２つの入力状態数におけるＳｕｍは、式（２２）で表される。
【０１５８】
【数１５】
0003555110.tif 000017
【０１５９】
閾値が（２ｋ−１／２）であるので、式（２２）から次のことが判る。Ｓｕｍｘ＝２ｍ＋１である場合、Ｙ（２ｍ＋１）＝１であれば、Ｓｕｍは閾値を越え、出力値Ｚ＝０になり、Ｙ（２ｍ＋１）＝０であれば、Ｓｕｍは閾値よりも小さく、出力値Ｚ＝１になる。Ｓｕｍｘ＝２ｍ＋２である場合、Ｙ（２ｍ＋２）＝１であれば、Ｓｕｍは閾値を越え、出力値Ｚ＝０になり、Ｙ（２ｍ＋２）＝０であれば、Ｓｕｍは閾値よりも小さく、出力値Ｚ＝１となる。このように、Ｙ（２ｍ＋１）、Ｙ（２ｍ＋２）の値に応じて出力値Ｚが決定される。
【０１６０】
以上、ｍｏｄ［２ｋ／３］＝２である場合の２段目のしきい素子の入出力特性について説明し、任意の入力状態数のときに、論理的「１」または「０」を選択可能であることを示した。
【０１６１】
［まとめ＝第１の実施例］
以上、上記実施例で説明した１段目のしきい素子と２段目のしきい素子とを用いた２段論理フィードフォワード回路構成で、｛ｉｎｔ［（２／３）・２ｋ］＋ｍｏｄ［２ｋ／３］＋１｝個の否定出力型しきい素子によって、任意のｋ入力変数論理関数を実現できる。
【０１６２】
図１０は、入力変数の数ｋに対する１段目のしきい素子数について、従来技術である、２ｋ個のしきい素子を用いる方法と、（３／４）・２ｋ個のしきい素子を用いる方法と、上記実施例の方法とを比較した図である。
【０１６３】
上記実施例では、最も少いしきい素子数によって、任意の論理関数を実現できる。
【０１６４】
［第２の実施例］
第１の実施例は、任意の論理関数を実現する回路である。
【０１６５】
第２の実施例は、任意の対称関数を実現する｛ｉｎｔ［（２／３）・（ｋ＋１）］＋ｍｏｄ［（ｋ＋１）／３］＋１｝個の否定出力型しきい素子を用いた２段論理フィードフォワード回路である。
【０１６６】
［ｋ入力変数対称関数を実現するための回路構成に対する要求］
対称関数は、入力変数の任意の置換に対して、出力値が不変である関数であるので、入力ベクトルの識別は、入力変数の中で論理的１である入力変数の数によって行うことができる。
【０１６７】
すなわち、入力状態数は、入力変数中の論理的１である変数の数を意味する。たとえば、（Ｘ１，Ｘ２，Ｘ３）の３入力変数の場合、（Ｘ１，Ｘ２，Ｘ３）＝（１、０、０）と、（Ｘ１，Ｘ２，Ｘ３）＝（０、１、０）とは、Ｘ１とＸ２とを置換することによって同じベクトルになるので、この２つの入力ベクトルは識別される必要はない。したがって、ｋ入力変数である場合、入力状態数は０からｋまでの（ｋ＋１）個の整数値になる。しきい素子上では、全ての入力変数に対する重みを等しく設定することによって、上記特性を実現することができる。上記実施例においては、入力変数に対する重みｗｘｉを全て等しくｗｘｉ＝１にする。
【０１６８】
［任意の対称関数実現する回路構成］
第１の実施例と同様に、連続する３つの入力状態数を１つの組にまとめると、ｍｏｄ［（ｋ＋１）／３］の値によって３つの場合、
（１）（ｋ＋１）＝３ｍ、
（２）（ｋ＋１）＝３ｍ＋１、
（３）（ｋ＋１）＝３ｍ＋２、
に分類することができる。
【０１６９】
上記（２）、（３）の場合は、それぞれ第１の実施例で、図２と図３とを用いて説明した場合と、入力変数に乗算される重みが異なる以外は、同様である。上記（１）の場合は、余りが存在しない場合であり、この場合の実現方法と回路構成とは、余りが存在する場合から容易に類推できる。
【０１７０】
［１段目のしきい素子の構成と動作］
第１の実施例で説明したように、１段目のしきい素子には、４つの連続する入力状態数を、選択的に０出力状態数に設定できるしきい素子と、ｍｏｄ［（ｋ＋１）／３］≠０の場合に用いる２つの入力状態数とのどちらか一方を選択的に０出力状態数に設定できるしきい素子の２種類がある。
【０１７１】
図１１は、連続する４つの入力状態数の中のいずれか１つの入力状態数を、選択的に０出力状態数とすることが可能なしきい素子の構成を表す図である。
【０１７２】
図４のしきい素子とは、入力変数に対する重みｗｘｉが異なる。図１１に示すしきい素子ＴＨＧ（２ｊ−１）は、（１≦ｊ≦ｍ）のときに用いられる。また、ＴＨＧ（２ｊ）も、ＴＨＧ（２ｊ−１）と同じ入力変数と重みｗｘｉであり、閾値も同じく、ｔｈ（２ｊ）＝（３ｊ−１／２）であり、２つの制御変数として、ｃｆｇ（２ｊ）１、ｃｆｇ（２ｊ）２を持ち、それぞれの重みが２と１とである。このしきい素子の動作については、第１の実施例で既に説明してある。
【０１７３】
図１２は、連続する２つの入力状態数のいずれか１つの入力状態数を、選択的に０出力状態数とすることが可能なしきい素子の構成を表す図である。
【０１７４】
図５に示すしきい素子とは、入力変数に対する重みｗｘｉが異なる。ｍｏｄ［（ｋ＋１）／３］＝２である場合は、図１２に示すＴＨＧ（２ｍ＋１）の他に、ＴＨＧ（２ｍ＋２）も用いられる。ＴＨＧ（２ｍ＋２）の構成は、図１２に示すＴＨＧ（２ｍ＋２）と類似であるが、制御変数としてｃｆｇ（２ｍ＋２）１を用い、その重みとしてｗｃ（２ｍ＋２）１＝１を用い、しきい値ｔｈ（２ｍ＋２）＝３ｍ＋３／２＝ｋ＋１／２として、出力値Ｙ（２ｍ＋２）を用いる。このしきい素子の動作については、第１の実施例で既に説明している。
【０１７５】
［２段目のしきい素子の構成と動作］
２段目のしきい素子の構成は、第１の実施例における２段目のしきい素子の構成と類似であるが、３つの入力状態数を１つのグループとして全入力状態数を分割するｍと入力変数ｋとの関係と、閾値とが、第１の実施例とは異なる。
【０１７６】
まず、入力変数ｋと（ｋ＋１）個存在する入力状態数を分割するｍとの関係について説明する。
【０１７７】
第１の実施例における関係は、ｉｎｔ［２ｋ／３］＝ｍであり、実施例におけるｍとｋとの関係は、上記の通り、ｉｎｔ［（ｋ＋１）／３］＝ｍである。
【０１７８】
次に、閾値について説明する。
【０１７９】
第１の実施例では、２段目のしきい素子に入力される値Ｓｕｍの最大値は、（２ｋ＋１−１）であり、閾値は、その１／２である（２ｋ−１／２）としている。
【０１８０】
一方、第２の実施例における２段目のしきい素子へ入力される値Ｓｕｍの最大値について、図１３を用いて説明する。
【０１８１】
図１３は、ｍｏｄ［（ｋ＋１）／３］＝１である場合における２段目のしきい素子ＴＨＧ０の構成を表す図である。
【０１８２】
２段目のしきい素子には、ｋ入力変数の全てが重み１を乗算され入力され、１段目のしきい素子の出力値にも２または１の重みが乗算され入力される。１段目のしきい素子ＴＨＧ（２ｊ−１）の出力値Ｙ（２ｊ−１）の重みには、重みｗｙ（２ｊ−１）＝２が乗算され、Ｙ（２ｊ）の重みには、重みｗｙ（２ｊ）＝１が乗算され、Ｙ（２ｍ＋１）には、重みｗｙ（２ｍ＋１）＝１が乗算される。ただし、１≦ｊ≦ｍである。したがって、ＴＨＧ０に入力される値Ｓｕｍの最大値は、ｋ＋（ｋ＋１）＝（２・ｋ＋１）である。第１の実施例と同様、最大値の１／２である（ｋ＋１／２）を閾値ｔｈ０とする。
【０１８３】
図１４は、任意のｋ入力変数対称関数を実現する２段論理フィードフォワード回路における入力状態数Ｓｕｍｘと、２段目のしきい素子の入力値と、重みの積和値Ｓｕｍとの関係を表す図である。
【０１８４】
図１４は、第１の実施例における図８に類似の図である。横軸は、入力状態数であるＳｕｍｘを示し、縦軸は、しきい素子に入力される値Ｓｕｍを表している。Ｓｕｍの最大値は、２ｋ＋１であり、閾値は、ｋ＋１／２である。図中、斜線部分は、Ｓｕｍにおける入力状態数Ｓｕｍｘの寄与分を表し、実線は、１段目のしきい素子の出力値であって、かつ、制御変数から独立して決まる出力値に重みが乗算された値を表している。
【０１８５】
点線は、１段目のしきい素子の出力値において、その値が制御変数に依存して決まる場合のＳｕｍを表している。第１の実施例における図２０に示すものと同様に、ｊ＝１である場合の３つの入力状態数Ｓｕｍｘ＝０，１，２を例にとる。このときに、１段目のしきい素子の出力値Ｙ１とＹ２とに重みが乗算された値である２・Ｙ１とＹ２との２つの値の組合せによって、Ｓｕｍｘ＝０，１，２の各入力状態数においてＳｕｍと、閾値であるｋ＋１／２との大小関係を選択的に決定することができる。これと同様のことが、任意のｊにも適用できる。また、ｍｏｄ［（ｋ＋１）／３］≠０である場合も、第１の実施例と同様である。
【０１８６】
上記に示した、重みと閾値とを用いることによって、第１の実施例と同様の手法を適用することができ、任意の対称関数を実現することができる。
【０１８７】
［まとめ＝第２の実施例］
以上、第２の実施例で説明した１段目のしきい素子と、２段目のしきい素子とを用いた２段論理フィードフォワード回路構成で、｛ｉｎｔ［（２／３）・（ｋ＋１）］＋ｍｏｄ［（ｋ＋１）／３］＋１｝個の否定出力型しきい素子によって、任意のｋ入力変数対称関数を実現することができる。
【０１８８】
［第３の実施例］
第３の実施例は、第１の実施例と第２の実施例とで使用した否定出力型しきい素子を実装する実回路である。
【０１８９】
［しきい素子を実装する回路の一般的構成］
図１５は、図４に示す否定出力型しきい素子の回路図である。
【０１９０】
図４のｋ入力変数Ｘ１〜Ｘｋはそれぞれ、図１５における容量値Ｃｘ１＝１・α〜Ｃｘｋ＝２ｋ−１・αを持つ容量の一方の端子に、電位Ｖｘ１〜Ｖｘｋとして入力され、図４の制御変数ｃｆｇ（２ｊ−１）１、ｃｆｇ（２ｊ−１）２は、それぞれ、図１５における容量値Ｃｃ（２ｊ−１）１＝２・αと、Ｃｃ（２ｊ−１）２＝１・αとを持つ容量の一方の端子に、電位Ｖｃ（２ｊ−１）１とＶｃ（２ｊ−１）２として入力される。
【０１９１】
図４中の各入力に対する重みは、図１５中の容量値に対応している。また、図４中の閾値ｔｈ（２ｊ−１）を実現するために、図１５では、固定電位に一方の端子が接続されている容量を用いる。一方の端子が電源電位に接続されている容量値Ｃｖｄｄの容量と、グランド電位に接続されている容量値Ｃｇｎｄの容量とである。これらの容量の他方の端子は、それぞれ端子ｆｌｔｇに接続され、端子ｆｌｔｇはインバータ回路ＩＮＶの入力端子になる。
【０１９２】
図１５は、複数の容量の並列接続と、その並列に接続された容量とインバータ回路の直列接続とによって構成された否定出力型しきい素子を表す図である。
【０１９３】
［しきい素子の実装に用いるインバータ回路としてＣＭ０Ｓインバータを用いる構成］
図１６は、図１５に示すインバータ回路ＩＮＶを、ＣＭ０Ｓインバータで置換した回路を示す図である。
【０１９４】
複数の容量の一方の端子は、入力端子として用いられ、他方の端子は、フローティングゲートであるｆｌｔｇに接続されている。このフローティングゲートｆｌｔｇは、ＰＭ０ＳＦＥＴとＮＭ０ＳＦＥＴとから成るＣＭ０Ｓインバータの入力ゲートでもある。
【０１９５】
［しきい素子回路の動作］
図１６に示す回路が、図４に示す否定出力型しきい素子と同じ機能であることを説明する。
【０１９６】
初めに、フローティングゲートｆｌｔｇは、金属またはＰｏｌｙ−Ｓｉのように金属に準ずる性質を持ち、フローティングゲートｆｌｔｇと入力端子との間の容量値の総和は、フローティングゲートｆｌｔｇとＰＭ０ＳＦＥＴまたはＮＭ０ＳＦＥＴとの間の容量の総和に比べて、非常に大きくなるように設定され、フローティングゲートの初期状態での電荷量は０、すなわち、電気的に中性であるとする。このときに、フローティングゲートｆｌｔｇの電位Ｙｆｌｔｇは、式（２３）で表される。
【０１９７】
【数１６】
0003555110.tif 000018
【０１９８】
式（２３）では、容量値は容量比で代替され、図４で示すしきい素子の重みと等しい。ここで、新たにＣｖｄｄ／α＝ｗｖｄｄ、Ｃｇｎｄ／α＝ｗｇｎｄとする。また、入力される電位Ｖｘｉと、Ｖｃ（２ｊ−１）ｉ電源電位Ｖｄｄまたはグランド電位０の２値のいずれか一方であるときに、式（２３）を電源電位で規格化することによって、ＶｘｉとＶｃ（２ｊ−１）ｉとは、それぞれ図４中のｘｉとｃｆｇ（２ｊ−１）ｉとに等しくなる。また、Ｖｆｌｔｇ／Ｖｄｄ＝Ｕｆｌｔｇとすることによって、Ｕｆｌｔｇは、式（２４）で表される。
【０１９９】
【数１７】
0003555110.tif 000019
【０２００】
式（２４）は、式（２５）のように変形できる。
【０２０１】
次に、ＣＭ０Ｓインバータが論理反転をするフローティングゲート電位をフローティングゲートしき閾値電位Ｖｆｔｈとし、電源電位で規格化した値をＵｆｔｈとする。ＰＭ０ＳＦＥＴとＮＭ０ＳＦＥＴとのゲート幅を調整することによって、Ｕｆｔｈ＝１／２にする。また、ＵｆｔｈとＵｆｌｔｇとインバータの出力値Ｕｙ（２ｊ−１）＝Ｖｙ（２ｊ−１）／Ｖｄｄとの関係は、式（２６）であるとする。ただし、Ｕｙ（２ｊ−１）＞１／２のときの値を、論理値を用いてＹ（２ｊ−１）＝１で表し、Ｕｙ（２ｊ−１）＜１／２のときの値を、論理値を用いてＹ（２ｊ−１）＝０で表す。
【０２０２】
【数１８】
0003555110.tif 000020
【０２０３】
式（２５）を用いて（Ｕｆｌｔｇ−Ｕｆｔｈ）を変形すると、式（２７）になる。
【０２０４】
Ｕｆｌｔｇ−Ｕｆｔｈ＝Ｓｕｍｘ＋２・ｃｆｇ（２ｊ−１）１＋ｃｆｇ（２ｊ−１）２−｛２ｋ−１＋１＋（ｗｇｎｄ−ｗｖｄｄ）／２｝  …式（２７）
式（２７）において、式（２８）が成立するように、ｗｖｄｄとｗｇｎｄを選択する。
【０２０５】
２ｋ−１＋１＋（ｗｇｎｄ−ｗｖｄｄ）／２＝３・ｊ−１／２  …式（２８）
このときに、式（２６）は、第１の実施例で示した式（８）と同じ（再び以下に示す）になり、図４で示したしきい素子の動作を表すことになる。
【０２０６】
【数１９】
0003555110.tif 000021
【０２０７】
以上、否定出力型しきい素子の実装回路の構成と動作について説明した。
【０２０８】
【発明の効果】
本発明によれば、しきい素子回路網を用いて任意の対称関数を実現することができるという効果を奏する。
【０２０９】
また、本発明によれば、任意の論理関数を実現する際に、３つの連続する入力状態数を、１つのグループにし、各グループの各入力状態数のときの出力値と回路中の２つのしきい素子の出力値とを対応付けることによって、各入力状態数のときの出力値とあるしきい素子の出力値とを対応付ける従来の方法と比較して、しきい素子回路網中に含まれるしきい素子数を約２／３に低減することができるという効果を奏する。
【図面の簡単な説明】
【図１】任意のｋ入力変数論理関数を実現する｛ｉｎｔ［２ｋ／３］＋ｍｏｄ［２ｋ／３］＋１｝個の否定出力型しきい素子で構成される２段論理フィードフォワード回路を表す図である。
【図２】図１の回路でｍｏｄ［２ｋ／３］＝１の場合を表す回路図である。
【図３】図１の回路でｍｏｄ［２ｋ／３］＝２の場合を表す回路図である。
【図４】任意のｋ入力変数論理関数を実現する図１の２段論理フィードフォワード回路における１段目の否定出力型しきい素子ＴＨＧ（２ｊ−１）、（１≦ｊ≦２ｋ−ｍｏｄ［２ｋ／３］）の構成を表す図である。
【図５】任意のｋ入力変数論理関数を実現する図２の２段論理フィードフォワード回路における１段目の否定出力型しきい素子ＴＨＧ（２ｍ＋１）、（３ｍ＝２ｋ−１）の構成を表す図である。
【図６】図２の回路における１段目の否定出力型しきい素子への入力値と重みの積和値Ｓｕｍと入力状態数Ｓｕｍｘとの関係を表す図である。
【図７】図２の回路における１段目の否定出力型しきい素子ＴＨＧ１について、２つの制御変数の値の組合せによって入力状態数Ｓｕｍｘに対する出力値Ｙ１の変化が異なることを表す図である。
【図８】図２の回路における２段目のしきい素子ＴＨＧ０において、入力される入力変数Ｘ１〜Ｘｋと重みｗｘ１〜ｗｘｋとの積和値である入力状態数Ｓｕｍｘに対する全ての入力値に対する積和値（Ｓｕｍ＝Ｓｕｍｘ＋Ｓｕｍｙ）の関係を示した図である。
【図９】図２の回路において、入力状態数が０、１、２において、Ｙ１とＹ２とについて初めて論理的０を出力する入力状態数（０出力状態数）がそれぞれ１と２である場合の２段目のしきい素子ＴＨＧ０への入力値と重みの積和値Ｓｕｍとしきい値の関係を表す図である。
【図１０】入力変数の数ｋに対する１段目のしきい素子数について、従来技術である、２ｋ個のしきい素子を用いる方法と、（３／４）・２ｋ個のしきい素子を用いる方法と、第１の実施例の方法とを比較した図である。
【図１１】任意のｋ入力変数対称関数を実現するしきい素子で構成された２段論理フィードフォワード回路における１段目のしきい素子中、連続する４つの入力状態数の中のいずれか１つの入力状態数を選択的に０出力状態数とすることが可能なしきい素子の構成を表す図である。
【図１２】任意のｋ入力変数対称関数を実現するしきい素子で構成された２段論理フィードフォワード回路における１段目のしきい素子中、連続する２つの入力状態数の中のいずれか１つの入力状態数を選択的に０出力状態数とすることが可能なしきい素子の構成を表す図である。
【図１３】ｍｏｄ［（ｋ＋１）／３］＝１の場合の任意のｋ入力変数対称関数を実現する２段論理フィードフォワード回路における２段目のしきい素子ＴＨＧ０の構成を表す図である。
【図１４】任意のｋ入力変数対称関数を実現する２段論理フィードフォワード回路における入力状態数Ｓｕｍｘと２段目のしきい素子の入力値と重みの積和値Ｓｕｍとの関係を表す図である。
【図１５】図４で示した否定出力型しきい素子の実装対象となる回路図である。
【図１６】図１５のインバータ回路をＣＭＯＳインバータによって実現した回路図である。
【図１７】従来の任意のｋ入力変数対称関数を実現する否定出力型しきい素子を用いた２段論理フィードフォワード回路図である。
【図１８】従来の任意のｋ入力変数対称関数を実現する否定出力型しきい素子を用いた２段論理フィードフォワード回路における２段目の否定出力型しきい素子への入力値と重みの積和値と入力状態数の関係を表す図である。
【図１９】従来の任意のｋ入力変数論理関数を実現する否定出力型しきい素子を用いた２段論理フィードフォワード回路の構成を表す図である。
【図２０】３つの入力状態数０、１、２を１組とした場合に実現できる８つのΔＳｕｍの状態を、２つのしきい素子の出力値Ｙ１、Ｙ２を制御することによって実現する方法を示す図である。
【図２１】入力状態数０、１、２において選択的にΔＳｕｍを決定するＹ１、Ｙ２との組み合わせを示す図である。
【符号の説明】
１００…論理関数機能再構成可能集積回路、
Ｓｕｍｘ…入力状態数、
Ｙ…出力値、
ｔｈ…閾値、
ｃｆｇ…制御変数、
ＴＨＧ…しきい素子。
【図１】
0003555110.tif 000022
【図２】
0003555110.tif 000023
【図３】
0003555110.tif 000024
【図４】
0003555110.tif 000025
【図５】
0003555110.tif 000026
【図６】
0003555110.tif 000027
【図７】
0003555110.tif 000028
【図８】
0003555110.tif 000029
【図９】
0003555110.tif 000030
【図１０】
0003555110.tif 000031
【図１１】
0003555110.tif 000032
【図１２】
0003555110.tif 000033
【図１３】
0003555110.tif 000034
【図１４】
0003555110.tif 000035
【図１５】
0003555110.tif 000036
【図１６】
0003555110.tif 000037
【図１７】
0003555110.tif 000038
【図１８】
0003555110.tif 000039
【図１９】
0003555110.tif 000040
【図２０】
0003555110.tif 000041
【図２１】
0003555110.tif 000042