(57)【特許請求の範囲】
【請求項１】
電気的に絶縁された第１のフローティングゲートを有する第１のＭＯＳ型トランジスタと、前記第１のフローティングゲートと容量結合する第１の電極と、前記第１のフローティングゲートとトンネル接合を介して設けられた第２の電極と、前記第２の電極と容量結合する第３の電極と、前記第１及び第２の電極と接続する第２のＭＯＳ型トランジスタとを有する半導体装置において、前記第１及び第３の電極間に所定の電位差を与える事により前記トンネル接合にトンネル電流を流し、前記の第１のフローティングゲート内の電荷量を変化させるとともに、前記電荷量が所定の値になったときに前記第２のＭＯＳ型トランジスタを導通させる手段を備えたことを特徴とする不揮発性半導体メモリ装置。
【請求項２】
前記第２のＭＯＳ型トランジスタのゲート電極が第２のフローティングゲートであり、前記第１のフローティングゲートと容量を介して結合されていることを特徴とする請求項１に記載の不揮発性半導体メモリ装置。
【請求項３】
前記第２のＭＯＳ型トランジスタのゲート電極が第２のフローティングゲートであり、前記第１のＭＯＳ型トランジスタのソース電極と容量を介して結合されていることを特徴とする請求項１に記載の不揮発性半導体メモリ装置。
【請求項４】
前記第２のフローティングゲートがスイッチを介して信号線に接続されていることを特徴とする請求項２又は３に記載の不揮発性半導体メモリ装置。
【請求項５】
前記第１のＭＯＳ型トランジスタのソース電極と容量結合する第３のフローティングゲートによりオン・オフ制御される第３のＭＯＳ型トランジスタを少なくとも１つ用いて構成されたインバーター回路の出力信号、もしくはその出力信号を所定の段数のインバータを通した信号によって、前記第２のＭＯＳ型トランジスタのオン・オフが制御されるように構成されていることを特徴とする請求項１に記載の不揮発性半導体メモリ装置。
【請求項６】
前記第３のフローティングゲートがスイッチを介して信号線に接続されていることを特徴とする請求項５に記載の不揮発性半導体メモリ装置。
【請求項７】
前記第３のフローティングゲートがスイッチを介して前記第３のＭＯＳ型トランジスタを少なくとも一つ用いて構成されたインバータ回路の出力端子に接続されていることを特徴とする請求項５に記載の不揮発性半導体メモリ装置。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、不揮発性半導体メモリ装置に係り、特にアナログ、多値データを高速に且つ高精度に書き込むことができるメモリ装置に関する。
【０００２】
【従来の技術】
近年、コンピュータ技術の発展に伴い、データ処理技術の進歩には実にめざましいものがある。しかし、人間が行っているような柔軟な情報処理を実現しようとすると、現在のコンピュータでは実時間で演算結果を出すことがほとんど不可能であるといわれている。その理由として、我々が日常生活で取り扱っている情報はアナログ量であり、まず第１に非常にデータ量が多く、しかもそのデータは不正確であり、そして曖昧である、という事実が挙げられる。この極度に冗長なアナログデータをすべてデジタル量に変換し、１つ１つ厳格無比なデジタル演算を行っているところに現在の情報処理システムの問題点がある。
【０００３】
一例を挙げるなら画像情報である。例えば１つの画面を５００×５００の２次元画素アレイにとりこんだとすると、画素数は全部で２５００００個となり、各画素毎に赤、緑、青の３原色の強度を８ｂｉｔで表すと実に１画面の静止画で７５万バイトの情報量となる。動画では時間とともにこの画像データが増大していく。現在のスーパーコンピュータをもってしても、実時間でこれらの大量の「１」「０」情報を操作し画面の認識・理解に結びつけるのは不可能であると言われている。
【０００４】
一方、この困難を克服するために、アナログ量である外界情報をそのまま取り入れてアナログ量のまま演算・処理を行うことにより、もっと人間に近い情報処理を実現しようという努力がなされている。しかし、このアプローチでの最大の問題はアナログデータを長時間保持することのできるメモリデバイスが存在しなかったことである。例えばアナログ量をそのまま電荷量としてフローティングゲートに蓄え、これによりアナログ不揮発性メモリを実現しようという試みは数多くなされているが、正確に所定の電圧にデータを書き込むことが非常に困難だったことが挙げられる。
【０００５】
図８は、従来技術の問題点を説明するための図面である。８０１はフローティングゲートであり、８０２はＮＭＯＳトランジスタである。フローティングゲート内の電荷量ＱＦを所定の値に設定するにはプログラム電極８０３に例えば２０Ｖの電圧を加えて、容量結合によりフローティングゲートの電圧を引き上げ、トンネル接合部８０４に高電圧を印加しトンネル電流を流す。トンネル接合は通常、１００Å程度の極めて薄いＳｉＯ２膜を２つの電極の間に挟んだ構造で実現される。これらの電極には通常Ｎ型の拡散層もしくはＮ型不純物をドープした多結晶シリコン薄膜が用いられる。１００Åの厚さの酸化膜中に現れる高電界によって電子が接地電極８０５からフローティングゲート８０１に注入され、フローティングゲート内の電子の総量｜ＱＦ｜は時間と共に増大する。流れるトンネル電流の大きさは次式で与えられるＦｏｗｌｅｒ  −  Ｎｏｒｄｈｅｉｍ電流で表される。
【０００６】
【数１】
Ｊ＝ａＥ２ｅｘｐ（−ｂ／Ｅ）        …  （１）
ここでａ、ｂは定数、Ｊは電流密度、Ｅは電界の強さである。
【０００７】
図９は、印加電圧を１５、２０、２５Ｖと変化させたときの電圧印加時間に対するフローティングゲート８０１の電荷量のグラフである。ＨＳＰＩＣＥシミュレーションによって求めており、トンネル酸化膜圧などのデバイスパラメータは現在の典型的な値に従っている。電圧を印加したばかりの時、急激に｜ＱＦ｜が上昇している。つまり、電子が急激にフローティングゲートへ注入されている。図１０は図９のグラフの時間軸を対数軸にし、注入時間を十分長くとったものである（電圧印加時間０秒の時に｜ＱＦ｜＝０である点は除いてある）。グラフを見ると｜ＱＦ｜はなだらかな上昇を続けており、１０００秒経過しても｜ＱＦ｜のなだらかな上昇、即ち、電子の緩やかな注入が続いている。図９、図１０より明らかなように、印加する電圧を変化させれば確かにフローティングゲートへの書き込み量を調節することが可能である。しかし、電子の注入／放出に分単位の非常に長い時間を必要とするのでは、印加電圧を変化させ書き込み量を調節する方法で実用的な時間内に正確に書きこみを終了させることは不可能である。
【０００８】
一方、パルス電圧を一定値とし、パルス印加時間により制御する方法も考案されているが、フローティングゲート電圧はパルス印加初期に非常に高速に変化するため、精度よく書き込み電圧を制御することはほとんど不可能であった。これまで実用化された唯一の方法は、ＶＥＸＴに短いパルスを一回加えた後、ＱＦの値を読み出す方法である。
【０００９】
ＱＦは次の方法で読み出せる。８０３の電極をゲート電極とみなしたときのＮＭＯＳ８０２の閾電圧は、
【００１０】
【数２】
0003569728.tif 000002
で与えられる。ここでＶＴＨはフローティングゲート８０１から見たＮＭＯＳ８０２の閾電圧、Ｃ１はフローティングゲートと電極８０３間の容量結合係数、ＣＴＯＴはフローティングゲートにつながる容量の総和である。即ちＮＭＯＳ８０２の閾電圧ＶＴＨ＊を測定することでＱＦの値が求められる。このようにしてＱＦの値を読み出し、まだ目的の値に達していなければさらにパルスを加える。このとき、パルスの大きさやパルス幅を変化させるという細かな制御を行っている。また、読み出した値が目的の値を超えてしまっていた時は逆にＶＥＸＴに負のプログラミングパルスを加えて修正する。このような複雑な一連の書き込み／読み出しの操作を外部コンピュータを利用して何度も繰り返し行うのである。このような方法ではデータを高速に書き込むことは全く不可能である。
【００１１】
【発明が解決しようとする課題】
本発明は以上の点に鑑みなされたものであり、高速で且つ高精度なアナログデータ書き込み可能な不揮発性半導体メモリを提供することを目的とする。
【００１２】
【課題を解決するための手段】
本発明は、電気的に絶縁された第１のフローティングゲートを有する第１のＭＯＳ型トランジスタと、前記第１のフローティングゲートと容量結合する第１の電極と、前記第１のフローティングゲートとトンネル接合を介して設けられた第２の電極と、前記第２の電極と容量結合する第３の電極と、前記第１及び第２の電極と接続する第２のＭＯＳ型トランジスタとを有する半導体装置において、前記第１及び第３の電極間に所定の電位差を与える事により前記トンネル接合にトンネル電流を流し、前記の第１のフローティングゲート内の電荷量を変化させるとともに、前記電荷量が所定の値になったときに前記第２のＭＯＳ型トランジスタを導通させる手段を備えたことを特徴とする。
【００１３】
【作用】
本発明では、複雑な制御回路を必要とせず、各メモリセル毎にフィードバックがかかって電荷の注入が終了するために極めて高速且つ高精度なデータ書き込みが可能となった。
【００１４】
【実施例】
以下本発明の実施例を図面を用いて説明する。
【００１５】
（実施例１）
図１は、第１の実施例を示す回路図である。１０１はＮＭＯＳトランジスタであり、１０２は例えばＮ＋ポリシリコンで形成されたフローティングゲート電極で、ＮＭＯＳ１０１のオン・オフ状態を制御している。ＮＭＯＳのドレイン１０３は、電源ライン１０４に接続され、一方ソース１０５は、例えば外部の容量負荷１０６に接続され、ソース・フォロワ回路としてフローティングゲート１０２の電位ＶＦＧを外部にＶＯＵＴとして読み出す構成になっている。ここでＶＯＵＴ＝ＶＦＧ−ＶＴＨであり、ＶＴＨはＮＭＯＳ１０１のフローティングゲートから見た閾電圧である。例えばＶＴＨ＝０としておけば、ＶＯＵＴ＝ＶＦＧとなる。ここでは簡単のためにＶＴＨを０としており、０以外の値でも本発明の効果に全く変化はない。ＶＴＨは製造時に決定される一定の値であり、それを考慮してフローティングゲートの電圧ＶＦＧ、電荷ＱＦを求めればよいからである。ＶＦＧ＝ＱＦ／ＣＴＯＴ（ＱＦはフローティングゲート１０２の電荷、ＣＴＯＴはフローティングゲート１０２につながる容量の総和）と表せるから、
【００１６】
【数３】
0003569728.tif 000003
によって、メモリの内容を外部に読み出すことができる。１０７はフローティングゲート１０２と容量結合した電極であり、例えばこの例では接地されている。この容量結合係数をＣ１とする。１０８は、電荷注入電極であり、トンネル接合１０９を介してフローティングゲートにつながっている。このトンネル接合は、例えばＮ＋ポリシリコンで形成されたフローティングゲートの表面を熱酸化して１００Åの酸化膜を形成し、この上に例えばＮ＋ポリシリコンのゲート電極１０８を設置することで形成することができる。しかし、これはあくまでもトンネル接合形成の一例であり、他のいかなる材料・方法を用いて形成してもよいことは言うまでもない。このトンネル接合部１０９の容量をＣ２と表す。電荷注入電極１０８は容量１１０（その大きさをＣ３とする）を介してプログラム電圧（ＶＥＸＴ）印加用端子１１１に接続されている。１１２はＮＭＯＳトランジスタであり、そのオン・オフ状態はフローティングゲート１１３によって制御されている。フローティングゲート１１３はスイッチ１１４を介して信号線１１５に接続されており、スイッチ１１４がオンの状態ではその電位は信号線１１５の電位ＶＳに固定され、オフの時はフローティング状態となり、その電位はフローティングゲート１０２の電位とそれとの容量結合係数によって決まるようになっている。（フローティングゲート１０２とフローティングゲート１１３との間の容量結合係数をＣ４とする。）
次に、この回路の動作について説明する。今、フローティングゲート１０２にＶＦＧ＝Ｖｍなるデータを書き込むことを考える。即ち、フローティングゲート１０２に、ＱＦＧ＝ＣＴＯＴＶｍなる電荷を注入することになる。これは次のような方法で行う。
【００１７】
まずＶＳ＝−Ｖｍとし、スイッチ１１４をオンしてフローティングゲート１１３の電位ФＣ＝−Ｖｍとする。そしてスイッチ１１４をオフするとフローティングゲート１１３にはＱＣ＝−Ｃ４Ｖｍなる電荷が蓄えられた状態となる。（ここでは簡単のためにフローティングゲート１１３の全容量をＣ４に等しいと仮定した。）フローティングゲート１１３より見たＮＭＯＳ１１２の閾電圧を０Ｖに設定しておくと、この時ＮＭＯＳ１１２はオフの状態にあり、電極１０７、１０８は互いに電気的に切り離されている。
【００１８】
この状態で端子１１１にプログラム電圧として例えばＶＥＸＴ＝２５Ｖを印加すると、容量分割によりトンネル接合１０９の両端には次式で与えられる電圧ＶＴがかかる。
【００１９】
【数４】
0003569728.tif 000004
【００２０】
いまＣ２≪Ｃ１、Ｃ３であるとすると、ＶＴ＝ＶＥＸＴとなり大きな電界がトンネル接合１０９に発生して電流が流れ、電子がフローティングゲート１０２より電荷注入電極１０８へ移動する。その結果ＶＦＧは正の値で大きくなる。この時間変化をＨＳＰＩＣＥシミュレーションで求めた結果を図２に示す。ＶＦＧは時間と共に増加し、ＶＰＰはｔ＝０でのＶＰＰ＝２５Ｖより時間とともに減少しており、電荷の移動が起こっていることがわかる。
【００２１】
さて、ＶＦＧが増加するためにフローティングゲート１１３の電位もそれとの容量結合により増加し、その値は、
【００２２】
【数５】
0003569728.tif 000005
と表される。即ち、ＶＦＧが増加しＶＦＧ≧ＶｍとなったところでΦＣ≧０となり、ＮＭＯＳ１１２の閾電圧０Ｖを越えるのでＮＭＯＳ１１２がオンする。そうすると電極１０７、１０８がＮＭＯＳ１１２を介して電気的に接続されるため、電極１０８の正電荷はアースに流れ、ＶＰＰは急速に減少する。その結果ＶＴが減少してトンネル電流は流れなくなり、ＶＦＧは一定値となる。即ちＶＦＧ＝Ｖｍの値にプログラムされたことになる。
【００２３】
図２では、Ｖｍ＝−４．０Ｖと設定している。パルス印加後約１．２μｓｅｃでＶＦＧは一定値（約３．５Ｖ）に達しているのがわかる。従来例では秒単位の長い時間を必要としていたことからも、書き込み時間が劇的に減少していることがわかる。ここで書き込みの目標値Ｖｍと実際のＶＦＧの収束値との間には約０．５Ｖの差があるが、あらかじめこの差を考慮してＶｍの値を設定すれば正確な制御を行うことができる。
【００２４】
以上述べたように、本発明の回路では、フローティングゲート１０２に電荷注入が生じてそれにより変化するＶＦＧを実時間で連続的にモニターしながら所定の値となったときに自動的に注入を終結する機能が実現されており、所定の値を正確にかつ超高速に書き込むことができた。
【００２５】
上ではＣ２≪Ｃ１、Ｃ３という仮定の下で説明したが、この回路はそのような条件に限定されない。まず、Ｃ２≪Ｃ３という条件は、ＶＴをＶＥＸＴにできるだけ近づけるためにだけ必要であり、例えばＶＥＸＴを大きくするか、またはトンネル酸化膜を薄くするなどしてトンネル注入部にかかる電界を大きくし、必要な電界の値を得られるようにすればその条件は完全に不必要になる。Ｃ２≪Ｃ１という条件は、上の理由と併せてさらに、ＶＥＸＴが印加されたときに、その電圧によってフローティングゲート１０２が持ち上げられる効果を無視できるようにするために定めた。例えばＶＥＸＴ＝２５Ｖを印加すると、Ｃ１、Ｃ２、Ｃ３の容量結合により端子１０７に対するフローティングゲートの電位ΦＦＧはＶＥＸＴによって
【００２６】
【数６】
0003569728.tif 000006
だけ持ち上げられる。もしＣ２≪Ｃ１ならば上で述べているようにΦＦＧはほぼ０に等しくなる。もしＣ２がＣ１に比べて無視できるほど小さくないとしても、ΦＦＧはＣ１、Ｃ２、Ｃ３、ＶＥＸＴという、あらかじめわかった値で決定されるので、この値を見越して書き込むデータを設定することによってＣ２≪Ｃ１、Ｃ３としたときと全く同じような制御を行うことができる。ΦＦＧが無視できないときの具体的な影響は（５）式の場合でＶＦＧ→ＶＦＧ＋ΦＦＧと置き換えた式で表される。つまりΦＣ＝ＶＦＧ＋ΦＦＧ−Ｖｍ＝０となったときに書き込みが終了するので、フローティングゲート１０２にはＶＦＧ＝Ｖｍ−ΦＦＧなるデータが書き込まれる。つまりセットした値Ｖｍより、ある決まった値だけ少ない値が書き込まれることになる。このΦＦＧの分だけ大きなデータを書き込むような制御を行えばなんら変わりない制御を行える。
【００２７】
書き込まれたデータを読み出す時にはＮＭＯＳ１０１（フローティングゲート１０２からみたそれの閾電圧ＶＴＨをたとえば０Ｖとする）を用いたソースフォロワ回路を動作させることによって、ＶＯＵＴ＝ＶＦＧとして直接フローティングゲート１０２の電圧をアナログ電圧として読み出すことができる。上記ＮＭＯＳ１０１の閾電圧ＶＴＨが必ず０Ｖである必要はなく、有限の値ＶＴＨを持つときはＶＯＵＴ＝ＶＦＧ−ＶＴＨがアナログデータとして読み出される。
【００２８】
また図１の例では、ソースフォロワの負荷素子として容量（Ｃ０とする）を用いる場合を例として示してあるが、もちろんこれに限定されず、例えば抵抗でもよいし、あるいはＭＯＳトランジスタを用いて構成された負荷素子を用いてもよいことは言うまでもない。
【００２９】
また多数のメモリセルをマトリクス状に集積して、所定のセルのデータのみ選択的に読み出すには、例えば電源ライン１０４を選択的にＶＤＤまで持ち上げることにより、その電源ラインに接続されているソースフォロワのみを活性化して読み出してもよいし、あるいは１０４は常にＶＤＤ一定電圧とし、ＶＯＵＴ端子１０５に各セル毎に選択用のＭＯＳトランジスタを配置してもよい。
【００３０】
上記第１の実施例では、Ｖｍの値を書き込むには、ＶＳとして負の値−Ｖｍを与える必要があったが、負の信号発生を行わないために例えば次のようにしてもよい。
【００３１】
ＮＭＯＳ１１２の閾電圧をＶＴＨ’とすると、（５）式よりこれがオンする条件は、
【００３２】
【数７】
ΦＣ  ＝  ＶＦＧ  −  Ｖｍ  ＞ＶＴＨ’      …  （７）
となる。すなわち、−Ｖｍ＞ＶＴＨ’−ＶＦＧであり、ＶＦＧをゲートに書き込むには、
【００３３】
【数８】
−  Ｖｍ  ＞ＶＴＨ’−  ＶＦＧ          …  （８）
とすればよい。ここで例えばＶＴＨ’＝５Ｖとすれば、ＶＦＧとして、０、１、２、３、４［Ｖ］を書き込むにはＶｍ＝５、４、３、２、１［Ｖ］とすればよく、Ｖｍは常に正の値となる。すなわちＶＳに設定すべき書き込み制御用の電圧はすべて正の電位となり、負の信号を発生する必要はなくなる。
【００３４】
図１の回路における書き込みデータの設定法としてまた別の方法を用いてもよい。それを次に説明する。まずスイッチ１１４をオンした後ＶＳを０Ｖに設定し、電極１０７の電位をＶｍに設定する。今Ｃ１≫Ｃ２としておくと、ＶＦＧ＝Ｖｍとなる。その後スイッチ１１４をオフにするとフローティングゲート１１３にはＱＣ＝−Ｃ４Ｖｍの電荷が蓄えられたことになる。ここで書き込みを始めると（５）式に従ってΦＣが変化するため、ＮＭＯＳ１１２の閾電圧を例えば０Ｖに設定しておけばΦＣ＝０即ちＶＦＧ＝ＶｍとなったときにＮＭＯＳ１１２がオンしてフローティングゲート１０２への電荷注入が終了することになる。この方法を用いればＮＭＯＳ１１２の閾電圧を特別高い値にせずとも書き込み電圧として非負の値を用いることができる。
【００３５】
さらにＮＭＯＳ１１２の閾電圧が０Ｖではなく有限の値をもっていてもよく、その時にはＶｍ−ＶＴＨ’の値がフローティングゲート１０２に書き込まれることになる。あるいはスイッチ１１４をオンして電極１０７の電位をＶｍとする際にＶＳ＝ＶＴＨ’と定めれば、フローティングゲート１０２にはＶｍの値がそのまま書き込まれることになる。
【００３６】
以上述べたいかなるデータの設定法を用いても、本発明は有効な効果を与えることは言うまでもない。
【００３７】
以上の説明は、プログラミング電圧印加用端子１１１にプログラム電圧（ＶＥＸＴ）を初めて印加する前の状態において、フローティングゲート１０２には一切チャージが存在していない場合にのみ当てはまる説明である。即ち、最初に説明した書き込み方法は、ＶＳ＝−Ｖｍとしてフローティングゲート１１３にチャージをセットした時にＶＦＧ＝０Ｖである場合にのみ正しい説明である。もしこのときフローティングゲート１０２に電荷が存在し、ＶＦＧ＝ＶＦＧＯ≠０であったとすると、ＶＳ＝−Ｖｍとして書き込み制御用の電圧をフローティングゲート１１３にセットしＶＥＸＴにプログラミング電圧をかけると、ＶＦＧ＝Ｖｍ＋ＶＦＧＯにまで上昇したときに初めて制御トランジスタ１１２がオンすることになり、フローティングゲート１０２にはＶｍ＋ＶＦＧＯの電圧が書き込まれることになる。従ってそこに電荷があらかじめ存在する場合には、例えばＮＭＯＳ１０１のソースフォロワ動作を利用してＶＦＧＯをあらかじめ読みだし、ＶＳの値としてこのＶＦＧＯの効果を考慮した設定値、即ちＶＳ＝−（Ｖｍ−ＶＦＧＯ）を設定すればよい。こうすれば最初に電荷が存在してもＶＦＧ＝Ｖｍの値を書き込むことができる。
【００３８】
次に、一度データが書き込まれたフローティングゲート上のデータを書き換える様々な方法について説明する。
【００３９】
ＶＦＧ＝０、つまりフローティングゲート１０２の電荷を０とすることは簡単であり、例えば電極１０７の電位を０とした状態で紫外光（ＵＶ光）を照射してやればよい。
【００４０】
一方、電気的にフローティングゲート１０２の保持するデータを消去する方法として、例えばＶＥＸＴに負の電圧を加え、電子をフローティング電極に注入する方法がある。あるいはプログラミング電圧印加用端子１１１を接地した状態で電極１０７に正の電位を加え、電子をフローティングゲートに注入する方法でもよい。さらに別な方法として電子注入用のトンネル接合部を１０９以外に別途設け、いくつかのセルを一括して消去する方式を用いてもよい。また、例えば図１でＶＯＵＴ端子１０５を０Ｖにリセットした状態で電源ライン１０４をＶＤＤより大きな電圧にセットし、ＮＭＯＳ１０１のドレイン端でホットエレクトロンを発生させ、フローティングゲート１０２へそのホットエレクトロンを注入することにより正の電荷を打ち消す方法でもよい。この時電極１０７を様々な電位に定めることにより、その注入量を制御することができる。フローティングゲートへのホットエレクトロン注入の他の方法として、トランジスタ１０１を用いなくとも、ホットエレクトロンを発生しやすいショートチャネルトランジスタを別途注入専用に設けてそのゲート電極をフローティングゲート３０２と共用させてもよい。以上のような様々な電気的方法では通常フローティングゲート１０２内の電荷が正確に０にはならず、負の値にまでふれこんでしまうので、このときはやはりソースフォロワ動作でチャージ量を読み出しこれを考慮してＶＳもしくは電極１０７に与える電圧値を調整してやる必要がある。
【００４１】
以上、様々なデータ更新の方法を説明したが、上の方法いずれを用いてもよいことは言うまでもない。
【００４２】
（実施例２）
図３は本発明の第２の実施例を示す図面である。３０１はＮＭＯＳトランジスタであり、３０２はそのオン・オフ状態を制御するフローティングゲートである。３０３はドレイン電極であり、電源ライン（ＶＤＤ）３０４に接続され、そのソース３０５は、外部負荷（例えば容量負荷係数Ｃ０をもつコンデンサ３０６）に接続され、ソースフォロア回路としてフローティングゲートの電位ＶＦＧをＶＯＵＴに読み出す構成となっている。また、電極３０７、電荷注入電極３０８、トンネル接合３０９、結合容量３１０、プログラム電圧（ＶＥＸＴ）印加用端子３１１等の構成はすべて図１の第１の実施例と同じであるので詳しい説明は省略する。本第２の実施例で大きく異なっているのは制御用ＮＭＯＳトランジスタ３１２であり、そのオン・オフを制御するフローティングゲート３１３は、独立のゲート電極３１５と容量結合している。（ゲート３１５とフローティングゲート３１３間の容量結合係数をＣ４とし、Ｃ４はＮＭＯＳ３１２のゲート酸化膜容量に比べ十分大きいものとする。これは説明を簡略化するための仮定であり、実際にはこの条件が満たされていなくとも本発明の効果にいかなる変化もないことは言うまでもない。）フローティングゲート３１３はスイッチ３１４を介して信号線ＶＳに接続されているのは図１と同様である。ゲート３１５は、スイッチ３１６を介して接地電位もしくはＮＭＯＳ３０１のソースに接続できる構成となっている。
【００４３】
本セルの書き込みは、次のように行う。第１の実施例と同様にフローティングゲート３０２の電圧ＶＦＧをＶｍにまで引き上げて書き込むことを目的とし、ＮＭＯＳ３１２の閾電圧及びはＮＭＯＳ３０１の閾電圧はいずれも例えばＶＴＨ＝０Ｖである場合を考える。両ＮＭＯＳの閾電圧は第１の実施例同様０Ｖである必要は全くない。また、書き込みデータのセッティングはスイッチ３１６を接地側に入れた状態で行われること、及び、プログラム電圧の印加はスイッチ３１４をオフにした後、スイッチ３１６をＮＭＯＳ３０１のソース３０５側に接続した状態で行われることを除き、すべて第１の実施例と同じである。即ち書き込み時にＮＭＯＳ３０１のソースフォロワ回路が働いて、制御用ＮＭＯＳトランジスタ３１２のゲート電圧ＶＧがＶＦＧとなるため、ＶＦＧ＝Ｖｍとなったときに制御用トランジスタ３１２がオンして、第１の実施例と全く同様の原理で書き込みを終結する。Ｃ１、Ｃ２、Ｃ３のそれぞれの大きさの条件についても第１の実施例と全く同様で、ＶＥＸＴによって第１の実施例で述べたΦＦＧがたとえ無視できない値になっても、それは決まった値となるのでその値を見越して制御用のデータを設定すればよい。
【００４４】
第１の実施例と大きく異なるところはフローティングゲート３１３の電圧設定が、３１５の電位が０、即ちＶＧ＝０の状態で行われるため、フローティングゲート３０２内に初期電荷が存在しても全くその影響を受けないところである。即ち第１の実施例で説明したように書き込む前のＶＦＧの値ＶＦＧＯの影響を無視できるという大きな特徴を持っている。ＶＦＧＯがいかなる値であっても制御用トランジスタ３１２はＶＧ＝ＶＦＧ＝Ｖｍとなったときにオンするため、第１の実施例の回路で必要としていた、データ更新時に毎回ＮＭＯＳ３０１のソースフォロワ回路を働かせてＶＦＧＯを読み出し、その値を考慮した上でＶＳの設定電位を決定するという操作が全く必要ない。従って、消去時にＵＶ消去を用いずとも、第１の実施例でも述べた、ＶＥＸＴとして負の電圧を印加するか電極３０７に正の電圧を印加する方法、または様々なホットエレクトロン注入法、あるいは電子注入専用のトンネル接合を用いるなど、いろいろな電気的消去法を用いた時でも、書き込み操作はフローティングゲート３０２が０Ｖの時とまったく同様に簡単に行うことができる。  本セルによって、消去時の過剰な電子の注入によってフローティングゲート内に負の電荷が残留していてもつねに所定の値まで書き込むことが可能になり、さらに高速のデータ書き込みが実現できるようになった。
【００４５】
またこのセルにおいても第１の実施例と同様に、例えばＶＳ＝０として電極３０７にＶｍの値を与えたり、ＶＳ＝０としたのちスイッチ３１６を出力線３０５側に接続し出力線にＶｍの値を与えるなど、異なったデータセッティングの方法を用いてもよいことは言うまでもない。スイッチ３１６に関しては、データセッティング時にＶＧ＝０にすればよいのであり、例えばセルの出力線３０５をいくつか束ね、複数のセルに共通な１つのスイッチをつけてもよい。また、必ず０Ｖにする必要もなく、他の所定の電位に設定してもよい。例えば制御トランジスタ３１２としてＰＭＯＳを用いればリセット電圧はＶＤＤとすればよい。
【００４６】
（実施例３）
図４は、本発明の第３の実施例を示す図面である。本実施例において、図３と同じ部分はすべて同じ番号がつけてあり、これらについて新たな説明は行わない。
【００４７】
図４の、第２の実施例と異なるところは、図３では電極３０７と電極３０８を接続するトランジスタとしてフローティングゲート３１３をもったＮＭＯＳ３１２を用いていたのに対し、本実施例では、通常のエンハンスメント型ＮＭＯＳ４０１を用いたことである。そのゲート電極４０２は例えば反転閾値ＶＤＤ／２のインバータ４０３の出力につながれており、その出力によってＮＭＯＳ４０１のオン・オフが制御されている。反転閾値は｜ＶＤＤ｜から０の範囲の値なら理論上本発明の効果には変わりない。また、このインバータ４０３は、例えば通常のＣＭＯＳインバータを用いてもよいし、あるいはＮＭＯＳやＰＭＯＳを用いたＥ／Ｅ型インバータ、もしくはＥ／Ｄ型インバータ等を用いてもよいことは言うまでもない。４０４もＣＭＯＳインバータであり、ＮＭＯＳ４０４ａ及びＰＭＯＳ４０４ｂから構成されている。その共通ゲート４０５は、スイッチ４０６を介して信号線４０７に接続されており、スイッチ４０６をオフにするとこのゲート４０５はフローティング状態になる。フローティングの状態のときその電位は制御ゲート４０８の電位とそれとの容量結合により制御されるようになっている。フローティングゲート４０５と制御ゲート４０８の間の容量結合係数をＣ４とする。そしてＣ４は、ＮＭＯＳ４０４ａとＰＭＯＳ４０４ｂのゲート酸化膜容量の合計に対して十分に大きいものと仮定する。この仮定は説明の便宜上のものであり、この条件が満たされなくても本発明の効果にはなんら変化がないことは言うまでもない。制御ゲート４０８は、ＮＭＯＳ３０１のソース３０５に接続されており、また４０９は出力端子を０Ｖにリセットするためのスイッチである。ＣＭＯＳインバータ４０４の反転閾値は、例えば０Ｖに決定されているとする。これは例えばＮＭＯＳ４０４ａをデプリーショントランジスタにし、その閾電圧を−２．５Ｖに設定し、ＰＭＯＳ４０４ｂをエンハンスメントトランジスタでその閾電圧を−２．５Ｖに設定し、両チャネルＭＯＳのβ比（βＲ＝ＮＭＯＳのβ／ＰＭＯＳのβ）を１とすればよい。また、ＮＭＯＳ３０１の閾電圧を例えば０Ｖであるとする。０Ｖでなく有限の値でも本発明の効果に変わりがないことは第１、第２の実施例での説明と同じである。
【００４８】
ここで第１、第２の実施例と同様、Ｖｍのデータをフローティングゲート３０２に書き込み、ＶＦＧ＝Ｖｍとすることを考える。
【００４９】
まずリセットスイッチ４０９をオンにして、４０８の電位ＶＧ１＝０とする。次いでスイッチ４０６をオンし、ＶＳ＝−Ｖｍとする。その後スイッチ４０６をオフすれば書き込み制御のためのデータ設定終了である。続けてスイッチ４０９をオフにし、ソースフォロワを動作状態にした後にプログラミング電圧印加用端子に例えばＶＥＸＴ＝２５Ｖを印加すればよい。トンネル電流が流れ、３０２の電位ＶＦＧが上昇するが、これはそのままＮＭＯＳ３０１のソースフォロワ回路を介して４０８の電位となる。つまりＶＧ１＝ＶＦＧである。ここでは簡単のために第１、第２の実施例同様、ＶＥＸＴを印加したことにより容量結合のためにフローティングゲートの電位がある一定の値だけ引き上げられる効果を無視できるようにＣ２≪Ｃ１と定めてある。このように定めなくとも第１、第２の実施例で説明したのと同様、本発明の効果に変化はない。フローティングゲート４０６の電位ΦＣ１は、ΦＣ１＝ＶＧ１−Ｖｍ＝ＶＦＧ−Ｖｍとなるため、ΦＣ１がＣＭＯＳインバータ４０４の反転閾値０Ｖに等しくなったときにインバータ４０４が反転し出力が０Ｖとなる。その信号がさらに反転されてゲート電極４０２をＶＤＤに引き上げるため、エンハンスメント型に設定されたＮＭＯＳ４０１がオンして電荷注入電極３０８は接地され、トンネル電流が流れなくなり書き込みは終了する。即ちＶＦＧ＝Ｖｍ（ΦＣ１＝０の条件）のときにデータ書き込みは終了し、フローティングゲート３０７にはＶＦＧ＝Ｖｍなるデータが書き込まれる。
【００５０】
この動作をＨＳＰＩＣＥシミュレーションした結果を図５に示す。Ｖｍ＝４Ｖとしている。ＶＦＧが所定の値になったところでＶＰＰが急激に０Ｖまで降下しており、電荷注入電極３０８の急速な放電が起こっている。また書き込まれた値も３．９Ｖ、書き込み終了時間０．５μｓｅｃと、ＶＦＧは非常に精度よくかつ超高速で目的値に収束していることがわかる。本第３の実施例によって、さらに高速、高精度のアナログデータ書き込みが実現した。
【００５１】
また本セルにおいても、第１、第２の実施例で述べた、異なった方式で書き込み制御のためのデータを設定してもよいことは言うまでもない。即ち、第２の実施例と同様、出力端子３０５や電極３０７にＶｍの値を与えて、ＶＧ１を所定の書き込み値Ｖｍにした後、スイッチ４０６をオンしてＶＳを０Ｖにし、その後スイッチ４０６をオフすることによってデータ設定を行う等の方式を用いてもよい。
【００５２】
また本実施例では、リセットスイッチ４０９を用いる場合を説明したが、これは例えば図３で用いたスイッチ３１６を用いてもよいことは言うまでもない。
【００５３】
また本実施例ではインバータ４０３の出力によってＮＭＯＳ４０２をオン・オフ制御しているが、このインバータ４０３をなくしＮＭＯＳ４０２をＰＭＯＳに変更しても本発明の効果にはなんら変わりはない。書き込み制御のためのインバータ４０４は、書き込み終了させたいときに０Ｖを出力するために、書き込み終了のためにＮＭＯＳをオンさせることができない。よって出力を反転させるインバータ４０３を用いている。また、書き込み制御インバータ４０４の出力に２段以上インバータをいれて端子３０７と端子３０８間を短絡するためのＭＯＳを適当なチャネルのものを選んでも本発明の効果にはなんら変わりないことは言うまでもない。
【００５４】
本実施例で用いたインバータ４０４は、その反転電圧が０Ｖという特殊なものを用いているが、これは通常のＶＤＤ／２の用いてもなんら効果に変わりはなく、その場合ΦＣ１＝ＶＦＧ−Ｖｍ＝ＶＤＤ／２が書き込み終了の条件となり、ＶＦＧ＝ＶＤＤ／２＋Ｖｍが書き込まれる電圧となる。この変化分を見越して制御すれば目標値を書き込むことができる。
【００５５】
また本実施例で、一度書き込まれたフローティングゲート３０２の値を変更するには、第２の実施例と全く同じ方法が適用できる。第１の実施例で必要とした、電気的消去後にフローティングゲートの電圧を読み出すという作業は必要ない。
【００５６】
（実施例４）
図６は本発明の第４の実施例をしめす図面である。構成は図４とほぼ同じであり、同じ部分にはすべて図４と同じ番号がつけてある。異なる点はフローティングゲート４０５がスイッチ４０６を介してインバータの出力端子６０１に接続されている点である。これにより書き込み精度をさらに向上させることができた。
【００５７】
書き込みデータのセッティングは、例えば出力端子の電圧ＶＯＵＴをＶｍにし、ゲート電極４０８を所定の書き込み電圧Ｖｍに設定し、スイッチ４０６をオンにすることによって行う。こうすると、インバータ４０４は、入力電圧と出力電圧が等しくなる点、即ちインバータの反転電圧の状態にリセットされる。この状態でスイッチ４０６をオフすれば、４０８が再びＶｍになったときにインバータ４０４は正確に反転するようになる。このリセット方式を用いるとインバータの反転閾値が設計からずれた値であってもＶｍになった時には出力が反転するので、例えば製造プロセスのゆらぎによってチップ毎にＮＭＯＳ４０４ａ、ＰＭＯＳ４０４ｂの寸法や閾電圧にゆらぎが生じても、これらのゆらぎの効果は全くなくなり、いかなる時でもＶＧ１＝Ｖｍとなったときに書き込み制御用インバータ４０４が反転し、トンネル注入を中止する。これによって非常に高精度なアナログデータ書き込みを実現できるのである。
【００５８】
上の第４の実施例では、ゲート電極４０８の電位をＶｍに設定する際、ＶＯＵＴの端子に直接外部より電圧を与える場合を説明した。メモリセルをマトリクス状にしたときは、選択的な書き込みを行うために適宜スイッチトランジスタを設けて選択できるようにしてもよいことは言うまでもない。また適宜ソースフォロワトランジスタ３０１と切り放すスイッチを設けてもよい。
【００５９】
（実施例５）
図７は、本発明の第５の実施例を示す図面である。大部分の構成は図６と同様であり、同じ部位には同じ番号がつけてある。大きく異なる点は図６の電極４０８が、図７では２つの電極７０１、７０２に分割されていること、及びセレクトスイッチ７０３が設けられたことである。この発明により、一度フローティングゲート３０２にデータを書き込んだ後、その電圧値ＶＦＧの小さな修正が可能となった。スイッチ７０３が７０１側に接続された状態のまま動作させる時は第６の実施例と全く同じ動作をする。さて動作の小修正を行うには以下のようにすればよい。
【００６０】
スイッチ７０３は７０１側に倒した状態で、スイッチ４０９をオフし、トランジスタ３０１のソースフォロワ回路を働かせる。そうするとゲート７０１、７０２の電位は等しくなり、ＶＧ１’＝ＶＧ１”＝ＶＦＧとなる。この状態でスイッチ４０６をオンし、インバータを反転電圧の状態にリセットする。その後スイッチ４０６をオフにした後、スイッチ７０３をアース側に倒す。こうすると電極７０２によってフローティングゲート４０５の電圧が引き下げられる。つまり反転電圧の状態にリセットされていたインバータ４０４の入力ゲートの電圧が下がるため出力がＶＤＤになり、これがインバータ４０３で反転されてゲート４０２の電位を０Ｖとするために、トランジスタ４０１はオフとなった状態となる。この状態でプログラミング電圧印加用端子に例えばＶＥＸＴ＝２５Ｖを加えれば、ＶＦＧの値がΔＶＦＧ増加したときにＮＭＯＳ４０１がオンしてプログラミングが終わる。ここでΔＶＦＧは、インバータ４０４の反転閾値電圧と、電極７０２によって引き下げられた後のインバータ４０４のゲート電圧の差となる。今ゲート電極７０１と７０２の容量結合係数の比をｎ：１とすると
【００６１】
【数９】
ΔＶＦＧ  ＝  ＶＦＧ  ／  ｎ    …  （９）
となる。ここでｎを大きくすればするほど細かい微調整ができる。またスイッチ７０３のアース側を所定の電位にすればさらに細かな微調整ができる。もちろん第４の実施例同様のデータ消去、更新を行うこともできる。
【００６２】
書き込み制御用のインバータ４０４の出力に接続するインバーターの個数は、第４の実施例同様、０個以上の任意の数であったとしても本発明の効果に変わりはない。
【００６３】
以上第１〜第５の実施例においては、トランジスタ１０１、３０１、１１２、３１２、４０１等はＮＭＯＳである場合を述べたが、電源電圧を調節し、ＰＭＯＳを用いてもよいことは言うまでもない。また、例えば図７のインバータ４０３、４０４の如き書き込み制御用のための回路は各セルに一つずつ配置するのではなく、いくつかのセルで１つを共用し、スイッチで切り替えて使ってもよいことは言うまでもない。
【００６４】
【発明の効果】
本発明によれば、高速で且つ高精度なアナログデータ書き込み可能な不揮発性半導体メモリを提供できる。
【図面の簡単な説明】
【図１】第１の実施例を示す回路図である。
【図２】ＨＳＰＩＣＥシミュレーションで求めた結果を示すグラフである。
【図３】第２の実施例を示す回路図である。
【図４】第３の実施例を示す回路図である。
【図５】ＨＳＰＩＣＥシミュレーションで求めた結果を示すグラフである。
【図６】第４の実施例を示す回路図である。
【図７】第５の実施例を示す回路図である。
【図８】従来例を示す回路図である。
【図９】ＨＳＰＩＣＥシミュレーションで求めた結果を示すグラフである。
【図１０】図９のグラフの時間を対数軸としたグラフである。
【符号の説明】
１０１、３０１、８０２  ＮＭＯＳトランジスタ、
１０２、１１３、３０２、３１３、８０１  フローティングゲート、
１０３  ＮＭＯＳのドレイン、
１０４、３０４  電源ライン、
１０５、３０５  ソース、
１０６  外部の容量負荷、
１０７、３０７  電極、
１０８、３０８  電荷注入電極、
１０９、３０９  トンネル接合、
１１０  容量、
１１１、３１１  プログラム電圧（ＶＥＸＴ）印加用端子、
１１２  ＮＭＯＳトランジスタ、
１１４、３１４、３１６、４０６、４０９  スイッチ、
１１５、４０７  信号線、
３０３  ドレイン電極、
３０６  外部負荷（例えば容量負荷係数Ｃ０をもつコンデンサ）、
３１０  結合容量、
３１２  制御用ＮＭＯＳトランジスタ、
３１５  独立のゲート電極、
４０１  エンハンスメント型ＮＭＯＳ、
４０２  ゲート電極、
４０３  インバータ、
４０４  ＣＭＯＳインバータ、
４０４ａ  ＮＭＯＳ、
４０４ｂ  ＰＭＯＳ、
４０５  ゲート、
４０８  制御ゲート、
７０１、７０２  電極、
７０３  セレクトスイッチ、
８０３  プログラム電極、
８０４  トンネル接合部、
８０５  接地電極。
【図１】
0003569728.tif 000007
【図２】
0003569728.tif 000008
【図３】
0003569728.tif 000009
【図４】
0003569728.tif 000010
【図５】
0003569728.tif 000011
【図６】
0003569728.tif 000012
【図７】
0003569728.tif 000013
【図８】
0003569728.tif 000014
【図９】
0003569728.tif 000015
【図１０】
0003569728.tif 000016