(57)【特許請求の範囲】
【請求項１】
２段論理しきい素子回路を有する関数機能再構成可能集積回路において、
２段目のしきい素子回路が、
入力変数を入力とする第１の端子と；
１段目のしきい素子回路の出力を入力する第２の端子と；
関数初期化期間と関数実行期間とに各々異なる所定の固定値を入力する第３の端子と；
を有し、関数初期化期間に上記第１の端子と上記第２の端子とに与える論理値によって、関数実行期間の入力状態の始点が決定されることを特徴とする関数機能再構成可能集積回路。
【請求項２】
請求項１において、
上記２段目のしきい素子回路は、
上記第１の端子、上記第２の端子および上記第３の端子が、過渡的に電気的に浮遊状態とみなせるフローティングゲートに容量結合されている構造と；
上記フローティングゲートが第４の端子の値によって制御されるスイッチを介して、所定の固定電位端子に接続されている構造と；
を有し、関数初期化期間に上記第１の端子と上記第２の端子とに与える電位によって、関数実行期間の入力状態の始点が決定されることを特徴とする関数機能再構成可能集積回路。
【請求項３】
請求項２において、
１段目のしきい素子回路の各々が、入力変数用端子と構成データ用端子とを有することを特徴とする関数機能再構成可能集積回路。
【請求項４】
請求項３記載の関数機能再構成可能集積回路に用いる関数機能構成方法であって
上記第４の端子から入力された所定の値によって関数初期化期間を開始し、
当該関数初期化期間に、上記構成データ用端子に与える所定の値によって、１段目のしきい素子回路のしきい値を決定し、
上記第１および上記第２の端子に与える所定の値によって、上記制御信号用端子から入力される所定の値によって、関数実行期間の入力状態の始点を決定し、関数初期化期間を終了し、関数実行期間に移行することを特徴とする関数機能構成方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、集積回路製造後であっても、関数機能を再構成することができ、しきい素子回路を構成要素とする集積回路に係わり、特に、入力変数に対する差分演算機能を用いることによって、低面積コスト化を実現する関数機能再構成可能集積回路に関するものである。
【０００２】
【従来の技術】
しきい素子を有する関数機能再構成可能集積回路は、集積回路を製造した後であっても、集積回路の有する論理関数機能を再構成することが可能である論理関数再構成可能デバイスの可変論理部の性能と機能との向上を目的として、提案されている。
【０００３】
特願２０００−８００２２「論理関数機能再構成可能な集積回路およびその設計方法」に、しきい素子回路を用いた可変論理部の設計方法と、その方法に従って設計された回路とが、開示されている。
【０００４】
図６は、特願２０００−８００２２に記載されている２段論理フィードフォワードしきい素子回路網に、構成データとして多値を用い、任意の２入力変数論理関数を実現する回路２００の構成を示す図である。
【０００５】
しきい素子回路２００の構成要素として、ニューロンＭＯＳトランジスタで構成されているインバータ回路（ｖＭＯＳインバータ）が用いられている。
【０００６】
上記従来例によれば、論理関数を構成するデータ（以下、「構成データ」という）を多値化しないときに、任意のｋ入力変数論理関数を、２段論理フィードフォワード回路で実現する場合、１段目のしきい素子回路として、２k個と１個の２段目のしきい素子回路を必要とするが、上記構成データを多値化することによって、１段目のしきい素子回路の数を、（３／４）・２k個に低減している。
【０００７】
ここで、入力変数の論理値と各入力変数に対する重みとの積を、全ての入力変数に対して和した結果である積和演算結果を、入力状態と呼ぶと、１段目のしきい素子回路の素子数の２kは、入力状態の数を表している。
【０００８】
図７は、図６に示すｖＭＯＳインバータを、しきい素子回路に置換した場合における回路を示す図である。
【０００９】
図７に示す回路は、連続する４つの入力状態数における回路の出力値Ｙを、３つの１段目のしきい素子回路の出力値（たとえば、Ｘf[1]、Ｘf[2]、Ｘf[3]）によって決定する。このようにすることによって、回路中のしきい素子回路の数が、（３／４）・２k＋１になる。
【００１０】
上記のように、２段論理フィードフォワード型しきい素子回路網において、任意のｋ入力変数論理関数を実現するために、構成データとして多値を用いる回路構成と方法とが、既に開示され、少なくとも（３／４）・２k＋１個のしきい素子が必要である。
【００１１】
【発明が解決しようとする課題】
上記のように、関数機能再構成可能集積回路を２段論理フィードフォワード型しきい素子回路によって構成する場合、任意のｋ入力変数論理関数を実現するためには、｛（３／４）・２k＋１｝個のしきい素子が必要である。
【００１２】
再構成可能集積回路の低面積化を推進すると同時に、機能向上を図るためには、回路の遅延時間を増大することなく、また、複数の信号が同一論理素子に入力される場合に発生する可能性のあるハザードをできるだけ抑制し、再構成可能集積回路を構成する素子数の低減と、面積コストの低減とを行うことが望まれている。
【００１３】
本発明は、論理関数機能を再構成することが可能な集積回路を、少ない素子数によって構成し、しかも、高速動作を期待することができる関数機能再構成可能集積回路および関数機能構成方法を提供することを目的とするものである。
【００１４】
【課題を解決するための手段】
本発明は、２段論理しきい素子回路を有する関数機能再構成可能集積回路において、２段目のしきい素子回路が、入力変数を入力とする第１の端子と、１段目のしきい素子回路の出力を入力する第２の端子と、関数初期化期間と関数実行期間とに各々異なる所定の固定値を入力する第３の端子とを有し、関数初期化期間に上記第１の端子と上記第２の端子とに与える論理値によって、関数実行期間の入力状態の始点が決定される関数機能再構成可能集積回路である。
【００１７】
【発明の実施の形態および実施例】
初めに、２段論理フィードフォワード型しきい素子回路によって構成される論理関数機能再構成可能集積回路の回路構成について説明する。
【００１８】
本回路構成は、２段目のしきい素子回路の入力端子として、入力変数と１段目のしきい素子回路の出力とに用いられる端子以外に、関数機能を実行する期間中に値が固定されている電位に接続される端子が存在する点に特徴がある。
【００１９】
つまり、本発明は、２段目のしきい素子回路の入力端子に、関数機能を実行する期間中に値が固定されている電位に接続される端子（図１に記載されている端子Ｃｓ０）を有するものである。
【００２０】
また、構成データを多ビット表現する際に、少ないビット数を用いる手法が取られているので、１段目の各しきい素子毎に、２つの構成データ入力端子が設けられている点に特徴がある。
【００２１】
次に、任意の論理関数機能を実現する方法を述べ、最後に、回路シミュレーションの結果を示す。
【００２２】
［回路構成：全体の構造］
図１は、本発明の一実施例である任意の２入力変数論理関数を実現する２段論理フィードフォワード型しきい素子回路を示す回路図である。
【００２３】
１段目は、２つの否定出力型しきい素子ＦＴＥ［１］、ＦＴＥ［２］によって構成され、２段目は、１つの否定出力型しきい素子ＳＴＥによって構成されている。
【００２４】
ここで、「否定出力型しきい素子」は、入力値とそれに乗算される重みとの積を、全ての入力変数に対して加算した積和結果と、しきい値とを比較し、しきい値よりも上記積和結果が大きければ、論理的０を出力し、逆に、しきい値よりも上記積和結果が小さければ、論理的１を出力するしきい素子である。
【００２５】
［回路構成：しきい素子の共通構造］
否定出力型しきい素子は、複数の入力端子と、過渡的に電気的に浮遊状態（以下、「フローティング状態」ともいう）とみなせるフローティングゲートとが容量結合し、上記フローティングゲートが、ＣＭＯＳインバータの入力ゲート電極になっている。
【００２６】
このＣＭＯＳインバータの論理しきい値（すなわち、インバータが論理反転するフローティングゲート電位）を、電源電位の（１／２）に設定する。
【００２７】
この論理しきい値と、以降に頻繁に現れる否定出力型しきい素子のしきい値とは、区別される。また、以降、否定出力型しきい素子を、単に「しきい素子」と略す。
【００２８】
各しきい素子のフローティングゲートは、パストランジスタを介して、グランドに接続されている。上記パストランジスタを、導通または遮断することによって、フローティングゲート中の電荷量と電位とを操作することが可能になる。ＣＭＯＳインバータの出力電位は、電源電位とグランド電位との中間電位を取るので、インバータ後段に、波形整形のための出力バッファが設けられている。
【００２９】
［回路構成：１段目のしきい素子の構造］
図２（１）と、図３（１）とは、１段目のしきい素子の回路構成を示す図である。
【００３０】
図２（１）に記載されている１段目のしきい素子ＦＴＥ［１］は、外部接続端子として、２つの入力変数用端子Ｉｎｐｕｔ１［１］、Ｉｎｐｕｔ１［２］と、構成データ用端子Ｉｎｐｕｔ２［１１］、Ｉｎｐｕｔ２［１２］と、関数初期化期間（以下、「フローティングゲート初期化期間」ともいう）と関数実行期間とを切替える制御信号入力用端子Ｃｔｌ１、Ｃｔｌ２と、出力端子ＯｕｔＦ１とを有する。
【００３１】
上記の他に、電源電位とグランド電位供給用端子とを有する。
【００３２】
また、図１に示す回路に対して、関数を構成するデータである構成データは、１段目のしきい素子単体にとって、しきい値を制御する変数を意味する。
【００３３】
入力変数用端子Ｉｎｐｕｔ１［１］、Ｉｎｐｕｔ１［２］は、それぞれ容量値Ｃf111、Ｃf112の容量を介して、フローティングゲートｆｇｆ１に接続されている。
【００３４】
一方、構成データ用端子Ｉｎｐｕｔ２［１１］、Ｉｎｐｕｔ２［１２］は、トランスミッションゲートＴｇ１１、Ｔｇ１２にそれぞれ接続されている。トランスミッションゲートＴｇ１１、Ｔｇ１２は、制御信号入力用端子Ｃｔｌ１端子からの信号によって、関数初期化期間に導通され、関数実行期間に遮断される。
【００３５】
トランスミッションゲートＴｇ１１の出力端子は、容量値Ｃf121の容量を介して、フローティングゲートｆｇｆ１に接続され、同様に、トランスミッションゲートＴｇ１２の出力端子は、容量値Ｃf122の容量を介して、フローティングゲートｆｇｆ１に接続されている。入力変数と構成データとのどちらでもない制御信号（すなわち、関数初期化期間と関数実行期間との切替え信号）の論理反転値が、制御信号入力用端子Ｃｔｌ１端子から、フローティングゲートｆｇｆ１と容量結合する容量値Ｃf100の容量に入力される。
【００３６】
入力変数に対する４つの入力状態を持ち、２値変数である２つの構成データ（１つの構成データの多値表現）によって、４つのしきい値を実現するために、上記容量値の比は、次の式（１）のように設定されている。
Ｃf100：Ｃf111：Ｃf112：Ｃf121：Ｃf122＝２：１：２：１：３…式（１）
一方、トランスミッションゲートＴｇ１１、Ｔｇ１２の出力端子は、それぞれＰＭＯＳパストランジスタＰｓｗ１１、Ｐｓｗ１２を介して、電源に接続されている。ＰＭＯＳパストランジスタＰｓｗ１１、Ｐｓｗ１２の導通、遮断は、トランスミッションゲートＴｇ１１、Ｔｇ１２の導通、遮断とは逆相であり、ＰＭＯＳパストランジスタＰｓｗ１１とＰｓｗ１２とは、関数初期化期間に、遮断され、関数実行期間に、導通される。すなわち、関数実行期間には、容量Ｃf121、Ｃf122に、電源電位が供給される。
【００３７】
次に、図３（１）に記載されている１段目のしきい素子ＦＴＥ［２］の回路構成について説明する。
【００３８】
１段目のしきい素子ＦＴＥ［２］は、１段目のしきい素子ＦＴＥ［１］と同じく外部接続端子として、２つの入力変数用端子Ｉｎｐｕｔ１［１］、Ｉｎｐｕｔ１［２］と、構成データ用端子Ｉｎｐｕｔ２［２１］、Ｉｎｐｕｔ２［２２］と、制御信号入力用端子Ｃｔｌ１、Ｃｔｌ２と、出力端子ＯｕｔＦ２とを持つ。上記の他に、電源電位とグランド電位との供給用端子をも持つ。
【００３９】
入力変数用端子Ｉｎｐｕｔ１［１］、Ｉｎｐｕｔ１［２］は、それぞれ容量値Ｃf211、Ｃf212の容量を介して、フローティングゲートｆｇｆ２に接続されている。
【００４０】
一方、構成データ用端子Ｉｎｐｕｔ２［２１］、Ｉｎｐｕｔ２［２２］は、それぞれ、トランスミッションゲートＴｇ２１、Ｔｇ２２に接続される。トランスミッションゲートＴｇ２１、Ｔｇ２２は、制御信号入力用端子Ｃｔｌ１端子からの信号によって、関数初期化期間に、導通され、関数実行期間に、遮断される。
【００４１】
トランスミッションゲートＴｇ２１の出力端子は、容量値Ｃf221の容量を介して、フローティングゲートｆｇｆ２に接続され、これと同様に、トランスミッションゲートＴｇ２２の出力端子は、容量値Ｃf222の容量を介して、ｆｇｆ２に接続されている。
【００４２】
回路構成において、１段目のしきい素子ＦＴＥ［２］と１段目のしきい素子ＦＴＥ［１］との大きな違いは、１段目のしきい素子ＦＴＥ［２］は、そのしきい値候補が、１段目のしきい素子ＦＴＥ［１］のしきい値候補とは異なるので、１段目のしきい素子ＦＴＥ［１］の容量Ｃf100を持たない点である。すなわち、入力信号とフローティングゲートｆｇｆ２とを結合する容量は、４つ、Ｃf211、Ｃf212、Ｃf221、Ｃf222のみである。
【００４３】
入力変数に対する４つの入力状態を持ち、２値変数である２つの構成データ（１つの構成データの多値表現）によって、４つのしきい値を実現するために、上記容量値の比は、次の式（２）のように設定される。
Ｃf211：Ｃf212：Ｃf221：Ｃf222＝１：２：１：３…式（２）
一方、トランスミッションゲートＴｇ２１、Ｔｇ２２の出力端子は、それぞれＰＭＯＳパストランジスタＰｓｗ２１、Ｐｓｗ２２を介して、電源に接続されている。
【００４４】
ＰＭＯＳパストランジスタＰｓｗ２１、Ｐｓｗ２２の導通、遮断は、トランスミッションゲートＴｇ２１、Ｔｇ２２の導通、遮断とは逆相であり、ＰＭＯＳパストランジスタＰｓｗ２１とＰｓｗ２２とは、関数初期化期間に、遮断され、関数実行期間に導通される。すなわち、関数実行期間には、容量Ｃf212、Ｃf222に、電源電位が供給される。
【００４５】
［回路構成：２段目のしきい素子の構造］
図１に記載の２段目のしきい素子ＳＴＥの回路構成における特徴は、入力変数と１段目のしきい素子の出力との他に、制御信号入力用端子Ｃｔｌ１端子から入力される制御信号の論理反転値を、入力として持つ点である。
【００４６】
２段目のしきい素子ＳＴＥは、２つの入力変数用端子Ｉｎｐｕｔ１［１］、Ｉｎｐｕｔ１［２］と、１段目のしきい素子ＦＴＥ［１］の出力端子ＯｕｔＦ１と、１段目のしきい素子ＦＴＥ［２］の出力端子ＯｕｔＦ２と、制御信号入力用端子Ｃｔｌ１端子、Ｃｔｌ２端子と、出力端子Ｏｕｔｐｕｔとを持つ。上記の他に、電源電位とグランド電位供給用端子とをも持つ。
【００４７】
入力変数用端子Ｉｎｐｕｔ１［１］、Ｉｎｐｕｔ１［２］は、それぞれ、遅延回路Ｄｌｙ１、Ｄｌｙ２に接続され、Ｄｌｙ１、Ｄｌｙ２の出力端子は、それぞれ容量値Ｃs1、Ｃs2の容量を介して、フローティングゲートｆｇｓに接続されている。
【００４８】
一方、１段目のしきい素子の出力端子ＯｕｔＦ１、ＯｕｔＦ２は、それぞれ、トランスミッションゲートＳｔｇ１、Ｓｔｇ２に接続される。トランスミッションゲートＳｔｇ１、Ｓｔｇ２は、制御信号入力用端子Ｃｔｌ１端子からの信号によって、関数初期化期間に、遮断され、関数実行期間に、導通される。
【００４９】
トランスミッションゲートＳｔｇ１の出力端子は、信号増幅し、電位波形を整形するバッファＷｒｆ１に入力され、これと同様に、トランスミッションゲートＳｔｇ２の出力端子は、バッファＷｒｆ２に入力される。
【００５０】
バッファＷｒｆ１、Ｗｒｆ２の出力端子は、それぞれ容量値Ｃs3、Ｃs4の容量に入力され、フローティングゲートｆｇｓに容量結合される。また、トランスミッションゲートＳｔｇ１、Ｓｔｇ２の出力端子は、それぞれＮＭＯＳパストランジスタＳｎｓｗ１、Ｓｎｓｗ２を介して、グランドに接続されている。これらのパストランジスタＳｎｓｗ１、Ｓｎｓｗ２は、トランスミッションゲートＳｔｇ１、Ｓｔｇ２の動作とは逆相の動作を行う。
【００５１】
上記トランスミッションゲートＳｔｇ１、Ｓｔｇ２、パストランジスタＳｎｓｗ１、Ｓｎｓｗ２は、２段目のしきい素子ＳＴＥのフローティングゲートｆｇｓの初期化のため、また、バッファＷｒｆ１、Ｗｒｆ２は、２段目のしきい素子ＳＴＥが関数実行期間に、１段目のしきい素子ＦＴＥ［１］とＦＴＥ［２］とから出力される中間電位を、電源電位とグランド電位との２値に増幅し、電位波形整形するものである。
【００５２】
したがって、これらの順序は、図１に示す以外の順序の構成であっても、同じ機能を実現できる。たとえば、バッファＷｒｆ１がインバータの２段構成である場合は、１つのインバータを、１段目のしきい素子ＦＴＥ［１］の出力端子ＯｕｔＦ１に接続し、インバータの直後に、トランスミッションゲートＳｔｇ１を接続し、パストランジスタＳｎｓｗ１を、グランドではなく、電源に接続されるパストランジスタであり、トランスミッションゲートＳｔｇ１とは逆相で動作するものに置換し、トランスミッションゲートＳｔｇ１の出力端子に接続し、トランスミッションゲートＳｔｇ１の出力端子をさらに、残る１つのインバータの入力端子に接続する構造がある。
【００５３】
Ｃｔｌ１端子から入力される信号の論理反転は、容量値Ｃs0の容量を介して、フローティングゲートｆｇｓに接続される。
【００５４】
上記５つの容量値の比は、次の式（３）のように設定される。
Ｃs0：Ｃs1：Ｃs2：Ｃs3：Ｃs4＝１：１：２：２：３…式（３）
［任意の論理関数を実現する方法］
［方法：用語の定義］
まず、初めに、ここで使用する用語の定義をする。
【００５５】
しきい素子のフローティングゲート電位を、最大フローティングゲート電位で規格化した値を、「規格化フローティングゲート電位Ｕfg」と定義する。「最大フローティングゲート電位」は、容量を介してフローティングゲートに接続される端子に入力される値が、全て電源電位であるときに、フローティングゲート電位が取る電位である。
【００５６】
フローティングゲートが入力ゲートとなるＣＭＯＳインバータの各端子と、フローティングゲートとの間の容量に比べて、入力側の容量の総和が非常に大きい場合、最大フローティングゲート電位は、電源電位によって近似することができる。また、フローティングゲートを入力ゲートとするインバータが論理反転をするフローティングゲート電位を、最大フローティングゲート電位によって規格化した値を「規格化フローティングゲートしきい値電位Ｕfth」と定義する。
【００５７】
本実施例では、上記近似が成り立つことを仮定している。
【００５８】
次に、規格化入力容量を定義する。
【００５９】
しきい素子において、容量を介して、フローティングゲートと結合される入力端子とフローティングゲートとの間の容量の値を「入力容量値」とし、これらの総和を「総入力容量値」とする。各入力容量値を総入力容量値で規格化した値を、「規格化入力容量値」と定義する。たとえば、２段目のしきい素子ＳＴＥの場合、入力容量値Ｃs0、Ｃs1、Ｃs2、Ｃs3、Ｃs4に対する規格化容量値は、総入力容量値Ｃssを、Ｃss＝Ｃs0＋Ｃs1＋Ｃs2＋Ｃs3＋Ｃs4と表すとき、それぞれＵcs0＝Ｃcs0／Ｃss、Ｕcs1＝Ｃcs1／Ｃss、Ｕcs2＝Ｃcs2／Ｃss、Ｕcs3＝Ｃcs3／Ｃss、Ｕcs4＝Ｃcs4／Ｃss、になる。
【００６０】
［方法：２段目のしきい素子ＳＴＥ］
図４は、２段目のしきい素子ＳＴＥにおける規格化フローティングゲート電位Ｕfgの入力状態に対する値を示す図である。
【００６１】
２つの入力変数に対する論理関数の入力状態は、０、１、２、３の４つである。４つの入力状態のそれぞれに対し、２段目のしきい素子ＳＴＥの出力値として、論理的１または０を選択可能であるときに、この回路は、任意の２入力変数論理関数を実現することができる。
【００６２】
すなわち、図４において、０、１、２、３の入力状態において、ＵfgがＵfth＝１／２よりも大きい、または小さい場合を、構成データによって選択することができる場合に、任意の２入力変数論理関数を実現できる。
【００６３】
上記のように、任意の２入力変数論理関数を実現可能であることを、２段目のしきい素子ＳＴＥにおける関数初期化期間における入力変数の設定方法と、１段目のしきい素子ＦＴＥ［１］、ＦＴＥ［２］のしきい値設定方法とに着目して説明する。
【００６４】
まず、関数初期化期間において、２段目のしきい素子ＳＴＥが行う動作について説明する。
【００６５】
関数初期化期間には、制御信号入力用端子Ｃｔｌ１端子、Ｃｔｌ２端子の信号を論理的１にする。これによって、パストランジスタＳｎｓｗ０が導通し、フローティングゲートｆｇｓがグランド電位に固定される。また、制御信号入力用端子Ｃｔｌ１端子からの信号によって、Ｃs0容量に、グランド電位が与えられ、Ｃs3容量、Ｃs4容量にも、グランド電位が与えられる。
【００６６】
２つの入力変数用端子に、共に、論理的０であるグランド電位を与えることによって、全ての入力容量に論理的０が与えられたときに、フローティングゲート電位が、グランド電位０になるように設定される。この状態で、制御信号入力用端子Ｃｔｌ１端子、Ｃｔｌ２端子を論理的０にし、パストランジスタＳｎｓｗ０を遮断し、１段目のしきい素子ＦＴＥ［１］、ＦＴＥ［２］と２段目のしきい素子ＳＴＥとを接続状態にし、Ｃs0容量に論理的１を与えることによって、２段目のしきい素子ＳＴＥの状態は、関数実行期間になる。
【００６７】
この関数実行期間には、Ｉｎｐｕｔ１［１］、Ｉｎｐｕｔ１［２］端子からの入力変数によって、入力状態は、０〜３の値を取る。
【００６８】
一方、関数初期化期間に、入力変数用端子Ｉｎｐｕｔ１［１］に論理的１を、Ｉｎｐｕｔ１［２］端子に論理的０を与えると、Ｉｎｐｕｔ１［１］端子に論理的１が与えられているときに、Ｕfg＝Ｕcs0になるので、入力状態は、図４に示す入力状態（−１）〜２の４つの入力状態を取ることになる。
【００６９】
さらに、関数初期化期間に、入力変数用端子Ｉｎｐｕｔ１［１］に論理的０を与え、Ｉｎｐｕｔ１［２］端子に論理的１を与えると、入力状態は、図４の入力状態（−２）〜１の４つの入力状態を取る。このように、関数初期化期間に、入力変数用端子に与える論理値によって、図４に示すＵfgの値を入力状態の軸に対して、変化させることを、Ｍｏｖａｂ１ｅ  Ｗｉｎｄｏｗ  Ｍｅｔｈｏｄ（ＭＷＭ）と呼ぶ。
【００７０】
次に、１段目のしきい素子ＦＴＥ［１］とＦＴＥ［２］との出力値を、図４におけるＬｉｎｅ０〜Ｌｉｎｅ３を用いて説明する。
【００７１】
Ｌｉｎｅ０は、Ｃs3容量、Ｃs4容量に論理的１が与えられている場合におけるＵｆgを表し、Ｌｉｎｅ１は、Ｃs3容量に論理的０が与えられている場合におけるＵfgを表し、Ｃs4容量に論理的１が与えられている場合におけるＵfgを表し、Ｌｉｎｅ２は、Ｃs3容量に論理的１が与えられている場合におけるＵfgを表し、Ｃs4容量に論理的０が与えられている場合におけるＵfgを表し、Ｌｉｎｅ３は、Ｃs3容量、Ｃs4容量に論理的０が与えられている場合のＵfgを表している。
【００７２】
また、図４中のＰ１ａ、Ｐ１ｂ、Ｐ１ｄ、Ｐ１ｅは、それぞれ、１段目のしきい素子ＦＴＥ［１］のしきい値に対応し、１段目のしきい素子ＦＴＥ［１］の出力値が、論理的１から論理的０に変化する状態を表し、Ｐ２ｂ、Ｐ２ｃ、Ｐ２ｅ、Ｐ２ｆは、それぞれ、１段目のしきい素子ＦＴＥ［２］のしきい値に対応して、１段目のしきい素子ＦＴＥ［２］の出力値が論理的１から論理的０に変化する状態を表している。
【００７３】
図５は、４つの入力状態における２段目のしきい素子ＳＴＥの２つの出力値（論理的１と論理的０）に対応する２4＝１６通りの関数を実現するＭＷＭと、１段目のしきい素子ＦＴＥのしきい値の値とを示す図である。
【００７４】
図５中のＭＷＭにおいては、始点となる入力状態の値が記載されている。
【００７５】
図５から判るように、１段目のしきい素子ＦＴＥ［１］とＦＴＥ［２］とにおけるそれぞれ４つのしきい値と、０、（−１）、（−２）の３つの値を始点とするＭＷＭとを用いることによって、関数Ｆ0からＦ15までの１６通りの論理関数を実現することができる。
【００７６】
［方法：１段目のしきい素子ＦＴＥ］
ここで、１段目のしきい素子ＦＴＥ［１］とＦＴＥ［２］とにおいて、上記しきい値Ｐ１ａ、Ｐ１ｂ、Ｐ１ｄ、Ｐ１ｅと、Ｐ２ｂ、Ｐ２ｃ、Ｐ２ｅ、Ｐ２ｆとのそれぞれ４つのしきい値を実現する方法について説明する。
【００７７】
図２（２）は、１段目のしきい素子ＦＴＥ［１］のＵfgと、入力状態との関係を表す図である。
【００７８】
図２（２）中のＬｉｎｅ０は、関数初期化期間にＩｎｐｕｔ２［１１］端子とＩｎｐｕｔ２［１２］端子とから、共に論理的０であるグランド電位を入力した場合であり、Ｌｉｎｅ１は、Ｉｎｐｕｔ２［１１］端子に論理的１である電源電位を入力し、Ｉｎｐｕｔ２［１２］端子に論理的０を入力した場合であり、Ｌｉｎｅ２は、Ｉｎｐｕｔ２［１１］端子に論理的０を入力し、Ｉｎｐｕｔ２［１２］端子に論理的１を入力した場合であり、Ｌｉｎｅ３は、Ｉｎｐｕｔ２［１１］端子とＩｎｐｕｔ２［１２］端子とに、共に論理的１を入力した場合である。
【００７９】
また、２段目のしきい素子ＳＴＥのときと同様に、関数初期化期間の入力変数用端子の論理値に応じて、ＭＷＭが適用される。
【００８０】
Ｌｉｎｅ０は、規格化フローティングゲートしきい値電位Ｕfth＝（１／２）と入力状態とが、（−２）と（−１）との間で交差するので、１段目のしきい素子ＦＴＥ［１］の出力値は、上記Ｐ１ａを表す。これと同様に、Ｌｉｎｅ１はＰ１ｂを表し、Ｌｉｎｅ２はＰ１ｄを表し、Ｌｉｎｅ３はＰ１ｅを表している。このように、関数初期化期間の構成データによって、４つのしきい値から１つを選択できる。
【００８１】
図３（２）は、１段目のしきい素子ＦＴＥ［２］のＵfgと、入力状態との関係を表す図である。
【００８２】
図３（２）中のＬｉｎｅ０は、関数初期化期間にＩｎｐｕｔ２［２１］端子とＩｎｐｕｔ２［２２］端子とから、共に論理的０であるグランド電位を入力した場合であり、Ｌｉｎｅ１は、Ｉｎｐｕｔ２［２１］端子に論理的１である電源電位を入力し、Ｉｎｐｕｔ２［２２］端子に論理的０を入力した場合であり、Ｌｉｎｅ２は、Ｉｎｐｕｔ２［２１］端子に論理的０を入力し、Ｉｎｐｕｔ２［２２］端子に論理的１を入力した場合であり、Ｌｉｎｅ３は、Ｉｎｐｕｔ２［２１］端子とＩｎｐｕｔ２［２２］端子とに、共に論理的１を入力した場合である。
【００８３】
また、２段目のしきい素子ＳＴＥのときと同様に、関数初期化期間の入力変数用端子の論理値に応じて、ＭＷＭが適用される。Ｌｉｎｅ０は、規格化フローティングゲートしきい値電位Ｕfth＝（１／２）と、入力状態が（−１）と０との間で交差するので、１段目のしきい素子ＦＴＥ［２］の出力値は、上記Ｐ２ｂを表す。これと同様に、Ｌｉｎｅ１は、Ｐ２ｃを表し、Ｌｉｎｅ２は、Ｐ２ｅを表し、Ｌｉｎｅ３は、Ｐ２ｆを表している。このように、関数初期化期間の構成データによって、４つのしきい値から１つを選択することができる。
【００８４】
上記実施例によれば、２段論理フィードフォワード型しきい素子回路において、入力容量値を適当な値に設定し、関数初期化期間と関数実行期間とを切替える構造を有し、多値表現された構成データと、Ｍｏｖａｂ１ｅ  Ｗｉｎｄｏｗ  Ｍｅｔｈｏｄ（ＭＷＭ）との方法を用いることによって、任意の２入力変数論理関数を、少ないしきい素子数を用いて、小さい駆動容量を用いて実現することが可能になる。
【００８５】
【発明の効果】
本発明によれば、論理関数機能を再構成することが可能な集積回路を、少ないしきい素子数によって構成できるという効果を奏し、また、２段目のしきい素子の入力に対する重みを小さくできることによって、高速動作であるという効果を奏する。
【図面の簡単な説明】
【図１】任意の２入力論理関数を実現する関数機能再構成可能集積回路の回路構成図である。
【図２】（１）は、１段目のしきい素子ＦＴＥ［１］の回路構成を表す図であり、（２）は、１段目のしきい素子ＦＴＥ［１］の規格化フローティングゲート電位と入力状態の関係を表す図である。
【図３】（１）は、１段目のしきい素子ＦＴＥ［２］の回路構成を表す図であり、（２）は、１段目のしきい素子ＦＴＥ［２］の規格化フローティングゲート電位と入力状態の関係を表す図である。
【図４】２段目のしきい素子ＳＴＥにおける規格化フローティングゲート電位Ｕfgの入力状態に対する値を表す図である。
【図５】４つの入力状態における２段目のしきい素子ＳＴＥの２つの出力値（論理的１と論理的０）に対応する２4＝１６通りの関数を実現するＭＷＭと、１段目のしきい素子ＦＴＥのしきい値の値とを示す図である。
【図６】任意のｋ入力変数論理関数を実現する２段論理フィードフォワード型ｖＭＯＳ回路の構成図である。
【図７】任意のｋ入力変数論理関数を実現する２段論理フィードフォワード型しきい素子回路の構成図である。
【符号の説明】
１００…２段論理フィードフォワード型しきい素子回路、
ＦＴＥ［１］、ＦＴＥ［２］…１段目のしきい素子、
ＳＴＥ…２段目のしきい素子、
Ｉｎｐｕｔ１［１］、Ｉｎｐｕｔ１［２］…入力変数用端子、
Ｉｎｐｕｔ２［１１］、Ｉｎｐｕｔ２［１２］…構成データ用端子、
Ｃｔｌ１、Ｃｔｌ２…制御信号入力用端子、
ＯｕｔＦ１、ＯｕｔＦ２…出力端子、
Ｔｇ１１、Ｔｇ１２…トランスミッションゲート、
ｆｇｆ１…フローティングゲート、
Ｐｓｗ１１、Ｐｓｗ１２…ＰＭＯＳパストランジスタ、
Ｃf112、Ｃf122…容量、
Ｃs3、Ｃs4…容量値、
Ｄｌｙ１、Ｄｌｙ２…遅延回路、
Ｗｒｆ１、Ｗｒｆ２…バッファ、
Ｓｎｓｗ１、Ｓｎｓｗ２…パストランジスタ。
【図１】
0003835745.tif 000002
【図２】
0003835745.tif 000003
【図３】
0003835745.tif 000004
【図４】
0003835745.tif 000005
【図５】
0003835745.tif 000006
【図６】
0003835745.tif 000007
【図７】
0003835745.tif 000008