(57)【要約】  クロスバスイッチを構成する抵抗変化スイッチのエラー判定を高速に行うことができる半導体装置を提供するために、クロスバスイッチを構成する複数の配線の交差する位置のそれぞれに抵抗変化スイッチを含むスイッチセルが配置されるスイッチアレイと、スイッチアレイに含まれる全ての抵抗変化スイッチを選択する第１選択回路と、スイッチアレイに含まれるいずれかの抵抗変化スイッチを選択する第２選択回路と、第１選択回路および第２選択回路のいずれかに選択された抵抗変化スイッチの状態を読み出す読み出し回路と、読み出し回路によって読み出された抵抗変化スイッチの状態に基づいて、スイッチアレイに含まれる抵抗変化スイッチの少なくともいずれかのエラーを検出するエラー検出回路と、を備える半導体装置とする。
2019176893.tif 000002
【特許請求の範囲】
【請求項１】
クロスバスイッチを構成する複数の配線の交差する位置のそれぞれに抵抗変化スイッチを含むスイッチセルが配置されるスイッチアレイと、
前記スイッチアレイに含まれる全ての前記抵抗変化スイッチを選択する第１選択回路と、
前記スイッチアレイに含まれるいずれかの前記抵抗変化スイッチを選択する第２選択回路と、
前記第１選択回路および前記第２選択回路のいずれかに選択された前記抵抗変化スイッチの状態を読み出す読み出し回路と、
前記読み出し回路によって読み出された前記抵抗変化スイッチの状態に基づいて、前記スイッチアレイに含まれる前記抵抗変化スイッチの少なくともいずれかのエラーを検出するエラー検出回路と、を備える半導体装置。
【請求項２】
前記抵抗変化スイッチは、
直列に接続された二つの抵抗変化素子によって構成され、
前記読み出し回路は、
前記抵抗変化スイッチを構成する二つの前記抵抗変化素子のうち少なくとも一つがオン状態であると、前記抵抗変化スイッチがオン状態であると読み出し、
前記抵抗変化スイッチを構成する二つの前記抵抗変化素子がともにオフ状態であると、前記抵抗変化スイッチがオフ状態であると読み出し、
前記抵抗変化スイッチを構成する前記抵抗変化素子の抵抗状態に応じた出力データを前記エラー検出回路に出力し、
前記エラー検出回路は、
前記読み出し回路からの前記出力データに基づいて前記抵抗変化スイッチの抵抗状態にエラーがあるか判定する請求項１に記載の半導体装置。
【請求項３】
前記第１選択回路は、
前記スイッチアレイに含まれる複数の前記抵抗変化スイッチの全てがオフ状態であると期待される場合において、前記スイッチアレイに含まれる全ての前記抵抗変化スイッチを構成する二つの前記抵抗変化素子のうち一つを選択し、
前記読み出し回路は、
前記第１選択回路に選択された全ての前記抵抗変化素子のうち少なくとも一つの抵抗状態を判定した結果を前記出力データとして前記エラー検出回路に出力する請求項２に記載の半導体装置。
【請求項４】
前記読み出し回路は、
前記第１選択回路に選択された全ての前記抵抗変化素子のうち少なくとも一つの抵抗状態がオン状態であれば、前記スイッチアレイに含まれる前記抵抗変化素子の少なくともいずれかにエラーがあると判定する請求項３に記載の半導体装置。
【請求項５】
前記第１選択回路は、
第１方向に交差する第２方向に並んだ複数の前記抵抗変化スイッチを構成する二つの前記抵抗変化素子のうち一つを一括して選択する第１全選択回路と、
前記第１方向に並んだ複数の前記抵抗変化スイッチを構成する二つの前記抵抗変化素子のうち一つを一括して選択する第２全選択回路と、を含み、
前記第２選択回路は、
前記第１全選択回路に接続され、前記第２方向に並んだ複数の前記抵抗変化スイッチに含まれる前記抵抗変化素子を個別に選択する第１個別選択回路と、
前記第２全選択回路に接続され、前記第１方向に並んだ複数の前記抵抗変化スイッチに含まれる前記抵抗変化素子を個別に選択する第２個別選択回路と、を含む請求項２乃至４のいずれか一項に記載の半導体装置。
【請求項６】
前記スイッチセルは、
二つの前記抵抗変化素子の間の共通ノードに拡散層の一端が接続されるセルトランジスタを含み、
前記スイッチアレイは、
前記第１方向に延伸され、前記抵抗変化スイッチの一端が接続される複数の第１配線と、
前記第２方向に延伸され、前記抵抗変化スイッチの他端が接続される複数の第２配線と、
前記第１方向に延伸され、前記セルトランジスタの拡散層の他端が接続される複数のビット配線と、
前記第１配線に拡散層の一端が接続される複数の第１トランジスタと、
複数の前記第１トランジスタの拡散層の他端が接続される第１制御線と、
前記第２配線に拡散層の一端が接続される複数の第２トランジスタと、
複数の前記第２トランジスタの拡散層の他端が接続される第２制御線と、
前記ビット配線に拡散層の一端が接続される複数の第３トランジスタと、
複数の前記第３トランジスタの拡散層の他端が接続される第３制御線と、
前記第１全選択回路に接続され、前記第２方向に並んだ複数の前記スイッチセルに含まれる前記セルトランジスタのゲートが共通に接続され、前記第２方向に並んだ複数の前記スイッチセルに対応する前記第２トランジスタのゲートが接続される複数の第１選択線と、
前記第２全選択回路に接続され、前記第１方向に並んだ複数の前記スイッチセルに対応する前記第１トランジスタおよび前記第２トランジスタのゲートが共通に接続される複数の第２選択線と、
前記第１個別選択回路に接続され、前記第１全選択回路を介して複数の前記第１選択線のそれぞれに接続される第３選択線と、
前記第２個別選択回路に接続され、前記第２全選択回路を介して複数の前記第２選択線のそれぞれに接続される第４選択線と、を有する請求項５に記載の半導体装置。
【請求項７】
前記第１全選択回路、前記第２全選択回路、前記第１個別選択回路、前記第２個別選択回路、前記読み出し回路、および前記エラー検出回路に接続され、前記第１制御線、前記第２制御線、および前記第３制御線に印加する電圧を設定する制御回路と、
前記制御回路、前記第１制御線、前記第２制御線、および前記第３制御線に接続され、前記制御回路の制御に応じて前記第１制御線、前記第２制御線、および前記第３制御線に電圧を印加するドライバ回路と、を備え、
前記制御回路は、
選択対象の前記抵抗変化素子の抵抗状態を読み出す際に、
前記ドライバ回路を制御して、前記第１制御線および前記第２制御線に印加する電圧を設定し、
前記読み出し回路を制御して、前記第３制御線に印加する電圧を設定し、
前記第１全選択回路および前記第１個別選択回路の少なくともいずれかを制御して、いずれかの前記第１トランジスタおよび前記第３トランジスタのゲートに印加する電圧を設定し、
前記第２全選択回路および前記第２個別選択回路の少なくともいずれかを制御して、いずれかの前記第２トランジスタのゲートに印加する電圧を設定する請求項６に記載の半導体装置。
【請求項８】
前記スイッチセルと、ルックアップテーブルおよびフリップフロップで構成される基本論理回路と、を含む複数のプログラマブルロジックセルと、
前記プログラマブルロジックセルに構成される論理回路の構成情報を取得し、取得した前記構成情報に基づいて、前記プログラマブルロジックセルに前記論理回路を構成するための信号を送信する構成用回路と、
前記プログラマブルロジックセルに構成された前記論理回路によって処理されるデータを入力するとともに、前記論理回路による演算結果を出力する汎用ポートと、を備える請求項１乃至７のいずれか一項に記載の半導体装置。
【請求項９】
クロスバスイッチを構成する複数の配線の交差する位置のそれぞれに抵抗変化スイッチを含むスイッチセルが配置されるスイッチアレイにおいて、
前記スイッチアレイに含まれる全ての前記抵抗変化スイッチまたはいずれかの前記抵抗変化スイッチを選択し、
選択された前記抵抗変化スイッチの状態を読み出し、
読み出された前記抵抗変化スイッチの状態に基づいて、前記スイッチアレイに含まれる前記抵抗変化スイッチの少なくともいずれかのエラーを検出するエラー検出方法。
【請求項１０】
前記抵抗変化スイッチが、直列に接続された二つの抵抗変化素子によって構成される前記スイッチセルにおいて、
前記抵抗変化スイッチを構成する二つの前記抵抗変化素子のうち少なくとも一つがオン状態であると、前記抵抗変化スイッチがオン状態であると読み出し、
前記抵抗変化スイッチを構成する二つの前記抵抗変化素子がともにオフ状態であると、前記抵抗変化スイッチがオフ状態であると読み出し、
読み出した前記抵抗変化スイッチの抵抗状態に応じた出力データを生成し、
生成した前記出力データに基づいて前記抵抗変化スイッチの抵抗状態にエラーがあるか判定する請求項９に記載のエラー検出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、論理回路が構成される半導体装置およびエラー検出方法に関する。特に、本発明は、不揮発性抵抗変化素子を含む論理集積回路および半導体装置に関する。
【背景技術】
【０００２】
ＦＰＧＡ（field-programmable gate array）などのプログラマブル論理集積回路は、製造後に機能をプログラムできる集積回路である。プログラマブル論理集積回路は、カスタム設計されたＡＳＩＣ（Application Specific Integrated Circuit）に比べると、トランジスタの数が多いため、チップサイズが大きくなる傾向がある。ＦＰＧＡにおいて、信号の切り替えはクロスバスイッチによって行われ、切り替え先の情報はメモリに保持される。一般的なプログラマブル論理集積回路では、信号の切り替えはパストランジスタによって行われ、切り替え先の情報はＳＲＡＭ（Static Random Access Memory）などのメモリに保持される。プログラマブル論理集積回路のプログラマビリティを実現するパストランジスタおよびＳＲＡＭは回路全体の中で大きな面積を占める。プログラマブル論理集積回路のチップサイズがＡＳＩＣに比べて大きくなる要因としては、パストランジスタおよびＳＲＡＭを用いることが挙げられる。【０００３】
非特許文献１には、抵抗変化スイッチを用いたプログラマブル論理集積回路が開示されている。非特許文献１の抵抗変化スイッチは、信号のオン・オフを行うパストランジスタの機能と、構成情報を保持するＳＲＡＭの機能とを同時に実現できる。また、非特許文献１の抵抗変化スイッチは、集積回路の配線層に形成できるため、パストランジスタおよびＳＲＡＭを用いる場合に比べてチップサイズを小さくすることができる。【０００４】
特許文献１には、抵抗変化層における金属イオンの移動と電気化学反応とを利用した抵抗変化スイッチが開示されている。特許文献１の抵抗変化スイッチは、活性電極、抵抗変化層、および不活性電極が順番に積層された３層構造を有する。活性電極は、印加される電圧に応じて、金属イオンを抵抗変化層に供給する。一方、不活性電極は、抵抗変化層へ金属イオンを供給しない。特許文献１では、活性電極の一例として銅を用いる。銅は、集積回路の多層配線の材料として用いられるため、銅を含む多層配線の１つを活性電極とすれば、集積回路の構造が簡略化され、製造工程を減らすことができる。【０００５】
また、特許文献１には、２つの抵抗変化スイッチを直列に接続した３端子型抵抗変化スイッチについて開示されている。特許文献１の抵抗変化スイッチは、オフ状態の信頼性を向上させ、かつプログラム電圧を下げることができる。【０００６】
抵抗変化スイッチでは、低抵抗状態をオン状態、高抵抗状態をオフ状態とする。３端子型抵抗変化スイッチでは、２つの抵抗変化スイッチが低抵抗状態であればオン状態、２つの抵抗変化スイッチが高抵抗状態であればオフ状態とする。また、抵抗変化スイッチを高抵抗状態から低抵抗状態へ変化させるために必要な電圧をプログラム電圧とよぶ。プログラム電圧は２Ｖ以下が望ましい。抵抗変化スイッチをプログラマブル論理集積回路へ応用する場合には、集積回路の動作電圧（例えば１Ｖ）が印加されても、抵抗変化が起こらないことが必要である。【０００７】
例えば、高抵抗状態にある抵抗変化スイッチに、動作電圧に相当する１Ｖを集積回路の寿命とされる１０年間印加し続けても、低抵抗状態に変化しない程度のオフ状態の信頼性が必要とされる。抵抗変化スイッチでは、この課題に対して解決が図られ、プログラム電圧を低減しつつ、高いオフ状態の信頼性が得られている。【０００８】
プログラマブル論理集積回路に抵抗変化スイッチを適用できれば、ＳＲＡＭおよびパストランジスタを用いた場合に比べてチップの面積を大幅に削減することができる。非特許文献１には、抵抗変化スイッチを含むクロスバスイッチを用いたプログラマブル論理集積回路が開示されている。非特許文献１のプログラマブル論理集積回路は、ＳＲＡＭとパストランジスタを用いたＦＰＧＡに比べて、低消費電力性能や低信号遅延性能に優れている。【０００９】
プログラマブル論理集積回路において、ユーザーが所望する機能（アプリケーション回路）の実装を行うためには、多数個のスイッチまたはメモリがプログラムされる。プログラマブル論理集積回路にアプリケーション回路がプログラムされると、正しくプログラムされたかどうかの検証が実施される。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】国際公開第２０１２／０４３５０２号
【非特許文献】
【００１１】
【非特許文献１】M.Miyamura et al., “0.5-V Highly Power-Efficient Programmable Logic using Nonvolatile Configuration Switch in BEOL”, Proceedings of the 2015 ACM/SIGDA International Symposium on Field-Programmable Gate Arrays, pp.236-239, 2015
【発明の概要】
【発明が解決しようとする課題】
【００１２】
特許文献１および非特許文献１のプログラマブル論理集積回路は、以下の二つの場合に、誤った接続により正しい演算が行われなかったり、信号が衝突して集積回路に障害が生じたりする可能性があった。一つ目は、低抵抗状態（オン状態）にプログラミングされているべき抵抗変化スイッチが高抵抗状態（オフ状態）であった場合である。二つ目は、高抵抗状態（オフ状態）であるべき抵抗変化スイッチが低抵抗状態（オン状態）であった場合である。【００１３】
抵抗変化スイッチのオン・オフ状態が正しく設定されていない原因としては、以下の二つの要因が挙げられる。一つ目の要因は、抵抗変化スイッチをプログラムする際に、抵抗状態の遷移が正しく行われなかったことである。二つ目の要因は、電源ノイズや環境温度、高エネルギーの宇宙線などの外部要因によって意図しない抵抗状態の遷移が発生することである。【００１４】
抵抗変化スイッチのオン・オフ状態が正常であることを確認するためには、各抵抗変化スイッチのオン・オフ状態を読み出す必要がある。プログラマブル論理集積回路を構成する全ての抵抗変化スイッチのオン・オフ状態を読み出すためには時間が掛かるため、その時間を削減することが課題である。【００１５】
本発明の目的は、上述した課題を解決し、クロスバスイッチを構成する抵抗変化スイッチのエラー判定を高速に行うことができる半導体装置を提供することにある。
【課題を解決するための手段】
【００１６】
本発明の一態様の半導体装置は、クロスバスイッチを構成する複数の配線の交差する位置のそれぞれに抵抗変化スイッチを含むスイッチセルが配置されるスイッチアレイと、スイッチアレイに含まれる全ての抵抗変化スイッチを選択する第１選択回路と、スイッチアレイに含まれるいずれかの抵抗変化スイッチを選択する第２選択回路と、第１選択回路および第２選択回路のいずれかに選択された抵抗変化スイッチの状態を読み出す読み出し回路と、読み出し回路によって読み出された抵抗変化スイッチの状態に基づいて、スイッチアレイに含まれる抵抗変化スイッチの少なくともいずれかのエラーを検出するエラー検出回路と、を備える。【００１７】
本発明の一態様のエラー検出方法は、クロスバスイッチを構成する複数の配線の交差する位置のそれぞれに抵抗変化スイッチを含むスイッチセルが配置されるスイッチアレイにおいて、スイッチアレイに含まれる全ての抵抗変化スイッチまたはいずれかの抵抗変化スイッチを選択し、選択された抵抗変化スイッチの状態を読み出し、読み出された抵抗変化スイッチの状態に基づいて、スイッチアレイに含まれる抵抗変化スイッチの少なくともいずれかのエラーを検出する。
【発明の効果】
【００１８】
本発明によれば、クロスバスイッチを構成する抵抗変化スイッチのエラー判定を高速に行うことができる半導体装置を提供できる。
【図面の簡単な説明】
【００１９】
【図１】本発明の第１の実施形態のプログラマブル論理集積回路の構成の一例を示すブロック図である。
【図２】本発明の第１の実施形態のプログラマブル論理集積回路に含まれる抵抗変化スイッチの抵抗状態の一例を示す図である。
【図３】本発明の第１の実施形態のプログラマブル論理集積回路に含まれる抵抗変化スイッチの別の抵抗状態の一例を示す図である。
【図４】本発明の第２の実施形態のプログラマブル論理集積回路の構成の一例を示すブロック図である。
【図５】本発明の第３の実施形態のプログラマブル論理集積回路のプログラマブルロジックコアの回路構成の一例を示す模式図である。
【図６】本発明の第３の実施形態のプログラマブル論理集積回路に含まれる列全選択回路の構成を示す回路図である。
【図７】本発明の第３の実施形態のプログラマブル論理集積回路に含まれる行全選択回路の構成を示す回路図である。
【図８】本発明の第３の実施形態のプログラマブル論理集積回路に含まれるスイッチセルの第１抵抗変化素子の書き込み方法（セット）について説明するためのフローチャートである。
【図９】本発明の第３の実施形態のプログラマブル論理集積回路に含まれるスイッチセルの第２抵抗変化素子の書き込み方法（セット）について説明するためのフローチャートである。
【図１０】本発明の第３の実施形態のプログラマブル論理集積回路に含まれるスイッチセルの第１抵抗変化素子の書き込み方法（リセット）について説明するためのフローチャートである。
【図１１】本発明の第３の実施形態のプログラマブル論理集積回路に含まれるスイッチセルの第２抵抗変化素子の書き込み方法（リセット）について説明するためのフローチャートである。
【図１２】本発明の第３の実施形態のプログラマブル論理集積回路に含まれるスイッチセルの第１抵抗変化素子の第１の読み出し方法について説明するためのフローチャートである。
【図１３】本発明の第３の実施形態のプログラマブル論理集積回路に含まれるスイッチセルの第２抵抗変化素子の第１の読み出し方法について説明するためのフローチャートである。
【図１４】本発明の第３の実施形態のプログラマブル論理集積回路に含まれるスイッチセルの第１抵抗変化素子の第２の読み出し方法について説明するためのフローチャートである。
【図１５】本発明の第３の実施形態のプログラマブル論理集積回路に含まれるスイッチセルの第２抵抗変化素子の第２の読み出し方法について説明するためのフローチャートである。
【図１６】本発明の第３の実施形態のプログラマブル論理集積回路に含まれるスイッチセルの第３の読み出し方法について説明するためのフローチャートである。
【発明を実施するための形態】
【００２０】
以下に、本発明を実施するための形態について図面を用いて説明する。ただし、以下に述べる実施形態には、本発明を実施するために技術的に好ましい限定がされているが、発明の範囲を以下に限定するものではない。なお、以下の実施形態の説明に用いる全図においては、特に理由がない限り、同様箇所には同一符号を付す。また、以下の実施形態において、同様の構成・動作に関しては繰り返しの説明を省略する場合がある。また、図面中の矢印の向きは、一例を示すものであり、ブロック間の信号の向きを限定するものではない。
【００２１】
（第１の実施形態）
まず、本発明の第１の実施形態に係るプログラマブル論理集積回路（半導体装置とも呼ぶ）について図面を参照しながら説明する。
【００２２】
（構成）
図１は、本実施形態のプログラマブル論理集積回路１の構成の一例を示すブロック図である。プログラマブル論理集積回路１は、スイッチアレイ１１、第１選択回路１２、第２選択回路１３、読み出し回路１４、およびエラー検出回路１５を備える。
【００２３】
スイッチアレイ１１は、複数の３端子型の抵抗変化スイッチを備える。抵抗変化スイッチは、クロスバスイッチを構成する複数の配線の交差する位置のそれぞれに配置されるスイッチセルに含まれる。スイッチアレイ１１を構成する抵抗変化スイッチは、二つの抵抗変化素子を直列に接続した構成を有する。本実施形態において、抵抗変化スイッチは、第１抵抗変化素子と第２抵抗変化素子とを直列に接続させた構成を有する。第１抵抗変化素子および第２抵抗変化素子のそれぞれは、活性電極、抵抗変化層、および不活性電極を積層させた構造を有する。以下において、抵抗変化スイッチに含まれる第１抵抗変化素子と第２抵抗変化素子とは、同様の構成を有するものとする。
【００２４】
第１選択回路１２は、複数の抵抗変化素子を同時に選択する。
【００２５】
第１選択回路１２が複数の第１抵抗変化素子を同時に選択すると、複数の第１抵抗変化素子の不活性電極が互いに接続されるとともに、複数の第１抵抗変化素子の活性電極が互いに接続される。複数の第１抵抗変化素子の不活性電極が互いに接続されたノードと、複数の第１抵抗変化素子の活性電極が互いに接続されたノードとは、それぞれ読み出し回路１４に接続される。
【００２６】
同様に、第１選択回路１２が複数の第２抵抗変化素子を同時に選択すると、複数の第２抵抗変化素子の不活性電極が互いに接続されるとともに、複数の第２抵抗変化素子の活性電極が互いに接続される。複数の第２抵抗変化素子の不活性電極が互いに接続されたノードと、複数の第２抵抗変化素子の活性電極が互いに接続されたノードとは、それぞれ読み出し回路１４に接続される。
【００２７】
複数の抵抗変化スイッチのうち少なくとも１つがオン状態であると、活性電極と不活性電極の両電極間はオン状態として読み出し回路１４に読み出される。一方、複数の抵抗変化スイッチの全てがオフ状態であると、活性電極と不活性電極の両電極間はオフ状態として読み出し回路１４に読み出される。
【００２８】
第２選択回路１３は、複数の抵抗変化スイッチのうち少なくとも一つの抵抗変化素子を選択する。
【００２９】
第２選択回路１３は、プログラマブル論理集積回路１に含まれる全ての抵抗変化スイッチの抵抗状態を個別に検知する。第２選択回路１３は、少なくとも１つの第１抵抗変化素子を選択できる。同様に、第２選択回路１３は、少なくとも１つの第２抵抗変化素子を選択できる。
【００３０】
読み出し回路１４は、抵抗変化スイッチを構成する抵抗変化素子の抵抗状態をセンスする。
【００３１】
読み出し回路１４は、複数の抵抗変化素子のうち少なくとも１つがオン状態であると、活性電極と不活性電極の両電極間をオン状態として読み出す。一方、読み出し回路１４は、複数の抵抗変化素子の全てがオフ状態であると、活性電極と不活性電極の両電極間をオフ状態として読み出す。
【００３２】
読み出し回路１４は、抵抗変化スイッチを構成する抵抗変化素子の抵抗状態に応じた出力データをエラー検出回路１５に出力する。例えば、読み出し回路１４は、抵抗変化素子の抵抗値が所定の値より小さい場合はデータ１、所定の値より大きい場合はデータ０を出力データＩＱとして出力する。
【００３３】
エラー検出回路１５は、読み出し回路１４からの出力データＩＱに基づいて、スイッチセルの抵抗状態にエラーがあるか否かを判定する。例えば、出力データが０の場合、エラー検出回路１５は、選択された抵抗変化素子の抵抗状態が期待される状態（オフ状態）であると判定する。例えば、出力データが１の場合、エラー検出回路１５は、選択された抵抗変化素子の抵抗状態が期待される状態ではない（オン状態のスイッチが含まれる）と判定する。すなわち、エラー検出回路１５は、選択された抵抗変化素子のうち少なくとも一つの抵抗状態が期待される状態ではない場合（オン状態のスイッチが含まれる）、エラーがあると判定する。
【００３４】
〔抵抗変化スイッチ〕
ここで、プログラマブル論理集積回路１が備えるスイッチアレイ１１に含まれる抵抗変化スイッチについて図面を参照しながら説明する。図２および図３は、スイッチアレイ１１を構成する抵抗変化スイッチ１００の一例を示す概念図である。
【００３５】
抵抗変化スイッチ１００は、第１抵抗変化素子１１０ａと第２抵抗変化素子１１０ｂとを直列に接続した構成を有する。以下において、第１抵抗変化素子１１０ａと第２抵抗変化素子１１０ｂとを区別しない場合は、抵抗変化素子１１０と記載する。
【００３６】
第１抵抗変化素子１１０ａは、活性電極１１１ａ、不活性電極１１２ａ、および抵抗変化層１１３ａを有する。同様に、第２抵抗変化素子１１０ｂは、活性電極１１１ｂ、不活性電極１１２ｂ、および抵抗変化層１１３ｂを有する。第１抵抗変化素子１１０ａの不活性電極１１２ａと、第２抵抗変化素子１１０ｂの不活性電極１１２ｂとは、互いに接続されて共通ノード１１４を形成する。以下において、活性電極１１１ａと活性電極１１１ｂ、不活性電極１１２ａと不活性電極１１２ｂ、抵抗変化層１１３ａと抵抗変化層１１３ｂのそれぞれを区別しない場合は、活性電極１１１、不活性電極１１２、抵抗変化層１１３と記載する。
【００３７】
抵抗変化素子１１０は、高抵抗状態（図２）と低抵抗状態（図３）との２つの抵抗状態を有する。本実施形態では、高抵抗状態をオフ状態（図２）、低抵抗状態をオン状態（図３）と定義する。抵抗変化素子１１０がオン状態の場合、電圧レベルで与えられる信号は抵抗変化素子１１０を通過する。一方、抵抗変化素子１１０がオフ状態の場合、電圧レベルで与えられる信号は抵抗変化素子１１０によって遮断される。
【００３８】
また、抵抗変化素子１１０の抵抗状態は、構成情報の１（データ１）と０（データ０）に対応付ける。本実施形態では、低抵抗状態（オン状態）をデータ１、高抵抗状態（オフ状態）をデータ０と定義する。
【００３９】
ここで、抵抗変化スイッチ１００を構成する第１抵抗変化素子１１０ａおよび第２抵抗変化素子１１０ｂの（抵抗変化素子１１０）の抵抗状態を遷移させる動作について説明する。
【００４０】
まず、抵抗変化素子１１０を高抵抗状態（オフ状態）から低抵抗状態（オン状態）へと遷移させる方法について説明する。
【００４１】
高抵抗状態（オフ状態）の抵抗変化素子１１０において、活性電極１１１に正電圧を印加し、不活性電極１１２を接地すると、活性電極１１１に含まれる銅などの金属がイオン化されて金属イオンとして抵抗変化層１１３に溶解する。抵抗変化層１１３において、溶解した金属イオンが還元されて金属として析出する。析出した金属によって活性電極１１１と不活性電極１１２とを接続する金属架橋１１５が形成される。金属架橋１１５によって活性電極１１１と不活性電極１１２とが電気的に接続されると、抵抗変化素子１１０は高抵抗状態（オフ状態）から低抵抗状態（オン状態）へと遷移する。
【００４２】
次に、抵抗変化素子１１０を低抵抗状態（オン状態）から高抵抗状態（オフ状態）へと遷移させる方法について説明する。
【００４３】
低抵抗状態（オン状態）の抵抗変化素子１１０において、活性電極１１１を接地して、不活性電極１１２に正電圧を印加すると、金属架橋１１５が金属イオンとして抵抗変化層１１３内に溶解し、金属架橋１１５の一部が切れる。金属架橋１１５の一部が切れると、活性電極１１１と不活性電極１１２との間の電気的な接続が解消され、抵抗変化素子１１０は高抵抗状態（オフ状態）へと遷移する。活性電極１１１と不活性電極１１２との間では、電気的な接続が完全に切れる前の段階から電気抵抗が大きくなったり、電極間の容量が変化したりして電気的な特性が変化し、最終的に電気的な接続が切れる。抵抗変化素子１１０を高抵抗状態（オフ状態）から低抵抗状態（オン状態）にするためには、不活性電極１１２に再び負電圧を印加すればよい。
【００４４】
以上のように、抵抗変化素子１１０の低抵抗状態と高抵抗状態とを用いて、スイッチのオン状態とオフ状態とを実現できる。
【００４５】
抵抗変化素子１１０を高抵抗状態から低抵抗状態に遷移させる際には、金属架橋１１５が形成される前の段階で、電極間の抵抗が次第に小さくなったり、電極間の容量が変化したりするなどの過渡的な状態が生じ、最終的に電極間に金属架橋１１５が形成される。また、抵抗変化素子１１０を低抵抗状態から高抵抗状態に遷移させる際には、金属架橋による接続が切れる前の段階で、電極間の抵抗が次第に大きくなったり、電極間の容量が変化したりするなどの過渡的な状態が生じ、最終的に電極間の接続が切れる。例えば、過渡的な状態を用いて、低抵抗状態と高抵抗状態との間の中間状態を利用することもできる。
【００４６】
なお、抵抗変化素子１１０には、ＰＲＡＭ（Phase change Random Access Memory）やＲｅＲＡＭ（Resistive Random Access Memory）に用いられる抵抗変化型不揮発性メモリ素子を用いてもよい。
【００４７】
以上のように、本実施形態のプログラマブル論理集積回路は、スイッチアレイ、第１選択回路、第２選択回路、読み出し回路、およびエラー検出回路を備える。スイッチアレイには、クロスバスイッチを構成する複数の配線の交差する位置のそれぞれに抵抗変化スイッチを含むスイッチセルが配置される。例えば、抵抗変化スイッチは、直列に接続された二つの抵抗変化素子によって構成される。第１選択回路は、スイッチアレイに含まれる全ての抵抗変化スイッチを選択する。第２選択回路は、スイッチアレイに含まれるいずれかの抵抗変化スイッチを選択する。読み出し回路は、第１選択回路および第２選択回路のいずれかに選択された抵抗変化スイッチの状態を読み出す。エラー検出回路は、読み出し回路によって読み出された抵抗変化スイッチの状態に基づいて、スイッチアレイに含まれる抵抗変化スイッチの少なくともいずれかのエラーを検出する。
【００４８】
本実施形態においては、選択された抵抗変化素子に期待される抵抗状態に基づいてエラー判定を行う。本実施形態によれば、複数の抵抗変化素子を選択することによって、選択された複数の抵抗変化素子のエラー判定を同時に行うことができるため、読み出し時間を大幅に削減できる。また、本実施形態によれば、構成情報に基づいてスイッチアレイに含まれる抵抗変化スイッチの抵抗状態を設定せずに、抵抗変化素子の抵抗状態に基づいてエラー判定を行うため、抵抗変化素子のエラー判定に掛かる時間を短縮できる。すなわち、本実施形態によれば、クロスバスイッチを構成する抵抗変化スイッチのエラー判定を高速に行うことができるプログラマブル論理集積回路を提供することができる。
【００４９】
例えば、読み出し回路は、抵抗変化スイッチを構成する二つの抵抗変化素子のうち少なくとも一つがオン状態であると、抵抗変化スイッチがオン状態であると読み出す。また、読み出し回路は、抵抗変化スイッチを構成する二つの抵抗変化素子がともにオフ状態であると、抵抗変化スイッチがオフ状態であると読み出す。読み出し回路は、抵抗変化スイッチを構成する抵抗変化素子の抵抗状態に応じた出力データをエラー検出回路に出力する。エラー検出回路は、読み出し回路からの出力データに基づいて抵抗変化スイッチの抵抗状態にエラーがあるか判定する。
【００５０】
例えば、第１選択回路は、スイッチアレイに含まれる複数の抵抗変化スイッチの全てがオフ状態であると期待される場合において、スイッチアレイに含まれる全ての抵抗変化スイッチを構成する二つの抵抗変化素子のうち一つを選択する。読み出し回路は、第１選択回路に選択された全ての抵抗変化素子のうち少なくとも一つの抵抗状態を判定した結果を出力データとしてエラー検出回路に出力する。
【００５１】
例えば、読み出し回路は、第１選択回路に選択された全ての抵抗変化素子のうち少なくとも一つの抵抗状態がオン状態であれば、スイッチアレイに含まれる抵抗変化素子の少なくともいずれかにエラーがあると判定する。
【００５２】
（第２の実施形態）
次に、本発明の第２の実施形態のプログラマブル論理集積回路（半導体装置とも呼ぶ）について図面を参照しながら説明する。本実施形態は、第１の実施形態のプログラマブル論理集積回路をより具体化したものである。
【００５３】
図４は、本実施形態のプログラマブル論理集積回路２の構成を示すブロック図である。プログラマブル論理集積回路２は、構成用ポート２１、構成用回路２２、プログラム用周辺回路２３、複数のプログラマブルロジックセル２５、および汎用ポート２６を備える。また、プログラマブルロジックセル２５は、スイッチアレイ２５１と基本論理回路２５２とを有する。なお、図４における矢印は、信号の流れの一例を示すものであって、信号の流れを限定するものではない。
【００５４】
構成用ポート２１には、構成情報を含む信号が入力される。構成用ポート２１は、入力された構成情報を含む信号を構成用回路２２に出力する。
【００５５】
構成用回路２２は、構成用ポート２１から構成情報を含む信号を受信する。また、構成用回路２２は、プログラム用周辺回路２３に制御信号を出力するとともに、プログラム用周辺回路２３との間でデータを入出力する。
【００５６】
構成用回路２２は、抵抗変化スイッチの書き込み時において、書き込みイネーブル信号ＷＥをハイレベルにすることによって、アドレスＡの抵抗変化スイッチに入力データＤを書き込む。
【００５７】
構成用回路２２は、抵抗変化スイッチの読み出し時において、読み出しイネーブル信号ＲＥをハイレベルにすることによって、アドレスＡの抵抗変化スイッチから読み出されたデータとしてデータ出力Ｑを受け取る。
【００５８】
構成用回路２２は、読み出しイネーブル信号ＲＥおよび行全選択信号ＡＬＣをハイレベルにすることによって、選択された複数の抵抗変化スイッチから読み出されたデータとしてデータ出力Ｑを受け取る。
【００５９】
構成用回路２２は、読み出しイネーブル信号ＲＥおよび全選択信号ＡＬをハイレベルにすることによって、スイッチアレイ２５１に含まれる全ての抵抗変化スイッチから読み出されたデータとしてデータ出力Ｑを受け取る。
【００６０】
プログラム用周辺回路２３は、構成用回路２２から制御信号を入力するとともに、構成用回路２２との間でデータを入出力する。プログラム用周辺回路２３は、構成用回路２２からの制御信号に応じて、プログラマブルロジックセル２５に含まれるスイッチアレイ２５１への書き込みや読み出し、抵抗状態のセンス、抵抗変化素子のエラー判定などを行う。
【００６１】
プログラマブルロジックセル２５には、プログラム用周辺回路２３によって、構成情報に基づいた論理回路が構成される。
【００６２】
プログラマブルロジックセル２５は、汎用ポート２６から入力データを取得する。プログラマブルロジックセル２５は、汎用ポート２６から取得した入力データを構成情報に基づいて構成された論理回路に出力する。また、プログラマブルロジックセル２５は、論理回路による論理演算結果を汎用ポート２６へ出力する。
【００６３】
スイッチアレイ２５１は、複数の抵抗変化スイッチを含む。スイッチアレイ２５１は、論理回路の構成情報に基づいて抵抗変化スイッチの抵抗状態が設定されることによって、配線の接続状態が変更される。その結果、プログラマブルロジックセル２５の論理の構成や再構成が可能になる。
【００６４】
基本論理回路２５２は、ルックアップテーブル（図示しない）や、フリップフロップ（図示しない）などを含む。なお、本実施形態においては、基本論理回路２５２は任意であるため、詳細な記載を省略する。
【００６５】
汎用ポート２６は、入力データを受信する。汎用ポート２６は、受信した入力データをプログラマブルロジックセル２５に出力する。
【００６６】
以上が、本実施形態のプログラマブル論理集積回路２の構成についての説明である。
【００６７】
以上のように、本実施形態によれば、第１の実施形態と同様に、クロスバスイッチを構成する抵抗変化スイッチのエラー判定を高速に行うことができるプログラマブル論理集積回路を提供することができる。
【００６８】
例えば、本実施形態のプログラマブル論理集積回路は、スイッチセルと、ルックアップテーブルおよびフリップフロップで構成される基本論理回路と、を含む複数のプログラマブルロジックセルを備える。また、本実施形態のプログラマブル論理集積回路は、プログラマブルロジックセルに構成される論理回路の構成情報を取得し、取得した構成情報に基づいて、プログラマブルロジックセルに論理回路を構成するための信号を送信する構成用回路を備える。また、本実施形態のプログラマブル論理集積回路は、プログラマブルロジックセルに構成された論理回路によって処理されるデータを入力するとともに、論理回路による演算結果を出力する汎用ポートを備える。
【００６９】
（第３の実施形態）
次に、本発明の第３の実施形態に係るプログラマブル論理集積回路（半導体装置とも呼ぶ）について図面を参照しながら説明する。本実施形態は、第１および第２の実施形態のプログラマブル論理集積回路をより具体化したものである。
【００７０】
図５は、本実施形態のプログラマブル論理集積回路３の回路構成の一例を示す模式図である。プログラマブル論理集積回路３は、スイッチアレイ３１、列全選択回路３２、列選択回路３３、行全選択回路３４、行選択回路３５、ドライバ回路３６、制御回路３７、エラー検出回路３８、および読み出し回路３９を備える。なお、図５は、プログラマブル論理集積回路３の一例であって、プログラマブル論理集積回路３の構成要素の数や配置、接続関係を限定するものではない。また、図５においては、プログラマブル論理集積回路３の構成要素間を接続する配線を省略した箇所もある。
【００７１】
本実施形態のスイッチアレイ３１（破線の角丸四角形の枠内）は、第２の実施形態のスイッチアレイ２５１に相当する。本実施形態の列全選択回路３２、列選択回路３３、行全選択回路３４、行選択回路３５、行選択回路３５、ドライバ回路３６、制御回路３７、エラー検出回路３８、および読み出し回路３９は、第２の実施形態のプログラム用周辺回路２３に含まれる。制御回路３７は、列全選択回路３２、列選択回路３３、行全選択回路３４、行選択回路３５、ドライバ回路３６、エラー検出回路３８および読み出し回路３９のそれぞれに接続される。例えば、制御回路３７は、図示しない配線を介して、ドライバ回路３６および読み出し回路３９のそれぞれに接続される。また、本実施形態の列全選択回路３２および行全選択回路３４は、第１の実施形態の第１選択回路１２に相当する。また、本実施形態の列選択回路３３および行選択回路３５は、第１の実施形態の第２選択回路１３に相当する。
【００７２】
スイッチアレイ３１は、列方向（第１方向とも呼ぶ）に延伸されたＮ本（Ｎは２以上の整数）の垂直線の群と、行方向（第２方向とも呼ぶ）に延伸されたＭ本（Ｍは２以上の整数）の水平線の群とを有する。
【００７３】
図５の例では、スイッチアレイ３１は、列方向に延伸された４本の入力線ＩＮ（第１配線とも呼ぶ）、行方向に延伸された２本の出力線ＯＵＴ（第２配線とも呼ぶ）を有する。また、スイッチアレイ３１は、列方向に延伸された４本のビット線ＢＬを有する。以下において、入力線ＩＮおよびビット線ＢＬを個別に表記する際には、末尾に列番号（左から順番に０〜３）を付す。同様に、出力線ＯＵＴを個別に表記する際には、末尾に行番号（上から順番に０〜１）を付す。
【００７４】
また、スイッチアレイ３１は、行方向に延伸された２本の列選択線ＲＳＥＬ（第１選択線とも呼ぶ）、列方向に延伸された４本の行選択線ＣＳＥＬ（第２選択線とも呼ぶ）を有する。以下において、行選択線ＣＳＥＬを個別に表記する際には、末尾に列番号（左から順番に０〜３）を付す。同様に、列選択線ＲＳＥＬを個別に表記する際には、末尾に行番号（上から順番に０〜１）を付す。
【００７５】
また、スイッチアレイ３１は、列方向に延伸された第２制御線ＰＨと、行方向に延伸された第１制御線ＰＶおよび第３制御線ＰＢを含む。
【００７６】
スイッチアレイ３１は、複数のスイッチセルＳＣ（点線の矩形の枠内）によって構成される。複数のスイッチセルＳＣのそれぞれは、入力線ＩＮと出力線ＯＵＴとの交差する部分に配置される。入力線ＩＮと出力線ＯＵＴとの接続状態（接続・非接続）は、複数のスイッチセルの抵抗状態（オン・オフ）を切り替えることによって制御される。
【００７７】
図５の例では、スイッチアレイ３１は、入力線ＩＮと出力線ＯＵＴとの交差する部分に８個のスイッチセルＳＣを有する。以下において、各スイッチセルＳＣを個別に表記する際には、スイッチセルＳＣ００のように、末尾に２桁のセル番号を付す。セル番号は、１０の位が行番号（０〜１）、１の位が列番号（０〜３）を示す。
【００７８】
スイッチアレイ３１が有する複数のスイッチセルＳＣのそれぞれは、第１抵抗変化素子Ｌ、第２抵抗変化素子Ｒ、およびセルトランジスタＮを含む。セルトランジスタＮは、ＮＭＯＳ（Negative-channel Metal Oxide Semiconductor）トランジスタである。以下において、第１抵抗変化素子Ｌ、第２抵抗変化素子Ｒ、およびセルトランジスタＮのそれぞれを個別に表記する際には、末尾に２桁のセル番号を付す。セル番号は、スイッチセルＳＣと同様に、１０の位が行番号（上から順番に０〜１）、１の位が列番号（左から順番に０〜３）を示す。
【００７９】
第１抵抗変化素子Ｌの一方の端子と、第２抵抗変化素子Ｒの一方の端子とは、互いに接続されて共通ノードを形成する。第１抵抗変化素子Ｌの他方の端子は、入力線ＩＮに接続される。第２抵抗変化素子Ｒの他方の端子は、出力線ＯＵＴに接続される。第１抵抗変化素子Ｌおよび第２抵抗変化素子Ｒによって構成されるユニット素子（以下、抵抗変化スイッチと記載する）は、３端子型の抵抗変化スイッチとして機能する。
【００８０】
図５のスイッチセルＳＣにおいては、第１抵抗変化素子Ｌの不活性電極と、第２抵抗変化素子Ｒの不活性電極とが接続され、共通ノードを形成する。第１抵抗変化素子Ｌの活性電極は入力線ＩＮに接続され、第２抵抗変化素子Ｒの活性電極は出力線ＯＵＴに接続される。
【００８１】
スイッチセルＳＣは、第１抵抗変化素子Ｌおよび第２抵抗変化素子Ｒがオン状態の場合にオンと定義され、第１抵抗変化素子Ｌおよび第２抵抗変化素子Ｒがオフ状態の場合にオフと定義される。
【００８２】
セルトランジスタＮの拡散層の一端（ソースまたはドレイン）は、抵抗変化スイッチの共通ノードに接続される。セルトランジスタＮの拡散層の他端（ドレインまたはソース）は、ビット線ＢＬに接続される。セルトランジスタＮのゲートは、列選択線ＲＳＥＬに接続される。セルトランジスタＮのゲートには、そのゲートに接続された列選択線ＲＳＥＬに設定された電圧が印加される。セルトランジスタＮのゲートに閾値以上の電圧が印加されると、そのセルトランジスタＮに接続された共通ノードとビット線ＢＬとが電気的に接続される。
【００８３】
また、スイッチアレイ３１は、複数のＮＭＯＳトランジスタを有する。具体的には、スイッチアレイ３１は、第１トランジスタＮＶ、第２トランジスタＮＨ、および第３トランジスタＮＢを有する。第１トランジスタＮＶ、第２トランジスタＮＨ、および第３トランジスタＮＢは、ＮＭＯＳトランジスタである。以下において、第１トランジスタＮＶおよび第３トランジスタＮＢを個別に表記する際には、末尾に列番号（左から順番に０〜３）を付す。同様に、第２トランジスタＮＨを個別に表記する際には、末尾に１桁の行番号（上から順番に０〜１）を付す。
【００８４】
第１トランジスタＮＶは、スイッチアレイ３１の列ごとに配置される。第１トランジスタＮＶの拡散層の一端（ソースまたはドレイン）は、第１制御線ＰＶに接続される。第１トランジスタＮＶの拡散層の他端（ドレインまたはソース）は、入力線ＩＮに接続される。第１トランジスタＮＶのゲートは、第３トランジスタＮＢのゲートと共通の行選択線ＣＳＥＬに接続される。第１トランジスタＮＶのゲートには、そのゲートに接続された行選択線ＣＳＥＬに設定された電圧が印加される。第１トランジスタＮＶのゲートに閾値以上の電圧が印加されると、その第１トランジスタＮＶに接続された入力線ＩＮと第１制御線ＰＶとが電気的に接続される。
【００８５】
第２トランジスタＮＨは、スイッチアレイ３１の行ごとに配置される。第２トランジスタＮＨの拡散層の一端（ソースまたはドレイン）は、第２制御線ＰＨに接続される。第２トランジスタＮＨの拡散層の他端（ドレインまたはソース）は、出力線ＯＵＴに接続される。第２トランジスタＮＨのゲートは、列選択線ＲＳＥＬに接続される。第２トランジスタＮＨのゲートには、そのゲートに接続された列選択線ＲＳＥＬに設定された電圧が印加される。第２トランジスタＮＨのゲートに閾値以上の電圧が印加されると、その第２トランジスタＮＨに接続された出力線ＯＵＴと第２制御線ＰＨとが電気的に接続される。
【００８６】
第３トランジスタＮＢは、スイッチアレイ３１の列ごとに配置される。第３トランジスタＮＢの拡散層の一端（ソースまたはドレイン）は、第３制御線ＰＢに接続される。第３トランジスタＮＢの拡散層の他端（ドレインまたはソース）は、ビット線ＢＬに接続される。第３トランジスタＮＢのゲートは、第１トランジスタＮＶのゲートと共通の行選択線ＣＳＥＬに接続される。第３トランジスタＮＢのゲートには、そのゲートに接続された行選択線ＣＳＥＬに設定された電圧が印加される。第３トランジスタＮＢのゲートに閾値以上の電圧が印加されると、その第３トランジスタＮＢに接続されたビット線ＢＬと第３制御線ＰＢとが電気的に接続される。
【００８７】
列全選択回路３２（第１全選択回路とも呼ぶ）は、列全選択線ＲＯＷＥを介して、制御回路３７に接続される。また、列全選択回路３２は、列選択線ＲＳＥＬに接続される。また、列全選択回路３２は、列選択線ＡＳＥＬ（第３選択線とも呼ぶ）を介して、列選択回路３３に接続される。
【００８８】
列全選択回路３２は、列全選択線ＲＯＷＥがハイレベルの場合、全ての列選択線ＲＳＥＬをハイレベルに設定する。また、列全選択回路３２は、列全選択線ＲＯＷＥがロウレベルの場合、列選択回路３３のアドレス信号をそのまま列選択線ＲＳＥＬに出力する。その結果、所望の列選択線ＲＳＥＬが選択される。
【００８９】
図６は、スイッチアレイ３１のサイズが４列×２行の場合の列全選択回路３２の一例である。列全選択回路３２は、列全選択線ＲＯＷＥと、列選択線ＡＳＥＬのそれぞれとを入力とするＯＲゲートで構成される。列全選択回路３２を構成するＯＲゲートのそれぞれの出力は、列選択線ＲＳＥＬに接続される。
【００９０】
列選択回路３３（第１個別選択回路とも呼ぶ）は、列アドレス線ＲＡＤＤを介して、制御回路３７に接続される。また、列選択回路３３は、列選択線ＡＳＥＬを介して、列全選択回路３２に接続される。また、列選択回路３３は、制御回路３７を介するか、図示しない配線を介してドライバ回路３６に接続される。
【００９１】
列選択回路３３は、いずれかの列選択線ＲＳＥＬを用いて、所望の第２トランジスタＮＨを導通させる。その結果、いずれかの出力線ＯＵＴと第２制御線ＰＨとが接続される。
【００９２】
列選択回路３３は、アドレスプリデコード信号に基づいて、列全選択回路３２にアドレス信号を出力する。また、列選択回路３３は、第１制御線ＰＶ、第３制御線ＰＢを選択するためのデコード信号をドライバ回路３６へ出力する。
【００９３】
また、列選択回路３３は、いずれかの列選択線ＲＳＥＬを用いて、所望のセルトランジスタＮを導通させる。その結果、導通されたセルトランジスタＮを含むスイッチセルＳＣの共通ノードと、そのセルトランジスタＮに接続されたビット線ＢＬとが接続される。
【００９４】
行全選択回路３４（第２全選択回路とも呼ぶ）は、行全選択線ＣＯＬＥを介して、制御回路３７に接続される。また、行全選択回路３４は、行選択線ＣＳＥＬを介して、第１トランジスタＮＶおよび第３トランジスタＮＢのゲートに共通に接続される。また、行全選択回路３４は、行選択線ＢＳＥＬ（第４選択線とも呼ぶ）を介して、行選択回路３５に接続される。
【００９５】
行全選択回路３４は、行全選択線ＣＯＬＥがハイレベルの場合、全ての行選択線ＣＳＥＬをハイレベルに設定する。また、行全選択回路３４は、行全選択線ＣＯＬＥがロウレベルの場合、行選択回路３５のアドレス信号をそのまま行選択線に出力する。その結果、所望の行選択線ＣＳＥＬが選択される。
【００９６】
図７は、スイッチアレイ３１のサイズが４列×２行の場合の行全選択回路３４の一例である。行全選択回路３４は、行全選択線ＣＯＬＥと、複数の行選択線ＢＳＥＬのそれぞれとを入力とするＯＲゲートで構成される。行全選択回路３４を構成するＯＲゲートのそれぞれの出力は、それぞれの行選択線ＢＳＥＬと同じ列の行選択線ＣＳＥＬに接続される。行全選択回路３４は、行選択回路３５のアドレス信号をそのまま行選択線に出力し、所望の行選択線を選択する。
【００９７】
行選択回路３５（第２個別選択回路とも呼ぶ）は、行アドレス線ＣＡＤＤを介して、制御回路３７に接続される。また、行選択回路３５は、複数の行選択線ＢＳＥＬを介して、行全選択回路３４に接続される。例えば、行選択回路３５は、制御回路３７を介して、ドライバ回路３６に信号を出力する。なお、行選択回路３５は、図示しない配線を介して、ドライバ回路３６に信号を出力してもよい。
【００９８】
行選択回路３５は、いずれかの行選択線ＣＳＥＬを用いて、所望の第１トランジスタＮＶを導通させる。その結果、いずれかの入力線ＩＮと第１制御線ＰＶとが接続される。
【００９９】
また、行選択回路３５は、いずれかの行選択線ＣＳＥＬを用いて、所望の第３トランジスタＮＢを導通させる。その結果、いずれかのビット線ＢＬと第３制御線ＰＢとが接続される。
【０１００】
行選択回路３５は、アドレスプリデコード信号に基づいて、行全選択回路３４にアドレス信号を出力する。また、行選択回路３５は、第２制御線ＰＨを選択するためのデコード信号をドライバ回路３６へ出力する。
【０１０１】
ドライバ回路３６は、第１制御線ＰＶ、第２制御線ＰＨ、および第３制御線ＰＢを介して、スイッチセルＳＣに接続される。ドライバ回路３６は、制御回路３７による制御に応じて、第１制御線ＰＶ、第２制御線ＰＨ、および第３制御線ＰＢを介して、書き込み電圧または読み出し電圧をスイッチセルＳＣへ供給する。
【０１０２】
制御回路３７は、列全選択線ＲＯＷＥを介して、列全選択回路３２に接続される。制御回路３７は、列アドレス線ＲＡＤＤを介して、列選択回路３３に接続される。制御回路３７は、行全選択線ＣＯＬＥを介して、行全選択回路３４に接続される。制御回路３７は、行アドレス線ＣＡＤＤを介して、行選択回路３５に接続される。また、制御回路３７は、ドライバ回路３６、エラー検出回路３８、および読み出し回路３９のそれぞれに接続され、それぞれの回路を制御する。
【０１０３】
制御回路３７は、アドレスＡ、入力データＤ、書き込みイネーブル信号ＷＥ、読み出しイネーブル信号ＲＥを入力信号として受信し、データ出力Ｑを出力する。制御回路３７は、アドレスＡに基づいて、アドレスプリデコード信号を行選択回路３５および列選択回路３３へ出力する。制御回路３７は、書き込みイネーブル信号ＷＥがハイレベルの場合、入力データを書き込むためのドライバ回路設定信号をドライバ回路３６へ出力する。
【０１０４】
制御回路３７は、全選択信号ＡＬがハイレベルの場合、行全選択線ＣＯＬＥおよび列全選択線ＲＯＷＥをハイレベルに設定する。また、制御回路３７は、行全選択信号ＡＬＣがハイレベルの場合、行全選択線ＣＯＬＥをハイレベルに設定するとともに、列全選択線ＲＯＷＥをロウレベルに設定する。制御回路３７は、全選択信号ＡＬおよび行全選択信号ＡＬＣがロウレベルの場合、列全選択線ＲＯＷＥおよび行全選択線ＣＯＬＥをロウレベルに設定する。
【０１０５】
制御回路３７は、読み出しイネーブル信号ＲＥがハイレベルの場合、データを読み出すためのドライバ回路設定信号をドライバ回路３６へ出力するとともに、読み出し回路制御信号を読み出し回路３９へ出力する。そして、制御回路３７は、読み出し回路３９からの出力データＩＱを受け取り、受け取った出力データＩＱをデータ出力Ｑとして外部へ出力する。また、制御回路３７は、エラー検出回路制御信号をエラー検出回路３８へ出力し、エラー検出回路３８からのエラー情報を受け取る。
【０１０６】
エラー検出回路３８は、読み出し回路３９からの出力データＩＱに基づいて、スイッチセルＳＣにエラーがあるか判定する。エラー検出回路３８は、判定結果をエラー情報として制御回路３７へ出力する。
【０１０７】
読み出し回路３９は、図示しない配線を介して第３制御線ＰＢに接続される。なお、読み出し回路３９は、ドライバ回路３６を介して第３制御線ＰＢに接続されてもよい。読み出し回路３９は、第３制御線ＰＢを介して、スイッチセルＳＣの抵抗状態をセンスする。
【０１０８】
以上が、本実施形態のプログラマブル論理集積回路３の構成についての説明である。
【０１０９】
〔書き込み方法〕
次に、スイッチセルＳＣの書き込み方法について説明する。ここでは、スイッチセルＳＣ００に関して、オフ状態からオン状態にセットする場合を例に説明する。以下においては、制御回路３７を動作の主体として説明する。
【０１１０】
制御回路３７は、スイッチセルＳＣの書き込み時には、行全選択線ＣＯＬＥおよび列全選択線ＲＯＷＥをロウレベルに設定する。そのため、行選択線ＣＳＥＬ（ＣＳＥＬ０、ＣＳＥＬ１、ＣＳＥＬ２、ＣＳＥＬ３）の信号レベルは、行選択線ＢＳＥＬ（ＢＳＥＬ０、ＢＳＥＬ１、ＢＳＥＬ２、ＢＳＥＬ３）の信号レベルと一致する。また、列選択線ＲＳＥＬ（ＲＳＥＬ０、ＲＳＥＬ１）の信号レベルは、列選択線ＡＳＥＬ（ＡＳＥＬ０、ＡＳＥＬ１）の信号レベルと一致する。
【０１１１】
〔セット〕
まず、スイッチセルＳＣ００をオフ状態からオン状態に遷移させる例について説明する。スイッチセルＳＣ００をオフ状態からオン状態に遷移させる場合、第１抵抗変化素子Ｌ００と第２抵抗変化素子Ｒ００とをそれぞれオフ状態からオン状態にセットする。
【０１１２】
第１に、図８のフローチャートに沿って、第１抵抗変化素子Ｌ００をオフ状態からオン状態へセットする手順について説明する。
【０１１３】
図８において、まず、制御回路３７は、ドライバ回路３６を制御して、第２制御線ＰＨに低電圧ＶＬ、第３制御線ＰＢにセット電圧以上の高電圧ＶＨを印加する（ステップＳ３１１）。
【０１１４】
次に、制御回路３７は、列選択回路３３および列全選択回路３２を介してハイレベルに設定される列選択線ＲＳＥＬ０を用いて、第２トランジスタＮＨ０を導通させる（ステップＳ３１２）。その結果、出力線ＯＵＴ０に低電圧ＶＬが印加される。
【０１１５】
次に、制御回路３７は、行選択回路３５および行全選択回路３４を介してハイレベルに設定される行選択線ＣＳＥＬ０を用いて、第３トランジスタＮＢ０を導通させる（ステップＳ３１３）。その結果、ビット線ＢＬ０に高電圧ＶＨが印加される。
【０１１６】
次に、制御回路３７は、列選択回路３３および列全選択回路３２を介してハイレベルに設定される列選択線ＲＳＥＬ０を用いて、セルトランジスタＮ００を導通させる（ステップＳ３１４）。その結果、第１抵抗変化素子Ｌ００の第１電極（スイッチセルＳＣ００の共通ノード）に高電圧ＶＨが印加される。
【０１１７】
以上の手順で、第１抵抗変化素子Ｌ００は、オン状態に遷移する。
【０１１８】
なお、制御回路３７は、ドライバ回路３６を制御して、第１制御線ＰＶを中間電圧（ＶＨ＋ＶＬ）／２やハイインピーダンスに設定してもよい。その場合、制御回路３７は、行選択回路３５および行全選択回路３４を介してハイレベルに設定される行選択線ＣＳＥＬ０を用いて第１トランジスタＮＶ０を導通させ、第１制御線ＰＶと入力線ＩＮ０とを接続させる。このとき、第２抵抗変化素子Ｒ００にはセット電圧以下の電圧が印加されるため、第２抵抗変化素子Ｒ００はオフ状態のまま変化しない。
【０１１９】
第２に、図９のフローチャートに沿って、第２抵抗変化素子Ｒ００をオフ状態からオン状態へセットする手順について説明する。
【０１２０】
図９において、まず、制御回路３７は、ドライバ回路３６を制御して、第１制御線ＰＶに低電圧ＶＬを、第３制御線ＰＢにセット電圧以上の高電圧ＶＨを印加する（ステップＳ３２１）。
【０１２１】
次に、制御回路３７は、行選択回路３５および行全選択回路３４を介してハイレベルに設定される行選択線ＣＳＥＬ０を用いて、第１トランジスタＮＶ０および第３トランジスタＮＢ０を導通させる（ステップＳ３２２）。その結果、入力線ＩＮ０に低電圧ＶＬ、ビット線ＢＬ０に高電圧ＶＨが印加される。
【０１２２】
次に、制御回路３７は、列選択回路３３および列全選択回路３２を介してハイレベルに設定される列選択線ＲＳＥＬ０を用いて、セルトランジスタＮ００を導通させる（ステップＳ３２３）。その結果、第２抵抗変化素子Ｒ００の第１電極（スイッチセルＳＣ００の共通ノード）に高電圧ＶＨが印加される。
【０１２３】
以上の手順で、第２抵抗変化素子Ｒ００は、オン状態に遷移する。
【０１２４】
なお、制御回路３７は、ドライバ回路３６を制御して、第２制御線ＰＨを中間電圧（ＶＨ＋ＶＬ）／２やハイインピーダンスに設定してもよい。その場合、制御回路３７は、列選択回路３３および列全選択回路３２を介してハイレベルに設定される列選択線ＲＳＥＬ０を用いて第２トランジスタＮＨ０を導通させ、第２制御線ＰＨと出力線ＯＵＴ０とを接続させる。このとき、第１抵抗変化素子Ｌ００にはセット電圧以下の電圧が印加されるため、第１抵抗変化素子Ｌ００はオン状態のまま変化しない。
【０１２５】
以上の操作により、第１抵抗変化素子Ｌ００および第２抵抗変化素子Ｒ００がセットされ、スイッチセルＳＣ００はオン状態になる。なお、第１抵抗変化素子Ｌ００および第２抵抗変化素子Ｒ００をセットする順番には限定を加えない。
【０１２６】
〔リセット〕
次に、スイッチセルＳＣ００をオン状態からオフ状態に遷移させる例について説明する。スイッチセルＳＣ００をオン状態からオフ状態に遷移させる場合、第１抵抗変化素子Ｌと第２抵抗変化素子Ｒとをそれぞれオン状態からオフ状態にリセットする。
【０１２７】
第１に、図１０のフローチャートを用いて、第１抵抗変化素子Ｌ００をオン状態からオフ状態へリセットする手順について説明する。
【０１２８】
図１０において、まず、制御回路３７は、ドライバ回路３６を制御して、第２制御線ＰＨにリセット電圧以上の高電圧ＶＨを印加し、第３制御線ＰＢに低電圧ＶＬを印加する（ステップＳ３３１）。
【０１２９】
次に、制御回路３７は、列選択回路３３および列全選択回路３２を介してハイレベルに設定される列選択線ＲＳＥＬ０を用いて、第２トランジスタＮＨ０を導通させる（ステップＳ３３２）。その結果、出力線ＯＵＴ０に高電圧ＶＨが印加される。
【０１３０】
次に、制御回路３７は、行選択回路３５および行全選択回路３４を介してハイレベルに設定される行選択線ＣＳＥＬ０を用いて、第３トランジスタＮＢ０を導通させる（ステップＳ３３３）。その結果、ビット線ＢＬ０に低電圧ＶＬが印加される。
【０１３１】
次に、制御回路３７は、列選択回路３３および列全選択回路３２を介してハイレベルに設定される列選択線ＲＳＥＬ０を用いて、セルトランジスタＮ００を導通させる（ステップＳ３３４）。その結果、第１抵抗変化素子Ｌ００の第１電極（スイッチセルＳＣ００の共通ノード）に低電圧ＶＬが印加される。
【０１３２】
以上の手順で、第１抵抗変化素子Ｌ００は、オフ状態に遷移する。
【０１３３】
なお、制御回路３７は、ドライバ回路３６を制御して、第１制御線ＰＶを中間電圧（ＶＨ＋ＶＬ）／２やハイインピーダンスに設定してもよい。その場合、制御回路３７は、行選択回路３５および行全選択回路３４を介してハイレベルに設定される行選択線ＣＳＥＬ０を用いて、第１トランジスタＮＶ０を導通させ、第１制御線ＰＶと入力線ＩＮ０とを接続させる。このとき、第２抵抗変化素子Ｒ００にはリセット電圧以下の電圧が印加されるため、第２抵抗変化素子Ｒ００はオン状態のまま変化しない。
【０１３４】
第２に、図１１のフローチャートを用いて、第２抵抗変化素子Ｒ００をオン状態からオフ状態へリセットする手順について説明する。
【０１３５】
図１１において、まず、制御回路３７は、ドライバ回路３６を制御して、第１制御線ＰＶにリセット電圧以上の高電圧ＶＨを印加し、第３制御線ＰＢに低電圧ＶＬを印加する（ステップＳ３４１）。
【０１３６】
次に、制御回路３７は、列選択回路３３および列全選択回路３２を介してハイレベルに設定される行選択線ＣＳＥＬ０を用いて、第１トランジスタＮＶ０および第３トランジスタＮＢ０を導通させる。その結果、入力線ＩＮ０に高電圧ＶＨが印加され、ビット線ＢＬ０に低電圧ＶＬが印加される（ステップＳ３４２）。
【０１３７】
次に、制御回路３７は、行選択回路３５および行全選択回路３４を介してハイレベルに設定される列選択線ＲＳＥＬ０を用いてセルトランジスタＮ００を導通させる。その結果、第２抵抗変化素子Ｒ００の第１電極（スイッチセルＳＣ００の共通ノード）に低電圧ＶＬが印加される（ステップＳ３４３）。
【０１３８】
以上の手順で、第２抵抗変化素子Ｒ００は、オフ状態に遷移する。
【０１３９】
なお、制御回路３７は、ドライバ回路３６を制御して、第２制御線ＰＨを中間電圧（ＶＨ＋ＶＬ）／２やハイインピーダンスに設定してもよい。その場合、制御回路３７は、列選択回路３３および列全選択回路３２を介してハイレベルに設定される列選択線ＲＳＥＬ０を用いて第２トランジスタＮＨ０を導通させ、第２制御線ＰＨと出力線ＯＵＴ０とを接続させる。このとき、第１抵抗変化素子Ｌ００にはリセット電圧以下の電圧が印加されるため、第１抵抗変化素子Ｌ００はオフ状態のまま変化しない。
【０１４０】
以上の操作により、第１抵抗変化素子Ｌ００および第２抵抗変化素子Ｒ００がリセットされ、スイッチセルＳＣ００はオフ状態になる。なお、第１抵抗変化素子Ｌ００および第２抵抗変化素子Ｒ００をリセットする順番には限定を加えない。
【０１４１】
以上が、スイッチセルＳＣの書き込み方法についての説明である。
【０１４２】
〔第１の読み出し方法〕
次に、スイッチセルＳＣの第１の読み出し方法について説明する。ここでは、スイッチアレイ３１に含まれるスイッチセルＳＣ００の状態を読み出す場合を例に説明する。以下においては、制御回路３７を動作の主体として説明する。
【０１４３】
スイッチセルＳＣの第１の読み出し方法では、制御回路３７は、行全選択線ＣＯＬＥおよび列全選択線ＲＯＷＥをロウレベルに設定する。そのため、行選択線ＣＳＥＬ（ＣＳＥＬ０、ＣＳＥＬ１、ＣＳＥＬ２、ＣＳＥＬ３）の信号レベルは、行選択線ＢＳＥＬ（ＢＳＥＬ０、ＢＳＥＬ１、ＢＳＥＬ２、ＢＳＥＬ３）のそれぞれの信号レベルと一致する。また、列選択線ＲＳＥＬ（ＲＳＥＬ０、ＲＳＥＬ１）の信号レベルは、列選択線ＡＳＥＬ（ＡＳＥＬ０、ＡＳＥＬ１）のそれぞれの信号レベルと一致する。
【０１４４】
第１に、図１２のフローチャートに沿って、第１抵抗変化素子Ｌ００の抵抗状態を読み出す手順について説明する。
【０１４５】
図１２において、まず、制御回路３７は、ドライバ回路３６を制御して、第２制御線ＰＨに低電圧ＶＬを印加する（ステップＳ３５１）。
【０１４６】
制御回路３７は、読み出し回路３９を制御して、第３制御線ＰＢにセンス電圧ＶＳを印加する（ステップＳ３５２）。
【０１４７】
制御回路３７は、ドライバ回路３６を制御して、第１制御線ＰＶをハイインピーダンスに設定する（ステップＳ３５３）。
【０１４８】
次に、制御回路３７は、列選択回路３３および列全選択回路３２を介してハイレベルに設定される列選択線ＲＳＥＬ０を用いて、第２トランジスタＮＨ０を導通させる（ステップＳ３５４）。その結果、出力線ＯＵＴ０に低電圧ＶＬが印加される。
【０１４９】
次に、制御回路３７は、行選択回路３５および行全選択回路３４を介してハイレベルに設定される行選択線ＣＳＥＬ０を用いて、第３トランジスタＮＢ０を導通させる（ステップＳ３５５）。その結果、ビット線ＢＬ０にセンス電圧ＶＳが印加される。
【０１５０】
次に、制御回路３７は、列選択回路３３および列全選択回路３２を介してハイレベルに設定される列選択線ＲＳＥＬ０を用いて、セルトランジスタＮ００を導通させる（ステップＳ３５６）。その結果、第１抵抗変化素子Ｌ００の第１電極（スイッチセルＳＣ００の共通ノード）にセンス電圧ＶＳが印加される。
【０１５１】
以上の手順によって、第１抵抗変化素子Ｌ００の抵抗状態に応じたセンス電流が流れる。
【０１５２】
制御回路３７は、読み出し回路３９を用いて、センス電流に基づいて、第１抵抗変化素子Ｌ００の抵抗状態に応じた出力データＩＱを生成する（ステップＳ３５７）。例えば、読み出し回路３９は、センス電流を電圧に変換後、基準電圧と比較して第１抵抗変化素子Ｌ００の抵抗状態を判定する。例えば、読み出し回路３９は、第１抵抗変化素子Ｌ００の抵抗値が所定の値より小さい場合はデータ１、所定の値より大きい場合はデータ０を出力データＩＱとして出力する。
【０１５３】
制御回路３７は、エラー検出回路３８を用いて、出力データＩＱの値に応じてエラーを検出する（ステップＳ３５８）。例えば、出力データが０の場合、エラー検出回路３８は、第１抵抗変化素子Ｌ００の抵抗状態が期待される状態（オフ状態）であると判定する。例えば、出力データが１の場合、エラー検出回路３８は、第１抵抗変化素子Ｌ００の抵抗状態が期待される状態ではない（オン状態）と判定する。
【０１５４】
第２に、図１３のフローチャートに沿って、第２抵抗変化素子Ｒ００の抵抗状態を読み出す手順について説明する。
【０１５５】
図１３において、まず、制御回路３７は、ドライバ回路３６を制御して、第１制御線ＰＶに低電圧ＶＬを印加する（ステップＳ３６１）。
【０１５６】
制御回路３７は、読み出し回路３９を制御して、第３制御線ＰＢにセンス電圧ＶＳを印加する（ステップＳ３６２）。
【０１５７】
制御回路３７は、ドライバ回路３６を制御して、第２制御線ＰＨをハイインピーダンスに設定する（ステップＳ３６３）。
【０１５８】
次に、制御回路３７は、行選択回路３５および行全選択回路３４を介してハイレベルに設定される行選択線ＣＳＥＬ０を用いて、第１トランジスタＮＶ０と第３トランジスタＮＢ０を導通させる（ステップＳ３６４）。その結果、入力線ＩＮ０に低電圧ＶＬが印加され、ビット線ＢＬ０にセンス電圧ＶＳが印加される。
【０１５９】
次に、制御回路３７は、列選択回路３３および列全選択回路３２を介してハイレベルに設定される列選択線ＲＳＥＬ０を用いて、セルトランジスタＮ００を導通させる（ステップＳ３６５）。その結果、第２抵抗変化素子Ｒ００の第１電極（共通ノード）にセンス電圧ＶＳが印加される。
【０１６０】
以上の手順によって、第２抵抗変化素子Ｒ００の抵抗状態に応じたセンス電流が流れる。
【０１６１】
制御回路３７は、読み出し回路３９を用いて、センス電流に基づいて、第２抵抗変化素子Ｒ００の抵抗状態に応じた出力データＩＱを生成する（ステップＳ３６６）。例えば、読み出し回路３９は、センス電流を電圧に変換後、基準電圧と比較して第２抵抗変化素子Ｒ００の抵抗状態を判定する。例えば、読み出し回路３９は、第２抵抗変化素子Ｒ００の抵抗値が所定の値より小さい場合はデータ１、所定の値より大きい場合はデータ０を出力データＩＱとして出力する。
【０１６２】
制御回路３７は、エラー検出回路３８を用いて、出力データＩＱの値に応じてエラーを検出する（ステップＳ３６７）。例えば、出力データが０の場合、エラー検出回路３８は、第２抵抗変化素子Ｒ００の抵抗状態が期待される状態（オフ状態）であると判定する。例えば、出力データが１の場合、エラー検出回路３８は、第２抵抗変化素子Ｒ００の抵抗状態が期待される状態ではない（オン状態）と判定する。
【０１６３】
以上が、スイッチセルＳＣの第１の読み出し方法についての説明である。
【０１６４】
〔第２の読み出し方法〕
次に、スイッチセルＳＣの第２の読み出し方法について説明する。第２の読み出し方法は、各抵抗変化スイッチに期待される抵抗状態がオフ状態である場合に適用される。プログラマブル論理回路の書き換えを行う場合、全ての抵抗変化スイッチをオフ状態にしてから書き込みを行う。このとき、全ての抵抗変化スイッチに期待される抵抗状態はオフ状態である。しかし、書き込みが不十分の場合や、回路動作に不具合がある場合、期待される抵抗状態（オフ状態）とは異なる抵抗状態（オン状態）の抵抗変化スイッチが存在する可能性がある。そのため、プログラマブル論理回路のプログラム前に、全てのスイッチの抵抗状態が期待される状態（オフ状態）であることを確認する。以下においては、制御回路３７を動作の主体として説明する。
【０１６５】
まず、制御回路３７は、行全選択線ＣＯＬＥおよび列全選択線ＲＯＷＥをハイレベルに設定する。そのため、行選択回路３５の信号とは無関係に、全ての行選択線ＣＳＥＬ（ＣＳＥＬ０、ＣＳＥＬ１、ＣＳＥＬ２、ＣＳＥＬ３）はハイレベルに設定される。同様に、全ての列選択線ＲＳＥＬ（ＲＳＥＬ０、ＲＳＥＬ１）の信号レベルもハイレベルに設定される。
【０１６６】
第１に、図１４のフローチャートに沿って、第１抵抗変化素子Ｌの抵抗状態を読み出す手順について説明する。
【０１６７】
図１４において、まず、制御回路３７は、ドライバ回路３６を制御して、第２制御線ＰＨに低電圧ＶＬを印加する（ステップＳ３７１）。
【０１６８】
制御回路３７は、読み出し回路３９を制御して、第３制御線ＰＢにセンス電圧ＶＳを印加する（ステップＳ３７２）。
【０１６９】
制御回路３７は、ドライバ回路３６を制御して、第１制御線ＰＶをハイインピーダンスに設定する（ステップＳ３７３）。
【０１７０】
次に、制御回路３７は、列全選択回路３２を介してハイレベルに設定される全ての列選択線ＲＳＥＬ（ＲＳＥＬ０およびＲＳＥＬ１）を用いて、全ての第２トランジスタＮＨ（ＮＨ０、ＮＨ１）を導通させる（ステップＳ３７４）。その結果、全ての出力線ＯＵＴ（ＯＵＴ０、ＯＵＴ１）に低電圧ＶＬが印加される。
【０１７１】
次に、制御回路３７は、行全選択回路３４を介してハイレベルに設定される全ての行選択線ＣＳＥＬ（ＣＳＥＬ０、ＣＳＥＬ１、ＣＳＥＬ２、ＣＳＥＬ３）を用いて、全ての第３トランジスタＮＢ（ＮＢ０、ＮＢ１、ＮＢ２、ＮＢ３）を導通させる（ステップＳ３７５）。その結果、全てのビット線ＢＬ（ＢＬ０、ＢＬ１、ＢＬ２、ＢＬ３）にセンス電圧ＶＳが印加される。
【０１７２】
次に、制御回路３７は、列全選択回路３２を介してハイレベルに設定される全ての列選択線ＲＳＥＬ（ＲＳＥＬ０、ＲＳＥＬ１）を用いて、全てのセルトランジスタＮ（Ｎ００、Ｎ０１、Ｎ０２、Ｎ０３、Ｎ１０、Ｎ１１、Ｎ１２、Ｎ１３）を導通させる。その結果、全ての第１抵抗変化素子Ｌ（Ｌ００、Ｌ０１、Ｌ０２、Ｌ０３、Ｌ１０、Ｌ１１、Ｌ１２、Ｌ１３）の第１電極（全てのスイッチセルＳＣの共通ノード）にセンス電圧ＶＳが印加される（ステップＳ３７６）。
【０１７３】
以上の手順によって、全ての第１抵抗変化素子Ｌ（Ｌ００、Ｌ０１、Ｌ０２、Ｌ０３、Ｌ１０、Ｌ１１、Ｌ１２、Ｌ１３）は、第１制御線ＰＶ、第３制御線ＰＢと並列に接続される。その結果、スイッチアレイ３１に含まれる全ての第１抵抗変化素子Ｌに流れるセンス電流の総和が第１制御線ＰＶおよび第３制御線ＰＢに流れる。
【０１７４】
制御回路３７は、読み出し回路３９を用いて、センス電流に基づいて、第１抵抗変化素子の抵抗状態に応じた出力データＩＱを生成する（ステップＳ３７７）。例えば、読み出し回路３９は、センス電流を電圧に変換後、基準電圧と比較して第１抵抗変化素子Ｌの抵抗状態を判定する。例えば、読み出し回路３９は、抵抗値が所定の値より小さい場合はデータ１、所定の値より大きい場合はデータ０を出力データＩＱとして出力する。
【０１７５】
制御回路３７は、エラー検出回路３８を用いて、出力データＩＱの値に応じてエラーを検出する（ステップＳ３７８）。例えば、出力データが０の場合、エラー検出回路３８は、全ての第１抵抗変化素子Ｌの抵抗状態が期待される状態（オフ状態）であると判定する。例えば、出力データが１の場合、エラー検出回路３８は、いずれかの第１抵抗変化素子Ｌの抵抗状態が期待される状態ではない（オン状態のスイッチが含まれる）と判定する。
【０１７６】
第２に、図１５のフローチャートに沿って、第２抵抗変化素子Ｒの抵抗状態を読み出す手順について説明する。
【０１７７】
まず、制御回路３７は、ドライバ回路３６を制御して、第１制御線ＰＶに低電圧ＶＬを印加する（ステップＳ３８１）。
【０１７８】
制御回路３７は、読み出し回路３９を制御して、第３制御線ＰＢにセンス電圧ＶＳを印加する（ステップＳ３８２）。
【０１７９】
制御回路３７は、ドライバ回路３６を制御して、第２制御線ＰＨをハイインピーダンスに設定する（ステップＳ３８３）。
【０１８０】
次に、制御回路３７は、行選択回路３５および行全選択回路３４を介してハイレベルに設定される行選択線ＣＳＥＬ０を用いて、第１トランジスタＮＶ０と第３トランジスタＮＢ０を導通させる（ステップＳ３８４）。その結果、入力線ＩＮ０に低電圧ＶＬが印加され、ビット線ＢＬ０にセンス電圧ＶＳが印加される。
【０１８１】
次に、制御回路３７は、列全選択回路３２を介してハイレベルに設定される全ての列選択線ＲＳＥＬ（ＲＳＥＬ０およびＲＳＥＬ１）を用いて、全ての第２トランジスタＮＨ（ＮＨ０、ＮＨ１）を導通させる（ステップＳ３８５）。その結果、全ての出力線ＯＵＴ（ＯＵＴ０、ＯＵＴ１）はハイインピーダンスに設定される。
【０１８２】
次に、制御回路３７は、行全選択回路３４を介してハイレベルに設定される全ての行選択線ＣＳＥＬ（ＣＳＥＬ０、ＣＳＥＬ１、ＣＳＥＬ２、ＣＳＥＬ３）を用いて、全ての第３トランジスタＮＢ（ＮＢ０、ＮＢ１、ＮＢ２、ＮＢ３）を導通させる（ステップＳ３８６）。その結果、全てのビット線ＢＬ（ＢＬ０、ＢＬ１、ＢＬ２、ＢＬ３）にセンス電圧ＶＳが印加される。
【０１８３】
次に、制御回路３７は、列全選択回路３２を介してハイレベルに設定される全ての列選択線ＲＳＥＬ（ＲＳＥＬ０、ＲＳＥＬ１）を用いて、全てのセルトランジスタＮ（Ｎ００、Ｎ０１、Ｎ０２、Ｎ０３、Ｎ１０、Ｎ１１、Ｎ１２、Ｎ１３）を導通させる（ステップＳ３８７）。その結果、全ての第２抵抗変化素子Ｒ（Ｒ００、Ｒ０１、Ｒ０２、Ｒ０３、Ｒ１０、Ｒ１１、Ｒ１２、Ｒ１３）の第１電極（全てのスイッチセルＳＣの共通ノード）にセンス電圧ＶＳが印加される。
【０１８４】
以上の手順によって、全ての第２抵抗変化素子Ｒ（Ｒ００、Ｒ０１、Ｒ０２、Ｒ０３、Ｒ１０、Ｒ１１、Ｒ１２、Ｒ１３）は、第２制御線ＰＨ、第３制御線ＰＢと並列に接続される。その結果、スイッチアレイ３１に含まれる全ての第２抵抗変化素子Ｒに流れるセンス電流の総和が第２制御線ＰＨおよび第３制御線ＰＢに流れる。
【０１８５】
制御回路３７は、読み出し回路３９を用いて、センス電流に基づいて、第２抵抗変化素子Ｒの抵抗状態に応じた出力データＩＱを生成する（ステップＳ３８８）。例えば、読み出し回路３９は、センス電流を電圧に変換後、基準電圧と比較して第２抵抗変化素子Ｒの抵抗状態を判定する。例えば、読み出し回路３９は、抵抗値が所定の値より小さい場合はデータ１、所定の値より大きい場合はデータ０を出力データＩＱとして出力する。
【０１８６】
制御回路３７は、エラー検出回路３８を用いて、出力データＩＱの値に応じてエラーを検出する（ステップＳ３８９）。例えば、出力データが０の場合、エラー検出回路３８は、全ての第２抵抗変化素子Ｒの抵抗状態が期待される状態（オフ状態）であると判定する。例えば、出力データが１の場合、エラー検出回路３８は、いずれかの第２抵抗変化素子Ｒの抵抗状態が期待される状態ではない（オン状態のスイッチが含まれる）と判定する。
【０１８７】
以上が、スイッチセルＳＣの第２の読み出し方法についての説明である。
【０１８８】
〔第３の読み出し方法〕
次に、スイッチセルＳＣの第３の読み出し方法について説明する。第３の読み出し方法は、抵抗変化スイッチへの書き込みが正しく行われたかを高速に判定するために用いることができる。Ｎ行Ｍ列のスイッチアレイの場合、第１の読み出し方法では、スイッチアレイ３１に含まれる第１抵抗変化素子Ｌの抵抗状態（オン・オフ）を判定するために、スイッチの個数分の読み出し回数、すなわちＭ×Ｎ回の読み出しが必要である。一方、第３の読み出し方法では、列数の回数、すなわちＭ回の読み出しで抵抗状態の良否を判定することができる。
【０１８９】
ただし、第３の読み出し方法では、以下の１〜４の条件が必要である。
（条件１）各列の第１抵抗変化素子Ｌの不良数が１個以下であること
（条件２）各列の抵抗変化スイッチの不良数が１個以下であること
（条件３）各列の第１抵抗変化素子Ｌの内、ただ１つだけがオン状態であること
（条件４）各列の第２抵抗変化素子Ｒの内、ただ１つだけがオン状態であること
上記の条件１〜４が全て満たされた場合、第３の読み出し方法を適用できる。
【０１９０】
一般に、プログラマブル論理回路に用いられるスイッチアレイにおいては、各列の抵抗変化スイッチの内、ただ１つだけがオン状態となるようにプログラムされている。そのため、上記の条件３および条件４は満たされている。また、抵抗変化スイッチの書き込み不良率は１０のマイナス６乗以下であるため、Ｎが１００個未満であれば、条件１および条件２のいずれかが満たされない確率は、１０のマイナス１０乗以下という非常に低い確率である。
【０１９１】
以下に、Ｍ＝４、Ｎ＝２の場合における第３の読み出し方法について説明する。
【０１９２】
まず、制御回路３７は、行全選択線ＣＯＬＥをハイレベルに設定する。その結果、行選択回路３５の信号とは無関係に、全ての行選択線ＣＳＥＬ（ＣＳＥＬ０、ＣＳＥＬ１、ＣＳＥＬ２、ＣＳＥＬ３）の信号レベルはハイレベルとなる。また、制御回路３７は、列全選択線ＲＯＷＥをロウレベルに設定する。その結果、列選択線ＲＳＥＬ（ＲＳＥＬ０、ＲＳＥＬ１）の信号レベルは、列選択線ＡＳＥＬ（ＡＳＥＬ０、ＡＳＥＬ１）のそれぞれの信号レベルと一致する。
【０１９３】
ここで、図１６のフローチャートを用いて、スイッチアレイ３１の抵抗変化スイッチの抵抗状態を読み出す手順について説明する。
【０１９４】
まず、制御回路３７は、ドライバ回路３６を制御して、第２制御線ＰＨに低電圧ＶＬを印加する（ステップＳ３９１）。
【０１９５】
制御回路３７は、読み出し回路３９を制御して、第１制御線ＰＶにセンス電圧ＶＳを印加する（ステップＳ３９２）。
【０１９６】
制御回路３７は、ドライバ回路３６を制御して、第３制御線ＰＢをハイインピーダンスに設定する（ステップＳ３９３）。
【０１９７】
次に、制御回路３７は、列選択回路３３および列全選択回路３２を介してハイレベルに設定される列選択線ＲＳＥＬ０を用いて第２トランジスタＮＨ０を導通させる（ステップＳ３９４）。その結果、出力線ＯＵＴ０に低電圧ＶＬが印加される。このとき、列選択線ＲＳＥＬ１はロウレベルであり、第２トランジスタＮＨ１は非導通である。
【０１９８】
次に、制御回路３７は、行全選択回路３４を介してハイレベルに設定される全ての行選択線ＣＳＥＬ（ＣＳＥＬ０、ＣＳＥＬ１、ＣＳＥＬ２、ＣＳＥＬ３）を用いて、全ての第１トランジスタＮＶ（ＮＶ０、ＮＶ１、ＮＶ２、ＮＶ３）を導通させる（ステップＳ３９５）。その結果、全ての入力線ＩＮ（ＩＮ０、ＩＮ１、ＩＮ２、ＩＮ３）にセンス電圧ＶＳが印加される。
【０１９９】
以上の手順によって、同じ列に属する抵抗変化スイッチはそれぞれ、第１制御線ＰＶおよび第３制御線ＰＢと接続される。その結果、スイッチアレイ３１内の同じ列に属する全ての第１抵抗変化素子Ｌに流れるセンス電流の総和が第１制御線ＰＶおよび第２制御線ＰＨに流れる。
【０２００】
制御回路３７は、読み出し回路３９を用いて、センス電流に基づいて、第２抵抗変化素子Ｒの抵抗状態に応じた出力データＩＱを生成する（ステップＳ３９６）。例えば、読み出し回路３９は、センス電流を電圧に変換後、基準電圧と比較して抵抗変化スイッチの抵抗状態を判定する。例えば、読み出し回路３９は、抵抗値が所定の値より小さい場合はデータ１、所定の値より大きい場合はデータ０を出力データＩＱとして出力する。
【０２０１】
エラー検出回路３８は、出力データＩＱの値に応じてエラーを検出する（ステップＳ３９７）。例えば、出力データが０の場合、エラー検出回路３８は、全ての抵抗変化スイッチの抵抗状態が期待される状態（オフ状態）であると判定する。例えば、出力データが１の場合、エラー検出回路３８は、いずれかの抵抗変化スイッチの抵抗状態が期待される状態ではない（オン状態のスイッチが含まれる）と判定する。
【０２０２】
以上が、スイッチセルＳＣの第３の読み出し方法についての説明である。
【０２０３】
以上のように、本実施形態のプログラマブル論理集積回路によれば、クロスバスイッチを構成する抵抗変化スイッチのエラー判定を高速に行うことができるプログラマブル論理集積回路を提供できる。
【０２０４】
例えば、第１選択回路は、第１全選択回路と第２全選択回路とを含む。第１全選択回路は、第２方向に並んだ複数の抵抗変化スイッチを一括して選択する。第２全選択回路は、第１方向に並んだ複数の抵抗変化スイッチを一括して選択する。また、第２選択回路は、第１個別選択回路と第２個別選択回路とを含む。第１個別選択回路は、第１全選択回路に接続され、第２方向に並んだ複数の抵抗変化スイッチに含まれる抵抗変化素子を個別に選択する。第２個別選択回路は、第２全選択回路に接続され、第１方向に並んだ複数の抵抗変化スイッチに含まれる抵抗変化素子を個別に選択する。
【０２０５】
例えば、スイッチセルは、二つの抵抗変化素子の間の共通ノードに拡散層の一端が接続されるセルトランジスタを含む。スイッチアレイは、第１配線、第２配線、ビット配線、第１トランジスタ、第２トランジスタ、第３トランジスタ、第１制御線、第２制御線、第３制御線、第１選択線、第２選択線、第３選択線、第４選択線を有する。複数の第１配線は、第１方向に延伸され、抵抗変化スイッチの一端が接続される。複数の第２配線は、第１方向に交差する第２方向に延伸され、抵抗変化スイッチの他端が接続される。複数のビット配線は、第１方向に延伸され、セルトランジスタの拡散層の他端が接続される。複数の第１トランジスタは、第１配線に拡散層の一端が接続される。第１制御線は、複数の第１トランジスタの拡散層の他端が接続される。複数の第２トランジスタは、第２配線に拡散層の一端が接続される。第２制御線は、複数の第２トランジスタの拡散層の他端が接続される。複数の第３トランジスタは、ビット配線に拡散層の一端が接続される。第３制御線は、複数の第３トランジスタの拡散層の他端が接続される。複数の第１選択線は、第１全選択回路に接続される。複数の第１選択線のそれぞれには、第２方向に並んだ複数のスイッチセルに含まれるセルトランジスタのゲートが共通に接続され、第２方向に並んだ複数のスイッチセルに対応する第２トランジスタのゲートが接続される。複数の第２選択線は、第２全選択回路に接続される。複数の第２選択線のそれぞれには、第１方向に並んだ複数のスイッチセルに対応する第１トランジスタおよび第２トランジスタのゲートが共通に接続される。第３選択線は、第１個別選択回路に接続され、第１全選択回路を介して複数の第１選択線のそれぞれに接続される。第４選択線は、第２個別選択回路に接続され、第２全選択回路を介して複数の第２選択線のそれぞれに接続される。
【０２０６】
例えば、本実施形態のプログラマブル論理集積回路は、第１全選択回路、第２全選択回路、第１個別選択回路、第２個別選択回路、読み出し回路、エラー検出回路に接続され、第１制御線、第２制御線、第３制御線に印加する電圧を設定する制御回路を備える。また、本実施形態のプログラマブル論理集積回路は、制御回路、第１制御線、第２制御線、第３制御線に接続され、制御回路の制御に応じて第１制御線、第２制御線、第３制御線に電圧を印加するドライバ回路を備える。制御回路は、選択対象の前記抵抗変化素子の抵抗状態を読み出す際に、ドライバ回路を制御して、第１制御線および第２制御線に印加する電圧を設定する。制御回路は、読み出し回路を制御して、第３制御線に印加する電圧を設定する。制御回路は、第１全選択回路および第１個別選択回路の少なくともいずれかを制御して、いずれかの第１トランジスタおよび第３トランジスタのゲートに印加する電圧を設定する。制御回路は、第２全選択回路および第２個別選択回路の少なくともいずれかを制御して、いずれかの第２トランジスタのゲートに印加する電圧を設定する。
【０２０７】
以上、実施形態を参照して本発明を説明してきたが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【０２０８】
この出願は、２０１８年３月１４日に出願された日本出願特願２０１８−０４６１３６を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【符号の説明】
【０２０９】
１、２、３    プログラマブル論理集積回路
１１    スイッチアレイ
１２    第１選択回路
１３    第２選択回路
１４    読み出し回路
１５    エラー検出回路
２１    構成用ポート
２２    構成用回路
２３    プログラム用周辺回路
２５    プログラマブルロジックセル
２６    汎用ポート
３１    スイッチアレイ
３２    列全選択回路
３３    列選択回路
３４    行全選択回路
３５    行選択回路
３６    ドライバ回路
３７    制御回路
３８    エラー検出回路
３９    読み出し回路
１００    抵抗変化スイッチ
１１０    抵抗変化素子
１１１    活性電極
１１２    不活性電極
１１３    抵抗変化層
１１４    共通ノード
１１５    金属架橋
２５１    スイッチアレイ
２５２    基本論理回路
【図１】
2019176893.tif 000003
【図２】
2019176893.tif 000004
【図３】
2019176893.tif 000005
【図４】
2019176893.tif 000006
【図５】
2019176893.tif 000007
【図６】
2019176893.tif 000008
【図７】
2019176893.tif 000009
【図８】
2019176893.tif 000010
【図９】
2019176893.tif 000011
【図１０】
2019176893.tif 000012
【図１１】
2019176893.tif 000013
【図１２】
2019176893.tif 000014
【図１３】
2019176893.tif 000015
【図１４】
2019176893.tif 000016
【図１５】
2019176893.tif 000017
【図１６】
2019176893.tif 000018
【国際調査報告】
2019176893.tif 000019
2019176893.tif 000020