(57)【特許請求の範囲】
【請求項１】
基板上に第１の導電型の半導体領域を有し、上記半導体領域内に設けられている第１の導電型とは異なる第２の導電型の半導体であるソース領域とドレイン領域とを有し、上記ソース領域とドレイン領域とを隔てる領域の上に、絶縁膜を介して設けられている電気的にフローティング状態とみなせる状態をとることが可能であるフローティングゲート電極を有し、上記フローティングゲート電極と絶縁膜とを介して、容量結合する複数のゲート電極を有する半導体装置を、ニューロンＭＯＳトランジスタと呼び、
また、上記ニューロンＭＯＳトランジスタにおけるフローティングゲート電極が、所定の電位を有する端子に、導通と遮断または電気的に高インピーダンスとの２つの状態をとり得る素子を介して接続されている半導体装置を、スイッチ付ニューロンＭＯＳトランジスタと呼び、
上記ニューロンＭＯＳトランジスタ、上記スイッチ付ニューロンＭＯＳトランジスタにおける複数のゲート電極の中で、入力変数が入力されるゲート電極と上記フローティングゲート電極との間の容量を、入力変数用入力ゲート容量と呼び、
上記入力変数用入力ゲート容量について、その容量値の小さい順に番号を付け、入力変数の数ｋを用い、上記各容量値のうちで最も小容量である最小容量値を基準にした容量比を、容量比の集合｛ｗ１，ｗ２，…，ｗｉ，…，ｗｋ｝によって表し、
上記容量比の集合における重なりのない要素で構成される任意の数の要素の和が互いに異なるように設計されているニューロンＭＯＳトランジスタ、またはスイッチ付ニューロンＭＯＳトランジスタを有し、
上記ニューロンＭＯＳトランジスタ、スイッチ付ニューロンＭＯＳトランジスタは、上記入力変数用入力ゲート容量の比ｗｉが、ｗｉ＝αｉ−１であり、１≦ｉ≦ｋ、１＜α＜２の正数であるという条件を満たすトランジスタであることを特徴とする論理関数機能再構成可能な集積回路。
【請求項２】
基板上に第１の導電型の半導体領域を有し、上記半導体領域内に設けられている第１の導電型とは異なる第２の導電型の半導体であるソース領域とドレイン領域とを有し、上記ソース領域とドレイン領域とを隔てる領域の上に、絶縁膜を介して設けられている電気的にフローティング状態とみなせる状態をとることが可能であるフローティングゲート電極を有し、上記フローティングゲート電極と絶縁膜とを介して、容量結合する複数のゲート電極を有する半導体装置を、ニューロンＭＯＳトランジスタと呼び、
また、上記ニューロンＭＯＳトランジスタにおけるフローティングゲート電極が、所定の電位を有する端子に、導通と遮断または電気的に高インピーダンスとの２つの状態をとり得る素子を介して接続されている半導体装置を、スイッチ付ニューロンＭＯＳトランジスタと呼び、
上記ニューロンＭＯＳトランジスタ、上記スイッチ付ニューロンＭＯＳトランジスタにおける複数のゲート電極の中で、入力変数が入力されるゲート電極と上記フローティングゲート電極との間の容量を、入力変数用入力ゲート容量と呼び、
上記入力変数用入力ゲート容量について、その容量値の小さい順に番号を付け、入力変数の数ｋを用い、上記各容量値のうちで最も小容量である最小容量値を基準にした容量比を、容量比の集合｛ｗ１，ｗ２，…，ｗｉ，…，ｗｋ｝によって表し、
上記容量比の集合における重なりのない要素で構成される任意の数の要素の和が互いに異なるように設計されているニューロンＭＯＳトランジスタ、またはスイッチ付ニューロンＭＯＳトランジスタを有し、
上記ニューロンＭＯＳトランジスタ、スイッチ付ニューロンＭＯＳトランジスタは、ｉ番目の入力変数用入力ゲート容量の比ｗｉが
【数１】
0003565495.tif 000026
を満たすトランジスタであり、
上記ニューロンＭＯＳトランジスタ、スイッチ付ニューロンＭＯＳトランジスタは、入力変数用入力ゲート容量比ｗｉ＝αｉ−２・（１＋β）であり、２≦ｉ≦ｋ、α＞１の正数、０＜β＜１であるという条件を満たすトランジスタであることを特徴とする論理関数機能再構成可能な集積回路。
【請求項３】
請求項２において、
上記ニューロンＭＯＳトランジスタ、スイッチ付ニューロンＭＯＳトランジスタは、入力変数用入力ゲート容量比ｗｉ--＝２ｉ一２・（１＋β）であり、２≦ｉ≦ｋ、０＜β＜１であるという条件を満たすトランジスタであることを特徴とする論理関数機能再構成可能な集積回路。
【請求項４】
請求項１〜請求項３のいずれか１項において、
上記ニューロンＭＯＳトランジスタ、または上記スイッチ付ニューロンＭＯＳトランジスタを含む２段論理の回路のうちで、１段目のニューロンＭＯＳインバータ、または上記スイッチ付ニューロンＭＯＳトランジスタであるプリインバータを有し、
上記プリインバータは、入力信号からみた場合、２つ以上の閾値を有するプリインバータであることを特徴とする論理関数機能再構成可能な集積回路。
【請求項５】
請求項４において、
上記閾値を制御する複数の２値制御信号が入力される端子を有し、
上記複数の２値制御信号によって、上記２つ以上の閾値を決定することを特徴とする論理関数機能再構成可能な集積回路。
【請求項６】
請求項４において、
閾値を制御する制御信号が入力される１つの制御信号端子を有し、上記１つの制御信号端子から入力される多値信号、またはアナログ信号によって、上記２つ以上の閾値を決定することを特徴とする論理関数機能再構成可能な集積回路。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、しきい論理を実現する素子で構成されている回路と、その設計とに係り、特に、しきい論理を容易に実装することが可能であるニューロンＭＯＳトランジスタを有する集積回路において、論理関数機能を実現する集積回路の設計方法と、論理関数機能を有する集積回路とに関するものである。
【０００２】
【従来の技術】
デバイス製造後に論理機能の書き換えが可能である、ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）に代表される再構成可能デバイスを用いたリコンフィギュラブルコンピューティングシステム（ＲＣＳ＝Ｒｅｃｏｎｆｉｇｕｒａｂｌｅ  Ｃｏｍｐｕｔｉｎｇ  Ｓｙｓｔｅｍ）の研究開発が行なわれている。上記リコンフィギュラブルコンピューティングシステム（ＲＣＳ）は、文献１「末吉敏則、Ｒｅｃｏｎｆｉｇｕｒａｂｌｅ  Ｃｏｍｐｕｔｉｎｇ  Ｓｙｓｔｅｍの現状と課題−Ｃｏｍｐｕｔｅｒ  Ｅｖｏｌｕｔｉｏｎへ向けて−、信学技報、ＶＬＤ９６−７９、ＣＰＳＹ９６−９１、ｐｐ．１１１−１１８、１９９６−１２」に示されている。
【０００３】
研究開発が進む様々なＲＣＳにおいて、論理機能の再構成を可能にするデバイス部分は、ＦＰＧＡのような再構成可能デバイスと、メモリ回路とであり、これらの再構成可能デバイスの基本構造についても、多種の提案がなされている。
【０００４】
従来、再構成可能デバイスは、製品のプロトタイピングや、多品種少量生産を必要とするＡＳＩＣの代替品として、主に利用されていた。この利用方法においては、システムに組み込む前または、組み込んだ後に一度、必要となる機能を構成することで十分であった。この要求に答える再構成可能デバイスの可変論理部における基本デバイスとしては、主に次のようなデバイスがある。
【０００５】
図２１は、従来のＬＵＴ（Ｌｏｏｋ−Ｕｐ  Ｔａｂｌｅ）型の可変論理部の構成を示す図である。
【０００６】
第１の例は、図２１に示す真理値表を直接実装するＬＵＴ（Ｌｏｏｋ−Ｕｐ  Ｔａｂｌｅ）型であり、メモリ回路のアドレスに、論理関数の入力変数の組合せである入力ベクトルを対応させ、メモリ回路に保持されている値を出力値とする例である。メモリ回路としては、主にＳＲＡＭ（Ｓｔａｔｉｃ  ＲＡＭ）が使用されている。
【０００７】
図２２は、従来のマルチプレクサ（ＭＵＸ）型の可変論理部の構成を示す図である。
【０００８】
第２の例は、図２２に示すように、シャノン展開による論理表現を実装するマルチプレクサ（ＭＵＸ、Ｍｕｌｔｉｐｌｅｘｅｒ）型である。
【０００９】
第２の例は、マルチプレクサの制御入力に論理変数を対応させ、シャノン展開に基づき、論理関数を実現するものである。一般的には、マルチプレクサの多段接続で構成される。多段接続によって増大する信号伝搬遅延時間を抑制するために、低抵抗であるアンチフィーズによる配線の接続、非接続によって実現される。しかし、一度アンチフィーズによる接続をした後に論理機能を変更することは困難であるという特徴がある。
【００１０】
図２３は、ＰＬＡ型の可変論理部の構成を示す図である。
【００１１】
第３の例は、図２３に示すように、論理関数をＡＮＤ−ＯＲの論理和形等で表現するＰＬＡ（Ｐｒｏｇｒａｍａｂｌｅ  Ｌｏｇｉｃ  Ａｒｒａｙ）型である。
【００１２】
第３の例は、ＥＰＲＯＭやＥＥＰＲＯＭによる変数の入力線と積項線との接続、非接続によって、論理可変性を実現する。一般的には、多変数のワイヤードＡＮＤを行うプログラマブルなＡＮＤ平面と、積項線と出力線とを固定的に接続したＯＲ平面とによって構成されている。ＥＰＲＯＭへのデータの書き込みは、高エネルギーの電子のアバランシェ注入によって行われ、その消去は、紫外線によって行われる。また、ＥＥＰＲＯＭへの書き込みと消去とは、電流量の小さいトンネル電流で行われる。この特徴のために、いずれのデータ保持用デバイスにおいても、論理機能を再構成するために要する時間は、他の記憶デバイスまたは回路を用いた場合と比較して、非常に長い。
【００１３】
これらのデバイスの中で、ＲＣＳの機能をさらに向上する条件の１つである論理機能の再構成に要する時間が短いという条件を満たすのは、第１の例に示したＳＲＡＭのような書き換え速度の速いメモリ回路や、ＳＲＡＭ以外にはラッチ回路または、ＤＲＡＭのような回路を用いたＬＵＴ型である。
【００１４】
この書き換えの高速性という特徴を用いた再構成可能デバイスの代表的例として、ＤＰＧＡ（Ｄｙｎａｍｉｃａｌｌｙ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）や、可変論理部であるＬＵＴがラッチ回路によって構成されたＤＲＬＥ（Ｄｙｎａｍｉｃａｌｌｙ  Ｒｅｃｏｎｆｉｇｕｒａｂｌｅ  Ｌｏｇｉｃ  Ｅｎｇｉｎｅ）がある。
【００１５】
なお、上記ＤＰＧＡは、文献２「Ａｎｄｒｅ  ＤｅＨｏｎ，  ＤＰＧＡ−Ｃｏｕｐｌｅｄ  Ｍｉｃｒｏｐｒｏｃｅｓｓｏｒｓ：Ｃｏｍｍｏｄｉｔｙ  ＩＣｓ  ｆｏｒ  ｔｈｅ  Ｅａｒｌｙ  ２１ｓｔ  Ｃｅｎｔｕｒｙ，  Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  ＩＥＥＥ  Ｗｏｒｋｓｈｏｐ  ｏｎ  ＦＰＧＡｓ  ｆｏｒ  Ｃｕｓｔｏｍ  Ｃｏｍｐｕｔｉｎｇ  Ｍａｃｈｉｎｅｓ，  Ａｐｒｉｌ，  １９９４」に記載されている。また、上記ＤＲＬＥは、文献３「Ｔ．  Ｆｕｊｉｉ，  ｅｔ  ａｌ．，  Ａ  Ｄｙｎａｍｉｃａｌｌｙ  Ｒｅｃｏｎｆｉｇｕｒａｂｌｅ  Ｌｏｇｉｃ  Ｅｎｇｉｎｅ  ｗｉｔｈ  ａ  Ｍｕｌｔｉ−Ｃｏｎｔｅｘｔ／Ｍｕｌｔｈ−Ｍｏｄｅ  Ｕｎｉｆｉｅｄ−Ｃｅｌｌ  Ａｒｃｈｉｔｅｃｔｕｒｅ，  ＩＳＳＣＣ９９，  ＷＡ  ２１．３  ｐｐ．  ３６０−３６１，  １９９９」に記載されている。
【００１６】
しかし、ＬＵＴ型の可変論理部は、真理値表が直接回路に実装されるので、ある特別な性質を有する論理関数のみを使用する場合においても、全ての論理関数を表現する可変論理部を設ける必要があり、ｋ入力変数の可変論理部に実装回路として２ｋ個のメモリセルが必要である。したがってＬＵＴ型の可変論理部は、面積コストが高いという問題がある。
【００１７】
この問題を解決する手段として、論理ＬＳＩの演算部（または、データパス部）において実行される算術演算等で、高頻度で使用される対称関数のみを実現する回路と、制御部において多用されるセレクタ回路と、上記２つの回路の機能を補完する意味で全ての論理関数を実現する回路とを、各々低面積コストで実現し、組み合わせた形で実装する方法が考えられる。
【００１８】
このように、複数の基本機能を組み合わせて再構成可能デバイスの基本単位とすることは、従来の再構成可能デバイスにおいては、基本単位が複数のＬＵＴから構成されることに匹敵する。一般的に、現実の再構成可能デバイスの可変論理部の基本単位はこのように構成されている。
【００１９】
また、ＬＵＴ型とＰＬＡ型のように、互いに異なる特徴を有するデバイスを組み合わせて１つの可変論理部の基本単位にする方法も提案されている。たとえば、文献４「Ａ．  Ｋａｖｉａｎｉ  ａｎｄ  Ｓ．  Ｂｒｏｗｎ，  Ｔｈｅ  Ｈｙｂｒｉｄ  Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ａｒｃｈｔｅｃｔｕｒｅ，  ＩＥＥＥ  Ｄｅｓｉｇｎ  ＆  Ｔｅｓｔ  ｏｆ  Ｃｏｍｐｕｔｅｒｓ，  ｐｐ．７４−８３，  Ａｐｒｉｌ−Ｊｕｎｅ，  １９９９」に開示されている。
【００２０】
しかし、特殊な性質を有する関数機能のみを実現することは、従来の再構成可能デバイスでは困難である。
【００２１】
一方、文献５「青山一生、澤田宏、名古屋彰、中島和生、ニューロンＭＯＳによる対称関数回路の設計手法、信学技法、ＣＰＳＹ９９−９０、ｐｐ．４９−５６、１９９９−１１」に示されているように、従来の再構成可能デバイスとは、論理を変える原理が異なる再構成可能デバイスである、しきい論理を容易に実装可能なニューロンＭＯＳトランジスタで構成されたニューロンＭＯＳ回路によって、対称関数機能を実現することができる。
【００２２】
図２４は、従来のニューロンＭＯＳトランジスタを用いたＣＭＯＳ型インバータの構造を示す図であり、図２４（１）は、レイアウト図、図２４（２）は、図２４（１）に記載のＸ−Ｘ’での断面図、図２４（３）は、ｎ入力相補型ニューロンＭＯＳインバータ（ニューロンＭＯＳインバータと略す）の回路図である。
【００２３】
ここで、「ニューロンＭＯＳトランジスタ」は、図２４に示すように、ＭＯＳトランジスタのソース領域とドレイン領域とを隔てる領域の上に、フローティングゲートを持ち、そのフローティングゲートとの間で容量結合を持つ複数の入力ゲートとを持つトランジスタである。
【００２４】
このニューロンＭＯＳトランジスタは、文献６「Ｔａｄａｓｈｉ  Ｓｈｉｂａｔａ  ａｎｄ  Ｔａｄａｈｉｒｏ  Ｏｍｉ，  Ａ  Ｆｕｎｃｔｉｏｎａｌ  ＭＯＳ  Ｔｒａｎｓｉｓｔｏｒ  Ｆｅａｔｕｒｉｎｇ  Ｇａｔｅ−Ｌｅｖｅｌ  Ｗｅｉｇｈｔｅｄ  Ｓｕｍ  ａｎｄ  Ｔｈｒｅｓｈｏｌｄ  Ｏｐｅｒａｔｉｏｎｓ，  ＩＥＥＥ  Ｔｒａｎｓａｃｔｉｏｎｓ  ｏｎ  Ｅｌｅｃｔｒｏｎ  Ｄｅｖｉｃｅｓ，  Ｖｏｌ．  ３９，  Ｎｏ．  ６，  ｐｐ．  １４４４−１４４５，  １９９２」に開示されている。
【００２５】
図２５は、従来のニューロンＭＯＳトランジスタを用いたＣＭＯＳ型インバータ（ニューロンＭＯＳインバータ）の回路図であり、図２５（１）は、トランジスタ記号によって記述された図、図２５（２）は、論理記号によって記述された図である。
【００２６】
次に、図２５に示すニューロンＭＯＳインバータを例にとり、インバータ動作について具体的に説明する。
【００２７】
ｎ個の入力端子の各々から入力される信号電位をＶｉ、各入力端子とフローティングゲートとの間の入力ゲート容量の値をＣｉ、フローティングゲートと、ＮＭＯＳＦＥＴ、ＰＭＯＳＦＥＴのソース、ドレイン、基板（ウェル）端子との間の容量の値の総和をΣＣｎｍｏｓ＋ΣＣｐｍｏｓとした場合、次の式（１）
【００２８】
【数２】
0003565495.tif 000002
が成り立つと、各入力ゲート容量に蓄積する電荷量の総和Ｑｆは、
【００２９】
【数３】
0003565495.tif 000003
であり、フローティングゲート電位Ｖｆｇは、各入力ゲート容量に蓄積する電荷量の総和Ｑｆにほぼ比例し、次の式（２）で表される。
【００３０】
【数４】
0003565495.tif 000004
フローティングゲート電位Ｖｆｇが、ニューロンＭＯＳインバータのフローティングゲートからみた閾値電位Ｖｆｔｈに対して大きければ、ニューロンＭＯＳインバータの出力信号電位Ｖｏｕｔは、閾値電位Ｖｆｔｈに対するフローティングゲート電位Ｖｆｇの論理的反転の電位になる。
【００３１】
上記のように、ニューロンＭＯＳインバータは、「しきい処理」を行うある種の「しきい素子」である。つまり、ニューロンＭＯＳインバータは、全ての入力信号に対するＶｉとＣｉとの積和演算の結果であるＱｆと、ほぼ比例の関係にあるフローティングゲート電位Ｖｆｇを、閾値電位Ｖｆｔｈによって「しきい処理」を行うある種の「しきい素子」である。
【００３２】
次に、入力信号が２値である場合について説明する。
【００３３】
入力信号電位Ｖｉが、２つの安定な電位｛０，Ｖｄｄ｝をとり、入力ゲート容量値Ｃｉを、その最も小さい値によって規格化した値である入力ゲート容量比ｗｉを用いて、Ｃｉ＝Ｃ・ｗｉとした場合、各入力ゲート容量に蓄積する電荷量の総和Ｑｆは次の式（３）、式（４）で表される。
【００３４】
【数５】
0003565495.tif 000005
ニューロンＭＯＳインバータの出力信号を、Ｖｏｕｔとし、Ｖｏｕｔ≧Ｖｆｔｈの電位を、Ｖｈｉｇｈで表現し、Ｖｏｕｔ＜Ｖｆｔｈの電位を、Ｖｌｏｗで表現する。このときに、ニューロンＭＯＳインバータの出力信号Ｖｏｕｔと、各入力ゲート容量に蓄積する電荷量の総和Ｑｆとの関係は、次の式（５）、式（６）で表される。
【００３５】
【数６】
0003565495.tif 000006
このように、入力信号として｛０，Ｖｄｄ｝の２値を用いた場合は、ｘｉ＝１を入力とする入力ゲート容量の容量比の和
【００３６】
【数７】
0003565495.tif 000007
とＶｆｔｈとによって、ニューロンＭＯＳインバータの出力信号値が決まる。
【００３７】
以上、ニューロンＭＯＳインバータの動作について説明した。
【００３８】
次に、上記のニューロンＭＯＳトランジスタと、ニューロンＭＯＳトランジスタとを用いた回路に関する公知技術について説明する。
【００３９】
ニューロンＭＯＳトランジスタおよび、それを用いた回路の研究開発が近年盛んになされているが、再構成可能デバイスを対象とした報告は少ない。代表的な例としては、文献７「Ｔａｄａｓｈｉ  Ｓｈｉｂａｔａ，  ｅｔ  ａｌ．，  Ｒｅａｌ−Ｔｉｍｅ  Ｒｅｃｏｎｆｉｇｕｒａｂｌｅ  Ｌｏｇｉｃ  Ｃｉｒｃｕｉｔｓ  Ｕｓｉｎｇ  Ｎｅｕｒｏｎ  ＭＯＳ  Ｔｒａｎｓｉｓｔｏｒｓ，  ＩＳＳＣＣ９３，  ＦＡ  １５．３，  ｐｐ．  ２３８−２３９，  １９９３」がある。この文献においては、全ての論理関数を実現する回路を作製したという報告がなされているが、回路の設計手法および、回路構成上の特徴に関して、報告されてはいない。
【００４０】
また、ニューロンＭＯＳ回路による再構成デバイスを設計する際に重要な因子の１つである、入力ゲート電極とフローティング電極との容量の値に関係するニューロンＭＯＳトランジスタの構造に関しては、特開平３−６６７９号公報において、その基本構造が開示されている。
【００４１】
上記公開公報においては、上記入力ゲート電極とフローティングゲート電極との間の容量の値は、文献８「Ｗ．  Ｓ．  ＭｃＣｕｌｌｏｃｈ  ａｎｄ  Ｗ．  Ａ．  Ｐｉｔｔｓ，  Ａ  Ｌｏｇｉｃａｌ  Ｃａｌｃｕｌｕｓ  ｏｆ  ｔｈｅ  Ｉｄｅａｓ  Ｉｍｍａｎｅｎｔ  ｉｎ  Ｎｅｕｒａｌ  Ｎｅｔｓ，  Ｂｕｌｌ．  Ｍａｔｃｈ．  Ｂｉｏｐｈｙ．，  Ｖｏｌ．  ５，  ｐｐ．  １１５−１３３，  １９９２」に記載されているニューロンモデルの重み係数、またはニューロンＭＯＳトランジスタをソースフォロワ型の回路に適用し、Ｄ−Ａ（Ｄｉｇｉｔａｌ−Ａｎａｌｏｇ）変換器を作製する際の重み係数として位置付けられ、再構成可能デバイスにおける入力の状態を識別する因子としての発想は示されていない。
【００４２】
【発明が解決しようとする課題】
上記背景において、ニューロンＭＯＳ回路による再構成デバイスの可変論理部中に、対称関数機能を実現する回路と、非対称関数を含む全ての論理関数機能を実現する低面積コストの回路とを組み合わせるために、その回路構成とその設計手法との開発が望まれている。
【００４３】
本発明は、論理関数の中の対称関数のみならず、任意のｋ入力変数論理関数を、ニューロンＭＯＳ回路を用いて、効率的に実現する方法および本方法を用いて設計した論理関数機能を有するニューロンＭＯＳ回路を提供することを目的とするものである。
【００４４】
本発明は、基板上に第１の導電型の半導体領域を有し、上記半導体領域内に設けられている第１の導電型とは異なる第２の導電型の半導体であるソース領域とドレイン領域とを有し、上記ソース領域とドレイン領域とを隔てる領域の上に、絶縁膜を介して設けられている電気的にフローティング状態とみなせる状態をとることが可能であるフローティングゲート電極を有し、上記フローティングゲート電極と絶縁膜とを介して、容量結合する複数のゲート電極を有する半導体装置を、ニューロンＭＯＳトランジスタと呼び、また、上記ニューロンＭＯＳトランジスタにおけるフローティングゲート電極が、所定の電位を有する端子に、導通と遮断または電気的に高インピーダンスとの２つの状態をとり得る素子を介して接続されている半導体装置を、スイッチ付ニューロンＭＯＳトランジスタと呼び、上記ニューロンＭＯＳトランジスタ、上記スイッチ付ニューロンＭＯＳトランジスタにおける複数のゲート電極の中で、入力変数が入力されるゲート電極と上記フローティングゲート電極との間の容量を、入力変数用入力ゲート容量と呼び、上記入力変数用入力ゲート容量について、その容量値の小さい順に番号を付け、入力変数の数ｋを用い、上記各容量値のうちで最も小容量である最小容量値を基準にした容量比を、容量比の集合｛ｗ１，ｗ２，…，ｗｉ，…，ｗｋ｝によって表し、上記容量比の集合における重なりのない要素で構成される任意の数の要素の和が互いに異なるように設計されているニューロンＭＯＳトランジスタ、またはスイッチ付ニューロンＭＯＳトランジスタを有し、上記ニューロンＭＯＳトランジスタ、スイッチ付ニューロンＭＯＳトランジスタは、上記入力変数用入力ゲート容量の比ｗｉが、ｗｉ＝αｉ−１であり、１≦ｉ≦ｋ、１＜α＜２の正数であるという条件を満たすトランジスタである論理関数機能再構成可能な集積回路である。
【００４７】
【発明の実施の形態および実施例】
［アウトライン］
２値を入力変数とする任意のｋ入力変数論理関数を、集積回路上で実現するためには、集積回路が以下の２つの条件を満たす必要がある。
条件（１）：入力変数の組み合わせに対応する異なる２ｋ個の状態を持つ。
条件（２）：２ｋ個の状態のそれぞれに対して、２値のいずれか一方を設定できる仕組みを持つ。
【００４８】
図２５に示す従来のニューロンＭＯＳインバータによって、上記集積回路が構成されている場合、上記条件（１）は、「従来の技術」で説明したように、「フローティングゲートの電位Ｖｆｇが異なる２ｋ個の値を持つ」ことであり、上記式（５）中の
【００４９】
【数８】
0003565495.tif 000008
ことである。
【００５０】
本発明の各実施例は、上記２つの条件を満たすようにするために、以下のように構成されている。
【００５１】
［第１の実施例］
本発明の第１の実施例は、上記条件（１）である
【００５２】
【数９】
0003565495.tif 000009
ような、重みベクトルＷの要素ｗｉの決定方法と、その方法を実装したニューロンＭＯＳインバータである。
【００５３】
第１の実施例は、ニューロンＭＯＳインバータ上に２ｋ個の状態を作る際の指針を開示したものである。
【００５４】
［第２の実施例］
本発明の第２の実施例は、上記第１の実施例における重みベクトルＷの要素ｗｉの決定方法を、より具体化し、定式化した方法である。第２の実施例は、ニューロンＭＯＳインバータ上に２ｋ個の状態を作る際の指針を開示したものである。
【００５５】
［第３の実施例］
本発明の第３の実施例は、第１の実施例における重みベクトルＷの要素ｗｉの最小値に制限がある場合に、
【００５６】
【数１０】
0003565495.tif 000010
がより小さくなるような要素ｗｉの決定方法である。ニューロンＭＯＳインバータに実装する際に、
【００５７】
【数１１】
0003565495.tif 000011
は入力ゲート電極の面積に相当し、第３の実施例は、上記条件（１）を満たすニューロンＭＯＳインバータを低面積コストで実現する方法である。
【００５８】
［第４の実施例］
本発明の第４の実施例は、第１の実施例〜第３の実施例のいずれか１つについて、条件（１）を満たし、また条件（２）における「仕組み」を実現するために、従来技術で紹介した文献５に開示されている対称関数回路を設計する方法を、任意の論理関数の実現する回路を設計する方法に拡張した方法であり、またその方法を用いて設計した集積回路の構成である。つまり、第４の実施例は、任意の論理関数機能を再構成することが可能な集積回路の設計方法と回路構成である。
【００５９】
［第５の実施例］
本発明の第５の実施例は、上記第１の実施例〜第３の実施例のいずれか１つを用いることによって、上記条件（１）を満たし、上記条件（２）に挙げた「仕組み」を実現する際に、「仕組み」の制御を多値表現の信号で行う集積回路の設計方法と、回路構成とである。上記第５の実施例は、上記第４の実施例よりも低面積コストで、同機能を得ることができる集積回路とその設計方法である。
【００６０】
［第６の実施例］
上記第５の実施例が、物理的なレベルにおいて、複数の２値信号によって多値を表現するのに対して、本発明の第６の実施例は、物理的レベルで多値信号を使用する場合における回路構成である。第６の実施例は、第５の実施例よりも低面積コストで、同機能を得ることができる。
【００６１】
次に、上記各実施例について、具体的に説明する。
【００６２】
（第１の実施例）
本発明の第１の実施例は、「２ｋ個の入力変数ｘｉの組み合わせを識別できる要素ｗｉを決める方法」と「入力ベクトルを識別できる重みベクトルのニューロンＭＯＳインバータヘの実装」とによって構成されている。
【００６３】
［２ｋ個の入力変数ｘｉの組み合わせを識別できる要素ｗｉの決め方］
上記の条件（１）である
【００６４】
【数１２】
0003565495.tif 000012
は、「２ｋ個存在する入力変数の組み合わせを識別できる」ことである。初めに、「入力変数の組み合わせ」と「識別できる」の定義について、入力変数が｛ｘ１，ｘ２，ｘ３｝の３変数である場合を例にとって、具体的に説明する。
【００６５】
「入力変数の組み合わせ」は、たとえば３つの入力変数のそれぞれが、論理的に１，０の２値をとる場合、これらの組み合わせは、｛０，０，０｝、｛０，０，１｝、｛０，１，０｝、…、｛１，１，１｝であり、２３個存在し、この２３個の組み合わせを、「入力変数の組み合わせ」という。
【００６６】
次に、「入力変数の組み合わせを識別できる」ことについて説明する。
【００６７】
また、上記組み合わせは、３つの入力変数に対して、互いに直交する座標を設定した場合、３次元空間における３次元立方体の頂点座標のベクトル表現である。以降、このベクトルを「入力ベクトルＸ」と呼ぶ。また、任意の正数を要素とする（ｗ１，ｗ２，ｗ３）を、「重みベクトルＷ」と呼ぶ。入力ベクトルＸと重みベクトルＷとを用いて、
【００６８】
【数１３】
0003565495.tif 000013
について、次の式（７）に示すように、内積を用いてベクトルをスカラに変換することができる。
【００６９】
【数１４】
0003565495.tif 000014
この表現を用いて換言すれば、「入力変数の組み合わせを識別できる」とは、「入力ベクトルと重みベクトルとの内積の結果であるスカラが互いに異なること」である。
【００７０】
ここで、入力ベクトルＸは、｛０，１｝の２値であるので、スカラが互いに異なるためには、｛ｗ１、ｗ２、ｗ３｝の重なりのない要素で構成される任意の数の要素の和が、互いに異なる必要がある。すなわち、ｗ１≠ｗ２≠ｗ３であり、ｗ１＋ｗ２≠ｗ２＋ｗ３≠ｗ３＋ｗ１である必要がある。具体的な例として、重みベクトルＷ＝（２０，２１，２２）であるとすると、入力ベクトルＸを２進表現とみなし、内積によって２進表現から１０進表現に変換する場合がある。この場合、８つの入力ベクトルは、０から７までの異なる整数に変換される。
【００７１】
次に、「スカラが互いに異なる」ようにできる重みベクトルＷが、２のべき乗の要素で構成されるベクトルだけでなく、多数存在する点について説明する。
【００７２】
要素が小さい順に番号づけられている重みベクトルＷを考え、ｋ＝４を例にとると、「スカラが互いに異なる」ためには、ｗ４＞ｗ３＞ｗ２＞ｗ１、ｗ３≠ｗ１＋ｗ２、ｗ４≠ｗ１＋ｗ３、ｗ４≠ｗ２＋ｗ３、ｗ４≠ｗ１＋ｗ２＋ｗ３、ｗ４＋ｗ１≠ｗ３＋ｗ２である必要がある。
【００７３】
これを満たす具体例は、（ｗ１、ｗ２、ｗ３、ｗ４）＝（１、１．１、１．２、１．４）、（ｗ１、ｗ２、ｗ３、ｗ４）＝（１、１．２、１．４、１．７）、（ｗ１、ｗ２、ｗ３、ｗ４）＝（１、４、６、８）、（ｗ１、ｗ２、ｗ３、ｗ４）＝（１、３、９、２７）等である。
【００７４】
上記説明を、ｋ個の要素によって構成される入力ベクトルの場合について言えば、ｋ個の要素の入力ベクトルを識別できるようにする場合、「｛ｗ１、ｗ２、…、ｗｉ、…、ｗｋ｝の中の重なりのない要素で構成される任意の数の要素の和が互いに異なる」必要があると言える（［請求項１］に対応）。
【００７５】
［入力ベクトルを識別できる重みベクトルのニューロンＭＯＳインバータヘの実装］
上記従来技術で説明したように、上記重みベクトルの要素ｗｉは、ニューロンＭＯＳインバータにおいて、各入力変数に対応する入力ゲート電極とフローティングゲートとの間の入力ゲート容量の容量比に相当する。したがって、ニューロンＭＯＳインバータにおいて、重なりのない要素で構成される任意の数の入力ゲート容量比の和が互いに異なるようにすることによって、入力ベクトルを識別することができる。
【００７６】
（第２の実施例）
本発明の第２の実施例は、まず初めに、任意の数の要素の入力ベクトルを識別できることが予め保証される条件と、その条件を満たす重みベクトルとを示し、次に、入力変数の数に制限を加えることによって、入力ベクトルを識別できることが保証される重みベクトルを示し、最後に、上記重みベクトルをニューロンＭＯＳインバータへ実装する実施例である。
【００７７】
つまり、上記第２の実施例は、「第１の実施例の重みベクトルを決める方法に制限を加えた条件の提示」と、「制限を加えた条件を満たす重みベクトルの集合」と、「入力変数の数に制限を加えた場合の重みベクトルの集合」と、「ニューロンＭＯＳインバータヘの実装」とによって、構成されている。
【００７８】
［第１の実施例の重みベクトルを決める方法に制限を加えた条件］
重みベクトルＷのｋ個の要素の値を小さい順に、｛ｗ１，ｗ２，…，ｗｉ，…，ｗｋ｝とすると、ｉ番目の要素ｗｉを、次の式（８）を満たすように設定する。
【００７９】
【数１５】
0003565495.tif 000015
上記式（８）は、第１の実施例で示した条件よりも強い制限条件であり、任意の数の要素を持つ入力ベクトルを識別できることを保証している（［請求項２］に対応）。
【００８０】
［制限を加えた条件を満たす重みベクトルの集合］
次に、上記式（８）を満たす重みベクトルＷの要素ｗｉを具体的に示す。
【００８１】
まず、上記式（８）を、次の式（９）に変形する。
【００８２】
【数１６】
0003565495.tif 000016
上記式（９）を満たす解の１つであるｗｉ＝αｉ−１（α＞１）であるときに、上記式（９）は、次の式（１０）で表される。
【００８３】
0003565495.tif 000017
上記式（１０）で表される関数ｆ（α，ｉ）の符号は、α＞１の条件から、関数ｇ（α，ｉ）の符号と一致するので、関数ｆ（α，ｉ）の符号判定は、関数ｇ（α，ｉ）を用いて行うことができる。したがって、次の式（１２）が成り立つときに、入力ベクトルを識別することができる。
【００８４】
ｇ（α，ｉ）＝αｉ・（α−２）＋１＞０  （１≦ｉ≦ｋ−１）…式（１２）
また、ｇ（α，ｉ）のαに関する１階微分をｇ’（α，ｉ）と記述すると、ｉ＞１において、次の式（１３）が成り立つ。
【００８５】
【数１７】
0003565495.tif 000018
式（１３）が成り立つので、関数ｇ（α，ｉ）は、１＜α＜２において、少なくとも１つの実根を持ち、α≧２において、任意のｉに対して常に正である。このために、次の式（１４）を満たす重みベクトルを用いると、任意の数の要素を持つ入力ベクトルを識別することができる（［請求項３］に対応）。
【００８６】
ｗｉ＝αｉ−１（α≧２）  …式（１４）
［入力変数の数に制限を加えた場合の重みベクトルの集合］
上記式（１４）は、任意の数の要素を持つ入力ベクトルが、識別可能な重みベクトルを表しているが、１＜α＜２であっても、ｇ（α，ｉ）＞０であるαが存在することは、ｉすなわち、入力ベクトルの要素数ｋに制限を加えることによって、入力ベクトルを識別できることを示している（［請求項４］に対応）。
【００８７】
図６は、ｉ＝１，２，３，４，５である場合、０≦α≦２であるαと、ｇ（α，ｉ）との関係を示す図である。
【００８８】
１＜α＜２である場合に、ｇ（α，ｉ）＝０の解は、ｉ＝２，３，４，５について、それぞれ、１．６１８０、１．８３９３、１．９２７６、１．９６６０である。
【００８９】
ｉ≦ｋ−１であるので、図６から、要素の数ｋ＝２，３，４，５，６である場合、それぞれ、α＞１、α＞１．６１８０、α＞１．８３９３、α＞１．９２７６、α＞１．９６６０であれば、式（９）の条件を満たし、原理的には、入力ベクトルを識別できる。
【００９０】
明らかに識別できる入力ベクトルに対する重みベクトルとして、（２０，２１，…，２ｉ−１，…，２ｋ−１）を用いた内積の結果であるスカラをＳ２とする。また、上記重みベクトルと入力ベクトルとの内積の結果であるスカラをＳαとする。
【００９１】
図７は、α＝１．７，１．９，２．０，２．２である場合において、スカラＳ２と、αを用いたスカラＳαとの関係を示す図である。
【００９２】
α≧２では、上記関数ｇ（α，ｉ）＞０であり、図７に示す場合、スカラＳαは、スカラＳ２に対して、傾きが０になることのない単調増加関数である。したがって、上記の通り、全ての入力ベクトルに対するスカラＳαの中で、等しい値のものは存在しないので、入力ベクトルを互いに識別することができる。
【００９３】
図６から、α＝１．７、α＝１．９である場合、それぞれＳ２≦７、Ｓ２≦１５であれば、スカラＳαがスカラＳ２に対して、傾きが０になることのない単調増加関数であるので、入力ベクトルを識別できる。
【００９４】
一方、上記範囲外であっても、Ｓ２≦３１であれば、互いに等しいＳαが存在しない。この場合、式（８）を満たしていないが、入力ベクトルを識別できる第１の実施例に相当する（［請求項１］に対応）。
【００９５】
［ニューロンＭＯＳインバータヘの実装］
上記方法を実回路に実装する場合、実際の容量の値は、製造バラツキ等の製造上の理由によって、上記式で説明した等式を必ずしも満たすとは言えない。また、設計時においても、有効数字の決め方や設計マージンの確保によって、上記説明における等式を必ずしも満たすとは言えない。しかし、このような製造上の理由による値のバラツキや設計時のマージン等の取り方等による値の相違がある場合であっても、上記実施例を適用することができる。すなわち、上記のように製造上の理由による値のバラツキや設計時のマージン等の取り方等による値の相違がある場合も、本発明に属することは明らかである。
【００９６】
（第３の実施例）
本発明の第３の実施例は、従来技術で示した重みベクトルの要素の最小値Ｃ・ｗ１に下限がある場合に、
【００９７】
【数１８】
0003565495.tif 000019
をできるだけ小さくし、入力ベクトルを識別できる重みベクトルを決める方法である。
【００９８】
この方法は、ニューロンＭＯＳインバータにおいて、入力ゲート容量値の最小値に下限が存在する場合、入力ゲート容量値の総和をできるだけ小さくし、入力ベクトルを識別することができる入力ゲート容量比を決めることに相当する。
【００９９】
［最小値が制限される場合の例と問題点］
最小の入力ゲート容量値に制限が課される場合とは、実回路に実装する際に、容量製造のプロセスにおける容量値のバラツキを抑制する場合等が、考えられる。第２の実施例において、最小容量値がある値によって制限されている場合、入力ゲート容量の比は、ある値のべき乗で増加するので、入力ゲート容量値の総和が非常に大きくなり、面積的コストが高くなるという問題がある。
【０１００】
［べき乗の次数を下げる方法］
そこで、面積的コストを低くするためには、べき乗の次数を小さくすることが有効である。ここで、重みベクトルの要素を、値の小さい順に並べると、｛ｗ１，ｗ２，…，ｗｉ，…，ｗｋ｝であるとした場合、次の式（１５）を満たすように、ｉ番目の要素ｗｉを設定する。ただし、α＞１である（［請求項５］に対応）。
【０１０１】
【数１９】
0003565495.tif 000020
式（１５）のように設定した場合、次の式（１６）が成り立つ。
【０１０２】
【数２０】
0003565495.tif 000021
第３の実施例は、第２の実施例と同様に、α≧２の場合は、任意のｉ、すなわち、任意のｋにおいて、ｆ’（ｉ）＞０となり、入力ベクトルを識別でき、１＜α＜２であっても、ｋを制限することによって、ｆ’（ｉ）＞０にすることもでき、入力ベクトルを識別できる。
【０１０３】
［面積コストに対する効果］
次に、上記第２の実施例におけるｗｉ＝αｉ−１の場合と、第３の実施例において、最小の入力ゲート容量値が制限され、ともにｗ１＝１であり、α＝２とした場合とにおける重みベクトルの要素の値の総和を、それぞれＳｕｍ（２）、Ｓｕｍ（３）とすると、第２の実施例における重みベクトルの要素の値の総和Ｓｕｍ（２）が、次の式（１７）に示す値になり、第３の実施例における重みベクトルの要素の値の総和Ｓｕｍ（３）は、次の式（１８）に示す値になる（［請求項６］に対応）。
【０１０４】
Ｓｕｍ（２）＝２ｋ−１  …  式（１７）
Ｓｕｍ（３）＝１＋（２ｋ−１−１）（１＋β）  …式  （１８）
したがって、総和Ｓｕｍ（２）に対する総和Ｓｕｍ（３）の比ηは、次の式（１９）で表される。
【０１０５】
η＝｛１＋（２ｋ−１−１）（１＋β）｝／（２ｋ−１）  …式（１９）
図８は、ｋ＝２，３，４の場合において、重み変調係数βと、総和Ｓｕｍ（２）に対する総和Ｓｕｍ（３）の比ηとの関係を示す図である。
【０１０６】
すなわち、図８は、第３の実施例における面積コストの低減率を示す図である。β＝０．５では、面積コストが、要素の数ｋに応じて多少変わるが、、７７％〜８３％程度に面積コストを低減することができる。
【０１０７】
［ニューロンＭＯＳインバータヘの実装］
上記方法を実回路に実装する場合、実際の容量の値は、製造バラツキ等の製造上の理由によって、上記式で説明した等式を必ずしも満たすとは言えない。また、設計時においても、有効数字の決め方や設計マージンの確保によって、上記説明の等式を必ずしも満たすとは言えない。しかし、このような製造上の理由による値のバラツキや設計時のマージン等の取り方等による値の相違がある場合であっても、上記実施例を適用することができる。すなわち、上記のように製造上の理由による値のバラツキや設計時のマージン等の取り方等による値の相違がある場合も、本発明に属することは明らかである。
【０１０８】
（第４の実施例）
本発明の第４の実施例は、第１〜第３の実施例において説明した入力ベクトルを識別できる重みベクトル、すなわち、入力ゲート容量比の決め方によって、ｋ個の要素を持つ２ｋ個の入力ベクトルに対して、２値のいずれか一方を設定できるようにした集積回路である。（［請求項１０］に対応）
［用語の定義］
まず初めに、集積回路の動作を以下で説明する場合に頻繁に用いる用語の定義について説明する。つまり、図２５に示すニューロンＭＯＳインバータの動作を説明する用語を定義する。
【０１０９】
「フローティングゲート閾値電位」は、図２５に示すニューロンＭＯＳインバータの出力信号がフローティングゲート電位に対して論理反転をする場合における上記ニューロンＭＯＳインバータのフローティングゲートの電位である。
【０１１０】
また、「最大フローティングゲート電位」は、入力信号が全て論理的に１であるときのフローティングゲート電位である。
【０１１１】
「規格化フローティングゲート電位Ｕｆｇ」は、最大フローティングゲート電位で規格化したフローティングゲート電位である。
【０１１２】
「規格化フローティングゲート閾値電位Ｕｆｔｈ」は、最大フローティングゲート電位で規格化したフローティングゲート閾値電位である。
【０１１３】
「入力電荷量Ｑｉ」は、入力変数が入力される端子の入力ゲート容量に蓄積される電荷量である。
【０１１４】
「入力閾値電荷量Ｑｉｔｈ」は、規格化フローティングゲート電位Ｕｆｇが、規格化フローティングゲート閾値電位Ｕｆｔｈであるときにおける入力電荷量Ｑｉである。
【０１１５】
［任意の論理関数を実現する集積回路の回路構成］
図１は、本発明の第１の実施例である論理関数機能再構成可能な集積回路ＩＣ１を示す構成図である。
【０１１６】
まず初めに、集積回路ＩＣ１の回路構成について説明する。
【０１１７】
ｋ入力変数論理関数機能を実現する集積回路ＩＣ１は、図２５に示すニューロンＭＯＳインバータの２段論理で構成され、つまり、プリインバータ１０１と、メインインバータ１００とによって構成されている。
【０１１８】
プリインバータ１０１は、１段目のニューロンＭＯＳインバータであり、メインインバータ１００は、２段目のニューロンＭＯＳインバータである。
【０１１９】
プリインバータ１０１は、２ｋ個設けられている。
【０１２０】
各プリインバータ１０１は、ｋ個の入力変数が入力される第１の入力信号端子ｉｎｐｕｔ１［１］〜ｉｎｐｕｔ１［ｋ］に接続されている入力ゲート電極と、論理関数機能を構成するデータが入力される第２の入力信号端子ｉｎｐｕｔ２［１］〜ｉｎｐｕｔ２［２ｋ］に接続されている入力ゲート電極の中の１つの入力ゲート電極と、プリインバータ１０１の入力信号からみた閾値を制御する電源またはグランドに代表される固定電位を有する端子に接続されている入力ゲート電極と、出力端子とを有する。
【０１２１】
また、メインインバータ１００は、ｋ個の第１の入力信号端子に接続されている入力ゲート電極と、１段目のプリインバータ１０１の出力端子に接続されている入力ゲート電極と、出力端子とを有する。
【０１２２】
［メインインバータ１００の設計］
［プリインバータ１０１に接続された容量比の決め方］
次に、集積回路ＩＣ１のメインインバータ１００において、プリインバータ１０１の出力端子に接続されている入力ゲート電極とフローティングゲートとの間の容量の比の設定方法について説明する。
【０１２３】
ここで、要素の個数ｋ＝３であり、入力ベクトルを識別できるようにするための重みベクトル、すなわち、第１の入力信号のための入力ゲート容量の比が、（１，３，５）であるとする。
【０１２４】
図２は、上記実施例において、要素の個数ｋ＝３であり、重みベクトルが（１，３，５）であるときに、メインインバータ１００における入力電荷量Ｑｉ
【０１２５】
【数２１】
0003565495.tif 000022
と、規格化フローティングゲート電位Ｕｆｇとの関係を示す図である。
【０１２６】
図２において、横軸は、入力電荷量Ｑｉを示し、縦軸は、規格化フローティングゲート電位Ｕｆｇを示す。また、横軸には、各入力ベクトルのＱｉの位置に入力ベクトルを併記してある。また、図２中、Ｃｔｏｔａｌは、全ての入力ゲート容量の値の総和である
【０１２７】
【数２２】
0003565495.tif 000023
を示す。
【０１２８】
初めに、規格化フローティングゲート閾値電位Ｕｆｔｈを、１／２程度に設定する。第１の入力信号が全て論理的に１であるときに、入力電荷量Ｑｉが最大になる。このときの入力電荷量Ｑｉによる規格化フローティングゲート電位Ｕｆｇが、規格化フローティングゲート閾値電位Ｕｆｔｈを越えないようにする。
【０１２９】
次に、入力電荷量Ｑｉが最大である入力ベクトル（ｘ３，ｘ２，ｘ１）＝（１，１，１）のときに、２３個設けられているプリインバータ１０１の中で、第８番目のプリインバータ１０１の出力信号だけが、論理的に１であるときの規格化フローティングゲート電位Ｕｆｇが、規格化フローティングゲート閾値電位Ｕｆｔｈよりも大きくなるように、プリインバータ１０１の出力端子に接続されている入力ゲート電極とフローティングゲートとの間の容量の値Ｃｐ８を設定する。
【０１３０】
ただし、入力ベクトル（１，１，１）よりも１つ小さい入力電荷量を持つ入力ベクトル（１，１，０）のときには、同じ入力信号の状態で規格化フローティングゲート電位Ｕｆｇは、規格化フローティングゲート閾値電位Ｕｆｔｈよりも小さいようにする。
【０１３１】
上記入力ベクトル（１，１，１）と上記容量値Ｃｐ８との場合と同様に、入力ベクトルが（１，１，０）であるときに、第７番目と第８番目のプリインバータ１０１の出力信号のみが論理的に１であれば、規格化フローティングゲート電位Ｕｆｇは、規格化フローティングゲート閾値電位Ｕｆｔｈよりも大きくなり、入力ベクトルが（１，０，１）であるときには、規格化フローティングゲート電位Ｕｆｇは、規格化フローティングゲート閾値電位Ｕｆｔｈよりも小さくなるように、第７番目のプリインバータ１０１に接続されている入力ゲート容量値Ｃｐ７の値を設定する。
【０１３２】
上記と同様の方法で、入力電荷量が大きい順に、入力ベクトル（１，０，１）、（１，０，０）、（０，１，１）、（０，１，０）、（０，０，１）、（０，０，０）に対応する入力ゲート容量値Ｃｐ６、Ｃｐ５、Ｃｐ４、Ｃｐ３、Ｃｐ２、Ｃｐ１の値を設定する。
【０１３３】
上記の方法によって、２３個のプリインバータ１０１の出力端子に接続されている入力ゲート容量の容量値を設定する。
【０１３４】
［任意の論理関数が実現できることの説明］
次に、上記方法によって設定された入力ゲート容量値を持つメインインバータ１００が、任意の論理関数を実現することが可能である点について説明する。
【０１３５】
図２の横軸の入力電荷量Ｑｉについて、所定の入力ベクトルを挟む２つの入力ベクトルが存在する。つまり、所定の入力ベクトルについて、その入力ベクトルの入力電荷量よりも大きい入力電荷量の入力ベクトルと小さい入力電荷量の入力ベクトルとが存在し、これらの３つの入力電荷量の間に他の入力ベクトルの入力電荷量が存在しない。
【０１３６】
ただし、入力ベクトル（０，０，０）に対しては、入力電荷量Ｑｉが大きい入力ベクトル（０，０，１）のみが存在し、入力ベクトル（１，１，１）に対しては、入力電荷量Ｑｉが小さい入力ベクトル（１，１，０）のみが存在する。
【０１３７】
この所定の入力ベクトルと入力電荷量Ｑｉが大きい入力ベクトルとの間の１つの入力電荷量Ｑｉと、小さい入力ベクトルとの間の１つのＱｉとの、どちらか一方において、プリインバータ１０１が論理反転を起こし、出力信号の論理的値が１から０に変化するという機能を、各プリインバータ１０１が持ち、この場合、各入力ベクトルにおける規格化フローティングゲート電位Ｕｆｇと規格化フローティングゲート閾値電位Ｕｆｔｈとの大小関係は、各入力ベクトルに１対１対応するプリインバータ１０１の出力信号の論理的１，０の値のみに依存する。
【０１３８】
図２において、各入力ベクトルにおける黒丸は、規格化フローティングゲート電位Ｕｆｇが規格化フローティングゲート閾値電位Ｕｆｔｈよりも大きい場合を示し、各入力ベクトルにおける白丸は、規格化フローティングゲート電位Ｕｆｇが規格化フローティングゲート閾値電位Ｕｆｔｈよりも小さい場合を示す。
【０１３９】
したがって、各プリインバータ１０１が持つ２つの入力閾値電荷量のうちの一方を選択する制御信号を、論理関数機能を構成するデータとして、プリインバータ１０１に与えることによって、任意の論理関数を実現することができる。
【０１４０】
［プリインバータ１０１の設計］
［２つのＱｉｔｈを持つための容量比の決め方］
次に、プリインバータ１０１に、２つの入力閾値電荷量Ｑｉｔｈを持たせる方法について説明する。
【０１４１】
図３は、第ｊ番目のプリインバータ１０１の回路図と、各入力ゲート電極とフローティングゲートとの間の容量値との関係を示す図である。
【０１４２】
以下では、２３個設けられているプリインバータ１０１のうちで、入力ベクトル（１，０，０）に対応する第５番目のプリインバータ１０１を使用して説明する。
【０１４３】
図４は、第５番目のプリインバータ１０１における入力電荷量Ｑｉと、規格化フローティングゲート電位Ｕｆｇとの関係を示す図である。
【０１４４】
図４において、Ｃｔｏｔａｌは
【０１４５】
【数２３】
0003565495.tif 000024
を示す。
【０１４６】
まず、メインインバータ１００と同様に、入力ベクトルを識別可能でるように、５番目のプリインバータ１０１における第１の入力信号用入力ゲート容量の値Ｃ５１ｉを設定する。
【０１４７】
図４では、各第１の入力信号のための入力ゲート容量の比は、メインインバータ１００と同じ容量比に設定されているが、必ずしも同じである必要はなく、入力ベクトルを識別可能できるものであればよい。
【０１４８】
次に、第２の入力信号が論理的に０であるときに、規格化フローティングゲート電位Ｕｆｇが規格化フローティングゲート閾値電位Ｕｆｔｈとなる入力闘値電荷量Ｑｉｔｈ０が、入力ベクトル（１，０，０）のＱｉと（１，０，１）のＱｉとの間になり、同時に、第２の入力信号が論理的に１であるときに、規格化フローティングゲート電位Ｕｆｇが規格化フローティングゲート閾値電位Ｕｆｔｈとなる入力閾値電荷量Ｑｉｔｈ１が、入力ベクトル（１，０，０）のＱｉと（０，１，１）のＱｉとの間になるように、５番目のプリインバータ１０１における第１の入力信号用入力ゲート容量の値Ｃ５１ｉと、第２の入力信号用入力ゲート容量の値Ｃ５２０とを設定する。
【０１４９】
このときに、入力ベクトルが（１，０，０）である場合、プリインバータ１０１の規格化フローティングゲート電位Ｕｆｇがとり得る値は、第２の入力信号が論理的に１であるときにおける規格化フローティングゲート閾値電位Ｕｆｔｈよりも大きい値（図４中の黒丸）と、第２の入力信号が論理的に０であるときにおける規格化フローティングゲート閾値電位Ｕｆｔｈよりも小さい値（図４中の白丸）との２つである。
【０１５０】
図５は、入力ベクトルと規格化フローティングゲート電位Ｕｆｇとが、図４に示す関係であるときに、入力ベクトル（または、入力電荷量Ｑｉ）と、プリインバータ１０１の出力信号の論理的値との関係を示す図である。
【０１５１】
図５に示すように、入力ベクトル（１，０，０）のＱｉよりも小さいＱｉを持つ入力ベクトル（０，１，１）までは、論理的に１であり、逆に、大きいＱｉを持つ入力ベクトル（１，０，１）では、論理的に０になる。このように、プリインバータ１０１の上記機能を実現することができる。ここで、出力信号の論理的値は、規格化フローティングゲート電位Ｕｆｇ、規格化フローティングゲート閾値電位Ｕｆｔｈよりも大きければ０であり、逆に、小さければ、１である。
【０１５２】
上記説明は、ｋ＝３である場合における全ての論理関数を実現する回路の設計方法の説明であるが、ｋが３以外の任意の値である場合にも、上記と同様の方法によって、全ての論理関数を実現することができる。また、この方法によって、集積回路ＩＣ１を設計することができる。
【０１５３】
［ニューロンＭＯＳインバータとは異なるスイッチ付ニューロンＭＯＳインバータを使用した場合の説明］
上記説明は、図１に示すニューロンＭＯＳインバータによって構成された集積回路ＩＣ１の説明である。
【０１５４】
次に、スイッチ付ニューロンＭＯＳインバータによって構成されている集積回路ＩＣ１ａについて説明する。
【０１５５】
図２０は、上記論理関数機能再構成可能な集積回路ＩＣ１の変形例である論理関数機能再構成可能な集積回路ＩＣ１ａを示す構成図である。
【０１５６】
論理関数機能再構成可能な集積回路ＩＣ１ａは、図１に示す集積回路ＩＣ１と類似の回路構成を有する集積回路である。集積回路ＩＣ１ａは、集積回路ＩＣ１において、メインインバータ１００の代わりに、メインインバータ１１０が設けられている点と、プリインバータ１０１の代わりに、プリインバータ１１１が設けられている点とのみが異なる。
【０１５７】
集積回路ＩＣ１におけるメインインバータ１００とプリインバータ１０１とは、各フローティングゲートが完全にフローティングの状態であり、いかなる端子にも接続されていない。
【０１５８】
一方、集積回路ＩＣ１ａにおけるメインインバータ１１０とプリインバータ１１１とは、スイッチ付ニューロンＭＯＳトランジスタを用いたインバータ機能を持つスイッチ付ニューロンＭＯＳインバータである。
【０１５９】
スイッチ付ニューロンＭＯＳトランジスタは、そのフローティングゲートがＮＭＯＳＦＥＴ等のスイッチ素子の導通、遮断によって、所定の電位を有する端子に接続、遮断を行うことが可能なニューロンＭＯＳトランジスタである。
【０１６０】
集積回路ＩＣ１ａにおいて、メインインバータ１１０は、端子ｃｔｌｍの信号によって導通、遮断を制御されるメインインバータ初期化用ＮＭＯＳＦＥＴ１１３を介して、所定の電位を有する端子に導通、遮断され、プリインバータ１１１は、端子ｃｔｌｐの信号によって制御されるプリインバータ初期化用ＮＭＯＳＦＥＴ１１４を介して所定の電位を有する端子に導通、遮断される。
【０１６１】
上記以外の点については、集積回路ＩＣ１の回路構成とＩＣ１ａの回路構成とは同じである。
【０１６２】
したがって、以降の説明は、図１に示す集積回路ＩＣ１で使用されているメインインバータ１００、プリインバータ１０１を使用した回路について行う。なお、同じ設計方法が、集積回路ＩＣ１ａの回路構成でも使用可能である。
【０１６３】
（第５の実施例）
第５の実施例は、論理関数構成データを多値表現（［請求項７］に対応）することによって、２段論理の論理関数機能再構成可能な集積回路ＩＣ１におけるプリインバータ１０１の数を低減するものである。（その集積回路の設計方法は、請求項１１に対応）
［構成データとして多値表現を使用した場合における集積回路の回路構成］
図９は、本発明の実施例である集積回路ＩＣ２の回路図であり、上記機能を有する集積回路ＩＣ２の回路図である。
【０１６４】
集積回路ＩＣ２は、ｋ入力変数論理関数機能を実現する集積回路であり、第４の実施例における説明と同様に、ニューロンＭＯＳインバータの２段論理によって構成され、つまり、メインインバータ９０１とプリインバータ９０２との２段論理によって構成されている。
【０１６５】
メインインバータ９０１は、ｋ個の入力変数が入力される第１の入力信号端子ｉｎｐｕｔ１［１］〜ｉｎｐｕｔ１［ｋ］に接続される入力ゲート電極と、プリインバータ９０２の出力端子に接続される入力ゲート電極とを有する。
【０１６６】
また、プリインバータ９０２は、第１の入力信号端子の他に、論理関数機能を構成するデータが入力される第２の入力信号端子ｉｎｐｕｔ２［１１］〜ｉｎｐｕｔ２［ｈａｈ］と、入力信号からみた閾値を制御する電源またはグランドに代表される固定電位を有する端子に接続される入力ゲート電極とを有する。
【０１６７】
ここで、第４の実施例と回路構成について比較すると、第４の実施例の集積回路ＩＣ１は、ただ１つの第２の入力信号端子を具備する２ｋ個のプリインバータ１０１を有する回路構成であるが、集積回路ＩＣ２は、各プリインバータ１０１が複数個の第２の入力信号端子を有し、２ｋ個よりも少ないプリインバータ１０１で回路を構成する。すなわち、図９において、第２の入力端子ｉｎｐｕｔ２［ｈａｈ］のｈは、プリインバータの数を表しており、２ｋよりも小さく、ａｈは、ｈ番目のプリインバータ１０１における第２の入力信号の数である。
【０１６８】
また、複数個の第２の入力信号を用いるということは、１つの第２の入力信号を用いる場合に置き換えると、１つの多値信号を用いるということになる。たとえば、２値を使用した場合に、１つの入力信号では、｛０，１｝の異なる２つの値の表現、すなわち、２値のみを表現できるが、２つの入力信号では、｛（０，０）、（０，１）、（１，０）、（１，１）｝の異なる４つの値の表現、すなわち、４値の表現が可能になる。
【０１６９】
［プリインバータ９０２の設計：入力ゲート容量比の決め方］
次に、図９に示す集積回路ＩＣ２におけるプリインバータ９０２の回路構成によって、入力信号からみた閾値である入力闘値電荷量Ｑｉｔｈに関して、任意の複数のＱｉｔｈを生成することが可能であり、この点について説明する。
【０１７０】
具体例として、ｋ＝２であり、２つの第２の入力信号を用いる場合について説明する。
【０１７１】
図１０は、入力信号からみた３つの閾値を有するニューロンＭＯＳインバータＩＮＶ３を示す回路図である。
【０１７２】
ニューロンＭＯＳインバータＩＮＶ３は、２つの第１の入力信号端子ｉｎｐｕｔ１［１］、ｉｎｐｕｔ１［２］と、２つの第２の入力信号端子ｉｎｐｕｔ２［ｈ１］、ｉｎｐｕｔ２［ｈ２］と、グランドに接続される端子とを有する。各入力ゲート電極とフローティングゲートとの間の入力ゲート容量値は、Ｃ１１，Ｃ１２，Ｃ２ｈ１，Ｃ２ｈ２，Ｃｇｎｄであるとする。入力ゲート容量値Ｃ１１，Ｃ１２に関しては、上記第４の実施例で説明したように、Ｃ１１：Ｃ１２＝１：２とすることによって、入力ベクトルを識別できるようにする。
【０１７３】
このときに、入力ゲート容量値Ｃ１１，Ｃ１２の容量を持つ入力信号端子ｉｎｐｕｔ１［１］、ｉｎｐｕｔ１［２］に対応する入力変数を、ｘ１、ｘ２とし、入力電荷量Ｑｉの小さい順に、入力ベクトル（ｘ１，ｘ２）を並べると、（０，０）、（１，０）（０，１）、（１，１）になる。
【０１７４】
次に、図１０に示すニューロンＭＯＳインバータＩＮＶ３が、入力ベクトル（０，０）と（１，０）との間の領域と、（０，１）と（１，１）との間の領域と、（１，１）よりも大きい領域との３つの領域に、それぞれ１つの入力閾値電荷量Ｑｉｔｈを持たせるように、入力ゲート容量値Ｃ２ｈ１，Ｃ２ｈ２，Ｃｇｎｄを決める方法について説明する。
【０１７５】
図１１は、上記の特性を有するニューロンＭＯＳインバータＩＮＶ３の入力電荷量と、規格化フローティングゲート電位Ｕｆｇとの関係を示す図である。
【０１７６】
また、規格化フローティングゲート閾値電位Ｕｆｔｈを、１／２近傍に設定してあるとする。
【０１７７】
また、図１１中、Ｃｔｏｔａｌは、Ｃ１１＋Ｃ１２＋Ｃ２ｈ１＋Ｃ２ｈ２＋Ｃｇｎｄを示し、ｌｉｎｅ０は、第１の入力信号以外の入力信号が全て論理的に０である場合における規格化フローティングゲート電位Ｕｆｇを示し、ｌｉｎｅ１は、ｉｎｐｕｔ２［ｈ１］から入力される第２の入力信号が常に論理的に１である場合における規格化フローティングゲート電位Ｕｆｇを示し、ｌｉｎｅ２は、ｉｎｐｕｔ２［ｈ１］とｉｎｐｕｔ２［ｈ２］とから入力される第２の入力信号が共に常に論理的に１である場合における規格化フローティングゲート電位Ｕｆｇを示す。
【０１７８】
入力ベクトル（１，１）よりもＱｉが大きい領域に、１つのＱｉｔｈを有するので、（Ｃ１１＋Ｃ１２）／Ｃｔｏｔａｌを、（１／２）よりも小さくする。つまり、図１１に示すニューロンＭＯＳインバータＩＮＶ３が持つ３つの入力閾値電荷量中、最大の入力閾値電荷量が、入力ベクトルが（１，１）であるときの入力電荷量Ｑｉよりも大きいので、入力ベクトルが（１，１）であるときにおける規格化フローティングゲート電位と等価である（Ｃ１１＋Ｃ１２）／Ｃｔｏｔａｌは、規格化フローティングゲート閾値電位Ｕｆｔｈ＝１／２よりも小さく設定されなければならない。これによって、ｌｉｎｅ０は、入力ベクトル（１，１）のときよりも大きいＱｉの領域において規格化フローティングゲート閾値電位Ｕｆｔｈと交わる。
【０１７９】
図１１中の直線ｌｉｎｅ０，ｌｉｎｅ１，ｌｉｎｅ２と、規格化フローティングゲート閾値電位Ｕｆｔｈとの交点がＱｉｔｈであり、ｌｉｎｅ０〜ｌｉｎｅ２の規格化フローティングゲート電位Ｕｆｇが規格化フローティングゲート閾値電位Ｕｆｔｈよりも小さいＱｉにおいては、ニューロンＭＯＳインバータの出力信号は論理的に１であり、逆に、大きいＱｉにおいては、出力信号は論理的に０になる。
【０１８０】
また、ニューロンＭＯＳインバータＩＮＶ３の入力閾値電荷量Ｑｉｔｈを入力ベクトル（０，１）と（１，１）との間の電荷量Ｑｉに設定したいので、ｌｉｎｅ１と規格化フローティングゲート閾値電位Ｕｆｔｈとの交点が、図１１中の入力ベクトル（０，１）と（１，１）との間になるように、Ｃ２ｈｉ／Ｃｔｏｔａｌを設定する。
【０１８１】
これと同様に、入力ベクトル（０，０）と（１，０）との間のＱｉにおいて、Ｑｉｔｈを持たせるために、ｌｉｎｅ２と規格化フローティングゲート閾値電位Ｕｆｔｈとの交点が、図１１中の入力ベクトル（０，０）と（１，０）との間になるように、Ｃ２ｈ２／Ｃｔｏｔａｌを設定する。
【０１８２】
最後に、１−（Ｃ１１＋Ｃ１２＋Ｃ２ｈ１＋Ｃ２ｈ２）／Ｃｔｏｔａｌを、Ｃｇｎｄ／Ｃｔｏｔａｌとする。このように、各入力ゲート容量値を決めることによって、任意の入力電荷量Ｑｉに、入力閾値電荷量Ｑｉｔｈを設定することができる。
【０１８３】
［プリインバータ９０２の入出力特性］
図１２は、上記方法によって、入力ゲート容量値を設定した場合におけるニューロンＭＯＳインバータの入出力特性を示す図である。
【０１８４】
図１２において、横軸は、Ｑｉを示し、縦軸は、ニューロンＭＯＳインバータの出力電位Ｖｏｕｔを電源電位Ｖｄｄで規格化した値または、論理的な値を示す。また、図１２中、（１，１）、（１，０）、（０，０）は、それぞれ、第２の入力信号端子ｉｎｐｕｔ２［ｈ１］、ｉｎｐｕｔ２［ｈ２］からの入力信号の論理的値が、（１，１）、（１，０）、（０，０）であることを示す。
【０１８５】
図１２から判るように、ニューロンＭＯＳインバータに、２つの２値表現を有する第２の入力信号を入力し、各入力ゲート容量の値を上記のように設定し、２つの２値表現の第２の入力信号で表現される４つの値のうちの３つの値（１，１）、（１，０）、（０，０）を使用することによって、異なる３つの閾値を有するニューロンＭＯＳインバータを設計することができる（［請求項８］に対応）。
【０１８６】
［メインインバータ９０１の回路構成］
次に、上記方法で設計されたニューロンＭＯＳインバータをプリインバータ９０２として使用し、第１の実施例よりも少ないプリインバータ数で構成された集積回路ＩＣ２が任意の論理関数機能を実現できることについて説明し、その具体例として、ｋ＝２の場合について説明する。
【０１８７】
図１３は、本発明の実施例である集積回路ＩＣ３を示す回路図であり、ｋ＝２である場合において、論理関数機能を再構成することが可能な集積回路ＩＣ３の回路図である。
【０１８８】
第４の実施例では、ｋ＝２である場合、２ｋ＝４個のプリインバータ１０１を必要とするが、集積回路ＩＣ３では、上記の多値表現を用いたプリインバータ９０２を使用し、３つのプリインバータ９０２によって、上記と同じ機能を実現する。
【０１８９】
メインインバータ１３００は、入力変数ｘ１、ｘ２が入力される第１の入力信号端子ｉｎｐｕｔ１［１］、１ｎｐｕｔ１［２］とフローティングゲートとの間に入力ゲート容量値Ｃｍ１，Ｃｍ２の容量を持ち、プリインバータ１３０１、１３０２、１３０３の出力端子に接続されている端子とフローティングゲートとの間に入力ゲート容量値Ｃｐ１，Ｃｐ２，Ｃｐ３の容量を持つ。
【０１９０】
ここで、Ｃｍ１：Ｃｍ２＝１：２として、入力ベクトルを識別できるようにする。また、入力ゲート容量値Ｃｐ１，Ｃｐ２，Ｃｐ３を、次のようにして決める。
【０１９１】
［メインインバータ１３００の入力ゲート容量比の決め方］
第４の実施例では、各入力ベクトルに１対１対応するプリインバータ１０１を決め、その出力信号の論理的値とメインインバータ１００の出力信号の論理的値とを対応づけることによって、任意の論理関数を実現する。
【０１９２】
集積回路ＩＣ３では、４つの入力ベクトルの中で、所定の１つの入力ベクトルに対して１対１対応するプリインバータを、プリインバータ１３０１、１３０２、１３０３の中から決め、この決められたプリインバータの出力信号の論理的値とメインインバータ１３００の出力信号の論理的値とを対応づけるが、他の３つの入力ベクトルに対しては、２つのプリインバータの出力信号の論理的値の組み合わせによって、メインインバータ１３００の出力信号の論理的値を決める。
【０１９３】
図１４は、図１３に示す集積回路ＩＣ３のメインインバータ１３００におけるＱｉ（または、入力ベクトル）と、規格化フローティングゲート電位Ｕｆｇとの関係を示す図である。
【０１９４】
図１４において、横軸の
【０１９５】
【数２４】
0003565495.tif 000025
は、Ｑｉを示し、（０，０）、（１，０）、（０，１）、（１，１）は、入力変数（ｘ１，ｘ２）に対する入力ベクトルを示し、縦軸は、規格化フローティングゲート電位Ｕｆｇを示している。
【０１９６】
図１４において、Ｕｆｔｈは、規格化フローティングゲート閾値電位を示し、Ｃｔｏｔａｌは、入力ゲート容量値の総和である（Ｃｍ１＋Ｃｍ２＋Ｃｐ１＋Ｃｐ２＋Ｃｐ３）を示している。
【０１９７】
最大入力電荷量となる入力ベクトル（１，１）において、プリインバータの出力信号の論理的値が全て０であるときにおける規格化フローティングゲート電位Ｕｆｇが、規格化フローティングゲート閾値電位Ｕｆｔｈを越えないように、Ｃｐ１＋Ｃｐ２＋Ｃｐ３を設定する。
【０１９８】
ここで、Ｃｍ１を基準としたＣｍ２、Ｃｐ１，Ｃｐ２，Ｃｐ３の比を、ｗｍ２，ｗｐ１，ｗｐ２，ｗｐ３とする。図１４に示す具体例では、ｗｍ２＝２，（ｗｐ１＋ｗｐ２＋ｗｐ３）＝４であるとしてある。
【０１９９】
次に、最小入力電荷量における入力ベクトル（０，０）において、プリインバータ１３０２、１３０３の出力信号が論理的に１であるときに、プリインバータ１３０１の出力信号が論理的に０である場合における規格化フローティングゲート電位Ｕｆｇが規格化フローティングゲート閾値電位Ｕｆｔｈよりも小さく、かつ、プリインバータ１３０１の出力信号が論理的に１である場合の規格化フローティングゲート電位Ｕｆｇが規格化フローティングゲート閾値電位Ｕｆｔｈより大きくなるように、ｗｐ１と（ｗｐ２＋ｗｐ３）とを設定する。図１４に示す具体例では、ｗｐ１＝１、（ｗｐ２＋ｗｐ３）＝３である。
【０２００】
また、プリインバータ１３０１は、１つの第２の入力信号によって、２つのＱｉｔｈとして、入力ベクトル（０，０）よりも小さいＱｉと、入力ベクトル（０，０）と（１，０）との間のＱｉとを設定している。
【０２０１】
最後に、ｗｐ２とｗｐ３とを、次のように設定する。
【０２０２】
入力ベクトル（１，１）において、プリインバータ１３０３の出力信号のみが論理的に１であり、プリインバータ１３０１、１３０２の出力信号が論理的に０であるときの規格化フローティングゲート電位Ｕｆｇが、規格化フローティングゲート閾値電位Ｕｆｔｈよりも大きく、入力ベクトル（０，１）において、同じ条件の規格化フローティングゲート電位Ｕｆｇが、規格化フローティングゲート閾値電位Ｕｆｔｈよりも小さくなるようにする。
【０２０３】
さらに、入力ベクトル（１，０）において、プリインバータ１３０１、１３０２、１３０３の出力信号の論理的値の組み合わせが、（０，１，１）であるときの規格化フローティングゲート電位Ｕｆｇが、規格化フローティングゲート閾値電位Ｕｆｔｈよりも大きく、（０，１，０）であるときの規格化フローティングゲート電位Ｕｆｇが、規格化フローティングゲート閾値電位Ｕｆｔｈよりも小さくなり、入力ベクトル（０，１）において、プリインバータ１３０１、１３０２、１３０３の出力信号の論理的値の組み合わせが、（０，１，０）であるときの規格化フローティングゲート電位Ｕｆｇが、規格化フローティングゲート閾値電位Ｕｆｔｈよりも大きくなるようにする。
【０２０４】
以上の条件を満たすように、ｗｐ２とｗｐ３とを決める。図１４に示す具体例では、ｗｐ２＝２、ｗｐ３＝１である。
【０２０５】
また、プリインバータ１３０２において、２つの第２の入力信号端子ｉｎｐｕｔ２［２１］，ｉｎｐｕｔ２［２２］から、２つの２値信号を入力することによって、４つの閾値として、入力ベクトル（０，０）と（１，０）との間の領域と、入力ベクトル（１，０）と（０，１）との間の領域と、入力ベクトル（０，１）と（１，１）との間の領域と、入力ベクトル（１，１）よりも大きい領域とを設定する。
【０２０６】
プリインバータ１３０３において、２つの第２の入力信号端子ｉｎｐｕｔ２［３１］、ｉｎｐｕｔ２［３２］から、２つの２値信号を入力することによって、３つの閾値として、入力ベクトル（０，０）と（１，０）との間の領域と、入力ベクトル（０，１）と（１，１）との間の領域と、入力ベクトル（１，１）よりも大きい領域とを設定する。
【０２０７】
以上のように、メインインバータ１３００の入力ゲート容量の比と、プリインバータ１３０１、１３０２、１３０３の閾値とを決めることによって、要素の数ｋ＝２の場合に、任意の論理関数を実現することができる。
【０２０８】
［具体的な構成データ］
図１５は、要素の数ｋ＝２である場合における入力変数ｘ１，ｘ２によって実現される１６個の論理関数中、８個の論理関数を、図１３に示す集積回路ＩＣ３によって実現するときに、規格化フローティングゲート電位Ｕｆｇと、プリインバータ１３０２、１３０３の出力信号の論理的値（Ｙｐ２，Ｙｐ３）との関係を示す図である。
【０２０９】
規格化フローティングゲート電位Ｕｆｇは、規格化フローティングゲート閾値電位Ｕｆｔｈよりも大きい場合に１と表記し、小さい場合に０と表記する。メインインバータ１３００の出力信号の論理的値は、図１５の規格化フローティングゲート電位Ｕｆｇの論理的反転の値である。
【０２１０】
集積回路ＩＣ３では、図１４に示すように、入力ベクトルが（０，０）であるときは、プリインバータ１３０１の出力信号の論理的値の２値のみでメインインバータ１３００の出力信号の論理的値が決まるので、図１５では、プリインバータ１３０１の出力信号の論理的値が０である場合のみを示してある。
【０２１１】
入力ベクトル（０，０）において、規格化フローティングゲート電位Ｕｆｇを規格化フローティングゲート閾値電位Ｕｆｔｈよりも大きくするには、プリインバータ１３０１の出力信号の論理的値を１にするだけで足りる。他の信号の状態に影響を与えることはない。したがって、図１５において８個の論理関数を実現できることは、１６個の全ての論理関数を実現できることを意味している。
【０２１２】
［ｋ＝２の場合のまとめ］
上記説明のように、図１３に示す集積回路ＩＣ３は、要素の数ｋ＝２である場合において、１６個の任意の論理関数を実現することができ、第１の実施例の集積回路ＩＣ１では、要素の数ｋ＝２である場合に、４つのプリインバータ１０１を必要としたが、集積回路ＩＣ３では、３つのプリインバータ９０２によって、集積回路ＩＣ１における機能と同じ機能を実現することができる。また、プリインバータの数を低減することによって、論理関数機能再構成可能な集積回路の面積コストを低減することができる。
【０２１３】
［上記方法が汎用的な方法であることの説明］
次に、上記実施例の設計方法が、要素の数ｋ＝２である場合のみに適用可能な特殊な方法ではなく、任意のｋに対して、常に、プリインバータ数（３／４）・２ｋを使用する有効な設計方法であることについて説明する。
【０２１４】
図１６は、集積回路ＩＣ３と同様の設計方法を、要素の数ｋ＝３に拡張し、設計された集積回路におけるメインインバータの入力ベクトル、または入力電荷量と、規格化フローティングゲート電位Ｕｆｇとの関係を示す図である。
【０２１５】
ｋ入力変数の入力ベクトルは、２ｋ個存在し、この入力ベクトルによって実現できる論理関数は、最大２ｋ個存在する。これらの入力ベクトルに対応する入力電荷量が小さい順に、入力ベクトルを並べ、４つの入力ベクトルを１つのブロックにする。
【０２１６】
これによって、２ｋ−２個のブロックができる。各ブロックに対して、集積回路ＩＣ３で用いた方法と同様の方法を適用することによって、１つのブロックに対して３つのプリインバータを用い、これによって、そのブロックに属する入力ベクトルに対する全ての論理関数を実現することができる。
【０２１７】
図１６において、入力ベクトル（０，０，０）〜（１，１，０）までが１つのブロックであり、入力ベクトル（０，０，１）〜（１，１，１）も１つのブロックである。入力ベクトルと規格化フローティングゲート電位Ｕｆｇとの関係が、ブロックを単位とした周期構造を持っていることが判る。
【０２１８】
［本実施例のまとめ］
上記実施例の方法を用いることによって、任意のｋ入力変数によって実現可能な２ｋ個の論理関数を、（３／４）・２ｋ個のプリインバータを用いて実現することができる。
【０２１９】
上記実施例に示すように、２値信号を複数用いて、論理関数機能構成データを多値表現した場合、集積回路における第２の入力信号の総数は、第１の実施例の場合の総数である２ｋと等しいか、または多いかのいずれかである。プリインバータの数を低減できる一方、第２の入力信号の数が増加し、そのための入力ゲート電極数が増加する。
【０２２０】
しかし、プリインバータ数を低減する場合の面積に対する効果と、第２の入力信号を入力するための入力ゲート電極数の増加による効果とでは、一般的には前者の効果の方が大きくなる。したがって、上記実施例を用いることによって、論理関数機能再構成可能な集積回路を、低面積コストで実現することができる。
【０２２１】
（第６の実施例）
第５の実施例である集積回路ＩＣ３のプリインバータでは、複数の第２の入力信号を入力することによって、入力信号からみた複数の閾値を、任意の入力電荷量に設定することができる。
【０２２２】
次に、上記実施例において、第２の入力信号の入力端子を１つにしても、入力信号として、物理的に多値である信号を用いることによって、同様の機能を持たせることが可能であることについて説明する（［請求項９］に対応）。
【０２２３】
［多値電位を使用する場合の集積回路の回路構成：第５の実施例と比較］
図１７は、第２の入力信号として多値電位を用いた論理機能再構成可能な集積回路ＩＣ４の回路構成を示す図である。
【０２２４】
集積回路ＩＣ４のメインインバータ１７００の各入力ゲート容量値と、フローティングゲート閾値電位との設定は、第５の実施例の集積回路ＩＣ３と同様である。集積回路ＩＣ４は、そのプリインバータ１７０１における第２の入力信号端子数と、入力信号からみた複数の閾値とを設定する方法において、集積回路ＩＣ３とは異なる。
【０２２５】
［プリインバータの回路構成と動作］
図１８は、集積回路ＩＣ４のプリインバータ１７０１の回路構成を示す図である。
【０２２６】
このプリインバータ１７０１の回路構成と動作とを、図１０に示すニューロンＭＯＳインバータＩＮＶ３と比較して、２値の複数の第２の入力信号を入力することと、多値電位の１つの第２の入力信号を入力することとが等価であり、全く同じ機能を持たせることができることについて説明する。
【０２２７】
図１８に示すプリインバータ１７０１の第２の入力信号端子ｉｎｐｕｔ２［ｈ］に接続される入力ゲート容量の値Ｃ２ｈを、図１０に示すニューロンＭＯＳインバータＩＮＶ３の第２の入力信号を入力する入力ゲート容量の値Ｃ２ｈ１、Ｃ２ｈ２の和の値Ｃ２ｈ１＋Ｃ２ｈ２にする。
【０２２８】
図１９は、上記入力ゲート容量値を用いた場合におけるプリインバータ１７０１の入力ベクトル、または入力電荷量Ｑｉと、規格化フローティングゲート電位Ｕｆｇとの関係を示す図である。
【０２２９】
図１９中、Ｃｔｏｔａｌ＝Ｃ１１＋Ｃ１２＋Ｃ２ｈ＋Ｃｇｎｄであり、ｌｉｎｅ０は、第２の入力信号端子ｉｎｐｕｔ２［ｈ］に入力される信号が、論理的に０である場合における規格化フローティングゲート電位Ｕｆｇであり、１ｉｎｅ１は、第２の入力信号端子ｉｎｐｕｔ２［ｈ］に入力される信号が、論理的に１である場合における規格化フローティングゲート電位Ｕｆｇである。
【０２３０】
入力信号が２値である場合は、１ｉｎｅ０とｌｉｎｅ１との２つの状態しか取ることができないが、多値を利用できる場合は、ｌｉｎｅ０とｌｉｎｅ１との間の全ての値を取ることが可能である。多値として、論理的に（１／３）を使用することによって、図１１と同じＱｉに、入力閾値電荷量Ｑｉｔｈを設定することができる。すなわち、図１１と同じＱｉに、Ｑｉｔｈを設定するためには、図１８のプリインバータ１７０１の第２の入力信号として、１、（１／３）、０の３値を用いればよい。
【０２３１】
上記実施例において、多値電位を第２の入力信号として用いることによって、２値の複数の入力信号を用いた場合と同様の機能を実現することができる。
【０２３２】
【発明の効果】
本発明の論理関数機能再構成可能な集積回路の設計方法によれば、容易に低面積コストで、任意の論理関数機能を、ニューロンＭＯＳ回路に実装することができるという効果を奏する。
【０２３３】
また、本方法によって設計された集積回路によれば、論理関数機能を再構成することができ、また、面積コストを小さく抑えることができるという効果を奏する。
【図面の簡単な説明】
【図１】ｋ入力変数による２ｋ個の任意の論理関数機能を実現する論理関数機能再構成可能な集積回路の回路構成であり、ニューロンＭＯＳインバータを用いた２段論理による回路構成を示す図である。
【図２】上記実施例において、要素の個数ｋ＝３であり、重みベクトルが（１，３，５）であるときに、メインインバータ１００における入力電荷量Ｑｉと、規格化フローティングゲート電位Ｕｆｇとの関係を示す図である。
【図３】第ｊ番目のプリインバータ１０１の回路図と、各入力ゲート電極とフローティングゲートとの間の容量値との関係を示す図である。集積回路ＩＣ１における第ｊ番目のプリインバータ１０１の回路図である。
【図４】第５番目のプリインバータ１０１における入力電荷量Ｑｉと、規格化フローティングゲート電位Ｕｆｇとの関係を示す図である。
【図５】入力ベクトルと規格化フローティングゲート電位Ｕｆｇとが、図４に示す関係であるときに、入力ベクトル（または、入力電荷量Ｑｉ）と、プリインバータ１０１の出力信号の論理的値との関係を示す図である。
【図６】ｉ＝１，２，３，４，５である場合、０≦α≦２であるαと、ｇ（α，ｉ）との関係を示す図である。
【図７】α＝１．７，１．９，２．０，２．２の場合におけるＳ２とＳαの関係を示す図である。
【図８】ｋ＝２，３，４の場合において、βと、総和Ｓｕｍ（２）に対する総和Ｓｕｍ（３）の比ηとの関係を示す図である。
【図９】本発明の実施例である集積回路ＩＣ２の回路図であり、上記機能を有する集積回路ＩＣ２の回路図である。
【図１０】入力信号からみた３つの閾値を有するニューロンＭＯＳインバータＩＮＶ３を示す回路図である。
【図１１】上記の特性を有するニューロンＭＯＳインバータＩＮＶ３の入力電荷量と、規格化フローティングゲート電位Ｕｆｇとの関係を示す図である。
【図１２】上記方法によって、入力ゲート容量値を設定した場合におけるニューロンＭＯＳインバータの入出力特性を示す図である。
【図１３】本発明の実施例である集積回路ＩＣ３を示す回路図であり、ｋ＝２である場合において、論理関数機能を再構成することが可能な集積回路ＩＣ３の回路図である。
【図１４】図１３に示す集積回路ＩＣ３のメインインバータ１３００におけるＱｉ（または、入力ベクトル）と、規格化フローティングゲート電位Ｕｆｇとの関係を示す図である。
【図１５】要素の数ｋ＝２である場合における入力変数ｘ１，ｘ２によって実現される１６個の論理関数中、８個の論理関数を、図１３に示す集積回路ＩＣ３によって実現するときに、規格化フローティングゲート電位Ｕｆｇと、プリインバータ１３０２、１３０３の出力信号の論理的値（Ｙｐ２，Ｙｐ３）との関係を示す図である。
【図１６】集積回路ＩＣ３と同様の設計方法を、要素の数ｋ＝３に拡張し、設計された集積回路におけるメインインバータの入力ベクトル、または入力電荷量と、規格化フローティングゲート電位Ｕｆｇとの関係を示す図である。
【図１７】第２の入力信号として多値電位を用いた論理機能再構成可能な集積回路ＩＣ４の回路構成を示す図である。
【図１８】集積回路ＩＣ４のプリインバータ１７０１の回路構成を示す図である。
【図１９】上記入力ゲート容量値を用いた場合におけるプリインバータ１７０１の入力ベクトル、または入力電荷量Ｑｉと、規格化フローティングゲート電位Ｕｆｇとの関係を示す図である。
【図２０】上記論理関数機能再構成可能な集積回路ＩＣ１の変形例である論理関数機能再構成可能な集積回路ＩＣ１ａを示す構成図である。
【図２１】従来のＬＵＴ（Ｌｏｏｋ−Ｕｐ  Ｔａｂｌｅ）型の可変論理部の構成を示す図である。
【図２２】従来のマルチプレクサ（ＭＵＸ）型の可変論理部の構成を示す図である。
【図２３】ＰＬＡ型の可変論理部の構成を示す図である。
【図２４】従来のニューロンＭＯＳトランジスタを用いたＣＭＯＳ型インバータの構造を示す図であり、図２４（１）は、レイアウト図、図２４（２）は、図２４（１）に記載のＸ−Ｘ’での断面図、図２４（３）は、図２４（３）は、ｎ入力相補型ニューロンＭＯＳインバータ（ニューロンＭＯＳインバータ）の回路図である。
【図２５】従来のニューロンＭＯＳトランジスタを用いたＣＭＯＳ型インバータ（ニューロンＭＯＳインバータ）の回路図であり、（１）はトランジスタ記号によって記述された図、（２）は論理記号によって記述された図である。
【符号の説明】
ＩＣ１、ＩＣ１ａ、ＩＣ２、ＩＣ３、ＩＣ４…論理関数機能再構成可能な集積回路、
１００、１１０、９０１、１３００、１７００…メインインバータ、
１０１、１１１、９０２、１３０１、１３０２、１３０３、１７０１…プリインバータ、
１０２、１１２、９０３…出力バッファ、
１１３…メインインバータ初期化用ＮＭＯＳＦＥＴ、
１１４…プリインバータ初期化用ＮＭＯＳＦＥＴ、
ｘｉ…入力変数、
Ｖｆｇ…フローティングゲート電位、
Ｑｆ…各入力ゲート容量に蓄積する電荷量の総和、
Ｖｏｕｔ…ニューロンＭＯＳインバータの出力信号、
Ｗ…重みベクトル、
ｗｉ…重みベクトルＷの要素、
Ｘ…入力ベクトル、
Ｓα…重みベクトルと入力ベクトルとの内積の結果、
Ｓ２…２のべき乗が要素である重みベクトルと入力ベクトルとの内積の結果、
η…総和Ｓｕｍ（２）に対する総和Ｓｕｍ（３）の比、
Ｕｆｇ…規格化フローティングゲート電位、
Ｕｆｔｈ…規格化フローティングゲート閾値電位、
Ｑｉ…入力電荷量、
Ｑｉｔｈ…入力閾値電荷量、
Ｃｔｏｔａｌ…全ての入力ゲート容量の値の総和、
Ｖｄｄ…電源電位。
【図１】
0003565495.tif 000027
【図２】
0003565495.tif 000028
【図３】
0003565495.tif 000029
【図４】
0003565495.tif 000030
【図５】
0003565495.tif 000031
【図６】
0003565495.tif 000032
【図７】
0003565495.tif 000033
【図８】
0003565495.tif 000034
【図９】
0003565495.tif 000035
【図１０】
0003565495.tif 000036
【図１１】
0003565495.tif 000037
【図１２】
0003565495.tif 000038
【図１３】
0003565495.tif 000039
【図１４】
0003565495.tif 000040
【図１５】
0003565495.tif 000041
【図１６】
0003565495.tif 000042
【図１７】
0003565495.tif 000043
【図１８】
0003565495.tif 000044
【図１９】
0003565495.tif 000045
【図２０】
0003565495.tif 000046
【図２１】
0003565495.tif 000047
【図２２】
0003565495.tif 000048
【図２３】
0003565495.tif 000049
【図２４】
0003565495.tif 000050
【図２５】
0003565495.tif 000051