(57)【特許請求の範囲】
【請求項１】
２段論理しきい素子回路網において、
２段目のしきい素子回路が、複数のしきい値候補を有し、
上記しきい値候補の中から、１つのしきい値を選択することが可能な構造を有し、
上記２段目のしきい素子回路が、入力変数値と、１段目のしきい素子回路の出力値に依存する値と、しきい値を制御するための値とを入力とする構造を有することを特徴とする関数機能再構成可能集積回路。
【請求項２】
２段論理しきい素子回路網において、
２段目のしきい素子回路が、複数のしきい値候補を有し、
上記しきい値候補の中から、１つのしきい値を選択することが可能な構造を有し、
上記２段目のしきい素子回路は、
電気的にフローティング状態であるゲート電極と；
このゲート電極に与えられる入力状態が、設定されているしきい値を超えたときに、その出力を論理反転する第１の回路と；
上記第１の回路のゲート電極に容量結合され、入力変数を伝搬する第１〜第ｋ（ｋ＞１）の入力変数用端子と；
第１の回路のゲート電極に容量結合され、しきい値を制御するための信号を伝搬するしきい値制御用端子と；
上記第１の回路のゲート電極と第１の端子との間に接続され、このゲート電極と第１の端子との間を、導通または遮断する第１のスイッチと；
を有することを特徴とする関数機能再構成可能集積回路。
【請求項３】
２段論理しきい素子回路を有する関数機能再構成可能集積回路であって、
可変しきい値しきい素子回路である１段目のしきい素子回路が、入力変数用端子と、構成データ用端子と、制御信号用端子とを有し、
可変しきい値しきい素子回路である２段目のしきい素子回路が、入力変数用端子と、上記１段目のしきい素子回路の出力端子に接続される端子と、制御信号用端子と、しきい値制御用端子とを有し、
当該しきい値制御用端子に与えられる値が、関数初期化期間には実現される関数に依存した値であり、関数実行期間には所定の一定値であることを特徴とする関数機能再構成可能集積回路。
【請求項４】
請求項３に記載の関数機能再構成可能集積回路に用いる関数機能構成方法であって、
上記制御信号用端子から入力される所定の値によって関数初期化期間を開始し、
当該関数初期化期間に、
上記構成データ用端子に与える所定の値によって、１段目のしきい素子回路のしきい値を決定し、
上記しきい値制御端子に与える所定の値によって、２段目のしきい素子回路のしきい値を決定し、
上記しきい値制御端子に与える所定の値によって、２段目のしきい素子回路のしきい値を決定し、
上記制御信号用端子から入力される所定の値によって、関数初期化期間を終了し、関数実行期間に移行することを特徴とする関数機能構成方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、集積回路製造後であっても、関数機能の再構成を行うことが可能であり、しきい素子回路を構成要素とする集積回路に係わり、特に、２段論理回路であって、１段目と２段目との双方に可変しきい値しきい素子回路を用いた関数機能再構成可能集積回路に関するものである。
【０００２】
【従来の技術】
しきい素子を有する関数機能再構成可能集積回路は、集積回路を製造した後であっても、集積回路の有する論理関数機能を再構成することが可能である論理関数再構成可能デバイスの可変論理部の性能と機能との向上を目的として、提案されている。
【０００３】
たとえば、しきい素子回路を用いた可変論理部の設計方法とその方法に従って設計された回路が、特開２００１−２６６１０６「論理関数機能再構成可能な集積回路およびその設計方法」に開示されている。
【０００４】
図１２は、上記従来例（特開２００１−２６６１０６に開示されている２段論理フィードフォワードしきい素子回路網）に対して、論理関数を構成するデータ（構成データと呼ぶ）として、多値表現を用いて任意のｋ入力変数論理関数を実現する回路の構成図である。
【０００５】
１段目のしきい素子回路に与える構成データとして、２値表現のデータを用いることは、２つのしきい値候補のいずれか一方を、しきい値として選択することを意味している。
【０００６】
一方、１段目のしきい素子回路に対する構成データとして多値表現を用いることは、１段目のしきい素子回路のしきい値を、複数のしきい値候補から選択することができることを意味している。
【０００７】
多値表現を用いることは、しきい値選択の自由度を上げることに貢献している。上記従来例によると、構成データを多値化しないとき、任意のｋ入力変数論理関数を、２段論理フィードフォワード回路で実現する場合、２k個の１段目のしきい素子回路と１個の２段目のしきい素子回路とが必要である。
【０００８】
構成データを多値化することによって、１段目のしきい素子回路の数を（３／４）・２k個に低減できると主張している。ここで、補足すると、入力変数の論理値と、各入力変数に対する重みとの積を、全ての入力変数に対して和した結果である積和演算結果を入力状態と呼ぶときに、１段目のしきい素子回路の素子数の２kは、入力状態の数を表している。
【０００９】
上記のように、従来の２段論理フィードフォワード型しきい素子回路網において、任意のｋ入力変数論理関数を実現するために、構成データとして多値を用いる回路構成と、方法とについて、開示され、少なくとも（３／４）・２k＋１個のしきい素子が必要である。
【００１０】
【発明が解決しようとする課題】
上記のように、関数機能再構成可能集積回路を、２段論理フィードフォワード型しきい素子回路によって構成する場合、任意のｋ入力変数論理関数を実現するには、｛（３／４）・２k＋１｝個のしきい素子が必要である。
【００１１】
並列処理を行う再構成可能集積回路にとって、面積コストの低減は、重要な課題である。
【００１２】
本発明は、論理関数機能を再構成することが可能な集積回路を、少ない素子数によって構成し、しかも、関数機能を構成する際に、同時刻に並列性を保ったまま、構成データを入力できる関数機能再構成可能集積回路および関数機能構成方法を提供することを目的とするものである。
【００１３】
本発明は、２段論理しきい素子回路網において、２段目のしきい素子回路が、複数のしきい値候補を有し、上記しきい値候補の中から、１つのしきい値を選択することが可能な構造を有し、上記２段目のしきい素子回路が、入力変数値と、１段目のしきい素子回路の出力値に依存する値と、しきい値を制御するための値とを入力とする構造を有することを特徴とする関数機能再構成可能集積回路である。
【００１４】
【発明の実施の形態および実施例】
まず、２段論理フィードフォワード型しきい素子回路によって構成される論理関数機能再構成可能集積回路の回路構成と、上記回路上に関数を構成する方法について説明する。
【００１５】
本回路構成の論理レベルでの特徴は、１段目のしきい素子回路のみならず、２段目のしきい素子回路のしきい値を、可変にした点である。回路レベルでは、２段目のしきい素子回路の入力として、入力変数と、１段目のしきい素子回路の出力信号と、しきい値制御用変数との３種類の信号を、入力する点に特徴がある。
【００１６】
つまり、本回路の特徴は、２段目のしきい素子回路ＳＴＥの構造を、１段目のしきい素子回路ＦＴＥと同様に、外部からしきい値を直接制御する端子を設けた点である。すなわち、本回路は、２段目のしきい素子回路ＳＴＥのしきい値を、直接外部から変更するので、関数を規定する操作を並列処理で行うことが可能であり、したがって、関数を規定するための時間を短縮することができ、高速に関数機能を変更することができる。
【００１７】
［論理レベルでの回路構成］
図１は、任意の２入力変数論理関数を実現する２段論理フィードフォワード型しきい素子回路１００の構成を示す図である。
【００１８】
１段目は、２つの否定出力型しきい素子回路ＦＴＥ［１］、ＦＴＥ［２］によって構成され、２段目は、１つの否定出力型しきい素子回路ＳＴＥによって構成されている。
【００１９】
上記「否定出力型しきい素子回路」は、入力値とそれに乗算される重みとの積を、全ての入力変数に対して加算した積和結果と、しきい値とを比較し、積和結果が大きければ、論理的０を出力し、逆に、上記積和結果が小さければ、論理的１を出力するしきい素子である。
【００２０】
各しきい素子回路に、共通して、入力変数ｘ1、ｘ2が入力され、入力変数ｘ1、ｘ2のそれぞれに対して、重みｗx1＝１、ｗx2＝２が乗算される。
【００２１】
この重み付けによって、入力変数ｘ1、ｘ2によって構成されている４通りの入力ベクトルを、入力変数と重みとの積和値
【００２２】
【数１】
0003835746.tif 000002
である入力状態として、区別することが可能になる。
【００２３】
予め定められたしきい素子回路網において、各しきい素子回路のしきい値のみを変更することによって、任意の論理関数を実現することは、全ての入力状態に対して、２段目のしきい素子回路ＳＴＥの出力値ｙを、論理的１または論理的０に選択的に決定できることと、等価である。
【００２４】
今、１段目のしきい素子回路ＦＴＥ［１］、ＦＴＥ［２］のしきい値を、それぞれＴf1、Ｔf2とし、２段目のしきい素子回路ＳＴＥのしきい値を、Ｔsとする。また、２段目のしきい素子回路ＳＴＥにおいて、１段目のしきい素子回路ＦＴＥ［１］の出力値、１段目のしきい素子回路ＦＴＥ［２］の出力値に乗算される重みを、それぞれ、ｗf1＝２、ｗf2＝３とする。
【００２５】
しきい値Ｔf1、Ｔf2およびＴsに対して、ある値を選択することによって、全ての入力状態に対して、２段目のしきい素子回路ＳＴＥの出力値ｙに、選択的に論理的１または論理的０を与えることができる。
【００２６】
図２は、図１の回路構成において、しきい値Ｔf1として｛−０．５，１．５，２．５｝のうちで、１つを選択することができ、しきい値Ｔf2として｛０．５，１．５，２．５，３．５｝のうちで、１つを選択することができ、しきい値ＴSとして｛２．５，３．５，４．５，５．５｝のうちで、１つを選択できるようにした場合、１６通りの２入力変数論理関数を実現する際の各しきい値の値を示す図である。
【００２７】
たとえば、論理積ＡＮＤ（図中・Ｆ1）を実現するしきい値の組み合わせは、（Ｔf1、Ｔf2、Ｔs）＝（１．５，２．５，３．５）であり、排他的論理和ＸＯＲ（Ｅｘｃｌｕｓｉｖｅ  ＯＲ）の場合（図中、Ｆ5）は、（Ｔf1、Ｔf2、Ｔs）＝（０．５，２．５，４．５）である。
【００２８】
ある論理関数を実現するしきい値の組み合わせは、１通りであるとは限らず、関数によっては、それを実現するしきい値の組み合わせが複数存在する。この複数の組み合わせの中で、各しきい素子回路におけるしきい値候補の数が少なくなる組み合わせを選択することは、回路規模を小さくする場合に有効である。
【００２９】
回路規模を小さくする場合に有効であるのは、複数のしきい値候補を準備するときに、そのしきい値候補を記憶する記憶ビットを必要とするからである。また、記憶ビットの低減が、回路規模にとって重要であるのと同様に、回路の正常動作を保証する動作マージンを確保することも重要である。これらの視点から、用途に応じた適切なしきい値の組み合わせが選択される。
【００３０】
［しきい素子回路に共通の回路構成］
否定出力型しきい素子回路は、複数の入力端子と、電気的に浮遊状態（以後、「フローティング状態」ともいう）とみなせるフローティングゲートとが、容量結合する構造を持ち、上記フローティングゲートが、ＣＭＯＳインバータの入力ゲート電極である構造を有する。このＣＭＯＳインバータの論理しきい値（すなわち、インバータが論理反転をするフローティングゲート電位）を、電源電位の（１／２）に設定する。
【００３１】
この論理しきい値と、以降に頻繁に現れる否定出力型しきい素子のしきい値とは、区別される。また、以降、否定出力型しきい素子回路を、単に「しきい素子回路」と略す。
【００３２】
各しきい素子回路のフローティングゲートは、パストランジスタを介して、グランドに接続されている。上記パストランジスタを、導通または遮断することによって、フローティングゲート中の電荷量と電位とを操作することができる。ＣＭＯＳインバータの出力電位は、電源電位とグランド電位との中間電位を取るので、インバータ後段に、波形整形用の出力バッファが設けられている。
【００３３】
［回路全体の構成］
図３は、図１に示すしきい素子回路１００を、上記フローティングゲートデバイスを使用して構成し、任意の２入力変数論理関数を実現可能な関数機能再構成可能集積回路を示す図である。
【００３４】
図１におけるｘ1、ｘ2は、入力変数用端子Ｉｎｐｕｔ１［１］、Ｉｎｐｕｔ１［２］から入力された信号電位を、電源電位Ｖddで規格化した値に対応し、重みｗx1、ｗx2は、図２における容量値Ｃs1を基準にしたとき（すなわち１としたとき）の容量値の比に対応する。すなわち、ｗx2＝Ｃs2／Ｃs1である。
【００３５】
また、図１に示す重みｗf1、ｗf2は、図２における（Ｃs3／Ｃs1）、（Ｃs4／Ｃs1）のそれぞれに対応する。
【００３６】
１段目のしきい素子回路ＦＴＥ［１］のしきい値Ｔf1は、入力変数用端子Ｉｎｐｕｔ２［１１］、Ｉｎｐｕｔ２［１２］端子から入力される信号によって、複数のしきい値候補から選択される。１段目のしきい素子回路ＦＴＥ［２］のしきい値Ｔf2も同様に、入力変数用端子Ｉｎｐｕｔ２［２１］、Ｉｎｐｕｔ２［２２］端子から入力された信号によって、選択される。
【００３７】
２段目のしきい素子回路ＳＴＥも、上記と同様の効果を持つ信号が、しきい値制御用端子Ｉｎｐｕｔ３［１］Ｉｎｐｕｔ３［２］から入力され、しきい値Ｔsが選択される。しきい値候補の準備と、各しきい素子回路個別の特徴とを、次に説明する。
【００３８】
［２段目のしきい素子回路ＳＴＥの構造］
図３に記載の２段目のしきい素子回路ＳＴＥの回路構成における特徴は、入力変数と、１段目のしきい素子の出力との他に、入力として、しきい値制御用端子Ｉｎｐｕｔ３［１］と、Ｉｎｐｕｔ３［２］とから入力されるしきい値選択用変数を持つ点である。
【００３９】
２段目のしきい素子回路ＳＴＥは、２つの入力変数用端子Ｉｎｐｕｔ１［１］、Ｉｎｐｕｔ１［２］と、１段目のしきい素子回路ＦＴＥ［１］の出力端子ＯｕｔＦ１，１段目のしきい素子回路ＦＴＥ［２］の出力端子ＯｕｔＦ２と、しきい値制御用端子Ｉｎｐｕｔ３［１］、Ｉｎｐｕｔ３［２］と、制御信号入力用端子Ｃｔｌ１、Ｃｔｌ２端子と、出力端子Ｏｕｔｐｕｔとを持つ。上記の他に、電源電位およびグランド電位供給用端子をも持つ。
【００４０】
入力変数用端子Ｉｎｐｕｔ１［１］、Ｉｎｐｕｔ１［２］は、それぞれ、遅延回路Ｄｌｙ１、Ｄｌｙ２に接続され、遅延回路Ｄｌｙ１、Ｄｌｙ２の出力端子は、それぞれ容量値Ｃs1、Ｃs2の容量を介して、フローティングゲートＦＧsteに接続される。
【００４１】
一方、１段目のしきい素子回路の出力端子ＯｕｔＦ１、ＯｕｔＦ２は、それぞれ、トランスミッションゲートＳｔｇ１，Ｓｔｇ２に接続される。トランスミッションゲートＳｔｇ１、Ｓｔｇ２は、制御信号入力用端子Ｃｔｌ１からの信号によって、関数初期化期間において遮断され、関数実行期間において導通される。トランスミッションゲートＳｔｇ１の出力端子は、信号増幅と電位波形を整形するバッファＷｒｆ１に入力され、同様に、トランスミッションゲートＳｔｇ２の出力端子は、バッファＷｒｆ２に入力される。バッファＷｒｆ１、Ｗｒｆ２の出力端子は、それぞれ、容量値Ｃs3、Ｃs4の容量に入力され、フローディングゲートＦＧsteに容量結合される。
【００４２】
また、トランスミッションゲートＳｔｇ１，Ｓｔｇ２の出力端子は、それぞれＮＭＯＳパストランジスタＳｎｓｗ１、Ｓｎｓｗ２を介して、グランドに接続されている。これらのパストランジスタＳｎｓｗ１、Ｓｎｓｗ２は、トランスミッションゲートＳｔｇ１、Ｓｔｇ２との動作とは逆相の動作をする。
【００４３】
トランスミッションゲートＳｔｇ１、Ｓｔｇ２、パストランジスタＳｎｓｗ１、Ｓｎｓｗ２は、２段目のしきい素子回路ＳＴＥのフローティングゲートＦＧsteを初期化するために設けられている。また、バッファＷｒｆ１、Ｗｒｆ２は、２段目のしきい素子回路ＳＴＥが関数実行期間に、１段目のしきい素子回路ＦＴＥ［１］とＦＴＥ［２］とから出力される中間電位を、電源電位とグランド電位との２値に増幅し、電位波形整形するものである。
【００４４】
したがって、これらの順序は、図１に示す以外の順序の構成であっても、同じ機能を実現できる。たとえば、バッファＷｒｆ１が、インバータの２段構成である場合は、１つのインバータを１段目のしきい素子回路ＦＴＥ［１］の出力端子ＯｕｔＦ１に接続し、インバータの直後に、トランスミッションゲートＳｔｇ１を接続し、パストランジスタＳｎｓｗ１を、グランドではなく、電源に接続されるパストランジスタであり、トランスミッションゲートＳｔｇ１とは逆相で動作するものに置換し、トランスミッションゲートＳｔｇ１の出力端子に接続し、トランスミッションゲートＳｔｇ１の出力端子をさらに、残る１つのインバータの入力端子に接続する構造がある。
【００４５】
しきい値制御用変数を入力する端子であるしきい値制御用端子Ｉｎｐｕｔ３［１］、Ｉｎｐｕｔ３［２］は、それぞれトランスミッションゲートの入力端子に接続される。上記それぞれのトランスミッションゲートの出力端子は、容量値Ｃs5、Ｃs6の容量を介して、フローティングゲートＦＧsteに接続される。また、上記トランスミッションゲートの出力端子は、それぞれＰＭＯＳパストランジスタを介して、電源に接続される。
【００４６】
上記トランスミッションゲートは、制御信号入力用端子Ｃｔｌ１から入力される信号によって制御され、制御信号入力用端子Ｃｔｌ１から入力される信号が論理的１である場合は、導通し、逆に、論理的０である場合は、遮断される。
【００４７】
上記ＰＭＯＳパストランジスタは、その入力ゲートが制御信号入力用端子Ｃｔｌ１に接続されているので、トランスミッションゲートの導通、遮断とは逆の動作をする。関数初期化期間には、トランスミッションゲートが導通し、関数実行期間には、トランスミッションゲートが遮断される。
【００４８】
任意の論理関数を実現するために、上記６つの容量値の比は、次の式（１）のように設定される。
【００４９】
Ｃs1：Ｃs2：Ｃs3：Ｃs4：Ｃs5：Ｃs6＝１：２：２：３：１：２…式（１）
［２段目のしきい素子回路の出力値］
２段目のしきい素子回路ＳＴＥの出力信号は、後段のＢｕｆｆｅｒによって、電源電位とグランド電位との２値に補正され、Ｏｕｔｐｕｔ端子から出力される。Ｂｕｆｆｅｒが存在するために、２段目のしきい素子回路ＳＴＥの出力値がＢｕｆｆｅｒの入力に対する論理しきい値よりも大きいか、小さいかが、Ｏｕｔｐｕｔ端子から出力される値が、電源電位（論理的１）であるか、グランド電位（論理的０）であるか、を決める。
【００５０】
ここでは、Ｂｕｆｆｅｒの論理しきい値と、２段目のしきい素子回路ＳＴＥのフローティングゲートを入力ゲートとするインバータの論理しきい値（フローティングゲートしきい値電位と呼ぶ）とが等しいとする。したがって、フローティングゲートしきい値電位よりも、フローティングゲート電位が大きいときは、出力値は、論理的０になり、逆に、フローティングゲート電位が小さいときは、出力値は、論理的１になる。
【００５１】
上記のように、２段目のしきい素子回路ＳＴＥにおける全ての入力状態に対して、選択的に論理的１または論理的０を出力できることが、任意の論理関数を実現できることである。これは、２段目のしきい素子回路ＳＴＥにおける全ての入力状態において、フローティングゲートＦＧsteの電位（フローティングゲート電位）の、フローティングゲートしきい値電位に対する大小関係を選択的に決定することができるときに、実現される。
【００５２】
次に、２段目のしきい素子回路ＳＴＥのフローティングゲート電位と入力状態との関係について説明する。
【００５３】
フローティングゲートの取り得る最大値（簡単のために電源電位Ｖddとする）で、フローティングゲート電位を規格化した値を、「規格化フローティングゲート電位」と呼び、Ｕfgで表す。また、フローティングゲートしきい値電位を規格化した値を、「規格化フローティングゲートしきい値電位」と呼び、Ｕfthで表す。
【００５４】
今、Ｕfth＝（１／２）とする。一方、フローティングゲートＦＧsteとの間で容量結合している６つの容量について、Ｃsum＝（Ｃs1＋Ｃs2＋Ｃs3＋Ｃs4＋Ｃs5＋Ｃs6）を、「容量和」という。
【００５５】
各容量値を容量和によって規格化した値を、「規格化容量値」と呼び、Ｕcs1＝（Ｃs1／Ｃsum）、Ｕcs2＝（Ｃs2／Ｃsum）、Ｕcs3＝（Ｃs3／Ｃsum）、Ｕcs4＝（Ｃs4／Ｃsum）、Ｕcs5＝（Ｃs5／Ｃsum）、Ｕcs6＝（Ｃs6／Ｃsum）、で表す。
【００５６】
図４、図５、図６、図７は、関数実行期間において、２段目のしきい素子回路ＳＴＥの規格化フローティングゲート電位Ｕfgと入力状態との関係を示す図である。
【００５７】
特に、図４は、関数初期化期間において、しきい値制御用端子Ｉｎｐｕｔ３［１］とＩｎｐｕｔ３［２］とから入力されるＣs5とＣs6とに与えられる信号が、共に論理的０である場合を示す図である。
【００５８】
図５は、同期間において、しきい値制御用端子Ｉｎｐｕｔ３［２］からの信号のみが論理的０である場合を示す図である。
【００５９】
図６は、同期間において、しきい値制御用端子Ｉｎｐｕｔ３［１］からの信号のみが論理的０である場合を示す図である。
【００６０】
図７は、同期間において、しきい値制御用端子Ｉｎｐｕｔ３［１］としきい値制御用端子Ｉｎｐｕｔ３［２］とから入力される信号が、共に論理的１である場合を表している。
【００６１】
図４中、Ｌｉｎｅ３０、Ｌｉｎｅ３１、Ｌｉｎｅ３２、Ｌｉｎｅ３３のそれぞれは、関数実行期間において１段目のしきい素子回路ＦＴＥ［１］、ＦＴＥ［２］の出力値が論理的に（１，１）、（１，０）、（０，１）、（０，０）である場合における規格化フローティングゲート電位Ｕfgを表している。
【００６２】
また、入力状態上に示されるＡ、Ｂ、Ｃ、Ｄ、Ｅは、それぞれ入力状態が０よりも小さい値、０よりも大きく、１よりも小さい値、１よりも大きく、２よりも小さい値、２よりも大きく、３よりも小さい値、３よりも大きい値、を表している。
【００６３】
次に、関数を実現する具体的な例について説明する。
【００６４】
今、１段目のしきい素子回路ＦＴＥ［１］のしきい値がＢであり、１段目のしきい素子回路ＦＴＥ［２］のしきい値がＢである場合は、入力状態が０であるときは、２段目のしきい素子回路ＳＴＥのＵfgは、Ｌｉｎｅ３０で表され、１段目のしきい素子回路ＦＴＥ［１］とＦＴＥ［２］とのしきい値Ｂにおいて、Ｌｉｎｅ３０からＬｉｎｅ３３に遷移し、Ｕfgは、入力状態が１、２、３であるときは、Ｌｉｎｅ３３で表される。このために、入力状態０、３では、Ｕfg＞Ｕfthであり、入力状態１、２のときは、Ｕfg＜Ｕfthである。したがって、図２の関数Ｆ6を実現していることになる。
【００６５】
図５中、Ｌｉｎｅ２０、Ｌｉｎｅ２１、Ｌｉｎｅ２２、Ｌｉｎｅ２３のそれぞれは、関数実行期間において、１段目のしきい素子回路ＦＴＥ［１］、ＦＴＥ［２］の出力値が、論理的に（１，１）、（１，０）、（０，１）、（０，０）である場合のＵfgを表している。
【００６６】
１段目のしきい素子回路ＦＴＥ［１］のしきい値がＢであり、１段目のしきい素子回路ＦＴＥ［２］のしきい値がＤである場合は、入力状態が０のときは、２段目のしきい素子回路ＳＴＥのＵfgは、Ｌｉｎｅ２０で表され、１段目のしきい素子回路ＦＴＥ［１］のしきい値Ｂにおいて、Ｌｉｎｅ２０からＬｉｎｅ２１に遷移し、入力状態が１、２のときは、Ｌｉｎｅ２１で表され、Ｄである１段目のしきい素子回路ＦＴＥ［２］のしきい値において、Ｌｉｎｅ２１からしｉｎｅ２３に遷移し、Ｕfgは、Ｌｉｎｅ２３で表される。
【００６７】
このため、入力状態０、１、２では、Ｕfg＞Ｕfthであり、入力状態３のときは、Ｕfg＜Ｕfthである。したがって、図２の関数Ｆ2を実現していることになる。
【００６８】
図６中、Ｌｉｎｅ１０、Ｌｉｎｅ１１、Ｌｉｎｅ１２、Ｌｉｎｅ１３のそれぞれは、関数実行期間において、１段目のしきい素子回路ＦＴＥ［１］、ＦＴＥ［２］の出力が、論理的に（１，１）、（１，０）、（０，１）、（０，０）である場合のＵfgを表している。
【００６９】
次に、図２に示す関数Ｆ5を実現する場合について具体的に説明する。
【００７０】
１段目のしきい素子回路ＦＴＥ［１］のしきい値がＢであり、１段目のしきい素子回路ＦＴＥ［２］のしきい値がＤであるとする。入力状態が０であるときに、Ｕfgは、Ｌｉｎｅ１０で表され、１段目のしきい素子回路ＦＴＥ［１］のしきい値Ｂにおいて、Ｌｉｎｅ１０からＬｉｎｅ１１に遷移し、入力状態が１、２のときは、Ｌｉｎｅ１１で表され、１段目のしきい素子回路ＦＴＥ［２］のしきい値ＤにおいてＬｉｎｅ１１からＬｉｎｅ１３に遷移し、入力状態３のＵfgはＬｉｎｅ１３で表される。このために、入力状態０、２ではＵfg＞Ｕfthであり、入力状態１、３のときは、Ｕfg＜Ｕfthである。したがって、図２の関数Ｆ5を実現していることになる。
【００７１】
図７中、Ｌｉｎｅ００、Ｌｉｎｅ０１、Ｌｉｎｅ０２、Ｌｉｎｅ０３のそれぞれは、関数実行期間において、１段目のしきい素子回路ＦＴＥ［１］、ＦＴＥ［２］の出力が、論理的に（１，１）、（１，０）、（０，１）、（０，０）である場合のＵfgを表している。
【００７２】
次に、図２に示す関数Ｆ10を実現する場合について、具体的に説明する。
【００７３】
１段目のしきい素子回路ＦＴＥ［１］のしきい値がＣであり、１段目のしきい素子回路ＦＴＥ［２］のしきい値がＥであるとする。入力状態が０、１であるときに、Ｕfgは、Ｌｉｎｅ００で表され、１段目のしきい素子回路ＦＴＥ［１］のしきい値Ｃにおいて、Ｌｉｎｅ００からＬｉｎｅ０１に遷移し、入力状態が２、３であるときは、Ｌｉｎｅ０１で表され、１段目のしきい素子回路ＦＴＥ［２］のしきい値Ｅにおいて、Ｌｉｎｅ０１からＬｉｎｅ０３に遷移する。
【００７４】
このために、入力状態１、３では、Ｕfg＞Ｕfthであり、入力状態０、２のときは、Ｕfg＜Ｕfthである。したがって、図２の関数Ｆ10を実現していることになる。
【００７５】
上記のように、しきい値制御用端子Ｉｎｐｕｔ３［１］とＩｎｐｕｔ３［２］とから入力される論理値と、１段目のしきい素子回路ＦＴＥ［１］とＦＴＥ［２］とのしきい値とを組み合わせることによって、任意の関数を実現することができる。
【００７６】
［１段目のしきい素子回路ＦＴＥ［１］の構造］
図８は、１段目のしきい素子回路ＦＴＥ［１］の回路構成を表す図である。
【００７７】
図８に示す１段目のしきい素子回路ＦＴＥ［１］は、外部接続端子として、２つの入力変数用端子Ｉｎｐｕｔ１［１］、Ｉｎｐｕｔ１［２］と、関数を規定するデータである構成データを入力する構成データ用端子Ｉｎｐｕｔ２［１１］、Ｉｎｐｕｔ２［１２］と、関数初期化期間（「フローティングゲート初期化期間」とも呼ぶ）と関数実行期間とを切替える制御信号入力用端子Ｃｔｌ１、Ｃｔｌ２と、出力端子ＯｕｔＦ１と、を持つ。
【００７８】
また、図３に示す回路にとって、関数を構成するデータである構成データは、１段目のしきい素子回路単体にとっては、しきい値を制御する変数を意味する。
【００７９】
入力変数用端子Ｉｎｐｕｔ１［１］とＩｎｐｕｔ１［２］とは、それぞれ容量値Ｃf111、Ｃf112の容量を介して、フローティングゲートＦＧf1に接続されている。一方、構成データ用端子Ｉｎｐｕｔ２［１１］、Ｉｎｐｕｔ２［１２］は、トランスミッションゲートＴｇ１１、Ｔｇ１２とにそれぞれ接続されている。トランスミッションゲートＴｇ１１、Ｔｇ１２は、制御信号入力用端子Ｃｔｌ１からの信号によって、関数初期化期間において、導通され、関数実行期間において、遮断される。
【００８０】
トランスミッションゲートＴｇ１１の出力端子は、容量値Ｃf121の容量を介して、フローティングゲートＦＧf1に接続され、同様に、Ｔｇ１２の出力端子は、容量値Ｃf122の容量を介して、ＦＧf1に接続される。また、制御信号入力用端子Ｃｔｌ１の論理反転値が、フローティングゲートＦＧf1と容量結合する容量値Ｃf100の容量に入力される。
【００８１】
構成データ用端子から入力される２値変数である２ビットの構成データ（１つの構成データの多値表現）によって、最大４つのしきい値候補を実現することができる。入力状態Ａ、Ｂ、Ｃ、Ｄの４区間に、１つずつしきい値候補を設定するために、上記容量値の比は、次の式（２）のように設定される。
Ｃf100：Ｃf111：Ｃf112：Ｃf121：Ｃf122＝１：１：２：１：２…式（２）
一方、トランスミッションゲートＴｇ１１、Ｔｇ１２の出力端子は、それぞれＰＭＯＳパストランジスタＰｓｗ１１、Ｐｓｗ１２を介して、電源に接続されている。ＰＭＯＳパストランジスタＰｓｗ１１、Ｐｓｗ１２の導通、遮断と、トランスミッションゲートＴｇ１１、Ｔｇ１２の導通、遮断とは、逆相であり、ＰＭＯＳパストランジスタＰｓｗ１１、Ｐｓｗ１２は、関数初期化期間に遮断され、関数実行期間に導通される。
【００８２】
すなわち、関数実行期間に、容量Ｃf112、Ｃf122には、電源電位が供給される。同様に、制御信号入力用端子Ｃｔｌ１に接続されるインバータに接続されている容量値Ｃf100の容量には、関数初期化期間に論理的０であるグランド電位が、関数実行期間には、論理的１である電源電位が与えられる。
【００８３】
［１段目のしきい素子回路ＦＴＥ［１］の動作］
図９は、１段目のしきい素子回路ＦＴＥ［１］の規格化フローティングゲート電位Ｕfgと、入力状態との関係を表す図である。
【００８４】
２段目のしきい素子回路ＳＴＥの場合と同じく、規格化フローティングゲートしきい値電位を、Ｕfthで表し、Ｕfth＝１／２とした。また、容量総和Ｃsumf1を、Ｃsumf1＝（Ｃf100＋Ｃf111＋Ｃf112＋Ｃf121＋Ｃf122）とした。規格化容量値も、２段目のしきい素子回路ＳＴＥの場合と同様の定義をし、Ｕcf100＝（Ｃf100／Ｃsumf1）、Ｕcf111＝（Ｃf111／Ｃsumf1）、Ｕcf112＝（Ｃf112／Ｃsumf1）、Ｕcf121＝（Ｃf121／Ｃsumf1）、Ｕcf122＝（Ｃf122／Ｃsumf1）とする。
【００８５】
これらの規格化容量値とＵfgとの関係も、図９に示してある。図９中、ＬｉｎｅＦ１Ａ、ＬｉｎｅＦ１Ｂ、ＬｉｎｅＦ１Ｃ、ＬｉｎｅＦ１Ｄの直線のそれぞれは、関数初期化期間において、図８の構成データ用端子Ｉｎｐｕｔ２［１１］、構成データ用端子Ｉｎｐｕｔ２［１２］から論理的（０，０）、（０，１）、（１，０）、（１，１）が入力されたときのＵfgを表している。
【００８６】
図９から判るように、ＬｉｎｅＦ１Ａが選択された場合に、１段目のしきい素子回路ＦＴＥ［１］のしきい値は、Ａ（上記容量比の場合には、−０．５）にあり、ＬｉｎｅＦ１Ｂが選択された場合は、Ｂ（０．５）にあり、ＬｉｎｅＦ１Ｃが選択された場合は、Ｃ（１．５）にあり、ＬｉｎｅＦ１Ｄが選択された場合は、Ｄ（２．５）にある。すなわち、構成データ用端子Ｉｎｐｕｔ２［１１］とＩｎｐｕｔ２［１２］とから入力される構成データによって、｛Ａ，Ｂ，Ｃ，Ｄ｝の中から、選択的にしきい値を決定することができる。
【００８７】
［１段目のしきい素子回路ＦＴＥ［２］の構造］
図１０は、１段目のしきい素子回路ＦＴＥ［２］の回路構成を示す図である。
【００８８】
１段目のしきい素子回路ＦＴＥ［２］は、外部接続端子として、２つの入力変数用端子Ｉｎｐｕｔ１［１］、Ｉｎｐｕｔ１［２］と、関数を規定するデータである構成データを入力する構成データ用端子Ｉｎｐｕｔ２［２１］、Ｉｎｐｕｔ２［２２］と、関数初期化期間と関数実行期間とを切替える制御信号入力用端子Ｃｔｌ１、Ｃｔｌ２と、出力端子ＯｕｔＦ２とを持つ。
【００８９】
入力変数用端子Ｉｎｐｕｔ１［１］、Ｉｎｐｕｔ１［２］は、それぞれ容量値Ｃf211、Ｃf212の容量を介して、フローティングゲートＦＧf2に接続される。
【００９０】
一方、構成データ用端子Ｉｎｐｕｔ２［２１］、Ｉｎｐｕｔ２［２２］は、トランスミッションゲートＴｇ２１、Ｔｇ２２にそれぞれ接続される。トランスミッションゲートＴｇ２１、Ｔｇ２２は、制御信号入力用端子Ｃｔｌ１からの信号によって、関数初期化期間において導通され、関数実行期間において遮断される。トランスミッションゲートＴｇ２１の出力端子は。容量値Ｃf221の容量を介して、フローティングゲートＦＧf2に接続され、同様に、Ｔｇ２２の出力端子は。容量値Ｃf222の容量を介して、ＦＧf2に接続される。また、フローティングゲートＦＧf2と容量結合する容量値Ｃf200の容量は、グランドに接続される。
【００９１】
入力状態Ｂ、Ｃ、Ｄ、Ｅの４区間に１つずつしきい値候補を設定するために、上記容量値の比は、次の式（３）のように設定される。
Ｃf200：Ｃf211：Ｃf212：Ｃf221：Ｃf222＝１：１：２：１：２…式（３）
一方、トランスミッションゲートＴｇ１１、Ｔｇ１２の出力端子は、それぞれＰＭＯＳパストランジスタＰｓｗ２１、Ｐｓｗ２２を介して、電源に接続されている。ＰＭＯＳパストランジスタＰｓｗ２１、Ｐｓｗ２２の導通と遮断とは、トランスミッションゲー卜Ｔｇ２１、Ｔｇ２２の導通と遮断とは逆相であり、ＰＭＯＳパストランジスタＰｓｗ２１、Ｐｓｗ２２は、関数初期化期間に遮断され、関数実行期間に導通される。すなわち、関数実行期間には、容量Ｃf212、Ｃf222には電源電位が供給される。
【００９２】
［１段目のしきい素子回路ＦＴＥ［２］の動作］
図１１は、１段目のしきい素子回路ＦＴＥ［２］の規格化フローティングゲート電位Ｕfgと入力状態との関係を表す図である。
【００９３】
１段目のしきい素子回路ＦＴＥ［１］の場合と同じく、規格化フローティングゲートしきい値電位をＵfthで表し、Ｕfth＝１／２とした。
【００９４】
また、容量総和Ｃsumf2を、Ｃsum2＝（Ｃf200＋Ｃf211＋Ｃf212＋Ｃf221＋Ｃf222）とした。規格化容量値も、１段目のしきい素子回路ＦＴＥ［１］の場合と同様の定義をし、Ｕcf200＝（Ｃf200／Ｃsumf2）、Ｕcf211＝（Ｃf211／Ｃsumf2）、Ｕcf212＝（Ｃf212／Ｃsumf2）、Ｕcf221＝（Ｃf221／Ｃsumf2）、Ｕcf222＝（Ｃf222／Ｃsumf2）とする。
【００９５】
これらの規格化容量値とＵfgとの関係も、図１１に示してある。図１１中、ＬｉｎｅＦ２Ｂ、ＬｉｎｅＦ２Ｃ、ＬｉｎｅＦ２Ｄ、ＬｉｎｅＦ２Ｅの直線のそれぞれは、関数初期化期間において、図１０の構成データ用端子Ｉｎｐｕｔ２［２１］、構成データ用端子Ｉｎｐｕｔ２［２２］から、論理的（０，０）、（０，１）、（１，０）、（１，１）が入力されたときのＵfgを表している。
【００９６】
図１１から判るように、ＬｉｎｅＦ２Ｂが選択された場合に、１段目のしきい素子回路ＦＴＥ［２］のしきい値は、Ｂ（上記容量比の場合には、０．５）にあり、ＬｉｎｅＦ２Ｃが選択された場合は、Ｃ（１．５）にあり、ＬｉｎｅＦ２Ｄが選択された場合は、Ｄ（２．５）にあり、ＬｉｎｅＦ２Ｅが選択された場合は、Ｅ（３．５）にある。
【００９７】
すなわち、構成データ用端子Ｉｎｐｕｔ２［２１］とＩｎｐｕｔ２［２２］とから入力される構成データによって、｛Ｂ，Ｃ，Ｄ，Ｅ｝の中から選択的にしきい値を決定することができる。
【００９８】
［任意の論理関数を実現する方法］
図３に記載の関数機能再構成可能集積回路において、次の手順によって、任意の論理関数を実現することができる。
【００９９】
１．制御信号入力用端子Ｃｔｌ１、Ｃｔｌ２に論理的１（電源電位）を与え、上記集積回路を関数初期化期間の状態にする。
【０１００】
２．入力変数用端子Ｉｎｐｕｔ１［１］、Ｉｎｐｕｔ１［２］に、論理的０（グランド電位）を与える。
【０１０１】
３．１段目のしきい素子回路ＦＴＥ［１］のしきい値を、構成データ用端子Ｉｎｐｕｔ２［１１］と構成データ用端子Ｉｎｐｕｔ２［１２］とに実現したい関数を設定するための所定の値を与えることによって、決定する。
【０１０２】
１段目のしきい素子回路ＦＴＥ［２］のしきい値を、構成データ用端子Ｉｎｐｕｔ２［２１］とＩｎｐｕｔ２［２２］とに実現したい関数を設定する所定の値を与えることによって、決定する。
【０１０３】
２段目のしきい素子回路ＳＴＥのしきい値を、しきい値制御用端子Ｉｎｐｕｔ３［２１］とＩｎｐｕｔ３［２］とに実現したい関数を設定する所定の値を与えることによって、決定する。
【０１０４】
これらの３つのしきい素子回路のしきい値を決定する構成データの入力を同時刻に、並列に行うことによって、関数を再構成するための期間を短縮することができる。また、これら３つの操作は、全く独立しているので、上記のように並列に行うことも、逐次的に行うことも可能である。
【０１０５】
４．制御信号入力用端子Ｃｔｌ２に、論理的０を与える。
【０１０６】
これによって、各しきい素子回路のフローティングゲートを、グランドから切り離し、電気的に浮遊状態とすることができる。
【０１０７】
５．制御信号入力用端子Ｃｔｌ１に論理的０を与え、関数初期化期間の状態を終了し、関数実行期間に移行する。
【０１０８】
６．入力変数用端子Ｉｎｐｕｔ１［１］とＩｎｐｕｔ１［２］とに与えられた論理値に応じて、設定した関数値が、Ｏｕｔｐｕｔ端子から出力される。
【０１０９】
【発明の効果】
本発明によれば、論理関数機能を再構成することが可能な集積回路を、少ないしきい素子数によって構成できるという効果と、各しきい素子回路においてしきい値を決定する信号がそれぞれ独立であるので、同時刻に構成データを各しきい素子回路に入力することによって、関数機能の再構成を短時間で行えるという効果とを奏する。
【図面の簡単な説明】
【図１】任意の２入力論理関数を実現するしきい素子回路網１００を表す図である。
【図２】図１に記載のしきい素子回路網において、論理関数を実現する際の各しきい値を表す図である。
【図３】任意の２入力論理関数を実現する関数機能再構成可能集積回路の回路構成図である。
【図４】２段目のしきい素子回路ＳＴＥにおいて、関数初期化期間にしきい値制御用端子Ｉｎｐｕｔ３［１］とＩｎｐｕｔ３［２］との値がともに論理的０である場合の規格化フローティングゲート電位Ｕfgの入力状態に対する値を表す図である。
【図５】２段目のしきい素子回路ＳＴＥにおいて、関数初期化期間にしきい値制御用端子Ｉｎｐｕｔ３［１］に論理的１、しきい値制御用端子Ｉｎｐｕｔ３［２］に論理的０が与えられる場合の規格化の規格化フローティングゲート電位Ｕfgの入力状態に対する値を表す図である。
【図６】２段目のしきい素子回路ＳＴＥにおいて、関数初期化期間にしきい値制御用端子Ｉｎｐｕｔ３［１］に論理的０、しきい値制御用端子Ｉｎｐｕｔ３［２］に論理的１が与えられる場合の規格化の規格化フローティングゲート電位Ｕfgの入力状態に対する値を表す図である。
【図７】２段目のしきい素子回路ＳＴＥにおいて、関数初期化期間にしきい値制御用端子Ｉｎｐｕｔ３［１］とＩｎｐｕｔ３［２］との値がともに論理的１である場合の規格化フローティングゲート電位Ｕfgの入力状態に対する値を表す図である。
【図８】１段目のしきい素子回路ＦＴＥ［１］の回路構成を表す図である。
【図９】１段目のしきい素子回路ＦＴＥ［１］の規格化フローティングゲート電位と入力状態の関係を表す図である。
【図１０】１段目のしきい素子回路ＦＴＥ［２］の回路構成を表す図である。
【図１１】１段目のしきい素子回路ＦＴＥ［２］の規格化フローティングゲート電位と入力状態の関係を表す図である。
【図１２】任意のｋに論理関数を実現する２段論理フィードフォワード型ｖＭＯＳ回路の構成図である。
【符号の説明】
１００…２入力論理関数を実現するしきい素子回路網、
ＦＴＥ［１］、ＦＴＥ［２］…１段目のしきい素子回路、
ＳＴＥ…２段目のしきい素子回路、
Ｉｎｐｕｔ１…入力変数用端子、
Ｉｎｐｕｔ２…構成データ用端子、
Ｉｎｐｕｔ３…しきい値制御用端子、
Ｕfg…規格化フローティングゲート電位、
Ｃｔｌ１、Ｃｔｌ２…制御信号入力用端子、
Ｄｌｙ１、Ｄｌｙ２…遅延回路。
【図１】
0003835746.tif 000003
【図２】
0003835746.tif 000004
【図３】
0003835746.tif 000005
【図４】
0003835746.tif 000006
【図５】
0003835746.tif 000007
【図６】
0003835746.tif 000008
【図７】
0003835746.tif 000009
【図８】
0003835746.tif 000010
【図９】
0003835746.tif 000011
【図１０】
0003835746.tif 000012
【図１１】
0003835746.tif 000013
【図１２】
0003835746.tif 000014