(57)【要約】 【課題】高集積化が可能なルックアップテーブル回路および不揮発性記憶装置を提供する。【解決手段】本実施形態によるルックアップテーブル回路は、ｍ（ｍ≧１）本の第１配線と、前記第１配線に交差する２本の第２配線と、前記第１配線と前記第２配線との交差領域に設けられた複数の抵抗変化素子であって、各抵抗変化素子は、対応する前記第１配線に接続された第１電極と、対応する前記第２配線に接続された第２電極と、前記第１電極と前記第２電極との間に設けられた抵抗変化層と、を有し、前記第１電極と前記第２電極との間の抵抗状態を低抵抗状態および高抵抗状態のいずれか一方の状態から他方の状態にプログラム可能である複数の抵抗変化素子と、前記第１配線に印加する電圧を制御する第１制御部と、前記第２配線に印加する電圧を制御する第２制御部と、前記ｍ本の第１配線のうちから一本の配線を選択して選択した第１配線の電位を出力するマルチプレクサと、を備えている。【選択図】図１
2016129318.tif 000002
【特許請求の範囲】
【請求項１】
ｍ（ｍ≧１）本の第１配線と、
前記第１配線に交差する２本の第２配線と、
前記第１配線と前記第２配線との交差領域に設けられた複数の抵抗変化素子であって、各抵抗変化素子は、対応する前記第１配線に接続された第１電極と、対応する前記第２配線に接続された第２電極と、前記第１電極と前記第２電極との間に設けられた抵抗変化層と、を有し、前記第１電極と前記第２電極との間の抵抗状態を低抵抗状態および高抵抗状態のいずれか一方の状態から他方の状態にプログラム可能である複数の抵抗変化素子と、
前記第１配線に印加する電圧を制御する第１制御部と、
前記第２配線に印加する電圧を制御する第２制御部と、
前記ｍ本の第１配線のうちから一本の配線を選択して選択した第１配線の電位を出力するマルチプレクサと、
を備えたルックアップテーブル回路。
【請求項２】
ｍ（ｍ≧１）本の第１配線と、
前記第１配線に交差する２本の第２配線と、
前記第１配線と前記第２配線との交差領域に設けられた複数の抵抗変化素子であって、各抵抗変化素子は、対応する前記第１配線に接続された第１電極と、対応する前記第２配線に接続された第２電極と、前記第１電極と前記第２電極との間に設けられた抵抗変化層と、を有し、前記第１電極と前記第２電極との間の抵抗状態を低抵抗状態および高抵抗状態のいずれか一方の状態から他方の状態にプログラム可能である複数の抵抗変化素子と、
前記第１配線に印加する電圧を制御する第１制御部と、
前記第２配線に印加する電圧を制御する第２制御部と、
前記ｍ本の第１配線に対応して設けられ、対応する第１配線に接続された抵抗変化素子をプログラムする際に前記抵抗変化素子に流れる電流を制限するｍ個の電流制限回路と、
前記ｍ本の第１配線のうちから一本の配線を選択して選択した第１配線の電位を出力するマルチプレクサと、
を備えたルックアップテーブル回路。
【請求項３】
ｍ（ｍ≧１）本の第１配線と、
前記第１配線に交差する２本の第２配線と、
前記第１配線と前記第２配線との交差領域に設けられた複数の抵抗変化素子であって、各抵抗変化素子は、対応する前記第１配線に接続された第１電極と、対応する前記第２配線に接続された第２電極と、前記第１電極と前記第２電極との間に設けられた抵抗変化層と、を有し、前記第１電極と前記第２電極との間の抵抗状態を低抵抗状態および高抵抗状態のいずれか一方の状態から他方の状態にプログラム可能である複数の抵抗変化素子と、
前記第１配線に印加する電圧を制御する第１制御部と、
前記第２配線に印加する電圧を制御する第２制御部と、
前記ｍ本の第１配線のうちから一本の配線を選択して選択した第１配線の電位を出力するマルチプレクサと、
を備え、
前記第１制御部は、ソースが接地電源に接続され、ドレインが前記ｍ本の第１配線のうち少なくとも１本に接続されたＮチャネルトランジスタを有し、
前記第２制御部は、ソースが、プログラム電圧を発生する電源に接続され、ドレインが前記２本の第２配線のうち少なくとも１本に接続されたＰチャネルトランジスタを有しているルックアップテーブル回路。
【請求項４】
前記第１制御部は、前記抵抗変化素子に流れる電流を制限する電流制限回路を更に備えた請求項３記載のルックアップテーブル回路。
【請求項５】
前記抵抗変化素子の前記抵抗変化層はハフニウム酸窒化物を含む請求項１乃至４のいずれかに記載のルックアップテーブル回路。
【請求項６】
前記抗変化素子の前記抵抗変化層はハフニウム酸化物を含む請求項１乃至５のいずれかに記載のルックアップテーブル回路。
【請求項７】
前記抵抗変化素子の前記第１電極と前記第２電極のいずれかはニッケルを含む請求項１乃至６のいずれかに記載のルックアップテーブル回路。
【請求項８】
前記抵抗変化素子の前記第１電極と前記第２電極のいずれかは窒化チタンを含む請求項１乃至７のいずれかに記載のルックアップテーブル回路。
【請求項９】
前記２本の第２配線のそれぞれと前記第２制御部との間に設けられた第３トランジスタを更に備えた請求項１乃至８のいずれかに記載のルックアップテーブル回路。
【請求項１０】
前記ｍ本の第１配線のそれぞれと前記第１制御部との間に設けられた第４トランジスタを更に備えた請求項１乃至９のいずれかに記載のルックアップテーブル回路。
【請求項１１】
前記第１制御部は前記第１配線から１本の第１配線を選択し、この選択した第１配線に第１電圧を印加し、
前記第２制御部は前記第２配線から１本の第２配線を選択し、この選択した第２配線に前記第１電圧よりも大きい第２電圧を印加し、
前記第１制御部は非選択の第１配線に前記第１電圧と前記第２電圧との間の電圧である第３電圧を印加し、
前記第２制御部は非選択の第２配線に前記第１電圧と前記第２電圧との間の電圧である第４電圧を印加する
請求項１乃至１０のいずれかに記載のルックアップテーブル回路。
【請求項１２】
ｍ（ｍ≧１）本の第１配線と、
前記第１配線に交差するｎ（ｎ≧１）本の第２配線と、
前記第１配線と前記第２配線との交差領域に設けられた抵抗変化素子であって、各抵抗変化素子は、対応する前記第１配線に接続された第１電極と、対応する前記第２配線に接続された第２電極と、前記第１電極と前記第２電極との間に設けられハフニウム酸窒化膜およびハフニウム酸化膜含む積層構造を備え、前記ハフニウム酸窒化膜は前記ハフニウム酸化膜に対して前記第１および第２電極の少なくとも一方に近い位置に配置される抵抗変化層と、を有し、前記第１電極と前記第２電極との間の抵抗状態が可変である抵抗変化素子と、
前記第１配線に印加する電圧を制御する第１制御部と、
前記第２配線に印加する電圧を制御する第２制御部と、
を備えた不揮発性記憶装置。
【請求項１３】
前記第１電極はニッケルを含み前記第２電極は窒化チタンを含む請求項１２記載の不揮発性記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、ルックアップテーブル回路および不揮発性記憶装置に関する。
【背景技術】
【０００２】
ルックアップテーブル回路は、論理をメモリに記憶させておき、そのメモリに記憶されている内容によって出力を制御する回路である。このルックアップテーブル回路を有する論理回路は、任意の論理に対応できるリコンフィギュラブル論理回路となるが、素子数が多いため、高集積化しにくい回路となっている。
【０００３】
半導体のＣＭＯＳ技術によってルックアップテーブル回路を作製する場合、情報を記憶するメモリとしてＳＲＡＭ(Static Random Access Memory)が用いられる。このため、素子数が多くなってしまい、高集積化を妨げる要因の一つとなっている。更に、ＳＲＡＭは電源を切ると情報が失われてしまう揮発性メモリであるため、電源投入をする毎に外部メモリに蓄えていた情報を書き込む必要がある。
【０００４】
このため、電源投入時に手間と時間がかかるという課題がある。また、電源切断時に情報を蓄えておくための外部メモリを確保しておく必要があり、外部メモリのために消費電力および容積が必要になるという課題がある。このため、システム全体での高集積化および低消費電力化を妨げる要因の一つとなっている。
【０００５】
ＦＰＧＡ(Field Programmable Gate Array)において標準的に用いられている４入力１出力のルックアップテーブル回路の場合、素子数は１６６個程度になる。そのうちＳＲＡＭは９６個程度の素子を必要とする。したがって、ルックアップテーブル回路全体の素子数のうちＳＲＡＭが占める割合が大きく、これを削減することができればルックアップテーブル回路の素子数を大きく削減することができる。ルックアップテーブル回路はＦＰＧＡの基本的な回路であり、チップ内に多数含まれているルックアップテーブル回路の素子数が削減できれば、高集積化に寄与することができる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１２−１６９０２３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本実施形態は、高集積化が可能なルックアップテーブル回路および不揮発性記憶装置を提供する。
【課題を解決するための手段】
【０００８】
本実施形態によるルックアップテーブル回路は、ｍ（ｍ≧１）本の第１配線と、前記第１配線に交差する２本の第２配線と、前記第１配線と前記第２配線との交差領域に設けられた複数の抵抗変化素子であって、各抵抗変化素子は、対応する前記第１配線に接続された第１電極と、対応する前記第２配線に接続された第２電極と、前記第１電極と前記第２電極との間に設けられた抵抗変化層と、を有し、前記第１電極と前記第２電極との間の抵抗状態を低抵抗状態および高抵抗状態のいずれか一方の状態から他方の状態にプログラム可能である複数の抵抗変化素子と、前記第１配線に印加する電圧を制御する第１制御部と、前記第２配線に印加する電圧を制御する第２制御部と、前記ｍ本の第１配線のうちから一本の配線を選択して選択した第１配線の電位を出力するマルチプレクサと、を備えている。
【図面の簡単な説明】
【０００９】
【図１】第１実施形態によるルックアップテーブル回路を示す回路図。
【図２】第１実施形態に用いられる抵抗変化素子の一例を示す断面図。
【図３Ａ】第１実施形態に用いられる抵抗変化素子の他の例を示す断面図。
【図３Ｂ】第１実施形態に用いられる抵抗変化素子の他の例を示す断面図。
【図４】第１実施形態に用いられる抵抗変化素子および比較例の抵抗変化素子それぞれのリセット電圧の測定結果を示す図。
【図５】上部電極の材料を変えた抵抗変化素子それぞれにおけるｏｎ抵抗とｏｆｆ抵抗との比を示す図。
【図６】第１実施形態のロウデコード部の一具体例を示す回路図。
【図７】第１実施形態のカラムデコード部の一具体例を示す回路図。
【図８】第１実施形態のロウデコード部の他の具体例を示す回路図。
【図９】第１実施形態によるルックアップテーブル回路の書込み方法を説明する図。
【図１０】第１実施形態によるルックアップテーブル回路の動作を説明する図。
【図１１】第１実施形態におけるマルチプレクサの一具体例を示す回路。
【図１２】第２実施形態によるルックアップテーブル回路およびプログラム方法を説明する図。
【図１３Ａ】電流制限回路の一具体例を示す回路図。
【図１３Ｂ】電流制限回路の他の具体例を示す回路図。
【図１４】第３実施形態による不揮発性記憶装置を示すブロック図。
【図１５】第３実施形態の不揮発性記憶装置の具体的な構成を示す回路図。
【発明を実施するための形態】
【００１０】
以下に図面を参照して実施形態について説明する。
【００１１】
（第１実施形態）
第１実施形態によるルックアップテーブル回路を図１に示す。この実施形態によるルックアップテーブル回路は複数のブロックを有している。各ブロックは、２本のビット線ＢＬ１、ＢＬ２からなるビット線群と、これらのビット線に交差する複数のワード線ＷＬ１、ＷＬ２、・・・、ＷＬｍ（ｍ≧２）と、各ワード線ＷＬｉ（ｉ＝１，・・・，ｍ）と各ビット線ＢＬｊ（ｊ＝１，２）との交差領域に設けられたメモリセル２ｉｊと、Ｎチャネルトランジスタ１２１、１２２と、Ｐチャネルトランジスタ１４１、１４２と、Ｎチャネルトランジスタ２０１、・・・、２０ｍと、インバータ２２ｉと、Ｎチャネルトランジスタ２４１、・・・、２４ｍと、ロウデコーダ（ロウ制御部）１００と、カラムデコーダ（カラム制御部）２００と、マルチプレクサ３００と、を備えている。ロウデコーダ１００は、ワード線ＷＬ１、ＷＬ２、・・・、ＷＬｍ（ｍ≧２）に対応して設けられたロウデコード部（副ロウ制御部）１００１、・・・、１００ｍを有している。カラムデコーダ２００は、ビット線ＢＬ１、ＢＬ２に対応して設けられたカラムデコード部（副カラム制御部）２００１、２００２を有している。以下では、各ワード線ＷＬｉ（ｉ＝１，・・・，ｍ）と各ビット線ＢＬｊ（ｊ＝１，２）との交差領域に設けられたメモリセル２ｉｊを有している構造のことをクロスポイント構造と称する。
【００１２】
なお、上記説明では、各ブロックに対応してロウデコーダ１００およびカラムデコーダ２００が設けられている。しかし、複数のブロックがマトリクス状に配列されている場合は、同じ行のブロックがロウデコーダ１００を共有し、同じ列のブロックがカラムデコーダ２００を共有するように構成してもよい。
【００１３】
各ワード線ＷＬｉ（ｉ＝１，・・・，ｍ）には、メモリセル２11、２ｉｎ１2の一端が接続される。各ビット線ＢＬｊ（ｊ＝１，２）にはメモリセル２１ｊ〜２ｍｊの他端が接続される。各ワード線ＷＬｉ（ｉ＝１，・・・，ｍ）にはトランジスタ２４ｉを介してロウデコード部１００ｉが接続される。各トランジスタ２４ｉ（ｉ＝１，・・・，ｍ）はゲートが配線ＣＬ３に接続される。各ビット線ＢＬｊ（ｊ＝１，２）にはトランジスタ１４ｊを介してカラムデコード部２００ｊが接続される。各トランジスタ１４ｊ（ｊ＝１，２）は、ゲートが配線ＣＬ４に接続される。
【００１４】
ロウデコード部１００１〜１００ｍによって特定のブロックと、この特定のブロック内の特定のワード線が選択され、この選択されたブロックにおける選択されたワード線に電圧を印加することが可能である。カラムデコード部２００１、２００２によって特定のブロックと、この特定のブロック内の特定のビット線が選択され、この選択されたブロックにおける選択されたビット線に電圧を印加することが可能である。すなわち、選択されたブロックにおける選択したメモリセルをプログラムすることができる。なお、後述するように、ロウデコード部１００１〜１００ｍは複数のワード線に印加する電圧を制御し、カラムデコード部２００１、２００２は、複数のビット線に印加する電圧を制御する。
【００１５】
入力線ＩＮｊ（ｊ＝１，２）を介して入力された信号は、トランジスタ１２ｊを介してビット線ＢＬｊに入力される。メモリセル２ｉｊ（ｉ＝１，・・・，ｍ、ｊ＝１，２）から読み出された情報は、トランジスタ２０ｉ、インバータ２２ｉを介してマルチプレクサ３００に送られる。各トランジスタ１２ｊ（ｊ＝１，２）は、ゲートが配線ＣＬ１に接続される。各トランジスタ２０ｉ（ｉ＝１，・・・，ｍ）は、ゲートが配線ＣＬ２に接続される。
【００１６】
マルチプレクサ３００は、制御線Ｄ１〜Ｄｎの信号値に基づいて、ｍ個のインバータ２２１〜２２ｍの出力から１つの出力を選択する。
【００１７】
（抵抗変化素子）
本実施形態においては、メモリセル２ｉｊ（ｉ＝１，・・・，ｍ、ｊ＝１，２）は、不揮発性の抵抗変化素子である。抵抗変化素子は２つの端子（電極）を有し、端子間の抵抗を低抵抗状態（Low Resistive State: ＬＲＳ）あるいは高抵抗状態（High Resistive State: ＨＲＳ）にすることができる。これらの状態変化を実現するためには、抵抗変化素子の端子間に所定のプログラム電圧を印加する。ここでは、抵抗変化素子をＨＲＳからＬＲＳに変化させることをセットと称し、逆にＬＲＳからＨＲＳに変化させることをリセットと称する。
【００１８】
本実施形態に用いられる抵抗変化素子の一例を図２に示す。この抵抗変化素子２は上部電極２ａと、下部電極２ｂと、上部電極２ａと下部電極２ｂの間に設けられた抵抗変化層４とを含む。上部電極２ａはニッケル（Ｎｉ）から構成され、下部電極２ｂは窒化チタン（ＴｉＮ）から構成される。抵抗変化層４は、ハフニウム酸窒化物（ＨｆＯｙＮｚ（０＜ｙ≦２、０＜ｚ≦２））からなる層４ａと、ハフニウム酸化物（ＨｆＯｘ（０＜ｘ≦２））からなる層４ｂとを有している。図２においては、ＨｆＯｙＮｚ（０＜ｙ≦２、０＜ｚ≦２）からなる層４ａが上部電極２ａの側に設けられ、ＨｆＯｘ（０＜ｘ≦２）からなる層４ｂが下部電極２ｂの側に設けられていたが、逆であってもよい。すなわち、ＨｆＯｙＮｚ（０＜ｙ≦２、０＜ｚ≦２）からなる層４ａが下部電極２ｂの側に設けられ、ＨｆＯｘ（０＜ｘ≦２）からなる層４ｂが上部電極２ａの側に設けられていてもよい。また、抵抗変化素子２は、図３Ａに示すように、ＨｆＯｙＮｚ（０＜ｙ≦２、０＜ｚ≦２）からなる層４ａと上部電極２ａとの間にＨｆＯｘ（０＜ｘ≦２）からなる層４ｃを設けた積層構造を有していてもよいし、図３Ｂに示すように、ＨｆＯｘ（０＜ｘ≦２）からなる層４ｂと下部電極２ｂとの間にＨｆＯｙＮｚ（０＜ｙ≦２、０＜ｚ≦２）からなる層４ｄを設けた積層構造を有していてもよい。
【００１９】
本実施形態に用いられる抵抗変化素子はユニポーラ型の抵抗変化素子である。すなわち、抵抗変化素子をセットする際に印加する電圧の極性と、リセットする際に印加する電圧の極性が同一である。例えば、本実施形態に用いられる抵抗変化素子をセットする際には下部電極２ｂに印加する電圧よりも大きい電圧を上部電極２ａに印加する。同様に、この抵抗変化素子をリセットする際にも下部電極２ｂに印加する電圧よりも大きい電圧を上部電極２ａに印加する。
【００２０】
次に、本実施形態に用いられる抵抗変化素子２のように、抵抗変化層４としてＨｆＯｙＮｚ（０＜ｙ≦２、０＜ｚ≦２）からなる層４ａを有している場合は、抵抗変化素子のリセット電圧が上昇することについて図４を参照して説明する。抵抗変化層がＨｆＯｘ（０＜ｘ≦２）からなる層である場合の抵抗変化素子（比較例）と、図２に示すように抵抗変化層４がＨｆＯｙＮｚ（０＜ｙ≦２、０＜ｚ≦２）からなる層４ａと、ＨｆＯｘ（０＜ｘ≦２）からなる層４ｂとを有している場合の抵抗変化素子とをそれぞれ作製し、リセット電圧を計測した結果を図４に示す。図４からわかるように、本実施形態に用いられる抵抗変化素子２は、比較例の抵抗変化素子に比べて、リセット電圧が高くなっていることがわかる。本実施形態の抵抗変化素子のように、リセット電圧を高くすることが可能となることにより、例えば読み出し時に、電源電圧が抵抗変化素子に印加されても、抵抗変化素子がリセットされることを抑制することが可能となり、抵抗変化素子に書き込まれた情報が破壊されるのを抑制することができる。
【００２１】
次に、本実施形態に用いられる抵抗変化素子２のように、上部電極２ａとしてニッケル（Ｎｉ）、チタン（Ｔｉ）、窒化チタン（ＴｉＮ）、タングステン（Ｗ）、タンタル（Ｔａ）をそれぞれ用いた場合の抵抗変化素子それぞれ作製し、各抵抗変化素子におけるオフ抵抗Ｒｏｆｆとオン抵抗Ｒｏｎとの比（＝Ｒｏｆｆ／Ｒｏｎ）を測定した結果を図５に示す。なお、いずれの抵抗変化素子においても、下部電極は第１実施形態と同様にＴｉＮであった。この図５からわかるように、上部電極としてＮｉを用いた抵抗変化素子が比Ｒｏｆｆ／Ｒｏｎが一番大きいことがわかる。後述のように、回路の動作時には、オン状態の抵抗変化素子を介して信号を伝達するため、オン抵抗Ｒｏｎが小さいほうが信号の伝達速度が速くなる。また、回路の動作時には、オフ状態の抵抗変化素子によって信号を遮断するため、オフ抵抗Ｒｏｆｆが大きいほうがリーク電流を小さく抑えることができ、消費電力の発生を抑えることができる。したがって、比Ｒｏｆｆ／Ｒｏｎは大きいほうが望ましい。
【００２２】
（ロウデコード部の一具体例）
次に、本実施形態におけるロウデコード部１００ｉ（ｉ＝１，・・・，ｍ）の一具体例を図６の左側に示す。
【００２３】
ここで、プログラム電圧Ｖｐｇｍは抵抗変化素子をセットあるいはリセットさせるのに必要な電圧である。典型的には、セットの際のＶｐｇｍは３Ｖ程度であり、リセットの際のＶｐｇｍは２Ｖ程度である。プログラム防止電圧Ｖｉｎｈは、プログラム電圧Ｖｐｇｍと接地電圧（０Ｖ）の間の電圧であり、好ましくはＶｐｇｍの半分の値の電圧である。
【００２４】
この一具体例のロウデコード部１００ｉは、ＮＯＲゲート１０２と、ＮＡＮＤゲート１０４、１０６と、ＡＮＤゲート１０８、１１０と、Ｐチャネルトランジスタ１１２と、Ｎチャネルトランジスタ１１４，１１６と、電流制限用のＮチャネルトランジスタ１１８とを備えている。
【００２５】
ＮＯＲゲート１０２は、セットイネーブルＳおよびリセットイネーブルＲに基づいてＮＯＲ演算を行い、演算結果をＮＡＮＤゲート１０４に送る。ＮＡＮＤゲート１０４は、ワード線を選択するローカルアドレスＬおよびＮＯＲゲート１０２の出力に基づいてＮＡＮＤ演算を行い、演算結果をＮＡＮＤゲート１０６に送る。ＮＡＮＤゲート１０６は、ブロックを選択するブロックアドレスＢおよびＮＡＮＤゲート１０４の出力に基づいてＮＡＮＤ演算を行い、演算結果をＰチャネルトランジスタ１１２のゲートに送る。  ＡＮＤゲート１０８は、ブロックアドレスＢおよびローカルアドレスＬならびにリセットイネーブルＲに基づいてＡＮＤ演算を行い、演算結果をＮチャネルトランジスタ１１４のゲートに送る。ＡＮＤゲート１１０は、ブロックアドレスＢおよびローカルアドレスＬならびにセットイネーブルＳに基づいてＡＮＤ演算を行い、演算結果をＮチャネルトランジスタ１１６のゲートに送る。
【００２６】
Ｐチャネルトランジスタ１１２はソースにＶｉｎｈが印加され、ドレインが出力端子ＯＵＴおよびＮチャネルトランジスタ１１４のドレインに接続される。ここで、Ｖｐｇｍは、抵抗変化素子２がプログラムされる、すなわちセットするのに必要なプログラム電圧を示す。Ｎチャネルトランジスタ１１４はドレインが出力端子ＯＵＴに接続され、ソースが接地される。Ｎチャネルトランジスタ１１６はドレインが出力端子ＯＵＴに接続され、ソースが電流制限用Ｎチャネルトランジスタ１１８のソースに接続される。電流制限用Ｎチャネルトランジスタ１１８は、ドレインが接地され、ゲートに制御電圧Ｖｃｏｍｐ１を受ける。Ｎチャネルトランジスタ１１８はゲートに制御電圧Ｖｃｏｍｐ１を受けると、オン状態になる。
【００２７】
このように構成されたロウデコード部１００ｉの論理演算表を図６の右側に示す。この論理演算表において、スター印＊は、任意の値を示し、（＃）は電流制限用トランジスタ１１８によって出力端子ＯＵＴに接続されるワード線を流れる電流が制限されることを示す。例えばブロックアドレスＢの値が「０」の場合は、ローカルアドレスＬ、セットイネーブルＳ、およびリセットイネーブルＲの値が「０」および「１」のいずれであっても、Ｐチャネルトランジスタ１１２がオフとなるため、出力端子ＯＵＴの電位はフローティング状態Ｆとなることを示している。
【００２８】
ブロックアドレスＢの値が「１」かつローカルアドレスＬの値が「０」である場合は、セットイネーブルＳおよびリセットイネーブルＲの値が「０」および「１」のいずれであっても、Ｐチャネルトランジスタ１１２がオンするとともにＮチャネルトランジスタ１１４およびＮチャネルトランジスタ１１６がそれぞれオフするため、出力端子ＯＵＴの電位はＶｉｎｈとなる。
【００２９】
ブロックアドレスＢの値が「１」、ローカルアドレスＬの値が「１」、かつセットイネーブルＳおよびリセットイネーブルの値がそれぞれ「０」である場合は、Ｐチャネルトランジスタ１１２がオンするとともにＮチャネルトランジスタ１１４およびＮチャネルトランジスタ１１６がそれぞれオフするため、出力端子ＯＵＴの電位はＶｉｎｈとなる。
【００３０】
ブロックアドレスＢの値が「１」、ローカルアドレスＬの値が「１」、セットイネーブルＳの値が「１」、およびリセットイネーブルの値が「０」である場合は、Ｐチャネルトランジスタ１１２およびＮチャネルトランジスタ１１４がそれぞれオフし、かつＮチャネルトランジスタ１１６がオンするため出力端子ＯＵＴの電位は０となる。なお、このとき、Ｎチャネルトランジスタによって、出力端子ＯＵＴに接続されるワード線の流れる電流が制限される。
【００３１】
ブロックアドレスＢの値が「１」、ローカルアドレスＬの値が「１」、セットイネーブルＳの値が「０」、およびリセットイネーブルの値が「１」である場合は、Ｐチャネルトランジスタ１１２がオフし、Ｎチャネルトランジスタ１１４がオンし、かつＮチャネルトランジスタ１１６がオフするため出力端子ＯＵＴの電位は０となる。
【００３２】
（カラムデコード部の一具体例）
次に、本実施形態におけるカラムデコード部２００ｊ（ｊ＝１，２）の一具体例を図７の左側に示す。この一具体例のカラムデコード部２００ｊは、ＮＯＲゲート２０２と、ＮＡＮＤゲート２０４、２０６、２０８と、Ｐチャネルトランジスタ２１０、２１２と、を備えている。
【００３３】
ＮＯＲゲート２０４は、セットイネーブルＳおよびリセットイネーブルＲに基づいてＮＯＲ演算を行い、演算結果をＮＡＮＤゲート２０４およびＮＡＮＤゲート２０８に送る。ＮＡＮＤゲート２０４は、ローカルアドレスＬおよびＮＯＲゲート２０２の出力に基づいてＮＡＮＤ演算を行い、演算結果をＮＡＮＤゲート２０６に送る。ＮＡＮＤゲート２０６は、ブロックアドレスＢおよびＮＡＮＤゲート２０４の出力に基づいてＮＡＮＤ演算を行い、演算結果をＰチャネルトランジスタ２１０のゲートに送る。
【００３４】
ＮＡＮＤゲート２０８は、ブロックアドレスＢ、ローカルアドレスＬ、およびＮＯＲゲート２０２の出力に基づいて、ＮＡＮＤ演算を行い、演算結果をＰチャネルトランジスタ２１２のゲートに送る。
【００３５】
Ｐチャネルトランジスタ２１０はソースにＶｉｎｈが印加され、ドレインが出力端子ＯＵＴに接続される。Ｐチャネルトランジスタ２１２はソースにＶｐｇｍが印加され、ドレインが出力端子ＯＵＴに接続される。  
このように構成されたカラムデコード部２００ｊの論理演算表を図７の右側に示す。この論理演算表において、スター印＊は、任意の値を示す。例えば、ブロックアドレスＢの値が「０」の場合は、ローカルアドレスＬ、セットイネーブルＳ、およびリセットイネーブルＲの値が「０」および「１」のいずれであっても、Ｐチャネルトランジスタ２１０および２１２はともにオフ状態となり、出力端子ＯＵＴの電位はフローティング状態Ｆとなることを示している。
【００３６】
ブロックアドレスＢの値が「１」かつローカルアドレスＬの値が「０」である場合は、セットイネーブルＳおよびリセットイネーブルＲの値が「０」および「１」のいずれであっても、Ｐチャネルトランジスタ２１０がオンするとともにＰチャネルトランジスタ２１２がオフするため、出力端子ＯＵＴの電位はＶｉｎｈとなる。
【００３７】
ブロックアドレスＢの値が「１」、ローカルアドレスＬの値が「１」、かつセットイネーブルＳおよびリセットイネーブルの値がそれぞれ「０」である場合は、Ｐチャネルトランジスタ２１０がオンするとともにＰチャネルトランジスタ２１２オフするため、出力端子ＯＵＴの電位はＶｉｎｈとなる。
【００３８】
ブロックアドレスＢの値が「１」、ローカルアドレスＬの値が「１」、セットイネーブルＳの値が「１」、およびリセットイネーブルの値が「０」である場合は、Ｐチャネルトランジスタ２１０がオフし、かつＰチャネルトランジスタ２１２がオンするため出力端子ＯＵＴの電位はＶｐｇｍとなる。
【００３９】
ブロックアドレスＢの値が「１」、ローカルアドレスＬの値が「１」、セットイネーブルＳの値が「０」、およびリセットイネーブルの値が「１」である場合は、Ｐチャネルトランジスタ２１０がオフし、Ｐチャネルトランジスタ２１２がオンするため出力端子ＯＵＴの電位はＶｐｇｍとなる。
【００４０】
上記ロウデコード部およびカラムデコード部の一具体例においては、ロウデコード部には、出力端子ＯＵＴにドレインが接続され、接地電源にソースが接続されたＮチャネルトランジスタ１１４が設けられている。一方で、カラムデコード部には、出力端子ＯＵＴにドレインが接続され、プログラム電圧Ｖｐｇｍを発生する電源にソースが接続されたＰチャネルトランジスタ２１２が設けられている。これらのＮチャネルトランジスタ１１４とＰチャネルトランジスタ２１２には同程度の駆動力が求められるが、同じ駆動力を有するＮチャネルトランジスタとＰチャネルトランジスタを比較すると、Ｎチャネルトランジスタのほうが素子サイズを小さくすることができる。このため、本実施形態のように、カラムデコード部よりも多数のロウデコード部を有する場合には、ロウデコード部の出力端子ＯＵＴにＮチャネルトランジスタのドレインを接続することによって、ルックアップテーブル回路全体の面積を削減することができる。
【００４１】
（ロウデコード部の他の具体例）
次に、本実施形態におけるロウデコード部１００ｉ（ｉ＝１，・・・，ｍ）の他の具体例を図８の左側に示す。この他の具体例のロウデコード部１００ｉは、図６の左側に示すロウデコード部１００ｉにおいて、Ｎチャネルトランジスタ１１４と接地電源との間に電流制限用Ｎチャネルトランジスタ１２０を設けた構成を有している。
【００４２】
この電流制限用Ｎチャネルトランジスタ１２０は、ソースがＮチャネルトランジスタ１１４のソースに接続され、ドレインが接地され、ゲートに制御電圧Ｖｃｏｍｐ２を受ける。この電流制限用Ｎチャネルトランジスタ１２０は、ゲートに制御電圧Ｖｃｏｍｐ２を受けると、オン状態になる。なお、この制御電圧Ｖｃｏｍｐ２は、電流制限用トランジスタ１１８のゲートに印加される制御電圧Ｖｃｏｍｐ１よりも大きくすることが望ましい。なお、リセット電流を確保するために、必要に応じて電流制限用Ｎチャネルトランジスタ１２０を設けなくともよい。この場合は、図６の左側に示す一具体例のロウデコード部１００ｉ（ｉ＝１，・・・，ｍ）となる。
【００４３】
この他の具体例のロウデコード部１００ｉの論理演算表を図８の右側に示す。この図８の右側に示す論理演算表は、図６の右側に示す論理演算表と同一となる。
【００４４】
（プログラム方法）
次に、本実施形態のルックアップテーブル回路における、選択されたメモリセル、すなわち抵抗変化素子をプログラムする方法について図９を参照して説明する。図９は、抵抗変化素子２４１にプログラムする場合、すなわち抵抗変化素子２４１をＨＲＳからＬＲＳに変化させる場合（セットする場合）を説明する図である。図９では、プログラムする抵抗変化素子２４１を破線の丸で囲んでいる。
【００４５】
まず、プログラムする抵抗変化素子が属するブロックを選択する。すなわち、選択するブロックにおいて、例えば図６乃至図８に示すブロックアドレスＢの値を「１」にし、非選択のブロックにはブロックアドレスＢの値を「０」にする。このとき選択されたブロック内において、トランジスタ１２１，１２２およびトランジスタ２０１〜２０ｍをオフにするとともに、トランジスタ１４１、１４２およびトランジスタ２４１〜２４ｍをオンにする。
【００４６】
この状態で、選択されるワード線、例えばＷＬ４に関して、ローカルアドレスＬの値を「１」にし、セットイネーブルＳの値を「１」にし、リセットイネーブルＲの値を「０」にする。非選択のワード線ＷＬｉ（ｉ≠４）に関して、ローカルアドレスＬの値を「０」にし、セットイネーブルＳの値を「０」にし、リセットイネーブルＲの値を「０」にする。これにより、図６の右側の論理表に示すように、選択されたワード線ＷＬ４にはカラムデコード部１００４によって電圧０が与えられ、非選択のワード線ＷＬｉ（ｉ≠４）にはカラムデコード部１００ｉによってプログラム防止電圧Ｖｉｎｈが与えられる（図９参照）。
【００４７】
またこのとき、選択されるビット線、例えばビット線ＢＬ１に関して、ローカルアドレスＬの値を「１」にし、セットイネーブルＳの値を「１」にし、リセットイネーブルＲの値を「０」にする。非選択のビット線ＢＬ２に関して、ローカルアドレスＬの値を「０」にし、セットイネーブルＳの値を「０」にし、リセットイネーブルＲの値を「０」にする。これにより、図７の右側の論理表に示すように、選択されたビット線ＢＬ１にはカラムデコード部２００１によってプログラム電圧Ｖｐｇｍが与えられ、非選択のビット線ＢＬ２には、カラムデコード部２００２によってプログラム防止電圧Ｖｉｎｈが与えられる（図９参照）。
【００４８】
このようにして、選択されたブロック内の選択された抵抗変化素子の両端子間には、プログラム電圧Ｖｐｇｍが印加され、非選択の抵抗変化素子の両端子間には、Ｖｉｎｈあるいは０Ｖが印加される。これにより、選択されたブロック内の選択された抵抗変化素子をプログラムすることができる。
【００４９】
なお、上記説明では、セット動作を行う場合、最初に選択されたワード線に０Ｖを与え、非選択のワード線に電圧Ｖｉｎｈを与え、選択されたビット線に電圧Ｖｐｇｍを与え、非選択のビット線Ｖｉｎｈを与えた。このような方法の代わりに、セット動作する場合は、全てのワード線およびビット線にＶｉｎｈを与えてプリチャージし、その後に、選択されたワード線に０Ｖを印加するとともに選択されたビット線にＶｐｇｍを印加するほうが、より好ましい。なぜならば、この方法を用いると、各電圧が抵抗変化素子の端子に印加されるタイミングにずれがあっても、非選択の抵抗変化素子の両端子の電位差はＶｉｎｈ以下に抑えられ、非選択の抵抗変化素子が誤ってプログラムされるのを防ぐことができるためである。
【００５０】
ところで、抵抗変化素子をＨＲＳからＬＲＳに変化させる際に、抵抗変化素子の端子間に電流が流れすぎるのを防止する機構を設けることが望ましい。抵抗変化素子がＨＲＳにあるうちは、抵抗変化素子の端子間にセット電圧を印加しても発生する電流は小さいが、抵抗変化素子がＬＲＳに遷移する瞬間、あるいは遷移した後には大きな電流が発生し得る。この電流が大きいと、セット後の抵抗変化素子の抵抗値のバラツキが大きくなってしまう。そこで、本実施形態においては、各ロウデコード部１００ｉ（ｉ＝１，・・・，ｍ）には、上記の過剰な電流を抑えるために、電流制限用のトランジスタ１１８が設けられている。
【００５１】
本実施形態においては、カラムデコード部２００ｊには電流制限用のトランジスタを設けていない。しかし、上記のようにロウデコード部１００ｉに電流制限用のトランジスタ１１８を設ける代わりに、例えば、図７に示したカラムデコード部２００ｊにおいて、Ｐチャネルトランジスタ２１２のソースと電圧Ｖｐｇｍとの間に電流制限用のトランジスタを設けることでも、セット時に抵抗変化素子の端子間に電流が流れすぎることを防止できる。しかし、以下の理由から、カラムデコード部には電流制限用のトランジスタを設けず、ロウデコード部のみに電流制限用のトランジスタを設けるほうが好ましい。
【００５２】
本実施形態のルックアップテーブル回路では、同じワード線に接続された複数の抵抗変化素子が同時にＬＲＳになることはないが、同じビット線に接続された複数の抵抗変化素子が同時にＬＲＳになってもよい。例えば、ワード線ＷＬ１に接続された２つの抵抗変化素子２１１と２１２が同時にＬＲＳになることはないが、ビット線ＢＬ１に接続された２つの抵抗変化素子２１１と２４１は同時にＬＲＳになってもよい。したがって、抵抗変化素子２４１をＨＲＳからＬＲＳに変化させる際に、抵抗変化素子２１１の状態はＨＲＳであってもよいし、ＬＲＳであってもよい。ここで図９に示したように、抵抗変化素子２４１をＨＲＳからＬＲＳに変化させる際には、ロウデコード部１００４によってワード線ＷＬ４に０Ｖが印加され、ロウデコード部１００１によってワード線ＷＬ１にＶｉｎｈが印加され、カラムデコード部２００１によってビット線ＢＬ１にＶｐｇｍが印加され、カラムデコード部２００２によってビット線ＢＬ２にＶｉｎｈが印加される。このとき、もし抵抗変化素子２１１の状態がＬＲＳであった場合、ロウデコード部１００１によってワード線ＷＬ１に印加されたＶｉｎｈが、さらにＬＲＳの抵抗変化素子２１１を介してビット線ＢＬ１にも印加される。したがってビット線ＢＬ１にはカラムデコード部２００１によってＶｐｇｍが印加されると同時に、ロウデコード部１００１によって抵抗変化素子２１１を介してＶｉｎｈが印加されるため、ビット線ＢＬ１の電位が不定となる。ここでロウデコード部１００１に電流制限用のトランジスタ１１８が設けられている場合、ロウデコード部１００１がＶｉｎｈをビット線ＢＬ１に伝達する力が電流制限用のトランジスタによって弱められるため、ビット線ＢＬ１の電位はＶｐｇｍとなり、抵抗変化素子２４１の両端子間にはセット電圧が正しく印加される。しかし、もしカラムデコード部２００１に電流制限用のトランジスタが設けられている場合、カラムデコード部２００１がＶｐｇｍをビット線ＢＬ１に伝達する力が電流制限用のトランジスタによって弱められるため、ビット線ＢＬ１の電位はＶｉｎｈとなり、抵抗変化素子２４１の両端子間にはセット電圧が正しく印加されない。以上の理由から、本実施形態のように、電流制限用のトランジスタはカラムデコード部ではなくロウデコード部に設けることが好ましい。
【００５３】
なお、選択されたブロック内の選択された抵抗変化素子をリセットする場合は、選択された抵抗変化素子に関して、セットイネーブルの値を「０」とし、リセットイネーブルの値を「１」とし、非選択の抵抗変化素子に関してセットイネーブルの値を「０」とし、リセットイネーブルの値を「０」とする。これにより、選択された抵抗変化素子が接続されるワード線にはロウデコード部によって電圧０が印加され、選択された抵抗変化素子が接続されるビット線にはリセット電圧Ｖｐｇｍが印加される（図６、図７参照）。これにより、選択された抵抗変化素子の両端子間にはリセット電圧Ｖｐｇｍが印加される。また、非選択の抵抗変化素子が接続されるワード線には電圧Ｖｉｎｈが印加され、非選択の抵抗変化素子が接続されるビット線には電圧Ｖｉｎｈが印加される。これにより、非選択の抵抗変化素子の両端子間にはＶｉｎｈあるいは０Ｖが印加される。このようにして、選択されたブロック内の選択された抵抗変化素子をリセットすることができる。
【００５４】
なお、トランジスタ１２ｊ（ｊ＝１，２）は、抵抗変化素子２ｉｊ（ｉ＝１，・・・，ｍ、ｊ＝１，２）をプログラムするための電圧を入力線ＩＮｊから遮断するためのものであり、抵抗変化素子２ｉｊをプログラム（セットあるいはリセット）するときにはトランジスタ１２ｊ（ｊ＝１，２）はオフ状態にする。図１ではトランジスタ１２ｊ（ｊ＝１，２）としては、Ｎチャネルトランジスタを用いているが、Ｐチャネルトランジスタを用いてもよい。
【００５５】
また、トランジスタ２０ｉ（ｉ＝１，・・・，ｍ）は、抵抗変化素子２ｉｊ（ｉ＝１，・・・，ｍ、ｊ＝１，２）をプログラムするための電圧をインバータ２２ｉから遮断するためのものであり、抵抗変化素子２ｉｊをプログラム（セットあるいはリセット）するときにはトランジスタ２０ｉ（ｊ＝１，・・・，ｍ）はオフ状態にする。ただし、抵抗変化素子のプログラム電圧が小さい場合は、２０ｉ（ｊ＝１，・・・，ｍ）は無くても良い。また、図１ではトランジスタ２０ｉ（ｊ＝１，・・・，ｍ）としては、Ｎチャネルトランジスタを用いているが、Ｐチャネルトランジスタを用いてもよい。
【００５６】
（ルックアップテーブル回路の動作）
次に、本実施形態によるルックアップテーブル回路の動作について図１０を参照して説明する。
【００５７】
抵抗変化素子２ｉ１と２ｉ２（ｉ＝１，・・・，ｍ）は、いずれか一方がＨＲＳに、もう一方がＬＲＳになるようにプログラムされる。例えば抵抗変化素子２１１がＬＲＳならば抵抗変化素子２１２はＨＲＳであり、両者が同時にＬＲＳになることはない。
【００５８】
まず、トランジスタ１２１，１２２およびトランジスタ２０１〜２０ｍをオンにするとともに、トランジスタ１４１、１４２およびトランジスタ２４１〜２４ｍをオフにする。
【００５９】
この状態で、ビット線ＢＬ１、ＢＬ２のうちから１つのビット線、例えばビット線ＢＬ１を選択する。選択したビット線ＢＬ１に接続する入力線ＩＮ１に駆動電圧Ｖｄｄを印加し、非選択のビット線ＢＬ２に接続する入力線ＩＮ２に接地電圧Ｖｓｓを印加する。これにより、選択したビット線ＢＬ１に駆動電圧Ｖｄｄが印加され、このビット線ＢＬ１に接続された抵抗変化素子２ｉ１（ｉ＝１，・・・，ｍ）の抵抗値に応じた電位がワード線ＷＬｉに現れる。例えば、破線の丸で示す抵抗変化素子２４１がＬＲＳである場合には、ワード線ＷＬ４にはＶｄｄが現れる。抵抗変化素子２４１がＨＲＳである場合には、ワード線ＷＬ４には抵抗変化素子２４２を介してＶｓｓが現れる。
【００６０】
このようにしてワード線ＷＬｉ（ｉ＝１，・・・，ｍ）に現れた電位はトランジスタ２０ｉおよびインバータ２２ｉを介してマルチプレクサ３００に送られる。マルチプレクサ３００は、制御線Ｄ１〜Ｄｎの信号値に基づいて、ｍ個のインバータ２２１〜２２ｍの出力から１つの出力を選択する。
【００６１】
マルチプレクサ３００の一具体例の回路を図１１に示す。この具体例のマルチプレクサ３００は、ロウ（行）の数、ワード線の数が１６である場合のものであり、４個の制御線Ｄ１、Ｄ２、Ｄ３、Ｄ４の信号値に基づいて、１６個のインバータ２２１〜２２１６の出力から１つの出力を選択する。
【００６２】
この具体例のマルチプレクサ３００は、各制御線Ｄｋ（ｋ＝１，・・・，４）に対応して設けられたインバータ３１１ｋ、３１２ｋ、３１３ｋと、トランスファーゲート３２０１〜３２０８、３２２１〜３２２８と、トランスファーゲート３３０１〜３３０４および３３２１〜３３２４と、トランスファーゲート３４０１〜３４０２および３４２１〜３４２２と、トランスファーゲート３５０、３５２と、を備えている。各トランスファーゲートは、ソース同士が接続されるとともにドレイン同士が接続されたＰチャネルトランジスタおよびＮチャネルトランジスタを有している。
【００６３】
各制御線Ｄｋ（ｋ＝１，・・・，４）に対応するインバータ３１１ｋおよび３１２ｋは、直列に接続され、インバータ３１１ｋが制御線Ｄｋからの信号を受ける。インバータ３１３ｋ（ｋ＝１，・・・，４）は、制御線Ｄｋからの信号を受ける。
【００６４】
トランスファーゲート３２０ｉ（ｉ＝１，・・・，８）は、入力端子がインバータ２２２ｉ−１の出力端子に接続され、Ｐチャネルトランジスタのゲートがインバータ３１３１の出力に接続され、Ｎチャネルトランジスタのゲートがインバータ３１２１の出力に接続される。トランスファーゲート３２２ｉ（ｉ＝１，・・・，８）は、入力端子がインバータ２２２ｉの出力端子に接続され、Ｐチャネルトランジスタのゲートがインバータ３１２１の出力に接続され、Ｎチャネルトランジスタのゲートがインバータ３１３１の出力に接続される。
【００６５】
トランスファーゲート３３０ｉ（ｉ＝１，・・・，４）は、入力端子がトランスファーゲート３２０２ｉ−１の出力端子およびトランスファーゲート３２２２ｉ−１の出力端子に接続され、Ｐチャネルトランジスタのゲートがインバータ３１３２の出力に接続され、Ｎチャネルトランジスタのゲートがインバータ３１２２の出力に接続される。トランスファーゲート３３２ｉ（ｉ＝１，・・・，４）は、入力端子がトランスファーゲート３２０２ｉの出力端子およびトランスファーゲート３２２２ｉの出力端子に接続され、Ｐチャネルトランジスタのゲートがインバータ３１２２の出力に接続され、Ｎチャネルトランジスタのゲートがインバータ３１３２の出力に接続される。
【００６６】
トランスファーゲート３４０ｉ（ｉ＝１，２）は、入力端子がトランスファーゲート３３０２ｉ−１の出力端子およびトランスファーゲート３３２２ｉ−１の出力端子に接続され、Ｐチャネルトランジスタのゲートがインバータ３１３３の出力に接続され、Ｎチャネルトランジスタのゲートがインバータ３１２３の出力に接続される。トランスファーゲート３４２ｉ（ｉ＝１，２）は、入力端子がトランスファーゲート３３０２ｉの出力端子およびトランスファーゲート３３２２ｉの出力端子に接続され、Ｐチャネルトランジスタのゲートがインバータ３１２３の出力に接続され、Ｎチャネルトランジスタのゲートがインバータ３１３３の出力に接続される。
【００６７】
トランスファーゲート３５０は、入力端子がトランスファーゲート３４０１の出力端子およびトランスファーゲート３４２１の出力端子に接続され、Ｐチャネルトランジスタのゲートがインバータ３１３４の出力に接続され、Ｎチャネルトランジスタのゲートがインバータ３１２４の出力に接続される。トランスファーゲート３５２は、入力端子がトランスファーゲート３４０２の出力端子およびトランスファーゲート３４２２の出力端子に接続され、Ｐチャネルトランジスタのゲートがインバータ３１２４の出力に接続され、Ｎチャネルトランジスタのゲートがインバータ３１３４の出力に接続される。そして、トランスファーゲート３５０の出力端子およびトランスファーゲート３５２の出力端子はマルチプレクサ３００の出力端子ＯＵＴに接続される。
【００６８】
このように構成されたマルチプレクサ３００においては、４個の制御線Ｄ１、Ｄ２、Ｄ３、Ｄ４の信号値に基づいて、１６個のインバータ２２１〜２２１６の出力から１つの出力が選択される。
【００６９】
以上説明したように、第１実施形態によれば、メモリセルとして不揮発性の抵抗変化素子を用いたことにより、高集積化が可能なルックアップテーブル回路を提供することができる。
【００７０】
なお、第１実施形態においては、ビット線は２本であったが、３本以上設けられていてもよい。
【００７１】
（第２実施形態）
第２実施形態によるルックアップテーブル回路を図１２に示す。この第２実施形態のルックアップテーブル回路は、図１に示す第１実施形態のルックアップテーブル回路において、トランジスタ１４１，１４２を削除するとともにトランジスタ２４１〜２４ｍを削除し、かつロウデコーダ１００をロウデコーダ（ロウ制御部）１００Ａに置き換えるとともに、カラムデコーダ２００をカラムデコーダ（カラム制御部）２００Ａに置き換え、新たに電流制限回路３０１〜３０ｍを設けた構成を有している。ロウデコーダ１００Ａは複数のワード線に印加する電圧を制御し、カラムデコーダ２００Ａは、複数のビット線に印加する電圧を制御する。各電流制限回路３０ｉ（ｉ＝１，・・・，ｍ）はワード線ＷＬｉに対応して設けられ、対応するワード線ＷＬｉに接続される。図１２においては、電流制限回路３０ｉ（ｉ＝１，・・・，ｍ）は対応するワード線ＷＬｉと、ロウデコーダ１００Ａとの間に設けられている。しかし、電流制限回路３０ｉ（ｉ＝１，・・・，ｍ）は、ロウデコーダ１００Ａに対して対応するワード線ＷＬｉと反対側に設けられていてもよい。
【００７２】
次に、第２実施形態のルックアップテーブル回路における選択された抵抗変化素子、例えば、図１２において破線の丸で囲まれた抵抗変化素子２４１をセットする方法について説明する。
【００７３】
まず、プログラムする抵抗変化素子が属するブロックを選択する。その後、選択されたブロック内において、トランジスタ２０１〜２０ｍをオフするとともに、トランジスタ１２１、１２２をオフする。続いて、ロウデコーダ１００Ａを用いて、選択されたワード線ＷＬ４に電圧Ｖｐｇｍを印加するとともに非選択のワード線ＷＬ１〜ＷＬ３、ＷＬ５〜ＷＬｍに電圧Ｖｉｎｈを与える。また、カラムデコーダ２００Ａを用いて、選択されたビット線ＢＬ１に電圧０Ｖを与え、非選択のビット線ＢＬ２に電圧Ｖｉｎｈを与える。このとき、選択されたワード線ＷＬ４に接続される電流制限回路３０４によって、抵抗変化素子２４１に流れる電流を一定以下に絞る。
【００７４】
このようにして、選択されたブロック内の選択された抵抗変化素子の両端子間には、プログラム電圧Ｖｐｇｍが印加され、非選択の抵抗変化素子の両端子間には、Ｖｉｎｈあるいは０Ｖが印加される。これにより、選択されたブロック内の選択された抵抗変化素子をプログラムすることができる。
【００７５】
なお、上記説明では、セット動作を行う場合、最初に選択されたワード線に電圧Ｖｐｇｍを与え、非選択のワード線に電圧Ｖｉｎｈを与え、選択されたビット線に０Ｖを与え、非選択のビット線に電圧Ｖｉｎｈを与えた。このような方法の代わりに、セット動作する場合は、全てのワード線およびビット線にＶｉｎｈを与えてプリチャージし、その後に、選択されたワード線にＶｐｇｍを印加するとともに選択されたビット線に０Ｖを印加するほうが、より好ましい。なぜならば、この方法を用いると、各電圧が抵抗変化素子の端子に印加されるタイミングにずれがあっても、非選択の抵抗変化素子の両端子の電位差はＶｉｎｈ以下に抑えられ、非選択の抵抗変化素子が誤ってプログラムされるのを防ぐことができるためである。
【００７６】
次に、リセット動作について説明する。まず、選択されたブッロク内において、トランジスタ２０１〜２０ｍをオフするとともに、トランジスタ１２１、１２２をオフする。続いて、ロウデコーダ１００Ａを用いて、選択されたワード線ＷＬ４に電圧Ｖｐｇｍを印加するとともに非選択のワード線ＷＬ１〜ＷＬ３、ＷＬ５〜ＷＬｍに電圧Ｖｉｎｈを与える。また、カラムデコーダ２００Ａを用いて、選択されたビット線ＢＬ１に電圧０Ｖを与え、非選択のビット線ＢＬ２に電圧Ｖｉｎｈを与える。このとき、選択されたワード線ＷＬ４に接続される電流制限回路３０４によって、抵抗変化素子２４１に流れる電流は、セット動作を行う場合よりも大きくしかつ過電流とならないようにする。
【００７７】
このようにして、選択されたブロック内の選択された抵抗変化素子の両端子間には、リセット電圧Ｖｐｇｍが印加され、非選択の抵抗変化素子の両端子間には、Ｖｉｎｈあるいは０Ｖが印加される。これにより、選択されたブロック内の選択された抵抗変化素子をリセットすることができる。
【００７８】
（電流制限回路）
ところで、メモリ素子にセット電圧またはリセット電圧を印加する際に、プログラム後の抵抗変化素子の抵抗値のばらつきを抑える目的で、あるいは抵抗変化素子の不可逆的な破壊を防ぐ目的で、プログラム中に抵抗変化素子に流れる電流をある値（以下、この値を制限電流値と称する）以下に制限する機構を設けることがある。例えば、一般にセット時の制限電流値を大きくすれば、セット後の抵抗変化素子の抵抗値は小さくなる。一方、リセット時は上記の制限電流値を十分大きくすることで抵抗変化素子に十分大きな量の電流を流し、そのときに発生する熱によって抵抗変化素子の抵抗状態を高抵抗状態へと変化させる。このようにセット時とリセット時では、異なる制限電流値が用いられる。
【００７９】
制限電流値を生成する電流制限回路の例を図１３に示す。抵抗変化素子２と直列に接続されたＰチャネルトランジスタ３１のゲートに印加する電圧Ｖｃｏｍｐを制御することで、抵抗変化素子２に流れる最大電流を制御する。例えば図１３Ａの例では、抵抗変化素子２の一方の電極に電圧Ｖｐｇｍ２を印加し、もう一方の電極にはＰチャネルトランジスタ３１を介して上記電圧Ｖｐｇｍ２よりも大きい電圧Ｖｐｇｍ１を印加する。このとき、上記トランジスタ３１のゲートには上記電圧Ｖｐｇｍ１よりも小さい電圧Ｖｃｏｍｐを印加する。このとき電圧Ｖｃｏｍｐの大きさを制御することによって、プログラム中に抵抗変化素子２に流れる最大電流を制御する。
【００８０】
このように、図１３Ａに示す例では、複数のＶｃｏｍｐを用いることで複数の制限電流値を設定することができる。ほかの例として、図１３Ｂに示すように電流を制限するための複数のｐチャネルトランジスタ３１およびセレクタ１５を用意してもよい。この場合、複数のトランジスタ３１はそれぞれ駆動力が異なり、同じ電圧を印加したときの電流量がそれぞれ異なるように設計する。具体的には、チャネル幅やゲート長、あるいはゲート絶縁膜の膜厚やチャネルの不純物濃度を異なるようにトランジスタを作製する。メモリ素子をプログラムする際には、用いる電流制限量に応じて、抵抗変化素子と特定のトランジスタを接続する。
【００８１】
このように、電流制限回路を介して抵抗変化素子に電圧を印加することにより、プログラム中に抵抗変化素子に過剰な電流が流れるのを防止し、プログラム後の抵抗変化素子の抵抗値のバラツキを小さく抑えることができる。
【００８２】
以上説明したように、第２実施形態によれば、メモリセルとして不揮発性の抵抗変化素子を用いたことにより、高集積化が可能なルックアップテーブル回路を提供することができる。
【００８３】
なお、第２実施形態においては、ビット線は２本であったが、３本以上設けられていてもよい。
【００８４】
（第３実施形態）
第３実施形態による不揮発性記憶装置を図１４に示す。この第３実施形態の不揮発性記憶装置は、図２または図３に示す抵抗変化素子２がアレイ状に配置された構成を有している。上記セット電圧、リセット電圧を所定の抵抗変化素子に印加するためには、例えば図１４に示す不揮発性記憶装置が用いられる。メモリセルアレイ５００は配列状に並べられた複数の抵抗変化素子を有し、ドライバ４１０およびドライバ４２０に接続されている。ドライバ４１０、４２０は制御回路４００から制御信号を受け取り、この制御信号に基づいて、選択した抵抗変化素子にプログラム電圧を印加する。同様にドライバ４１０、４２０は上記制御信号に基づいて、選択していない抵抗変化素子に所定の電圧を与えることもあるし、特定のメモリ素子の電極の電位を浮遊状態にすることもある。
【００８５】
図１５に、メモリセルアレイ５００とドライバ４１０、ドライバ４２０の具体的な構成の一例を示す。この回路は、ｍ本のワード線ＷＬｉ（１≦ｉ≦ｍ）と、ｎ本のビット線ＢＬｊ（１≦ｊ≦ｎ）と、これらの配線が交差する位置に設けられた抵抗変化素子２ｉｊと、を有する。抵抗変化素子、例えば抵抗変化素子２２３をプログラムする際には、ドライバ４１０は上記抵抗変化素子２２３に接続するワード線ＷＬ２に所定の電圧を与え、ドライバ４２０は上記抵抗変化素子２２３に接続するビット線ＢＬ３に所定の電圧を与える。
【００８６】
このように構成された不揮発性記憶装置は、リセット電圧を高くすることが可能となることにより、例えば読み出し時に、電源電圧が抵抗変化素子に印加されても、抵抗変化素子がリセットされることを抑制することが可能となり、抵抗変化素子に書き込まれた情報が破壊されるのを抑制することができる。
【００８７】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これらの実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これらの実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【００８８】
２，２１１〜２ｍ２  抵抗変化素子
２ａ  上部電極
２ｂ  下部電極
４ａ  ＨｆＯｙＮｚ層
４ｂ  ＨｆＯｘ層
１２１，１２２  トランジスタ
１４１，１４２  トランジスタ
２０１〜２０ｍ  トランジスタ
２２１〜２２ｍ  インバータ
２４１〜２４ｍ  トランジスタ
１００  ロウデコーダ
１００１〜１００ｍ  ロウデコード部
２００  カラムデコーダ
２００１、２００２  カラムデコード部
３００  マルチプレクサ
【図１】
2016129318.tif 000003
【図２】
2016129318.tif 000004
【図３Ａ】
2016129318.tif 000005
【図３Ｂ】
2016129318.tif 000006
【図４】
2016129318.tif 000007
【図５】
2016129318.tif 000008
【図６】
2016129318.tif 000009
【図７】
2016129318.tif 000010
【図８】
2016129318.tif 000011
【図９】
2016129318.tif 000012
【図１０】
2016129318.tif 000013
【図１１】
2016129318.tif 000014
【図１２】
2016129318.tif 000015
【図１３Ａ】
2016129318.tif 000016
【図１３Ｂ】
2016129318.tif 000017
【図１４】
2016129318.tif 000018
【図１５】
2016129318.tif 000019