以下、前記実施形態で説明した本発明に係るスイッチ素子を、プログラム可能な論理回路、メモリ装置等に適用した各種実施例について図面を参照して説明する。
図5は、本発明のスイッチ素子を用いたプログラム可能な論理回路の一実施例の構成を示す図である。
図5を参照すると、本実施例の半導体集積回路は、複数の入力端子150、セレクタ回路151、複数のスイッチ素子152、センス回路153、出力端子154を備えている。ここで、スイッチ152素子は、図1、図3に示したビア103、または、図2、図4に示したスイッチ素子118のように配線層に形成され、2端子間の導電率が変えられるものである。
セレクタ回路151は、スイッチ素子152の出力と、センス回路153の入力との間に3個直列に接続され8個のスイッチ素子152に対応して8行備え、3本の入力150のそれぞれについてインバータ153−1による反転信号と正転信号をゲートに入力とするパストランジスタ153−2がアレイ状に配設されている。3本の入力信号150が”000”のときは、第1列のスイッチ素子152の出力が選択されてセンス回路153に伝達され、3本の入力信号150が”001”のときは、第2列のスイッチ素子152の出力が選択されてセンス回路153に伝達され、以下同様にして、3本の入力信号150が”111”のときは、第8列のスイッチ素子152の出力が選択されてセンス回路153に伝達される。セレクタ回路151の出力はセンス回路153のインバータ153−1に入力され、インバータ153−1の入力と電源間にはpチャネルMOSトランジスタ153−2が接続されている。
図5に示す回路において、入力150の論理の組み合わせにより、セレクタ151がスイッチ素子152の中から、入力した論理に対応するスイッチを1つ選択し、選択されたスイッチ素子152の導電率が高ければ、定電位155に接続され、低ければ開放される。
センス回路153が、これらの状態を判別することによって”1”または”0”を出力する。例えばスイッチ素子152は、導電率が高い状態を”0”、導電率が低い状態を”1”と規定し、予め導電率がプログラムされており、このプログラムの内容によって、入力と出力の間の論理関数が設定される。スイッチ素子152のプログラミングを行う場合には、セレクタによりプログラミングを行うスイッチ素子を選択し、センス回路から適切な電圧を印加することで、選択されたスイッチ素子の2端子間に電圧が印加され、導電率が変更される。また、スイッチ素子152が3端子デバイス118である場合には、ゲート端子116に適切な電圧を印加することで、導電率が変更される。
図6は、本発明に係るスイッチ素子を用いたプログラム可能なセレクタ回路の一実施例の構成を示す図である。図6を参照すると、本実施例のセレクタ回路は、複数の入出力端子160、複数のスイッチ素子161、1つの入出力端子162を備えている。スイッチ素子161は、図1の103または図2の118のように配線層に形成され、2端子間の導電率が変えられるものである。
図6に示す回路において、複数あるスイッチ素子161の中から、1つのスイッチ素子の導電率を高くし、残りのスイッチ素子の導電率を低くすることで、複数ある入出力端子160の中の任意の1つの端子と、入出力端子162を接続することができる。これにより、例えば、複数ある入力の中から1つの入力を選択して出力するセレクタや、複数ある信号線の中から任意の信号線に信号を出力するといったことが可能となる。このセレクタ回路の入出力端子160の中から任意の選んだ1つと、入出力端子162の間の導電率を高くしたい場合には、入出力端子160の中の任意に選んだ端子に、ある一定の電圧を印加し、入出力端子160のその他の端子には別の電圧が印加される。このとき、入出力端子162はオープンまたは、トランジスタや抵抗素子を介して一定の電圧にバイアスされている。
図7は、本発明の別の実施例の構成を示す図である。本実施例は、図6に示したセレクタに制御ゲートを付加したものである。図7を参照すると、本実施例のセレクタ回路は、複数の入出力端子160と、複数のスイッチ素子161と、複数のトランジスタ171と、制御入力172と、1つの入出力端子162を備えている。
図7の回路において、制御入力172から与える信号により、トランジスタ171をオフ状態とし、スイッチ素子161に電圧や電流が印加されないようにすることが可能である。これにより、プログラミングを行いたいスイッチ素子161に接続されているトランジスタ171だけをオン状態にし、他のトランジスタ171をオフ状態にすることで、スイッチ素子161を選択的にプログラミングすることができる。トランジスタ171は、スイッチ素子161と入力端子160の間に配置されていてもよい。また、トランジスタ171のゲート端子に接続されている制御入力172は、全てのトランジスタで共通であっても良いし、各々のトランジスタに別個の制御入力が接続されていてもよい。
図8は、本発明の別の実施例の構成を示す図である。本実施例は、図6または図7のセレクタ回路にバイアス回路を付加したものである。図8を参照すると、本実施例のセレクタ回路は、複数の入出力端子160、複数のスイッチ素子161、トランジスタ、抵抗素子、またはそれらの組み合わせからなる回路180、定電圧源181、1つの入出力端子162を備えている。
図8の回路は、スイッチ素子161をプログラミングする際にスイッチ素子161の2端子間に適切な電圧が印加されるようにする回路である。例えば、スイッチ素子161は、入出力端子160側に正の電圧、入出力端子162側に負の電圧を印加された場合(「順バイアス」と呼ぶ)にオン状態になり、逆向きに電圧を印加された場合(「逆バイアス」と呼ぶ)にはオフになるものとする。ここで、入出力端子160の1つに、1ボルトの電圧を印加し、入出力端子160の他の端子には、0ボルトを印加し、入出力端子162は開放し、定電圧源181は0ボルトであるとする。この場合、入出力端子162は、抵抗素子またはトランジスタ180を介して0ボルトに接地されており、スイッチ素子161の1つ(「A」と呼ぶ)は、入力端子160から1ボルトが印加されているので、このスイッチ素子Aには、順バイアスが印加され、オン状態になる。すると、入出力端子160から1ボルトの電圧がスイッチ素子Aを介して、入出力端子162に伝わり、入出力端子162の電位が上昇する。すると、A以外のスイッチ素子には、逆バイアスが印加されるので、A以外のスイッチ素子はオフ状態となる。このようにして、入出力端子162の電圧が適切な電圧になるような回路を付加することで、任意の1つのスイッチ素子の導電率を高くすることができる。抵抗素子またはトランジスタ180が入出力端子160側に付加され、入出力端子160にもバイアス電圧を与えるようなプログラミング方法も可能である。
図9は、本発明の別の実施例の構成を示す図である。本実施例は、図8のセレクタ回路に制御ゲートを付加したものである。図9を参照すると、本実施例のセレクタ回路は、複数の入出力端子160、複数のスイッチ素子161、トランジスタ、抵抗素子、またはそれらの組み合わせからなる回路180、トランジスタ190、定電圧源181、制御入力191、1つの入出力端子162を備えている。
図9に示す回路において、制御入力191により、トランジスタ190をオフにすることができる。これにより、スイッチ素子161のプログラミング時には入出力端子162に適正な電圧が印加されるように回路180を機能させ、逆にセレクタとして動作する際にはトランジスタ190をオフにすることで、回路180がセレクタの動作に影響しないようにすることができる。
図10は、本発明の別の実施例として、図6から図9に示した本実施例のセレクタ回路の応用例の1つを示す図である。図10を参照すると、本実施例の半導体集積回路は、複数の入力端子200、前記のセレクタ回路201、論理回路202、出力端子203、グローバル配線204を備えている。配線204は他の論理回路との接続に用いられる長さが数十ミクロンから数ミリ程度の配線である。
図10に示す回路において、セレクタ201により、入力端子200のうちの1つが論理回路202の入力端子に接続される。論理回路の出力203は、セレクタ201がどの入力端子を選択するかによって動作が変わる。これにより、他の論理回路と接続される配線204と、論理回路202に接続を変更することができる。
図11は、本発明の別の実施例として、図6から図9に示した本発明のセレクタ回路の応用例の1つを示す図である。図11を参照すると、本実施例の半導体集積回路は、前述したセレクタ回路211、論理回路202、複数の出力端子213、他の論理回路と接続されたグローバル配線204を備えている。配線204は他の論理回路との接続に用いられる長さが数十ミクロンから数ミリ程度の配線である。図11に示す回路では、セレクタ211により、論理回路202の出力を配線204の中の任意に選択した1つまたは複数の配線に伝播させることができる。
図12は、本発明のスイッチ素子を適用したプログラム可能な論理回路(半導体集積回路)の一実施例の構成を示す図である。図12を参照すると、本実施例は、複数の入力端子220、複数個のスイッチ素子221、論理ゲート222、出力端子223を備えている。ここで、入力端子220の本数がM本、論理ゲート222の入力端子の総数がN本だとすると、スイッチ素子221はこれら縦横の配線の各交点に1つずつ配置され、スイッチ素子221の総数はM×N個となる。
スイッチ素子221は、図1のビア103または図2のスイッチ素子118のように配線層に形成され、2端子間の導電率が変えられるものである。
図12に示す回路は、NANDやインバータなどの単純なゲートが規則的に配置された論理回路(論理ゲート)222と、入出力される信号の接続を変更するスイッチ素子221によって、入力と出力の間の論理関数を変更することができる。
図13(a)乃至図13(d)に、その構成例を示す。図13は、本発明の配線構造を適用した、論理関数をプログラム可能な半導体集積回路の例である。図13を参照すると、本実施例の半導体集積回路は、スイッチマトリクス400、NANDゲート401〜404、インバータ405〜408、スイッチマトリクス409、スイッチマトリクス410を備えている。スイッチマトリクス400、409、410の配線の交点には、図1または図2に示した構造のスイッチ素子を有する。
これら交点のうち、縦の配線と横の配線がスイッチ素子により接続される部分は黒い点411で示される。また、これら交点のうち黒い点411が付されて無いものは、縦の配線と横の配線を接続するスイッチ素子がオープンの状態で接続されていないことを示す。
図13(a)は、この半導体集積回路を用いて半加算器を構成した例である。スイッチマトリクス400、409、410を適切にプログラムすることで、論理ゲート401〜408の接続を変更し、図13(b)に示した半加算器と等価な回路を構成できる。
図13(c)は、この半導体集積回路を用いてイネーブル入力つきセットリセットフリップフロップを構成した例である。スイッチマトリクス400、409、410を適切にプログラムすることで、論理ゲート401〜408の接続を変更し、図13(d)に示したフリップフロップ(イネーブル入力つきセットリセット)と等価な回路を構成できる。
図14は、図13に示した半導体集積回路のスイッチマトリクス400、409、410の接続を変更する方法の一例を説明するための図である。図14を参照すると、このスイッチマトリクスは、横方向の配線424、縦方向の配線422、スイッチ素子420、横方向の配線424を定電位に設定するためのトランジスタ426を備えている。ここで、スイッチ素子420は図1または図2に示した配線層中に形成されたスイッチ素子であり、縦配線と横配線の交点の数だけ配置される。例えば、縦の配線422がm本、横の配線424がn本の場合、このスイッチはm×n個配置される。これらスイッチ素子の初期状態は全てオフであると仮定する。また、このスイッチ素子の2つある端子のうち、縦配線422に接続される側の端子に正の電圧を、横配線424に接続される側の端子に負の電圧を印加し、両端子間の電位差がしきい値VTHよりも大きい場合にスイッチがオン状態に遷移するものとする。
図14に示す回路において、ターゲットとなるスイッチ素子420aをオフ状態からオン状態にする場合には、スイッチ素子420aと接続されている縦配線422aにしきい値VTHよりも高い電圧(ここでは2VTH)を印加する。さらに、スイッチ素子420aと接続されている横配線424aは、トランジスタ426aをオンにすることにより接地する。すると、ターゲットとなるスイッチ素子420aの両端子間には、スイッチ素子のしきい値VTHよりも高い電圧2VTHが印加されるので、スイッチがオン状態に遷移する。このとき、ターゲットとなるスイッチ素子420aと接続されていない縦配線422には、しきい値VTHよりも低い電圧(ここではVTH)を印加し、スイッチ素子420aと接続されていない横配線424は、トランジスタ426がオフ状態であり、縦配線422の電圧VTHが伝播している。そのため、縦配線422aと横配線424に接続されている素子の両端子には、それぞれ2VTHとVTHが印加されるため、端子間電圧はVTHとなるが、この電圧はしきい値電圧をVTHを超えないので、スイッチの状態は変わらない。また、縦配線422と横配線424aに接続されている素子の両端子には、VTHと0ボルトが印加されるため、端子間電圧はVTHとなるが、この電圧もしきい値電圧をVTH超えないので、スイッチの状態は変わらない。縦配線422と横配線424に接続されている素子の両端子にはVTHが印加されるため、端子間電圧はゼロであり、スイッチの状態は変わらない。このようにして、任意に選択したスイッチ素子420aの状態だけをオン状態に遷移させることができる。
図15は、図13に示した半導体集積回路のスイッチマトリクス400、409、410の接続を変更する方法の一例を示す図である。図15を参照すると、このスイッチマトリクスは、横方向の配線501、縦方向の配線500、スイッチ素子504、縦配線500とスイッチ素子504との間に直列に挿入されたトランジスタ505、トランジスタ505のゲート端子を制御するための制御線502を備えている。ここで、スイッチ素子504は、図1または図2に示した配線層中に形成されたスイッチ素子103、118であり、縦配線と横配線の交点の数だけ配置される。例えば、縦の配線500がm本、横の配線501がn本の場合、このスイッチはm×n個配置される。これらスイッチ素子の2つある端子のうち、縦配線500に接続される側の端子に正の電圧を、横配線501に接続される側の端子に負の電圧を印加した場合にスイッチがオン状態に遷移し、逆方向に電圧を印加するとオフ状態に遷移するものとする。
図15に示す回路において、ターゲットとなるスイッチ素子504aをオン状態にして、縦配線500aと横配線501aを接続する場合には、スイッチ素子504aと接続されている縦配線500aに1ボルト程度の電圧が印加される。スイッチ素子504aと接続されていない縦配線500は接地される。さらに、スイッチ素子504aと接続されているトランジスタ505aのゲートには、トランジスタ505aがオンになるように、制御端子502aに電圧が印加される。そのほかの制御端子502は接地される。すると、縦配線500aと隣の縦配線500の間に印加された電圧は、ターゲットとなるスイッチ素子504aと、ターゲット以外のスイッチ素子504bによって抵抗分割され、スイッチ素子504aには順方向バイアスが、スイッチ素子504bには逆方向バイアスが印加される。このとき、順方向バイアスが印加されたスイッチ素子504aは、オン状態に遷移し、逆方向バイアスが印加されたスイッチ素子504bは、オフ状態に遷移する。逆方向バイアスが印加されたスイッチ素子504bが全てオフ状態に遷移した後は、横方向の配線501aを接地して、スイッチ素子504aに、さらに順方向バイアスを印加することが可能である。
このようにして、スイッチ素子504aがオンとなり、スイッチ素子504bがオフとなることで、任意に選択した配線500aと配線501aが接続される。このとき、制御信号502は接地されているため、トランジスタ505はオフ状態であり、スイッチ素子504の両端子間には電圧が印加されず、スイッチ素子504のインピーダンスは変化しない。このため、他の横方向の配線501に接続されるスイッチ素子には影響を及ぼさない。
図16は、図13に示した半導体集積回路のスイッチマトリクス400、409、410の接続を変更する方法を説明するための図である。図16を参照すると、このスイッチマトリクスは、横方向の配線511、縦方向の配線510、スイッチ素子513、スイッチ素子513のゲート端子を制御するための制御線512を備えている。ここで、スイッチ素子513は、図2に示した配線層中に形成されたスイッチ素子118であり、縦配線と横配線の交点の数だけ配置される。例えば、縦の配線510がm本、横の配線511がn本の場合、このスイッチは、m×n個配置される。
これらスイッチ素子513の3つある端子のうち、制御線512に接続されているゲート端子に正の電圧を印加し、縦配線510に接続される側の端子または横配線511に接続される側の端子の少なくともいずれか一方に負の電圧を印加した場合に、当該スイッチ素子513がオン状態に遷移し、逆方向に電圧を印加すると、オフ状態に遷移するものとする。
図16に示す回路において、ターゲットとなるスイッチ素子513aをオン状態にして、縦の配線510aと横配線511aを接続する場合には、スイッチ素子513aと接続されている縦配線510aは接地される。スイッチ素子513aと接続されていない縦配線510には1ボルト程度の電圧が印加される。さらに、スイッチ素子513aと接続されている制御端子512aには1ボルト程度の電圧が印加される。そのほかの制御端子512は開放する。すると、スイッチ素子513aの制御ゲートに正の電圧が印加され、縦配線510aと接続されている端子は接地されるため、スイッチ素子513aがオン状態になる。スイッチ素子513bは、制御ゲートと縦配線の両方に1ボルト程度の電圧が印加されているため状態は変わらない。制御端子512に接続されているスイッチ素子513は、制御端子が開放されているため、制御端子での電子の授受が行われないため、スイッチ素子の状態は変化しない。このようにして、スイッチ素子513aがオンになることで、任意に選択した配線510aと配線511aが接続される。
図17(A)及び(B)は、図13に示した半導体集積回路のスイッチマトリクス400、409、410の立体構造の一実施例を示したものである。図17(A)及び(B)を参照すると、このスイッチマトリクスは、半導体基板100、半導体基板100上に形成された配線431、配線同士を接続(短絡)または開放するスイッチ素子432を備えている。また、スイッチ素子432は、配線層に2次元状または3次元状に配置され、半導体基板100とは、別平面にスイッチマトリクス433を形成している。図13における論理ゲート401〜408は、半導体基板100上に形成されている。なお、図17(A)では、スイッチ素子432は、異なる配線層の配線431間の縦方向、図17(B)では、スイッチ素子432は、縦と横の配線間(同一配線層)に設けられている。
一方、図18は、本発明の比較例(本発明の構成を採用しない構成)をなすスイッチマトリクスの立体構造の一例を示す図である。図18を参照すると、比較例によるスイッチマトリクス433は、半導体基板100、配線431、半導体基板100に形成されたメモリ素子442、半導体基板に形成されたパストランジスタ443を備えている。比較例によるスイッチマトリクスは、配線層だけでなく、半導体基板上のメモリ回路やパストランジスタを必要とし、論理ゲート430とは別の場所に形成されるため、面積が非常に大きくなる。また、パストランジスタのオン抵抗が大きいために信号の伝播遅延が大きくなる問題がある。さらに、今後は半導体基板上に形成された回路のリーク電流が大きくなることや、ソフトエラーによりメモリ素子に記憶されたコンフィグレーション情報が破壊されるなどの問題が起こることが予想される。このような理由から、図17に示した、本発明に係るスイッチマトリクスは、面積、遅延、リーク電流、ソフトエラー耐性などの点で、従来の技術で構成したものよりも有利である。
図19は、本発明の配線構造を適用したスイッチボックスの一実施例を示す図である。図19を参照すると、本実施例のスイッチボックスは、複数の入出力端子230と、入出力端子230の中の2つの端子を接続する複数のスイッチ素子231を備えている。スイッチ素子231は、図1の103または図2の118のように配線層に形成され、2端子間の導電率が変えられるものである。
図19に示す回路は、任意のスイッチ素子をオン状態にすることで、ある任意の入出力端子と、別の任意の入出力端子を接続するものである。また、複数のスイッチ素子をオン状態にすることで、ある1つの端子から入力された信号を、複数の配線ノードに出力することも可能である。
スイッチ素子231は、入出力端子230の中から選ばれる2端子の組み合わせ全てに対して配置されている場合もあり、または一部に対して配置されている場合もある。図19は、4つの入出力端子230を有し、これらの中から選ばれる2端子の組み合わせ全てに対してスイッチが配置されている例である。このような、N個の入出力端子の中から全ての2端子の組み合わせに対してスイッチ素子が配置される場合は、スイッチ素子はNC2個必要となる。
図20は、本発明の配線構造を適用したプログラム可能な半導体集積回路の一実施例を示す図である。図20を参照すると、本実施例の半導体集積回路は、複数の論理ブロック240、複数の論理ブロック240同士を接続するスイッチボックス241を備えている。
論理ブロック240は、図5のルックアップテーブルや、図12のプログラム可能なスイッチと論理ゲートの組み合わせにより、入力と出力の間の論理関数が任意にプログラムできる構造になっている。スイッチ241は図6のセレクタや図19のスイッチボックスが集まって出来ており、任意の入出力端子と別の任意の入出力端子を接続することが可能である。これらにより、任意の論理関数をプログラムした論理ブロック同士を任意に接続することで、所望の機能を実現する半導体集積回路を実現することができる。
図21(A)及び(B)は、本発明に係る配線構造を適用したメモリセルの一実施例の構成を示す図であり、(A)は断面構成、(B)は回路構成を示している。図21(A)及び(B)を参照すると、本実施例のメモリセルは、半導体基板100、半導体基板100に形成されたトランジスタ251、第1の配線層101、第2の配線層102、導電率が変えられるビア103(2端子スイッチ素子)、ビット線255、ワード線256、プレート線257を備えている。
導電率が変えられるビア103(2端子スイッチ素子)は、図1を参照して説明したように、金属硫化物などの電解質材料を含んでおり、端子間に印加される電圧または流れる電流により、端子付近で金属物質を析出または溶解させて端子間の導電率を変えることができる。この導電率が変えられるビア103の一側の端子は、トランジスタ251のソース端子またはドレイン端子に接続されている。また、トランジスタ251のソース端子またはドレイン端子のうち、ビア103に接続されていない側の端子は、ビット線255またはプレート線257に接続される。さらに、ビット線255またはプレート線257のうちトランジスタ251に接続されていない側の線は、ビア103の端子のうちトランジスタ251と接続されていない側の端子と接続される。トランジスタ251のゲート端子はワード線256に接続されている。
このような構造のメモリセルを複数個有する半導体集積回路において、各メモリセルのビアの導電率を予めプログラムしておき、ある1つのメモリセルのワード線256の電圧を操作することで、トランジスタ251をオン状態とし、この状態でビット線255とプレート線257の間の導電率を検出することで、プログラムされている情報を読み出すことができる。
また、プログラム時には、ある1つのメモリセルのワード線256の電圧を操作することで、トランジスタ251をオン状態とし、この状態でビット線255とプレート線257の間に適正な電圧を印加するか電流を流すことで、ビア103の導電率を変えることができる。このように、本発明の配線構造を応用することで、情報の記憶を行うメモリ回路が実現できる。
図22(A)及び図22(B)は、本発明の配線構造を適用したメモリセルの別の実施例の構成を示す図であり、(A)は断面構成、(B)は回路構成を示している。図22(A)及び(B)を参照すると、本実施例のメモリセルは、半導体基板100、半導体基板100に形成されたトランジスタ251、第1の配線層111、第2の配線層112、金属硫化物などを含む電解質材料113、電解質材料113中の金属析出物の量を制御するためのゲート端子116、ビット線255、ワード線256、プレート線257を備えている。
電解質材料113とゲート116は、図2に示したように、第1の配線層111の2つの配線を短絡または開放させる機能を有する。電解質材料113は、金属硫化物などを含んでおり、端子間に印加される電圧または流れる電流により、端子付近で金属物質を析出または溶解させて、端子間の導電率を変えることができる。この電解質材料113と接する端子の1つは、トランジスタ251のソース端子またはドレイン端子に接続されている。また、トランジスタ251のソース端子またはドレイン端子のうち、電解質材料113と接する端子に接続されていない側の端子は、ビット線255またはプレート線257に接続される。さらに、ビット線255またはプレート線257のうちトランジスタ251に接続されていない側の線は、電解質材料113に接する端子のうちトランジスタ251と接続されていない側の端子と接続される。トランジスタ251のゲート端子はワード線256に接続される。
このような構造のメモリセルを複数個有する半導体集積回路において、各メモリセルの電解質材料113の導電率を予めプログラムしておき、ある1つのメモリセルのワード線256の電圧を操作することで、トランジスタ251をオン状態にし、この状態でビット線255とプレート線257の間の導電率を検出することで、プログラムされている情報を読み出すことができる。
また、プログラム時には、ビット線255、プレート線257、ゲート端子116の間に適正な電圧を印加するか電流を流すことで、電解質材料113の導電率を変えることができる。このように、本発明の配線構造を応用することで、情報の記憶を行うメモリ回路が実現できる。
図23は、本発明のメモリセルを用いたメモリセルアレイの一実施例の構成を示す図である。図23を参照すると、このメモリセルアレイは、ビット線255、ワード線256、スイッチ素子258、アクセストランジスタ251、プレート線257を備えている。スイッチ素子258とアクセストランジスタ251は、図21または図22に示したメモリセルを構成し、ビット線とワード線の交点の数だけ配置される。例えば、ビット線255がm本、ワード線256がn本の場合、このスイッチは、m×n個、マトリクス状に配置される。
図23に示す回路において、メモリセルの情報の書き換えは、ターゲットとなるメモリセルのスイッチ素子のインピーダンスを変えることによって実現される。本実施例では、ワード線256aに、1ボルトから2ボルト程度の電圧が印加される。すると、アクセストランジスタ251aがオン状態になり、スイッチ素子258aの2端子間に、ビット線255の電圧とプレート線257の電圧がそれぞれ印加される。このとき、スイッチ素子に順方向バイアスが印加されていると、スイッチ素子258aのインピーダンスは小さくなり、逆方向バイアスが印加されていると、インピーダンスは大きくなる。他のワード線256bは接地されているので、アクセストランジスタ251bはオフ状態であり、スイッチ素子258bの2端子間には電圧は印加されず、インピーダンスは変化しない。
このようにして、任意に選択したワード線に接続されているメモリセルのインピーダンスだけを変えることができる。
また、このメモリセルに書き込まれている情報を読み出す際には、読み出し対象のメモリセルが接続するワード線256aに1ボルトから2ボルト程度の電圧を印加してアクセストランジスタ251aをオン状態にし、プレート線257を接地電位とし、ビット線255を1ボルトから2ボルト程度の電圧にプリチャージする。このとき、スイッチ素子258aのインピーダンスが高ければ、ビット線255の電圧は、それぞれ1ボルトから2ボルト程度の電圧が現れ、逆に、スイッチ素子258aのインピーダンスが低ければ、ビット線255には、0ボルト近辺の電圧が現れる。
このように、ビット線に現れる電圧を検出することで、選択したワードのメモリセルに書き込まれている情報を読み出すことができる。また、選択されていないメモリセルのアクセストランジスタ251bはオフ状態であるため、スイッチ素子258bの状態がこの読み出し操作に対して影響を及ぼすことは無い。
図23に示すメモリセルアレイは、前記したスイッチマトリクスとは異なり、あるビット線255に接続されている複数のメモリセルは、全て共通のプレート線257に接続されている。つまり、対になっているビット線255とプレート線257の間の導電率を変えることができるが、任意の2本の配線を接続することはできない。
図24は、本発明の配線構造を適用したメモリセルの書き込み回路または読み出し回路の一実施例の構成を示す図である。図24を参照すると、本実施例のメモリセルの書き込み回路または読み出し回路は、電流源270、スイッチ素子258を含有するメモリセル271、参照電圧273、電圧比較器274、出力端子275を備えている。
図24に示す回路において、電流源270により、メモリセル271に電流が流され、このとき、メモリセル271の中のスイッチ素子258の導電率により、メモリセル271に現れる電圧が変化する。電圧比較器274は、メモリセル271に現れる電圧と、参照電圧273とを電圧比較し、メモリセル271に現れる電圧が参照電圧273よりも高いか低いかを判定する。例えば、スイッチ素子258の導電率を所望の導電率まで高くしたい場合、電流源270からメモリセル271に電流を流し込むことで、スイッチ素子258の導電率を徐々に高くすると、メモリセル271に現れる電圧は徐々に低下する。メモリセル271に現れる電圧が、参照電圧273よりも小さくなると、電圧比較器274の出力端子275の値が変化するので、これにより、メモリセル271の導電率が所望の値まで上がったことを判別できる。
逆に、メモリセル271の導電率を低くしたい場合には、メモリセル271に現れる電圧が徐々に上昇するので、この電圧が参照電圧273よりも高くなるタイミングを検出することで、所望の導電率に達したことが判別できる。このようにして、本発明の回路を用いることで、メモリセルの導電率が所望の値にプログラムされたかを判別することができる。
図25は、図24のメモリセルの書き込み回路または読み出し回路において、参照電圧をレプリカメモリセルで発生させる構成の一実施例を示す図である。図25を参照すると、本実施例のメモリセルの書き込みまたは読み出し回路は、2つの電流源270、スイッチ素子258を有するメモリセル271、抵抗素子またはトランジスタなど一定の導電率を有する素子285を有するレプリカメモリセル284、電圧比較器274、出力端子275を備えている。レプリカメモリセル284は、メモリセル271のスイッチ素子258を、導電率が一定の素子285で置き換えた構成を有する。
図25に示す回路においては、スイッチ素子258を有するメモリセル271と、導電率が固定のレプリカメモリセル284の双方に同じ電流を流し、両者に現れる電圧の大小関係を電圧比較器274で比較することで、メモリセル271の導電率とレプリカメモリセル284の導電率のいずれが高いかを判別することができる。例えば、レプリカメモリセル284の導電率を、メモリセル271をプログラムする際の目標となる導電率に設定することで、メモリセル271の導電率が目標の導電率に到達したか否かを判別できる。かかるプログラミング回路により、メモリセルの導電率が所望の値にプログラムされたかを判別することができる。さらに、導電率が異なるレプリカメモリセル284を複数備えることで、導電率が異なる複数のレプリカメモリセルと、メモリセル271の導電率の比較を行うことが可能となり、導電率の違いを、アナログ情報や多値情報に割り当てることで、アナログ情報や多値情報の判別が可能となる。レプリカメモリセル284が備える抵抗素子285のインピーダンスは、好ましくは、スイッチ素子258のオン抵抗よりも大きく、オフ抵抗よりも小さく設定される。
図26は、本発明の配線構造を適用したメモリセルの書き込み回路または読み出し回路の別の実施例の構成を示す図である。図26を参照すると、本発明のメモリセルの書き込みまたは読み出し回路は、電圧源290、スイッチ素子258を有するメモリセル271、参照電流292、電流比較器293、出力端子294を備えている。
図26に示す回路では、電圧源290からメモリセル271に電圧を印加することで、スイッチ素子258の導電率に依存して電流が流れる。その電流が参照電流292よりも大きいか小さいかを電流比較器293で比較することで、スイッチ素子の導電率が所望の導電率よりも高いか低いかを判別することができる。
図27は、図26のメモリセルの書き込みまたは読み出し回路において、参照電流をレプリカメモリセルで発生させる一例を示す図である。図27を参照すると、本発明のメモリセルの書き込みまたは読み出し回路は、2つの電圧源290、スイッチ素子258を有するメモリセル271、抵抗素子またはトランジスタなど一定の導電率を有する素子285を有するレプリカメモリセル284、電流比較器293、出力端子294を備えている。
図27に示す回路では、メモリセル271とレプリカメモリセル284に同じ電圧を印加し、両者に流れる電流の大小関係を比較することで、メモリセル271の導電率がレプリカメモリセル284の導電率よりも高いか低いかを判別する。レプリカメモリセル284に目標値となる導電率の素子を配置しておくことで、メモリセル271が目標の導電率に到達したか否かを判別できる。さらに、メモリセル271の導電率をアナログ情報または多値情報に対応させ、導電率が異なるレプリカメモリセルを複数個用意し、それらのレプリカメモリセルとメモリセル271の導電率を比較することで、メモリセルの導電率をアナログ的に扱い、アナログ情報や多値情報の判別が可能となる。
図28は、図25に示したメモリの書き込み回路及びメモリセルアレイの詳細な回路構成の一例を示す図である。図28を参照すると、メモリの書き込み回路は、データ入力450をデータ端子Dに入力し書き込みパルス451をクロック端子に入力し正転出力(Q)466と反転出力(/Q)452を出力する非同期リセット入力付きD型フリップフロップ471と、データ入力450をインバータ478で反転した信号をデータ端子Dに入力し書き込みパルス451をクロック端子に入力し正転出力(Q)453と反転出力(/Q)467を出力する非同期リセット入力付きD型フリップフロップ472と、ソースが電源に接続され、ゲートに、D型フリップフロップ471の反転出力452を入力するpMOSスイッチ(トランジスタ)454と、ソースが接地され、ゲートにD型フリップフロップ472の正転出力453を入力するnMOSスイッチ455と、pMOSスイッチ454のドレインに接続されたpMOSカレントミラー回路456と、nMOSスイッチ455のドレインに接続されたnMOSカレントミラー457を備えている。
メモリセルアレイ461は、ビット線255、参照線459、プレート線257、複数のメモリセル271から構成されている。メモリセル271は、アクセストランジスタ251と、スイッチ素子258を有し、アクセストランジスタ251のゲートはワード線に接続され、ソース及びドレインの一方はビット線に接続され、ソース及びドレインの他方はスイッチ素子258の一端に接続され、スイッチ素子258の他端は、プレート線257に接続されている。
メモリの書き込み回路は、2つのレプリカメモリセル(図25参照)を有し、第1のレプリカメモリセル284aは、ダミーアクセストランジスタ474とリファレンス抵抗素子285aを有し、第2のレプリカメモリセル284bは、ダミーアクセストランジスタ477とリファレンス抵抗285bを備えている。第1のレプリカメモリセル284aのダミーアクセストランジスタ474と、第2のレプリカメモリセル284bのダミーアクセストランジスタ477は、ソースとドレインの一方が参照線459に共通に接続され、ゲートには、データ入力450とデータ入力450をインバータ479で反転した信号がそれぞれ入力されている。第1のレプリカメモリセル284aのスイッチ素子285aと第2のレプリカメモリセル284bのスイッチ素子285bの第1及び第2の端子の一方は、プレート線257に共通に接続され、第1及び第2の端子の他方は、ダミーアクセストランジスタ474、477のソースとドレインの他方に接続されている。プレート線257とグランド間には、nMOSスイッチ468が挿入され、nMOSスイッチ468のゲートには、D型フリップフロップ471の正転出力466が入力され、オンのときプレート線257をグランド電位とする。プレート線257と電源VDD間には、pMOSスイッチ469が挿入され、pMOSスイッチ469のゲートには、D型フリップフロップ472の反転出力467が入力され、オンのときプレート線257を電源電位とする。参照線459は、pMOSカレントミラー回路456とnMOSカレントミラー回路457のトランジスタ対の一方のトランジスタ(ソースとドレインが接続されたトランジスタ)のドレインに接続されている。ビット線255は、pMOSカレントミラー回路456とnMOSカレントミラー回路457のトランジスタ対の他方のトランジスタのドレインに接続されている。選択されたメモリセル271が接続されるビット線255に流れる電流と、選択されたレプリカメモリセル284が接続される参照線459に流れる電流(ミラー電流)は等しく設定される。電圧比較回路274は、ビット線255と参照線459の電圧を比較し、出力は、D型フリップフロップ471、472のリセット端子Rに接続されている。
スイッチ素子258は、図1または図2に示した、配線層に形成されたスイッチ素子である。ダミーアクセストランジスタ474、477は、メモリセル271のアクセストランジスタ251と同じ特性をもつ素子である。リファレンス抵抗素子285a、285bは、メモリセル271のスイッチ素子258の抵抗値を設定する際の目標となる抵抗値を持つ素子であり、リファレンス抵抗285bのインピーダンスは、リファレンス抵抗285aのインピーダンスよりも大きい。図28に示す書き込み回路の動作について説明する。
図28に示す回路において、データ入力450に”1”を設定して書き込み動作を行う場合、スイッチ素子258のインピーダンスを、リファレンス抵抗の抵抗値よりも低くなるようにプログラミングを行う。例えば、データ450を”1”に設定し、書き込みパルス入力451に、立ち上がりエッジが入力されると、出力452が”0”に、出力466が”1”になる。すると、pMOSスイッチ454がオンとなり、pMOSカレントミラー回路456に電流が供給される。また、nMOSスイッチ468がオンとなり、プレート線257が接地電位となる。
ワード線256(選択ワード線256はHレベル、他のワード線はLレベル)によって選択されたメモリセル271のアクセストランジスタ251はオン状態であり、pMOSカレントミラー回路456から供給される電流は、ビット線255を経由し、メモリセル271のアクセストランジスタ251と、スイッチ素子258を経由して、プレート線257に流れる。また、データ450を”1”に設定したとき、第1のレプリカメモリセル284aのアクセストランジスタ474がオンし、第1のレプリカメモリセル284aが選択される。
このとき、選択されたメモリセル271のスイッチ素子258には、順方向バイアスが印加されるので、選択されたメモリセル271のスイッチ素子258のインピーダンスは徐々に小さくなる。
一方、pMOSカレントミラー回路456から供給される電流は、参照線459を経由して、レプリカメモリセル284aに流れ込む。pMOSカレントミラー回路456は、メモリセル271に流れ込む電流と同じ電流を、参照線459からレプリカメモリセル284aに流し込むため、抵抗素子(リファレンス抵抗)285aのインピーダンスが、メモリセル271のスイッチ素子258のインピーダンスよりも小さければ、参照線459の電圧は、ビット線255の電圧よりも小さくなり、逆に、リファレンス抵抗285aのインピーダンスがメモリセル271のスイッチ素子258のインピーダンスよりも大きければ、参照線459の電圧はビット線255の電圧よりも大きくなる。
このため、メモリセル271のスイッチ素子258に、順方向バイアスが印加され、メモリセル271のスイッチ素子258のインピーダンスが徐々に小さくなり、メモリセル271のスイッチ素子258のインピーダンスがリファレンス抵抗285aのインピーダンスよりも低くなったところで、電圧比較器274の出力470が”1”になる。
すると、D型フリップフロップ471の出力がリセットされ、反転出力(/Q)452が”1”に、正転出力(Q)466が”0”となり、pMOSスイッチ454がオフし、ビット線255への電流の供給が停止され、同時に、nMOSスイッチ468がオフし、プレート線257もオープン状態となり、スイッチ素子258のプログラミングが終了する。
逆に、データ450を”0”に設定し、書き込みパルス入力451に立ち上がりエッジが入力されると、D型フリップフロップ472の正転出力453が”1”に、反転出力467が”0”になる。すると、nMOSスイッチ455がオンし、nMOSカレントミラー457が活性化される。また、pMOSスイッチ469がオンとなり、プレート線257に電流が供給される。
ワード線256により任意に選択されたメモリセル271のアクセストランジスタ251はオン状態であり、pMOSスイッチ469からプレート線257を介して供給される電流は、選択されたメモリセル271のスイッチ素子258とアクセストランジスタ251を経由してビット線255に流れる。
このとき、メモリセル271のスイッチ素子258には逆方向バイアスが印加されるので、スイッチ素子258のインピーダンスは徐々に大きくなる。
一方、選択された第2のレプリカメモリセル284b(データ入力450:”0”でダミーアクセストランジスタ477がオンされる)から参照線459を経由して、nMOS型カレントミラー回路457に流れ込む。ここで、nMOS型カレントミラー回路457は、メモリセル271に流れる電流と同じ電流を、レプリカメモリセル284bにも流し込もうとする。このため、リファレンス抵抗285bのインピーダンスがスイッチ素子258のインピーダンスよりも大きければ、参照線459の電圧はビット線255の電圧よりも小さくなり、逆に、リファレンス抵抗285bのインピーダンスがスイッチ素子258のインピーダンスよりも小さければ、参照線459の電圧はビット線255の電圧よりも大きくなる。
このため、メモリセル271のスイッチ素子258に逆方向バイアスが印加され、スイッチ素子258のインピーダンスが徐々に大きくなり、スイッチ素子258のインピーダンスがリファレンス抵抗285bのインピーダンスよりも高くなったところで、比較器274の出力470が”1”になる。すると、D型フリップフロップ472の出力がリセットされ、正転出力453は”0”、反転出力467は”1”となり、pMOSスイッチ469がオフし、プレート線257への電流の供給が停止され、同時に、nMOSスイッチ455がオフし、ビット線255もオープン状態となり、スイッチ素子258のプログラミングが終了する。
このようにして、図28に示した回路構成により、データ450に”1”を設定して書き込み動作を行った場合には、スイッチ素子258のインピーダンスが、リファレンス抵抗285aのインピーダンスに設定され、データ450に”0”を設定して書き込み動作を行った場合には、スイッチ素子258のインピーダンスが、リファレンス抵抗285bのインピーダンスに設定される。
図28に示した回路を用いることで、スイッチ素子258を任意のインピーダンスに精度良く調整できる。このため、多値情報の書き込みや、書き込み動作による素子へのストレスを軽減、特性のばらつきが大きい素子に対してプログラミング動作を保障することなどに効果がある。
図29は、本発明の配線構造を適用したメモリセルの構成の一実施例を示す図である。図29を参照すると、本発明のメモリセルは、交差接続した二つのインバータ(pMOSトランジスタMP1、nMOSトランジスタMN1と、pMOSトランジスタMP2、nMOSトランジスタMN2)からなるフリップフロップを有するSRAMセル310、2つのスイッチ素子311a、311b、制御線313を備えている。317a、317bはアクセストランジスタであり、ゲートにはワード線(不図示)が接続され、ワード線が高電位のときオンし、フリップフロップをビット線対(不図示)に接続する。スイッチ素子311a、311bは、図1の103または図2の118に示したような構造であり、内部に電解質材料やカルコゲナイド材料を備えている。スイッチ素子311a、311bのオン抵抗は、二つのインバータを構成するpMOSトランジスタMP1、MP2のオン抵抗よりも高い。
図29の回路では、電源が供給されている時には、通常のSRAMとして動作し、電源がオフの時、スイッチ素子311に情報を導電率として記憶する。再び、電源がオンになった場合には、スイッチ素子311の導電率の違いにより、ノード314および315の電圧レベルが設定される。例えば、電源がオンの状態で、端子314が”H”(電源電圧)、端子315が”L”(接地)の状態であったとする。ここで、制御線313を電源電圧と接地電圧の中間の電位にすることで、スイッチ素子311aには順方向バイアスが、スイッチ素子311bには逆方向バイアスが印加される。この状態で、電源電圧をオフにすると、SRAMセルの記憶内容は失われるが、スイッチ素子311aは導電率が高い状態を、スイッチ素子311bは導電率が低い状態を維持している。
次に再び電源が投入されるときに、制御線313を電源電圧と等しくなるように設定することで、SRAMセルの端子314は高い導電率で電源に接続され、端子315が低い導電率で電源に接続されるため、SRAMセルの端子314と315の電圧にはアンバランスが生じ、このアンバランスがSRAMセルのインバータの交差接続構成により増幅され、最終的にノード314には”H”が設定され、ノード315には”L”が設定される。
このようにして、本発明のメモリセルは、電源を断しても記憶を保持し、電源を再投入した際に、元の記憶内容を修復させるSRAMセルを実現することが可能である。
さらに、スイッチ素子311は、配線層に形成されるため、通常のSRAMセルに対して、メモリセル面積を増やすことなく、不揮発メモリを実現できる。
図30は、本発明の配線構造を適用したメモリセルの他の実施例の構成を示す図である。図30を参照すると、本発明のメモリセルは、SRAMセル310、2つのトランジスタ321a、321b、2つのスイッチ素子322a、322b、バイアス電圧を与える制御線313を備えている。スイッチ素子322a、322bは、図1の103または図2の118に示したものと同一の構成とされ、内部に電解質材料やカルコゲナイド材料を備えている。
図30の回路の動作は、図29に示した回路の動作と同じであり、電源が投入されている間は、通常のSRAMとして動作し、電源が断されると、スイッチ素子322が導電率を変化させることで情報を記憶し、電源が再投入されると、元の記憶内容を書き戻す。
ただし、図30の回路は、図29の回路と異なり、ノード314、315と、スイッチ素子322a、322b間にそれぞれ、トランジスタ321a、321bが付加されている。
通常動作時は、これらのトランジスタ321a、321bをオフ状態にして、スイッチ素子322が動作に影響を及ぼさないようにすることが可能である。電源を切る直前に、これらのトランジスタ321a、321bをオンにして、スイッチ素子322a、322bに情報を書き込み、電源を再投入した際にも、SRAMセル310に記憶を書き戻すまでの間、これらのトランジスタ321a、321bをオンにすることで、スイッチ素子322a、322bの導電率の違いにより、ノード314および315に、電圧のアンバランスを生じさせる。このアンバランスが、SRAMセルの交差接続されたフリップフロップにより増幅され、最終的に、ノード314と315に、元の記憶内容が設定される。このようにして、本発明のメモリセルは、電源を切っても記憶を保持し、電源を再投入した際に元の記憶内容を修復させるSRAMセルを実現することが可能である。
図31は、本発明の配線構造の一実施例を示す図である。図31を参照すると、本発明の配線構造は、横方向の配線480、縦方向の配線481、縦方向の配線と横方向の配線の交点に配置されたスイッチ素子232(例えば図19の232参照)を備えている。スイッチ素子232は、図1のスイッチ素子103または図2のスイッチ素子118と同様、配線層に形成されたスイッチ素子を有し、図19に示したように、4方向の配線の接続を任意に切り替えることが出来る。スイッチ素子232をプログラムすることで、任意の配線483を形成することができる。
図32は、本発明の配線構造とスイッチ素子の配置の他の例を示す図である。図32を参照すると、本発明の配線構造は縦方向の配線543、横方向の配線544、縦配線543と横配線544の交点に配置されたスイッチ素子540、横配線544に配置されたスイッチ素子541、縦配線543に配置されたスイッチ素子542を備えている。図32において、スイッチ素子540〜542は、図1または図2に示した構造を有する。縦配線543と横配線544は、互いに異なる配線層に形成されている場合と、同じ層に形成されている場合がある。縦配線543と横配線544が異なる配線層に形成される場合には、横配線544同士を接続するスイッチ素子541と縦配線543同士を接続するスイッチ素子542が図2で示された構造であり、縦配線543と横配線544を接続するスイッチ素子540が、図1に示したように異なる配線層同士を接続するビアの形状を有している。
一方、縦配線543と横配線544が同じ配線層に形成される場合には、スイッチ素子540、541、542が、図2で示された構造を有する。図示したような層構造と、スイッチ素子の配置により、図31に示したような任意の配線をプログラムできる集積回路を構成することができる。なお、同一配線層の配線間に配線される配線間のスイッチ素子は、第1、第2配線層についてみると、1μm〜10mm程度としてもよい。層の配線抵抗が異なる場合、配線抵抗の相対的に小さい配線層の方が、配線抵抗の相対的に大きい配線層よりもスイッチ素子とスイッチ素子の間隔は長く設定される。縦配線543と横配線544の配線間隔は、例えば1μm〜10μm程度としてもよい。
図33は、図32の配線構造およびスイッチの配置を示す図であり、縦配線543と横配線544が異なる層に形成された構成例を立体的に表したものである。
図34は、本発明の配線構造の断面の一実施例を示す図である。図34を参照すると、本発明の配線構造は、半導体基板100、半導体基板と配線層または層が異なる配線層同士を接続するビア126、配線層111、112、550、配線層中に形成されたスイッチ素子118、スイッチ素子の導電率を制御するための制御ゲート116を備えている。スイッチ素子は、図2に示した構造であり、制御ゲート116の電圧を制御することで、任意にオン状態118dまたはオフ状態118cに設定することができる。
一般に、集積回路の配線層は、半導体基板に近い配線層が局所的な配線に用いられ、上層の配線ほど大きなブロック同士を接続するグローバル配線として用いられる。このように、集積回路の配線は層ごとに信号を伝播する距離が異なる階層構造を成している。
本発明に係る配線構造では、配線の接続と開放を任意にプログラムすることができるので、配線の階層構造を任意にプログラムすることができる。この特徴を応用することで、必要に応じて無駄の無い最適な回路構成を実現することができる。
図35は、本発明の配線構造を用いたメモリセルの構成の一実施例を示す図である。図35を参照すると、このメモリセルは、第1のスイッチ素子560と、第2のスイッチ素子561と、入出力端子562と、第1の電圧源563と、第2の電圧源564を備えている。スイッチ素子561、562は、図1または図2に示したスイッチ素子である。スイッチ素子561、562は共に、図の上側の端子に負の電圧、下側の端子に正の電圧(以下、「順方向バイアス」と呼ぶ)を印加すると、スイッチがオン状態になり、逆向きの電圧(「逆方向バイアス」と呼ぶ)を印加するとオフ状態になる。また、第1の電圧源563の電圧は、第2の電圧源564の電圧よりも高く設定されている。
図35に示す回路において、入出力端子562に、第1の電圧源563の電圧よりも高い電圧を入力すると、スイッチ素子560には順方向バイアスが印加される。また、スイッチ素子561には逆方向バイアスが印加されるので、スイッチ素子560がオン状態になり、スイッチ素子561がオフ状態になる。この状態で、入出力端子562を開放すると、入出力端子562には、第1の電圧源563の電圧が現れる。逆に、入出力端子562に、第2の電圧源564の電圧よりも低い電圧を入力すると、スイッチ素子561には、順方向バイアスが印加される。また、スイッチ素子560には、逆方向バイアスが印加されるので、スイッチ素子561がオン状態になり、スイッチ素子560がオフ状態になる。この状態で、入出力端子562を開放すると、入出力端子562には、第2の電圧源564の電圧が現れる。また、入出力端子562を開放した状態で電源を切ると、2つのスイッチ素子は状態を保つことができる。ここで、第1の電圧源563の電圧が論理値”1”に対応する電圧であり、第2の電圧源564の電圧が論理値”0”に対応する電圧であると想定すると、この回路は、不揮発メモリ回路として機能する。
図36は、本発明のスイッチ素子を用いて、異なる2つの配線層を接続した配線構造の立体構造を模式的に示した図である。図36を参照すると、本発明の配線構造は、第1の配線層101、第2の配線102、第1の配線101と第2の配線102を接続するスイッチ素子103を複数個備える。複数個のスイッチ素子103を並列に配置することで、スイッチ素子が1個の場合と比べ、例えば電流によるストレス(エレクトロマイグレーション)に対する耐性が高くなるほか、スイッチ素子の1つまたは複数が破壊された場合でも動作が可能となり、さらに素子の欠陥による製造歩留まりの悪化を改善することが可能である。
[別の実施例]
図38は、本発明の配線構造の別の実施例を示す図である。図38には、FPGAなどで用いられている再構成可能なスイッチ回路が示されている。図38を参照すると、再構成可能なスイッチ回路は、半導体基板1100と該基板上に形成された論理回路、演算回路、アナログ回路、メモリ回路などの電子回路1120、2端子間の接続をオンまたはオフに変更可能なスイッチ回路1121、電子回路1120とスイッチ回路1121を接続するためのコンタクトまたはビア1122および配線1123から構成される。スイッチ回路1121がオン状態にプログラムされていれば、電子回路1120aと1120bが互いに接続され、スイッチ回路1121がオフ状態にプログラムされていれば、電子回路1120aと1120bの接続は断たれる。
図39は、図38の該スイッチ回路1121の構成例を示す図である。図39(a)には、SRAM(スタティックランダムアクセスメモリ)1124と、パストランジスタ1125で、スイッチ回路1121を構成した例が示されており、図39(b)には、フリップフロップ回路1128とパストランジスタ1125でスイッチ回路1121を構成した例が示されている。
これらのトランジスタを用いた回路によって、スイッチ回路1121を構成する場合は、図38に示したように、スイッチ回路1121を半導体基板1100に形成する必要があり、該スイッチ回路が半導体基板上で一定の面積を占有することになる。FPGAでは一般的に、スイッチ回路が半導体基板の半分程度の面積を占有しており、チップ面積が大きくなり、コスト増加の主因となっている。
図40は、本発明による再構成可能なスイッチ回路の実施例の構成を示す図である。図40(a)は、図1を参照して説明した2端子素子を用いたスイッチ回路であり、図40(b)は、図2を参照して説明した3端子素子を用いたスイッチ回路である。
図40(a)を参照すると、本実施例の再構成可能なスイッチ回路は、半導体基板1100と該基板上に形成された論理回路、演算回路、アナログ回路、メモリ回路などの電子回路1120、2端子間の接続をオンまたはオフに変更可能なスイッチ機能を有するビア1103、該ビア1103と電子回路1120を接続するためのコンタクト1122および配線1123から構成される。該ビア1103がオン状態にプログラムされていれば、電子回路1120aと1120bが互いに接続され、該ビア1103がオフ状態にプログラムされていれば、電子回路1120aと1120bの接続は断たれる。
また、図40(b)を参照すると、本実施例の再構成可能なスイッチ回路は、半導体基板1100と該基板上に形成された論理回路、演算回路、アナログ回路、メモリ回路などの電子回路1120、金属イオンを含有する電解質材料1113、該電解質材料と接するように配置されているゲート電極1116、該電解質材料1113と電子回路1120を接続するためのコンタクト1122および配線1123から構成される。電解質材料1113中の、配線1123aおよび配線1123bと接する部分に金属物質が析出し、これら金属析出物同士が接触して、配線1123aと配線1123bの間がオン状態にプログラムされていれば、電子回路1120aと1120bが互いに接続され、該電解質材料中に配線1123aと1123bを接続させるための金属析出物が十分に存在せず、配線1123aと1123bの間がオフ状態にプログラムされていれば、電子回路1120aと1120bの接続は断たれる。
図40を参照して説明した実施例の再構成可能なスイッチ回路を用いることにより、半導体基板1100上に回路を形成することなく、配線間のスイッチ機能を提供することが可能であり、FPGAなどのプログラム可能な半導体集積回路において、チップ面積を大幅に減らすことが可能であり、低コストでプログラム可能な半導体集積回路を実現することができる。
図41は、図1を参照して説明したスイッチ機能を有するビア(以下、「2端子スイッチ素子」と呼ぶ)のプログラムを行うための回路の一実施例を示す図である。図41を参照すると、この実施例のプログラミング回路は、2端子スイッチ素子1103、pMOSトランジスタ1203、1205、nMOSトランジスタ1204、1206、制御入力端子1207、1208、1209、1210、電圧源1211、1212から構成される。電圧源1211および1212から供給される電圧は、論理信号の伝播に用いる信号電圧よりも高いものとする。トランジスタ1203、1204、1205、1206は、論理信号を扱う通常のトランジスタよりも、高い電圧を扱うため、耐圧が高いトランジスタであることが好ましい。また、2端子スイッチ素子1103は、端子1201(以下、「アノード」と呼ぶ)の電圧が、端子1202(以下、「カソード」と呼ぶ)の電圧よりも高い(以下、「フォワードバイアス」または「順方向バイアス」と呼ぶ)ときにオン状態にプログラムされ、アノード1201の電圧が、カソード1202の電圧よりも低い(以下、「リバースバイアス」または「逆方向バイアス」と呼ぶ)ときにオフ状態にプログラムされるものとする。
ここで、端子1207と1208をL(low level)に、端子1209と1210をH(high level)に設定すると、スイッチ素子1103のアノード1201には、電圧源1211から電圧が供給され、カソード1202は接地され、スイッチ素子1103はフォワードバイアスの状態となる。ここで、電圧源1211から供給される電圧が、スイッチ素子1103のしきい値電圧よりも高ければ、スイッチ素子1103はオン状態にプログラムされる。また、端子1207と1208をHに、端子1209と1210をLに設定すると、スイッチ素子1103のアノード1201は接地され、カソード1202は電圧源1212から電圧が供給され、スイッチ素子1103はリバースバイアスの状態になる。ここで、電圧源1212から供給される電圧が、スイッチ素子1103のしきい値電圧よりも高ければ、スイッチ素子1103はオフ状態にプログラムされる。
このように、図41に示した回路を用いることで、2端子スイッチ素子1103をオン状態またはオフ状態の任意の状態にプログラムすることが可能である。
プログラム可能な2端子素子としては、従来から、アンチヒューズがある。しかしながら、アンチヒューズには極性が無いため、プログラミング回路のバイアスは単方向にしか印加できない構造を有する。
本発明のスイッチ素子は、極性を有しており、プログラムするときには極性に注意する必要がある。また、本発明のスイッチ素子は再プログラムが可能であるが、再プログラムを行うためには、双方向からバイアス電圧を印加するための回路が必要となる。
図41に示した回路は、再プログラム可能であるというこのスイッチの特徴を利用するために、不可欠な基本回路である。
また、アンチヒューズでは、一度オン状態にしたスイッチをオフ状態に戻すことが出来ないが、本発明のスイッチでは、オン状態のスイッチに対して適切な電圧を印加することで、オフ状態に戻すことができる。ここで、オン状態のスイッチ素子をオフ状態にするために、スイッチ素子の端子間に電圧を印加すると、端子間に電流が流れる。
本発明のスイッチ素子では、通常、オン抵抗が低いために、スイッチの端子間に電圧を印加しようとすると、スイッチに流れる電流は大きくなる。そのため、オン状態のスイッチ素子をオフ状態に戻すためには、図41のトランジスタ1204および1205には電流駆動能力が高いトランジスタが必要となる。この点でも、アンチヒューズのプログラミング回路とは異なる。
図42は、並列に接続された複数個の2端子スイッチ素子をプログラムするための回路の一実施例の構成を示す図である。図42を参照すると、この実施例のプログラミング回路は、2端子スイッチ素子1103、pMOSトランジスタ1203、1205、nMOSトランジスタ1204、1206、制御入力端子1207、1208、1209、1210、電圧源1211、1212、選択トランジスタ1215、制御入力端子1216を備えて構成されている。
ここで、端子1207と1208をL(lowレベル)に、端子1209と1210をH(highレベル)に、端子1216aと端子1216cをLに、端子1216bをHに設定すると、スイッチ素子1103bのアノード1201bには、電圧源1211から電圧が供給され、カソード1202は接地され、スイッチ素子1103bはフォワードバイアスの状態となる。ここで、電圧源1211から供給される電圧が、スイッチ素子1103のしきい値電圧よりも高ければ、スイッチ素子1103bはオン状態にプログラムされる。また、選択トランジスタ1215aと1215cはオフ状態のため、電圧源1211からの電圧は遮断され、スイッチ素子1103aと1103cのアノード端子1201aおよび1201cには電圧が印加されないので、スイッチの状態は変化しない。また、端子1207と1208をHに、端子1209と1210をLに、端子1216aと端子1216cをLに、端子1216bをHに設定すると、スイッチ素子1103bのアノード1201bは接地され、カソード1202は電圧源1212から電圧が供給され、スイッチ素子1103bはリバースバイアスの状態になる。ここで、電圧源1212から供給される電圧が、スイッチ素子1103のしきい値電圧よりも高ければ、スイッチ素子1103bはオフ状態にプログラムされる。
このように、図42に示した回路を用いることにより、並列に接続された複数の2端子スイッチ素子1103a〜1103cを、オン状態またはオフ状態の任意の状態にプログラムすることが可能である。
図43は、図2で説明した3端子スイッチ素子118の、プログラムを行う回路の一実施例を示している。図43を参照すると、この実施例のプログラミング回路は、3端子スイッチ素子1118、pMOSトランジスタ1220、1222、1224、nMOSトランジスタ1221、1223、1225、制御入力端子1226、1227、1228、1229、1230、1231、電圧源1232、1233、1234から構成される。また、3端子スイッチ素子1118は、端子1116(以下、「ゲート」と呼ぶ)の電圧が、端子1114および端子1115(以下、「ソース」、「ドレイン」と呼ぶ)の電圧よりも高い(以下、「フォワードバイアス」または「順方向バイアス」と呼ぶ)ときにオン状態にプログラムされ、ゲート1116の電圧が、ソース1114およびドレイン1115の電圧よりも低い(以下、「リバースバイアス」または「逆方向バイアス」と呼ぶ)ときにオフ状態にプログラムされるものとする。
ここで、端子1230と1231をLに、端子1226、1227、1228、1229をHに設定すると、スイッチ素子1118のゲート1116には、電圧源1234から電圧が供給され、ソース1114とドレイン1115は接地され、スイッチ素子1118はフォワードバイアスの状態となる。
ここで、電圧源1234から供給される電圧が、スイッチ素子1118のしきい値電圧よりも高ければ、スイッチ素子1118はオン状態にプログラムされる。また、端子1230と1231をHに、端子1226、1227、1228、1229をLに設定すると、スイッチ素子1118のゲート1116は接地され、ソース1114およびドレイン1115は電圧源1232および1233から電圧が供給され、スイッチ素子1118はリバースバイアスの状態になる。
ここで、電圧源1232および1233から供給される電圧が、スイッチ素子1118のしきい値電圧よりも高ければ、スイッチ素子1118はオフ状態にプログラムされる。
このように、図43で説明した回路を用いることで、3端子スイッチ素子1118をオン状態またはオフ状態の任意の状態にプログラムすることが可能である。
図44は、並列に接続された複数の2端子スイッチ素子1103のプログラムを行う回路の一実施例の構成を示したものである。図44を参照すると、この実施例のプログラミング回路は、2端子スイッチ素子1103a、1103b、1103c、1103d、pMOSトランジスタ1252、1258、nMOSトランジスタ1255、制御入力端子1251、1254a、1254b、1254c、1254d、1257、電圧源1253、1259、配線1250、1256a、1256b、1256c、1256dから構成される。1201は2端子スイッチ素子1103のアノード端子であり、1202a、1202b、1202c、1202dはそれぞれ、スイッチ素子1103a、1103b、1103c、1103dのカソード端子である。
以下では、一例として、スイッチ素子1103bをオン状態にプログラムする場合を説明する。初期状態では、入力1251と入力1257はHレベル、入力1254a、1254b、1254c、1254dはLレベルである。入力1251をLレベルにすると、配線1256a、1256b、1256c、1256dにそれぞれ、トランジスタ1252を通して、電圧源1253から電圧が供給される。ここでは、電圧源1253から供給される電圧をVpp/2とする。
次に、入力1251をHレベルにし、入力1254bをHレベルにする。すると、配線1256bはトランジスタ1255bを介して接地される。ここまでの操作により、配線1256a、1256c、1256dの電圧はVpp/2、配線1256bの電圧は0(グランド電位)となる。
次に、入力1254bをLレベルに戻し、入力1257をLレベルにすると、2端子スイッチ素子1103のアノード1201には、トランジスタ1258を介して電圧源1259の電圧が供給される。ここで、電圧源1259の電圧をVppとすると、スイッチ素子1103a、1103c、1103dのカソード端子1202a、1202c、1202dの電圧はVpp/2であることから、これらスイッチ素子の2端子間の電位差は、Vpp/2となり、スイッチ素子1103bのカソード端子1202bの電圧は0であることから、スイッチ素子1103bの2端子間には、電位差Vppが印加される。
ここで、この2端子素子のしきい値が、Vpp/2とVppの間にあると仮定すると、スイッチ素子1103bは2端子間の電位差がしきい値を超えているため、オン状態にプログラムされ、スイッチ素子1103a、1103c、1103dの2端子間の電位差は、しきい値を超えていないため状態は変化しない。以上のように、並列に接続された複数の2端子スイッチ素子の中から、任意に選択したスイッチ素子をオン状態にプログラムすることができる。また、通常動作時に論理信号の伝播のために用いる電圧は、2端子素子1103のしきい値電圧よりも低いことが好ましい。
図45は、マトリクス状に縦横に並列に接続された複数の2端子スイッチ素子(以下、「スイッチマトリクス」と呼ぶ)のプログラムを行う回路の一実施例の構成を示したものである。図45を参照すると、本実施例のプログラミング回路は、2端子スイッチ素子1103aa、1103ab、1103ac、1103ad、1103ba、1103bb、1103bc、1103bd、1103ca、1103cb、1103cc、1103cd、pMOSトランジスタ1252、1258a、1258b、1258c、nMOSトランジスタ1255a、1255b、1255c、1255d、制御入力端子1251、1254a、1254b、1254c、1254d、1257a、1257b、1257c、電圧源1253、1259、配線1250a、1250b、1250c、1256a、1256b、1256c、1256dから構成される。
1201は2端子スイッチ素子1103のアノード端子であり、1202はスイッチ素子1103のカソード端子である。
以下では、一例として、スイッチ素子1103bbをオン状態にプログラムする場合について説明する。初期状態では、入力1251と入力1257a、1257b、1257cはHレベル、入力1254a、1254b、1254c、1254dはLレベルである。入力1251をLレベルにすると、配線1256a、1256b、1256c、1256dにそれぞれ、トランジスタ1252を通して、電圧源1253から電圧が供給される。ここで、電圧源1253から供給される電圧をVpp/2とすると、配線1256a、1256b、1256c、1256dの電圧は全てVpp/2にチャージアップされる。
次に、入力1251をHレベルにし、入力1254bをHレベルにする。すると、配線1256bはトランジスタ1255bを介して接地される。ここまでの操作により、配線1256a、1256c、1256dの電圧はVpp/2、配線1256bの電圧は0となる。次に、入力1254bをLレベルに戻し、入力1257bをLレベルにすると、2端子スイッチ素子1103ba、1103bb、1103bc、1103bdのアノード1201bには、トランジスタ1258bを介して電圧源1259の電圧が供給される。ここで、電圧源1259の電圧をVppとすると、スイッチ素子1103ba、1103bc、1103bdのカソード端子1202ba、1202bc、1202bdの電圧はVpp/2であることから、これらスイッチ素子の2端子間の電位差は、Vpp/2となり、スイッチ素子1103bbのカソード端子1202bbの電圧は0であることから、スイッチ素子1103bbの2端子間には電位差Vppが印加される。
ここで、この2端子素子のしきい値が、Vpp/2とVppの間にあると仮定すると、スイッチ素子1103bbは2端子間の電位差がしきい値を超えているためオン状態にプログラムされ、スイッチ素子1103ba、1103bc、1103bdの2端子間の電位差はしきい値を越えていないため状態は変化しない。
また、トランジスタ1258aと1258cはオンにさせていないため、スイッチ素子1103aa、1103ab、1103ac、1103ad、1103ca、1103cb、1103cc、1103cdのアノード端子1201aと1201cの電圧は0であり、これらスイッチ素子の2端子間にはVpp/2以上の電位差が生じないため、これらのスイッチのプログラミング状態も変化しない。
以上のように、並列に接続された複数の2端子スイッチ素子の中から、任意に選択したスイッチ素子をオン状態にプログラムすることができる。また、通常動作時に論理信号の伝播のために用いる電圧は、2端子素子1103のしきい値電圧よりも低いことが好ましい。
図46は、スイッチマトリクスの接続状態をオフ状態にする回路の一実施例の構成を示したものである。図46を参照すると、本実施例のプログラミング回路は、2端子スイッチ素子1103aa、1103ab、1103ac、1103ad、1103ba、1103bb、1103bc、1103bd、1103ca、1103cb、1103cc、1103cd、pMOSトランジスタ1260、nMOSトランジスタ1264a、1264b、1264c、制御入力端子1261、1263a、1263b、1263c、電圧源1262、配線1250a、1250b、1250c、1256a、1256b、1256c、1256dから構成される。1201は2端子スイッチ素子1103のアノード端子であり、1202はスイッチ素子1103のカソード端子である。
初期状態では、入力端子1261はHレベル、入力端子1263a、1263b、1263cは全てLレベルである。
ここで、スイッチ素子1103ba、1103bb、1103bc、1103bdをオフ状態にプログラムする場合について説明する。この場合、入力端子1261をLレベルに、入力端子1263bをHレベルに設定すると、配線1256a、1256b、1256c、1256dには、トランジスタ1260を通して電圧源1262の電圧が供給され、スイッチ素子1103ba、1103bb、1103bc、1103bdのカソード端子1202ba、1202bb、1202bc、1202bdには、電圧源1262の電圧が供給される。また、アノード端子1201bは、トランジスタ1264bを介して接地される。
この状態では、スイッチ素子1103ba、1103bb、1103bc、1103bdには、逆バイアスが印加され、2端子間の電圧がしきい値電圧を越えていれば、スイッチ素子1103ba、1103bb、1103bc、1103bdはオフ状態にプログラムされる。
また、スイッチ素子1103aa、1103ab、1103ac、1103ad、1103ba、1103bb、1103bc、1103bd、1103ca、1103cb、1103cc、1103cdの全てをオフ状態にプログラムする場合には、入力端子1261をLレベルに、入力端子1263a、1263b、1263cをHレベルに設定する。配線1256a、1256b、1256c、1256dにはトランジスタ1260を通して電圧源1262の電圧が供給され、全てのスイッチ素子1103のカソード端子1202aa、1202ab、1202ac、1202ad、1202ba、1202bb、1202bc、1202bd、1202ca、1202cb、1202cc、1202cdには電圧源1262の電圧が供給される。また、アノード端子1201a、1201b、1201cは、トランジスタ1264a、1264b、1264cを通して接地される。この状態では、全てのスイッチ素子1103に逆バイアスが印加され、2端子間の電圧がしきい値電圧を越えていれば、スイッチ素子1103aa、1103ab、1103ac、1103ad、1103ba、1103bb、1103bc、1103bd、1103ca、1103cb、1103cc、1103cdの全てがオフ状態にプログラムされる。
図47は、本発明のスイッチマトリクスおよび、そのプログラミング回路を用いた、プログラム可能な2入力論理回路の構成の一例を示す図である。図47を参照すると、本実施例のプログラム可能な論理回路は、プログラミング回路1270、1271、第1の配線1250a〜1250f、第2の配線1256a〜1256e、セレクタ回路1273、インバータ1274、制御信号入力端子1272、から構成され、配線1250と配線1256の各交差部には、2端子スイッチ素子1103が配置され、該スイッチ素子1103のアノード端子1201は第1の配線1250a〜1250fのいずれか1本に接続され、該スイッチ素子1103のカソード端子1202は、第2の配線1256a〜1256eのいずれか1本に接続されている。プログラミング回路1270、1271は、図45と図46を参照して説明した、プログラミング回路、消去回路に対応する。
セレクタ回路1273は、1256cの論理値が“L”(low)レベルの場合には、1256aの論理値を1256dに出力し、1256cの論理値が“H”(high)レベルの場合には、1256bの論理値を1256dに出力する。インバータ1274は、1256dの論理値を反転した値を1256eに出力する。
図47に示した回路は、配線1250と配線1256の接続を変更することで、任意の2入力論理関数を実現することができる。
図48は、セレクタとインバータを用いて、AND、NAND、OR、NOR、XOR、XNOR論理を実現した回路構成の一例を示す図である。例えば、AND論理を実現する場合、入力Aが“L”レベルの場合には0が選択されて出力されるので、出力は“L”レベルに、入力Aが“H”レベルの場合には、“B”が出力される。従って、AとBの両方が“H”レベルの場合のみ、“H”レベルが出力される。また、セレクタ1273の各入力端子に入力される値を変更することで、OR論理やXOR論理などを構成できる。
図48の回路において、例えば、配線1250aにAという論理値、配線1250bにBという論理値を与え、1250cは常に“L”レベル(論理値0)であると仮定する。ここで、プログラミング回路1270および1271を用いて、配線1250aと配線1256c、配線1250bと配線1256b、配線1250cと配線1256a、配線1256dと配線1250d、配線1256eと配線1250eがそれぞれ接続されるように、2端子スイッチ素子1103をプログラムすると、論理値Aと論理値Bが共に“H”レベルの場合のみ、配線1256dに“H”レベルが現れる。このようにして、AND論理が実現される。
また、同様に、配線1250aにAという論理値、配線1250bにBという論理値を与え、1250fは常に“H”レベル(論理値1)であると仮定して、配線1250aと配線1256c、配線1250fと配線1256a、配線1250cと配線1256b、配線1256dと配線1250d、配線1256eと配線1250eがそれぞれ接続されるように、2端子スイッチ素子1103をプログラムすると、論理値Aまたは論理値Bの少なくともどちらか一方が“H”レベルの場合に、配線1256dに“H”レベルが現れる。このようにして、OR論理が実現される。
以上説明したように、本発明の2端子スイッチマトリクスとそのプログラミング回路を用いることで、任意の2入力論理関数を実現できるプログラム可能な論理回路が構成される。
図47に示した回路では、セレクタ1273とインバータ1274は、出力をハイインピーダンスにすることができる3ステート回路を用いて、スイッチマトリクスのプログラミングを行う際には制御入力1272からの入力信号により、セレクタ1273とインバータ1274の出力をハイインピーダンスにして、これらの回路の出力が、配線1256dと配線1256eの信号レベルに影響を与えないようにすることが望ましい。
図49は、本発明に係る2端子スイッチマトリクスと、それを応用したプログラム可能な論理回路を組み合わせた、フィールドプログラマブル論理回路の一実施例の構成を示す図である。図49を参照すると、本実施例のフィールドプログラマブル論理回路は、セレクタ1273とインバータ1274を有する複数のプログラム可能な論理回路1281、縦方向の配線1256、横方向の配線1250、2端子スイッチ素子1103を有し、縦方向の配線1256と横方向の配線1250の各交点をオン状態またはオフ状態に任意にプログラム可能なスイッチマトリクス1283、2端子スイッチ素子1103を有し、横方向の配線1250とプログラム可能な論理回路1281の各端子の接続をオン状態またはオフ状態に任意にプログラム可能なスイッチマトリクス1284、横方向の配線、縦方向の配線1256同士または横方向の配線1250同士の接続をオン状態またはオフ状態の任意の状態にプログラム可能なスイッチ回路1282、から構成される。
スイッチマトリクス1283および1284は、縦方向の配線と横方向の配線の各交点に2端子スイッチ素子1103が配置され、該スイッチ素子の2つの端子がそれぞれ、縦方向の配線と横方向の配線に接続された構造を有する。
また、スイッチ1282は、スイッチ素子1103が、パストランジスタ1280のソースおよびドレイン端子と並列に接続された構造を有する。
複数個あるプログラム可能な論理回路1281に、それぞれ任意の論理関数をプログラムし、スイッチマトリクス1283、1284と、スイッチ1285の接続状態を変更して、複数個あるプログラム可能な論理回路1281の相互接続を任意にプログラムすることで、複雑な論理関数を有する論理回路を構成することができる。
図50は、図49で示したフィールドプログラマブル論理回路の、スイッチマトリクス1283およびスイッチ回路1285のプログラミング回路を説明するための図である。
図50を参照すると、本実施例のフィールドプログラマブル論理回路のプログラミング回路は、スイッチマトリクス1283、スイッチ回路1285、縦方向の配線1256、横方向の配線1250、pMOSトランジスタ1290、1292、1294、nMOSトランジスタ1291、1293、1295、制御信号入力端子1296a、1296b、1296c、電圧源1297から構成される。電圧源1297は、スイッチ素子1103のしきい値電圧よりも高い電圧Vppを供給する。
ここで、スイッチマトリクス1283の中の、スイッチ素子1103aをオン状態にプログラムする場合を考える。トランジスタ1290と1295をオン状態に、トランジスタ1291、1292、1293、1294はオフ状態に設定し、縦方向の配線1256a、1256c、1256x、1256y、横方向の配線1250a、1250cには、電圧源1297から供給される電圧Vppの半分の電圧Vpp/2を印加する。
また、制御信号入力1296a、1296b、1296cは、全て“H”レベルとし、トランジスタ1280は、全てオン状態にする。すると、横方向の配線1250bからは電圧Vppがスイッチ素子1103aのアノード端子に供給され、縦方向の配線1256bを通じてスイッチ素子1103bのカソード端子は接地される。
ここで、スイッチ素子1103aの2端子間には、しきい値を超える電圧Vppが印加されるため、スイッチ素子1103aはオン状態にプログラムされる。その他のスイッチ素子には、少なくとも片側の端子にVpp/2の電圧が印加されているため、2端子間の電位差はVpp/2以下となるため、スイッチの接続状態は変化しない。
このようにして、スイッチマトリクス1283の中の任意のスイッチ素子をプログラムすることができる。
スイッチマトリクス1283の中のスイッチ素子を全てオフ状態にプログラム(消去)するには、縦方向の配線1256の全てに、Vppを印加し、横方向の全ての配線を接地し、トランジスタ1280は全てオンになるように制御信号入力1296a、1296b、1296cは全て“H”レベルにする。
すると、スイッチ素子1103のカソード側には縦方向の配線1256を介してVppが印加され、該スイッチ素子のアノード側は、トランジスタ1280を介して接地される。このため、スイッチ素子1103のプログラミング状態は消去され、オフ状態に設定される。
次に、スイッチ1285の中の、スイッチ素子1103bをプログラムする場合を考える。トランジスタ1290と1293をオン状態に、トランジスタ1291、1292、1294、1295は全てオフ状態に、縦の配線1256は全てVpp/2の電位に設定し、制御入力信号1296aと1296cは“H”レベルに、制御入力信号1296bは“L”レベルに設定する。
すると、スイッチ素子1103bの片側の端子には、トランジスタ1290を通して電圧Vppが供給され、スイッチ素子1103bのもう片方の端子は、トランジスタ1293を通して接地される。スイッチ素子1103bと直列に接続されている他のスイッチ素子は、それらのスイッチ素子と並列に接続されているトランジスタ1280a、1280cがオン状態のため、これらスイッチ素子の端子間には電圧がかからない。
また、横方向の配線1250と縦方向の配線1256の交点に接続されているスイッチ素子に関しては、縦方向の配線1256にVpp/2の電圧が印加されているため、スイッチ素子の2端子間の電位差はVpp/2以下であり、これら交点のスイッチ素子のプログラミング状態は変化しない。
このようにして、スイッチ1285のなかから、任意に選択したスイッチ素子1103bのプログラミング状態を変化させることができる。
図51は、本発明によるスイッチマトリクスのプログラミングの状態を検証(ベリファイ)するための回路の一例を示す図である。図51を参照すると、この実施例の検証回路は、2端子スイッチ素子1103、縦方向の配線1256、横方向の配線1250、nMOSトランジスタ1255、1306、pMOSトランジスタ1301、1303、1305、入力端子1254、1300、1302、1304、出力端子1307から構成される。この検証回路を用いることで、オン状態にプログラムされているべきスイッチが全てオン状態になっているかを行単位で検証することができる。
例えば、スイッチ素子1103aaと1103acをオン状態にプログラムしたと仮定する。これを確認するためには、入力端子1300に“L”レベルのパルスを与え、トランジスタ1301を通して縦の配線1256を全てプリチャージする。次に、検証したいプログラミングパターンを入力(1254)する。例えば、ここでは、1103aaと1103acをオン状態にプログラムしたので、それらの列に対応する入力1254aと入力1254cに“H”レベルを、それ以外の入力1254bと1254dは“L”レベルにする。
すると、縦の配線1256aと1256cはトランジスタ1254aと1254cを介して接地され、その電位がゼロになる。次に、入力1302に“L”レベルのパルスを与えると、トランジスタ1303を介して、出力1307がプリチャージされる。ここでは、1256bと1256dが“H”レベルにプリチャージされたままであるが、1256aと1256cは電位がゼロなので、トランジスタ1306aと1306cはオフであり、出力1307はプリチャージされたまま“H”レベルを保つ。
次に、入力1254全てを“L”レベルに戻し、入力1304aを“L”レベルにすると、トランジスタ1305aを介して配線1250aが“H”レベルになる。ここで、スイッチ素子1103aaと1103acがオン状態にプログラムされていれば、これらのスイッチ素子を通して配線1256aと1256cが“H”レベルになる。
すると、トランジスタ1306a〜1306dが全てオンになり、出力1307は接地され、“L”レベルになる。もしここで、スイッチ素子1103aaまたは1103acが正常にプログラムされずにオフ状態のままであれば、配線1256aまたは配線1256cが“L”レベルのままとなり、トランジスタ1306aまたは1306cがオフ状態のままとなる。
すると、出力1307は“H”レベルのままとなり、本来オン状態にプログラムされているはずのスイッチがオフ状態であることを検出できる。ここで、これらの動作に用いられる信号電圧は、2端子素子1103のしきい値電圧よりも低いことが好ましい。
図52は、スイッチマトリクスのプログラミングの状態を検証(ベリファイ)するための回路の一実施例の構成を示す図である。図52を参照すると、この実施例の検証回路は、2端子スイッチ素子1103、縦方向の配線1256、横方向の配線1250、nMOSトランジスタ1255、1312、pMOSトランジスタ1301、1305、1311、入力端子1254、1300、1304、1310、出力端子1313から構成される。この検証回路を用いることで、オフ状態にプログラムされているべきスイッチが全てオフ状態になっているかを検証することができる。例えば、スイッチ素子1103aaと1103acをオン状態に、スイッチ素子1103abと1103adをオフ状態にプログラムしたと仮定する。これを確認するためには、入力端子1254a〜1254dにHレベルのパルスを与えて、縦の配線1256を全て接地し、配線1256の電位を全て“L”レベルにする。
その後、入力端子1304aに“L”レベルのパルスを与え、トランジスタ1305aを通して横の配線1250aをHレベルにプリチャージする。ここで、スイッチ素子1103aaと1103acはオン状態のため、縦の配線1256aと1256cが“H”レベルになる。次に、検証したいプログラミングパターンを入力(1254)する。例えば、ここでは1103aaと1103acをオン状態にプログラムしたので、それらの列に対応する入力1254aと入力1254cに“H”レベルを、それ以外の入力1254bと1254dは“L”レベルにする。すると、縦の配線1256aと1256cはトランジスタ1254aと1254cを介して接地され、その電位がゼロになる。
次に、入力1310に“L”レベルのパルスを与えると、トランジスタ1311を介して、出力1313がプリチャージされる。ここで、1256bと1256dは最初に配線1256を接地したときから“L”レベルのままであり、1256aと1256cはトランジスタ1305aとスイッチ素子1103aa、1103acを介して“H”レベルにプリチャージされた後、入力端子1254から与えられた入力パターンによって、トランジスタ1255を介して接地されたので“L”レベルである。従って、トランジスタ1312a〜1312dは全てオフであり、出力1313はプリチャージされたまま“H”レベルを保つ。
もし、ここで、スイッチ素子1103abまたは1103adが正常にプログラムされずに、オン状態であれば、入力端子1304aに“L”レベルのパルスを与えた際に、配線1256a、1256cと共に、配線1256bまたは配線1256dが“H”レベルになり、入力端子1254からパターンを与えた際にも、“H”レベルになった配線1256bまたは配線1256dは“H”レベルのままである。
すると、出力1313はトランジスタ1312bまたは1312dを介して接地され、“L”レベルを出力する。このようにして、本来オフ状態にプログラムされているはずのスイッチがオン状態であることを検出することができる。ここで、これらの動作に用いられる信号電圧は、2端子素子1103のしきい値電圧よりも低いことが好ましい。
図53は、スイッチマトリクスのスイッチ素子の一部または全てがオフ状態であることを検証するための回路の一実施例の構成を示す図である。図53を参照すると、この実施例の検証回路は、2端子スイッチ素子1103、縦方向の配線1256、横方向の配線1250、nMOSトランジスタ1306、1321、pMOSトランジスタ1301、1303、制御入力端子1300、1302、1320、出力端子1307から構成される。この検証回路を用いることで、全てオフ状態にプログラムされているべきスイッチの中にオン状態のスイッチが無いかを、行単位またはスイッチマトリクス全体で検証することができる。この検証を行うには、入力端子1300に“L”レベルのパルスを与え、トランジスタ1301を通して縦の配線1256を全て“H”レベルにプリチャージする。
次に、検証したい行のトランジスタ1321をオンにする。例えば、2つの行を一括して検証する場合には、入力端子1320a、1320bを“H”レベルにし、トランジスタ1321a、1321bを介して、横方向の配線1250a、1250bを接地する。
ここで、もし、スイッチ素子1103の中にオン状態のものがあれば、“H”レベルにプリチャージされた配線1256が、そのオン状態のスイッチ素子、配線1250、トランジスタ1321を介して接地され“L”レベルになる。
次に、入力端子1302に“L”レベルのパルスを入力すると、トランジスタ1303を介して、出力1307が“H”レベルにプリチャージされる。ここで、全てのスイッチ素子1103がオフであれば、縦方向の配線1256は全て“H”レベルを保っているので、出力1307はトランジスタ1306を介して接地されて“L”レベルを出力するが、スイッチ素子1103の中にオン状態のものがあれば、一部の縦方向の配線が“L”レベルになるので、その列のトランジスタ1306がオフ状態になり、出力1307は接地されず、“H”レベルを保つ。
このようにして、スイッチマトリクスのスイッチ素子の中にオン状態のスイッチ素子が有るかを検証することができる。ここで、これらの動作に用いられる信号電圧は、2端子素子1103のしきい値電圧よりも低いことが好ましい。
図54は、図49および図50を参照して説明したフィールドプログラマブル論理回路で、スイッチ回路1282が直列に複数個接続された構造において、接続の検証を行う回路の一実施例の構成を示す図である。図54を参照すると、この実施例の検証回路は、直列に接続された複数個の2端子スイッチ素子1103、該スイッチ素子と並列にソース端子とドレイン端子が接続されたトランジスタ1280、該トランジスタのゲート端子に接続された制御入力端子1296、pMOSトランジスタ1325、nMOSトランジスタ1327、制御入力端子1324、1326、出力端子1328、1329を備える。
ここで、スイッチ素子1103aの接続がオン状態かオフ常態かを検証する場合を考える。入力信号1296aを“L”レベルに、1296bを“H”レベルにする。次に、入力信号1324に“L”レベルのパルスを加える。すると、出力信号1328はプリチャージされる。次に、入力信号1326を“H”レベルにすると、出力信号1329は接地される。ここで、スイッチ素子1103aがオン状態であれば、入力信号1328にプリチャージされた電荷が、トランジスタ1280b、スイッチ素子1103aとトランジスタ1327を通して接地されるので、出力1328からは“L”レベルが出力される。
逆に、スイッチ素子1103aがオフ状態であれば、出力端子1328にプリチャージされた電荷が保持されるため、“H”レベルが出力される。このとき、検証を行うスイッチ素子1103a以外のスイッチ素子1103bは、オン状態であってもオフ状態であっても、それらスイッチ素子1103bと並列に接続されたトランジスタ1280bによって2端子間がオン状態になっているため、1103aの検証には影響しない。
以上で説明した手順により、直列に複数個接続された2端子スイッチ素子の中から、任意のスイッチ素子の接続状態を調べることができる。また、この検証は、先に入力端子1326に“H”レベルのパルスを与えて出力1329を“L”レベルにした後、入力端子1324に“L”レベルのパルスを与えて、出力端子1329のレベルを判別する方法でも、同様の結果を得ることができる。ここで、これらの動作に用いられる信号電圧は、2端子素子1103のしきい値電圧よりも低いことが好ましい。
図55は、以上で説明した書き込み・消去回路と検証回路を用いた、2端子スイッチ素子1103のプログラミングの手順を示すフローチャートである。図55を参照すると、2端子スイッチ素子のプログラミング手順は、以下のステップよりなる。
複数個のスイッチ素子の一部または全てのスイッチをオフ状態にプログラムする(ステップ1330)。
オフ状態にプログラムした全てのスイッチがオフ状態であるか否かを検証(ベリファイ)する(ステップ1331)。
その結果を判別する(ステップ1332)。ここでオン状態のスイッチがあれば、ステップ1330から始まる手順を繰り返す。一方、全てのスイッチがオフであれば、選択したスイッチ素子をオン状態にプログラムする(ステップ1333)。
選択したスイッチ素子がオン状態であるか検証(ベリファイ)する(ステップ1334)。
その結果を判別する(ステップ1335)。ここでオフ状態のままのスイッチ素子があれば、ステップ1333から始まる手順を繰り返し、逆に、オン状態にプログラムしたスイッチ素子が全てオン状態にプログラムなっていれば、プログラミングを終了する。
全てのスイッチをオフ状態にプログラムするステップ1330には、図46の回路を用いることで実現することができる。
オフ状態にプログラムした全てのスイッチがオフ状態であるか否かを検証(ベリファイ)し(ステップ1331)、その結果を判別するステップ1332には、図53に示した回路を用いることができる。
スイッチ素子をオン状態にプログラムするステップ1333には、図45に示した回路をもちいることができる。
選択したスイッチ素子がオン状態であるか検証(ベリファイ)し(ステップ1334)、その結果を判別するステップ1335には、図51、図52で示した回路を用いることができる。
以上で説明した手順により、複数個のスイッチ素子1103が接続された回路において、所望の接続を確実にプログラムすることができる。
図56は、本発明によるスイッチマトリクスを用いたプログラム可能な入出力(I/O)回路の一実施例の構成を示す図である。図56を参照すると、この実施例のI/O回路は、縦方向の配線1256、横方向の配線1250、配線1256と配線1250の各交点に、1つずつ配置され、一方の端子が配線1256に、他方の端子が配線1250に接続された2端子スイッチ素子1103と、出力を“H”レベル、“L”レベル、ハイインピーダンスの3状態に設定可能な3ステートバッファ1340と、2つのインバータ1341、1342と、入出力端子1343と、を備えて構成されている。3ステートバッファ1340は、一例として、配線1256aから“H”レベルが入力されれば、配線1256bから入力された値を入出力端子1343に出力し、配線1256aから“L”レベルが入力されれば、出力はハイインピーダンスになるものとする。
このI/O回路を出力バッファとして用い、LSI内部の配線1250aの値を、入出力端子1343と介して外部に出力する場合を考えると、スイッチの接続の一例として、配線1256aと配線1250b、配線1256bと配線1250a、がそれぞれ接続されるように、配線1256aと配線1250bの交点のスイッチ素子と、配線1256bと配線1250aの交点のスイッチ素子をオン状態にプログラムする。それら以外のスイッチ素子は全てオフ状態にプログラムする。ここで、配線1250bには常に“H”レベルの信号が供給されるようにすると、3ステートバッファ1340は配線1256bを介して伝播された配線1250aの信号を、入出力端子1343に出力する。
また、このI/O回路を入力バッファとして用い、LSI外部から入出力端子1343に入力される信号の値を、LSI内部の配線1250dに、その値を反転した値を配線1250eに入力する場合を考えると、スイッチの接続の一例として、配線1256aと配線1250b、配線1256cと配線1250d、配線1256dと配線1250e、がそれぞれ接続されるように、配線1256aと配線1250bの交点のスイッチ素子と、配線1256cと配線1250dの交点のスイッチ素子と、配線1256dと配線1250eの交点のスイッチ素子、をオン状態にプログラムする。それら以外のスイッチ素子は全てオフ状態にプログラムする。ここで、配線1250bには常に“L”レベルの信号が供給されるようにすると、3ステートバッファ1340の出力はハイインピーダンス状態になるので、配線1256bの値が入出力端子1343に影響を及ぼすことはない。
また、入出力端子1343から入力された値は、インバータ1341、1342、配線1256cを伝播して、配線1250dに出力される。また、入出力端子1343から入力された値を反転した値が、インバータ1341、配線1256dを伝播して、配線1250eに出力される。以上の例で述べたように、スイッチマトリクスの接続を変更することで、入力にも出力にも使え、チップ内の任意の配線の信号を外部に入力したり、外部から入力される信号をチップ内の任意の配線に出力したりすることができるI/O回路を実現することができる。
図57は、図2で説明した3端子スイッチ素子を用いたスイッチマトリクスの一実施例の構成を示す図である。図57を参照すると、本実施例のスイッチマトリクスは、縦方向の配線1400と、縦方向のプログラム制御線1401と、横方向のプログラム制御線1402と、横方向の配線1403と、スイッチ素子1118と、インバータ1404と、を備えて構成されている。
スイッチ素子1118は、縦方向の配線1400と横方向の配線1403の各交点に配置され、ソース端子またはドレイン端子が、それぞれ配線1400または配線1403に接続される。また、ゲート端子はインバータ1404の出力端子に接続される。インバータのゲート入力端子には縦方向のプログラム制御線1401が接続され、インバータの電源入力には横方向のプログラム制御線1402が接続される。インバータ1404の内部は、図57(b)に示すように、入力端子1405、出力端子1406、電源入力1407、pMOSトランジスタ1408、nMOSトランジスタ1409から構成され、入力端子1405に“H”レベルが入力されると出力端子1406は0ボルトを出力し、入力端子1405に“L”レベルが入力されると出力端子1406は、電源入力1407に与えられる電圧を出力する。
図57に示す回路において、スイッチ素子1118aをオン状態にプログラムして、配線1400aと配線1403aを接続する場合について以下に説明する。縦方向の配線1400と横方向の配線1403は全て接地し、3端子スイッチ素子1118のソース端子およびドレイン端子の電位を全てゼロ(グランド電位)にする。
次に、縦方向のプログラム制御線1401bを“H”レベルに、1401aを“L”レベルにし、横方向のプログラム制御線1402bに0ボルト、1402aに電圧Vppを与える。ここで、電圧Vppは、3端子スイッチ素子のしきい値よりも大きい電圧である。すると、インバータ1404aはVppを出力し、1404bは0ボルトを出力する。このため、スイッチ素子1118aのゲートにだけ電圧Vppが印加され、1118aのソース端子とドレイン端子間がオン状態にプログラムされる。
また、スイッチ素子1118全てをオフ状態にプログラムする場合には、縦の配線1400の全てと、横の配線1403の全てに対して電圧Vppを印加し、縦方向のプログラム制御線1401を全て“H”レベルに設定するか、横方向のプログラム制御線1402を全て0ボルトに設定することで、全てのソース端子およびドレイン端子には電圧Vppが印加され、全てのゲート端子の電圧が0ボルトになるため、全てのスイッチ素子1118はオフ状態にプログラムされる。
以上説明したように、本発明による3端子素子を用いたスイッチマトリクスは、3端子スイッチ素子の一括消去および選択的なプログラミングが可能である。
また、以上説明した3端子スイッチ素子を用いたスイッチマトリクスは、配線の各交点に2個のトランジスタと3端子スイッチ素子を配置するだけで実現できるため、図39に示したような、従来のスイッチ回路を、配線の各交点に配置した構成に比べて、回路面積を数分の1にまで減少させることができる。
図58は、本発明による、トランジスタを用いないで構成できるスイッチマトリクスの一実施例の構成を示す図である。図58を参照すると、本実施例のスイッチマトリクスは、縦方向の配線1400と、横方向の配線1403と、プログラム制御線1402と、スイッチ素子1118とを備えて構成される。
スイッチ素子1118は、縦方向の配線1400と横方向の配線1403の各交点に配置され、ソース端子またはドレイン端子が、それぞれ配線1400または配線1403に接続される。また、ゲート端子はプログラム制御線1402に接続されている。また、プログラム制御線1402同士は、図中に破線で示した部分を接続しても良い。
この実施例のスイッチマトリクスによれば、配線1400の1本と配線1403の1本の間の交点が1点しかないのと同様に、配線1400の1本と配線1402の1本の間の交点も1点しかなく、配線1403の1本と配線1402の1本の間の交点も1点しかない構造を有する。つまり、配線1402はスイッチマトリクスの同一行内もしくは同一列内の2つ以上のスイッチのゲート端子とは接続されない構造を有する。例えば、m列×n行のスイッチマトリクスのスイッチ素子をSx,y(x<m、y<n)とすると、配線1402の1本はSn,n(n=1,2,3,...)に接続され、配線1402の他の1本はSn+1,nに接続されるような場合などが、この条件を満たす。
また、図58に示す回路も、この条件を満たしており、さらに、図58に示す回路において、破線で示したように1402bと1402g、1402cと1402f、1402dと1402eをそれぞれ接続して、プログラム制御線を4本にした場合でも、この条件を満たす。
図58のスイッチマトリクスにおいて、スイッチ素子1118aをオン状態にプログラムして、配線1400aと1403aを接続する場合を考える。スイッチ素子1118aのソース端子およびドレイン端子にそれぞれ接続されている配線1400aと配線1400bを接地し、スイッチ素子1118aのゲート端子に接続されているプログラム制御線1402aに電圧Vppを印加する。また、スイッチ素子1118aのいずれの端子とも接続を持たない配線1400b、1403b、1402bは、Vpp/2の電圧に設定する。ここで、電圧Vppはスイッチ素子1118のしきい値電圧を超える電圧であり、その半分の電圧Vpp/2はしきい値電圧を超えない。
このような条件では、スイッチ素子1118aのソース端子およびドレイン端子は0ボルト、ゲート端子にはVppが印加されるため、ゲートとチャネル間の電位差はVppであり、スイッチ素子1118aがオン状態にプログラムされる。また、プログラム制御線1402aに接続されているその他のスイッチ素子のソース端子およびドレイン端子にはVpp/2の電圧が印加されているため、ゲートとの電位差はVpp/2であり、プログラミングの状態は変化しない。また、これら以外のスイッチ素子では、ゲート端子の電圧がVpp/2であり、ソース端子およびドレイン端子の電圧は0〜Vpp/2なので、その電位差は0〜Vpp/2であり、プログラミング状態は変化しない。
また、オン状態であるスイッチ素子1118aをオフ状態に選択的にプログラムするには、配線1400aと1403aをVppに、プログラム制御線1402aを0ボルト、それ以外の端子をVpp/2に設定することで実現できる。このようにして、任意に選択した1つのスイッチ素子をオン状態またはオフ状態にプログラムすることができる。
また、全てのスイッチ素子をオフ状態にプログラムする場合には、配線1400の全てと、配線1403の全てに電圧Vppを印加し、プログラム制御線1402は全て接地する。この場合、全てのスイッチ素子のソース端子およびドレイン端子は電圧Vppが印加され、全てのゲート端子は0ボルトであるため、ゲートとチャネル間には−Vppの電圧が印加され、全てのスイッチ素子がオフ状態にプログラムされる。
以上説明したように、図58に示した、トランジスタを用いないで構成したスイッチマトリクスにおいて、スイッチ素子の一括消去および、選択的なプログラミングが実現できる。
本発明による、トランジスタを用いないスイッチマトリクスは、従来のSRAMやFFとパスとランジスを組み合わせた構成に比べて、SRAMやFFが要らないために回路面積を低減できるほか、トランジスタを用いないという特徴のため、配線層に3端子スイッチ素子を並べるだけで構成でき、回路面積がさらに小さくできる。また、スイッチマトリクスが構成される配線層の下に、自由にトランジスタが配置できるため、別のトランジスタ回路とスイッチマトリクスを立体的に配置することが可能となり、LSIの面積効率を飛躍的に向上させることができる。
図59は、スイッチ素子1118を用いた無極性スイッチの構成を示す図である。図59を参照すると、このスイッチは、2つの2端子スイッチ素子1118aと1118bを、互いに極性が逆向きになるように並列に接続したものであり、端子1410と端子1411の間で対称な構造になっている。この素子に、例えば端子1410側からしきい値電圧を超える電圧Vppを、端子1411側から0ボルト(グランド電位)を与えると、スイッチ素子1103aにフォワードバイアスが印加されるため、端子1410と端子1411の間がオン状態にプログラムされる。端子1410と1411に印加する電圧を入れ替えたとしても、スイッチ素子1103bにフォワードバイアスが印加されるので、端子1410と端子1411の間がオン状態にプログラムされる。
このようにして、どちらの端子から電圧を印加してもオン状態にプログラムできる無極性スイッチを構成することができる。この素子は基本的にアンチヒューズと同様の動作をするため、既存のアンチヒューズ用の回路に適用することができる。
図60(a)、(b)、(c)は、2端子スイッチ素子1103を用いたメモリセルアレイの一実施例の回路構成、レイアウト図、断面図を示したものである。図60を参照すると、本発明のメモリセルアレイは、2端子スイッチ素子1103、ワード線1500、ビット線1501、プレート線1502、配線またはビア1503、トランジスタ1504を備えて構成される。
トランジスタ1504は、ゲート端子がワード線1500と接続され、ソース端子とドレイン端子は、スイッチ素子1118のアノード端子、カソード端子と接続される。
また、このスイッチ素子とトランジスタを並列に接続したメモリセルは、直列に複数個接続される。直列に複数個接続されたトランジスタ1504は隣り合うトランジスタ同士でソースおよびドレインを共有している。また、複数個のメモリセルが直列に接続されたものが複数個並列に並び、それらの間でワード線が共有されている。
このメモリセルアレイにおいて、任意に選択したメモリセルをプログラムする例を、図61を用いて説明する。一例として、スイッチ素子1103baをプログラムする場合を考えると、プログラムを行いたいメモリセルが接続されているワード線1500bを“L”レベルにし、それ以外のワード線1500a、1500c、1500dを全て“H”レベルにする。
また、プログラムを行いたいメモリセル列とビット線、プレート線を接続するため、ワード線1509aを“H”レベルにする。メモリセル1103ab〜1103dnには、プログラムを行わないので、ワード線1509b〜1509nは全て“L”レベルする。
このような条件では、スイッチ素子1103aa、1103ca、1103daがオン状態であってもオフ状態であっても、それぞれ、トランジスタ1504aa、1504ca、1504daを介して、ビット線1516とプレート線1517の電圧がスイッチ素子1103baの両端子に伝わる。
また、スイッチ素子1103baと並列に接続されているトランジスタ1504baはオフ状態のため電流は流れず、スイッチ素子1103baのアノードとカソードの2端子間に、ビット線1516の電圧とプレート線1517の電圧が印加される。ここで、入力端子1505、1506、1507、1508に信号を与え、トランジスタ1512、1513、1514、1515を適宜オン状態またはオフ状態に設定することでビット線1516とプレート線1517の電圧を制御し、スイッチ素子1103baにフォワードバイアスまたはリバースバイアスを印加することができる。また、スイッチ素子1103aa、1103ca、1103daは、それぞれ並列に接続されているトランジスタ1504aa、1504ca、1504daがオン状態のため、2端子間に書き換えに十分な電位差発生しない。
また、スイッチ素子1103ab、1103bb、1103cb、1103db、1103an、1103bn、1103cn、1103dnは、トランジスタ1510b、1510n、1511b、1511nによってビット線1516およびプレート線1517との接続が断たれているため、ビット線1516およびプレート線1517の電圧はスイッチ素子には印加されず、プログラムの状態が変化することはない。このようにして、任意に選択した1つのスイッチ素子のプログラミング状態を変更することができる。
本発明のメモリセル構造は、特許文献(米国特許US6,487,106の請求項12)に記載されているような、トランジスタとスイッチ素子を直列に接続した構成に比べて、メモリセル面積を小さくすることができ、チップの単位面積あたりの記憶容量を高められるというメリットがある。
図62は、図60で示した2端子スイッチ素子を用いたメモリセルアレイを改良したも構成を示す図であり、(a)、(b)、(c)には、その回路構成、レイアウト、断面構成が示されている。2端子スイッチ素子1103のアノードとカソードの向きが、交互に逆向きになった構造を有する。つまり、隣接する2端子スイッチ素子1103は、アノード同士、カソード同士が接続された構造を有する。
図60のメモリセルアレイでは、通常の金属配線のビア1503Vと、ビアの形状をしたスイッチ素子1103が、1つのメモリセルの中に1つずつ並んで配置されており、ビアの直径および間隔の制限から、セル面積の縮小が困難となる。
これに対して、図62に示したメモリセルアレイの構造では、金属配線のビア1503Vが、2つのメモリセルで共有されているため、1つのメモリセルの中には、1/2個のビア1503Vと、1つのスイッチ素子1103が並ぶ構造となる。このように、ビア1503Vの本数を減らすことにより、セル間隔を狭めることができ、チップの単位面積当たりの記憶容量を、図60に示した構成よりも、さらに高めることができる。
ただし、縦に直列接続されたスイッチ素子1103は、奇数番目のものと、偶数番目のもので、極性が反転している。このため、奇数番目のメモリセルと、偶数番目のメモリセルでは、プログラミング時のバイアス方向を反転させるか、読み出し時にオン状態とオフ状態に対する、論理値“0”と“1”の割り当てを反転させるなどの機能を、書き込み回路、または読み出し回路で実現することが好ましい。
図63は、2端子スイッチ素子1103を用いたメモリセルアレイの一実施例のレイアウト図(図63(a))、断面図(図63(b))を示したものである。図63を参照すると、このメモリセルアレイは、縦方向の配線1523が金属配線で構成されており、横方向の配線がNウェル1521で構成されている。Nウェル1521は、N+拡散層1524を介して、配線1522に接続されている。配線1523とNウェル1521の各交点には、2端子スイッチ素子1103が配置され、該スイッチ素子1103とNウェル1521との接続には、P+拡散層1525を介しているので、スイッチ素子1103とNウェル1521の間にはダイオードが直列に接続された構成となる。
2端子素子1103のアノード端子はP+拡散層1525と接続され、カソード端子は配線1523に接続される。このメモリセルアレイは、読み書きにアクセストランジスタを必要としないため、セル面積を従来構成よりも小さく出来る。
図64は、図63を参照して説明したメモリセルの読み出しと書き込みを説明するために、図63(a)のレイアウト構成を、回路図(等価回路)で示したしたものである。図64において、Nウェル1521とP+拡散層1525の接合部は、ダイオード1530として記載されている。ダイオード1530はスイッチ素子1103と直列に接続され、ダイオード1530のアノード端子とスイッチ素子1103のアノード端子が互いに接続される。
また、スイッチ素子1103のしきい値は電圧Vppよりも0.7V以上低いものとし、オン状態にすることを消去、オフ状態にすることを書き込みと仮定する。初期状態では、全てのダイオードのアノード端子の電圧は0ボルト〜0.7ボルト程度であるとする。
先ず、全ビットを消去する場合について以下に説明する。ここでは、配線1522を全て接地し、配線1523の全てに接地した状態よりも低い電圧である−Vppを印加する。すると、スイッチ素子1103のアノードには0ボルト〜0.7ボルト程度の電圧、カソードには−Vppが印加されるため、スイッチ素子1103は順方向バイアス状態になり、全てのスイッチ素子1103がオン状態になる。ここでは、ダイオード1530があるために、スイッチがオン状態になっても、配線1522から配線1523には電流は流れない。このようにして、全てのスイッチ素子の消去が行われる。全てのスイッチがオンになったら、配線1523を全て接地する。
次に、選択したビットを書き込む場合について説明する。一例として、スイッチ素子1103baをオン状態に書き込む場合には、配線1523aに正の電圧Vppを印加し、1523b、1523c、1523dは接地する。また、配線1522bは接地し、1522aと1522cには正の電圧(例えばVppまたはVpp/2)を印加する。
すると、スイッチ素子1103baのカソード端子には、配線1523aから正の電圧(Vpp)が印加され、アノード端子はダイオード1530baと配線1522bを介して接地されるので、スイッチ素子1103baは、逆バイアス状態になり、オフ状態に書き込まれる。オフに書き込まれると、スイッチ素子1103baのアノード側の電位は、ダイオード1530baを介して、0ボルトから0.7ボルト程度の間の電圧に収束する。スイッチ素子1103aaや1103caには、それぞれ、配線1522a、1522cを介して、アノードにもカソードにも電圧が印加されているので、アノードとカソードの端子間の電位差がしきい値電圧を超えない限りは、オフ状態に書き込まれない。また、配線1523b、1523c、1523dは、接地されているので、これらに接続されているスイッチ素子には、逆バイアスが印加されず、書き込みは行われない。
また、ダイオードが配線1522aと1522cからの電圧を遮断するので、スイッチ素子1103には順方向バイアスも印加されないので、オフ状態にプログラムされている2端子素子の記憶内容を破壊することも無い。
配線1523ba(スイッチ素子1103ba)の読み出しを行う場合には、配線1522bの電位を、配線1523aの電位よりも0.7V以上低く設定する。配線1522aと1522cの電位は、配線1523aの電位と等しいか大きく、配線1523b、1523c、1523dの電位は、配線1522bの電位と等しいか、それよりも低く設定する。
すると、ダイオード1530baのみが順方向バイアスの条件となるので、スイッチ素子1103baがオン状態であれば、ダイオード1530baを介して、配線1523aから1522bに電流が流れ、オフ状態であれば、どこにも電流が流れない。ここで、配線1523aまたは配線1522bの電流を検出するか、或いは、配線1523bにプリチャージした電圧が保たれるか否かを検出することにより、スイッチ素子1103baにプログラムされた状態を読み出すことができる。
図65は、本発明によるスイッチアレイを3次元的に配置した実施例の構成を示す図である。図65を参照すると、この実施例のスイッチアレイは、半導体基板1100と、スイッチ素子1103と、第1の配線層1123aと、第2の配線層1123bと、第3の配線層1123cと、第4の配線層1123dとを備え、各配線層の間に、スイッチ素子1103が配置されている。
従来の半導体素子で構成されるスイッチ回路は、半導体基板1100上に平面的に形成されるため、スイッチの数に比例して、スイッチが占める面積が大きくなるという問題がある。
これに対して、本発明によるスイッチアレイ構造は、配線層に形成されるスイッチを用いるため、多層に形成された配線層に埋め込むことで、スイッチ素子も多層に形成することができる。このことにより、単位面積あたりのスイッチの数を増やすことが可能であり、集積度を高めることができる。
上記した、抵触領域、配線層にスイッチ素子を有する半導体集積回路に関しては、特許請求の範囲の請求項記載の発明の原理及び範囲を逸脱しない範囲で当業者であればなし得るであろう、種々の変更および変形、修正を含むことは勿論である。