(57)【特許請求の範囲】
【請求項１】
入力変数用端子と構成データ入力端子とが容量結合されたフローティングゲートと、
前記フローティングゲートの電位をしきい処理の入力とする非線形素子と、
前記フローティングゲートと所定の電位の端子とを接続するスイッチ素子と
を有するしきい素子を１段目に具備する２段論理しきい素子回路網を構成要素とする関数機能再構成可能集積回路であって、
前記２段論理しきい素子回路網を構成要素とする基本回路部と、
前記基本回路部の出力部の出力値を保持する関数値保持回路と、
前記基本回路部の出力部から前記基本回路部の入力部へのフィードバックループ中に設けられ、関数機能を規定する構成データを保持し、前記基本回路部へ前記構成データの再書き込みを行う構成データ保持制御回路とを有し、
前記しきい素子の出力値を用いて当該しきい素子の構成データを生成することを特徴とする関数機能再構成可能集積回路。
【請求項２】
前記基本回路部の出力信号線が前記構成データ保持制御回路の入力部に接続され、前記構成データ保持制御回路の出力信号線が前記基本回路部の構成データ入力信号線に接続されることを特徴とする請求項１に記載の関数機能再構成可能集積回路。
【請求項３】
前記構成データを保持する素子を指定するアドレス信号を自動生成する回路を有することを特徴とする請求項１又は２に記載の関数機能再構成可能集積回路。
【請求項４】
前記アドレス信号を自動生成する回路の出力信号線が、前記基本回路部の入力部と前記構成データ保持制御回路の入力部とに接続されることを特徴とする請求項３に記載の関数機能再構成可能集積回路。
【請求項５】
前記基本回路部と前記フィードバックループとを構成要素とする関数セルの複数個が相互に接続され、前記各関数セルの動作を制御する制御信号線群が共通化されることを特徴とする請求項１、２、３又は４に記載の関数機能再構成可能集積回路。
【請求項６】
前記構成データ保持制御回路の生成する出力信号が前記スイッチ素子を制御する端子に入力されることを特徴とする請求項１乃至５のいずれかに記載の関数機能再構成可能集積回路。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は関数機能再構成可能集積回路及び関数機能再構成方法に関するものである。
【０００２】
【従来の技術】
まず初めに、文献１“K. Aoyama, et al., A Threshold Logic-Based Reconfigurable Logic Element with a New Programming Technology, FPL2000, Lecture Notes in Computer Science 1896, pp. 665-674, Springer-Verlag 2000."に示されているしきい素子による関数機能再構成可能集積回路における基本単位となる回路（基本セル）の構造と動作を説明する。
【０００３】
［しきい素子による関数機能再構成可能集積回路の基本単位回路の機能］
図１６は、文献１に示されている任意の３入力変数対称関数を実現する基本セルを表す。文献１では動作モードから４つのモードに分類し説明されているが、ここでは機能面に着目し、基本セルが実現する４つの機能を説明する。
【０００４】
第１の機能は、任意の３入力変数対称関数を実現する機能である。図１６中の入力1[1]〜入力1[3] 端子から入力される信号が入力変数であり、関数機能を規定するある期間中に入力2[1]〜入力2[4] 端子から関数機能構成用のデータ（構成データ）が入力され、保持される。関数機能実行期間では、保持されている構成データに応じて、入力変数に対する関数値が出力端子から出力される。
【０００５】
第２の機能は、メモリ機能である。動作モードとしては第１の機能の場合と同じである。基本セルは入力2[1]〜入力2[4] 端子の各々の端子から入力される論理的に２値の（０，１）に対する２４ 通りの状態を２段論理回路の１段目の４つのしきい素子が保持することが可能である。また、基本セルは、入力1[1]〜入力1[3] 端子から入力される変数の４つの入力状態数：０、１、２、３に応じて、１段目の４つのしきい素子（図１６中、inv で示す）の中の１つのしきい素子が保持している状態を出力する。これは、入力状態数をアドレスとし、保持している状態をメモリデータとするメモリ機能である。ここで用いた入力状態数は、入力変数中で論理的に１である変数の数であると定義する。
【０００６】
第３の機能は、マルチプレクサ機能（ＭＵＸ機能）である。この機能は第２の機能と類似の原理で達成される。入力2[1]〜入力2[4] 端子から入力される構成データを保持しないように設定する。この設定の下では、入力1[1]〜入力1[3] 端子から入力される入力状態数に対応する入力2[1]〜入力2[4] 端子から入力されている論理的な値のいずれか１つの端子の値が出力される。これは、入力状態数を選択データとし、入力2[1]〜入力2[4] 端子から入力される値をデータとするＭＵＸ機能である。
【０００７】
第４の機能は、配線機能である。第３の機能の場合は、入力1[1]〜入力1[3] 端子の値と入力2[1]〜入力2[4] 端子の値とを共に保持せず、４つ入力状態数に応じて、入力2[1]〜入力2[4] 端子の４つの値の中から１つを選択できた。入力1[1]〜入力1[3] 端子の値を保持することによって、入力状態数をある値に固定できる。この時、入力2[1]〜入力2[4] 端子の値の１つが常に選択されていることになり、配線と同等とみなすことができる。
【０００８】
本発明に関係のある基本セルの重要な機能は、任意の対称関数を実現する機能を持つ一方で、ＭＵＸ機能をも有するということである。
【０００９】
［基本セル中の１段目のしきい素子の動作と状態保持方法］
図１７（ａ）は、図１６の基本セルにおいて任意の対称関数を実現する場合の１段目の４番目のしきい素子の回路構成図である。図１７（ｂ）は、図１７（ａ）の回路から構成データを保持するための機能を削除した回路である。まず、図１７（ｂ）を用いて構成データを保持しない場合のしきい素子の動作について説明し、次に、図１７（ａ）に示すしきい素子回路が、図１７（ｂ）のものと同じ機能を有し、構成データを保持することが可能であることを説明する。
【００１０】
図１７（ｂ）の回路は機能上、２つの機能に分けることができる。第１の機能は、入力信号電位によりフローティングゲート電位を決める機能であり、複数端子とフローティングゲートの容量結合による回路構成で実現される。第２の機能は、フローティングゲート電位に応じた信号を出力する機能であり、ＣＭＯＳインバータで実現される。ここで、図１７（ｂ）の回路は入力2[4] 端子を持つために、入力状態数が３の場合に入力2[4] 端子の論理的値に応じて、フローティングゲート電位が第２の機能であるＣＭＯＳインバータの論理閾値電位より大きくなる場合と小さくなる場合が実現できれば良い。図１７（ｂ）の回路において、フローティングゲートが完全に浮遊状態（他の如何なる端子とも絶縁された状態）であると仮定すると、フローティングゲート電位Ｖｆｇは（１）式で表される。
【００１１】
【数１】
0003804920.tif 000002
また、Ｃｉ＝Ｃであり、フローティングゲート電位を電源電位Ｖｄｄで規格化した値ＵｆｇをＵｆｇ＝（Ｖｆｇ/Ｖｄｄ）、容量値に関して、Ｃｔｏｔａｌ＝Σｉ＝１３Ｃｉ＋Ｃｖ＋Ｃｇｎｄ とし、Ｕｃ＝Ｃ/Ｃｔｏｔａｌ、Ｕｖ＝Ｃｖ/Ｃｔｏｔａｌ、Ｕｇｎｄ＝Ｃｇｎｄ/Ｃｔｏｔａｌと定義する時、（１）式は（２）式となる。
【００１２】
【数２】
0003804920.tif 000003
（２）式中の（Ｖｉ/Ｖｄｄ）と（Ｖｖ/Ｖｄｄ）の値は０または１であり、各々、入力変数値と構成データ値に対応し、Σｉ＝１３（Ｖｉ/Ｖｄｄ）は入力状態数を表している。
【００１３】
図１８（ａ）は、前述のＣＭＯＳインバータの論理閾値電位をＶｄｄで規格化した値をＵｆｔｈとし、Ｕｃ＝Ｕｖ＝(1/7)、Ｕｇｎｄ＝(3/7）とした場合の入力状態数に対するＵｆｇの値を表す図である。横軸は入力状態数であるΣｉ＝１３（Ｖｉ/Ｖｄｄ）、縦軸はＵｆｇを表している。線１、線０は、各々Ｕｖ＝１の場合、Ｕｖ＝０の場合のＵｆｇを表す。入力状態数が３の場合のみ、Ｕｖの値に応じて、ＵｆｇとＵｆｔｈの大小関係が決まる。
【００１４】
図１８（ｂ）は、図１７（ｂ）の回路において図１８（ａ）の関係が達成されている時のＵｆｇとＶｄｄで規格化されたＶｏｕｔであるＵｏｕｔとの関係を示す図である。これから、図１８（ａ）における入力状態数が３の時のみＵｏｕｔが０または１のいずれか一方を取ることができることが判る。
【００１５】
以上が構成データを保持しない場合における、１段目の４番目のしきい素子の動作である。
【００１６】
次に、図１７（ａ）に示すしきい素子回路が、図１７（ｂ）のものと同じ機能を有し、構成データを保持することが可能であることを説明する。図１８（ａ）に示される入力状態数とＵｆｇの関係を、構成データが入力されていない場合に再現することが構成データが保持されているということである。図１７（ａ）に示す回路は、フローティングゲートにパストランジスタ swnmos が接続されているために、フローティングゲートは前記の完全浮遊状態ではない。しかしながら、次の操作を行う時にフローティングゲート電位は（１）式で表すことができる。まず、ctl4 端子の電位Ｖｃｔｌ４とctl2 端子の電位Ｖｃｔｌ２とをＶｄｄにし、パストランジスタ swnmos とトランスミッションゲート swtg とを導通状態に、パストランジスタ swpmos を遮断状態にする。この操作をフローティングゲートを初期化すると呼ぶ。フローティングゲートの初期化時に、入力信号電位であるＶｉとＶｖをＶｉ＝Ｖｖ＝０とする。上記操作の後、Ｖｃｔｌ４＝Ｖｃｔｌ２＝０とし、swnmos を遮断しフローティングゲートを過渡的に浮遊状態にし、swtg を遮断し swpmos を導通する。この状態を関数機能実行状態と呼ぶ。以上の操作により、フローティングゲート電位の規格化値Ｕｆｇは図１８（ａ）中の線１で表される。これは、容量Ｃｖに印加される電位Ｖｖ’がＶｖ'＝Ｖｄｄであるからである。一方、フローティングゲートの初期化時にＶｖのみＶｖ＝Ｖｄｄとし、初期化を行った場合は、Ｃｖに電位が印加されているにも係わらず、swnmos が導通状態であるため、Ｖｆｇ＝０である。図１９は、上記の設定における入力状態数に対するＵｆｇの関係を表している。図１９中の線１’がＶｖ＝Ｖｄｄで初期化した場合である。
【００１７】
関数機能実行状態においてＶｖ'＝Ｖｄｄであっても、フローティングゲートの初期化の際のＶｖの電位に依存して、図１８（ａ）の線１と図１９の線１’を実現することができる。これによって、フローティングゲートが完全浮遊状態にある図１７（ｂ）の回路における図１８（ａ）の線１と線０の２つの状態を再現できる。
【００１８】
以上の操作が構成データの保持方法であり、図１７（ａ）の回路が構成データを保持可能にする回路である。
【００１９】
【発明が解決しようとする課題】
次に、前記文献１に示される関数機能を保持する方法と構造では、関数機能を規定する状態が経時変化を伴うために、同じ状態を維持できる時間に上限が存在するという問題があることを指摘する。
【００２０】
［状態保持回路の問題点］
図２０（ａ）は、図１７（ａ）の回路のフローティングゲートに接続された状態保持に係わる素子によって構成された回路を表す図である。図２０（ｂ）は、フローティングゲートからの主なリーク電流経路となる図２０（ａ）中のパストランジスタ swnmos のリーク電流に着目した等価回路図である。図２０（ａ）中のＣｉ、Ｃｖは図１７（ａ）中のＣｉ、Ｃｖに対応し、Ｃｍｏｓはフローティングゲート端子とフローティングゲートを入力ゲートとするＭＯＳトランジスタの各電極との間の容量の代表であり、フローティングゲートに対して反対側の端子をグランド（接地）電位にした。このように設定しても問題点を指摘する際の一般性は失わない。
【００２１】
図１７（ａ）の回路において、構成データの保持を可能にするのは、入力2a[4] 端子から入力された電位がフローティングゲート中に誘起する電荷量が swnmos を介してグランドから供給され、フローティングゲート電位がグランド電位に保たれた状態で swnmos が遮断され、フローティングゲートに前記の電荷量が固定電荷量として存在しているからである。この電荷量の値が変化する時、保持した状態は失われる。具体例を挙げて説明する。まず、図２０（ａ）の回路において、Ｃｉ、Ｃｖ≫Ｃｍｏｓを仮定する。 swnmos を導通状態にし、フローティングゲートを初期化している時、入力1[i] 端子の電位を０、入力2a[4] 端子の電位をＶｄｄにする。この時、フローティングゲートには電荷量Ｑ＝−Ｃｖ・Ｖｄｄが swnmos を介してグランドから流れ込む。次に、swnmos を遮断し、関数機能実行状態にする。リーク電流が流れる経路が存在しない場合はフローティングゲートには電荷量Ｑが常時存在し、構成データを保持している。この状態で入力1[i] 端子の電位がＶｄｄに変化すると、フローティングゲート電位Ｖｆｇは（３）式で表される。但し、入力2a[4] 端子電位はＶｄｄのままであるとする。
【００２２】
【数３】
0003804920.tif 000004
一方、リーク電流が流れる経路が存在していて、ある時間経た後にＱ＝−(Ｃｖ＋Ｃｉ)・Ｖｄｄ に変化したと仮定する。この時、前記と同様に入力1[i] 端子の電位がＶｄｄ に変化した時のＶｆｇは（４）式となる。
Ｖｆｇ ＝０                            （４）
フローティングゲート電位は０のままであり、構成データを保持した際に実現した関数機能とは別の関数機能を実現する。このように、リーク電流経路が存在することによって保持した関数機能とは異なる関数機能を実現することになり、これは構成データが失われたことを意味している。
【００２３】
次に、実回路におけるリーク電流経路によって上記のような現象が生じる可能性があることを説明する。図２０（ａ）の回路中のパストランジスタ swnmos の主なリーク電流としては、swnmos の遮断時にフローティングゲートからグランドにトランジスタのドレインからソースヘの経路を通って流れるサブスレッショルド電流 isrc とフローティングゲートに接続されているドレイン電極と基板（ウェル）との間のＰＮ接合によるＰＮ接合逆方向飽和電流 irdio との２つのリーク電流が考えられる。図２０（ｂ）は、図２０（ａ）の swnmos を電流源 isrc とＰＮ接合ダイオード rdio に置き換えた回路図である。 swnmos 遮断時のサブスレッショルド電流 isrc は、(５）式で表される。
【００２４】
【数４】
0003804920.tif 000005
（５）式中の、ｑは電子電荷量の絶対値、ｋはボルツマン定数、Ｔは絶対温度、μは電子のＳｉとＳｉＯ２との界面における移動度、Ｃｏｘはパストランジスタ swnmos の単位面積ゲート容量値、Ｖｔｈは swnmos の閾値電位、Ｗ、Ｌは各々 swnmos のチャネル幅、チャネル長であり、ηは２前後の値のパラメータである。（５）式を用いて、ｉｓｒｃを求めると、0.1fA〜10pA のオーダーである。但し、fA は 1×10−１５A、pA は 1×10−１２A を表す。（５）式から判るように、swnmos の閾値電位が +0.1V 程度変化するとリーク電流 isrc が約１桁小さくなる程、isrc はＶｔｈに対する感度が高く、リーク電流のオーダーが幅を有するのも、Ｖｔｈの値の選び方に依存するためである。ＤＲＡＭのメモリセル中のトランジスタのように基板バイアスを行えば、閾値電位は高くなり、サブスレッショルド電流によるリーク電流は 1fA 程度に抑制することができる。一方、ＰＮ接合逆方向飽和電流 irdio は、（６）式で表される。
【００２５】
【数５】
0003804920.tif 000006
（６）式中の、ｎｐ０、ｐｎ０は各々ｐ型領域中の少数キャリアである電子の濃度とｎ型領域中の少数キャリアである正孔の濃度であり、Ｄｅ、Ｄｈは各々少数キャリアである電子と正孔の拡散定数、Ｌｅ、Ｌｈは各々少数キャリアである電子と正孔の拡散距離、ＡｄはＰＮ接合ダイオード面積を表す。irdio は 1fA〜1pA のオーダーになる。
【００２６】
このように、２つのリーク電流の大小関係は swnmos の構造に依存するが、ここでは約 10fA と仮定する。Ｃｖ＝Ｃｉ＝ 100fF、Ｖｄｄ＝ 3V、Ｃｉ≫Ｃｍｏｓ である場合のリーク電流によるＶｆｇの変化を次に示す。前記の通り入力2a[4] 端子にのみＶｄｄを与えて初期化し、入力2a[4] 端子と入力1[i] 端子にＶｄｄを与えて関数機能実行状態にする。この時、フローティングゲート中の電荷量Ｑは、Ｑ＝ -300fC である。関数機能実行状態において入力1[i] 端子の電位をＶｄｄにした場合のＶｆｇは、Ｖｆｇ＝１.５Ｖである。リーク電流のために、この電位の（1/2）であるＶｆｇ＝ 0.75V に変化するまでの時間は、約 15sec である。但し、Ｖｆｇ＝ 0.75V までは逆方向飽和電流が流れると仮定した。このように数秒で構成データは失われる。
【００２７】
［回路シミュレーションによる問題点の明確化］
フローティングゲートに接続されているパストランジスタのリーク電流において、ＰＮ接合逆方向飽和電流が支配的であると仮定し、回路シミュレーションを用いて構成データの損失を検証した結果を以下に示す。
【００２８】
図２１は、構成データ保持が可能である２入力変数対称関数を実現する回路の回路図である。図２１の回路は、図１６の回路と類似の回路構成であるが、配線機能は持たず、回路特性に考慮して遅延回路とバッファが新たに付加されている。また、任意の２入力変数対称関数を実現可能なように、２段論理フィードフォワード回路の１段目のしきい素子と２段目のしきい素子の入力端子とフローティングゲートとの間の容量値は、文献２「青山一生、澤田宏、名古屋彰、中島和生、ニューロンＭＯＳによる対称関数回路の設計手法、信学技報 ＣＰＳＹ99-90、pp. 49-56, Nov. 1999.」に示される通りに以下のように設定される。２段目のしきい素子 minv の５つの入力端子とフローティングゲートとの間の容量値は等しく設定される。また、１段目のしきい素子 pinv1、pinv2、pinv3 の入力端子とフローティングゲートとの間の容量値は、初期化時に入力2[i] 端子（１≦ｉ≦３）から入力された論理的値の反転が、入力状態数が０、１、２の時の minv に出力となるように設定される。
【００２９】
次に回路シミュレーションの方法について述べる。リーク電流について、フローティングゲートに接続されているパストランジスタのドレインと基板（ウェル）間のＰＮ接合逆方向電流を 0 とした場合（Ａ）と、加速試験として（10fA×2×10６）の場合（Ｂ）とのシミュレーション結果を比較する。また、初期化時の（入力2[1], 入力2[2], 入力2[3]）端子の構成データを論理的（０，０，０）として如何なる入力状態数に対しても出力端子の出力が論理的１になるようにした。特に、入力状態数が２の場合の１段目のしきい素子 pinv3 の出力値を波形整形した結果を出力する p3out 端子に着目した。
【００３０】
図２２は、上記（Ａ）の場合の時間と着目する端子の電位との関係を表す図であり、図２３は、（Ｂ）の場合の時間と端子の電位の関係を表す図である。着目する端子は、入力1 端子（入力1[1] 端子と入力1[2] 端子の総称）、ctl1 端子、ctl2 端子、pinv3 のフローティングゲートである fgp3、pinv3 の出力の論理値を出力する端子である p3out、出力子の６つの端子である。図２２と図２３とにおいて、0〜100nsec の間を初期化時間にし、100〜500nsec を論理機能実行時間とした。
【００３１】
図２２と図２３とにおいて、入力1 端子の電位は初期化時間には論理的０に、論理機能実行時間には論理的１に設定される。また、ctl1 端子とctl2 端子の電位は、構成データ書き込み時間に論理的１に、構成データを保持する際に論理的０に設定される。初期化時間内にctl1 端子とctl2 端子の電位が論理的１の場合は、しきい素子のフローティングゲートに接続されているパストランジスタと、１段目のしきい素子と２段目のしきい素子との間に接続されているパストランジスタとが導通しているため、fgp3 端子の電位と p3out 端子の電位とは論理的０に、出力端子の電位は論理的１になる。一方、ctl1 端子とctl2 端子の電位が論理的０になり、構成データが保持されると、fgp3 端子の電位は上昇するものの、pinv3 のしきい値電位に達していないため、p3out 端子の電位は論理的１となる。この時、入力状態数は０であるため、出力端子の電位は pinv1 の出力によって決まり、論理的１を出力する。
【００３２】
図２２に示すリーク電流が存在しない場合、論理機能実行時間において、入力状態数が２になると、fgp3 端子の電位はしきい値電位に達し、p3out 端子の電位は論理的０になる。このため、出力端子の電位は論理的１になる。
【００３３】
一方、図２３に示すリーク電流を 2×10６ 倍した加速試験の場合、論理機能実行時間において、リーク電流により fpg3 端子の電流が徐々に上昇し続け、300nsec 付近でしきい値電位に到達し、p3out 端子の電位は徐々に論理的１に近付く。このため、出力端子は、350nsec と 400nsec との間で論理的１から論理的０に論理反転する。このように、本来保持している構成データにより実行される論理機能とは異なる論理機能に遷移することが判る。
【００３４】
［状態保持回路の問題点の要約］
以上、詳しく説明したように、図１７（ａ）の構成データを保持する回路は数秒間は構成データを保持することが可能であるが、パストランジスタに内在するリーク電流経路のために、ある時間（前記の例では数秒）以上の長時間に渡り構成データを保持することは困難である。従来の回路構成には、構成データを保持可能な時間に対して、関数機能を実行する上で障害となる上限値が存在するという問題がある。
【００３５】
また、この問題の原因は、メモリ回路の１つであるＤＲＡＭ（Dynamic Random Access Memory）がリフレッシュ機能を必要とする理由と同じである。同じ原因に対する、現在の計算機の主記憶として重要な役割を果たしているＤＲＡＭに組み込まれている問題解決方法について述べる。
【００３６】
［基本セルの状態保持回路と同じ問題を有するＤＲＡＭの構造］
前記の関数機能保持回路と同じ容量にパストランジスタが接続されており、パストランジスタの遮断時において、容量に蓄積されている電荷量を保持しなければならない回路の１つにＤＲＡＭのメモリセルがある。図２４は、Ｖｄ/２プリチャージ方式のＤＲＡＭのメモリセルとその周辺回路の回路図である。図２４に示すＤＲＡＭメモリセルが前記の関数機能保持回路と同じ問題を有することを、メモリセルに書き込みを行った後の時間とメモリセルの状態の関係を用いて説明する。
【００３７】
まず、Ｐ端子を高電位にし、ビット線ＢＬ、ＢＬ’をＶｄ/２電位にプリチャージする。その後、Ｐ端子を低電位にし、両ビット線を浮遊状態にしプリチャージ電位に固定する。次に、ワード線ＷＬにワードパルスを印加し昇圧する。今、メモリセルの容量ＣＳに電荷が蓄積されていない状態が保持されていたとする。メモリセルのＮＭＯＳＦＥＴが導通するため、ビット線ＢＬ周りの容量ＣＢとＣＳとによってプリチャージされている電荷量の再分配が行われ、ビット線ＢＬの電位はプリチャージ電位Ｖｄ/２に対して、(１/２)・(ＶＳ・ＣＳ)/(ＣＢ＋ＣＳ）だけ低下する。この状態で、ＳＮＬ端子の電位をＶｄ/２から低電位にし、次にＳＰＬ端子の電位をＶｄ/２から高電位にする。この操作によってビット線ＢＬは低電位に、ＢＬ’は高電位になる。前記の状態の時に、ＹＬ端子の電位を高電位にし、ビット線をＩ/Ｏに接続し、高電位Ｖｄをビット線に書き込む。この後、ワード線ＷＬを低電位にし、ＮＭＯＳＦＥＴを遮断し、ＹＬ端子を低電位にしビット線をＩ/Ｏから遮断する。この操作によって、メモリセルに高電位Ｖｄが書き込まれ、容量ＣＳは電荷量ＣＳ・Ｖｄを保持しており、ＮＭＯＳＦＥＴで遮断されている。
【００３８】
容量ＣＳはＮＭＯＳＦＥＴが高インピーダンスであるため、直ちに電荷量を放電することはないが、図２０（ｂ）でしめしたＮＭＯＳＦＥＴに内在する２つのリーク電流経路を持つ。このため、時間の経過と共に電荷量が減少する。ＤＲＡＭの場合、メモリ容量が 25〜30fF、ビット線容量が 125〜180fF であるため、今、メモリ容量ＣＳ＝ 25fF、ビット線容量ＣＢ＝ 150fF、許容されるビット線電位変化を 100mV、リーク電流を 1×10−１４Ａ、電源 2.5V とすると、1.375sec の時間だけメモリが保持されることになる。
【００３９】
このように、ＤＲＡＭメモリセルの場合は状態を保持できる上限時間（最長時間、最大時間）がある。
【００４０】
［ＤＲＡＭにおけるリフレッシュ機能］
ＤＲＡＭは、前記の状態を保持可能な時間に上限が存在するという問題をリフレッシュ機能によって解決している。
【００４１】
図２５は、ｎワード線を持つＤＲＡＭメモリセルアレイを表す図である。図２５のアレイを構成する基本的な回路構成（１ワード線の場合）は図２４に示す回路と同じである。リフレッシュ動作はワード線単位で行われ、同一ワード線に接続されているトランジスタに接続されているメモリセル容量ＣＳは同時刻にリフレッシュされる。例えば、ワード線ＷＬ１に関係する容量ＣＳ１１、ＣＳ１２、…は同時にリフレッシュされる。
【００４２】
次にリフレッシュ動作について具体的に説明する。まず、Ｐ端子を高電位にし、ビット線ＢＬ１、ＢＬ１’、…をＶｄ/２電位にプリチャージする。その後、Ｐ端子を低電位にし、両ビット線を浮遊状態にしプリチャージ電位に固定する。次に、ワード線ＷＬ１にワードパルスを印加し昇圧する。今、ビット線ＢＬ１に着目すると、メモリセルの容量ＣＳ１１に電荷が蓄積されている状態が保持されていたとする。メモリセルのトランジスタが導通するため、ビット線ＢＬ１周りの容量ＣＢ１とＣＳ１１とによってプリチャージされている電荷量の再分配が行われ、ビット線ＢＬ１の電位はプリチャージ電位Ｖｄ/２に対して、(１/２)・(ＶＳ・ＣＳ１１)/(ＣＢ１＋ＣＳ１１）だけ上昇する。この状態で、ＳＮＬ端子の電位をＶｄ/２から低電位にし、次にＳＰＬ端子の電位をＶｄから高電位にする。この操作によってビット線ＢＬ１は高電位に、ＢＬ１’は低電位に各々増幅される。この後、ワード線ＷＬ１を低電位にし、トランジスタを遮断することで、再び高電位が容量ＣＳ１１の両端に印加される。他のビット線についても、ワード線ＷＬ１に関係する容量は同時にリフレッシュされる。この操作を全てのワード線に対して順次繰り返すことで、全てのメモリセルのリフレッシュが終了する。
【００４３】
図２６は、ワード線ＷＬ１〜ＷＬｎまでのリフレッシュのタイミングを表す図である。あるワード線に関係するメモリセルはリフレッシュはアクセスを禁止されているが、それ以外の期間はアクセスを許されている。
【００４４】
以上、説明したようにＤＲＡＭメモリセルではリフレッシュ機能により、リーク電流により失われる電荷量を再び元の電荷量に戻している。一方、前述のしきい素子回路における状態保持回路では、増幅器を設けていないためにＤＲＡＭと同様の手法は適用できない。
【００４５】
［従来の技術における問題点の要約］
以上、しきい素子に状態を保持させる場合は、状態保持時間に関して上限時間が存在し、この時間以上の間、状態を保持し続けることは困難であるという問題があることを説明した。また、ＤＲＡＭのメモリセルで用いられているリフレッシュ回路を流用することも回路構造の相違から困難であることを説明した。
【００４６】
複数の入力信号端子と容量によって結合されるフローティングゲートを入力ゲート電極とするＣＭＯＳインバータを基本的構成要素とするしきい素子において、フローティングゲートとグランドとの間に設けられたパストランジスタを導通するまたは、遮断するによって、フローティングゲートの状態を初期化状態または関数機能実行状態に制御し、初期化時に設定されたフローティングゲート電位とフローティングゲート中の電荷量とにより構成データを保持する方法と回路構成は、パストランジスタに存在するリーク電流経路を介してフローティングゲート中の電荷量が経時変化を起こす可能性があり、ある時間以上の長時間に渡り、構成データを保持することが困難であるという問題があった。
【００４７】
本発明の目的は、上記の問題を解決し、電源が供給されている時間中は、関数機能を規定する構成データの保持を可能とする関数機能再構成可能集積回路及び関数機能再構成方法を提供することである。
【００４８】
【課題を解決するための手段】
上記課題を解決するために、本発明においては、請求項１に記載したように、
入力変数用端子と構成データ入力端子とが容量結合されたフローティングゲートと、前記フローティングゲートの電位をしきい処理の入力とする非線形素子と、前記フローティングゲートと所定の電位の端子とを接続するスイッチ素子とを有するしきい素子を１段目に具備する２段論理しきい素子回路網を構成要素とする関数機能再構成可能集積回路であって、前記２段論理しきい素子回路網を構成要素とする基本回路部と、前記基本回路部の出力部の出力値を保持する関数値保持回路と、前記基本回路部の出力部から前記基本回路部の入力部へのフィードバックループ中に設けられ、関数機能を規定する構成データを保持し、前記基本回路部へ前記構成データの再書き込みを行う構成データ保持制御回路とを有し、前記しきい素子の出力値を用いて当該しきい素子の構成データを生成することを特徴とする関数機能再構成可能集積回路を構成する。
【００４９】
また、本発明においては、請求項２に記載したように、
前記基本回路部の出力信号線が前記構成データ保持制御回路の入力部に接続され、前記構成データ保持制御回路の出力信号線が前記基本回路部の構成データ入力信号線に接続されることを特徴とする請求項１に記載の関数機能再構成可能集積回路を構成する。
【００５０】
また、本発明は、請求項３に記載のように、
前記構成データを保持する素子を指定するアドレス信号を自動生成する回路を有することを特徴とする請求項１又は２に記載の関数機能再構成可能集積回路を構成する。
【００５１】
また、本発明は、請求項４に記載のように、
前記アドレス信号を自動生成する回路の出力信号線が、前記基本回路部の入力部と前記構成データ保持制御回路の入力部とに接続されることを特徴とする請求項３に記載の関数機能再構成可能集積回路を構成する。
【００５２】
また、本発明は、請求項５に記載のように、
前記基本回路部と前記フィードバックループとを構成要素とする関数セルの複数個が相互に接続され、前記各関数セルの動作を制御する制御信号線群が共通化されることを特徴とする請求項１、２、３又は４に記載の関数機能再構成可能集積回路を構成する。
【００５３】
また、本発明は、請求項６に記載のように、
前記構成データ保持制御回路の生成する出力信号が前記スイッチ素子を制御する端子に入力されることを特徴とする請求項１乃至５のいずれかに記載の関数機能再構成可能集積回路を構成する。
【００６１】
【発明の実施の形態】
本発明は、関数を構成するデータを保持することが可能であり、しきい素子を構成要素とする任意の論理関数を実現する回路において、関数構成データが時間の経過と共に損失することを抑止する技術であり、保持している関数構成データを読み出し、フィードバックループにより再び書き込む機能を有することを最も主要な特徴とする。
【００６２】
また、構成データを読み出す際にデータを保持している素子に対するアドレスを自動生成し、自動的に書き込む回路を付加することにより、自動的リフレッシュ機能を有することも特徴とする。
【００６３】
従来の技術は、一時的に関数構成データを保持することが可能であるが、時間の経過と共に構成データが失われるという問題があった。
【００６４】
本発明はこの問題を解決し、電源が供給されている時間中は、関数機能を規定する構成データの保持を可能とする関数機能再構成可能集積回路及び関数機能再構成方法を提供するものである。以下に、本発明を実施の形態例によって説明する。
【００６５】
本発明の実施の形態は第１の実施の形態例と第２の実施の形態例と第３の実施の形態例とによって構成される。
【００６６】
まず、第１の実施の形態例によって、任意の対称関数を実現する基本セルにおいて、関数を構成するデータを順次読み出し、構成データ入力端子にフィードバックし、再書き込みを行うことが可能な回路構成を開示する。このように、本発明は、時間の経過と共に構成データが損失することを抑止することを可能にする。  次に、第２の実施の形態例によって、任意の対称関数を実現する基本セルにおいて、関数を構成するデータを自動的に読み出し、構成データ入力端子にフィードバックし、再書き込みを行うことが可能な回路構成を開示する。このように、本発明は、時間の経過と共に構成データが損失することを抑止し、かつ、自動的に構成データを読み出すことを可能にする。
【００６７】
最後に、第３の実施の形態例によって、任意の対称関数のみならず、任意の論理関数を実現する基本セルに対しても第１の実施の形態例と第２の実施の形態例で示した回路構成と方法が適用可能であることを開示する。
【００６８】
（第１の実施の形態例）
本発明の第１の実施の形態例は、任意の対称関数を実現する基本セルがメモリセル機能またはマルチプレクサ機能を併せ持つという特徴を利用し、ある時間間隔ごとに構成データを読み出し、その値をフィードバックループを用いて構成データ入力用の端子に再び入力し、再び構成データを保持し直すことを行う回路構成を特徴とする。
【００６９】
［回路構成概要］
図１は、任意の対称関数を実現する回路の構成データをフィードバックループを用いて再書き込みすることにより構成データの損失抑止を行う回路を表す概念図である。しきい素子回路網を構成要素として有し関数機能を実現する基本回路部は、任意の対称関数を実現する機能とメモリ機能とを併せ持つ回路である。基本回路の出力 out0 端子は、直接次段の回路に出力される out1 端子と関数値保持回路と構成データ保持制御回路に接続される。この構成データ保持制御回路は、関数機能を規定する構成データの前記基本回路部への再書き込みを行う回路である。関数値保持回路は順序回路であり、基本回路部の出力値が変化しても、同じ値を次段回路に out2 端子を介して供給することを可能とする。構成データ保持制御回路は、基本回路部の出力値を構成データ入力端子にフィードバックすることにより、構成データの再入力を行う。この場合に、基本回路の出力 out0 端子と構成データ入力端子とが構成データ保持制御回路を介して接続することによって、請求項１に記載のフィードバックループが形成される。
【００７０】
基本回路部で実現される論理関数値を、関数値保持回路が保持し次段回路に供給している時間に、基本回路部のメモリ機能によって保持している構成データを順次読みだし、構成データ保持制御回路を介して、構成データ入力端子に再入力することによって、構成データが失われることを回避することができる。
【００７１】
［回路構成Ａ］
図２は、保持されている構成データの損失を防ぐことが可能な機能を持ち、２入力変数対称関数を実現する回路の回路図である。図２の回路は３つの主要な回路から構成される。
【００７２】
１番目は、図１の基本回路部に当たり、任意の対称関数を実現し、構成データを保持する基本構造を有する回路であり、図２中の核回路部 201 と構成データ入力切替え回路部 202 と構成データ入力切り替え信号生成回路部 203 とから構成される。図２中の pinv1、 pinv2 等が、請求項１に記載の２段論理しきい素子であり、上記の基本回路部に当たる回路は、請求項１に記載のように、２段論理しきい素子回路網を構成要素としている。また、図２中の pinv1、 pinv2 等が、請求項１に記載のしきい素子であり、図２が示すように、請求項１に記載の、基本回路部の構成要素の１つであるしきい素子が、複数の容量を有し、入力変数と前記構成データとが、それぞれ、相異なる前記容量の一方の端子に入力され、前記容量の他方の端子が互いに接続され１つの端子となる構造を有し、前記１つの端子の電位がしきい処理を行う非線形素子の入力値となる構造を有する関数機能再構成可能集積回路が構成されている。また、上記のしきい素子は、「従来の技術」において説明したように、ＣＭＯＳインバータで実現される。また、図２中の pfsw3 は、前記１つの端子がスイッチ素子を介して所定の電位を有する端子と接続される（今の場合は接地される）構造に該当し、この構造にＭＯＳトランジスタを用いれば、前記スイッチ素子がＭＯＳトランジスタを用いた回路で構成されること、が実現する。
【００７３】
２番目は、核回路部 201 が出力した論理関数を次段の回路に伝達するための順序回路であり、図１の関数値保持回路に該当し、図２では関数値保持回路部 204 で表される。
【００７４】
３番目は、現状態の回路が保持している構成データを読み出し、再入力を可能とするための回路部であり、一時的構成データ保持回路部 206 と書き込み信号生成回路部 208 が用いられる。図１ではこれらの２つの回路を併せて構成データ保持制御回路で示されている。また、核回路部 201 は、図２１の回路の部分回路と同じものである。
【００７５】
なお、図２中、205は関数保持制御信号生成回路部であり、207は一時的構成データ保持制御信号生成回路部である。
【００７６】
［回路構成Ａの構成データ損失抑止機能（リフレッシュ機能）］
図２の核回路部 201 は、「従来の技術」で述べた通り、任意の２入力変数対称関数を実現する機能と同時に３入力データのメモリ機能を有する。このメモリ機能とは、入力状態数をアドレスとし、３つの１段目のしきい素子に保持される構成データをメモリデータとし、回路の出力端子の論理値を出力値とする機能である。今、２入力対称関数の１つである如何なる入力値に対しても論理的１を出力する「１出力」関数を実現するように初期化されているとする。これは、初期化時に入力2[1] 端子、入力2[2] 端子、入力2[3] 端子の電位を全て０に設定することで実現できる。また、核回路部 201 で実現している論理関数機能を単純に次段に伝達する時は、ctl1 端子、ctl2 端子、ctl3 端子、ctl4 端子、ctls1 端子、ctls2 端子の全ての制御端子を論理的０にする。
【００７７】
構成データ損失抑止機能（リフレッシュ機能）を動作させる時の手順を以下に示す。
【００７８】
まず、ctl2 端子を論理的０から論理的１にし、関数値保持回路に核回路部 201 の出力値を取り込みラッチする。これにより次段へ論理値を安定して供給できる。
【００７９】
次に、構成データを読み出す対象となる１段目のしきい素子に対する選択データを入力状態数として入力する。ここでは、pinv3 の構成データを読み出すために、入力1[1] 端子、入力1[2] 端子の電位を共に論理的１にする入力状態数２を用いる。
【００８０】
次に、ctl3 端子の電位を論理的０から論理的１に変え、一時的構成データ保持回路部 206 に pinv3 に対する構成データをラッチする。同時に、核回路部 201 の出力値が書き込み信号生成回路部 208 に転送される。
【００８１】
次に、pinv3 に構成データを再入力するために、入力1[1] 端子、入力1[2] 端子を論理的０にし、書き込み信号生成回路部 208 において、pinv3 を選択する信号を生成する。書き込み信号生成回路部 208 は、ctl4 端子が論理的０の場合は全ての出力が論理的１である。一方、ctl3 端子が論理的１であり、ctls1 端子と ctls2 端子とが共に論理的１である場合は、入力2[3] 端子に接続されるトランスミッションゲート fbtg3 に出力する端子のみが、一時的構成データ保持回路部 206 の出力値の反転を出力し、他の２つの出力は論理的１である。
【００８２】
このように、ctl4 端子の電位を論理的１とし、ctl1 端子と ctl2 端子との電位の論理的値を１とし、トランスミッションゲート fbtg3 に核回路部 201 の出力値の反転を転送する。今、fbtg3 は導通状態であるので、書き込み信号生成回路部 208 の出力値は pinv3 の入力の１つとなる。
【００８３】
次に、ctlp3 端子の電位を論理的１にし、パストランジスタ pfsw3 を導通させ、pinv3 の初期化を行う。初期化終了後は、以上の手続きを逆に、ctlp3 端子を論理的０にし、ctl4 端子を論理的０にし、ctl3 端子を論理的０にし、ctl2 端子を論理的０にする。この操作により、pinv3 の構成データのリフレッシュが終了する。
【００８４】
この操作と同様の操作を他の１段目のしきい素子に対して順次行うことにより全てのしきい素子のリフレッシュが終了する。この一連の操作を定期的に繰り返すことにより、構成データの損失を抑止することが可能になる。
【００８５】
ここで、上記で簡単に述べた書き込み信号生成回路部 208 の機能を説明する。書き込み生成回路部 208 は３つの４入力ＮＡＮＤ回路によって構成され、一時的構成データ保持回路部 206 にラッチされている値と ctl4 端子の値が全てのＮＡＮＤ回路の入力となり、トランスミッションゲート fbtg1 を介して入力2[1] 端子の入力となる出力を持つ４入力ＮＡＮＤ回路 wnd1 には、ctls1 端子の論理的値の反転と ctls2 端子の論理的値の反転とが入力され、同様に wnd2 には、ctls1 端子の反転値と ctls2 端子の論理値とが入力され、wnd3 には、ctls1 端子と ctls2 端子との論理値とが入力される。今、ctl4 端子電位が論理的１である時、ctls1 端子と ctls2 端子とが共に論理的０の場合は、wnd1 のみが核回路部 201 の出力値の反転を出力し、他の２つの出力端子は論理的１を出力し、ctls1 端子電位が論理的０であり、ctls2 端子電位が論理的１である場合は、wnd2 のみが核回路部 201 の出力値の反転を出力し、ctls1 端子電位と ctls2 端子電位とが共に論理的１である場合は、wnd1 のみが核回路部 201 の出力値の反転を出力する。このように二選択信号生成とフィードバックループ形成を同時に行うことができる。
【００８６】
以上、１段目のしきい素子の構成データのリフレッシュ機能について説明した。２段目のしきい素子についても同様にパストランジスタ mfsw のリーク電流によりフローティングゲート中の電荷量と電位の関係が経時変化する。これを回避するために、上記の１段目のしきい素子の pfsw が導通している初期化時に ctlｍ 端子を論理的１にし、mfsw を導通させ minv のフローティングゲートの初期化を行う。この操作により、minv のリフレッシュも可能になる。
【００８７】
［回路構成Ａのリフレッシュ機能の回路シミュレーション結果］
図３は、図２に示す回路における上記の pinv3 の構成データのリフレッシュを実行する回路シミュレーションより得られた時間と各端子電位の関係を表す電位波形図である。図２中のパストランジスタ mfsw、pfsw1、pfsw2、pfsw3 のリーク電流について「発明が解決しとうとする課題」で示したのと同様に加速試験用にＰＮ接合リーク電流を 10ｆＡ×2×10６ とする。この過渡解析シミュレーションではリーク電流のみを 2×10６ 倍しているので、必ずしも時間軸を（1/2)×10−６ 倍したことにはならないことを補足しておく。
【００８８】
図３中、横軸は時間を表し、0〜100nsec は初期化時間であり、100〜500nsec は論理関数機能実行時間である。縦軸は、注目する各端子電位を表す。入力1 は入力1[1] と入力1[2] の総称であり、同じ電位設定する。入力2 は入力2[1]〜入力2[3] の総称であり、常に論理的０にする。初期化時間の電位設定により、論理関数機能実行時には出力端子電位の論理値は pinv3 の出力値である p3out の論理値の反転である論理的１になる。リーク電流が存在するために、p3out 端子の電位は、徐々に上昇する。300〜350nsec の間に前記の構成データ再入力のための操作を行う。この操作により、350nsec 以降の p3out 端子の電位は再び論理的０に近付き、構成データが再入力されていることが、図３の p3out 端子の変化から判る。この操作によって、出力端子の電位は安定して論理的１を保ちつづけることが確認できる。
【００８９】
［回路構成Ｂ］
図５は、図２の回路と同様に任意の２入力対称関数を実現可能であり、リフレッシュ機能を有する回路を表す図である。図５に示す回路は、図２の回路とは、２段目のしきい素子 minv のフローティングゲートを初期化する回路 501 の部分が異なる。図２の回路は、入力1[1] 端子と入力1[2] 端子に接続されるトランスミッションゲートが、入力1[1] 端子と入力1[2] 端子とが１段目のしきい素子の入力端子に接続された後に設置されていたが、図５の回路は、トランスミッションゲートからの出力端子が１段目のしきい素子の入力端子に接続されている。この点において両者は異なる。
【００９０】
図２の回路ではリフレッシュ時に入力1[1] 端子と入力1[2] 端子から論理的０を入力していたが、図５の回路構成によって、リフレッシュ動作は入力1[1] 端子と入力1[2] 端子の電位に依存せず行うことが可能になる。
【００９１】
［回路構成Ｂのリフレッシュ機能の回路シミュレーション結果］
図６は、図３に示す回路シミュレーション結果を得た時とほぼ同じ条件を用いて、図５に示す回路をシミュレーションした結果を表す電位波形図である。上記条件中、リフレッシュ操作実行時においても、入力1[1] 端子と入力1[2] 端子との電位を論理的１に保ち続けている点が図３のシミュレーション条件とは異なる。
【００９２】
この結果、リフレッシュ機能が正しく動作し、出力端子電位は安定して論理的１であることが判る。
【００９３】
［基本セルのアレイ構造］
図４は、図２の回路または図５の回路をセル（cell）と呼び、アレイ状に配置した場合の集積回路を表す図であり、リフレッシュ機能のみに関係のある端子を記載している。図４に示すように、各セルの制御端子は共通化が可能である。図４の場合は、全てのセルが同時刻にリフレッシュされる構造であるが、セルの配置の仕方やセルが実現する機能に応じて、行ごと、または、列ごとにリフレッシュを行うことも可能である。このような端子の共通化によって、制御系回路を簡単に、かつ小さくすることが可能になる。この場合のセルは、請求項５に記載の関数セルに該当する。
【００９４】
［第１の実施の形態例の要約］
以上、本実施の形態例で説明したように、任意の対称関数を実現し、かつ、メモリ機能を有する回路において、実現している論理関数値を関数値保持回路によって次段に供給している時間に、メモリ機能を利用し、構成データを順次読みだし、フィードバックループを用いて構成データを再入力することによって、構成データ損失抑止を行うことが可能になる。
【００９６】
（第２の実施の形態例）
本発明の第２の実施の形態例は、第１の実施の形態例で開示したフィードバックループにより構成データの再書き込みを行う回路と方法に加えて、各しきい素子が保持している構成データを読み出すアドレスを自動生成する回路と、構成データの再書き込みを制御する回路とを有することを特徴とする。
【００９７】
［回路構成概要］
図７は、図１の回路図にアドレス生成回路を付加することにより、自動的に構成データを読み出し、再書き込みすることにより構成データの損失抑止を行う回路を表す概念図である。この場合に、アドレス生成回路が、請求項３及び４に記載のアドレス信号を自動生成する回路に該当する。
【００９８】
基本回路部と関数値保持回路とは、第１の実施の形態例で述べた回路とほぼ同じである。構成データ保持制御回路は、図８に示したように、請求項４に記載の「アドレス信号を自動生成する回路の出力信号線が、前記基本回路部の入力部と前記構成データ保持制御回路の入力部とに接続されること」に該当して、図８に示したように、アドレス生成回路に接続し、このアドレス生成回路と連動することによって、構成データを読み出したしきい素子に同じ構成データを再書き込みすることを容易にする。
【００９９】
［回路構成］
図８は、２入力変数対称関数を実現する回路であり、保持されている構成データの損失を防ぐことが可能な機能を持ち、構成データを読み出すしきい素子のアドレスを自動的に生成する回路を有する自動的リフレッシュ機能付き構成データ損失抑止機能再構成可能回路の図である。図８の回路は第１の実施の形態例で示した図２の回路と図５の回路と類似の回路構成であるが、アドレスを自動生成する回路 807 を備えていることと、アドレス生成回路と連動する構成データ書き込み制御回路 808 を有する点が異なる。但し、構成データ書き込み制御回路は、図７の構成データ保持制御回路の一部である。更に、アドレス生成回路と構成データ書き込み制御回路を連動させるためのスイッチ回路 805 や遅延回路（Delay CKT）と波形整形用回路 806 等が付加されている。
【０１００】
次に構成データの再書き込み動作（リフレッシュ動作）の概要について述べる。まず始めに、現在の基本セルの核回路部 801 の出力値をラッチ回路部 802 に保持する。次に、アドレス生成回路 807 により、１段目の１つのしきい素子中に保持されている構成データを読み出すアドレスを生成する。そのアドレスをスイッチ回路 805 を介して核回路部 801 に送り、核回路部 801 の状態を変え、アドレスに対応する構成データを読み出す。次に、核回路より出力される構成データに関する値をラッチ回路部 803 によって保持する。この構成データに関する値を構成データ書き込み制御回路にフィードバックする。次に、アドレス生成回路で生成されたアドレスを再び使用し、構成データに関する値を指定のしきい素子の端子に送る。次に、構成データ書き込み制御回路からの信号により、指定されたしきい素子のフローティングゲートをグランドに接続するパストランジスタを導通させることによって、フローティングゲートの再初期化を行う。この時に、しきい素子の入力変数用端子はアドレス生成回路からは遮断され、初期化用制御回路部 804 に制御され、グランド端子に接続される。同時に２段目のしきい素子のフローティングゲートの初期化も行われる。次に、上記パストランジスタを遮断し、１つのしきい素子の保持する構成データの再書き込みを終了する。この操作を順次繰り返すことによって、全ての再構成データを再書き込みすることができる。
【０１０１】
［アドレス生成回路の構成］
図９（ａ）は、任意の２入力変数対称関数を実現する構成データを保持するしきい素子を指定するアドレスを生成する回路構成を表す図であり、図９（ｂ）は、具体的な回路例を表す図である。
【０１０２】
２入力対称関数は２３個存在し、これらの関数は３つの要素を持つ構成データベクトルによって表現される。各々の要素の値を図８中の核回路部 801 の１段目の３つのしきい素子が保持する。３つのしきい素子のいすれか１つを指定するには２ビットの信号が必要となる。図９（ａ）の回路は、半加算器（Half Adder）とＤ-ＦＦとの組み合わせで構成されるリセット（reset）機能付き２ビットカウンタに類似の構成である。addgen 端子からアドレス生成を行う際に論理的１を入力する。１段目の半加算器の加算結果（sum）をＤ-ＦＦ（type Ａ）に対するデータ（data）入力とし、キャリー（carry)を２段目の半加算器の１つの入力とする。２段目の半加算器の加算結果（sum）もＤ-ＦＦ(type Ｂ）のデータ入力とする。各々の半加算器における上記で説明した入力とは別の一方の入力にはＤ-ＦＦ（type Ａ）の出力とＤ-ＦＦ（type Ｂ）との出力とか各々入力される。また、各々のＤ-ＦＦは ctl3 端子からの入力信号により状態を変える。
【０１０３】
この回路構成により、ctls1 端子と ctls2 端子との２ビットの値の組み合わせで３つのしきい素子の１つを指定することができる。
【０１０４】
図９（ｂ）に示すように、図９（ａ）の半加算器の加算結果（sum）は、Exclusive ＯＲ(ＸＯＲ）の出力値であり、キャリー（carry）はＡＮＤの出力値である。また、Ｄ-ＦＦ(type Ａ) は２つのラッチ回路の直列接続であり、後段のラッチ回路はＮＡＮＤと inverter（ＩＮＶ）とから構成され、ＮＡＮＤにはリセット(reset) の反転も入力される。一方、Ｄ-ＦＦ(type Ｂ）も type Ａと同様にラッチ回路の直列接続であるが、後段のラッチ回路がＮＯＲとＩＮＶとから構成されている点が異なる。ＮＯＲの１つの端子にはリセット(reset) 信号が入力される。
【０１０５】
［アドレス生成回路の動作］
ここで、図９（ａ）、（ｂ）の回路図を用いてアドレス生成回路の動作について説明する。図９中の ctl3 端子の値は初期状態として論理的０が入力されており、Ｄ-ＦＦの状態を更新する場合に論理的１が入力される。まず、リセット(reset) 信号を論理的１にすることによって、Ｄ-ＦＦ(type Ａ）の後段のＮＡＮＤには論理的０が入力されるため、出力値は論理的１となりＤ-ＦＦ(type Ａ）の出力値は論理的０となり、一方、Ｄ-ＦＦ(type Ｂ）のＮＯＲには論理的１が入力されるため、出力値は論理的０となりＤ-ＦＦ(type Ｂ）の出力値は論理的１となる。次に、addgen 信号を論理的１とする。これにより、Ｄ-ＦＦ(type Ａ）の前段のラッチ回路の出力値は論理的１になり、Ｄ-ＦＦ(type Ｂ）の前段のラッチ回路の出力値も論理的１になる。次に、ctl3 端子の値を論理的１にし、状態を更新する。これにより、ctls2 端子の値と ctls1 端子の値とは論理的１となり、Ｄ-ＦＦ(type Ａ）の前段のラッチ回路の出力値は論理的０に、Ｄ-ＦＦ(type Ｂ）の前段のラッチ回路の出力値も論理的０になる。次に、ctl3 端子の値を論理的０にした後、再び論理的１にし状態を更新する。これにより、ctls2 端子の値と ctls１ 端子の値とは論理的０となり、Ｄ-ＦＦ(type Ａ）の前段のラッチ回路の出力値は論理的１に、Ｄ-ＦＦ(type Ｂ）の前段のラッチ回路の出力値は論理的１になる。次に、ctl3 端子の値を論理的０にした後、再び論理的１にし状態を更新する。これにより、ctls2 端子の値は論理的１になり、ctls１ 端子の値は論理的０となる。 ctls１ 端子と ctls2 端子との論理的値の１の数を入力状態数と呼べば、前記操作により、０、１、２の３通りの入力状態数を表現でき、この値を３つのしきい素子に対するアドレスとすることができる。上記操作をまとめると、表１になる。
【０１０６】
【表１】
0003804920.tif 000007
図１０は、図９の回路の過渡解析回路シミュレーションによって得られた時間に対する端子電位波形を表す図である。横軸は時間を表し、縦軸は、注目する各端子電位を表す。各端子電位の論理的１(High Level）と論理的０(Low Level）との２値の間で変化する。また、図１０の上側横軸上に記載されている reset1、reset2、I、II、III は、表１に示した状態に対応する。時間軸上で上記説明の操作を２度繰り返した。この結果である図１０から、上記の操作で期待した通りの機能を確認できる。
【０１０７】
［構成データ書き込み制御回路の構成］
図１１は、構成データ書き込み制御回路を表す図である。構成データ書き込み制御回路は、２つのタイミング信号と３つの入力信号を入力とし、３組の出力信号を出力する。２つのタイミング信号とは、図８の核回路部 801 の初期化時と論理関数機能実行時切替えるための信号（ctl1' 端子の信号）と、図８のラッチ回路部 803 の制御を含む、構成データ書き込み制御回路 808 の制御のタイミングを生成するための信号（ctl3 端子の信号）である。３つの入力信号とは、図１１に示したアドレス生成回路の２つの出力値（ ctls1 端子と ctls2 端子との信号）と、図８のラッチ回路部 803 に保持されている構成データに関する値（ fbk 端子の値）との３つの信号である。３組の出力信号とは、１つは、図８の関数値保持のためのラッチ回路部 802 を制御するための信号（ctl4 端子の信号）であり、２組目は、図８の核回路部 801 の１段目のしきい素子 pinv１、pinv2、pinv3 の構成データ入力端子に入力される値の組（cfbtg1 端子、cfbtg2 端子、cfbtg3 端子の信号）であり、３組目は、３つのしきい素子のフローティングゲートの電位を制御するパストランジスタを制御する値（ctlp１ 端子、ctlp2 端子、ctlp3 端子の信号）の組である。
【０１０８】
また、構成データ書き込み制御回路には以下の機能が要求される。
・ ctl4 端子と cfbtgc 端子と ctlpc 端子との信号の立上り（論理的０から論理的１への変化）は、ctl3 端子の信号の立上りを起点にして記載の順で起こり、逆に信号立ち下がり（論理的１から論理的０への変化）は、記載とは逆の順、即ち、ctlpc 端子、cfbtgc 端子、ctl4 端子の順で起こる。
・ cfbtg(i) 端子 (cfbtg1、cfbtg2、cfbtg3 のいずれか１つの端子）は、cfbtgc 信号が論理的０の場合は論理的１を出力し、論理的１の場合は、ctls1 端子と ctls2 端子との信号で指定された端子のみが fbk 端子の信号の反転を出力し、他の２つの端子は論理的１を出力する。
・ ctlp(i) 端子（ctlp1、ctlp2、ctlp3 のいずれか１つの端子）は、ctl1’端子の信号が論理的０場合は論理的１を出力し、ctl1’端子が論理的１であり、ctlpc 端子が論理的０である場合は論理的０を出力し、ctl1’端子が論理的１であり、ctlpc 端子が論理的１である場合は ctls1 端子と ctls2 端子との信号で指定された端子のみが論理的１を出力し、他の２つの端子は論理的０を出力する。
【０１０９】
［構成データ書き込み制御回路の動作］
図１２は、図８の回路から図１１の構成データ書き込み制御回路と一時的構成データ保持のためのラッチ回路部 803 だけを取り出し、これらの回路について過渡解析回路シミュレーションを行った結果を表す端子電位波形図である。横軸は時間を、縦軸は注目する端子の電位を表す。各端子電位は論理的１(High Level）と論理的０(Low Level）との間を変化する。但し、縦軸の minv_out は図８の核回路部 801 の出力端子の電位を表している。また、上横軸に記載したＡ０、Ｂ０、Ｃ０、Ａ１、Ｂ１、Ｃ１は、ctl3 端子の信号が論理的１であり構成データ書き込み制御回路がアクティブな状態であることを示しており、Ａ、Ｂ、Ｃは各々 ctls1 端子と ctls2 端子との信号が表す入力状態数が０、１、２であることを表しており、Ａ０、Ａ１中の０と１は各々 minv_out 端子の出力が論理的０と論理的１とであることを表している。
【０１１０】
前記回路シミュレーションにおいては、リフレッシュ動作に注目するために ctl1’端子の論理的値を０に固定して行った。また、ctls1 端子と ctls2 端子との信号で表される入力状態数が０、１、２の時は各々図８中のしきい素子 pinv1、pinv2、pinv3 が指定される。
【０１１１】
時間区分Ａ０とＡ１に注目する。ここでは、図８のしきい素子 pinv1 が指定されており、cfbtg3 端子と ctlp3 端子の値が特別な意味を持つ。Ａ０では、ctlp(i) 端子中 ctlp1 端子のみが論理的１であり、cfbtg(i) 端子は全て論理的１であり、機能要求を満たしている。また、Ａ１では、ctlp1 端子のみが論理的１であり、cfbtg(i) 端子中 cfbtg1 端子のみが minv_out 端子の値の反転値を出力し、他の２つの端子の値は論理的１であり、機能要求を満たしている。Ｂ０、Ｂ１とＣ０、Ｃ１とも同様に機能要求を満たしていることを確認できる。
【０１１２】
［自動的アドレス生成機能付き基本セルの回路動作］
図１３は、図８の自動的アドレス生成機能を持つリフレッシュ機能付き任意の２入力対称関数を実現する回路について、過渡解析回路シミュレーションを行った結果である各端子電位波形を表す図である。本シミュレーションでは、図８の回路に対して入力2[1] 端子〜入力2[3] 端子の電位をグランド電位にし初期化を行うことによって、この回路は、如何なる入力状態数であっても論理的１を出力する関数機能を保持している。
【０１１３】
図１３の横軸は時間を表し、縦軸は動作確認のために着目すべき各端子電位を表している。時間軸上で、0nsec〜120nsec 付近の間はしきい素子のフローティングゲートの初期化のための時間であり、それ以後は論理機能実行のための時間である。各端子電位は論理的１(High Level）と論理的０(Low Level）との間を変化する。 ctl1 端子と ctlm 端子と ctl2 端子とは図８の回路の外部から制御される端子であり、ctls1 端子とctls2 端子との値はアドレス生成回路 807 によって生成され、ctl4 端子とcfbtg1 端子〜cfbtg3 端子と ctlp1 端子〜 ctlp3端子との値は構成データ書き込み制御回路 808 で生成される。制御の結果として、p3out 端子の値が変化し、出力端子の値が変化する。
【０１１４】
次に、各端子の動作を説明する。
【０１１５】
ctl1 端子は、核回路部 801 の初期化動作と論理機能実行動作との２つの機能を制御する。 ctl1 端子が High Level の時は初期化動作時であり、核回路部 801 の１段目のしきい素子 pinv1〜pinv3 と２段目のしきい素子 minv はトランスミッションゲートによって遮断されると同時に、minv のフローティングゲートはパストランジスタ mfsw を介してグランド電位に設定され、初期化される。同時に、ctl1 端子電位の論理的反転が構成データ書き込み制御回路 808 に入力され、ctlp1 端子〜 ctlp3 端子の電位を High Level にし、１段目のしきい素子の初期化も行う。一方、ctl1 端子が Low Level の時は論理機能実行時であり、構成データ入力のための端子は、入力2[1] 端子〜入力2[3] 端子から、構成データ書き込み制御回路 808 の cfbtg1 端子〜cfbtg3 端子に切替えられる。また、１段目のしきい素子と２段目のしきい素子の接続遮断の制御と minv の初期化は ctlm 端子の電位に委ねられる。
【０１１６】
ctlm 端子は ctl1 端子とは独立に制御され、論理機能実行時であっても ctlm端子を High Level にすることによって minv の初期化が可能になる。またこの時、初期化のために入力状態数は０に設定される。
【０１１７】
ctl2 端子の値によって、図８のラッチ回路部 802 が御御される。 ctl2 端子を High Level にすることによって、ラッチ回路部 802 が核回路部 801 の出力値を保持する。この動作によってリフレッシュ動作が開始される。
【０１１８】
ctls1 端子と ctls2 端子の値は、論理関数機能実行時のリフレッシュ動作時において、着目する１段目のしきい素子 pinv3 の保持する構成データに関する値を指定するために共に High Level に設定されている。
【０１１９】
ctl4 端子の値は、ctl3 端子の値によって制御され、リフレッシュ動作時に High Level にされる。これにより、アドレス生成回路が指定したアドレスのしきい素子が保持する構成データに関する値を保持すると同時に、構成データ書き込み制御回路 808 にフィードバックする。
【０１２０】
cfbtg1 端子〜cfbtg3 端子の値は、リフレッシュ動作時を除く論理関数機能実行時においては全て High Level であり、リフレッシュ動作時においては、書き込み指定されたしきい素子に接続される端子のみが、図８中のラッチ回路部 803がフィードバックする値の論理的反転値を出力し、他の２つの端子は High Level を出力する。図１３の場合、300nsec 〜350nsec 付近において、ctl4 端子が High Level の時に、cfbtg1 端子〜cfbtg13 端子中で cfbtg13 端子のみが Low Level になっていることを確認できる。これは、図１２の時間区分Ｃ１で示される通りである。
【０１２１】
ctlp1 端子〜 ctlp3 端子の値は、リフレッシュ動作時を除く論理関数機能実行時においては全て Low Level であり、リフレッシュ動作時においては、書き込み指定されたしきい素子に接続される端子のみが、High Level に設定される。図１３の場合、300nsec〜350nsec 付近において、ctlp3
端子のみが High Level になっているのを確認できる。この時に、ctlp3 端子は、図８に示したように、パストランジスタ
pfsw3 を制御する端子に接続しているから、この接続を通して、pinv3 のフローティングゲートの初期化が行われる。
【０１２２】
上記の制御信号により、リフレッシュ動作が行われる。その結果、p3out 端子の値は 350nsec〜400nsec の間において再び Low Level に再設定され、出力端子は High Level を保つことができる。
【０１２３】
以上、詳しく説明したように、図８の回路構成により自動的にリフレッシュ動作を実行することによって、構成データの損失を抑止することが可能になる。
【０１２４】
［第２の実施の形態例の要約］
以上、本実施の形態例で説明したように、任意の対称関数を実現し、かつ、メモリ機能を有する回路において、実現している論理関数値を関数値保持回路によって次段に供給している時間に、自動的に読み出す対象となる構成データを保持する素子を指定する機能を有する回路を用い、構成データを順次読みだし、フィードバックループを用いて構成データを再入力することによって、構成データ損失抑止を行うことが可能になる。
【０１２５】
（第３の実施の形態例）
本発明の第３の実施の形態例は、任意の論理関数を実現する再構成可能集積回路の基本セルに対して、第１の実施の形態例と第２の実施の形態例とに示した方法と回路構成を応用することを特徴とする。
【０１２６】
［任意の論理関数を実現する回路構成］
文献３「青山一生、澤田宏、名古屋彰、ニューロンＭＯＳによる論理関数回路の一設計手法、第１３回回路とシステム（軽井沢）ワークショップ、pp. 113-118、2000」に示されている通り、任意の対称関数のみを実現可能な回路構成と任意の論理関数を実現する回路構成の相違はしきい素子の入力変数に対する重みベクトルにある。但し、重みベクトルとは、入力変数に乗算される重みを要素とするベクトルである。図２、図５、図８において、任意の２入力変数対称関数を実現する基本セルの場合を説明した。この時、しきい素子の有する入力変数に対する重みベクトルの要素の値を全て等しくすることによって、任意の対称関数を実現するための入力状態数を生成した。即ち、２入力変数に対して、０、１、２の３つの入力状態数を準備することにより、２３ 個の対称関数のいずれか１つを実現できた。一方、k 入力変数に対する任意の論理関数を構成する入力ベクトルの要素数は ｋ 個あり、この要素の各々が論理的１または論理的０を取ることによってできる ２ｋ 個の入力ベクトルを識別可能にする重みベクトルを用いることが必要である。入力ベクトルを識別可能にする重みベクトルの１つの例として、
wｉ ＝ ２ｉ−１
と表現する方法が文献２に示されている。但し、i は（１≦ i ≦ k）の整数であり、wｉ は i 番目の入力変数に乗算される重みを表している。また、任意の対称関数を実現する方法である、ある入力状態数の時に出力する論理的値を決定する特別なしきい素子を各入力状態数に対して１つっつ１段目のしきい素子として準備する方法と同様の方法を任意の論理関数を実現する際にも適用できる。
【０１２７】
図１５は、任意の k 入力変数論理関数を実現する基本セルの回路構成を表す図である。k 入力変数は入力1[1] 端子〜入力1[k] 端子から入力され、重みの役目を果たす各々の端子とフローティングゲートとを容量結合する入力容量は各端子に応じて ２ｉ−１・C に設定される。１段目のしきい素子 pinv１〜 pinvn の各々は、その添字の昇順に、入力変数と重みとの積の値に 0 を含めた 0〜２ｋ - 1 の値が入力される場合に、論理的１または論理的０のいずれか一方を構成データの値に応じて出力できるようにしきい値が調整される。但し、pinvn 中のn は ２ｋ を表す。また、２段目のしきい素子 minv の論理的なしきい値は 1/2 に調整され、１段目のしきい素子からの出力を minv のフローティングゲートと容量結合させる容量値はすべて C に設定される。この回路構成により、pinv1〜pinvn の各々のしきい素子が出力する値の論理反転が、そのしきい素子の出力値が構成データに依存して変化する入力ベクトルが入力される際の回路の出力値となる。従って、この回路構成は k 入力変数に対する任意の論理関数を実現する。
【０１２８】
［リフレッシュ機能を有する回路構成］
図１４は、リフレッシュ機能を持ち、任意の２入力変数論理関数を実現する回路の構成図である。図２と類似の構成例である。対称関数に対して、図５、図８の回路構成へと発展させたのと同様の方法が図１４の回路構成にも適用できる。
【０１２９】
図１４の回路と図２の回路の相違点は、前述した通り、入力容量値の値と１段目のしきい素子数にある。書き込み制御のための ctls1 端子と ctls2 端子は２ビットあるので、２２ 個に対するデコードを行うには十分であり、図２の構成を流用できる。回路動作については、図２の回路と同様であり、本構成によりリフレッシュ機能を実現することができる。
【０１３０】
以上説明したように、任意の論理関数を実現する回路または、任意の対称関数を実現する回路において、関数構成データを読み出し、再書き込みする機能を付加することにより、構成データの経時変化と損失を抑止する効果がある。
【０１３１】
【発明の効果】
本発明の実施により、電源が供給されている時間中は、関数機能を規定する構成データの保持を可能とする関数機能再構成可能集積回路及び関数機能再構成方法を提供することができる。
【図面の簡単な説明】
【図１】構成データ損失抑止機能付き諭理関数機能再構成可能回路の回路構成図である。
【図２】構成データ損失抑止機能付き２入力変数対称関数回路の回路構成図である。
【図３】回路シミュレーションより得られた図２の回路の端子電位と時間との関係を表す電位波形図である。
【図４】図２の回路をアレイ状に配置した集積回路の図である。
【図５】構成データ損失抑止機能付き２入力変数対称関数回路の回路構成図である。
【図６】回路シミュレーションより得られた図５の回路の端子電位と時間との関係を表す電位波形図である。
【図７】自動的構成データ読み出し機能を有する構成データ損失抑止機能付き諭理関数機能再構成可能回路の回路構成図である。
【図８】自動的構成データ読み出し機能を有する構成データ損失抑止機能付き２入力変数対称関数回路の回路図である。
【図９】（ａ）アドレス生成回路の回路構成図、（ｂ）アドレス生成回路の回路図である。
【図１０】アドレス生成回路の回路シミュレーションより得られた端子電位と時間との関係を表す電位波形図である。
【図１１】構成データ書き込み制御回路の回路図である。
【図１２】構成データ書き込み樹御回路の回路シミュレーションより得られた端子電位と時間との関係を表す電位波形図である。
【図１３】図８の２人力変数対称関数回路の回路シミュレーションより得られた端子電位と時間との関係を表す電位波形図である。
【図１４】構成データ損失抑止機能付き任意の２入力変数諭理関数を実現可能な回路の回路構成図である。
【図１５】任意のｋ入力変数論理関数を実現する回路を表す図である。
【図１６】任意の３入力変数対称関数を実現し、しきい素子を構成要素とする関数機能再構成可能集積回路の基本セルの回路構成図である。
【図１７】図ｘ１において任意の対称関数を実現する場合の１段目のしきい素子の回路構成図である。（ａ）構成データ保持機能を有する回路の構成図、（ｂ）構成データ保持機能を持たない回路の構成図である。
【図１８】（ａ）構成データ保持機能を持たない完全浮遊フローティングゲートを有する１段目の４番目のしきい素子における入力状態数とＵｆｇの関係を表す図、（ｂ）Ｕｆｇ とＵｏｕｔ との関係を表す図である。
【図１９】構成データ保持機能を有するしきい素子において、初期化時に構成データとして論理的１を入力した場合の入力状態数とＵｆｇ との関係を表す図である。
【図２０】（ａ）フローティングゲートに接続された素子を表す図、（ｂ）（ａ）におけるパストランジスタ swnmos をリーク電流経路に着目して等価回路と表した回路図である。
【図２１】入力変数対称関数を実現する回路の図である。
【図２２】図２１の回路における時間に対する端子電位の関係を表す図である。
【図２３】図２１の回路において、しきい素子のフローティングゲートに接続されたパストランジスタが加速試験用のＰＮ接合逆方向電流を持つ場合の時間に対する端子電位の関係を表す図である。
【図２４】ＤＲＡＭメモリセルの回路図である。
【図２５】ＤＲＡＭメモリにおけるメモリセルアレイ回路図である。
【図２６】ＤＲＡＭメモリ回路のリフレッシュのタイミングを表す図である。
【符号の説明】
201 ：任意の２入力変数対称関数を実現する核回路部、
202 ：初期化時と論理機能実行時を切り替えるための回路部（構成データ入力切り替え回路部）、
203 ：構成データ入力切り替え信号生成回路部、
204 ：関数値保持回路部、
205 ：関数保持制御信号生成回路部、
206 ：一時的構成データ保持回路部、
207 ：一時的構成データ保持制御信号生成回路部、
208 ：書き込み信号生成回路部、
501 ： minv のフローティングゲート初期化回路、
801 ：任意の２入力変数対称関数を実現する核回路部、
802 ：関数値保持のためのラッチ回路部、
803 ：一時的構成データ保持のためのラッチ回路部、
804 ：２段目のしきい素子の初期化制御回路、
805 ：スイッチ回路、
806 ：波形整形回路、
807 ：アドレス生成回路、
808 ：構成データ書き込み制御回路。
【図１】
0003804920.tif 000008
【図２】
0003804920.tif 000009
【図３】
0003804920.tif 000010
【図４】
0003804920.tif 000011
【図５】
0003804920.tif 000012
【図６】
0003804920.tif 000013
【図７】
0003804920.tif 000014
【図８】
0003804920.tif 000015
【図９】
0003804920.tif 000016
【図１０】
0003804920.tif 000017
【図１１】
0003804920.tif 000018
【図１２】
0003804920.tif 000019
【図１３】
0003804920.tif 000020
【図１４】
0003804920.tif 000021
【図１５】
0003804920.tif 000022
【図１６】
0003804920.tif 000023
【図１７】
0003804920.tif 000024
【図１８】
0003804920.tif 000025
【図１９】
0003804920.tif 000026
【図２０】
0003804920.tif 000027
【図２１】
0003804920.tif 000028
【図２２】
0003804920.tif 000029
【図２３】
0003804920.tif 000030
【図２４】
0003804920.tif 000031
【図２５】
0003804920.tif 000032
【図２６】
0003804920.tif 000033