(57)【特許請求の範囲】
【請求項１】
しきい素子を複数段結合しているしきい素子回路において、
上記しきい素子回路を構成する複数のしきい素子のうちの少なくとも１つのしきい素子が、複数の入力端子と容量結合している第１の端子と；
所定のスイッチを介して、上記第１の端子に接続され、第２の電位を具備する第２の端子と；
を有し、上記第１の端子が、インバータ回路の入力端子であり、上記複数の入力端子のうちの少なくとも１つの入力端子が、入力変数用の端子であり、上記入力変数用の端子から、２値または多値を与えることを特徴とする多値変数を用いる関数機能再構成可能集積回路。
【請求項２】
請求項１において、
上記スイッチは、ＭＯＳトランジスタ回路であることを特徴とする多値変数を用いる関数機能再構成可能集積回路。
【請求項３】
請求項１において、
上記第２の端子は、グランド端子または電源であることを特徴とする多値変数を用いる関数機能再構成可能集積回路。
【請求項４】
請求項１において、
上記インバータ回路は、ＭＯＳインバータ回路であることを特徴とする多値変数を用いる関数機能再構成可能集積回路。
【請求項５】
請求項１において、
上記しきい素子は、ニューロンＭＯＳインバータ回路のフローティングゲート電極に、上記スイッチが接続されている回路であることを特徴とする多値変数を用いる関数機能再構成可能集積回路。
【請求項６】
所定のスイッチに接続されている第１の端子と、上記第１の端子を入力端子とするインバータ回路とを有するしきい素子回路の入力変数を多値化する入力変数多値化方法において、
上記スイッチを導通させることによって、第１の端子と第２の端子とが接続状態にあるときに、複数の上記入力端子のうちの少なくとも１つの入力端子である入力変数用端子に第１の電位を与える段階と；
上記第２の端子から第１の端子へ電荷を注入する電荷注入段階と；
上記スイッチを遮断し、上記第１の端子を他の端子から過渡的に絶縁し、浮遊状態にすることによって、関数機能を実行する可能な状態にする関数機能実行状態段階と；
入力変数用端子に、所定の２値電位を与えることによって、入力変数を多値化する多値化段階と；
を有することを特徴とする入力変数多値化方法。
【請求項７】
請求項６において、
上記第１の電位は、多値電位または任意の電位であることを特徴とする入力変数多値化方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、しきい素子を有する関数機能再構成可能集積回路に係り、特に、２値入力変数を多値化する機能を有し、疑似的な多値変数を用いて関数処理を高効率に行う多値変数を用いる関数機能再構成可能集積回路および入力変数多値化方法に関するものである。
【０００２】
【従来の技術】
しきい素子を有する関数機能再構成可能集積回路は、集積回路を製造した後であっても、集積回路が有する論理関数機能を再構成することが可能である論理関数再構成可能デバイスの可変論理部の性能と機能との向上を目的として、提案されている。
【０００３】
たとえば、文献１「青山一生、澤田宏、名古屋彰、ニューロンＭＯＳによる論理関数回路の一設計手法、第１３回  回路とシステム（軽井沢）ワークショップ、Ａｐｒｉｌ、２０００」に、上記しきい素子を用いた可変論理部が開示されている。
【０００４】
上記文献１には、しきい素子回路網を用いて、任意の論理関数を実現する方法とその回路構成とが記載されている。
【０００５】
図１５は、従来の２段論理フィードフォワード型しきい素子回路５００を示す図である。
【０００６】
従来の２段論理フィードフォワード型しきい素子回路５００は、２段論理フィードフォワードしきい素子回路網に、構成データとして多値を用い、任意の２入力変数論理関数を実現する回路網であり、論理関数を構成するデータを多ビット表現することによって多値化し、これによって素子数を低減する。
【０００７】
文献１によれば、構成データを多値化しないときに、任意のｋ入力変数論理関数を、２段論理フィードフォワード回路で実現する場合、（２ｋ＋１）個のしきい素子が必要であるが、多値化することによって、（３／４）・２ｋ＋１個に素子数を低減することができる。
【０００８】
また、文献２「Ｋａｚｕｏ  Ａｏｙａｍａ，  Ｈｉｒｏｓｈｉ  Ｓａｗａｄａ，  Ａｋｉｒａ  Ｎａｇｏｙａ  ａｎｄ  Ｋａｚｕｏ  Ｎａｋａｊｉｍａ，  Ａ  Ｔｈｒｅｓｈｏｌｄ  Ｌｏｇｉｃ−Ｂａｓｅｄ  Ｒｅｃｏｎｆｉｇｕｒａｂｌｅ  Ｌｏｇｉｃ  Ｅｌｅｍｅｎｔ  ｗｉｔｈ  ａ  Ｎｅｗ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｔｅｃｈｎｏｌｏｇｙ，  ＦＰＬ２０００，  Ｌｅｃｔｕｒｅ  Ｎｏｔｅｓ  ｉｎ  Ｃｏｍｐｕｔｅｒ  Ｓｃｉｅｎｃｅ  １８９６，  Ｓｐｒｉｎｇｅｒ，  ｐｐ．６６５−６７４，  ２０００」に、上記しきい素子を用いた可変論理部が開示されている。
【０００９】
この文献２には、再構成可能デバイスの可変論理部として、しきい素子回路網を用いる場合に不可欠な機能である構成データの保持方法とその回路構成が記載されている。
【００１０】
図１６は、  従来の２段論理フィードフォワード型しきい素子回路６００を示す図である。
【００１１】
従来のしきい素子回路６００は、上記文献２に示されている任意の３入力変数対称関数を実現し、併せて、マルチプレクサ機能とメモリ機能と配線機能とを実現する
構成データを保持するために、ニューロンＭＯＳインバータのフローティングゲートが、スイッチ（文献２では、パストランジスタ）を介して、グランドに接続される回路構成を有する。構成データを保持する回路動作を説明するために、初めに、構成データを常時入力し続ける場合の回路動作を述べ、その後、構成データを保持する場合の回路動作について述べる。
【００１２】
まず、構成データを保持することなく常時入力し続ける回路の場合（第１の場合）は、各しきい素子が有する１つの構成データ入力端子に、論理的１（電位的にはＨｉｇｈ  Ｌｅｖｅｌ）または論理的０（電位的にはＬｏｗ  Ｌｅｖｅｌ）を加えることによって、上記しきい素子のフローティングゲート電位に、２つの状態を与えることができる。この２つのフローティングゲート電位によって、入力変数に対する２つのしきい関数ができる。
【００１３】
次に、構成データを保持する回路の場合（第２の場合）について説明する。
【００１４】
上記スイッチを介して、フローティングゲートをグランドに接続している期間（フローティングゲート初期化時）に、構成データ入力端子に、論理的１または論理的０に対応する電位を加える。このときに、フローティングゲート電位がグランドレベルに保たれたまま、フローティングゲートと構成データ入力端子との間の容量値と、印加された電位に応じた電荷量とが、上記フローティングゲートにグランドから注入される。この状態を保ったまま、スイッチを遮断する。これによって、注入された電荷量は、フローティングゲート中に残留し、初期化時に印加された電位と同じ電位が印加されたときに、フローティングゲート電位は、グランドレベルになる。
【００１５】
次に、構成データ入力端子を、論理的１である電源電位に接続する。この一連の操作によって、構成データは保持される。すなわち、フローティングゲート初期化時に、構成データ入力端子に論理的１を加えれば、上記スイッチ遮断時に、フローティングゲート電位は、第１の場合に構成データとして論理的０を加えた場合と等しくなり、逆に、フローティングゲート初期化時に、構成データ入力端子に論理的０を加えれば、上記スイッチ遮断時に、フローティングゲート電位は、第１の場合に構成データとして論理的１を加えた場合と等しい。
【００１６】
上記のように、２段論理フィードフォワード型しきい素子回路網において、任意のｋ入力変数論理関数を実現するために、構成データとして多値を用いる回路構成と方法については開示され、少なくとも（３／４）・２ｋ＋１個のしきい素子が必要である。
【００１７】
一方、構成データを保持する回路構成と方法とが、任意の対称関数を実現するしきい素子回路網について開示されている。
【００１８】
現在では、回路規模を低減するために、任意の対称関数と、任意の論理関数とを実現する際に使用するしきい素子の数を、できる限り少くする方法が望まれている。
【００１９】
【発明が解決しようとする課題】
上記のように、再構成可能デバイスにおいて、２段論理フィードフォワード型しきい素子回路網を、可変論理部とする場合、任意のｋ入力変数論理関数を実現するためには、（３／４）・２ｋ＋１個のしきい素子が必要である。
【００２０】
可変論理部の低面積化を推進すると同時に機能向上を図るためには、信号が入力されてから出力されるまでの信号伝搬遅延時間を大きくすることなく、また、複数の信号が同一論理素子に入力された場合に、信号の変化のタイミングのずれや各信号の伝搬遅延の差によって生ずる誤った出力値であるハザードの発生を増大させることなく、可変論理部を構成する素子数の低減と、面積コストの低減とが望まれている。
【００２１】
本発明は、論理関数機能を再構成可能な集積回路を、少ないしきい素子数によって構成することができる関数機能再構成可能集積回路および入力変数多値化方法を提供することを目的とするものである。
【００２２】
【課題を解決するための手段】
本発明は、再構成可能デバイスの可変論理部に適用されるしきい素子回路網について、論理関数機能を構成する構成データとして、多値データを用いると同時に、入力変数にも、多値データを用いることによって、しきい素子回路網におけるしきい素子数を低減するものである。
【００２３】
【発明の実施の形態および実施例】
［アウトライン］
本発明の第１の実施例は、構成データとして、２値電位の複数ビットによる多値化を行い、２値電位入力変数を疑似的に多値化するしきい素子回路網である。
【００２４】
具体的には、任意の２入力変数論理関数を実現する可変論理部を、従来よりも少ない３つのしきい素子で構成する。
【００２５】
本発明の第２の実施例は、構成データとして、多値電位による多値化を行い、２値電位入力変数を疑似的に多値化するしきい素子回路網である。
【００２６】
具体的には、任意の２入力変数論理関数を実現する可変論理部を、３つのしきい素子で構成する。第１の実施例に比べて、しきい素子に対する入力線数を低減すると同時に、可変論理部に含まれるしきい素子以外の素子数を低減することができ、面積コストを低減することができる。
【００２７】
第３の実施例は、第１、２の実施例と同様に、任意の２入力変数論理関数機能を実現できると同時に、任意の３入力変数対称関数機能を実現するものである。
【００２８】
具体的には、第１、２の実施例で示した回路において、２つの入力変数中の大きい重みが乗算されている変数について、その重みを２つに分割し、そのそれぞれを、２つの入力変数に新たに割り当てることによって、３入力変数対称関数を実現する。逆に、論理関数機能を実現する場合は、上記２つの重みに分割することによって生成した２つの入力変数に対して、同じ値を入力することによって、２入力変数論理関数を実現する。
【００２９】
［第１の実施例］
図１は、本発明の第１の実施例である２段論理フィードフォワード型しきい素子回路１００を示す図である。
【００３０】
２段論理フィードフォワード型しきい素子回路１００は、任意の２入力変数論理関数を実現するしきい素子回路である。
【００３１】
２段論理フィードフォワード型しきい素子回路１００は、２値を用いる多ビットによって、構成データを多値表現し、２値入力変数を疑似的に多値にする可変論理部を有し、入力変数を多値化する。
【００３２】
まず、初めに、２段論理フィードフォワード型しきい素子回路１００の全体の回路構成を述べ、また、入力変数を多値化する方法とその効果について述べ、さらに、２段目のしきい素子の具体的入力出力特性について説明し、そして、１段目の各しきい素子の回路構成と入出力特性とについて説明する。最後に、回路シミュレーション実験によって動作を確認したので、その結果について述べる。
【００３３】
（回路構成）
２段論理フィードフォワード型しきい素子回路１００において、１段目は、２つの否定出力型しきい素子ｐｉｎｖ１、ｐｉｎｖ２によって構成され、２段目は、１つの否定出力型しきい素子ｍｉｎｖによって構成されている。ここで、「否定出力型しきい素子」は、入力値とそれに乗算される重みとの積を、全ての入力変数に対して加算した積和結果と、しきい値とを比較し、しきい値よりも上記積和結果が大きければ、論理的０を出力し、逆に、しきい値よりも上記積和結果が小さければ、論理的１を出力するしきい素子である。
【００３４】
また、ここでは、「否定出力型しきい素子」は、複数の入力端子と、過渡的に浮遊状態とみなせるフローティングゲートとが容量結合し、上記フローティングゲートが、ＣＭＯＳインバータの入力ゲート電極となっている構造である。以降、「否定出力型しきい素子」を、単に「しきい素子」という。
【００３５】
各しきい素子ｐｉｎｖ１、ｐｉｎｖ２、ｐｉｎｖ３のフローティングゲートｆｇｐ１、ｆｇｐ２、ｆｇｍは、それぞれパストランジスタｐｆｓｗ１、ｐｆｓｗ２、ｍｆｓｗを介して、グランドに接続されている。上記パストランジスタｐｆｓｗ１、ｐｆｓｗ２、ｍｆｓｗを導通または遮断することによって、フローティングゲートｆｇｐ１、ｆｇｐ２、ｆｇｍ中の電荷量と電位とを操作することが可能になる。
【００３６】
また、１段目のしきい素子ｐｉｎｖ１、ｐｉｎｖ２と、２段目のしきい素子ｍｉｎｖとの間には、２段目のしきい素子ｍｉｎｖのフローティングゲートｆｇｍを初期化する際に用いるトランスミッションゲートｔｇｐ１、ｔｇｐ２があり、またそれぞれの出力端子には、片方の端子がグランド接続であるパストランジスタｐｔ１、ｐｔ２が接続されている。
【００３７】
１段目のしきい素子ｐｉｎｖ１、ｐｉｎｖ２の出力信号を波形整形するために、ｗｒｆ１、ｗｒｆ２が設けられている。また、入力変数用端子ｉｎｐｕｔ１［１］、ｉｎｐｕｔ１［２］と、２段目のしきい素子ｍｉｎｖのフローティングゲートｆｇｍとの間には、ハザードを抑制するために、遅延時間を調整する遅延回路ｄｌｙ１、ｄｌｙ２が挿入されている。さらに、２段目のしきい素子ｍｉｎｖの出力端子には、波形整形と高速出力するために、ｂｕｆｆｅｒが接続されている。
【００３８】
２段目のしきい素子ｍｉｎｖは、４つの入力端子と１つの出力端子とを有する。２段目のしきい素子ｍｉｎｖのフローティングゲートｆｇｍと、２つの入力変数用端子ｉｎｐｕｔ１［１］、ｉｎｐｕｔ１［２］と、１段目のしきい素子ｐｉｎｖ１、ｐｉｎｖ２の出力端子との間における容量値Ｃｍ１、Ｃｍ２、Ｃｍ３、Ｃｍ４の比は、Ｃｍ１：Ｃｍ２：Ｃｍ３：Ｃｍ４＝１：２：２：４に設定されている。
【００３９】
また、各しきい素子ｐｉｎｖ１、ｐｉｎｖ２、ｍｉｎｖについて、各々フローティングゲートｆｇｐ１、ｆｇｐ２、ｆｇｍを入力ゲート電極とするＣＭＯＳインバータの論理しきい値は、電源電位の１／２、すなわち、論理的１／２に設定されている。
【００４０】
１段目のしきい素子ｐｉｎｖ１、ｐｉｎｖ２は、それぞれ２つの入力変数入力端子を持ち、１段目のしきい素子ｐｉｎｖ１は、３つの構成データ入力端子を有し、１段目のしきい素子ｐｉｎｖ２は、２つの構成データ入力端子と１つの固定電位端子とを有する。構成データ端子としきい素子の入力端子との間には、それぞれトランスミッションゲートが接続され、また、片方の端子が電源電位に接続されているパストランジスタも、上記しきい素子の入力端子に接続されている。
【００４１】
なお、１段目のしきい素子に関しては、後で詳しく説明する。
【００４２】
（入力変数の多値化とその効果）
まず、ここで使用される用語の定義を説明する。文献１に準じ、「入力ベクトル」は、しきい素子に入力される入力変数ｘ１、ｘ２のベクトル表示（ｘ１，ｘ２）であり、「重みベクトル」は、それぞれに乗算される重みｗ１、ｗ２のベクトル表示である。
【００４３】
任意の論理関数を実現する場合、入力ベクトルが識別可能であることが、必要条件である。「入力ベクトルが識別可能である」とは、「入力ベクトルと重みベクトルとの内積の値が、全ての入力ベクトルについて、互いに異なる値である」ことである。また、「入力状態数Ｚ」は、入力ベクトルと重みベクトルとの内積値である。２つの入力変数が２値を取り、入力ベクトルが識別可能であるときに、２２＝４個の入力状態数が存在する。入力ベクトルを識別可能にする方法の１つに、重みをｗｉ＝２ｉ−１に設定する方法がある。以降の実施例ではこの方法を用いる。
【００４４】
２段論理フィードフォワード型しきい素子回路１００における２段目のしきい素子ｍｉｎｖに着目する。入力変数の値は、論理的１と０とに対応する電位の値であり、重みは、入力端子とフローティングゲートとの間の容量値であるＣｍ１、Ｃｍ２である。
【００４５】
したがって、Ｃｍ１：Ｃｍ２＝１：２に設定することによって、入力ベクトルは識別可能になる。この容量比は、１段目しきい素子において入力ベクトルを識別する際にも同様に適用可能である。
【００４６】
次に、規格化フローティングゲート電位と、規格化フローティングゲートしきい値電位とを定義する。
【００４７】
しきい素子の入力変数と重みとの積和値は、入力変数用端子ｉｎｐｕｔ１［１］、ｉｎｐｕｔ１［２］と、１段目のしきい素子ｐｉｎｖ１，ｐｉｎｖ２の出力端子とのそれぞれの電位と、各端子に対応する容量値Ｃｍ１〜Ｃｍ４との積を加算した結果である電荷量に相当する。
【００４８】
また、フローティングゲートｆｇｍとＣＭＯＳインバータとの間に存在する容量と、入力側の容量Ｃｍ１〜Ｃｍ４との間の容量分割によって、フローティングゲート電位が決まり、このフローティングゲート電位の値が、非線形素子であるＣＭＯＳインバータの入力値になる。このときに、入力変数と重みとの積和値が、しきい関数の入力となるためには、電荷量と、容量分割によって決まるフローティングゲート電位との間に、線形性があることが望ましい。
【００４９】
これは、容量Ｃｍ１〜Ｃｍ４の総和が、フローティングゲートｆｇｍとＣＭＯＳインバータとの間の容量比べて、非常に大きい場合に成り立つ。第１の実施例では、この条件を満足するように、容量値が設定されている。
【００５０】
この条件下では、全ての入力値が電源電位であるときに、フローティングゲート電位は、ほぼ電源電位であり、逆に、全ての入力値がグランド電位であるときに、フローティングゲート電位は、ほぼグランド電位になる。このフローティングゲート電位が取り得る最大電位によって、フローティングゲート電位を規格化した値を、「規格化フローティングゲートしきい値電位」と呼ぶ。また、ＣＭＯＳインバータが論理反転をする規格化フローティングゲート電位のことを、「規格化フローティングゲート電位」と呼ぶ。
【００５１】
次に、上記実施例において、入力変数を疑似的に多値化する方法について説明する。
【００５２】
２値入力変数を多値化する方法は、文献２に示されている構成データを保持する方法と、類似の方法を用いる。文献２に示す場合は、初期化時に、構成データのみを、論理的１または論理的０に設定し、実行時には、全ての構成データに、論理的１を与えることによって、その差分を構成データとして保持する。
【００５３】
この従来方法では、初期化時に、入力変数に論理的０を与えている。上記の構成データの場合と同様に、初期化時に入力変数としてある値を与えることによって、入力変数を多値化することができることを説明する。
【００５４】
２段論理フィードフォワード型しきい素子回路１００は、図１６に示す従来の回路（文献２に記載されている回路）と同じく、各しきい素子ｐｉｎｖ１、ｐｉｎｖ２、ｍｉｎｖのフローティングゲートｆｇｐ１、ｆｇｐ２、ｆｇｍにパストランジスタｐｆｓｗ１、ｐｆｓｗ２、ｍｆｓｗのドレイン端子が接続され、上記パストランジスタのソース端子が、グランドに接続される回路構成である。例として、図１に示す１段目のしきい素子ｐｉｎｖ１に着目する。
【００５５】
初期化時の入力変数用端子ｉｎｐｕｔ１［１］、ｉｎｐｕｔ１［２］の電位を、それぞれ、α１・Ｖｄｄ、α２・Ｖｄｄとし、全ての構成データ端子の電位を、Ｖｄｄとする。ここで、Ｖｄｄは、電源電位である。このときに、フローティングゲートｆｇｐ１中には、
【００５６】
【数１】
0003580543.tif 000002
【００５７】
の電荷量と、構成データ端子の電位によって誘起される電荷量とが注入される。
【００５８】
次に、パストランジスタｐｆｓｗ１を遮断し、論理機能実行時に回路状態を移行する。このときに、上記電荷量は、フローティングゲートｆｇｐ１中に保持されたままである。
【００５９】
したがって、論理実行時に、入力変数用端子ｉｎｐｕｔ１［１］、ｉｎｐｕｔ１［２］のそれぞれから、α１・Ｖｄｄ、α２・Ｖｄｄの電位を入力したときに、フローティングゲート電位は、グランド電位の０であり、一方、入力変数用端子ｉｎｐｕｔ１［１］とｉｎｐｕｔ１［２］とに、電位Ｖｄｄを与えたときのフローティングゲート電位は、初期化時に入力変数用端子ｉｎｐｕｔ１［１］とｉｎｐｕｔ１［２］とに０電位を与え、そして論理実行時に入力変数用端子ｉｎｐｕｔ１［１］に（１−α１）・Ｖｄｄ電位を、入力変数用端子ｉｎｐｕｔ１［２］に、（１−α２）・Ｖｄｄ電位を与えた場合のフローティングゲート電位と同じになる。上記のように、入力変数に与えた２値を、多値化することができる。
【００６０】
次に、上記方法を用いて入力変数を多値化した場合における効果について説明する。
【００６１】
図２は、２段論理フィードフォワード型しきい素子回路１００中の２段目のしきい素子ｍｉｎｖにおける入力状態数と規格化フローティングゲート電位Ｕｆｇとの関係を示す図である。
【００６２】
２入力変数論理関数の場合、入力状態数は、０、１、２、３の４つであるが、図２では、−１、−２の２つの入力状態数も記載してある。図２中、ｌｉｎｅ０は、１段目のしきい素子ｐｉｎｖ１、ｐｉｎｖ２の出力値が共に論理的１である場合を示し、ｌｉｎｅ１は、１段目のしきい素子ｐｉｎｖ１の出力値が論理的０であり、ｐｉｎｖ２の出力値が論理的１である場合を示し、ｌｉｎｅ２は、１段目のしきい素子ｐｉｎｖ１の出力値が論理的１であり、ｐｉｎｖ２の出力値が論理的０である場合を示し、ｌｉｎｅ３は、１段目のしきい素子ｐｉｎｖ１、ｐｉｎｖ２の出力値がともに論理的０である場合を示している。規格化フローティングゲート電位Ｕｆｔｈは、第１の実施例においては、Ｕｆｔｈ＝１／２である。
【００６３】
また、構成データとして多値を用いると仮定すると、１段目のしきい素子のしきい値は、任意の値に設定することができ、このしきい値設定の２段目のしきい素子に対する効果は、任意の状態数において出力値が論理的１から論理的０に１度だけ変化すること、すなわち、図２中の矢印として現れる。
【００６４】
一方、入力変数として２値を多値化した場合であり、初期化時の入力変数の下限を論理的０とし、上限を論理的１以下の任意の値に設定可能であると仮定すると、入力状態数Ｚ’と規格化フローティングゲート電位Ｕ’ｆｇ（Ｚ’）との関係は、２値を用いた場合の関係Ｕｆｇ（Ｚ）に対して、次の式（２）で表される。
【００６５】
Ｕ’ｆｇ（Ｚ’）＝Ｕｆｇ（Ｚ−ΔＺ）  ……式（１）
△Ｚ＝１・α１＋２・α２  ……式（２）
具体的な例を用いて、上記式（２）について説明する。
【００６６】
図２において、α１＝α２＝０の場合の入力状態数Ｚが、０≦Ｚ≦３と０≦Ｕｆｇ≦１とで囲まれるウィンドウを、「標準ウィンドウ」と呼ぶ。α１＝１、α２＝０であり、△Ｚ＝１とすると、規格化フローティングゲート電位Ｕ’ｆｇ（Ｚ’）は、入力状態数の負の向きに１だけ、標準ウィンドウを移動した場合に形成されるウィンドウで示される。
【００６７】
すなわち、図２における入力状態数−１を、新たに入力状態数０とし、入力状態数２を、新たに入力状態数３とするウィンドウで表される。この方法を、「ＭＷＭ」（Ｍｏｖａｂｌｅ  Ｗｉｎｄｏｗ  Ｍｅｔｈｏｄ）と呼ぶ。
【００６８】
ＭＷＭから判るように、初期化時の値によって、入力状態数の整数倍だけウィンドウを移動する以外は、電位マージンを低下させるだけで、論理値が変化しないので、有効ではないと言える。ウィンドウの移動に関しては、△Ｚのみが関係するので、α１、α２の配分は、規格化フローティングゲートＵｆｇと入力状態数との関係に影響しない。
【００６９】
すなわち、α１＝１、α２＝０と、α１＝１／２、α２＝１／４とは、Ｕ’ｆｇ（Ｚ’）に対して同じ意味を持つ。また、ウィンドウを（―１／２）の整数倍だけ移動することは、論理不定となるので、禁止される。
【００７０】
（２段目のしきい素子の入出力特性）
次に、２段論理フィードフォワード型しきい素子回路１００中の２段目のしきい素子ｍｉｎｖの入出力特性について説明する。
【００７１】
まず、初めに、ＭＷＭを使用しない場合の例を挙げ、次にＭＷＭを使用した場合の例を示す。
【００７２】
入力変数の値を互いに交換しても関数値が不変である対称関数の１つであるＸＯＲを、実現する。図２において、縦軸は論理的出力値ではなくＵｆｇであるため、Ｕｆｇ＞Ｕｆｔｈであるときに、関数値は論理的０であり、Ｕｆｇ＜Ｕｆｔｈであるときに、関数値は論理的１になる。
【００７３】
したがって、ＸＯＲを実現する場合、入力状態数が１、２において、Ｕｆｇ＜Ｕｆｔｈであり、入力状態数０、３において、Ｕｆｇ＞Ｕｆｔｈになるように、Ｕｆｇを作ればよい。これを実現するために、１段目のしきい素子ｐｉｎｖ１の出力値は、常に論理的１、すなわち図２中のＰ１ｆの変化にし、ｐｉｎｖ２の出力値は、図２中で入力状態数が０と１との間で論理的１から０に変化するＰ２ｃを構成データによって選択する。
【００７４】
上記と全く同じ構成データを用い、初期化時の入力変数として、α１＝１、α２＝０を用いる。これは、ＭＷＭを用いて、標準ウィンドウを、負の向きに１だけ移動することを意味している。これによって、図２の入力状態数−１が、入力状態数０の場合に変換される。この変換後の入力状態数と、規格化フローティング電位Ｕｆｇとの関係は、Ｕｆｇ＞Ｕｆｔｈを論理的１と表現し、Ｕｆｇ＜Ｕｆｔｈを論理的０と表現すると、入力状態数０、１、２、３のそれぞれに対して、論理的１、１、０、０となる。関数値としては、規格化フローティング電位Ｕｆｇの論理値の反転が出力されるので、入力状態数の昇順に、０、０、１、１となり、非対称関数の１つを表している。
【００７５】
以上、２段目のしきい素子の入出力特性について、ＭＷＭを使用しない場合と使用する場合とについて説明した。
【００７６】
（１段目のしきい素子の回路構成と入出力特性）
次に、１段目のしきい素子ｐｉｎｖ１の回路構成と、入出力特性とについて説明する。
【００７７】
図３は、第１の実施例において、１段目のしきい素子ｐｉｎｖ１とその入力部の回路構成とを示す回路図と、１段目のしきい素子ｐｉｎｖ１における入力状態数と、規格化フローティング電位Ｕｆｇとの関係を示す図である。
【００７８】
図３（１）は、上記実施例において、１段目のしきい素子ｐｉｎｖ１とその入力部の回路構成とを示す回路図である。
【００７９】
１段目のしきい素子ｐｉｎｖ１のフローティングゲートｆｇｐ１は、パストランジスタｐｆｓｗ１を介して、グランドに接続されている。パストランジスタｐｆｓｗ１は、ｃｔ１２から入力される制御信号によって、導通、遮断され、初期化時と論理機能実行時とを切替える。また、フローティングゲートｆｇｐ１と、入力変数用端子ｉｎｐｕｔ１［１］、ｉｎｐｕｔ１［２］との間の容量Ｃｐ１１１、Ｃｐ１１２の比を、入力ベクトルを識別可能にするために、１：２に設定する。
【００８０】
一方、構成データ入力用端子ｉｎｐｕｔ２［１１］、ｉｎｐｕｔ２［１２］、ｉｎｐｕｔ２［１３］端子は、それぞれ、トランスミッションゲートｔｇ１１、ｔｇ１２、ｔｇ１３を介して、フローティングゲートｆｇｐ１と容量結合する。それぞれの端子と、フローティングゲートｆｇｐ１との間の容量値Ｃｐ１２１、Ｃｐ１２２、Ｃｐ１２３の比を、１：２：３に設定し、Ｃｐ１１１とＣｐ１２１との比を、１：１に設定する。
【００８１】
また、各構成データ端子に接続されているトランスミッションゲートｔｇ１１、ｔｇ１２、ｔｇ１３と、パストランジスタｃｓｗ１１、ｃｓｗ１２、ｃｓｗ１３とは、ｃｔ１１端子から入力される制御信号によって、導通と遮断とを切替えられる。初期化時に、トランスミッションゲートｔｇ１１、ｔｇ１２、ｔｇ１３は、導通状態であり、パストランジスタｃｓｗ１１、ｃｓｗ１２、ｃｓｗ１３は、遮断され、論理機能実行時には、逆に、トランスミッションゲートが遮断され、パストランジスタが導通状態である。
【００８２】
図３（２）は、上記実施例において、１段目のしきい素子ｐｉｎｖ１における入力状態数と規格化フローティングゲート電位Ｕｆｇとの関係を示す図である。
【００８３】
ｌｉｎｅ０は、初期化時において全ての構成データが、論理的０の場合であり、規格化フローティングゲート電位Ｕｆｇは、入力状態数−１と−２との間で、Ｕｆｔｈと交わる。この交点の入力状態数を、入力しきい値と呼ぶ。ｌｉｎｅ１は、初期化時において、ｉｎｐｕｔ２［１１］端子のみが論理的１である場合を表し、入力しきい値が−１／２である。
【００８４】
ｌｉｎｅ２〜ｌｉｎｅ６は、３つの構成データ入力端子から入力される論理値の組み合わせで表すことができ、それぞれ、入力しきい値が１／２、３／２、５／２、７／２、９／２となる。Ｕｆｇが入力しきい値よりも大きい入力状態数において、１段目のしきい素子ｐｉｎｖ１の出力値は、論理的０であり、逆に、Ｕｆｇが入力しきい値よりも小さい入力状態数において、１段目のしきい素子ｐｉｎｖ１の出力値は、論理的１になる。たとえば、図３（２）に示すｌｉｎｅ２は、図２のＰ１ｃに対応する。
【００８５】
次に、上記実施例における１段目のしきい素子ｐｉｎｖ２について説明する。
【００８６】
図４は、第１の実施例において、１段目のしきい素子ｐｉｎｖ２とその入力部の回路構成とを示す回路図と、１段目のしきい素子ｐｉｎｖ２における入力状態数とＵｆｇとの関係を示す図である。
【００８７】
図４（１）は、上記実施例における１段目のしきい素子ｐｉｎｖ２と、その入力部の回路構成とを示す回路図である。
【００８８】
１段目のしきい素子ｐｉｎｖ２の回路構成と動作とは、１段目のしきい素子ｐｉｎｖ１と類似である。異なる点は、１段目のしきい素子ｐｉｎｖ２は、構成データ端子として、ｉｎｐｕｔ２［２１］、ｉｎｐｕｔ２［２２］の２つの端子を持つ点と、入力変数用端子と構成データ端子と以外に、固定電位用端子を１つ持つ点である。
【００８９】
この固定電位用端子には、初期化時に、論理的０を入力することができ、論理機能実行時に、論理的１を入力できるように、ｃｔｌ１端子から入力される制御信号の論理反転を入力する。また、図４（１）の各入力端子とフローティングゲートｆｇｐ２との間の容量値の比を、Ｃｖｄｄ：Ｃｐ２１１：Ｃｐ２１２：Ｃｐ２２１：Ｃｐ２２２＝１：１：２：１：２に設定する。
【００９０】
図４（２）は、上記実施例における１段目のしきい素子ｐｉｎｖ２における入力状態数と、Ｕｆｇとの関係を示す図である。
【００９１】
上記の容量比が、図４（２）に示すＵｆｇと入力状態数との関係に反映されている。ｌｉｎｅ４は、固定電位用端子から常時入力される電源電位の寄与によって、ｌｉｎｅ０は、全ての構成データ端子が初期化時において論理的０である場合であり、ｌｉｎｅ１は、初期化時において、ｉｎｐｎｔ２［２１］端子が論理的１であり、ｉｎｐｕｔ２［２２］端子が論理的０である場合であり、ｌｉｎｅ２は、ｌｉｎｅ１とは逆に、ｉｎｐｕｔ２［２１］端子のみが論理的０であり、ｉｎｐｕｔ２［２２］端子が論理的１である場合であり、ｌｉｎｅ３は、構成データ端子から入力される値が、論理的１である場合である。
【００９２】
ｌｉｎｅ０、ｌｉｎｅ１、ｌｉｎｅ２、ｌｉｎｅ３は、それぞれ、入力状態数（−１／２）、１／２、３／２、５／２を入力しきい値とする。たとえば、図４（２）のｌｉｎｅ０は、図２のＰ２ｂに対応する。
【００９３】
以上、１段目のしきい素子の回路構成と入出力関係とについて説明した。
【００９４】
（回路シミュレーション実験）
次に、２段論理フィードフォワード型しきい素子回路１００について行った回路シミュレーション実験の結果について説明する。
【００９５】
この回路シミュレーション実験では、２段論理フィードフォワード型しきい素子回路１００が、任意の論理関数を実現可能であることを確認した。
【００９６】
図５は、ある論理関数を実現する際に構成データ端子と入力変数用端子とに与える論理値を示す図である。
【００９７】
図６は、図５において論理名以外で示されている関数を、論理式に対応づける表を示す図である。
【００９８】
図５に記載されている関数名は、実現される論理関数を示し、そのうちで、対称関数は、論理名によって表示され、非対称関数は、図５に、Ｉ、ＩＩ、ＩＩＩ、……、ＶＩＩＩのように、数字で表示され、これら数字に対応する論理式を図６に示してある。また、図５において、「初期化時に各ｉｎｐｕｔ端子に与える論理値」の欄に記載されている数字は、各入力変数用端子ｉｎｐｕｔの数字部分を表している。たとえば、ｉｎｐｕｔ２［１１］端子は、「２［１１］」と表示されている。さらに、図５の入力変数用端子の論理値としては、｛０，１｝の２値のみが使用されているが、式（２）を満たすように、論理的１を別の入力変数端子に分配しても、同じ結果を得ることができる。
【００９９】
次に、図５の意味を説明する。
【０１００】
図５に示す関数の２つを例題として取り上げて、図５の意味を説明する。論理関数ＯＲを実現するためには、２段論理フィードフォワード型しきい素子回路１００の初期化時に、入力変数用端子ｉｎｐｕｔ２［１１］、ｉｎｐｕｔ２［１２］、ｉｎｐｕｔ２［１３］、ｉｎｐｕｔ２［２１］、ｉｎｐｕｔ２［２２］のそれぞれに、論理的０、１、０、１、０を与える。同時に、入力変数として、入力変数用端子ｉｎｐｕｔ１［１］と、入力変数用端子ｉｎｐｕｔ１［２］とに、それぞれ、論理的０、０を与える。
【０１０１】
次に、論理関数機能を実行するための回路状態に移行させるために、ｃｔ１１端子とｃｔ１２端子とから、論理的０を与え、構成データ入力端子に接続されているトランスミッションゲートと、各しきい素子のフローティングゲートとに接続されているパストランジスタを遮断し、構成データ端子に接続されるＰＭＯＳ型パストランジスタを導通させる。
【０１０２】
この操作によって、１段目のしきい素子ｐｉｎｖ１のＵｆｇと、入力状態数との関係は、図３（２）に示すｌｉｎｅ２になり、同様に、ｐｉｎｖ２については、図４（２）に示すｌｉｎｅ１になり、２段目のしきい素子ｍｉｎｖについては、図２に示すＰ１ｃとＰ２ｃが実現される。これによって、２段目のしきい素子ｍｉｎｖの出力値は、入力状態数０の時にのみ、論理的０になり、他の入力状態数においては、論理的１になり、したがってＯＲを実現することができる。
【０１０３】
次に、図５に示す関数名（ＶＩＩ）と図６とから、非対称関数Ｘ１を実現する場合について説明する。
【０１０４】
２段論理フィードフォワード型しきい素子回路１００では、Ｘ１を実現するためにＭＷＭを用いている。初期化時に、入力変数用端子ｉｎｐｕｔ２［１１］、ｉｎｐｕｔ２［１２］、ｉｎｐｕｔ２［１３］、ｉｎｐｕｔ２［２１］、ｉｎｐｕｔ２［２２］のそれぞれに、論理的１、０、０、０、１を与える。同時に、入力変数として、入力変数用端子ｉｎｐｕｔ１［１］、ｉｎｐｕｔ１［２］に、それぞれ、論理的１、０を与える。
【０１０５】
次に、上記と同じ操作によって、２段論理フィードフォワード型しきい素子回路１００を、論理機能実行時の回路状態に移行させる。このときに、１段目のしきい素子ｐｉｎｖ１のＵｆｇと入力状態数との関係は、図３（２）に示すｌｉｎｅ１で表され、同様に、ｐｉｎｖ２については、図４（２）に示すｌｉｎｅ２で表され、２段目のしきい素子ｍｉｎｖについては、図２に示すＰ１ｂとＰ２ｄで表される。また、初期化時に、入力変数用端子ｉｎｐｕｔ１［１］に論理的１を与えているので、図２においてＭＷＭを使用し、入力状態数−１を新たに入力状態数０とするウィンドウが、２段目のしきい素子ｍｉｎｖにおけるＵｆｇと入力状態数との関係になる。したがって、２段目のしきい素子ｍｉｎｖの出力値は、入力状態数０、１、２、３に対して、論理的０、１、０、１となり、Ｘ１を実現している。
【０１０６】
図７は、２段論理フィードフォワード型しきい素子回路１００に対して、過渡解析回路シミュレーションを行なった結果であり、ＭＷＭを使用しないで実現できる論理関数に対する結果を示す図であり、各端子電位と時刻と実現される関数との関係を示す図である。
【０１０７】
図８は、２段論理フィードフォワード型しきい素子回路１００に対して、過渡解析回路シミュレーションを行なった結果であり、ＭＷＭを用いて実現される論理関数に対する結果を示す図であり、各端子電位と時刻と実現される関数との関係を示す図である。
【０１０８】
２段論理フィードフォワード型しきい素子回路１００に、図５に示す構成データを入力し、回路シミュレーション実験を行ない、図７、図８に表される結果を得た。
【０１０９】
図７、８において、その縦軸は、各端子電位を示し、その横軸は、時刻を示している。
【０１１０】
図７、図８は、合計１６の時間区分を持つ。この１６の時間区分のそれぞれにおいて、１６種類存在する２入力変数論理関数の１つが実現される。各時間区分は、５００ｎｓｅｃ単位であり、初めの１００ｎｓｅｃを、初期化時間に当て、４００ｎｓｅｃの論理機能実行時間に、２入力変数の全ての組み合わせである４つについて出力値を求めている。
【０１１１】
各端子電位において、Ｈｉｇｈ  Ｌｅｖｅｌが論理的１を表し、Ｌｏｗ  Ｌｅｖｅｌが論理的０を表している。
【０１１２】
図７、図８とから、図５に示した論理値を入力することによって、所望の論理関数を実現できることが判る。
【０１１３】
（まとめ：第１の実施例）
上記のように、多値表現された構成データと、２値入力変数を疑似的に多値化した入力変数とを併用することによって、任意の２入力変数論理関数は、３個のしきい素子で構成されるしきい素子回路網によって実現される。この方法と回路構成は、２入力変数論理関数のみならず、任意の入力変数の論理関数に適用することが可能である。これによって、任意の論理関数を、非常に少ない素子数で実現することができる。
【０１１４】
［第２の実施例］
本発明の第２の実施例は、構成データとして多値電位を用いることによって、構成データを多値表現し、２値入力変数を疑似的に多値にする２段論理フィードフォワード型しきい素子回路網で構成される可変論理部の回路構成である。
【０１１５】
第２の実施例は、第１の実施例に比べて、入力部を簡単化することができ、周辺回路の素子数を低減することができる。
【０１１６】
まず、２段論理フィードフォワード型の全体の回路構成を述べ、次に、初期化時に用いる構成データと、それによって実現される関数とについて述べ、最後に、回路シミュレーション実験によって動作を確認したので、その結果について述べる。
【０１１７】
（回路構成）
図９は、本発明の第２の実施例である２段論理フィードフォワード型しきい素子回路２００を示す回路図である。
【０１１８】
２段論理フィードフォワード型しきい素子回路２００は、多値電位の構成データを用い、任意の２入力変数論理関数を実現する回路である。２段論理フィードフォワード型しきい素子回路２００は、２段論理フィードフォワード型しきい素子回路１００と類似であるので、その相違点のみについて、説明する。
【０１１９】
この相違点は、１段目のしきい素子ｐｉｎｖ１、ｐｉｎｖ２の構成データを入力する端子と、その周辺回路とである。構成データ入力端子は、１段目のしきい素子ｐｉｎｖ１、ｐｉｎｖ２に対して、それぞれ、１つである。構成データ入力端子は、トランスミッションゲートを介して、しきい素子のフローティングゲートｆｇｐ１、ｆｇｐ２と容量結合されるが、この容量結合する容量も、各１つである。
【０１２０】
１段目のしきい素子ｐｉｎｖ１について、入力変数用の２つの端子と、フローティングゲートｆｇｐ１との間の容量値は、Ｃｐ１１１とＣｐ１１２とであり、構成データ入力端子とフローティングゲートｆｇｐ１との間の容量値は、Ｃｐ１２である。容量比を、Ｃｐ１１１：Ｃｐ１１２：Ｃｐ１２＝１：２：６のように設定する。また、１段目のしきい素子ｐｉｎｖ２については、固定電位用端子とフローティングゲートｆｇｐ２との間の容量値を、Ｃｖｄｄとし、入力変数用端子ｉｎｐｕｔ１［１］、ｉｎｐｕｔ２［２］とフローティングゲートｆｇｐ２との間の容量値を、それぞれＣｐ２１１、Ｃｐ２１２とし、構成データ入力端子とフローティングゲートｆｇｐ２との間の容量値を、Ｃｐ２２とし、容量比を、Ｃｖｄｄ：Ｃｐ２１１：Ｃｐ２１１：Ｃｐ２２＝１：１：２：３に設定する。
【０１２１】
２段目のしきい素子ｍｉｎｖと、その他の周辺回路とについては、２段論理フィードフォワード型しきい素子回路１００と同じである。
【０１２２】
（回路シミュレーション実験）
次に、２段論理フィードフォワード型しきい素子回路２００について行った回路シミュレーション実験の結果について説明する。
【０１２３】
この回路シミュレーション実験では、２段論理フィードフォワード型しきい素子回路２００が、任意の論理関数を実現可能であることを確認した。
【０１２４】
図１０は、ある論理関数を実現する際に、構成データ端子と入力変数用端子とに与える論理値を示す図である。
【０１２５】
図１０において関数名が数字で表されている関数の意味は、図６に記載されている通りである。また、初期化時に、各入力変数用端子ｉｎｐｕｔ端子に与える規格化電位の欄に記載されている数字は、各入力変数用端子ｉｎｐｕｔ端子の数字部分を示している。図中の規格化電位は、構成データ端子に与える電位を、電源電位Ｖｄｄ（Ｈｉｇｈ  Ｌｅｖｅｌ）で、規格化した値である。
【０１２６】
次に、図１０の意味について説明する。
【０１２７】
図１０に示す関数の２つを例題として取り上げ、図１０の意味を説明する。論理関数ＡＮＤを実現するためには、２段論理フィードフォワード型しきい素子回路２００の初期化時に、入力変数用端子ｉｎｐｕｔ２［１］、ｉｎｐｕｔ２［２］に、それぞれ、規格化電位（２／３）、１を与える。同時に、入力変数として、入力変数用端子ｉｎｐｕｔ１［１］、ｉｎｐｕｔ１［２］に、それぞれ、グランド電位０、０を与える。
【０１２８】
次に、第１の実施例で示した操作と同じ操作によって、２段論理フィードフォワード型しきい素子回路２００を、論理機能実行時の回路状態に移行させる。このときに、１段目のしきい素子ｐｉｎｖ１のＵｆｇと入力状態数との関係は、図３（２）に示すｌｉｎｅ４で表され、同様に、１段目のしきい素子ｐｉｎｖ２については、図４（２）に示すｌｉｎｅ３で表され、２段目のしきい素子ｍｉｎｖにおいては、図２に示すＰ１ｅとＰ２ｅとで表される。２段目のしきい素子ｍｉｎｖの出力値は、Ｕｆｇの値の論理反転であるから、入力状態数０、１、２、３に対して、論理的０、０、０、１となり、２段論理フィードフォワード型しきい素子回路２００は、ＡＮＤを実現する。
【０１２９】
次に、図１０に示す関数名（ＶＩＩＩ）と図６とから、非対称関数である（−Ｘ１）を実現する場合について説明する。
【０１３０】
ただし、（−Ｘ１）は、Ｘ１の論理反転を表す。２段論理フィードフォワード型しきい素子回路２００では、（−Ｘ１）を実現するためにＭＷＭを用いる。初期化時に、入力変数用端子ｉｎｐｕｔ２［１］、ｉｎｐｕｔ２［２］のそれぞれに、規格化電位（１／６）、（２／３）を与える。同時に、入力変数として、入力変数用端子ｉｎｐｕｔ１［１］、ｉｎｐｕｔ１［２］に、それぞれ、規格化電位０、１を与える。
【０１３１】
次に、上記と同じ操作によって、２段論理フィードフォワード型しきい素子回路２００の回路を、論理機能実行時の回路状態に移行させる。このときに、１段目のしきい素子ｐｉｎｖ１のＵｆｇと入力状態数との関係は、図３（２）に示すｌｉｎｅ１で表され、同様に、１段目のしきい素子ｐｉｎｖ２については、図４（２）に示すｌｉｎｅ２で表され、２段目のしきい素子ｍｉｎｖについては、図２に示すＰ１ｂとＰ２ｄとで表される。
【０１３２】
また、初期化時に、入力変数用端子ｉｎｐｕｔ１［２］に、規格化電位１を与えているので、図２においてＭＷＭを使用し、入力状態数−２を新たに入力状態数０とするウィンドウが、２段目のしきい素子ｍｉｎｖにおけるＵｆｇと入力状態数の関係になる。したがって、２段目のしきい素子ｍｉｎｖのＵｆｇの論理値は、入力状態数０、１、２、３に対して、論理的０、１、０、１になるので、出力値としては、Ｕｆｇの論理値の論理反転である論理的１、０、１、０が得られ、（−Ｘ１）を実現している。
【０１３３】
図１１は、２段論理フィードフォワード型しきい素子回路２００に、過渡解析回路シミュレーションを行なった結果を示す図であり、ＭＷＭを使用しないで実現できる論理関数に対する結果であり、各端子電位と、時刻と、実現される関数との関係を表す図である。
【０１３４】
図１２は、２段論理フィードフォワード型しきい素子回路２００に、過渡解析回路シミュレーションを行なった結果を示す図であり、ＭＷＭを用いて実現される論理関数に対する結果であり、各端子電位と、時刻と、実現される関数との関係を表す図である。
【０１３５】
２段論理フィードフォワード型しきい素子回路２００に、図１０に示す構成データを入力し、回路シミュレーション実験を行なった結果、図１１と図１２とを得た。
【０１３６】
図１１、図１２において、その縦軸は、各端子電位を示し、その横軸は、時刻を示している。
【０１３７】
図１１、図１２と、図７、図８との相違点は、初期化時間における構成データ端子の電位である。図１１、図１２では、入力変数用端子ｉｎｐｕｔ２［１］、ｉｎｐｕｔ２［２］の初期化時の電位が、図１０に記載されている電位に従い、Ｈｉｇｈ  ＬｅｖｅｌとＬｏｗ  Ｌｅｖｅｌとの中間に設定されている場合もある。
【０１３８】
図１１、図１２のｏｕｔｐｕｔ端子の値が出力値であり、図１０に示した規格化電位を入力することによって、所望の論理関数を実現できることが判る。
【０１３９】
（まとめ：第２の実施例）
上記のように、多値電位によって表現された構成データと、２値入力変数を疑似的に多値化した入力変数とを併用することによって、任意の２入力変数論理関数は、３個のしきい素子で構成されるしきい素子回路網によって実現される。また、２段論理フィードフォワード型しきい素子回路２００は、２段論理フィードフォワード型しきい素子回路１００と比べ、構成データの入力に関係する周辺回路を削減することができ、少ない素子数でしかも低面積で、同じ機能を実現することができる。２段論理フィードフォワード型しきい素子回路２００は、２入力変数論理関数のみならず、任意の入力変数の論理関数に適用することができる。
【０１４０】
［第３の実施例］
本発明の第３の実施例は、複数ビットによって多値表現された構成データ電位を用いることができ、２値入力変数を疑似的に多値にする機能を有し、任意の２入力変数論理関数と任意の３入力変数対称関数とを実現可能な２段論理フィードフォワード型しきい素子回路網で構成される可変論理部の回路構成を、入力変数端子と各しきい素子のフローティングゲートとの間の容量値に着目し説明する。
【０１４１】
第３の実施例は、第１の実施例と類似の回路構成であるが、入力変数用端子の数が異なる。
【０１４２】
（回路構成）
図１３は、本発明の第３の実施例である２段論理フィードフォワード型しきい素子回路３００を示す回路図である。
【０１４３】
２段論理フィードフォワード型しきい素子回路３００は、任意の２入力変数論理関数と、任意の３入力変数対称関数とを実現する回路である。
【０１４４】
２段論理フィードフォワード型しきい素子回路３００は、２段論理フィードフォワード型しきい素子回路１００と類似であるので、その相違点のみについて、説明する。
【０１４５】
この相違点は、各１段目のしきい素子ｐｉｎｖ１、ｐｉｎｖ２、２段目のしきい素子ｍｉｎｖに対して、３つの入力変数用端子があり、フローティングゲートｆｇｍ容量結合する容量もそれぞれ３つある点である。また、各しきい素子のフローティングゲートと入力端子との間の容量の比を、２段目のしきい素子ｍｉｎｖについては、Ｃｍ１：Ｃｍ２：Ｃｍ３：Ｃｍ４：Ｃｍ５＝１：１：１：２：４とし、１段目のしきい素子ｐｉｎｖ１については、Ｃｐ１１１：Ｃｐ１１２：Ｃｐ１１３：Ｃｐ１２１：Ｃｐ１２２：Ｃｐ１２３＝１：１：１：１：２：３とし、１段目のしきい素子ｐｉｎｖ２については、Ｃｖｄｄ：Ｃｐ２１１：Ｃｐ２１２：Ｃｐ２１３：Ｃｐ２２１：Ｃｐ２２２＝１：１：１：１：２としてある。
【０１４６】
構成データに関する容量の比は、２段論理フィードフォワード型しきい素子回路１００と同じであるが、入力変数用端子の容量について、３入力変数に対する対称関数を実現するので、２段論理フィードフォワード型しきい素子回路１００における入力変数用端子ｉｎｐｕｔ１［２］とフローティングゲートとの間の容量値を、２分割し、それぞれ１：１にした。これによって、全ての入力変数に対し、上記容量値が等しくなり、対称関数を実現することができる。
【０１４７】
次に、入力変数に対する容量値を等しくすることによって、対称関数を実現できることを簡単に説明する。
【０１４８】
対称関数は、入力変数の値を任意の変数間で交換しても、関数値が不変である論理関数であり、ＡＮＤ、ＯＲ、ＸＯＲ等の論理関数は、対称関数の例である。この定義から、識別されるべき入力ベクトルは、論理関数の場合とは異なる。すなわち、（ｘ１，ｘ２，ｘ３）＝（１，０，０）と、（ｘ１，ｘ２，ｘ３）＝（０，０，１）とは、区別される必要はなく、入力変数において変数値が論理的１である変数の数によって、識別される。これは、入力変数ベクトルと、内積する重みベクトルの要素とを等しくすることによって、実現することができる。すなわち、容量値を等しくすることである。
【０１４９】
２段論理フィードフォワード型しきい素子回路１００と同様に、入力ベクトルと、重みベクトルの内積値とを、「入力状態数」と呼ぶと、上記容量値を要素とする重みベクトルによって、入力状態数は、０、１、２、３であり、２段論理フィードフォワード型しきい素子回路１００と同じになる。
【０１５０】
２段論理フィードフォワード型しきい素子回路３００において、２段目のしきい素子ｍｉｎｖ、１段目のしきい素子ｐｉｎｖ１、ｐｉｎｖ２のＵｆｇと、入力状態数との関係は、それぞれ、図２、図３（２）、図４（２）で示され、２段論理フィードフォワード型しきい素子回路１００の場合と同じである。
【０１５１】
図１４は、２段論理フィードフォワード型しきい素子回路３００において実現される３入力変数対称関数と初期化時に入力する構成データとの関係を示す図である。
【０１５２】
図１４において、良く知られている関数については、関数名の欄に、論理名で表し、その他は、数字で関数の違いを示してある。図１４に示すように、構成データを入力することによって、任意の３入力変数対称関数を実現することができる。
【０１５３】
また、２段論理フィードフォワード型しきい素子回路３００において、入力変数用端子ｉｎｐｕｔ１［２］とｉｎｐｕｔ１［３］とから、同じ変数値を入力することによって、２段論理フィードフォワード型しきい素子回路１００と全く同じ機能を有することが容易に判る。
【０１５４】
（まとめ：第３の実施例）
上記ように、２段論理フィードフォワード型しきい素子回路３００において、入力変数用端子を３つにし、それぞれの端子と各しきい素子との間の容量値を等しく設定することによって、任意の３人力変数対称関数を実現することができ、また、３つの入力変数用端子の中の２つの入力変数用端子に同じ変数を入力することによって、２段論理フィードフォワード型しきい素子回路１００と全く同じ機能を発揮ことができ、任意の２入力変数論理関数を実現することができる。
【０１５５】
上記実施例によれば、しきい素子のフローティングゲートを初期化する際に、入力変数端子から値を入力するので、論理機能実行時における２値入力変数を多値化することができる。
【０１５６】
この多値化機能を用いることによって、しきい素子における入力状態数に対する規格化フローティング電位を表す関数の数を、２値入力変数を用いた場合よりも、多くすることができる。
【０１５７】
このために、任意の論理関数を実現するしきい素子回路網に含まれるしきい素子数を低減することができる。
【０１５８】
また、構成データの多値表現を、複数ビットではなく、物理的な多値（たとえば、多値電位）を直接用いることによって、構成データの入力部の回路構成を簡単化することができ、周辺回路の素子数、構成データ入力端子数等を、低減することができる。
【０１５９】
さらに、任意の論理関数を実現するしきい素子回路網において、各しきい素子のフローティングゲートと、一部の入力変数用端子との間の容量値を分割し、この分割数に応じて、入力変数用端子を増加させることによって、任意の論理関数のみならず、論理関数を実現する場合よりも、多くの変数の数に対する任意の対称関数を実現することができる。
【０１６０】
これらの手法と回路構成によって、任意の論理関数または対称関数を、しきい素子回路網によって実現する際に、回路を構成する素子数を低減することができる。
【０１６１】
つまり、上記実施例は、しきい素子を複数段結合しているしきい素子回路において、上記しきい素子回路を構成する複数のしきい素子のうちの少なくとも１つのしきい素子が、複数の入力端子と容量結合している第１の端子と、所定のスイッチを介して、上記第１の端子に接続され、第２の電位を具備する第２の端子とを有し、上記第１の端子が、インバータ回路の入力端子であり、上記複数の入力端子のうちの少なくとも１つの入力端子が、入力変数用の端子であり、上記入力変数用の端子から、２値または多値を与える関数機能再構成可能集積回路の例である。
【０１６２】
また、上記実施例は、所定のスイッチに接続されている第１の端子と、上記第１の端子を入力端子とするインバータ回路とを有するしきい素子回路の入力変数を多値化する入力変数多値化方法において、上記スイッチを導通させることによって、第１の端子と第２の端子とが接続状態にあるときに、複数の上記入力端子のうちの少なくとも１つの入力端子である入力変数用端子に第１の電位を与える段階と、上記第２の端子から第１の端子へ電荷を注入する電荷注入段階と、上記スイッチを遮断し、上記第１の端子を他の端子から過渡的に絶縁し、浮遊状態にすることによって、関数機能を実行する可能な状態にする関数機能実行状態段階と、入力変数用端子に、所定の２値電位を与えることによって、入力変数を多値化する多値化段階とを有する入力変数多値化方法の例である。
【０１６３】
【発明の効果】
本発明によれば、論理関数機能を再構成可能な集積回路を、少ないしきい素子数によって構成することができるという効果を奏する。
【図面の簡単な説明】
【図１】本発明の第１の実施例である２段論理フィードフォワード型しきい素子回路１００を示す図である。
【図２】２段論理フィードフォワード型しきい素子回路１００中の２段目のしきい素子ｍｉｎｖにおける入力状態数と規格化フローティングゲート電位Ｕｆｇとの関係を示す図である。
【図３】第１の実施例において、１段目のしきい素子ｐｉｎｖ１とその入力部の回路構成とを示す回路図と、１段目のしきい素子ｐｉｎｖ１における入力状態数とＵｆｇとの関係を示す図である。
【図４】第１の実施例において、１段目のしきい素子ｐｉｎｖ２とその入力部の回路構成とを示す回路図と、１段目のしきい素子ｐｉｎｖ１における入力状態数とＵｆｇとの関係を示す図である。
【図５】ある論理関数を実現する際に構成データ端子と入力変数用端子とに与える論理値を示す図である。
【図６】図５において論理名以外で示されている関数を、論理式に対応づける表を示す図である。
【図７】２段論理フィードフォワード型しきい素子回路１００に対して、過渡解析回路シミュレーションを行なった結果であり、ＭＷＭを使用しないで実現できる論理関数に対する結果を示す図であり、各端子電位と時刻と実現される関数との関係を示す図である。
【図８】２段論理フィードフォワード型しきい素子回路１００に対して、過渡解析回路シミュレーションを行なった結果であり、ＭＷＭを用いて実現される論理関数に対する結果を示す図であり、各端子電位と時刻と実現される関数との関係を示す図である。
【図９】本発明の第２の実施例である２段論理フィードフォワード型しきい素子回路２００を示す回路図である。
【図１０】ある論理関数を実現する際に、構成データ端子と入力変数用端子とに与える論理値を示す図である。
【図１１】２段論理フィードフォワード型しきい素子回路２００に、過渡解析回路シミュレーションを行なった結果を示す図であり、ＭＷＭを使用しないで実現できる論理関数に対する結果であり、各端子電位と、時刻と、実現される関数との関係を表す図である。
【図１２】２段論理フィードフォワード型しきい素子回路２００に、過渡解析回路シミュレーションを行なった結果を示す図であり、ＭＷＭを用いて実現される論理関数に対する結果であり、各端子電位と、時刻と、実現される関数との関係を表す図である。
【図１３】本発明の第３の実施例である２段論理フィードフォワード型しきい素子回路３００を示す回路図である。
【図１４】２段論理フィードフォワード型しきい素子回路３００において実現される３入力変数対称関数と初期化時に入力する構成データとの関係を示す図である。
【図１５】従来の２段論理フィードフォワード型しきい素子回路５００を示す図である。
【図１６】従来の２段論理フィードフォワード型しきい素子回路６００を示す図である。
【符号の説明】
１００，２００，３００…２段論理フィードフォワード型しきい素子回路、
ｐｉｎｖ１、ｐｉｎｖ２…１段目のしきい素子、
ｍｉｎｖ…２段目のしきい素子、
Ｕｆｇ…規格化フローティング電位、
ｐｆｓｗ１…パストランジスタ、
ｆｇｐ１…フローティングゲート、
ｉｎｐｕｔ１［１］、ｉｎｐｕｔ１［２］…入力変数用端子。
【図１】
0003580543.tif 000003
【図２】
0003580543.tif 000004
【図３】
0003580543.tif 000005
【図４】
0003580543.tif 000006
【図５】
0003580543.tif 000007
【図６】
0003580543.tif 000008
【図７】
0003580543.tif 000009
【図８】
0003580543.tif 000010
【図９】
0003580543.tif 000011
【図１０】
0003580543.tif 000012
【図１１】
0003580543.tif 000013
【図１２】
0003580543.tif 000014
【図１３】
0003580543.tif 000015
【図１４】
0003580543.tif 000016
【図１５】
0003580543.tif 000017
【図１６】
0003580543.tif 000018