(57)【特許請求の範囲】
【請求項１】
関数機能再構成可能な半導体装置であって、
関数機能を構成する基本単位である関数セルを複数個有し、
各関数セルは複数のしきい素子を有し、
各しきい素子は、電位駆動型非線形素子と、当該電位駆動型非線形素子に電位を与える端子と、当該電位を与える端子に容量結合された複数の端子とを有し、
前記複数のしきい素子の中の少なくとも１つのしきい素子は、前記電位駆動型非線形素子に電位を与える端子と所定の電位を有する端子との間にスイッチを有し、
前記スイッチを制御することにより、前記しきい素子のしきい値を保持することを特徴とする半導体装置。
【請求項２】
前記半導体装置は、関数機能を構成するためのデータを記憶する不揮発性メモリを各関数セル内に有する請求項１に記載の半導体装置。
【請求項３】
前記複数の関数セルは、接続状態を切り替えることを可能とする複数の配線により接続される請求項２に記載の半導体装置。
【請求項４】
前記半導体装置は更に少なくとも２つの制御系を有し、
前記関数セルにおける各しきい素子は、前記配線を介して各制御系に接続され、  該制御系のうち少なくとも１つの制御系が、前記不揮発性メモリに接続される請求項３に記載の半導体装置。
【請求項５】
前記各関数セルは、少なくとも１つのしきい素子を有する段を、複数段接続して構成される請求項１ないし４のうちいずれか１項に記載の半導体装置。
【請求項６】
前記しきい素子は、処理されるべき入力信号を入力する第１の入力部と、関数機能を構成するための制御信号を入力する第２の入力部とを有し、第２の入力部から入力された該制御信号により前記しきい値を設定し、その設定されたしきい値に応じて第１の入力部から入力された入力信号に対する出力値を決定する請求項１ないし５のうちいずれか１項に記載の半導体装置。
【請求項７】
前記少なくとも１つのしきい素子は、
前記複数の端子のうちの少なくとも１つの端子にスイッチとして機能する素子を有し、
該スイッチとして機能する素子を制御して、該少なくとも１つの端子における信号入力側又は所定の電位を有する端子のうちのいずれか一方に接続状態を切り替える手段を有する請求項１に記載の半導体装置。
【請求項８】
前記電位駆動型非線型素子はインバータ回路である請求項７に記載の半導体装置。
【請求項９】
前記インバータ回路はＣＭＯＳインバータ又は抵抗負荷型インバータである請求項８に記載の半導体装置。
【請求項１０】
関数機能再構成可能な半導体装置であって、
関数機能を構成する基本単位である関数セルを複数個有し、
各関数セルは複数のしきい素子を有し、
複数のしきい素子の中の少なくとも１つのしきい素子は、
基板上に第１の導電型の半導体領域と、
該半導体領域内に設けられた第２の導電型の半導体であるソース及びドレイン領域と、
前記ソース及びドレイン領域を隔てる領域上に絶縁膜を介して設けられたフローティングゲート電極と、
該フローティングゲート電極と絶縁膜を介して接続された複数の入力ゲート電極とを有し、
該フローティングゲート電極は、導通と遮断又は電気的に高インピーダンスの２つの状態を取り得る素子を介して第１の電位を有する端子に接続され、
該入力ゲート電極は、該半導体装置に設けられた少くとも２つの異なる入力制御部によって制御され、
該入力ゲート電極の少くとも１つを、関数機能を構成するためのデータを入力する入力線又は第２の電位を有する端子のうちのいずれか一方に接続することを可能にする切り替えのための素子を有することを特徴とする半導体装置。
【請求項１１】
関数機能再構成可能な半導体装置であって、
関数機能を構成する基本単位である関数セルを複数個有し、
各関数セルは複数のしきい素子を有し、
前記しきい素子におけるしきい値を変えることにより関数セルが実現する論理を変えるようにした半導体装置であり、
前記しきい素子は、複数の入力端子と、過渡的に電気的絶縁状態と見なせる端子と、非線型素子とを有し、
該複数の入力端子は該過渡的に電気的絶縁状態と見なせる端子に容量を介して接続され、該非線型素子は該過渡的に電気的絶縁状態と見なせる端子の電位を入力とし、
前記しきい素子は更に、
前記過渡的に電気的絶縁状態と見なせる端子と第１の所定の電位を有する端子との間に第１のスイッチを有し、
前記複数の入力端子のうちの少なくとも１つの端子に第２のスイッチが接続され、
該第２のスイッチを、該少なくとも１つの端子における信号入力側又は第２の所定の電位を有する端子のうちのいずれか一方に接続状態を切り替える手段を有することを特徴とする半導体装置。
【請求項１２】
関数機能再構成可能な半導体装置であって、
関数機能を構成する基本単位である関数セルを複数個有し、
各関数セルは複数のしきい素子を有し、
各しきい素子はしきい値を保持する手段を有し、
該しきい値を変えることにより関数セルが実現する論理を変えるようにした半導体装置であり、
前記しきい素子は、複数の入力端子と、過渡的に電気的絶縁状態と見なせる端子と、非線型素子とを有し、
該複数の入力端子は該過渡的に電気的絶縁状態と見なせる端子に容量を介して接続され、該非線型素子は該過渡的に電気的絶縁状態と見なせる端子の電位を入力とし、
前記非線型素子はインバータ回路であり、該インバータ回路はＣＭＯＳインバータ又は抵抗負荷型インバータであることを特徴とする半導体装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、集積回路製造後であっても、関数機能の再構成を行うことが可能である集積回路を含む半導体装置に係り、特に、関数機能の再構成を可能にする可変論理部として、しきい素子回路網を使用する関数機能再構成可能半導体装置に関する。
【０００２】
【従来の技術】
ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）や、ＰＬＤ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）に代表される論理機能再構成可能デバイスは、その大規模化と共に、様々な場所で用いられるようになってきた。
【０００３】
出現当初は、多品種でかつ少量しか必要としないような部品の実現、又はプロトタイピングの状況において用いられることが主であったが、現在ではＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）の代りに、最終製品に組み込まれていることも多い。ＦＰＧＡでも、所望の性能を十分に満足し、ＡＳＩＣよりも数ヶ月早くｔｉｍｅ−ｔｏ−ｍａｒｋｅｔに製品を出荷できるからである。
【０００４】
また、論理機能再構成可能デバイスを用いて、アプリケーションに対応してハードウェア構成を適応的に変更できるリコンフィギュラブルコンピューティングシステム（Ｒｅｃｏｎｆｉｇｕｒａｂｌｅ  Ｃｏｍｐｕｔｉｎｇ  Ｓｙｓｔｅｍ）の研究開発も活発になり始めている。
【０００５】
この論理機能再構成可能デバイスにおいて可変論理を実現する構造には様々なものがあり、その可変論理部として、図１５に示すＳＲＡＭを用いたテーブル参照（ＬＵＴ：Ｌｏｏｋ−Ｕｐ  Ｔａｂｌｅ）型、図１６に示すアンチフューズを用いたマルチプレクサ型、図１７に示すＥＰＲＯＭやＥＥＰＲＯＭを用い、積和形論理を実現するＰＬＡ（Ｐｒｏｇｒａｍａｂｌｅ  Ｌｏｇｉｃ  Ａｒｒａｙ）型等がある。その中でも、ＬＵＴ型のものが大規模で柔軟性も高く、幅広く用いられている。
【０００６】
ＬＵＴ型の論理機能再構成可能デバイスは、ＳＲＡＭにより実現されたＬＵＴが可変論理部に用いられ、任意のｋ入力変数論理関数を実現する。その可変論理部を構成するＳＲＡＭセルは、図１８に示すように、通常６個のトランジスタで構成されている。ｋ入力変数のＬＵＴは、２ｋ個のＳＲＡＭを必要とし、トランジスタ数はセルだけで６×２ｋになる。
【０００７】
一般に用いられているＬＵＴ型ＦＰＧＡの入力変数はｋ＝４、又はｋ＝５である場合が多い。ｋ＝４のＬＵＴは、ＳＲＡＭセルだけで９６個のトランジスタが必要になり、ｋ＝５では、１９２個のトランジスタが必要になる。また、アドレスデコーダ、書き込み回路、プリチャージ回路、センスアンプ等の周辺回路も必要となり、回路規模は大きくなっていた。このように、ＬＵＴ型ＦＰＧＡでは、回路規模が大きく、ＬＳＩ上に面積的に可変論理部の占める割合が大きく、小面積の可変論理部が望まれていた。
【０００８】
また一方では、論理ＬＳＩの代表的な例であるマイクロプロセッサ（μＰ）や、ディジタル信号処理プロセッサ（ＤＳＰ）の演算部（データパス部）においては、算術演算回路が頻度高く用いられている。この算術演算回路は、加算回路、減算回路、乗算回路等であり、これらは対称関数である全加算器を用いている場合が多い。また、論理ＬＳＩの制御部においては、セレクタ機能を用いた回路が多く使用される。
【０００９】
このように、論理ＬＳＩにおいて、レジスタ、ラッチ等を含む順序回路を除けば、対称関数機能を有する回路とセレクタ機能を有する回路は非常に高い頻度で用いられている。
【００１０】
なお、ＬＵＴ型ＦＰＧＡは任意のブール関数を表現できるが、セレクタ又はマルチプレクサ機能を有していなかった。また、ＬＵＴに作り込まれる論理が常に複雑なものとは限らないため、任意のｋ入力変数論理関数を実現できるようしておく機能は、必ずしも必要ではない。一方、マルチプレクサ型ＦＰＧＡは任意の論理を表現するのにマルチプレクサを使用しているが、多段接続により関数を表現しているため、通常アンチヒューズ等の低抵抗素子でプログラムされ、再構成は容易でない。また、複雑な論理を構成するためには多くの素子を必要とする。従って、大面積を必要とする。
【００１１】
上記のように、算術演算回路等で頻繁に使用される対称関数機能と、制御部でよく使用されるセレクタ機能とを同時に併せ持ち、対称関数機能を保持できる回路構成は提案されていない。
【００１２】
更に、対称関数機能を有する基本的な回路ブロックが低面積又は少ない素子数で実現でき、高速動作する場合は、その回路ブロックを配線として使用することも可能であり、設計の自由度を向上させることができる。
【００１３】
これらの機能は、ＬＵＴ型やＰＬＡ型やマルチプレクサ型とは異なるしきい論理を論理可変の基本原理とするしきい素子回路網で実現できる可能性がある。しきい素子を容易に実装できる素子としては、図１９に示すニューロンＭＯＳインバータが知られている。
【００１４】
ニューロンＭＯＳトランジスタ及び、ニューロンＭＯＳトランジスタを用いた基本回路については、文献１「Ｔａｄａｓｈｉ  Ｓｈｉｂａｔａ  ａｎｄ  Ｔａｄａｈｉｒｏ  Ｏｈｍｉ，“Ａ  Ｆｕｎｃｔｉｏｎａｌ  ＭＯＳ  Ｔｒａｎｓｉｓｔｏｒ  Ｆｅａｔｕｒｉｎｇ  Ｇａｔｅ−Ｌｅｖｅｌ  Ｗｅｉｇｈｔｅｄ  Ｓｕｍ  ａｎｄ  Ｔｈｒｅｓｈｏｌｄ  Ｏｐｅｒａｔｉｏｎｓ，”ＩＥＥＥ  Ｔｒａｎｓａｃｔｉｏｎｓ  ｏｎ  Ｅｌｅｃｔｒｏｎ  Ｄｅｖｉｃｅｓ，Ｖｏｌ．３９，Ｎｏ，６，ｐｐ．１４４４−１４５５，１９９２」、文献２「Ｔａｄａｓｈｉ  Ｓｈｉｂａｔａ  ａｎｄ  Ｔａｄａｈｉｒｏ  Ｏｈｍｉ，“Ｎｅｕｒｏｎ  ＭＯＳ  Ｂｉｎａｒｙ−Ｌｏｇｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔｓ−Ｐａｒｔ  Ｉ：Ｄｅｓｉｇｎ  Ｆｕｎｄａｍｅｎｔａｌｓ  ａｎｄ  Ｓｏｆｔ−Ｈａｒｄｗａｒｅ−Ｌｏｇｉｃ  Ｃｉｒｃｕｉｔ  Ｉｍｐｌｅｍｅｎｔａｔｉｏｎ，”ＩＥＥＥ  Ｔｒａｎｓ．  Ｅｌｅｃｔｒｏｎ  Ｄｅｖｉｃｅｓ，  Ｖｏｌ．  ４０，  Ｎｏ．  ３，  ｐｐ．  ５７０−５７６，  １９９３．」、文献３「Ｔａｄａｓｈｉ  Ｓｈｉｂａｔａ  ａｎｄ  Ｔａｄａｈｉｒｏ  Ｏｈｍｉ，“Ｎｅｕｒｏｎ  ＭＯＳ  Ｂｉｎａｒｙ−Ｌｏｇｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔｓ−Ｐａｒｔ  ＩＩ：Ｓｉｍｐｌｉｆｙｉｎｇ  Ｔｅｃｈｎｉｑｕｅｓ  ｏｆ  Ｃｉｒｃｕｉｔ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  ａｎｄ  ｔｈｉｅｒ  Ｐｒａｃｔｉｃａｌ  Ａｐｐｌｉｃａｔｉｏｎｓ，”ＩＥＥＥ  Ｔｒａｎｓ．  Ｅｌｅｃｔｒｏｎ  Ｄｅｖｉｃｅｓ，  Ｖｏｌ．  ４０，  Ｎｏ．５，  ｐｐ．  ９７４−９７９，  １９９３」に記載されている。
【００１５】
これらを発展させた回路として、文献４「特開平６−７７４２７号  半導体集積回路」、文献５「Ｔ．Ｓｈｉｂａｔａ，  Ｋ．ｋｏｔａｎｉ  ａｎｄ  Ｔ．Ｏｈｍｉ，  “Ｒｅａｌ−Ｔｉｍｅ  Ｒｅｃｏｎｆｕｇｕｒａｂｌｅ  ＬｏｇｉｃＣｉｒｃｕｉｔｓ  Ｕｓｉｎｇ  Ｎｅｕｒｏｎ  ＭＯＳ  Ｔｒａｎｓｉｓｔｏｒｓ，”ＩＳＳＣＣ，  ＦＡ  １５．３，  ｐｐ．２３８−２３９，１９９３」、文献６「特開平７−１６１９４２号  半導体集積回路」が公知である。以下、文献４、文献５、文献６の概要を説明する。
【００１６】
文献４では、「ＭＯＳ型半導体装置で構成された少くとも２段のインバータを有するブロックを有し、そのブロック間の配線パターンを変えることで、任意の関数を構成することができる半導体集積回路」の発明が記載されている。文献４で公知にされている関数機能を変える物理的構造は、「配線パターン」即ち、「ブロックとブロックの接続状態」のみである。これは、ある一定の機能を有する回路ブロックをアレイ状に並べ、配線の製造工程において関数機能を決定する「ゲートアレイ」と同等である。
【００１７】
例えば、ＮＡＮＤゲートを基本ブロックとしたゲートアレイの、ＮＡＮＤゲートを「ＭＯＳ型半導体装置で構成された２段のインバータ」で置き換えたゲ←トアレイと言うことができる。従って、この構造によって関数機能が決められるのは、集積回路の製造過程であり、製造終了後に集積回路がユーザの手に渡った後でユーザが自由に関数機能を構成できることを意図していない。
【００１８】
次に、文献５について説明する。この論文で公知になっていることは、「ニューロンＭＯＳインバータの２段フィードフォワード回路について、入力変数以外に、常に回路の外部から与えられる制御変数を用いることによって、所定の論理関数機能を実現できる」ということである。重要なことは、「外部から制御変数が連続的に与えられなければ、関数機能を実現することができない」ということである。
【００１９】
再構成可能デバイスにおいて、関数機能を可変にするために必要な機能が２つある。１つは、関数機能自身を変更する機能である。他の１つは、ある関数機能を実現した際に、その関数を保存又は保持する機能である。第２の機能があることによって、論理関数によって構成される複数の組合せ回路と情報を処理する際に必要となる順序回路との集積化が可能になる。仮に、この論文に示されている回路のように、第２の機能がない場合は、多くの論理関数により回路が構成されているという現状を考えると、外部から制御変数を入力するという方法を取るために、非常に多くの入力ピンが必要になり、回路の集積化が非常に困難になる。
【００２０】
以上、説明したように、この論文で公知である事実だけでは有用な再構成可能デバイスを設計することは困難である。
【００２１】
更に、この論文には任意の論理関数機能を構成するための自動設計手法が示されていないために、多くの論理関数が集積される再構成可能デバイスを作製するには設計技術という面からも困難であると言える。
【００２２】
最後に文献６について説明する。
【００２３】
文献６は、「ニューロンＭＯＳトランジスタの信頼性向上」を目的とした回路構成が記載されている。
【００２４】
その回路は、ニューロンＭＯＳトランジスタのフローティングゲートと入力信号端子にスイッチを付加した構造を持つ。この構造によって、製造時又は経時変化によりフローティングゲート中に蓄積した電荷を除去することが可能になる。フローティングゲートに付加されたスイッチの他方の端子をこのニューロンＭＯＳトランジスタの出力端子又はインバータなどの論理回路の山力端子にスイッチを介して接続することで、素子特性のバラツキを抑制したり、低消費電力化の実現を可能にすることが記載されている。
【００２５】
しかしながら、複数の配置済の基本回路ブロックを用いて、論理機能を再構成することが可能な回路への適用に関しての記載はない。また、ニューロンＭＯＳトランジスタの入力信号部は入力信号、又は、入力変数のみに関して記載されている。異なる制御系により制御される入力変数部と関数構成変数部に分類されてはいない。
【００２６】
【発明が解決しようとする課題】
従来の論理機能再構成可能デバイスの中で、論理機能を高速に再構成することができるデバイスはＬＵＴ型ＦＰＧＡであり、その可変論理部はＳＲＡＭを用いたＬＵＴで構成されている。ＳＲＡＭを用いたｋ入力変数ＬＵＴは、ｋ入力変数から生成可能な全てのブール関数を実現することが可能であるが、ＬＳＩ上に大きい面積を必要としていた。このため、小面積で高速に論理機能を再構成できる可変論理部の実現が望まれていた。
【００２７】
本発明は上記の点に鑑みてなされたものであり、論理機能においては、論理ＬＳＩの中で高頻度で使用されている対称関数を実現する可変論理部をＬＳＩ上において小面積で実現し、かつセレクタ機能とメモリ機能を併せ持ち、従来のデバイスにない統合された機能を実現でき、かつ高速に論理を再構成可能な可変論理部を提供し、そのような可変論理部を有する集積回路で構成された半導体装置を提供することを目的とする。
【００２８】
【課題を解決するための手段】
上記の課題を解決するために、本発明は次のように構成される。
【００２９】
請求項１に記載の発明は、関数機能再構成可能な半導体装置であって、関数機能を構成する基本単位である関数セルを複数個有し、各関数セルは複数のしきい素子を有し、各しきい素子は、電位駆動型非線形素子と、当該電位駆動型非線形素子に電位を与える端子と、当該電位を与える端子に容量結合された複数の端子とを有し、前記複数のしきい素子の中の少なくとも１つのしきい素子は、前記電位駆動型非線形素子に電位を与える端子と所定の電位を有する端子との間にスイッチを有し、前記スイッチを制御することにより、前記しきい素子のしきい値を保持する。
【００３０】
請求項２に記載の発明は、請求項１の記載において、前記半導体装置は、関数機能を構成するためのデータを記憶する不揮発性メモリを各関数セル内に有する。
【００３１】
請求項３に記載の発明は、請求項２の記載において、前記複数の関数セルは、接続状態を切り替えることを可能とする複数の配線により接続される。
【００３２】
請求項４に記載の発明は、請求項３の記載において、前記半導体装置は更に少なくとも２つの制御系を有し、前記関数セルにおける各しきい素子は、前記配線を介して各制御系に接続され、該制御系のうち少なくとも１つの制御系が、前記不揮発性メモリに接続される。
【００３３】
請求項５に記載の発明は、請求項１ないし４のうちいずれか１項の記載において、前記各関数セルを、少なくとも１つのしきい素子を有する段を、複数段接続して構成する。
【００３４】
請求項６に記載の発明は、請求項１ないし５のうちいずれか１項の記載において、前記しきい素子は、処理されるべき入力信号を入力する第１の入力部と、関数機能を構成するための制御信号を入力する第２の入力部とを有し、第２の入力部から入力された該制御信号により前記しきい値を設定し、その設定されたしきい値に応じて第１の入力部から入力された入力信号に対する出力値を決定する。
【００３５】
請求項７に記載の発明は、請求項１の記載において、前記少なくとも１つのしきい素子は、前記複数の端子のうちの少なくとも１つの端子にスイッチとして機能する素子を有し、該スイッチとして機能する素子を制御して、該少なくとも１つの端子における信号入力側又は所定の電位を有する端子のうちのいずれか一方に接続状態を切り替える手段を有する。
【００３６】
請求項８に記載の発明は、請求項７の記載において、前記電位駆動型非線型素子はインバータ回路とする。
【００３７】
請求項９に記載の発明は、請求項８の記載において、前記インバータ回路はＣＭＯＳインバータ又は抵抗負荷型インバータであるとする。
【００３８】
請求項１０に記載の発明は、関数機能再構成可能な半導体装置であって、関数機能を構成する基本単位である関数セルを複数個有し、各関数セルは複数のしきい素子を有し、複数のしきい素子の中の少なくとも１つのしきい素子は、基板上に第１の導電型の半導体領域と、該半導体領域内に設けられた第２の導電型の半導体であるソース及びドレイン領域と、前記ソース及びドレイン領域を隔てる領域上に絶縁膜を介して設けられたフローティングゲート電極と、該フローティングゲート電極と絶縁膜を介して接続された複数の入力ゲート電極とを有し、該フローティングゲート電極は、導通と遮断又は電気的に高インピーダンスの２つの状態を取り得る素子を介して第１の電位を有する端子に接続され、該入力ゲート電極は、該半導体装置に設けられた少くとも２つの異なる入力制御部によって制御され、該入力ゲート電極の少くとも１つを、関数機能を構成するためのデータを入力する入力線又は第２の電位を有する端子のうちのいずれか一方に接続することを可能にする切り替えのための素子を有する。
【００３９】
請求項１１に記載の発明は、関数機能再構成可能な半導体装置であって、関数機能を構成する基本単位である関数セルを複数個有し、各関数セルは複数のしきい素子を有し、前記しきい素子におけるしきい値を変えることにより関数セルが実現する論理を変えるようにした半導体装置であり、前記しきい素子は、複数の入力端子と、過渡的に電気的絶縁状態と見なせる端子と、非線型素子とを有し、該複数の入力端子は該過渡的に電気的絶縁状態と見なせる端子に容量を介して接続され、該非線型素子は該過渡的に電気的絶縁状態と見なせる端子の電位を入力とし、前記しきい素子は更に、前記過渡的に電気的絶縁状態と見なせる端子と第１の所定の電位を有する端子との間に第１のスイッチを有し、前記複数の入力端子のうちの少なくとも１つの端子に第２のスイッチが接続され、該第２のスイッチを、該少なくとも１つの端子における信号入力側又は第２の所定の電位を有する端子のうちのいずれか一方に接続状態を切り替える手段を有する。
また、請求項１２に記載の発明は、関数機能再構成可能な半導体装置であって、関数機能を構成する基本単位である関数セルを複数個有し、各関数セルは複数のしきい素子を有し、各しきい素子はしきい値を保持する手段を有し、該しきい値を変えることにより関数セルが実現する論理を変えるようにした半導体装置であり、前記しきい素子は、複数の入力端子と、過渡的に電気的絶縁状態と見なせる端子と、非線型素子とを有し、該複数の入力端子は該過渡的に電気的絶縁状態と見なせる端子に容量を介して接続され、該非線型素子は該過渡的に電気的絶縁状態と見なせる端子の電位を入力とし、前記非線型素子はインバータ回路であり、該インバータ回路はＣＭＯＳインバータ又は抵抗負荷型インバータである。
【００４０】
上記の発明によれば、しきい値を変えることにより実現する論理を変えることが可能な関数セルを複数個有する関数機能再構成可能な半導体装置を提供することができる。また、本発明のように構成したことにより、論理ＬＳＩの中で高頻度で使用されている対称関数を実現する可変論理部をＬＳＩ上において小面積で実現し、かつセレクタ機能とメモリ機能を併せ持ち、従来のデバイスにない統合された機能を実現でき、かつ高速に論理を再構成可能な半導体装置を提供することが可能となる。
【００４１】
【発明の実施の形態】
（実施例１）
本実施例では、本発明の関数機能再構成可能半導体装置の全体構成から、しきい関数を基礎とした関数機能を再構成できる基本回路までを具体的な例を用いて説明する。
【００４２】
図１は、本発明の実施例１における関数機能再構成可能半導体装置を表す図である。この関数機能再構成可能半導体装置は、関数セル１０１をアレイ状に配置し、接続状態を切り替えることが可能な配線を用いて関数セル１０１を結合し、関数セルアレイと集中型不揮発性メモリ回路１２が接続された構成を有する。関数セル１０１は、後述するようなしきい素子を用いて構成される集積回路である。また、この関数機能再構成可能半導体装置は、制御回路ブロック１０４、入力回路ブロック１０５及び出力回路ブロック１０６を有する。
【００４３】
図１中、関数セル１０１の入力信号線と出力信号線は、関数セル間に設けられた配線に、接続状態を切り替えることが可能な素子又は回路であるスイッチ１０３を介して接続される。
【００４４】
また、集中型不揮発性メモリ回路１０２には、関数機能を再構成することが可能な領域の少くとも一部の関数機能を構成するためのデータ（以降、関数機能構成データと呼ぶ）が保持される。
【００４５】
次に、この半導体装置の動作について説明する。
【００４６】
関数機能を再構成する際には、集中型不揮発性メモリ回路１０２に記憶された関数機能構成データは制御回路ブロック１０４を介して、関数セル１０１と配線接続状態切り替えスイッチ１０３との両方に配送される。なお、関数機能を再構成するための構成及び方法については後述する。
【００４７】
制御回路ブロック１０４を介して関数機能が設定された後、入力回路ブロック１０５から入力変数又は入力信号が入力され、処理された結果が出力回路ブロック１０６より出力される。回路が動作中に、ある回路の出力結果に応じて配線の接続状態又は、関数セルによって実行される関数が変更された場合には、電源遮断時又は必要に応じて、その情報は再び不揮発性メモリ回路１０２に転送され不揮発性メモリ回路１０２の内容は更新される。
【００４８】
不揮発性メモリ回路１０２を用いない関数機能再構成可能半導体装置も、例えば、次の２つの例のような場合に実現可能である。１つは、電源を常時オンにしておく場合である。この場合、電源電位が常時供給されているため、揮発性メモリ回路を用いていたとしてもメモリ中のデータが揮発してしまうことはなく、不揮発性メモリ回路と同等の機能を持つ。２つ目は、外部から関数機能を制御される関数セルと配線切り替えスイッチの量が非常に少ない場合である。これは、ある関数セルが他の関数セルの機能や配線接続切り替えスイッチの状態を切り替えるためのデータを生成することが可能な場合でもある。この場合、電源オフの状態から電源をオンし、関数機能構成データを読み込む際の読み込み時間が短いために、不揮発性メモリ回路を持たなくても使用することができる。
【００４９】
図２は、２つのしきい値を持ち、その値のいずれか一方を保持することが可能なしきい素子を用いた３入力変数の任意の対称関数を実現可能な２段論理フィードフォワード回路を示す図である。図１中の関数セルとして、例えば、図２に示す２段論理のしきい素子回路網を用いることができる。
【００５０】
図２に示す回路は、上記のしきい素子、入力端子ｉｎｐｕｔ１［１］〜ｉｎｐｕｔ１［３］、入力端子ｉｎｐｕｔ２［１］〜ｉｎｐｕｔ２［４］を有する。しきい素子（以下、しきい素子の略号としてＴＥを用いる。なお、ＴＥはＴｈｒｅｓｈｏｌｄ  Ｅｌｅｍｅｎｔの略である）は１段目にＴＥ［１］〜ＴＥ［４］、２段目にＴＥ［５］という２段構成をとり、２段目のしきい素子から出力信号が出力される。また、１段目の各しきい素子には全ての入力信号線が接続され、また、各制御信号線が接続される。また、１段目の各しきい素子の出力は２段目のしきい素子に「否定」をとられた後に入力される。更に、２段目のしきい素子には全ての入力信号線が接続される。その他、タイミングを与えるための端子ｉｎｉｔを有する。
【００５１】
ｉｎｐｕｔ１［１］〜ｉｎｐｕｔ１［３］、ｉｎｐｕｔ２［１］〜ｉｎｐｕｔ２［４］、ｉｎｉｔの端子群は図１中の関数セル１０１の入力部に対応し、ｏｕｐｕｔ端子は出力部に対応する。ｉｎｐｕｔ１［１］〜ｉｎｐｕｔ１［３］は３つの入力変数の入力端子であり、ｉｎｐｕｔ２［１］〜ｉｎｐｕｔ２［４］は３入力変数によって実現可能な２４個の対称関数を実現するための関数機能構成データ入力用の端子であり、ｉｎｉｔは図中の各々のしきい素子ＴＥ［１］〜ＴＥ［４］に入力されるｉｎｐｕｔ２［１］〜ｉｎｐｕｔ２［４］の値によって選択される２つのしきい値のいずれか一方を保持するタイミングを与える信号のための端子である。また、図２中のｗは入力変数に乗算される重みを表す。
【００５２】
次に、図２の回路網を用いて３入力変数の任意の対称関数を実現できることを説明する。以下、入力変数中で論理的に１である入力変数の数を入力状態数と呼ぶ。
【００５３】
３入力変数の場合、入力状態数は０，１，２，３の４つの状態のいずれか１つを取る。図２の回路が、各入力状態数において、論理的に０又は１のいずれか一方を選択的に出力できるとき、その回路は任意の対称関数を実現できる。
【００５４】
図３は、図２で示す回路網中の１段目のＴＥ［１］〜ＴＥ［４］のしきい素子の入力状態数と各しきい素子の論理的出力値の関係を表す図である。図中の黒丸印は、しきい素子のしきい値がいずれの値であっても確定している出力値を表し、白丸印は、当該入力状態数のときに、選ばれるしきい値に依存して、論理的に１又は０のいずれか一方を取る際の出力値を表す。
【００５５】
図３において、入力状態数０の場合（即ち、全ての入力値が論理的に０である場合）、各しきい素子の入力値と重みとの積和値は０となり、ＴＥ［２］〜ＴＥ［４］のしきい素子では、２つのしきい値のいずれであっても積和値は各しきい値より小さいため、各しきい素子は論理的０を出力する。ＴＥ［１］は他のしきい素子とは異なり、しきい値が−１の場合は１を出力し、しきい値が１の場合は０を出力する。次に、入力状態数１の場合は、入力値と重みの積和値が２となり、ＴＥ［１］はいずれのしきい値であっても、しきい値が積和値よりも小さいために、１を出力し、ＴＥ［３］、ＴＥ［４］は逆に０を出力する。ＴＥ［２］の出力値のみがしきい値に依存して、論理的に１又は０のいずれか一方を出力する。入力状態数２、３の場合も前記と同様の方法で図３に示すように出力値が定まる。
【００５６】
図４（ａ）は、２段目のしきい素子ＴＥ［５］の入力状態数に対する入力値を表す図であり、図４（ｂ）は、入力状態数に対する出力値を表す図である。
【００５７】
図４（ａ）では、各入力状態数ごとに、確定的な入力値を網掛け部で、しきい値に依存する部分を白抜き部で表し、入力値の所属、即ち入力元を各入力状態数ごとに記載した。また、図２で示したように１段目のしきい素子の出力値の否定、即ち、論理反転値が２段目のしきい素子であるＴＥ［５］に入力される。例えば、入力状態数１の場合は、図３からＴＥ［３］、ＴＥ［４］の出力値は共に０であるから、その論理反転値の１がＴＥ［５］の入力値となり、入力値と重みの積和値の２が各々ＴＥ［５］に入力される。また、入力状態数が１であるからｉｎｐｕｔ１［１］〜ｉｎｐｕｔ１［３］端子の値のいずれか１つが論理的１であるため、該当する端子の積和値の２が入力値に加算される。図４（ａ）中のｉｎｐｕｔ１の表記は、ｉｎｐｕｔ１［１］〜ｉｎｐｕｔ１［３］端子のいずれかの値であることを意味している。入力状態数が１の場合、ＴＥ［２］のしきい値が１の場合は出力値は１であり、しきい値が３の場合は出力値が０である。従って、ＴＥ［５］にはＴＥ［２］のしきい値が１の場合には積和値として２が加算され、逆にしきい値が３の場合には０が加算される。
【００５８】
ここで、ＴＥ［５］のしきい値は７であるために、ＴＥ［２］からの入力として２が加算される場合、ＴＥ［５］には合計８が入力され、ＴＥ［５］の出力値は論理的に１となる。逆に０が加算される場合は、ＴＥ［５］の出力値は０となる。即ち、図４（ｂ）に示すように、ＴＥ［２］のしきい値が１か３かのいずれが設定されるかに依存して、しきい素子回路網の出力値が０か１かのいずれかになる。入力状態数が０のときには、ＴＥ［１］のしきい値に応じてＴＥ［５］の出力値が定まり、入力状態数が１のときには、ＴＥ［２］のしきい値に応じてＴＥ［５］の出力値が定まり、入力状態数が２のときには、ＴＥ［３］のしきい値に応じてＴＥ［５］の出力値が定まり、入力状態数が３のときには、ＴＥ［４］のしきい値に応じてＴＥ［５］の出力値が定まる。
【００５９】
以上、説明したように各しきい素子のしきい値の選択によって、図２の回路網は３入力変数の任意の対称関数を実現することが可能となる。この回路網と任意の対称関数を実現する方法は任意の入力変数ｋに容易に拡張することができる。
【００６０】
上記の機能は任意の対称関数を実現すると同時に、マルチプレクサ機能を実現できることも示している。即ち、入力状態数をセレクタデータとして、ｉｎｐｕｔ２［１］〜ｉｎｐｕｔ２［４］端子の値をデータとするマルチプレクサ機能を実現できる。
【００６１】
次に、図２の各しきい素子のしきい値を選択し、保持する手順を説明する。各しきい素手は異なる２つのしきい値を有して、１ｂｉｔの選択信号（ここではｉｎｐｕｔ２［１］〜ｉｎｐｕｔ２［４］端子の値のことをいう）の１と０との２つの値によってしきい値のいずれか一方を選択できる。また、選択信号が入力されている状態で、ｉｎｉｔ信号を１から０に切り変えることによって、そのしきい値が保持される。
【００６２】
上記の機能を有する時、図２のしきい素子回路網は任意の対称関数を実現する関数セルの１例となる。
【００６３】
これまでは、図２に示す２段論理回路によって任意の対称関数機能を実現する回路構成とその方法について説明した。次に、論理段数を２段に限定する必要がないことを示す例として、任意の２入力変数対称関数を実現する回路を示す。
【００６４】
図５は、２入力変数対称関数を実現するしきい素子を用いた３段論理回路の構成を示す図である。１段目のしきい素子はＴＥ［１］、２段目のしきい素子はＴＥ［２］とＴＥ［３］、３段目のしきい素子はＴＥ［４］である。各しきい素子は２つの異なるしきい値を持っており、各々１ｂｉｔの選択信号によってどちらか一方が選択される。ＴＥ［１］のしきい値は−１又は１であり、ｉｎｐｕｔ２［１］端子の値である選択信号によっていずれか一方が選択される。ＴＥ［２］とＴＥ［３］のしきい値は、各々１又は３、３又は５であり、各々ｉｎｐｕｔ２［２］端子、ｉｎｐｕｔ２［３］端子の値によって選択される。  また、ｉｎｐｕｔ１［１］端子とｉｎｐｕｔ１［２］端子の値である入力変数に掛けられる重みは各しきい素子とも２である。また、ＴＥ［１］の出力値の論理反転（否定）値がＴＥ［２］に入力され、その際に掛けられる重みは４である。ＴＥ［４］のしきい値は５であり、ＴＥ［４］は、入力変数とＴＥ［２］の出力値の否定とＴＥ［３］の出力値の否定を入力とし、各々の重みは２、４、２である。更に、図２に示した回路と同様にｉｎｉｔ端子の信号により、各しきい素子のしきい値が保存される。
【００６５】
図６は、１段目と２段目の各しきい素子の出力値の値と入力状態数及びしきい値との関係を表す図である。ＴＥ［１］の出力値は入力状態数が１又は２の場介は、しきい値とは独立に常に１であり、入力状態数が０の場合はしきい値に依存して図のように０又は１を取る。ＴＥ［３］の出力値は入力状態数が０又は１の場合は、しきい値とは独立に常に０であり、入力状態数が２の場合はしきい値に依存して図のように０又は１を取る。ＴＥ［２］の出力値は、入力状態数が０の場合は、ＴＥ［１］の出力値に依存し、入力状態数が１の場合はしきい値に依存して、図に示すように０又は１を出力し、入力状態数が２の場合は常に１を出力する。
【００６６】
図７は、ＴＥ［４］の入力値であるＴＥ［２］の出力値の否定とＴＥ［３］の出力値の否定と入力状態数及びＴＥ〔４］の出力値を表す図である。図７より、ＴＥ［４］の出力値は入力状態数が１の場合はＴＥ［２］の出力値の否定、即ち、図５のｉｎｐｕｔ２［１］端子の値に依存して０又は１となり、入力状態数が１の場合はＴＥ［２］の出力値の否定、即ち、ｉｎｐｕｔ２［２］端子の値に依存して、入力状態数が２の場合はＴＥ［３］の出力値の否定、即ち、ｉｎｐｕｔ２［３］端子の値に依存して０又は１になる。
【００６７】
図８は、各入力状態数におけるｉｎｐｕｔ２［１］〜ｉｎｐｕｔ２［３］端子の値とｏｕｔｐｕｔ端子の値の関係を表す図であり、以上をまとめたものである。ここで、図５の回路において、各しきい値に入力される選択信号が１の時に小さい値のしきい値が選択され、０の時に大きいしきい値が選択されると仮定している。また、図８中の横棒は該当する選択信号が０又は１のいずれであってもｏｕｔｐｕｔ端子の値は変わらないことを意味している。
【００６８】
以上説明したように、しきい素子による３段論理回路網であっても任意の対称関数を実現することができる。
【００６９】
次に、図２中のしきい素子の実装例について説明する。
【００７０】
図９は、図２に示した３入力変数の任意の対称関数を実現するしきい素子の実装例を示す図である。しきい素子は外部接続可能な端子として、３つの入力変数用の入力端子ｉｎｐｕｔ１［１］〜ｉｎｐｕｔ１［３］、２つのしきい値を選択するための信号用の入力端子ｉｎｐｕｔ２［３］、選択されたしきい値を保持するための初期化信号用の入力ｉｎｉｔ、及び出力用端子ｏｕｔｐｕｔを有する。
【００７１】
また、しきい素子は、複数の入力端子（又は、入力ゲートと呼ぶ）とフローティングゲートｆｔｇが容量を介して直列接続され、このフローティングゲートの電位を入力値とし、この入力値をステップ関数、シグモイド関数などに代表される非線形関数によって処理した値を出力値とする電位駆動型非線形素子１１１によって構成する。
【００７２】
また、フローティングゲートはスイッチＡ（１１２）を介して、グランドに接続され、しきい値を選択するための信号を入力するｉｎｐｕｔ２［３］はスイッチＢ（１１３）を介してフローティングゲートに容量を介して接続される。スイッチＡはｉｎｉｔ信号によってグランドとの接続と遮断を制御される。スイッチＢとスイッチＡとは同期しており、スイッチＡが接続している時にスイッチＢはｉｎｐｕｔ２［３］と接続状態になり、スイッチＡが遮断の時にスイッチＢは電源と接続状態になる。
【００７３】
今、入力ゲートｉｎ１１，ｉｎ１２，ｉｎ１３，ｉｎ２３とフローティングゲートｆｔｇとの間のそれぞれの容量値をＣとし、グランドに接続された端子ｉｎｇｎｄとフローティングゲートｆｔｇとの間の容量値をＣとし、電位駆動型非線形素子中のフローティングゲートと容量結合される容量の値はＣに比べて非常に小さく無視できるとする。また、ｉｎｐｕｔ１［１］〜ｉｎｐｕｔ１［３］端子の電位をＶ１１，Ｖ１２，Ｖ１３とし、ｉｎｐｕｔ２［３］端子の電位をＶ２３とし、フローティングゲート電位をＶｆｇとし、電源電位をＶｄｄとする。更に、Ｖ１１〜Ｖ１３及びＶ２３はＶｄｄ又は０の２値のみを取ることができ、Ｖ１１，Ｖ１２，Ｖ１３，Ｖ２３をＶｄｄによって規格化した値をｘ１１，ｘ１２，ｘ１３，ｘ２３とし、ＶｆｇをＶｄｄで規格化した値をＵｆｇとする。この時、規格化フローティングゲート電位Ｕｆｇの１／２の値を非線形素子のしきい値とする。この条件を有するしきい素子の動作を説明する。
【００７４】
まず初めに、初期状態として、全ての入力ゲートに０が入力された状態でｆｔｇの電位が０に設定され、その後、フローティングゲートｆｔｇが完全フローティングの状態にされる場合について説明する。
【００７５】
本実施例においてＶｆｇ及びＵｆｇは以下の式で表される。
【００７６】
【数１】
0003575424.tif 000002
【００７７】
【数２】
0003575424.tif 000003
従って、ｉｎｐｕｔ２［３］から入力されるしきい値選択変数ｘ２３が０の場合、入力変数の和であるΣ３ｉ＝１ｘ１ｉが２以下の場合は、最大でもＵｆｇ＝２／５であり、１／２より小さくしきい値に達しない。また、Σ３ｉ＝１ｘ１ｉが３の時は、Ｕｆｇ＝３／５となりしきい値より大きくなる。従って、入力変数からみた場合、しきい値は入力状態数が２と３の間にある。一方、ｘ２３＝１の場合、Σ３ｉ＝１ｘ１ｉ＝２であっても、Ｕｆｇ＝３／５となり、しきい値より大きくなり、Σ３ｉ＝１ｘ１ｉ＝１の時、Ｕｆｇ＝２／５であることから、入力変数からみた場合、しきい値は入力状態数が１と２の間にあることになる。このように、ｉｎｐｕｔ２［３］端子の電位を継続的にある値に保ち続けることによって、２つのしきい値のいずれか一方を選択することが可能になる。
【００７８】
次に、図９のしきい素子中のスイッチＡとスイッチＢとを用いて、ある時刻ｔ０にｉｎｐｕｔ２［３］からしきい値選択変数を入力し、継続的に選択変数を入力し続けるのではなく、スイッチＢによりｉｎ２３とｉｎｐｕｔ２［３］とを開放しても、ｔ０に入力した値により選択されたしきい値が保持されることを説明する。
【００７９】
図９中のスイッチＡによりフローティングゲートｆｔｇとグランドを接続する。そして、スイッチＢによりｉｎ２３とｉｎｐｕｔ２［３］とを接続する。この状態をスイッチが初期状態にあるという。スイッチが初期状態にある時、ｉｎｐｕｔ２［３］からしきい値選択変数として１を入力する。また、ｉｎｐｕｔ１［１］〜ｉｎｐｕｔ１［３］端子には各々０を入力する。この入力状態の時、フローティングゲートｆｔｇはグランドに接続されているので、Ｖｆｇ＝０である。
【００８０】
次に、スイッチＡを開放し、フローティングゲートｆｔｇをグランドから切り離し、その後、スイッチＢによりｉｎ２３を電源に接続する。スイッチＢが切り替わってもｉｎ２３の電位は変わらずＶｄｄ、即ち選択変数としては１である。しかし、Ｖｆｇ＝０であるため、規格化したフローティングゲート電位Ｕｆｇと入力変数ｘ１ｉの関係は次式のようになる。
【００８１】
【数３】
0003575424.tif 000004
このため、Σ３ｉ＝１ｘ１ｉ＝３になって初めてＵｆｇはしきい値より大きくなる。
【００８２】
一方、スイッチが初期状態にある時、ｉｎｐｕｔ２［３］からしきい値選択変数として０を入力する。また、ｉｎｐｕｔ１［１］〜ｉｎｐｕｔ１［３］には０を入力する。次に、スイッチＡを開放し、フローティングゲートｆｔｇをグランドから切り離し、その後、スイッチＢによりｉｎ２３を電源に接続する。スイッチＢが切り替わることによって、ｉｎ２３の電位は０からＶｄｄに変化する。即ち、前記の継続的に制御変数を入力する場合のｘ２３＝１の場合に匹敵する。この時の規格化フローティングゲート電位Ｕｆｇと入力変数ｘ１ｉの関係は次式のようになる。
【００８３】
【数４】
0003575424.tif 000005
このため、Σ３ｉ＝１ｘ１ｉ＝２の時に初めてＵｆｇはしきい値より大きくなる。
【００８４】
以上、ｉｎｐｕｔ２［３］から一時的に入力されるしきい値制御変数によって、２つのしきい値を選択することができ、ｉｎｐｕｔ２［３］からの入力が遮断されたとしても同じしきい値を保持することが可能であることを示した。
【００８５】
図９で示した構成は、図２のＴＥ［３］に対応するしきい素子であるが、グランドに接続されたｉｎｇｎｄ端子とフローティングゲートとの間の容量と入力端子とフローティングゲートとの間の容量との容量比を変える、又は、ｉｎｇｎｄ端子の接続先を電源に変更するなどの方法により、ＴＥ［１］からＴＥ［４］までの異なるしきい値を有するしきい素子として実現することができる。
【００８６】
例えば、ＴＥ［１］を実現するには、ｉｎｇｎｄ端子の接続先を電源に変え、ｉｎｇｎｄ端子とフローティングゲートとの聞の容量値を３Ｃに設定する。ＴＥ［２］のためには、ｉｎｇｎｄ端子の接続先を電源に変え、容量値をＣに設定する。ＴＥ［３］のためには、前記で示した通りである。ＴＥ［４］のためには、ｉｎｇｎｄ端子をＴＥ［３］の時と同様にグランドに接続し、容量値を３Ｃに設定する。
【００８７】
また、図２で示したＴＥ［１］〜ＴＥ［４］のしきい素子について同じｉｎｉｔ信号を用いて、しきい素子内スイッチを制御することが可能である。
【００８８】
図１０と図１１は、図９中の電位駆動型非線形素子１１１とスイッチＡとスイッチＢの具体例を表す図である。
【００８９】
図１０では、非線形素子としてＣＭＯＳインバータを用い、スイッチＡとしてはパストランジスタを、スイッチＢとしてはトランスミッションゲートｔｇ１、ｔｇ２を用いている。また、図１１では、非線形素子として抵抗負荷型インバータを用い、スイッチＡとしてパストランジスタを、スイッチＢとして２入力ＮＡＮＤゲートを用いている。ＮＡＮＤゲートを用いる場合、ｉｎｐｕｔ２［３］から入力されるしきい値選択変数の値は図１０のトランスミッションゲートを用いた場合とは論理反転した値を用いることで、同じ状態を作ることができる。
【００９０】
以上、図２中で異なる２つのしきい値を有し、いずれか一方を選択的に保持可能なしきい素子の実現形態について説明した。
【００９１】
（実施例２）
図１２は、関数機能を保持するための不揮発性メモリが関数セル内に分散されて配置される関数機能再構成可能半導体装置を表す図である。即ち、図１の構成における不揮発性メモリ回路１０２を設ける代りに、関数セル１２１ごとに不揮発性メモリ回路１２２を設ける。不揮発性メモリ回路としては、ＥＥＰＲＯＭ回路による構成、Ｆｌａｓｈメモリ回路による構成、強誘電体材料を用いたメモリ回路による構成、及びＭＲＡＭによる構成がある。
【００９２】
（実施例３）
図１３は、関数機能を保持するための不揮発性メモリ１３２が関数セル１３１内に分散されて配置されており、かつ配線領域が存在しない関数機能再構成可能半導体装置を表す図である。本実施例では関数セル自体が配線として使用されるために、配線領域を必要としない。
【００９３】
図２と図１４を用いて、図１３の構成を実現するための関数セルによる配線の実現方法を説明する。図１４は図１０と類似の構成であるが、図１４に示す構成にはスイッチが追加されている点が図１０に示す構成と異なる。
【００９４】
図１４に示す構成では、図２に示すｉｎｐｕｔ１［１］〜ｉｎｐｕｔ１［３］とｉｎｐｕｔ２［１］〜ｉｎｐｕｔ２［４］とのどちらも不揮発性メモリに接続することができるように構成する。前述した通り、図２のｉｎｉｔ信号によりｉｎｐｕｔ１［１］〜ｉｎｐｕｔ１［３］の端子から入力される入力変数が保持される。即ち、入力状態数がある入力状態数で固定されることになる。
【００９５】
既に実施例１で説明したように、入力状態数が０の場合は、図２中のしきい素子ＴＥ［１］にｉｎｐｕｔ２［１］端子から入力される選択変数によって関数セルの出力値が決まり、入力状態数１の場合はＴＥ［２］に入力される選択変数値によって、入力状態数２の場合はＴＥ［３］の選択変数値によって、入力状態数３の場合はＴＥ［４］の選択変数値によって、関数セルの出力値が決まる。即ち、各入力状態を固定することで、ｉｎｐｕｔ２［１］〜ｉｎｐｕｔ２［４］の４つの選択変数のいずれか１つに依存した論理値が関数セルの出力値となる。従って、出力値そのままか論理反転をさせた値かのいずれか一方を用いることで、選択変数値の値が関数セルの値となる配線機能を実現することができる。
【００９６】
図１４は上記を実現する関数セルを表す回路構成図である。ｉｎｉｔ１はフローティングゲートと容量を介して接続されているｉｎ１１−ｉｎ１３を入力変数用端子ｉｎｐｕｔ１［１］〜ｉｎｐｕｔ１［３］と電源とのいずれかに接続するためのトランスミッションゲートｔｇ１１ａとｔｇ１１ｂ、ｔｇ１２ａとｔｇ１２ｂ、ｔｇ１３ａとｔｇ１３ｂで構成されるスイッチを制御する信号用端子であり、ｉｎｉｔ２は図１０に示したｉｎｉｔと同様の機能をもつ、即ち、ｉｎ２３端子を制御変数用端子ｉｎｐｕｔ２［３］又は電源のいずれかに接続することを制御するための信号用端子であり、ｉｎｉｔ３はｉｎｉｔ１又はｉｎｉｔ２のいずれか一方と同期する信号用の端子である。
【００９７】
関数セルを配線として使用する場合は、論理的１に固定することでｉｎｐｕｔ２［３］とｉｎ２３を接続し、ｉｎｉｔ１を制御し、ｉｎｉｔ３はｉｎｉｔ１と同期させる。今、配線として使用したい制御変数用端子をｉｎｐｕｔ２［３］とする。この場合、ｉｎｐｕｔ２［３］に入力される変数は論理を制御変数ではなく、伝送される変数になる。ｉｎｐｕｔ２［３］が関数セルの出力値を決定するのは、入力状態数が２の時であるから、入力状態数２を形成する入力変数の値の論理的反転をフローティングゲートの初期化時に入力する。ここで、フローティングゲートの初期化時とは、フローティングゲートがパストランジスタを介してグランドに接続されている状態のことである。また、初期化時には、ｉｎｐｕｔ２［３］からは論理的０が入力される。
【００９８】
次に、ｉｎｉｔ１とｉｎｉｔ３から論理的０を入力し、パストランジスタを遮断し、フローティングゲートを電気的絶縁状態にし、ｉｎ１１〜ｉｎ１３を電源に接続する。この操作により、図１４の関数セルは配線としての機能を持つ。以上説明したように、配線領域を削除し、関数セル自体を配線として使用する回路構成も可能である。
【００９９】
本発明は、上記の実施例に限定されることなく、特許請求の範囲内で種々変更・応用が可能である。
【０１００】
【発明の効果】
上述したように、本発明によれば、論理ＬＳＩの中で高頻度で使用されている対称関数を実現する可変論理部をＬＳＩ上において小面積で実現し、かつセレクタ機能とメモリ機能を併せ持ち、従来のデバイスにない統合された機能を実現でき、かつ高速に論理を再構成可能な半導体装置を提供することが可能となる。
【０１０１】
【図面の簡単な説明】
【図１】しきい素子を有する回路綱である関数セルをアレイ状にし、接続状態を切り替えることが可能である配線によりアレイを結合し、関数セルアレイと集中型メモリとが接続された構成をとる関数機能再構成可能半導体装置を表す図である。
【図２】２つのしきい値を選択的に保持することが可能なしきい素子を用いた２段論理回路網を表す図である。
【図３】図２で示した２段論理回路の１段目のしきい素子の入力状態数に対する出力値の関係を表す図であり、白抜き丸印は制御変数に依存して出力値が決まる場合を表し、黒丸印は制御変数とは独立に入力状態数のみで出力値が決まる場合を表す。
【図４】（ａ）は図２で示した２段論理回路の２段目のしきい素子における入力状態数と入力値との関係を表し、（ｂ）は２段目のしきい素子における入力状態数に対する出力値の関係を表す。（ａ）の黒塗りつぶしで表される入力値は入力状態数によって決まる入力であり、白抜き部分は制御信号の値に依存して加算される入力を表す。（ｂ）の白抜き丸印は制御変数の値に応じて決まる出力値を表す。
【図５】２つのしきい値を選択的に保持することが可能なしきい素子を用いた３段論理回路網を表す図である。
【図６】図５の３段論理回路の１段目と２段目のしきい素子の入力状態数と出力値との関係を表す図である。
【図７】図５の３段論理回路の３段目のしきい素子における入力状態数に対する入力値と出力値とを表す図である。
【図８】図５の３段論理回路の各入力状態数におけるｉｎｐｕｔ２［１］〜ｉｎｐｕｔ２［３］端子の値とｏｕｔｐｕｔ端子の値との関係を表す図である。
【図９】図２で示す３入力変数のしきい素子の構成を表す図である。
【図１０】図９のしきい素子を実現する回路構成を表す図である。
【図１１】図９のしきい素子を実現する回路構成を表す図である。
【図１２】しきい素子を有する回路網である関数セルをアレイ状にし、接続状態を切り替えることが可能である配線によりアレイを結合し、関数セル中に分散的に不揮発性メモリを有する関数機能再構成可能半導体装置を表す図である。
【図１３】しきい素子を有する回路網である関数セルをアレイ状にし、関数セル中に分散的に不揮発性メモリを有する関数機能再構成可能半導体装置を表す図である。
【図１４】配線機能を有する関数セルを表す図である。
【図１５】従来技術におけるＬＵＴ型論理関数機能再構成可能デバイスを表す図である。
【図１６】従来技術におけるマルチプレクサ型論理関数機能再構成可能デバイスを表す図である。
【図１７】従来技術におけるＰＬＡ型論理関数機能再構成可能デバイスを表す図である。
【図１８】従来技術における典型的なＳＲＡＭセルを表す図である。
【図１９】（ａ）は従来技術におけるニューロンＭＯＳインバータを表す回路図であり、（ｂ）はニューロンＭＯＳインバータの論理記号を表す図である。
【符号の説明】
１０１  しきい素子回路網による関数セル
１０２  集中型不揮発性メモリ回路
１０３  配線の接続状態切り替えスイッチ
１０４  制御回路ブロック
１０５  入力回路ブロック
１０６  出力回路ブロック
１１１  電位駆動型非線形素子
１１２  スイッチＡ
１１３  スイッチＢ
１２１  しきい素子回路網による関数セル
１２２  不揮発性メモリ回路
１３１  しきい素子回路網による関数セル
１３２  不揮発性メモリ回路
【図１】
0003575424.tif 000006
【図２】
0003575424.tif 000007
【図３】
0003575424.tif 000008
【図４】
0003575424.tif 000009
【図５】
0003575424.tif 000010
【図６】
0003575424.tif 000011
【図７】
0003575424.tif 000012
【図８】
0003575424.tif 000013
【図９】
0003575424.tif 000014
【図１０】
0003575424.tif 000015
【図１１】
0003575424.tif 000016
【図１２】
0003575424.tif 000017
【図１３】
0003575424.tif 000018
【図１４】
0003575424.tif 000019
【図１５】
0003575424.tif 000020
【図１６】
0003575424.tif 000021
【図１７】
0003575424.tif 000022
【図１８】
0003575424.tif 000023
【図１９】
0003575424.tif 000024