(57)【要約】  抵抗変化素子で不良が発生しても救済が可能であり、信頼性を向上させることができる、プログラマブル論理集積回路を提供する。抵抗変化素子を備えるプログラマブル論理集積回路において、外部から入力される構成情報にしたがって抵抗変化素子の状態を変更するとき、制御手段により、読出し手段を用いて抵抗変化素子毎の状態を読み出し、書込み手段を用いて構成情報で示される状態と異なる抵抗変更素子の状態のみを変更する。
2016194332.tif 000002
【特許請求の範囲】
【請求項１】
複数のロジックブロックと、
第１の方向へ延在する複数の第１の配線と第２の方向へ延在する複数の第２の配線とを接続または切断する、前記第１の配線と前記第２の配線との交点に配置された複数の抵抗変化素子を備えた複数のクロスバー・スイッチブロックと、
前記ロジックブロックに信号を入力するための入力配線と前記クロスバー・スイッチブロックとを接続または切断するコネクション・スイッチブロックと、
前記抵抗変化素子の状態を検出する読出し手段と、
前記抵抗変化素子の状態を変更する書込み手段と、
外部から入力される構成情報にしたがって前記抵抗変化素子の状態を変更するとき、前記読出し手段により前記抵抗変化素子毎の状態を読み出し、前記書込み手段により前記構成情報で示される状態と異なる前記抵抗変更素子の状態のみを変更する制御手段と、を有するプログラマブル論理集積回路。
【請求項２】
前記コネクション・スイッチブロックは、
前記入力配線と前記第２の配線とを接続または切断するスイッチ素子を備え、
前記制御手段は、
前記抵抗変化素子で状態を変更できない不良が発生した場合、前記スイッチ素子により前記不良が発生した抵抗変化素子が接続される第２の配線と前記入力配線とを切断する請求項１に記載のプログラマブル論理集積回路。
【請求項３】
前記コネクション・スイッチブロックは、
前記入力配線と前記第２の配線とを接続する第１のコネクション・スイッチブロックと、
前記ロジックブロック及び前記ロジックブロックの出力信号を出力するための出力配線と、前記第１の配線とを接続または切断するスイッチ素子を備えた第２のコネクション・スイッチブロックと、を有し、
前記クロスバー・スイッチブロックは、
前記第１の方向へ延在する第１の冗長配線をさらに備え、
前記制御手段は、
前記抵抗変化素子で状態を変更できない不良が発生した場合、前記スイッチ素子により、前記出力配線を、前記不良が発生した抵抗変化素子が接続される第１の配線に代えて、該第１の配線と隣接する第１の配線または前記第１の冗長配線と接続する請求項１に記載のプログラマブル論理集積回路。
【請求項４】
前記コネクション・スイッチブロックは、
前記第２の方向へ延在する第２の冗長配線と、
前記入力配線及び前記第２の冗長配線と前記第２の配線とを接続または切断するスイッチ素子とを備え、
前記制御手段は、
前記抵抗変化素子で状態を変更できない不良が発生した場合、前記スイッチ素子により、前記入力配線を、前記不良が発生した抵抗変化素子が接続される第２の配線に代えて、該第２の配線と隣接する第２の配線または前記第２の冗長配線と接続する請求項１に記載のプログラマブル論理集積回路。
【請求項５】
前記コネクション・スイッチブロックは、
前記入力配線と前記第２の配線とを接続または切断する第１のスイッチ素子を備えた第１のコネクション・スイッチブロックと、
前記ロジックブロック及び前記ロジックブロックの出力信号を出力するための出力配線と、前記第１の配線とを接続または切断する第２のスイッチ素子を備えた第２のコネクション・スイッチブロックと、を有し、
前記クロスバー・スイッチブロックは、
前記第１の方向へ延在する第１の冗長配線をさらに備え、
前記第１のコネクション・スイッチブロックは、
前記第２の方向へ延在する第２の冗長配線をさらに備え、
前記制御手段は、
前記抵抗変化素子で状態を変更できない不良が発生した場合、前記第１のスイッチ素子により前記入力配線を、前記不良が発生した抵抗変化素子が接続される第２の配線に代えて、該第２の配線と隣接する第２の配線または前記第２の冗長配線と接続し、
前記第２のスイッチ素子により、前記出力配線を、前記不良が発生した抵抗変化素子が接続される第１の配線に代えて、該第１の配線と隣接する第１の配線または前記第１の冗長配線と接続する請求項１に記載のプログラマブル論理集積回路。
【請求項６】
抵抗変化素子を備えるプログラマブル論理集積回路に実装する回路の設計を支援する設計支援システムであって、
前記回路の実装対象である前記プログラマブル論理集積回路の不良の有無を示す欠陥情報に基づいて、前記回路で利用可能な回路要素を示す情報であるリソース情報を生成するリソース設定手段と、
前記プログラマブル論理集積回路が備える要素回路の接続情報であるネットリスト及び前記リソース情報に基づいて仮想的な配置配線を実施して構成情報を生成する構成情報生成手段と、
前記構成情報生成手段で生成された構成情報と、前記プログラマブル論理集積回路から読み出した構成情報である内部構成情報とを比較し、前記構成情報生成手段で生成された構成情報と前記内部構成情報とが一致しない場合、前記欠陥情報を更新する欠陥情報生成手段と、を有する設計支援システム。
【請求項７】
前記リソース設定手段は、
前記抵抗変化素子で状態を変更できない不良が発生している場合、前記不良が発生した抵抗変化素子である欠陥素子がオン状態で固定されているかオフ状態で固定されているかを判定し、
オフ状態で固定された欠陥素子を前記リソース情報から削除することで該リソース情報を更新し、
前記構成情報生成手段は、
前記リソース設定手段による更新後のリソース情報に基づいて前記構成情報を生成する請求項６に記載の設計支援システム。
【請求項８】
前記リソース設定手段は、
前記抵抗変化素子で状態を変更できない不良が発生している場合、前記不良が発生した抵抗変化素子である欠陥素子が接続される配線または前記欠陥素子を含む回路要素が、前記プログラマブル論理集積回路が備える冗長配線または前記冗長回路に置き換え可能か否かを判定し、
前記欠陥素子が接続される配線または前記欠陥素子を含む回路要素を前記リソース情報から削除し、前記冗長配線または前記冗長回路を前記リソース情報に追加することで該リソース情報を更新し、
前記構成情報生成手段は、
前記リソース設定手段による更新後のリソース情報に基づいて前記構成情報を生成する請求項６または７に記載の設計支援システム。
【請求項９】
前記抵抗変化素子の状態の変更回数を示す書換え履歴情報を生成する書換え履歴情報生成手段をさらに有し、
前記構成情報生成手段は、
前記ネットリスト、前記リソース情報及び前記書換え履歴情報に基づいて状態の変更回数が少ない抵抗変化素子を優先的に用いて前記構成情報を生成する請求項６から８のいずれか１項に記載の設計支援システム。
【請求項１０】
抵抗変化素子を備えるプログラマブル論理集積回路に所望の回路を形成するためのコンフィグレーション方法であって、
ハードウェア記述言語により記述された前記回路の動作記述情報を論理合成し、前記回路のネットリストを作成し、
前記ネットリスト及び前記回路の実装対象である前記プログラマブル論理集積回路の不良の有無を示す欠陥情報に基づいて、前記回路で利用可能な回路要素を示す情報であるリソース情報を作成し、
前記ネットリスト及び前記リソース情報に基づいて仮想的な配置配線を実施して前記回路の形成に必要な情報である構成情報を作成し、
前記作成された構成情報で示される回路の信号遅延及び消費電力を計算し、予め設定された仕様を満たすか否かを検証し、
前記検証された構成情報を前記プログラマブル論理集積回路に書き込み、
前記プログラマブル論理集積回路に書き込まれた構成情報である内部構成情報を取得し、
前記検証された構成情報と前記内部構成情報とを比較し、
前記検証された構成情報と前記内部構成情報とが一致しない場合、前記検証された構成情報と前記内部構成情報との差異に基づいて前記欠陥情報を更新し、
前記検証された構成情報と前記内部構成情報とが一致するまで、前記リソース情報の作成、前記構成情報の作成、前記検証、前記書き込み、前記取得、前記比較、及び前記更新を繰り返す、コンフィグレーション方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、抵抗変化素子を備えたプログラマブル論理集積回路、並びにその設計支援システム及びコンフィグレーション方法に関する。
【背景技術】
【０００２】
一般に、半導体集積回路は、半導体基板に形成された多数のトランジスタと、半導体基板の上層に形成された、各トランジスタを接続するための配線層と、を備える。通常、各トランジスタを接続するための配線パターンは半導体集積回路の設計段階で決められており、半導体集積回路の製造後にトランジスタどうしの接続を変更することはできない。【０００３】
一方、ＦＰＧＡ（Field Programmable Gate Array）等のプログラマブル論理集積回路は、製造後であっても内部に備える複数の論理演算回路（ロジックブロック）の接続が変更可能な構成である。そのため、ユーザは、複数のロジックブロックを任意に組み合わせることで、プログラマブル論理集積回路に所望の論理回路を形成（実装）できる。所望の論理回路を形成するために必要な情報（構成情報）はプログラマブル論理集積回路が備えるメモリ素子で保存される。構成情報を記憶するメモリ素子には、ＳＲＡＭ（Static Random Access Memory）セル、アンチフューズ、フローティングゲートＭＯＳ（Metal Oxide Semiconductor）トランジスタ等が用いられる。【０００４】
これらのメモリ素子やロジックブロックどうしを変更可能に接続するスイッチは、通常、多数のトランジスタから成るロジックブロックと同層に形成されるため、大きな面積オーバヘッド要因となる。そのため、プログラマブル論理集積回路のチップ面積が大きくなり、製造コストが上昇する。また、メモリ素子やスイッチのレイアウト面積が大きくなることで、チップ面積に占めるロジックブロックの割合が低下する。【０００５】
そこで、レイアウト面積の増大を抑制しつつ製造後のロジックブロックどうしの接続を変更可能にするスイッチとして、配線層に形成可能な抵抗変化素子を用いたプログラマブル論理集積回路が提案されている。例えば、特許文献１、特許文献２及び非特許文献１に記載されたプログラマブル論理集積回路は、第１の配線層と、その上部に形成される第２の配線層との間に、金属イオンを含有する固体電解質材料から成る抵抗変化素子が配置された構成である。抵抗変化素子は、その両端に順方向あるいは逆方向にバイアス電圧を印加することで抵抗値を変化させることが可能であり、低抵抗状態（オン状態）と高抵抗状態（オフ状態）との比が１０の５乗あるいはそれ以上となる。すなわち、当該抵抗変化素子は、第１の配線と第２の配線とを電気的に接続または切断するスイッチとして機能する。【０００６】
背景技術のプログラマブル論理集積回路における配線の接続及び切断には、メモリ素子であるＳＲＡＭセルと、スイッチ機能を備えた１つのトランジスタとを有するスイッチセルとが利用されている。一方、抵抗変化素子は、メモリ機能とスイッチ機能の両方を備えているため、一つの抵抗変化素子でスイッチセルを実現できる。【０００７】
特許文献１によれば、第１の配線群と、該第１の配線群と交差する第２の配線群との各交点に抵抗変化素子を配置することで、第１の配線群の任意の配線と第２の配線群の任意の配線とを接続または切断できるクロスバー・スイッチをコンパクトなサイズで実現できる。その結果、チップ面積の大幅な縮小やロジックブロックの使用効率の改善によるプログラマブル論理集積回路の性能向上が期待できる。また、抵抗変化素子のオンまたはオフの状態は、プログラマブル論理集積回路に対する電源供給が停止しても保持されるため、電源を投入する度に構成情報をロードする手間を省くことができる利点もある。【０００８】
ところで、プログラマブル論理集積回路を含む半導体集積回路では、製造時に発生するトランジスタや配線の不良に備えて冗長回路を設けることが生産収率を向上させるために非常に有効であることが知られている。例えば、特許文献３や特許文献４には、冗長回路を備えておき、不良が発生した回路（不良回路）を該冗長回路に置き換える技術が開示されている。【０００９】
出荷前の選別テストで不良回路が検出された場合、冗長回路により該不良回路を迂回するルートを形成して出荷するのが一般的である。これにより、出荷したプログラマブル論理集積回路に不良回路が含まれていても、該プログラマブル論理集積回路のユーザは不良回路を意識することなく所望の論理回路を構成できる。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特許第４３５６５４２号公報
【特許文献２】国際公開第２０１２／０４３５０２号
【特許文献３】米国特許第４８９９０６７号明細書
【特許文献４】特開２０１４−９３７８２号公報
【非特許文献】
【００１１】
【非特許文献１】M. Miyamura et al., "Low-power programmable-logic cell arrays using nonvolatile complementary atom switch", 15th International Symposium (ISQED), pp.330-334, 2014
【発明の概要】
【発明が解決しようとする課題】
【００１２】
上述した抵抗変化素子を備えるプログラマブル論理集積回路では、出荷後に該抵抗変化素子のオンまたはオフの状態を変更することで、新たな不良が発生する可能性がある。抵抗変化素子のオンまたはオフの状態は、プログラマブル論理集積回路へ構成情報を書込むことで変更される。【００１３】
抵抗変化素子で発生する不良は、オン状態からオフ状態へ設定できないオフ故障（オン固定）と、オフ状態からオン状態へ設定できないオン故障（オフ固定）とが代表的である。これらの不良は、プログラマブル論理集積回路の製造メーカが保証する構成情報の書き換え回数（保証更新回数）よりもオンまたはオフの状態を変更できる回数が少ない抵抗変化素子が存在し、出荷後に顕在化するケースが考えられる。あるいは、耐電圧が通常よりも低い抵抗変化素子が存在し、構成情報の書込み時に該抵抗変化素子が破壊されて顕在化するケースが考えられる。不良となった抵抗変化素子は、構成情報の再書込みを行っても、そのオンまたはオフの状態を変更できないため、ユーザは所望の論理回路を実現できなくなる。その場合、不良となった抵抗変化素子を含むプログラマブル論理集積回路は、代替品と交換する必要があるため、プログラマブル論理集積回路のコストが増大する要因となる。【００１４】
したがって、出荷後に抵抗変化素子で不良が発生しても、ユーザが設計した論理回路を問題なく形成できる、該不良が発生した抵抗変化素子を含むプログラマブル論理集積回路を救済するための技術が望まれる。また、その技術は、該プログラマブル論理集積回路の信頼性を向上させるものであることが望ましい。【００１５】
本発明は上述したような背景技術が有する課題を解決するためになされたものであり、抵抗変化素子で不良が発生しても救済が可能であり、信頼性を向上させることができる、プログラマブル論理集積回路を提供することを目的とする。
【課題を解決するための手段】
【００１６】
上記目的を達成するため本発明のプログラマブル論理集積回路は、複数のロジックブロックと、
第１の方向へ延在する複数の第１の配線と第２の方向へ延在する複数の第２の配線とを接続または切断する、前記第１の配線と前記第２の配線との交点に配置された複数の抵抗変化素子を備えた複数のクロスバー・スイッチブロックと、
前記ロジックブロックに信号を入力するための入力配線と前記クロスバー・スイッチブロックとを接続または切断するコネクション・スイッチブロックと、
前記抵抗変化素子の状態を検出する読出し手段と、
前記抵抗変化素子の状態を変更する書込み手段と、
外部から入力される構成情報にしたがって前記抵抗変化素子の状態を変更するとき、前記読出し手段により前記抵抗変化素子毎の状態を読み出し、前記書込み手段により前記構成情報で示される状態と異なる前記抵抗変更素子の状態のみを変更する制御手段と、を有する。【００１７】
本発明の設計支援システムは、抵抗変化素子を備えるプログラマブル論理集積回路に実装する回路の設計を支援する設計支援システムであって、
前記回路の実装対象である前記プログラマブル論理集積回路の不良の有無を示す欠陥情報に基づいて、前記回路で利用可能な回路要素を示す情報であるリソース情報を生成するリソース設定手段と、
前記プログラマブル論理集積回路が備える要素回路の接続情報であるネットリスト及び前記リソース情報に基づいて仮想的な配置配線を実施して構成情報を生成する構成情報生成手段と、
前記構成情報生成手段で生成された構成情報と、前記プログラマブル論理集積回路から読み出した構成情報である内部構成情報とを比較し、前記構成情報生成手段で生成された構成情報と前記内部構成情報とが一致しない場合、前記欠陥情報を更新する欠陥情報生成手段と、を有する。【００１８】
また、本発明のコンフィグレーション方法は、抵抗変化素子を備えるプログラマブル論理集積回路に所望の回路を形成するためのコンフィグレーション方法であって、
ハードウェア記述言語により記述された前記回路の動作記述情報を論理合成し、前記回路のネットリストを作成する第１ステップと、
前記ネットリスト及び前記回路の実装対象である前記プログラマブル論理集積回路の不良の有無を示す欠陥情報に基づいて、前記回路で利用可能な回路要素を示す情報であるリソース情報を作成する第２ステップと、
前記ネットリスト及び前記リソース情報に基づいて仮想的な配置配線を実施して前記回路の形成に必要な情報である構成情報を作成する第３ステップと、
前記第３のステップで作成された構成情報で示される回路の信号遅延及び消費電力を計算し、予め設定された仕様を満たすか否かを検証する第４ステップと、
前記第４ステップで検証された構成情報を前記プログラマブル論理集積回路に書き込む第５ステップと、
前記プログラマブル論理集積回路に書き込まれた構成情報である内部構成情報を取得する第６ステップと、
前記第４ステップで検証された構成情報と前記内部構成情報とを比較する第７ステップと、
前記第４ステップで検証された構成情報と前記内部構成情報とが一致しない場合、前記第４ステップで検証された構成情報と前記内部構成情報との差異に基づいて前記欠陥情報を更新する第８ステップと、
前記第４ステップで検証された構成情報と前記内部構成情報とが一致するまで前記第２〜第８ステップを繰り返す第９ステップと、を有する。
【発明の効果】
【００１９】
本発明によれば、抵抗変化素子で不良が発生してもプログラマブル論理集積回路の救済が可能であり、また該プログラマブル論理集積回路の信頼性を向上させることができる。
【図面の簡単な説明】
【００２０】
【図１】本発明のプログラマブル論理集積回路の一構成例を示すブロック図である。
【図２】図１に示したプログラマブルロジック・セルアレイの一構成例を示す模式図である。
【図３】第１の実施の形態のプログラマブル論理集積回路が備えるセグメントの一構成例を示すブロック図である。
【図４】図３に示した第１及び第２のクロスバー・スイッチブロックが備えるスイッチセルの一構成例を示す回路図である。
【図５】２Ｔ１Ｒ型のスイッチセルを備えたクロスバー・スイッチブロックの一構成例を示す回路図である。
【図６】第１の実施の形態のコンフィグレーション・モードの動作例を示すフローチャートである。
【図７】第１の実施の形態のリード・モードの動作例を示すフローチャートである。
【図８】図３に示したコネクション・スイッチブロックの一構成例を示す回路図である。
【図９】図８に示したヒューズ回路の一構成例を示す回路図である。
【図１０】図３に示したロジックブロックの一構成例を示す回路図である。
【図１１】クロスバー・スイッチブロックが備えるスイッチセルにてセット不良（オフ固定）が発生したときの一例と、その対処方法の一例とを示す模式図である。
【図１２】クロスバー・スイッチブロックが備えるスイッチセルにてリセット不良（オン固定）が発生したときの一例と、その対処方法の一例とを示す模式図である。
【図１３】第２の実施の形態のプログラマブル論理集積回路が備えるセグメントの一構成例を示すブロック図である。
【図１４】図１３に示した第１のコネクション・スイッチブロックの一構成例を示す回路図である。
【図１５】図１３に示した第２のコネクション・スイッチブロックの一構成例を示す回路図である。
【図１６】クロスバー・スイッチブロックが備えるスイッチセルでセット不良（オフ固定）が発生したときの一例と、その対処方法の一例とを示す模式図である。
【図１７】クロスバー・スイッチブロックが備えるスイッチセルでリセット不良（オン固定）が発生したときの一例と、その対処方法の一例とを示す模式図である。
【図１８】第３の実施の形態のプログラマブル論理集積回路が備えるセグメントの一構成例を示すブロック図である。
【図１９】図１８に示したコネクション・スイッチブロックの一構成例を示す回路図である。
【図２０】クロスバー・スイッチブロックが備えるスイッチセルでセット不良（オフ固定）が発生したときの一例と、その対処方法の一例とを示す模式図である。
【図２１】クロスバー・スイッチブロックが備えるスイッチセルでリセット不良（オン固定）が発生したときの一例と、その対処方法の一例とを示す模式図である。
【図２２】第４の実施の形態のプログラマブル論理集積回路が備えるセグメントの一構成例を示すブロック図である。
【図２３】クロスバー・スイッチブロックが備えるスイッチセルでリセット不良（オン固定）が発生したときの一例と、その対処方法の一例とを示す模式図である。
【図２４】本発明の設計支援システムの一構成例を示すブロック図である。
【図２５】図２４に示した設計支援システムが備える設計支援ツール群の一構成例を示すブロック図である。
【図２６】本発明の設計支援システムを用いた論理設計手順の一例を示すフローチャートである。
【図２７】図２６に示したリソース設定の処理手順の一例を示すフローチャートである。
【図２８】リソース情報に利用不可のスイッチブロック及びロジックブロックを含む場合の配置配線ツールによる一処理例を示す模式図である。
【図２９】リソース情報に利用不可のスイッチセルを含む場合の配置配線ツールによる一処理例を示す模式図である。
【図３０】欠陥情報を含むリソース情報と書換え履歴情報とを用いてプログラマブル論理集積回路に対する構成情報のコンフィグレーションを実行する場合の処理手順を示すフローチャートである。
【図３１】書換え履歴情報を考慮した信号経路の決定プロセスの一例を示す模式図である。
【発明を実施するための形態】
【００２１】
次に本発明について図面を用いて説明する。
【００２２】
（第１の実施の形態）
図１は本発明のプログラマブル論理集積回路の一構成例を示すブロック図であり、図２は図１に示したプログラマブルロジック・セルアレイの一構成例を示す模式図である。
【００２３】
図１に示すように、本発明のプログラマブル論理集積回路１は、プログラマブルロジック・セルアレイ２、ライトドライバ３、センスアンプ４、ライト・バッファ５、リード・バッファ６及びコントローラ７を備える。
【００２４】
コントローラ７は、不図示の外部インタフェース（Ｉ／Ｆ）回路を備え、専用Ｉ／Ｏから外部Ｉ／Ｆ回路を介して入力される構成情報をライト・バッファ５に格納し、ライトドライバ３を活性化してプログラマブルロジック・セルアレイに対する構成情報の書き込み動作を制御する。また、コントローラ７は、センスアンプ４を活性化してプログラマブルロジック・セルアレイ２に書き込まれた構成情報（内部構成情報）を読み出してリード・バッファ６に格納し、リード・バッファ６に格納された内部構成情報を専用Ｉ／Ｏを介して出力する。
【００２５】
コントローラ７は本発明のプログラマブル論理集積回路が備える制御手段の一例であり、ライトドライバ３及びライト・バッファ５は本発明のプログラマブル論理集積回路が備える書込み手段の一例であり、センスアンプ４及びリード・バッファ６は本発明のプログラマブル論理集積回路が備える読出し手段の一例である。読出し手段は抵抗変化素子の状態を検出する。書込み手段は、抵抗変化素子の状態を変更する。
【００２６】
図２に示すように、プログラマブルロジック・セルアレイ２は、複数のロジックブロック２１と、複数のスイッチブロック２２とを備え、各ロジックブロック２１がスイッチブロック２２によって互いに接続される構成である。スイッチブロック２２には、後述するコネクション・スイッチブロック及びクロスバー・スイッチブロックが含まれる。本明細書では、一つのロジックブロック２１と、該ロジックブロック２１を他のロジックブロック２１と接続するためのスイッチブロック２２とから成る最小の構成単位をセグメントと称す。
【００２７】
図３は、第１の実施の形態のプログラマブル論理集積回路が備えるセグメントの一構成例を示すブロック図である。
【００２８】
図３に示す配線Ａ０〜Ａ３はセグメントの入力配線であり、図３の上下左右に位置する不図示の隣接セグメントあるいはその遠方のセグメントから信号が供給される。図３に示す配線Ｂ０〜Ｂ３はセグメントの出力配線であり、出力バッファ２２５を介して図３の上下左右に位置する不図示の隣接セグメントあるいはその遠方のセグメントに信号を出力する。
【００２９】
図３に示すように、セグメントは、第１の方向へ延在する複数の行配線（第１の配線）ＨＬ０〜ＨＬ７と該第１の方向と異なる第２の方向へ延在する複数の列配線（第２の配線）ＶＬ０〜ＶＬ６とを接続または切断する、行配線と列配線との交点に配置された複数のスイッチセル２２４を備えたクロスバー・スイッチブロックと、ロジックブロック２１に信号を入力するための入力配線Ａ０〜Ａ３とクロスバー・スイッチブロックとを接続または切断するコネクション・スイッチブロック２２３と、出力配線Ｂ０〜Ｂ３から信号を出力するための複数の出力バッファ２２５と、を有する。クロスバー・スイッチブロックは、第１のクロスバー・スイッチブロック２２１及び第２のクロスバー・スイッチブロック２２２を備えている。
【００３０】
配線Ｙ０〜Ｙ１はロジックブロック２１の出力配線であり、配線０は接地線である。コネクション・スイッチブロック２２３は、入力配線Ａ０〜Ａ３、配線Ｙ０〜Ｙ１及び接地線と、列配線ＶＬ０〜ＶＬ６とを電気的に接続あるいは切断する。第１のクロスバー・スイッチブロック２２１は、ロジックブロック２１の入力端子Ｓ０〜Ｓ３と接続される行配線ＨＬ０〜ＨＬ３を選択するために設けられており、入力マルチプレクサ（ＭＵＸ）として動作する。第２のクロスバー・スイッチブロック２２２は、出力バッファ２２５の入力端子と接続される行配線ＨＬ４〜ＨＬ７を選択するために設けられており、出力マルチプレクサ（ＭＵＸ）として動作する。図３は、説明を簡単にするためにセグメントが４本の入力配線Ａ０〜Ａ３及び出力配線Ｂ０〜Ｂ３を備える構成例を示しているが、実際のセグメントが備える入力配線及び出力配線は数１０本程度となる。
【００３１】
図３に示す第１のクロスバー・スイッチブロック２２１及び第２のクロスバー・スイッチブロック２２２において、行配線と列配線の交点にそれぞれ配置されるスイッチセル２２４には、例えば抵抗変化素子が用いられる。
【００３２】
図４は、図３に示した第１及び第２のクロスバー・スイッチブロックが備えるスイッチセルの一構成例を示す回路図である。図４（ａ）は、抵抗変化素子を備える０Ｔ１Ｒ型のスイッチセル２２４の構成例を示し、図４（ｂ）は、２つの抵抗変化素子と１つのトランジスタとから成る２Ｔ１Ｒ型のスイッチセル２２４の構成例を示している。
【００３３】
図４（ａ）に示す０Ｔ１Ｒ型のスイッチセル２２４を用いて図３に示した行配線ＨＬと列配線ＶＬとを接続する場合、抵抗変化素子の両端に順方向のバイアス電圧を印加する。すなわち、ＶＬ−ＨＬ間に所定のしきい値電圧よりも高いバイアス電圧を印加することで、抵抗変化素子を低抵抗状態（オン状態）に変化させる。この書換え動作を「セット」と称す。
【００３４】
一方、図４（ａ）に示す０Ｔ１Ｒ型のスイッチセル２２４を用いて図３に示した行配線ＨＬと列配線ＶＬとを切断する場合、抵抗変化素子の両端に逆方向のバイアス電圧を印加する。すなわち、行配線ＨＬから列配線ＶＬに電流を流すことで、抵抗変化素子を高抵抗状態（オフ状態）に変化させる。この書換え動作を「リセット」と称す。
【００３５】
図４（ｂ）に示すように、２Ｔ１Ｒ型のスイッチセル２２４は、行配線ＨＬと列配線ＶＬとの間に直列に接続された２つの抵抗変化素子Ｒ１及びＲ２と、抵抗変化素子Ｒ１及びＲ２の接続ノードにドレインが接続されたトランジスタ（セルトランジスタ）とを備える。セルトランジスタのゲートはワード線ＷＬと接続され、ソースはビット線と接続されている。
【００３６】
図４（ｂ）に示す２Ｔ１Ｒ型のスイッチセル２２４を用いて図３に示した行配線ＨＬと列配線ＶＬとを接続する場合、抵抗変化素子Ｒ１及びＲ２をそれぞれオン状態にセットする。すなわち、ワード線ＷＬをハイレベルに活性化した状態で、ＶＬ−ＢＬ間に順方向のバイアス電圧を印加して抵抗変化素子Ｒ１をセットし、続いてＨＬ−ＢＬ間に順方向のバイアス電圧を印加して抵抗変化素子Ｒ２をセットする。
【００３７】
一方、図４（ｂ）に示す２Ｔ１Ｒ型のスイッチセル２２４を用いて図３に示した行配線ＨＬと列配線ＶＬとを切断する場合、抵抗変化素子Ｒ１及びＲ２をそれぞれオフ状態にリセットする。すなわち、ワード線ＷＬをハイレベルに活性化した状態で、ＶＬ−ＢＬ間に逆方向のバイアス電圧を印加して抵抗変化素子Ｒ１をリセットし、続いてＨＬ−ＢＬ間に逆方向のバイアス電圧を印加して抵抗変化素子Ｒ２をリセットする。
【００３８】
２Ｔ１Ｒ型スイッチセル２２４を用いたクロスバー・スイッチブロックの具体例としては、例えば上記非特許文献１に記載された構成がある。図５は、２Ｔ１Ｒ型のスイッチセルを備えたクロスバー・スイッチブロックの一構成例を示す回路図である。図５は、非特許文献１に記載された回路を２行２列のクロスバー・スイッチブロックに簡略化した構成例を示している。
【００３９】
まず、図３に示した第１のクロスバー・スイッチブロック２２１及び第２のクロスバー・スイッチブロック２２２が備えるスイッチセル２２４に対する書込み動作について図５を用いて説明する。
【００４０】
例えば、図５に示すスイッチセルＣ１１をオンにして行配線ＨＬ１と列配線ＶＬ１とを接続する場合を考える。この場合、ワード線ＷＬ１をハイレベルに活性化し、セルＣ１１のセルトランジスタをオン状態にして２つの抵抗変化素子とビット線ＢＬ１とを導通させる。また、信号ＤＸ１、ＤＹ１及びＤＣ１をハイレベルに活性化し、行配線ＨＬ１と駆動回路ＰＸ、列配線ＶＬ１と駆動回路ＰＹ、並びにビット線ＢＬ１と駆動回路ＰＣをそれぞれ接続する。
【００４１】
駆動回路ＰＣから供給される電圧Ｖｃ、駆動回路ＰＸから供給される電圧Ｖｘ、駆動回路ＰＹから供給される電圧Ｖｙは、初期電圧がいずれもロウレベルである。電圧Ｖｘをハイレベルに遷移させると、抵抗変化素子Ｒ１に順方向のバイアス電圧が印加されてオン状態にセットされる。その後、電圧Ｖｘをロウレベルに戻し、電圧Ｖｙをハイレベルに遷移させると、抵抗変化素子Ｒ２に順方向のバイアス電圧が印加されてオン状態にセットされる。以上の動作により、行配線ＨＬ１と列配線ＶＬ１とが導通状態となる。
【００４２】
また、例えば図５に示すスイッチセルＣ１１をオフにして行配線ＨＬ１と列配線ＶＬ１とを切断する場合を考える。この場合、電圧Ｖｃ、電圧Ｖｘ、電圧Ｖｙは、初期電圧がいずれもハイレベルである。電圧Ｖｘをロウレベルに遷移させると、抵抗変化素子Ｒ１に逆方向のバイアス電圧が印加されてオフ状態にリセットされる。その後、電圧Ｖｘをハイレベルに戻し、電圧Ｖｙをロウレベルに遷移させると、抵抗変化素子Ｒ２に逆方向のバイアス電圧が印加されてオフ状態にリセットされる。以上の動作により、行配線ＨＬ１と列配線ＶＬ１とが非導通状態となる。
【００４３】
次に、スイッチセルＣ１１の状態を読み出すための動作（読み出し動作）について図５を用いて説明する。
【００４４】
図５に示すスイッチセルＣ１１の状態を読み出す場合、まず信号ＤＹ１を活性化して列配線ＶＬ１と駆動回路ＰＹとを接続する。このとき、ロウレベルの電圧Ｖｙが列配線ＶＬ１に印加される。また、信号ＳＥを活性化してセンスアンプ４をビット線ＢＬ１と接続し、信号ＰＥを活性化してビット線ＢＬ１をハイレベルにプリチャージする。信号ＰＥを非活性化した後、ワード線ＷＬ１を活性化してスイッチセルＣ１１のセルトランジスタをオンにする。このとき抵抗変化素子Ｒ１がオン状態であれば、該抵抗変化素子Ｒ１を介してビット線ＢＬ１の電荷が放電される。よって、ビット線ＢＬ１の電位が低下し、この電位変化をセンスアンプ４で検出する。一方、抵抗変化素子Ｒ２がオフ状態であれば、ビット線ＢＬ１の電荷が放電されないため、ビット線ＢＬ１の電位が変化しない。
【００４５】
続いて、信号ＤＹ１を非活性化した後、信号ＤＸ１を活性化して行配線ＨＬ１と駆動回路ＰＸとを接続する。このとき、ロウレベルの電圧Ｖｘが行配線ＨＬ１に印加される。再度、信号ＰＥを活性化してビット線ＢＬ１をハイレベルにプリチャージする。信号ＰＥを非活性化した後、ワード線ＷＬ１を活性化してスイッチセルＣ１１のセルトランジスタをオンにする。このとき、抵抗変化素子Ｒ２がオン状態であれば、該抵抗変化素子Ｒ２を介してビット線ＢＬ１の電荷が放電される。よって、ビット線ＢＬ１の電位が低下し、この電位変化がセンスアンプ４で検出される。一方、抵抗変化素子Ｒ２がオフ状態であれば、ビット線ＢＬ１の電荷が放電されないため、ビット線ＢＬ１の電位は変化しない。
【００４６】
以上説明した動作によって、スイッチセルＣ１１の抵抗変化素子Ｒ１及びＲ２の状態が検出される。抵抗変化素子Ｒ１及びＲ２がそれぞれオン状態であれば、スイッチセルＣ１１はオン状態、すなわち列配線ＶＬ１と行配線ＨＬ１とが導通状態であることが検知される。一方、抵抗変化素子Ｒ１またはＲ２の少なくとも１つがオフ状態であれば、セルＣ１１はオフ状態、すなわち列配線ＶＬ１と行配線ＨＬ１とが非導通状態であることが検知される。
【００４７】
本発明のプログラマブル論理集積回路１は、少なくとも３つの動作モードを有する。すなわち、プログラマブル論理集積回路１に構成情報を書き込むコンフィグレーション・モードと、プログラマブル論理集積回路１に書込まれた構成情報を読み出すリード・モードと、書き込まれた一つの構成情報に基づいてプログラマブル論理集積回路１を動作させるアプリケーション・モードとである。
【００４８】
図６は、第１の実施の形態のコンフィグレーション・モードの動作例を示すフローチャートである。図６に示すコンフィグレーション・モードの動作は、図１に示したコントローラ７によって制御される。
【００４９】
図６に示すように、プログラマブル論理集積回路１には、外部からライト命令が入力されると、続いて書き換え対象となるスイッチセル（対象セル）２２４のアドレス及び構成情報が入力される（ステップＡ１）。入力されるアドレスは上位アドレスであり、下位アドレスに対応するスイッチセル２２４の構成情報はシリアルに転送されてライト・バッファ５に格納される。本実施形態では、上位アドレスが行配線に対応し、下位アドレスが列配線に対応すると仮定する。例えば、最初にアクセスされるスイッチセル２２４は、上位アドレスに対応する行配線と下位アドレスが０の列配線との交点に位置するスイッチセル２２４である。
【００５０】
コントローラ７は、入力されたアドレスに基づき対象セルが選択状態になると（ステップＡ２）、書き換え回数を示す変数ｎを０にリセットする（ステップＡ３）。次に、変数ｎが所定の定数Ｎｗに到達しているか否かを判定し（ステップＡ４）、変数ｎの値が所定の定数Ｎｗに到達していなければ対象セルの書き換え動作を実行する。定数Ｎｗは予め設定されたスイッチセル２２４の書き換え可能回数であり、典型的な値は１６程度である。
【００５１】
本実施形態では、対象セルの書き換え動作を、該対象セルの状態を読み出す工程（ステップＡ５）を経てから実行する。このとき、コントローラ７は、センスアンプ４から出力される読み出し結果ＩＱと、ライト・バッファ５から出力される対象セルの書き込みデータＩＤとを比較し（ステップＡ６）、それらが一致する場合は対象セルの書き換え動作を実行しない。一方、読み出し結果ＩＱと書き込みデータＩＤとが一致しない場合、例えばＩＱ＝１（オン状態）であり、ＩＤ＝０であるか否かを判定し（ステップＡ７）、ＩＱ＝１であり、ＩＤ＝０の時は、対象セルをオフ状態にリセットする（ステップＡ８）。また、ＩＱ＝０（オフ状態）であり、ＩＤ＝１の時は、対象セルをオン状態にセットする（ステップＡ９）。セットまたはリセット動作を実行すると、コントローラ７は、変数ｎの値を１インクリメントする（ステップＡ１０）。そして、ステップＡ４の処理に戻って変数ｎが所定の定数Ｎｗに到達しているか否かを判定し、変数ｎの値が所定の定数Ｎｗに到達していなければ、再度、上記ステップＡ５からの処理を繰り返す。
【００５２】
ステップＡ４の処理で変数ｎが定数Ｎｗに到達している場合、あるいはステップＡ６の処理で読み出し結果ＩＱと書き込みデータＩＤとが一致する場合、コントローラ７は、下位アドレスを１インクリメントする（ステップＡ１１）。また、最終アドレスまで到達したか否かを判定し（ステップＡ１２）、最終アドレスまで到達している場合は、ライト命令と共に入力された一つの上位（行）アドレスにおけるコンフィグレーション・モードの動作を終了する。その場合、再度、外部からライト命令が入力され、別の上位（行）アドレスが入力されると、図６に示したフローチャートにしたがって構成情報の書換え動作を実行する。一方、ステップＡ１２の処理で最終アドレスまで到達していない場合、コントローラ７は、再度、上記ステップＡ２からの処理を繰り返す。
【００５３】
以上説明したコンフィグレーション・モードの動作によれば、対象セルの状態を先に読み出し、書込みデータと異なるときのみスイッチセルの書き換え動作を実行するため、抵抗変化素子の書換え回数を必要最小限に抑制できる。
【００５４】
例えば、全てのスイッチセル２２４を一旦リセットしてから新たな構成情報をコンフィグレーションする場合を考える。この場合、オン状態であったスイッチセル２２４は、一旦、リセットされてオフ状態へ遷移し、さらにオン状態に再度セットされる可能性がある。本来、このスイッチセル２２４の抵抗変化素子は、状態を書き換える必要が無かった素子であるが、コンフィグレーション・モードの動作過程で無駄に２回書き換え動作が実行されてしまう。以上説明した方法によって抵抗変化素子の書換え回数を抑制することは、プログラマブル論理集積回路１の利用期間を実質的に延長させることになるため、信頼性を向上させることができる。
【００５５】
図７は、第１の実施の形態のリード・モードの動作例を示すフローチャートである。図７に示すリード・モードの動作は図１に示したコントローラ７によって制御される。
【００５６】
図７に示すように、プログラマブル論理集積回路１には、外部からリード命令が入力されると、続いて読み出し対象であるスイッチセル（対象セル）２２４の上位アドレスが入力される（ステップＢ１）。
【００５７】
コントローラ７は、入力された上位アドレスに基づき対象セルが選択状態になると（ステップＢ２）、読出し動作を開始し（ステップＢ３）、センスアンプ４から出力された読出し結果ＩＱをリード・バッファ６に一時的に格納する。リード・バッファ６から読み出した読出し結果は外部Ｉ／Ｆ回路を介してデータＱとして外部へ出力する（ステップＢ４）。コントローラ７は、下位アドレスをインクリメントし（ステップＢ５）、最終アドレスまで到達したか否かを判定し（ステップＢ６）、最終アドレスに到達するまで上記読出し動作を繰り返す。
【００５８】
図８は、図３に示したコネクション・スイッチブロックの一構成例を示す回路図である。
【００５９】
コネクション・スイッチブロック２２３は、プログラマブル論理集積回路１のコンフィグレーション・モード及びリード・モードにおいて、入力配線Ａ０〜Ａ３と列配線ＶＬ０〜ＶＬ６とを一時的に切断する。これにより、他のセグメントからの出力電圧と、書き込み及び読み出し時に印加されるバイアス電圧との競合を避けることができる。
【００６０】
また、コネクション・スイッチブロック２２３は、プログラマブル論理集積回路１のアプリケーション・モードにおいて、書き込み不良を起こしたスイッチセル（不良スイッチ）と接続される列配線ＶＬを入力配線Ａから電気的に切断する。これにより、書き込まれた構成情報と異なるオン固定のスイッチセルが発生しても、その不良スイッチを介して短絡される配線による故障を回避できる。コネクション・スイッチブロック２２３の動作はコントローラ７によって制御される。
【００６１】
図８に示すヒューズ回路Ｅ０〜Ｅ３は、列配線ＶＬ０〜ＶＬ３毎に設けられ、対応する列配線ＶＬ０〜ＶＬ３で発生した不良スイッチの有無を示す値をそれぞれ保持する。各ヒューズ回路Ｅ０〜Ｅ３のデフォルト値は０（例えば、ロウレベル）であり、これは対応する列配線に不良スイッチが存在しない場合に相当する。不良スイッチが発生すると、該不良スイッチを含む列配線に対応するヒューズ回路の値が１（例えば、ハイレベル）にセットされる。
【００６２】
コンフィグレーション・モード及びリード・モード（／ＡＰＰ＝１）では、ヒューズ回路Ｅ０の値に関係なく、トランジスタＭ０はオフ状態となり、入力配線Ａ０と列配線ＶＬ０とが非導通状態となる。列配線ＶＬ０に不良スイッチが存在しない場合（Ｅ０＝０）、アプリケーション・モード（／ＡＰＰ＝０）では、トランジスタＭ０がオン状態となって入力配線Ａ０と列配線ＶＬ０とが導通状態となる。一方、列配線ＶＬ０に不良スイッチが存在する場合（Ｅ０＝１）、トランジスタＭ０はオフ状態となり、入力配線Ａ０と列配線ＶＬ０とが非導通状態となる。
【００６３】
ヒューズ回路Ｅ０〜Ｅ３は、不良スイッチの有無を示す値を保持する記憶素子、並びに入力配線と第１のクロスバー・スイッチブロック２２１とを接続または切断するスイッチ素子として機能する。
【００６４】
図９は、図８に示したヒューズ回路の一構成例を示す回路図である。
【００６５】
図９（ａ）に示すヒューズ回路は、２個のスイッチセルＳ０及びＳ１を備えた構成である。スイッチセルＳ０は接地線０（行配線）と出力線Ｅ（列配線）とを接続または切断し、スイッチセルＳ１は電源線１（列配線）と出力線Ｅとを接続または切断する。
【００６６】
スイッチセルＳ０及びＳ１には、例えば図４に示した抵抗変化素子が用いられる。図９（ａ）に示すヒューズ回路の値を０に設定するには、スイッチセルＳ０をオン状態にセットし、スイッチセルＳ１をオフ状態にリセットする（これがデフォルト状態である）。また、図９（ａ）に示すヒューズ回路の値を１に設定するには、スイッチセルＳ０をオフ状態にリセットし、スイッチセルＳ１をオン状態にリセットする。
【００６７】
図９（ａ）に示すヒューズ回路は最も簡単な構成例である。しかしながら、図９（ａ）に示すヒューズ回路では、抵抗変化素子のデフォルト状態（初期状態）がオフであるため、スイッチセルＳ０またはＳ１のいずれか一方を必ずセットする必要がある。
【００６８】
図９（ｂ）に示すヒューズ回路は１つのスイッチセルＳ１を備えた構成例である。スイッチセルＳ１は電源線１（列配線）と行配線ＨＬとを接続または切断する。図９（ｂ）に示すヒューズ回路の値を０に設定するにはスイッチセルＳ１をオフ状態にリセットし、１に設定するにはスイッチセルＳ１をオン状態にセットする。図９（ｂ）に示すヒューズ回路では、抵抗変化素子のデフォルト状態（初期状態）がオフであるため、その後の検査等で不良スイッチが発見され、ヒューズ回路を１に設定する必要があるときにのみスイッチセルＳ１をセットすればよい。
【００６９】
図９（ｂ）に示すヒューズ回路では、スイッチセルＳ１がオフ（デフォルト状態）であるとき、ＨＬ配線の電位が不定となるのを避けるため、アプリケーション・モードにエントリーするときには、ヒューズ回路を一旦リセットする必要がある。
【００７０】
例えばＲＳＴ＝１の時、トランジスタＭ１がオン状態となって行配線ＨＬをロウレベル（０）に引き下げる。アプリケーション・モード（ＡＰＰ＝１）では、トランジスタＭ２及びＭ３がオン状態であるため、スイッチセルＳ１がオフ状態である限り、ＲＳＴ＝０に戻してもＨＬ＝０が保持される。すなわち、ヒューズ回路は０を出力する。一方、スイッチセルＳ１がオン状態の時、ＲＳＴ＝０に戻すと、ＨＬ＝１にセットされる、すなわちヒューズ回路は１を出力する。
【００７１】
図１０は、図３に示したロジックブロックの一構成例を示す回路図である。プログラマブル論理集積回路１は、ロジックブロック２１に２つの２入力ルックアップテーブル（ＬＵＴ０、ＬＵＴ１）を含むものとする。
【００７２】
ロジックブロック２１の出力Ｙ０からは、信号ＳＥＬ０によってＬＵＴ０の出力Ｔ０、またはＴ０を入力とするＤ−フリップフロップ（ＤＦＦ）の出力Ｑ０の一方が選択されて出力される。同様に、ロジックブロック２１の出力Ｙ１からは、信号ＳＥＬ１によってＬＵＴ１の出力Ｔ１、またはＴ１を入力とするＤＦＦの出力Ｑ１の一方が選択されて出力される。行配線ＨＬ０〜ＨＬ３はＬＵＴ０に入力され、行配線ＨＬ５〜ＨＬ８はＬＵＴ１に入力される。行配線ＨＬ０〜ＨＬ８は、抵抗変化素子を含むスイッチセルにより、ＬＵＴ０及びＬＵＴ１に設定された真理値情報にしたがって、プルアップ（１固定値）またはプルダウン（０固定値）される。例えば、行配線ＨＬ０＝０、ＨＬ１＝０、ＨＬ２＝０、ＨＬ３＝１の場合、ＬＵＴ０からはＡＮＤ論理が出力される。行配線ＨＬ４、ＨＬ９は、それぞれＳＥＬ０、ＳＥＬ１の値に対応してプルアップまたはプルダウンされる。
【００７３】
なお、図１０では、説明を容易にするために、ロジックブロック２１が２つの２入力ルックアップテーブルを備えた構成例を示している。一般的なロジックブロック２１では、３入力ルックアップテーブルや４入力ルックアップテーブルが用いられる。また、一般的なロジックブロック２１は８個程度のルックアップテーブルを備えている。
【００７４】
ところで、上述したように抵抗変化素子で発生する不良には、オフ状態に書き換えることができないリセット不良（オン固定）と、オン状態に書き換えることができないセット不良（オフ固定）とがある。
【００７５】
図１１は、クロスバー・スイッチブロックが備えるスイッチセルにてセット不良（オフ固定）が発生したときの一例と、その対処方法の一例とを示す模式図である。ここでは、構成情報にしたがって配線Ａ１と配線Ｂ１とが接続され、かつ配線Ａ２と配線Ｂ２とが接続される例で説明する。その場合、配線Ａ１と配線Ｂ１とを接続するためにスイッチセルＳ１１がオン状態に書き換えられ、配線Ａ２と配線Ｂ２とを接続するためにスイッチセルＳ２２がオン状態に書き換えられる。スイッチセルＳ１１及びＳ２２以外のその他のスイッチセルは全てオフ状態に書き換えるものとする。
【００７６】
図１１（ａ）は、スイッチセルＳ２２においてセット不良が発生した例を示している。この場合、配線Ａ２から配線Ｂ２へ信号を伝送できない故障が発生する。
【００７７】
上記故障を回避するには、構成情報を変更して、例えば図１１（ｂ）に示すような迂回経路を形成すればよい。図１１（ｂ）は、スイッチセルＳ２０をオン状態にセットして、配線Ａ２から配線Ｂ２への経路を配線Ａ０から配線Ｂ２への迂回経路に変更する様子を示している。この場合、図１１（ｂ）に示すクロスバー・スイッチブロックに対して、配線Ａ２ではなく、配線Ａ０へ信号を出力するように、他のロジックブロック２１の構成情報も変更する。
【００７８】
また、他の迂回経路の候補としては、スイッチセルＳ３２をオン状態にセットして、配線Ａ２から配線Ｂ３への経路を形成することが考えられる。この場合、図１１（ｂ）に示すクロスバー・スイッチブロックに対して、配線Ｂ２ではなく、配線Ｂ３へ信号を入力するように他のロジックブロック２１の構成情報も変更する。
【００７９】
セット不良が発生した場合、該セット不良が発生したスイッチセル２２４は使用できないが、該スイッチセル２２４が接続される行配線あるいは列配線に該セット不良が影響することはない。したがって、構成情報を変更する場合はセット不良が発生したスイッチセル２２４を使用しないように迂回経路を形成すればよい。また、セット不良が発生した場合、コネクション・スイッチブロック２２３では、該セット不良のスイッチセル２２４を含む列配線ＶＬ２を入力配線Ａ２から切断する必要はない。したがって、図８に示したコネクション・スイッチブロック２２３のヒューズ回路Ｅ２の設定値は０のままでよい。
【００８０】
図１２は、クロスバー・スイッチブロックが備えるスイッチセルにてリセット不良（オン固定）が発生したときの一例と、その対処方法の一例とを示す模式図である。ここでは、図１１に示したセット不良の発生時と同様に、構成情報にしたがって配線Ａ１と配線Ｂ１とが接続され、かつ配線Ａ２と配線Ｂ２とが接続される例で説明する。その場合、配線Ａ１と配線Ｂ１とを接続するためにスイッチセルＳ１１がオン状態に書き換えられ、配線Ａ２と配線Ｂ２とを接続するためにスイッチセルＳ２２がオン状態に書き換えられる。スイッチセルＳ１１及びＳ２２以外のその他のスイッチセルは全てオフ状態に書き換えるものとする。
【００８１】
図１２（ａ）は、スイッチセルＳ１２においてリセット不良が発生した例を示している。この場合、４本の配線ＶＬ１、ＨＬ１、ＶＬ２、ＨＬ２が、オン状態のスイッチセルＳ１１、Ｓ１２、Ｓ２２によって短絡する。すなわち、配線Ａ１、Ａ２、Ｂ１、Ｂ２が短絡する故障が生じる。
【００８２】
上記故障を回避するには、構成情報を変更して迂回経路を形成すると共に、リセット不良が発生したスイッチセルを含む列配線ＶＬ２を入力配線Ａ２から切り離す必要がある。図１２（ｂ）は、スイッチセルＳ２０をオン状態にセットして、配線Ａ２から配線Ｂ２への経路を配線Ａ０から配線Ｂ２への迂回経路へ変更する例を示している。また、図１２（ｂ）では、コネクション・スイッチブロック２２３のヒューズ回路Ｅ２を１に変更して、配線Ａ２と配線ＶＬ２とを電気的に切断している。このように構成情報を変更することで、配線Ａ１から配線Ｂ１への信号経路と、配線Ａ０から配線Ｂ２への信号経路とが確立する。
【００８３】
上述したように、リセット不良が発生した場合、該リセット不良が発生したスイッチセル２２４を含む行配線または列配線は、該スイッチセル２２４を介して他の行配線または列配線と意図せずに短絡する不良（道連れ不良）を引き起こす。したがって、リセット不良のスイッチセル２２４とそれが接続される列配線（または行配線）とを使用しないように迂回経路を構成する必要がある。また、リセット不良のスイッチセル２２４を含む列配線を入力配線から切り離すようにコネクション・スイッチブロック２２３が備えるヒューズ回路を設定する必要がある。
【００８４】
（第２の実施の形態）
図１３は、第２の実施の形態のプログラマブル論理集積回路が備えるセグメントの一構成例を示すブロック図である。
【００８５】
図１３に示すように、第２の実施の形態のプログラマブル論理集積回路１は、入力配線Ａ０〜Ａ３、出力配線Ｙ０〜Ｙ１及び接地線と、列配線ＶＬ０〜ＶＬ６とを接続または切断するコネクション・スイッチブロック（第１のコネクション・スイッチブロック２２６）に加えて、行配線ＨＬ０〜ＨＬ９とロジックブロック２１の入力端子及び出力バッファの入力端子とを接続または切断する第２のコネクション・スイッチブロック２２７を有する点で第１の実施の形態と異なる。第１のクロスバー・スイッチブロック２２１は第１の方向へ延在する冗長の行配線（第１の冗長配線）ＨＬ４を備え、第２のクロスバー・スイッチブロック２２２は第１の方向へ延在する冗長の行配線（第１の冗長配線）ＨＬ９を備えた構成である。
【００８６】
第２のコネクション・スイッチブロック２２７は、不良スイッチの有無を示す値を保持する記憶素子及びスイッチ素子として機能するヒューズ回路を備えている。セグメントのその他の構成は、図５に示した第１の実施の形態と同様である。
【００８７】
図１４は、図１３に示した第１のコネクション・スイッチブロックの一構成例を示す回路図である。
【００８８】
第１のコネクション・スイッチブロック２２６は、コンフィグレーション・モード及びリード・モードにおいて（／ＡＰＰ＝１）、入力配線Ａ０〜Ａ３、出力配線Ｙ０〜Ｙ１及び接地線と、列配線ＶＬ０〜ＶＬ６とを一時的に接続または切断する。これにより、他のセグメントからの出力電圧と、書き込み及び読み出し時に印加されるバイアス電圧との競合を回避できる。
【００８９】
また、第１のコネクション・スイッチブロック２２６は、アプリケーション・モードにおいて（／ＡＰＰ＝０）、入力配線Ａ０〜Ａ３、出力配線Ｙ０〜Ｙ１及び接地線と、列配線ＶＬ０〜ＶＬ６とを接続する。第１のコネクション・スイッチブロック２２６は、第１の実施の形態のコネクション・スイッチブロック２２３と異なり、不良スイッチを含む列配線を入力配線から切り離す機能は有しない。
【００９０】
図１５は、図１３に示した第２のコネクション・スイッチブロックの一構成例を示す回路図である。
【００９１】
第２のコネクション・スイッチブロック２２７は、クロスバー・スイッチブロックが備えるスイッチセル２２４で不良が発生した場合に、当該スイッチセル（不良スイッチ）２２４が接続される行配線を隣接する行配線に置き換える。例えば、第１のクロスバー・スイッチブロック２２１及び第２のクロスバー・スイッチブロック２２２で不良スイッチが発生していない場合、トランジスタＭ０、Ｍ２、Ｍ４、Ｍ６がオンされ、トランジスタＭ１、Ｍ３、Ｍ５、Ｍ７がオフされて、行配線ＨＬ０〜ＨＬ３が出力配線Ｓ０〜Ｓ３に接続される。
【００９２】
一方、例えば、行配線ＨＬ２のスイッチセル２２４で不良スイッチが発生した場合、トランジスタＭ０、Ｍ２、Ｍ５、Ｍ７がオンされ、トランジスタＭ１、Ｍ３、Ｍ４、Ｍ６がオフされて、行配線ＨＬ２がＨＬ３に置き換えられ、行配線ＨＬ３がＨＬ４に置き換えられる。すなわち、行配線ＨＬ０が出力配線Ｓ０に接続され、行配線ＨＬ１が出力配線Ｓ１に接続され、行配線ＨＬ３が出力配線Ｓ２に接続され、行配線ＨＬ４が出力配線Ｓ３に接続され、不良スイッチを含む行配線ＨＬ２はどの出力配線にも接続されない。
【００９３】
第１のコネクション・スイッチブロック２２６及び第２のコネクション・スイッチブロック２２７の接続情報は、図９に示したヒューズ回路で保存される。ヒューズ回路は列配線及び行配線毎に設けられ、第２のコネクション・スイッチブロック２２７はヒューズ回路の設定値により、対応する行配線を隣接する行配線に置き換えるか否かが決定される。例えば、Ｅ＝０の時は対応する行配線を隣接する行配線に置き換えず、Ｅ＝１の時は対応する行配線を隣接する行配線に置き換える。
【００９４】
第１のクロスバー・スイッチブロック２２１及び第２のクロスバー・スイッチブロック２２２で不良スイッチが発生していない場合は全てのヒューズ回路Ｅ０〜Ｅ３が０に設定される。各行配線に昇順に番号が付与され、第１のクロスバー・スイッチブロック２２１及び第２のクロスバー・スイッチブロック２２２で不良スイッチが発生している場合、該不良スイッチを含む行配線とその行配線よりも１大きい行配線のヒューズ回路が１に設定される。例えば、行配線ＨＬ２で不良スイッチが発生した場合、Ｅ０＝０、Ｅ１＝０、Ｅ２＝１、Ｅ３＝１となる。
【００９５】
図１６は、クロスバー・スイッチブロックが備えるスイッチセルでセット不良（オフ固定）が発生したときの一例と、その対処方法の一例とを示す模式図である。
【００９６】
ここでは、構成情報にしたがって配線Ａ０と配線Ｂ０とが接続され、配線Ａ１と配線Ｂ１とが接続され、配線Ａ２と配線Ｂ２とが接続され、配線Ａ３と配線Ｂ３とが接続される例で説明する。その場合、スイッチセルＳ００、Ｓ１１、Ｓ２２、Ｓ３３がオン状態に書き換えられ、他のスイッチセルが全てオフ状態に書き換えられる。図１６（ａ）は、スイッチセルＳ２２においてセット不良が発生した様子を示している。この場合、配線Ａ２から配線Ｂ２へ信号を伝送できない故障が生じる。
【００９７】
上記故障を回避するには、構成情報を、例えば図１６（ｂ）に示すように変更して迂回経路を形成すればよい。図１６（ｂ）に示す例では、スイッチセルＳ２２の代わりにスイッチセルＳ３２をオン状態とし、スイッチセルＳ３３の代わりにスイッチセルＳ４３をオン状態とする構成情報に変更している。また、第２のコネクション・スイッチブロック２２７では、行配線ＨＬ３と配線Ｂ２とが接続され、行配線ＨＬ４と配線Ｂ３とが接続されるようにヒューズ回路が設定される。すなわち、Ｅ０＝０、Ｅ１＝０、Ｅ２＝１、Ｅ３＝１となる構成情報に変更する。以上の構成情報の変更により、配線Ａ２と配線Ｂ２とが導通状態となるため、所望の信号経路を確保できる。
【００９８】
図１７は、クロスバー・スイッチブロックが備えるスイッチセルでリセット不良（オン固定）が発生したときの一例と、その対処方法の一例とを示す模式図である。ここでは、図１６に示したセット不良の発生時と同様に、構成情報にしたがって配線Ａ０と配線Ｂ０とが接続され、配線Ａ１と配線Ｂ１とが接続され、配線Ａ２と配線Ｂ２とが接続され、配線Ａ３と配線Ｂ３とが接続される例で説明する。その場合、スイッチセルＳ００、Ｓ１１、Ｓ２２、Ｓ３３がオン状態に書き換えられ、他のスイッチセルが全てオフ状態に書き換えられる。
【００９９】
図１７（ａ）は、スイッチセルＳ２１においてリセット不良が発生した様子を示している。この場合、４本の配線ＶＬ１、ＨＬ１、ＶＬ２、ＨＬ２がオン状態のスイッチセルＳ１１、Ｓ２１、Ｓ２２によって短絡する。すなわち、配線Ａ１、Ａ２、Ｂ１、Ｂ２が短絡して、配線Ａ１から配線Ｂ１、配線Ａ２から配線Ｂ２へ信号を正常に伝送できない故障が生じる。
【０１００】
上記故障を回避するには、構成情報を、例えば図１７（ｂ）に示すように変更して迂回経路を形成すればよい。図１７（ｂ）に示す例では、スイッチセルＳ２２の代わりにスイッチセルＳ３２をオン状態にし、スイッチセルＳ３３の代わりにスイッチセルＳ４３をオン状態にする構成情報に変更する。また、第２のコネクション・スイッチブロック２２７では、行配線ＨＬ３が出力配線Ｂ２と接続され、行配線ＨＬ４が出力配線Ｂ３と接続されるようにヒューズ回路が設定される。すなわち、Ｅ０＝０、Ｅ１＝０、Ｅ２＝１、Ｅ３＝１に設定する。
【０１０１】
このように変更すると、行配線ＨＬ１とＨＬ２の短絡は解消されないが、行配線ＨＬ２が出力配線Ｂ２から切り離されるため、上記故障を回避できる。したがって、入力配線Ａ１と出力配線Ｂ１、入力配線Ａ２と出力配線Ｂ２とが導通状態となって、所望の信号経路を確保できる。
【０１０２】
第２の実施の形態によれば、一つのセグメントにおける入力配線と出力配線の接続関係を変更することなく維持できる。これは、他のセグメントの構成情報を変更する必要が無いことを意味するため、不良が発生したセグメントの構成情報だけを変更すればよいという利点を有する。
【０１０３】
（第３の実施の形態）
図１８は、第３の実施の形態のプログラマブル論理集積回路が備えるセグメントの一構成例を示すブロック図である。
【０１０４】
図１８に示すように、第３の実施の形態のプログラマブル論理集積回路１は、コネクション・スイッチブロック２２３が第２の方向へ延在する冗長の列配線（第２の冗長配線）ＶＬ７を備え、列配線ＶＬ０〜ＶＬ７と入力配線Ａ０〜Ａ３との接続を切り替える点で第１及び第２の実施の形態と異なっている。
【０１０５】
コネクション・スイッチブロック２２３は、不良スイッチの有無を示す値を保持する記憶素子及びスイッチ素子として機能するヒューズ回路を備えている。セグメントのその他の構成は、図５に示した第１の実施の形態と同様である。
【０１０６】
図１９は、図１８に示したコネクション・スイッチブロックの一構成例を示す回路図である。
【０１０７】
図１９に示すように、第３の実施の形態のコネクション・スイッチブロック２２３は、コンフィグレーション・モード及びリード・モードにおいて（／ＡＰＰ＝１）、全ての入力配線Ａ０〜Ａ３と全ての列配線ＶＬ０〜ＶＬ３とを一時的に切断する。これにより、他のセグメントからの出力電圧と、書き込み及び読み出し時に印加されるバイアス電圧との競合を避けることができる。また、コネクション・スイッチブロック２２３は、第１のクロスバー・スイッチブロック２２１及び第２のクロスバー・スイッチブロック２２２のスイッチセル２２４で不良が発生した場合に、該不良スイッチと接続される列配線を隣接する列配線と置き換える。クロスバー・スイッチブロックで不良スイッチが発生していない場合、トランジスタＭ０、Ｍ２、Ｍ４、Ｍ６、Ｍ８、Ｍ１０、Ｍ１２がオン状態に設定され、トランジスタＭ１、Ｍ３、Ｍ５、Ｍ７、Ｍ９、Ｍ１１、Ｍ１３はオフ状態に設定されて、入力配線Ａ０〜Ａ３が列配線ＶＬ０〜ＶＬ３に接続され、Ｙ０〜Ｙ１が列配線ＶＬ４〜ＶＬ５に接続され、接地線０がＶＬ６に接続される。
【０１０８】
一方、例えば列配線ＶＬ２に接続されるスイッチセル２２４で不良スイッチが発生した場合、トランジスタＭ０、Ｍ２、Ｍ５、Ｍ７、Ｍ９、Ｍ１１、Ｍ１３はオン状態に設定され、トランジスタＭ１、Ｍ３、Ｍ４、Ｍ６、Ｍ８、Ｍ１０、Ｍ１２はオフ状態に設定されて、列配線ＶＬ２がＶＬ３に置き換えられ、列配線ＶＬ３がＶＬ４に置き換えられ、列配線ＶＬ４がＶＬ５に置き換えられ、列配線ＶＬ６がＶＬ７に置き換えられる。すなわち、不良スイッチを含む列配線ＶＬ２はどの入力配線にも接続されない。
【０１０９】
コネクション・スイッチブロック２２３の接続情報は、図９に示したヒューズ回路で保存される。ヒューズ回路は列配線毎に設けられ、ヒューズ回路の設定値によって、それに対応する列配線を隣接する列配線に置き換えるか否かが決定される。例えば、Ｅ＝０の時は該ヒューズ回路に対応する列配線が隣接する列配線に置き換えられず、Ｅ＝１の時は該ヒューズ回路に対応する列配線が隣接する列配線に置き換えられる。
【０１１０】
第１のクロスバー・スイッチブロック２２１及び第２のクロスバー・スイッチブロック２２２のスイッチセル２２４で不良が発生していない場合、全てのヒューズ回路Ｅ０〜Ｅ６は０に設定される。
【０１１１】
各列配線に昇順に番号が付与され、第１のクロスバー・スイッチブロック２２１及び第２のクロスバー・スイッチブロック２２２のスイッチセル２２４で不良が発生している場合、当該不良スイッチが接続される列配線とその列配線よりも１大きい列配線のヒューズ回路が１に設定される。例えば、列配線ＶＬに不良スイッチがある場合、Ｅ０＝０、Ｅ１＝０、Ｅ２＝１、Ｅ３＝１、Ｅ４＝１、Ｅ５＝１、Ｅ６＝１となる。
【０１１２】
図２０は、クロスバー・スイッチブロックが備えるスイッチセルでセット不良（オフ固定）が発生したときの一例と、その対処方法の一例とを示す模式図である。
【０１１３】
ここでは、構成情報にしたがって配線Ａ０と配線Ｂ０とが接続され、配線Ａ１と配線Ｂ１とが接続され、配線Ａ２と配線Ｂ２とが接続され、配線Ａ３と配線Ｂ３とが接続される例で説明する。その場合、スイッチセルＳ００、Ｓ１１、Ｓ２２及びＳ３３がオン状態に書き換えられ、他のスイッチセルが全てオフ状態に書き換えられる。図２０（ａ）は、スイッチセルＳ２２においてセット不良が発生した様子を示している。この場合、配線Ａ２から配線Ｂ２へ信号を伝送できない故障が発生する。
【０１１４】
上記故障を回避するには、構成情報を、例えば図２０（ｂ）に示すように変更して迂回経路を形成すればよい。図２０（ｂ）に示す例では、スイッチセルＳ２２の代わりにスイッチセルＳ２３をオン状態とし、スイッチセルＳ３３の代わりにスイッチセルＳ３４をオン状態に変更している。また、コネクション・スイッチブロック２２３では、配線Ａ２と列配線ＶＬ３とが接続され、配線Ａ３と列配線ＶＬ４とが接続され、配線Ｙ０と列配線ＶＬ５とが接続され、配線Ｙ１と列配線ＶＬ６とが接続され、接地線０が列配線ＶＬ７と接続されるようにヒューズ回路が設定される。すなわち、Ｅ０＝０、Ｅ１＝０、Ｅ２＝１、Ｅ３＝１、Ｅ４＝１、Ｅ５＝１、Ｅ６＝１となる構成情報に変更する。以上の構成情報の変更により、配線Ａ２と配線Ｂ２とが導通状態となるため、所望の信号経路を確保できる。
【０１１５】
図２１は、クロスバー・スイッチブロックが備えるスイッチセルでリセット不良（オン固定）が発生したときの一例と、その対処方法の一例とを示す模式図である。ここでは、図２０に示したセット不良の発生時と同様に、構成情報にしたがって配線Ａ０と配線Ｂ０とが接続され、配線Ａ１と配線Ｂ１とが接続され、配線Ａ２と配線Ｂ２とが接続され、配線Ａ３と配線Ｂ３とが接続される例で説明する。その場合、スイッチセルＳ００、Ｓ１１、Ｓ２２及びＳ３３がオン状態に書き換えられ、他のスイッチセルが全てオフ状態に書き換えられる。図２１（ａ）は、スイッチセルＳ１２においてリセット不良が発生した様子を示している。この場合、４本の配線ＶＬ１、ＨＬ１、ＶＬ２、ＨＬ２が、オン状態のスイッチＳ１１、Ｓ１２、Ｓ２２によって短絡する。すなわち、配線Ａ１、Ａ２、Ｂ１及びＢ２が短絡し、Ａ１からＢ１、Ａ２からＢ２へ信号を正常に伝送できない故障が生じる。
【０１１６】
上記故障を回避するには、構成情報を、例えば図２１（ｂ）に示すように変更して迂回経路を形成すればよい。図２１（ｂ）に示す例では、スイッチセルＳ２２の代わりにスイッチセルＳ２３をオン状態にし、スイッチセルＳ３３の代わりにスイッチセルＳ３４をオン状態に変更している。また、コネクション・スイッチブロック２２３では、配線Ａ２と列配線ＶＬ３とが接続され、配線Ａ３と列配線ＶＬ４とが接続され、配線Ｙ０と列配線ＶＬ５とが接続され、配線Ｙ１と列配線ＶＬ６とが接続され、接地線０が列配線ＶＬ７と接続されるようにヒューズ回路が設定される。すなわち、Ｅ０＝０、Ｅ１＝０、Ｅ２＝１、Ｅ３＝１、Ｅ４＝１、Ｅ５＝１、Ｅ６＝１となる構成情報に変更する。
【０１１７】
このように変更すると、列配線ＶＬ１とＶＬ２の短絡は解消されないが、列配線ＶＬ２が入力配線Ａ２から切り離されるため、上記故障を回避できる。したがって、入力配線Ａ１と出力配線Ｂ１、入力配線Ａ２と出力配線Ｂ２とが導通状態となって、所望の信号経路を確保できる。
【０１１８】
第３の実施の形態によれば、第２の実施の形態と同様に、一つのセグメントにおける入力配線と出力配線の接続関係を変更することなく維持できる。これは、他のセグメントの構成情報を変更する必要が無いことを意味するため、不良が発生したセグメントの構成情報だけを変更すればよいという利点を有する。
【０１１９】
（第４の実施の形態）
図２２は、第４の実施の形態のプログラマブル論理集積回路が備えるセグメントの一構成例を示すブロック図である。
【０１２０】
図２２に示すように、第４の実施の形態のプログラマブル論理集積回路１は、第２の実施の形態と同様に、入力配線Ａ０〜Ａ３、出力配線Ｙ０〜Ｙ１及び接地線と、列配線ＶＬ０〜ＶＬ６とを接続または切断する第１のコネクション・スイッチブロック２２６と、行配線ＨＬ０〜ＨＬ９とロジックブロック２１の入力端子及び出力バッファの入力端子とを接続または切断する第２のコネクション・スイッチブロック２２７とを有する。第１のクロスバー・スイッチブロック２２１は冗長の行配線（第１の冗長配線）ＨＬ４を備え、第２のクロスバー・スイッチブロック２２２は冗長の行配線（第１の冗長配線）ＨＬ９を備えている。さらに、第４の実施の形態のプログラマブル論理集積回路１は、第３の実施の形態と同様に、コネクション・スイッチブロック（第１のコネクション・スイッチブロック２２６）が冗長の列配線（第２の冗長配線）ＶＬ７を備え、列配線ＶＬ０〜ＶＬ７と入力配線Ａ０〜Ａ３との接続が切り替え可能な構成である。
【０１２１】
第１のコネクション・スイッチブロック２２６は、不良スイッチの有無を示す値を保持する第１の記憶素子及び第１のスイッチ素子として機能するヒューズ回路を備えている。第２のコネクション・スイッチブロック２２７は、不良スイッチの有無を示す値を保持する第２の記憶素子及び第２のスイッチ素子として機能するヒューズ回路を備えている。セグメントのその他の構成は、図５に示した第１の実施の形態と同様である。
【０１２２】
第１のコネクション・スイッチブロック２２１は、コンフィグレーション・モード及びリード・モードにおいて（／ＡＰＰ＝１）、入力配線Ａ０〜Ａ３、出力配線Ｙ０〜Ｙ１及び接地線と、列配線ＶＬ０〜ＶＬ６とを一時的に接続または切断する。また、第１のコネクション・スイッチブロック２２６は、第１のクロスバー・スイッチブロック２２１及び第２のクロスバー・スイッチブロック２２２で不良スイッチが発生した場合に、該不良スイッチと接続される列配線を隣接する列配線と置き換える。
【０１２３】
本実施形態の第１のコネクション・スイッチブロック２２６は、図１９に示した第３の実施の形態のコネクション・スイッチブロック２２３と同様の構成である。また、不良スイッチを含む列配線を置き換えるための方法も第３の実施の形態と同様である。
【０１２４】
第２のコネクション・スイッチブロック２２７は、第１のクロスバー・スイッチブロック２２１及び第２のクロスバー・スイッチブロック２２２で不良スイッチが発生した場合に、該不良スイッチが接続される行配線を隣接する行配線に置き換える。
【０１２５】
本実施形態の第２のコネクション・スイッチブロック２２７は、図１５に示した第２の実施の形態のコネクション・スイッチブロック２２３と同様の構成である。また、不良スイッチを含む行配線を置き換えるための方法も第２の実施の形態と同様である。
【０１２６】
図２３は、クロスバー・スイッチブロックが備えるスイッチセルでリセット不良（オン固定）が発生したときの一例と、その対処方法の一例とを示す模式図である。ここでは、構成情報にしたがって配線Ａ０と配線Ｂ０とが接続され、配線Ａ１と配線Ｂ１とが接続され、配線Ａ２と配線Ｂ２とが接続され、配線Ａ３と配線Ｂ３とが接続される例で説明する。その場合、スイッチセルＳ００、Ｓ１１、Ｓ２２、Ｓ３３がオン状態に書き換えられ、他のスイッチセルが全てオフ状態に書き換えられる。図２３（ａ）は、スイッチセルＳ１２においてリセット不良が発生した様子を示している。この場合、４本の配線ＶＬ１、ＨＬ１、ＶＬ２、ＨＬ２が、オン状態のスイッチＳ１１、Ｓ１２、Ｓ２２によって短絡する。すなわち、配線Ａ１、Ａ２、Ｂ１及びＢ２が短絡し、Ａ１からＢ１、Ａ２からＢ２へ信号を正常に伝送できない故障が生じる。
【０１２７】
上記故障を回避するには、不良スイッチが接続される行配線と、それよりも行番号が大きい行配線の構成情報とを隣接する行配線にコピーする。さらに、不良スイッチが接続される列配線と、それよりも列番号が大きい列配線の構成情報とを隣接する列配線にコピーする。すなわち、構成情報を、例えば図２３（ｂ）に示すように変更して迂回経路を形成すればよい。図２３（ｂ）に示す例では、スイッチセルＳ１１の代わりにスイッチセルＳ２１をオン状態にし、スイッチセルＳ２２の代わりにスイッチセルＳ３３をオン状態にし、スイッチセルＳ３３の代わりにスイッチセルＳ４４をオン状態に変更している。また、第１のコネクション・スイッチブロック２２６では、入力配線Ａ０と列配線ＶＬ０とが接続され、入力配線Ａ１と列配線ＶＬ１とが接続され、入力配線Ａ２と列配線ＶＬ３とが接続され、入力配線Ａ３と列配線ＶＬ４とが接続され、配線Ｙ０と列配線ＶＬ５とが接続され、配線Ｙ１と列配線ＶＬ６とが接続され、接地線０と列配線ＶＬ７とが接続されるようにヒューズ回路が設定される。さらに、第２のコネクション・スイッチブロック２２７では、行配線ＨＬ０と出力配線Ｂ０と接続され、行配線ＨＬ２と出力配線Ｂ１とが接続され、行配線ＨＬ３と出力配線Ｂ２とが接続され、行配線ＨＬ４と出力配線Ｂ３とが接続されるようにヒューズ回路が設定される。
【０１２８】
以上説明したように構成情報を変更することで、不良スイッチを含む列配線ＶＬ２が入力配線Ａ２から切り離され、不良スイッチを含む行配線ＨＬ１が出力配線Ｂ１から切り離される。したがって、行配線ＨＬ２を介した迂回経路により配線Ａ１から配線Ｂ１の信号経路が形成され、列配線ＶＬ３及び行配線ＨＬ３を介した迂回経路により配線Ａ２から配線Ｂ２の信号経路が形成され、列配線ＶＬ４及び行配線ＨＬ４を介した迂回経路により配線Ａ３から配線Ｂ３の信号経路が形成されて、上記故障が解消される。
【０１２９】
上述した第１〜第３の実施の形態では、リセット不良（オン固定）が発生したスイッチセル２２４が常時オンしていることで、配線負荷が増大する信号経路が発生する可能性がある。これは、プログラマブル論理集積回路の信号遅延や消費電力の増大を招くために好ましくない。
【０１３０】
第４の実施の形態では、リセット不良が発生したスイッチセル２２４と接続される行配線及び列配線が入出力配線から完全に切り離される。したがって、プログラマブル論理集積回路の信号遅延や消費電力の増大が抑制される。
【０１３１】
なお、第４の実施の形態では説明を省略したが、セット不良（オフ固定）が発生した場合は第２及び第３の実施の形態で説明した対処方法を適用できる。例えば、セット不良が発生した場合は、第２のコネクション・スイッチブロック２２７のヒューズ回路の設定を変更して、セット不良が発生したスイッチセルを含む行配線を隣接する行配線と置き換えてもよい。または、第１のコネクション・スイッチブロック２２６のヒューズ回路の設定を変更して、セット不良が発生したスイッチセルを含む列配線を隣接する列配線と置き換えてもよい。
【０１３２】
本発明のプログラマブル論理集積回路１は、以上説明した第１の実施の形態〜第４の実施の形態に限定されるものではなく、本発明の技術思想の範囲内で適宜変更してもよい。
【０１３３】
例えば、抵抗変化素子は、電源電圧が供給されていないときでも低抵抗状態と高抵抗状態とを保持できればよく、固体電解質抵抗素子、金属酸化物抵抗素子、相変化抵抗素子または磁気抵抗素子等を用いてもよい。
【０１３４】
また、図１０に示したロジックブロック２１において、ＬＵＴ回路のクロスバー・スイッチブロックに冗長配線及び冗長スイッチセルを備えると共に、コネクション・スイッチブロックを備え、不良スイッチが発生した場合は、該不良スイッチが接続される配線を冗長配線と置換えるように変更してもよい。
【０１３５】
さらに、図８、図１５、図１９に示したコネクション・スイッチブロックにおいて、入出力配線と行列配線との接続を切り替えるスイッチ手段として用いたトランジスタの代わりに抵抗変化素子を用いてもよい。
【０１３６】
（第５の実施の形態）
第５の実施の形態では、上述した第１〜第４の実施の形態で示したプログラマブル論理集積回路１に実装する回路の形成に必要な構成情報の設計を支援する設計支援システムについて説明する。
【０１３７】
図２４は、本発明の設計支援システムの一構成例を示すブロック図である。
【０１３８】
図２４に示すように、設計支援システム１０は、演算装置１１、記憶装置１２、表示装置１３及び入出力装置１４を備え、演算装置１１、記憶装置１２、表示装置１３及び入出力装置１４がバス１５を介して互いに接続された構成である。設計支援システム１０は、例えばコンピュータシステムによって実現される。設計支援システム１０には、構成情報転送装置１６及びプログラマブル論理集積回路１が有線または無線による周知の通信手段を用いて通信可能に接続される。プログラマブル論理集積回路１及び構成情報転送装置１６は、アプリケーション・ボードとして設計支援システム１０に搭載されていてもよい。
【０１３９】
演算装置１１は、予め記憶装置１２に保存されたプログラムにしたがって処理を実行することで、設計支援システム１０全体の動作を制御する。また、演算装置１１は、予め記憶装置１２に保存されたプログラムにしたがって処理を実行することで、後述する設計支援ツール群１００の機能を実現する。
【０１４０】
記憶装置１２には設計情報やプログラムが格納される。設計情報は、プログラマブル論理集積回路１に実装する、設計者が作成する回路の動作記述情報、制約条件情報等を含む。また、設計情報には、後述する演算装置１１の処理結果であるネットリスト情報、配置配線情報、遅延・電力解析結果、プログラマブル論理集積回路１のリソース情報や構成情報、書換え履歴情報等を含む。
【０１４１】
表示装置１３は、設計支援ツールの命令入力画面や該設計支援ツールによる処理結果を表示する。
【０１４２】
入出力装置１４は、キーボード、マウス等の入力装置、並びに構成情報転送装置１６、印刷装置等の出力装置と信号やデータを送受信するインタフェース回路である。
【０１４３】
構成情報転送装置１６は、設計支援システム１０及びプログラマブル論理集積回路１と接続され、設計支援システム１０とプログラマブル論理集積回路１間の構成情報等のデータ伝送を制御する。例えば、設計支援システム１０から送信された構成情報等のデータを受信し、プログラマブル論理集積回路１のデータ入出力仕様の送信データに変換して転送する。また、プログラマブル論理集積回路１から出力された構成情報等のデータを受信し、設計支援システム１０のデータ入出力仕様の送信データに変換して転送する。
【０１４４】
図２５は、図２４に示した設計支援システムが備える設計支援ツール群の一構成例を示すブロック図である。
【０１４５】
図２５に示すように、設計支援ツール群１００は、論理合成ツール１０１、配置配線ツール１０２、遅延電力解析ツール１０３、リソース設定ツール１０４、欠陥解析ツール１０５及び書換え履歴解析ツール１０６を備える。
【０１４６】
配置配線ツール１０２及び遅延電力解析ツール１０３は本発明の設計支援システムが備える構成情報生成手段の一例であり、リソース設定ツール１０４は本発明の設計支援システムが備えるリソース設定手段の一例である。また、欠陥解析ツール１０５は本発明の設計支援システムが備える欠陥情報生成手段の一例であり、書換え履歴解析ツール１０６は本発明の設計支援システムが備える書換え履歴情報生成手段の一例である。
【０１４７】
論理合成ツール１０１は、設計者によって入力された動作記述情報及び遅延・電力等の制約条件情報を参照して、論理合成を行う。設計者は、本ツールによりネットリストを得ることができる。ネットリストはプログラマブル論理集積回路１が備える各要素回路の接続情報である。
【０１４８】
配置配線ツール１０２は、ネットリストに含まれる、プログラマブル論理集積回路１が備える各要素回路をプログラマブル論理集積回路１のリソース情報に基づいて疑似的に配置・配線する。設計者は、本ツールにより構成情報を得ることができる。
【０１４９】
遅延電力解析ツール１０３は、構成情報を参照して設計者が作成する回路の最大遅延時間の解析や消費電力を計算する。設計者は、本ツールにより、プログラマブル論理集積回路１に所要の回路を実装したときの動作周波数や消費電力の値を知ることができる。
【０１５０】
リソース設定ツール１０４は、プログラマブル論理集積回路１から受信した構成情報に基づいてデバイス固有のリソース情報を作成する。リソース情報は、プログラマブル論理集積回路１に実装する回路で利用可能な回路要素を示す情報であり、プログラマブル論理集積回路１が備える要素回路やスイッチブロックに含まれる抵抗変化素子のアドレス情報、抵抗変化素子の欠陥（不良）の有無を示す情報等が含まれる。
【０１５１】
欠陥解析ツール１０５は、配置配線ツール１０２で生成された構成情報と、プログラマブル論理集積回路１から受信した構成情報とを比較し、設計者が作成する回路の実装対象であるプログラマブル論理集積回路１の欠陥（不良）の有無を示す情報（欠陥情報）を作成する。
【０１５２】
書換え履歴解析ツール１０６は、プログラマブル論理集積回路１から読み出された構成情報（内部構成情報）に基づいてデバイス固有の書換え履歴情報を作成する。書換え履歴情報には、プログラマブル論理集積回路１が備える要素回路やスイッチブロックに含まれる抵抗変化素子のアドレス情報と書換え回数情報を含む。
【０１５３】
図２６は、本発明の設計支援システムを用いた論理設計手順の一例を示すフローチャートである。図２６は、回路Ａが実装されたプログラマブル論理集積回路１に、該回路Ａと異なる回路Ｂを実装する場合の処理手順の一例を示している。
【０１５４】
図２６に示すように、設計支援システム１０には、ハードウェア記述言語（例えば、Ｖｅｒｉｌｏｇ−ＨＤＬ、ＶＨＤＬ等）を用いて設計者が作成した回路Ｂの動作記述ファイルが入力される。
【０１５５】
設計支援システム１０は、論理合成ツール１０１を用いて動作記述ファイルを論理合成し（ステップＣ１）、回路Ｂのネットリストを作成する。ネットリストは、プログラマブル論理集積回路１のロジックブロック２１が備える要素回路であるＬＵＴやＤＦＦ等を用いて作成される。ネットリストには各ＬＵＴの真理値情報も含まれる。論理合成ツール１０１は、設計者が予め設定したタイミング制約情報を満たすように回路を最適化する。
【０１５６】
論理合成ツール１０１によりネットリストが作成されると、設計支援システム１０は、設計者の指示にしたがって、リソース設定ツール１０４を用いて欠陥情報に基づくリソース設定を実行する（ステップＣ２）。欠陥情報はデバイス固有の情報であり、後述する方法によって事前に作成される情報である。リソース設定は、コンフィグレーションを実施するデバイス（プログラマブル論理集積回路１）が変更される度に実行する必要がある。
【０１５７】
図２７は、図２６に示したリソース設定の処理手順の一例を示すフローチャートである。
【０１５８】
図２７に示すように、リソース設定ツール１０４は、まず欠陥情報からオン固定の不良素子（リセット不良が発生した素子、あるいはオン状態に固定された欠陥素子）を抽出し（ステップＤ１）、当該不良素子が置換可能であるか否かを検査する（ステップＤ２）。置換可能な状態とは、不良素子が存在するクロスバー・スイッチブロックにおいて、他に不良素子が存在せず、かつ冗長配線が利用されていない条件を満たす状態を指す。置換可能な場合は、不良素子を含む配線を隣接する配線に置き換え、冗長配線を利用するようにコネクション・スイッチブロックのヒューズ回路の設定値を確定する（ステップＤ３）。この設定値は、ヒューズ回路の抵抗変化素子に書き込む値であり、構成情報に含まれる。置換不可能な場合は、当該不良素子を含むクロスバー・スイッチブロック及び当該スイッチブロックを介して入力されるロジックブロック２１をリソース情報から削除し（ステップＤ４及びＤ５）、後述する配置配線処理で利用しないようにする。
【０１５９】
次に、リソース設定ツール１０４は、欠陥情報からオフ固定の不良素子（セット不良が発生した素子、あるいはオフ状態に固定化された欠陥素子）を抽出し（ステップＤ６）、当該不良素子が置換可能であるか否かを検査する（ステップＤ７）。置換可能な場合は、不良素子を含む配線を隣接する配線に置き換え、冗長配線を利用するようにコネクション・スイッチブロックのヒューズ回路の設定値を確定する（ステップＤ８）。置換不可能な場合は、当該不良素子のスイッチセルをリソース情報から削除し、後述する配置配線処理で利用しないように設定する（ステップＤ９）。
【０１６０】
ネットリスト及びリソース情報が作成されると、設計支援システム１０は、設計者の指示により、配置配線ツール１０２を用いてプログラマブル論理集積回路１に実装する回路Ｂの配置配線処理を実行し（ステップＣ３）、構成情報を作成する。配置配線処理において、配置配線ツール１０２は、ネットリストに記載された要素回路をプログラマブル論理集積回路１に物理的にどのように配置するかを決定する。また、配置配線ツール１０２は、ネットリストに記載された要素回路の接続情報に基づいて、物理的に配置された各要素回路を、配線スイッチを用いてどのように配線して接続するかを決定する。このとき、配置配線ツール１０２は、回路遅延が最小となるように使用する要素回路及び配線スイッチを最適に選択する。さらに、配置配線ツール１０２は、リソース情報を参照して、当該要素回路及び配線スイッチが使用不可能であれば他の要素回路及び配線スイッチを利用するように変更する。
【０１６１】
図２８及び図２９を用いて、配置配線ツール１０２による処理について説明する。
【０１６２】
図２８は、リソース情報に利用不可のスイッチブロック及びロジックブロックを含む場合の配置配線ツール１０２による一処理例を示す模式図である。
【０１６３】
図２８に示す例では、第１のスイッチブロックがオン固定の不良スイッチを含み、リソース設定ツール１０４によって冗長配線に置き換え不可能と判断されて利用不可と判定されているものとする。また、第１のロジックブロックは、その入出力配線が第１のスイッチブロックに接続されているため、利用不可と判定されているものとする。
【０１６４】
図２８（ａ）は、配置配線ツール１０２が、回路遅延が最小となる信号経路の候補として、第０のロジックブロックから第１のロジックブロックへの信号経路を選択した様子を示している。ここでは、上述したように第１のスイッチブロック及び第１のロジックブロックが利用不可のリソースであるため、配置配線ツール１０２は迂回経路を探索する処理を実行する。
【０１６５】
配置配線ツール１０２は、例えば第２のロジックブロックが未使用のリソースであることを検出し、第０のロジックブロックから第２のロジックブロックへの信号経路に置き換えるための処理を行う。最終的に、図２８（ｂ）に示すように配線し、この信号経路が最良であると判定して構成情報を決定する。
【０１６６】
図２９は、リソース情報に利用不可のスイッチセルを含む場合の配置配線ツールによる一処理例を示す模式図である。
【０１６７】
図２９に示す例では、第１のスイッチセルがオフ固定の発生した不良スイッチであり、リソース設定ツール１０４によって冗長配線に置換え不可能と判断され、利用不可のスイッチセルとしてリソース情報に登録されているものとする。
【０１６８】
図２９（ａ）は、配置配線ツール１０２が、回路遅延が最小となる信号経路の候補として、第１のスイッチセルをオン状態にして配線Ａ１からＢ１への信号経路を選択したことを示している。ここでは、上述したように第１のスイッチセルが利用不可のリソースであるため、配置配線ツール１０２は迂回経路を探索する処理を実行する。
【０１６９】
配置配線ツール１０２は、例えば未使用の入力配線Ａ２及び未使用の出力配線Ｂ２を検出し、第２のスイッチセルをオン状態にして配線Ａ２からＢ２への信号経路に置き換えるための処理を行う。最終的に、図２９（ｂ）に示すように配線し、この信号経路が最良であると判定して構成情報を決定する。
【０１７０】
配置配線ツール１０２によって構成情報が決定すると、設計支援システム１０は、図２６に示す処理手順に戻り、設計者の指示により遅延電力解析ツール１０３を用いて該構成情報に基づく回路の遅延及び電力を解析する（ステップＣ４）。そして、設計者が予め設定した遅延及び電力の制約条件を満たしているか否かを判定し（ステップＣ５）、制約条件を満たしていれば、その構成情報が最終結果となる。制約条件を満たしていない場合は、ステップＣ３の処理へ戻って該制約条件を満たすまで配置配線処理を繰り返し実行する。
【０１７１】
最終的に回路Ｂの構成情報が決定すると、設計者によって構成情報転送装置１６が設計支援システム１０及びプログラマブル論理集積回路１と接続され、設計支援システム１０とプログラマブル論理集積回路１との通信経路が確立する。決定した回路Ｂの構成情報は、構成情報転送装置１６を介してプログラマブル論理集積回路１へ送信される。プログラマブル論理集積回路１は、構成情報転送装置から構成情報を受信すると、図６に示した処理手順にしたがってコンフィグレーション動作を開始する（ステップＣ６）。全ての構成情報のコンフィグレーションが完了すると、プログラマブル論理集積回路１には回路Ｂが実装された状態となる。
【０１７２】
プログラマブル論理集積回路１に回路Ｂが実装されると、設計支援システム１０は、設計者の指示により、欠陥解析ツール１０５を用いてプログラマブル論理集積回路１に書き込まれた構成情報を検証する。
【０１７３】
欠陥解析ツール１０５は、プログラマブル論理集積回路１に対して全てのスイッチセルの状態読み出しを指示し、プログラマブル論理集積回路１は該指示にしたがって全てのスイッチセルの状態を読み出す（ステップＣ７）。そして、読み出したスイッチセルの状態を示す構成情報（内部構成情報）を、構成情報転送装置１６を介して設計支援システム１０へ送信する。
【０１７４】
設計支援システム１０は、プログラマブル論理集積回路１から読み出された内部構成情報を受信すると、欠陥解析ツール１０５を用いて、配置配線後の構成情報と、プログラマブル論理集積回路１から読み出された構成情報（内部構成情報）とを比較し（ステップＣ８）、両者が同一であるか否かを判定する（ステップＣ９）。両者が同一である場合はプログラマブル論理集積回路１に対するコンフィグレーション作業は完了となる。配置配線後の構成情報とプログラマブル論理集積回路１から読み出された構成情報とが異なる場合、欠陥解析ツール１０５は書き込み不良を含む欠陥が発生したと判定する。そして、欠陥解析ツール１０５は、書き込み不良が発生した欠陥箇所に対応するスイッチセルがオン固定であるかオフ固定であるかを解析し、該スイッチセルのアドレスとその解析結果（オン固定またはオフ固定）とを欠陥情報に追加記録することで該欠陥情報を更新する（ステップＣ１０）。
【０１７５】
欠陥情報が更新されると、設計支援システムは、図２６のステップＣ２の処理に戻ってリソース設定ツール１０４によりリソース設定を再度実行し、配置配線ツール１０２により構成情報を再度作成する。
【０１７６】
構成情報の再作成時、配置配線ツール１０２は、リソース情報に新たに追加された利用不可のリソースに着目し、該リソースに関連する部位に対してのみ構成情報を修正する。再作成された構成情報はプログラマブル論理集積回路１に送信されてコンフィグレーションが実行される。このとき、再作成された構成情報の大部分は既にプログラマブル論理集積回路１に書き込まれている。
【０１７７】
したがって、図６に示した処理手順によれば、プログラマブル論理集積回路１が備える多くのスイッチセル（抵抗変化素子）の書き換え動作を省略できる。
【０１７８】
プログラマブル論理集積回路１に対する再作成された構成情報のコンフィグレーションが終了すると、設計支援システム１０は、設計者の指示により、欠陥解析ツール１０５を用いてプログラマブル論理集積回路１に書き込まれた構成情報を再度検証する。再作成された構成情報とプログラマブル論理集積回路１から読み出された構成情報とが一致すれば、該プログラマブル論理集積回路１には回路Ｂが正しく実装されているため、一連のコンフィグレーション作業が完了する。
【０１７９】
なお、プログラマブル論理集積回路１に対する構成情報のコンフィグレーションでは、ある特定の抵抗変化素子に書き換え動作が集中しないようにできれば、プログラマブル論理集積回路１の信頼性を向上させるために好ましい。
【０１８０】
図３０は、欠陥情報を含むリソース情報と書換え履歴情報とを用いてプログラマブル論理集積回路に対する構成情報のコンフィグレーションを実行する場合の処理手順を示すフローチャートである。書換え履歴情報には、プログラマブル論理集積回路１が備える各抵抗変化素子のアドレスと、各抵抗変化素子の状態の書き換え回数を示す情報とが含まれる。
【０１８１】
図３０は、先に回路Ｂの構成情報が書き込まれたプログラマブル論理集積回路１を、該回路Ｂとは異なる回路Ａの構成情報に書き換える場合の処理例を示している。
【０１８２】
図３０に示す処理では、配置配線ツール１０２が、ネットリスト、欠陥情報が反映されたリソース情報及び書換え履歴情報を参照して、各要素回路をどのように配置するか、またどの配線スイッチを利用して要素回路を接続するかを決定する。このとき、使用する要素回路及び配線スイッチは、回路遅延を最小とする最適化方針において、利用不可の要素回路及び配線スイッチの回避を最優先とし、続いて書換え回数が少ない抵抗変化素子を有するスイッチセルを優先して利用する配置配線処理を実行する。
【０１８３】
書換え履歴情報は、書換え履歴解析ツール１０６により、プログラマブル論理集積回路１から読み出された構成情報（回路Ｂ）と回路Ａの構成情報とを比較し（ステップＤ１）、その差分を取ることで更新する（ステップＤ２）。その他の処理は、図２６に示した処理と同様であるため、ここではその説明を省略する。
【０１８４】
次に図３１を用いて書換え履歴情報を考慮した信号経路の決定プロセスを説明する。
【０１８５】
図３１は、書換え履歴情報を考慮した信号経路の決定プロセスの一例を示す模式図である。
【０１８６】
図３１において、スイッチセルに記載された数字は過去に実行された書換え回数を示している。図３１（ａ）は、回路Ａの構成情報の一部であるクロスバー・スイッチブロックの状態を示している。回路Ａでは、配線Ａ０〜Ａ３から配線Ｂ０〜Ｂ３への信号経路が２本形成されており、書換え回数が少ないスイッチＳ２１及びＳ０３が優先して利用されている。すなわち、スイッチＳ２１をオンすることで配線Ａ１から配線Ｂ２への信号経路が形成され、スイッチＳ０３をオンすることで配線Ａ３から配線Ｂ０への信号経路が形成されている。
【０１８７】
ここで、回路Ｂでは、同一のクロスバー・スイッチブロックにおいて配線Ａ０〜Ａ３から配線Ｂ０〜Ｂ３への信号経路を３本形成する場合を考える。この場合、各スイッチの書換え回数を抑制する最も有効な方法は、各スイッチのオン／オフをなるべく書き換えないことである。すなわち、３本の信号経路のうち、スイッチＳ２１を介した配線Ａ１から配線Ｂ２への信号経路とスイッチＳ０３を介した配線Ａ３から配線Ｂ０への信号経路は変更しない。また、残りの１本の信号経路を形成するのに用いるスイッチ候補は書換え回数が少ない（図３１（ａ）の例では４）スイッチＳ２０及びＳ１２である。しかしながら、スイッチＳ２０は、該スイッチＳ２０が接続される配線Ｂ２が既に利用されているため選択できない。一方、スイッチＳ１２は利用可能なスイッチ・リソースである。
【０１８８】
したがって、スイッチＳ１２をオンにして配線Ａ２から配線Ｂ１への信号経路を形成する構成情報が作成されることになる。その結果を図３１（ｂ）に示す。
【０１８９】
書換え履歴情報は、上述したように、書換え履歴解析ツール１０６により、書き換える構成情報（回路Ａ）と、プログラマブル論理集積回路１から読み出した構成情報（回路Ｂ）との差分を取ることで作成する。また、回路Ｂのコンフィグレーションに失敗し、再度コンフィグレーションを実行する場合は、先にプログラマブル論理集積回路１から読み出した構成情報（回路Ｂ）と、再コンフィグレーション後にプログラマブル論理集積回路１から読み出した構成情報（回路Ｂ’）との差分を取ることで作成される。
【０１９０】
本発明の設計支援システムは、以上説明した第５の実施の形態に限定されるものではなく、本発明の技術思想の範囲内で適宜変更してもよい。
【０１９１】
例えば、プログラマブル論理集積回路１が、コンピュータシステム（設計支援システム１０）でサポートする通信規格に準じたデータを送受信できるインタフェースを有する場合、構成情報転送装置１６を介さずに該プログラマブル論理集積回路１を設計支援システム１０に直接接続してもよい。
【０１９２】
また、リソース情報を作成する機能、欠陥情報を作成する機能、書換え履歴情報を作成する機能等は、例えば配置配線ツール１０２に備えていてもよい。
【０１９３】
なお、プログラマブル論理集積回路１から読み出した構成情報を利用する欠陥解析ツール１０５、書換え履歴解析ツール１０６、リソース設定ツール１０４及び配置配線ツール１０２には、例えば、設計者にプログラマブル論理集積回路１を設計支援システムに接続するように促す機能を備えていることが望ましい。
【０１９４】
また、欠陥情報や書換え履歴情報等のリソース情報はデバイス（プログラマブル論理集積回路１）固有の情報であるため、プログラマブル論理集積回路１には該プログラマブル論理集積回路１を識別するための識別番号（ＩＤ）を保存するための記憶手段を備えることが望ましい。その場合、プログラマブル論理集積回路１から読み出した構成情報を利用する欠陥解析ツール１０５、書換え履歴解析ツール１０６、リソース設定ツール１０４及び配置配線ツール１０２には、プログラマブル論理集積回路１から識別番号（ＩＤ）を読み取るための機能を備えていることが望ましい。さらに、設計支援システム１０には、プログラマブル論理集積回路１から読み出した識別番号（ＩＤ）及びその読み取り日時等をリソース情報等に記録する機能を備えていることが望ましい。
（付記１）
複数のロジックブロックと、
第１の方向へ延在する複数の第１の配線と第２の方向へ延在する複数の第２の配線とを接続または切断する、前記第１の配線と前記第２の配線との交点に配置された複数の抵抗変化素子を備えた複数のクロスバー・スイッチブロックと、
前記ロジックブロックに信号を入力するための入力配線と前記クロスバー・スイッチブロックとを接続または切断するコネクション・スイッチブロックと、
前記抵抗変化素子の状態を検出する読出し手段と、
前記抵抗変化素子の状態を変更する書込み手段と、
外部から入力される構成情報にしたがって前記抵抗変化素子の状態を変更するとき、前記読出し手段により前記抵抗変化素子毎の状態を読み出し、前記書込み手段により前記構成情報で示される状態と異なる前記抵抗変更素子の状態のみを変更する制御手段と、を有するプログラマブル論理集積回路。
（付記２）
前記コネクション・スイッチブロックは、
前記入力配線と前記第２の配線とを接続または切断するスイッチ素子を備え、
前記制御手段は、
前記抵抗変化素子で状態を変更できない不良が発生した場合、前記スイッチ素子により前記不良が発生した抵抗変化素子が接続される第２の配線と前記入力配線とを切断する付記１に記載のプログラマブル論理集積回路。
（付記３）
前記コネクション・スイッチブロックは、
前記入力配線と前記第２の配線とを接続する第１のコネクション・スイッチブロックと、
前記ロジックブロック及び前記ロジックブロックの出力信号を出力するための出力配線と、前記第１の配線とを接続または切断するスイッチ素子を備えた第２のコネクション・スイッチブロックと、を有し、
前記クロスバー・スイッチブロックは、
前記第１の方向へ延在する第１の冗長配線をさらに備え、
前記制御手段は、
前記抵抗変化素子で状態を変更できない不良が発生した場合、前記スイッチ素子により、前記出力配線を、前記不良が発生した抵抗変化素子が接続される第１の配線に代えて、該第１の配線と隣接する第１の配線または前記第１の冗長配線と接続する付記１に記載のプログラマブル論理集積回路。
（付記４）
前記コネクション・スイッチブロックは、
前記第２の方向へ延在する第２の冗長配線と、
前記入力配線及び前記第２の冗長配線と前記第２の配線とを接続または切断するスイッチ素子とを備え、
前記制御手段は、
前記抵抗変化素子で状態を変更できない不良が発生した場合、前記スイッチ素子により、前記入力配線を、前記不良が発生した抵抗変化素子が接続される第２の配線に代えて、該第２の配線と隣接する第２の配線または前記第２の冗長配線と接続する付記１に記載のプログラマブル論理集積回路。
（付記５）
前記コネクション・スイッチブロックは、
前記入力配線と前記第２の配線とを接続または切断する第１のスイッチ素子を備えた第１のコネクション・スイッチブロックと、
前記ロジックブロック及び前記ロジックブロックの出力信号を出力するための出力配線と、前記第１の配線とを接続または切断する第２のスイッチ素子を備えた第２のコネクション・スイッチブロックと、を有し、
前記クロスバー・スイッチブロックは、
前記第１の方向へ延在する第１の冗長配線をさらに備え、
前記第１のコネクション・スイッチブロックは、
前記第２の方向へ延在する第２の冗長配線をさらに備え、
前記制御手段は、
前記抵抗変化素子で状態を変更できない不良が発生した場合、前記第１のスイッチ素子により前記入力配線を、前記不良が発生した抵抗変化素子が接続される第２の配線に代えて、該第２の配線と隣接する第２の配線または前記第２の冗長配線と接続し、
前記第２のスイッチ素子により、前記出力配線を、前記不良が発生した抵抗変化素子が接続される第１の配線に代えて、該第１の配線と隣接する第１の配線または前記第１の冗長配線と接続する付記１に記載のプログラマブル論理集積回路。
（付記６）
コネクション・スイッチブロックは、
前記第２の配線毎に設けられた、前記不良が発生した抵抗変化素子の有無を示す情報を保持する記憶素子を備え、
前記記憶素子に抵抗変化素子を含む付記２または４に記載のプログラマブル論理集積回路。
（付記７）
第１のコネクション・スイッチブロックは、
前記第２の配線毎に設けられた、前記不良が発生した抵抗変化素子の有無を示す情報を保持する第１の記憶素子を備え、
第２のコネクション・スイッチブロックは、
前記第１の配線毎に対応して設けられた、前記不良が発生した抵抗変化素子の有無を示す情報を保持する第２の記憶素子を備え、
前記第１の記憶素子及び前記第２の記憶素子に抵抗変化素子を含む付記３または５に記載のプログラマブル論理集積回路。
（付記８）
前記抵抗変化素子は、固体電解質抵抗素子、金属酸化物抵抗素子、相変化抵抗素子または磁気抵抗素子である付記１から７のいずれか１項に記載のプログラマブル論理集積回路。
（付記９）
抵抗変化素子を備えるプログラマブル論理集積回路に実装する回路の設計を支援する設計支援システムであって、
前記回路の実装対象である前記プログラマブル論理集積回路の不良の有無を示す欠陥情報に基づいて、前記回路で利用可能な回路要素を示す情報であるリソース情報を生成するリソース設定手段と、
前記プログラマブル論理集積回路が備える要素回路の接続情報であるネットリスト及び前記リソース情報に基づいて仮想的な配置配線を実施して構成情報を生成する構成情報生成手段と、
前記構成情報生成手段で生成された構成情報と、前記プログラマブル論理集積回路から読み出した構成情報である内部構成情報とを比較し、前記構成情報生成手段で生成された構成情報と前記内部構成情報とが一致しない場合、前記欠陥情報を更新する欠陥情報生成手段と、を有する設計支援システム。
（付記１０）
前記リソース設定手段は、
前記抵抗変化素子で状態を変更できない不良が発生している場合、前記不良が発生した抵抗変化素子である欠陥素子がオン状態で固定されているかオフ状態で固定されているかを判定し、
オフ状態で固定された欠陥素子を前記リソース情報から削除することで該リソース情報を更新し、
前記構成情報生成手段は、
前記リソース設定手段による更新後のリソース情報に基づいて前記構成情報を生成する付記９に記載の設計支援システム。
（付記１１）
前記リソース設定手段は、
前記抵抗変化素子で状態を変更できない不良が発生している場合、前記不良が発生した抵抗変化素子である欠陥素子が接続される配線または前記欠陥素子を含む回路要素が、前記プログラマブル論理集積回路が備える冗長配線または前記冗長回路に置き換え可能か否かを判定し、
前記欠陥素子が接続される配線または前記欠陥素子を含む回路要素を前記リソース情報から削除し、前記冗長配線または前記冗長回路を前記リソース情報に追加することで該リソース情報を更新し、
前記構成情報生成手段は、
前記リソース設定手段による更新後のリソース情報に基づいて前記構成情報を生成する付記９または１０に記載の設計支援システム。
（付記１２）
前記抵抗変化素子の状態の変更回数を示す書換え履歴情報を生成する書換え履歴情報生成手段をさらに有し、
前記構成情報生成手段は、
前記ネットリスト、前記リソース情報及び前記書換え履歴情報に基づいて状態の変更回数が少ない抵抗変化素子を優先的に用いて前記構成情報を生成する付記９から１１のいずれか１項に記載の設計支援システム。
（付記１３）
前記プログラマブル論理集積回路に、
前記抵抗変化素子が接続される配線毎に設けられた、前記不良が発生した抵抗変化素子の有無を示す情報を保持する記憶素子を備え、ロジックブロックの入出力配線と前記抵抗変化素子が接続される配線とを接続または切断するコネクション・スイッチブロックを有し、
前記リソース設定手段は、
前記抵抗変化素子で状態を変更できない不良が発生している場合、前記不良が発生した抵抗変化素子である欠陥素子が接続される配線を前記入出力配線から切断するように前記記憶素子に設定するための構成情報を生成する付記１０から１２のいずれか１項に記載の設計支援システム。
（付記１４）
前記プログラマブル論理集積回路に、
前記抵抗変化素子が接続される配線毎に設けられた、前記不良が発生した抵抗変化素子の有無を示す情報を保持する記憶素子を備え、ロジックブロックの入出力配線と前記抵抗変化素子が接続される配線とを接続または切断するコネクション・スイッチブロックを有し、
前記リソース設定手段は、
前記抵抗変化素子で状態を変更できない不良が発生している場合、前記不良が発生した抵抗変化素子である欠陥素子が接続される配線に代えて、前記冗長配線を前記入出力配線と接続するように前記記憶素子に設定するための構成情報を生成する付記１１に記載の設計支援システム。
（付記１５）
抵抗変化素子を備えるプログラマブル論理集積回路に所望の回路を形成するためのコンフィグレーション方法であって、
ハードウェア記述言語により記述された前記回路の動作記述情報を論理合成し、前記回路のネットリストを作成する第１ステップと、
前記ネットリスト及び前記回路の実装対象である前記プログラマブル論理集積回路の不良の有無を示す欠陥情報に基づいて、前記回路で利用可能な回路要素を示す情報であるリソース情報を作成する第２ステップと、
前記ネットリスト及び前記リソース情報に基づいて仮想的な配置配線を実施して前記回路の形成に必要な情報である構成情報を作成する第３ステップと、
前記第３のステップで作成された構成情報で示される回路の信号遅延及び消費電力を計算し、予め設定された仕様を満たすか否かを検証する第４ステップと、
前記第４ステップで検証された構成情報を前記プログラマブル論理集積回路に書き込む第５ステップと、
前記プログラマブル論理集積回路に書き込まれた構成情報である内部構成情報を取得する第６ステップと、
前記第４ステップで検証された構成情報と前記内部構成情報とを比較する第７ステップと、
前記第４ステップで検証された構成情報と前記内部構成情報とが一致しない場合、前記第４ステップで検証された構成情報と前記内部構成情報との差異に基づいて前記欠陥情報を更新する第８ステップと、
前記第４ステップで検証された構成情報と前記内部構成情報とが一致するまで前記第２〜第８ステップを繰り返す第９ステップと、を有するコンフィグレーション方法。
（付記１６）
前記第４ステップで検証された構成情報と前記内部構成情報とを比較し、前記抵抗変化素子の状態の変更回数を示す書換え履歴情報を生成する第１０ステップをさらに有し、
前記第３ステップは、
前記ネットリスト、前記リソース情報及び前記書換え履歴情報に基づいて仮想的な配置配線を実施して前記回路の形成に必要な情報である構成情報を作成する付記１５に記載のコンフィグレーション方法。
（付記１７）
抵抗変化素子を備えるプログラマブル論理集積回路に実装する回路の設計を支援する設計支援プログラムを記録した記録媒体であって、
コンピュータを、
前記回路の実装対象である前記プログラマブル論理集積回路の不良の有無を示す欠陥情報に基づいて、前記回路で利用可能な回路要素を示す情報であるリソース情報を生成するリソース設定手段と、
前記プログラマブル論理集積回路が備える要素回路の接続情報であるネットリスト及び前記リソース情報に基づいて仮想的な配置配線を実施して構成情報を生成する構成情報生成手段と、
前記構成情報生成手段で生成された構成情報と、前記プログラマブル論理集積回路から読み出した構成情報である内部構成情報とを比較し、前記構成情報生成手段で生成された構成情報と前記内部構成情報とが一致しない場合、前記欠陥情報を更新する欠陥情報生成手段と、して機能させる設計支援プログラムを記録した記録媒体。
（付記１８）
前記リソース設定手段が、
前記抵抗変化素子で状態を変更できない不良が発生している場合、前記不良が発生した抵抗変化素子である欠陥素子がオン状態で固定されているかオフ状態で固定されているかを判定し、
オフ状態で固定された欠陥素子を前記リソース情報から削除することで該リソース情報を更新し、
前記構成情報生成手段が、
前記リソース設定手段による更新後のリソース情報に基づいて前記構成情報を生成する、ように前記コンピュータを機能させる付記１７に記載の設計支援プログラムを記録した記録媒体。
【０１９５】
以上、上述した実施形態を模範的な例として本発明を説明した。しかしながら、本発明は、上述した実施形態には限定されない。即ち、本発明は、本発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。
【０１９６】
この出願は、２０１５年５月２９日に出願された日本出願特願２０１５−１０９９０８号を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【符号の説明】
【０１９７】
１    プログラマブル論理集積回路
２    プログラマブルロジック・セルアレイ
３    ライトドライバ
４    センスアンプ
５    ライト・バッファ
６    リード・バッファ
７    コントローラ
１０    設計支援システム
１１    演算装置
１２    記憶装置
１３    表示装置
１４    入出力装置
１５    バス
１６    構成情報転送装置
２１    ロジックブロック
２２    スイッチブロック
１００    設計支援ツール群
１０１    論理合成ツール
１０２    配置配線ツール
１０３    遅延電力解析ツール
１０４    リソース設定ツール
１０５    欠陥解析ツール
１０６    書換え履歴解析ツール
２２１    第１のクロスバー・スイッチブロック
２２２    第２のクロスバー・スイッチブロック
２２３    コネクション・スイッチブロック
２２４    スイッチセル
２２５    出力バッファ
２２６    第１のコネクション・スイッチブロック
２２７    第２のコネクション・スイッチブロック
【図１】
2016194332.tif 000003
【図２】
2016194332.tif 000004
【図３】
2016194332.tif 000005
【図４】
2016194332.tif 000006
【図５】
2016194332.tif 000007
【図６】
2016194332.tif 000008
【図７】
2016194332.tif 000009
【図８】
2016194332.tif 000010
【図９】
2016194332.tif 000011
【図１０】
2016194332.tif 000012
【図１１】
2016194332.tif 000013
【図１２】
2016194332.tif 000014
【図１３】
2016194332.tif 000015
【図１４】
2016194332.tif 000016
【図１５】
2016194332.tif 000017
【図１６】
2016194332.tif 000018
【図１７】
2016194332.tif 000019
【図１８】
2016194332.tif 000020
【図１９】
2016194332.tif 000021
【図２０】
2016194332.tif 000022
【図２１】
2016194332.tif 000023
【図２２】
2016194332.tif 000024
【図２３】
2016194332.tif 000025
【図２４】
2016194332.tif 000026
【図２５】
2016194332.tif 000027
【図２６】
2016194332.tif 000028
【図２７】
2016194332.tif 000029
【図２８】
2016194332.tif 000030
【図２９】
2016194332.tif 000031
【図３０】
2016194332.tif 000032
【図３１】
2016194332.tif 000033
【国際調査報告】
2016194332.tif 000034
2016194332.tif 000035
2016194332.tif 000036
2016194332.tif 000037
2016194332.tif 000038
2016194332.tif 000039
2016194332.tif 000040