(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0021】
次に本発明について図面を用いて説明する。
【0022】
(第1の実施の形態)
図1は本発明のプログラマブル論理集積回路の一構成例を示すブロック図であり、
図2は
図1に示したプログラマブルロジック・セルアレイの一構成例を示す模式図である。
【0023】
図1に示すように、本発明のプログラマブル論理集積回路1は、プログラマブルロジック・セルアレイ2、ライトドライバ3、センスアンプ4、ライト・バッファ5、リード・バッファ6及びコントローラ7を備える。
【0024】
コントローラ7は、不図示の外部インタフェース(I/F)回路を備え、専用I/Oから外部I/F回路を介して入力される構成情報をライト・バッファ5に格納し、ライトドライバ3を活性化してプログラマブルロジック・セルアレイに対する構成情報の書き込み動作を制御する。また、コントローラ7は、センスアンプ4を活性化してプログラマブルロジック・セルアレイ2に書き込まれた構成情報(内部構成情報)を読み出してリード・バッファ6に格納し、リード・バッファ6に格納された内部構成情報を専用I/Oを介して出力する。
【0025】
コントローラ7は本発明のプログラマブル論理集積回路が備える制御手段の一例であり、ライトドライバ3及びライト・バッファ5は本発明のプログラマブル論理集積回路が備える書込み手段の一例であり、センスアンプ4及びリード・バッファ6は本発明のプログラマブル論理集積回路が備える読出し手段の一例である。読出し手段は抵抗変化素子の状態を検出する。書込み手段は、抵抗変化素子の状態を変更する。
【0026】
図2に示すように、プログラマブルロジック・セルアレイ2は、複数のロジックブロック21と、複数のスイッチブロック22とを備え、各ロジックブロック21がスイッチブロック22によって互いに接続される構成である。スイッチブロック22には、後述するコネクション・スイッチブロック及びクロスバー・スイッチブロックが含まれる。本明細書では、一つのロジックブロック21と、該ロジックブロック21を他のロジックブロック21と接続するためのスイッチブロック22とから成る最小の構成単位をセグメントと称す。
【0027】
図3は、第1の実施の形態のプログラマブル論理集積回路が備えるセグメントの一構成例を示すブロック図である。
【0028】
図3に示す配線A0〜A3はセグメントの入力配線であり、
図3の上下左右に位置する不図示の隣接セグメントあるいはその遠方のセグメントから信号が供給される。
図3に示す配線B0〜B3はセグメントの出力配線であり、出力バッファ225を介して
図3の上下左右に位置する不図示の隣接セグメントあるいはその遠方のセグメントに信号を出力する。
【0029】
図3に示すように、セグメントは、第1の方向へ延在する複数の行配線(第1の配線)HL0〜HL7と該第1の方向と異なる第2の方向へ延在する複数の列配線(第2の配線)VL0〜VL6とを接続または切断する、行配線と列配線との交点に配置された複数のスイッチセル224を備えたクロスバー・スイッチブロックと、ロジックブロック21に信号を入力するための入力配線A0〜A3とクロスバー・スイッチブロックとを接続または切断するコネクション・スイッチブロック223と、出力配線B0〜B3から信号を出力するための複数の出力バッファ225と、を有する。クロスバー・スイッチブロックは、第1のクロスバー・スイッチブロック221及び第2のクロスバー・スイッチブロック222を備えている。
【0030】
配線Y0〜Y1はロジックブロック21の出力配線であり、配線0は接地線である。コネクション・スイッチブロック223は、入力配線A0〜A3、配線Y0〜Y1及び接地線と、列配線VL0〜VL6とを電気的に接続あるいは切断する。第1のクロスバー・スイッチブロック221は、ロジックブロック21の入力端子S0〜S3と接続される行配線HL0〜HL3を選択するために設けられており、入力マルチプレクサ(MUX)として動作する。第2のクロスバー・スイッチブロック222は、出力バッファ225の入力端子と接続される行配線HL4〜HL7を選択するために設けられており、出力マルチプレクサ(MUX)として動作する。
図3は、説明を簡単にするためにセグメントが4本の入力配線A0〜A3及び出力配線B0〜B3を備える構成例を示しているが、実際のセグメントが備える入力配線及び出力配線は数10本程度となる。
【0031】
図3に示す第1のクロスバー・スイッチブロック221及び第2のクロスバー・スイッチブロック222において、行配線と列配線の交点にそれぞれ配置されるスイッチセル224には、例えば抵抗変化素子が用いられる。
【0032】
図4は、
図3に示した第1及び第2のクロスバー・スイッチブロックが備えるスイッチセルの一構成例を示す回路図である。
図4(a)は、抵抗変化素子を備える0T1R型のスイッチセル224の構成例を示し、
図4(b)は、2つの抵抗変化素子と1つのトランジスタとから成る2T1R型のスイッチセル224の構成例を示している。
【0033】
図4(a)に示す0T1R型のスイッチセル224を用いて
図3に示した行配線HLと列配線VLとを接続する場合、抵抗変化素子の両端に順方向のバイアス電圧を印加する。すなわち、VL−HL間に所定のしきい値電圧よりも高いバイアス電圧を印加することで、抵抗変化素子を低抵抗状態(オン状態)に変化させる。この書換え動作を「セット」と称す。
【0034】
一方、
図4(a)に示す0T1R型のスイッチセル224を用いて
図3に示した行配線HLと列配線VLとを切断する場合、抵抗変化素子の両端に逆方向のバイアス電圧を印加する。すなわち、行配線HLから列配線VLに電流を流すことで、抵抗変化素子を高抵抗状態(オフ状態)に変化させる。この書換え動作を「リセット」と称す。
【0035】
図4(b)に示すように、2T1R型のスイッチセル224は、行配線HLと列配線VLとの間に直列に接続された2つの抵抗変化素子R1及びR2と、抵抗変化素子R1及びR2の接続ノードにドレインが接続されたトランジスタ(セルトランジスタ)とを備える。セルトランジスタのゲートはワード線WLと接続され、ソースはビット線と接続されている。
【0036】
図4(b)に示す2T1R型のスイッチセル224を用いて
図3に示した行配線HLと列配線VLとを接続する場合、抵抗変化素子R1及びR2をそれぞれオン状態にセットする。すなわち、ワード線WLをハイレベルに活性化した状態で、VL−BL間に順方向のバイアス電圧を印加して抵抗変化素子R1をセットし、続いてHL−BL間に順方向のバイアス電圧を印加して抵抗変化素子R2をセットする。
【0037】
一方、
図4(b)に示す2T1R型のスイッチセル224を用いて
図3に示した行配線HLと列配線VLとを切断する場合、抵抗変化素子R1及びR2をそれぞれオフ状態にリセットする。すなわち、ワード線WLをハイレベルに活性化した状態で、VL−BL間に逆方向のバイアス電圧を印加して抵抗変化素子R1をリセットし、続いてHL−BL間に逆方向のバイアス電圧を印加して抵抗変化素子R2をリセットする。
【0038】
2T1R型スイッチセル224を用いたクロスバー・スイッチブロックの具体例としては、例えば上記非特許文献1に記載された構成がある。
図5は、2T1R型のスイッチセルを備えたクロスバー・スイッチブロックの一構成例を示す回路図である。
図5は、非特許文献1に記載された回路を2行2列のクロスバー・スイッチブロックに簡略化した構成例を示している。
【0039】
まず、
図3に示した第1のクロスバー・スイッチブロック221及び第2のクロスバー・スイッチブロック222が備えるスイッチセル224に対する書込み動作について
図5を用いて説明する。
【0040】
例えば、
図5に示すスイッチセルC11をオンにして行配線HL1と列配線VL1とを接続する場合を考える。この場合、ワード線WL1をハイレベルに活性化し、セルC11のセルトランジスタをオン状態にして2つの抵抗変化素子とビット線BL1とを導通させる。また、信号DX1、DY1及びDC1をハイレベルに活性化し、行配線HL1と駆動回路PX、列配線VL1と駆動回路PY、並びにビット線BL1と駆動回路PCをそれぞれ接続する。
【0041】
駆動回路PCから供給される電圧Vc、駆動回路PXから供給される電圧Vx、駆動回路PYから供給される電圧Vyは、初期電圧がいずれもロウレベルである。電圧Vxをハイレベルに遷移させると、抵抗変化素子R1に順方向のバイアス電圧が印加されてオン状態にセットされる。その後、電圧Vxをロウレベルに戻し、電圧Vyをハイレベルに遷移させると、抵抗変化素子R2に順方向のバイアス電圧が印加されてオン状態にセットされる。以上の動作により、行配線HL1と列配線VL1とが導通状態となる。
【0042】
また、例えば
図5に示すスイッチセルC11をオフにして行配線HL1と列配線VL1とを切断する場合を考える。この場合、電圧Vc、電圧Vx、電圧Vyは、初期電圧がいずれもハイレベルである。電圧Vxをロウレベルに遷移させると、抵抗変化素子R1に逆方向のバイアス電圧が印加されてオフ状態にリセットされる。その後、電圧Vxをハイレベルに戻し、電圧Vyをロウレベルに遷移させると、抵抗変化素子R2に逆方向のバイアス電圧が印加されてオフ状態にリセットされる。以上の動作により、行配線HL1と列配線VL1とが非導通状態となる。
【0043】
次に、スイッチセルC11の状態を読み出すための動作(読み出し動作)について
図5を用いて説明する。
【0044】
図5に示すスイッチセルC11の状態を読み出す場合、まず信号DY1を活性化して列配線VL1と駆動回路PYとを接続する。このとき、ロウレベルの電圧Vyが列配線VL1に印加される。また、信号SEを活性化してセンスアンプ4をビット線BL1と接続し、信号PEを活性化してビット線BL1をハイレベルにプリチャージする。信号PEを非活性化した後、ワード線WL1を活性化してスイッチセルC11のセルトランジスタをオンにする。このとき抵抗変化素子R1がオン状態であれば、該抵抗変化素子R1を介してビット線BL1の電荷が放電される。よって、ビット線BL1の電位が低下し、この電位変化をセンスアンプ4で検出する。一方、抵抗変化素子R2がオフ状態であれば、ビット線BL1の電荷が放電されないため、ビット線BL1の電位が変化しない。
【0045】
続いて、信号DY1を非活性化した後、信号DX1を活性化して行配線HL1と駆動回路PXとを接続する。このとき、ロウレベルの電圧Vxが行配線HL1に印加される。再度、信号PEを活性化してビット線BL1をハイレベルにプリチャージする。信号PEを非活性化した後、ワード線WL1を活性化してスイッチセルC11のセルトランジスタをオンにする。このとき、抵抗変化素子R2がオン状態であれば、該抵抗変化素子R2を介してビット線BL1の電荷が放電される。よって、ビット線BL1の電位が低下し、この電位変化がセンスアンプ4で検出される。一方、抵抗変化素子R2がオフ状態であれば、ビット線BL1の電荷が放電されないため、ビット線BL1の電位は変化しない。
【0046】
以上説明した動作によって、スイッチセルC11の抵抗変化素子R1及びR2の状態が検出される。抵抗変化素子R1及びR2がそれぞれオン状態であれば、スイッチセルC11はオン状態、すなわち列配線VL1と行配線HL1とが導通状態であることが検知される。一方、抵抗変化素子R1またはR2の少なくとも1つがオフ状態であれば、セルC11はオフ状態、すなわち列配線VL1と行配線HL1とが非導通状態であることが検知される。
【0047】
本発明のプログラマブル論理集積回路1は、少なくとも3つの動作モードを有する。すなわち、プログラマブル論理集積回路1に構成情報を書き込むコンフィグレーション・モードと、プログラマブル論理集積回路1に書込まれた構成情報を読み出すリード・モードと、書き込まれた一つの構成情報に基づいてプログラマブル論理集積回路1を動作させるアプリケーション・モードとである。
【0048】
図6は、第1の実施の形態のコンフィグレーション・モードの動作例を示すフローチャートである。
図6に示すコンフィグレーション・モードの動作は、
図1に示したコントローラ7によって制御される。
【0049】
図6に示すように、プログラマブル論理集積回路1には、外部からライト命令が入力されると、続いて書き換え対象となるスイッチセル(対象セル)224のアドレス及び構成情報が入力される(ステップA1)。入力されるアドレスは上位アドレスであり、下位アドレスに対応するスイッチセル224の構成情報はシリアルに転送されてライト・バッファ5に格納される。本実施形態では、上位アドレスが行配線に対応し、下位アドレスが列配線に対応すると仮定する。例えば、最初にアクセスされるスイッチセル224は、上位アドレスに対応する行配線と下位アドレスが0の列配線との交点に位置するスイッチセル224である。
【0050】
コントローラ7は、入力されたアドレスに基づき対象セルが選択状態になると(ステップA2)、書き換え回数を示す変数nを0にリセットする(ステップA3)。次に、変数nが所定の定数Nwに到達しているか否かを判定し(ステップA4)、変数nの値が所定の定数Nwに到達していなければ対象セルの書き換え動作を実行する。定数Nwは予め設定されたスイッチセル224の書き換え可能回数であり、典型的な値は16程度である。
【0051】
本実施形態では、対象セルの書き換え動作を、該対象セルの状態を読み出す工程(ステップA5)を経てから実行する。このとき、コントローラ7は、センスアンプ4から出力される読み出し結果IQと、ライト・バッファ5から出力される対象セルの書き込みデータIDとを比較し(ステップA6)、それらが一致する場合は対象セルの書き換え動作を実行しない。一方、読み出し結果IQと書き込みデータIDとが一致しない場合、例えばIQ=1(オン状態)であり、ID=0であるか否かを判定し(ステップA7)、IQ=1であり、ID=0の時は、対象セルをオフ状態にリセットする(ステップA8)。また、IQ=0(オフ状態)であり、ID=1の時は、対象セルをオン状態にセットする(ステップA9)。セットまたはリセット動作を実行すると、コントローラ7は、変数nの値を1インクリメントする(ステップA10)。そして、ステップA4の処理に戻って変数nが所定の定数Nwに到達しているか否かを判定し、変数nの値が所定の定数Nwに到達していなければ、再度、上記ステップA5からの処理を繰り返す。
【0052】
ステップA4の処理で変数nが定数Nwに到達している場合、あるいはステップA6の処理で読み出し結果IQと書き込みデータIDとが一致する場合、コントローラ7は、下位アドレスを1インクリメントする(ステップA11)。また、最終アドレスまで到達したか否かを判定し(ステップA12)、最終アドレスまで到達している場合は、ライト命令と共に入力された一つの上位(行)アドレスにおけるコンフィグレーション・モードの動作を終了する。その場合、再度、外部からライト命令が入力され、別の上位(行)アドレスが入力されると、
図6に示したフローチャートにしたがって構成情報の書換え動作を実行する。一方、ステップA12の処理で最終アドレスまで到達していない場合、コントローラ7は、再度、上記ステップA2からの処理を繰り返す。
【0053】
以上説明したコンフィグレーション・モードの動作によれば、対象セルの状態を先に読み出し、書込みデータと異なるときのみスイッチセルの書き換え動作を実行するため、抵抗変化素子の書換え回数を必要最小限に抑制できる。
【0054】
例えば、全てのスイッチセル224を一旦リセットしてから新たな構成情報をコンフィグレーションする場合を考える。この場合、オン状態であったスイッチセル224は、一旦、リセットされてオフ状態へ遷移し、さらにオン状態に再度セットされる可能性がある。本来、このスイッチセル224の抵抗変化素子は、状態を書き換える必要が無かった素子であるが、コンフィグレーション・モードの動作過程で無駄に2回書き換え動作が実行されてしまう。以上説明した方法によって抵抗変化素子の書換え回数を抑制することは、プログラマブル論理集積回路1の利用期間を実質的に延長させることになるため、信頼性を向上させることができる。
【0055】
図7は、第1の実施の形態のリード・モードの動作例を示すフローチャートである。
図7に示すリード・モードの動作は
図1に示したコントローラ7によって制御される。
【0056】
図7に示すように、プログラマブル論理集積回路1には、外部からリード命令が入力されると、続いて読み出し対象であるスイッチセル(対象セル)224の上位アドレスが入力される(ステップB1)。
【0057】
コントローラ7は、入力された上位アドレスに基づき対象セルが選択状態になると(ステップB2)、読出し動作を開始し(ステップB3)、センスアンプ4から出力された読出し結果IQをリード・バッファ6に一時的に格納する。リード・バッファ6から読み出した読出し結果は外部I/F回路を介してデータQとして外部へ出力する(ステップB4)。コントローラ7は、下位アドレスをインクリメントし(ステップB5)、最終アドレスまで到達したか否かを判定し(ステップB6)、最終アドレスに到達するまで上記読出し動作を繰り返す。
【0058】
図8は、
図3に示したコネクション・スイッチブロックの一構成例を示す回路図である。
【0059】
コネクション・スイッチブロック223は、プログラマブル論理集積回路1のコンフィグレーション・モード及びリード・モードにおいて、入力配線A0〜A3と列配線VL0〜VL6とを一時的に切断する。これにより、他のセグメントからの出力電圧と、書き込み及び読み出し時に印加されるバイアス電圧との競合を避けることができる。
【0060】
また、コネクション・スイッチブロック223は、プログラマブル論理集積回路1のアプリケーション・モードにおいて、書き込み不良を起こしたスイッチセル(不良スイッチ)と接続される列配線VLを入力配線Aから電気的に切断する。これにより、書き込まれた構成情報と異なるオン固定のスイッチセルが発生しても、その不良スイッチを介して短絡される配線による故障を回避できる。コネクション・スイッチブロック223の動作はコントローラ7によって制御される。
【0061】
図8に示すヒューズ回路E0〜E3は、列配線VL0〜VL3毎に設けられ、対応する列配線VL0〜VL3で発生した不良スイッチの有無を示す値をそれぞれ保持する。各ヒューズ回路E0〜E3のデフォルト値は0(例えば、ロウレベル)であり、これは対応する列配線に不良スイッチが存在しない場合に相当する。不良スイッチが発生すると、該不良スイッチを含む列配線に対応するヒューズ回路の値が1(例えば、ハイレベル)にセットされる。
【0062】
コンフィグレーション・モード及びリード・モード(/APP=1)では、ヒューズ回路E0の値に関係なく、トランジスタM0はオフ状態となり、入力配線A0と列配線VL0とが非導通状態となる。列配線VL0に不良スイッチが存在しない場合(E0=0)、アプリケーション・モード(/APP=0)では、トランジスタM0がオン状態となって入力配線A0と列配線VL0とが導通状態となる。一方、列配線VL0に不良スイッチが存在する場合(E0=1)、トランジスタM0はオフ状態となり、入力配線A0と列配線VL0とが非導通状態となる。
【0063】
ヒューズ回路E0〜E3は、不良スイッチの有無を示す値を保持する記憶素子、並びに入力配線と第1のクロスバー・スイッチブロック221とを接続または切断するスイッチ素子として機能する。
【0064】
図9は、
図8に示したヒューズ回路の一構成例を示す回路図である。
【0065】
図9(a)に示すヒューズ回路は、2個のスイッチセルS0及びS1を備えた構成である。スイッチセルS0は接地線0(行配線)と出力線E(列配線)とを接続または切断し、スイッチセルS1は電源線1(列配線)と出力線Eとを接続または切断する。
【0066】
スイッチセルS0及びS1には、例えば
図4に示した抵抗変化素子が用いられる。
図9(a)に示すヒューズ回路の値を0に設定するには、スイッチセルS0をオン状態にセットし、スイッチセルS1をオフ状態にリセットする(これがデフォルト状態である)。また、
図9(a)に示すヒューズ回路の値を1に設定するには、スイッチセルS0をオフ状態にリセットし、スイッチセルS1をオン状態にリセットする。
【0067】
図9(a)に示すヒューズ回路は最も簡単な構成例である。しかしながら、
図9(a)に示すヒューズ回路では、抵抗変化素子のデフォルト状態(初期状態)がオフであるため、スイッチセルS0またはS1のいずれか一方を必ずセットする必要がある。
【0068】
図9(b)に示すヒューズ回路は1つのスイッチセルS1を備えた構成例である。スイッチセルS1は電源線1(列配線)と行配線HLとを接続または切断する。
図9(b)に示すヒューズ回路の値を0に設定するにはスイッチセルS1をオフ状態にリセットし、1に設定するにはスイッチセルS1をオン状態にセットする。
図9(b)に示すヒューズ回路では、抵抗変化素子のデフォルト状態(初期状態)がオフであるため、その後の検査等で不良スイッチが発見され、ヒューズ回路を1に設定する必要があるときにのみスイッチセルS1をセットすればよい。
【0069】
図9(b)に示すヒューズ回路では、スイッチセルS1がオフ(デフォルト状態)であるとき、HL配線の電位が不定となるのを避けるため、アプリケーション・モードにエントリーするときには、ヒューズ回路を一旦リセットする必要がある。
【0070】
例えばRST=1の時、トランジスタM1がオン状態となって行配線HLをロウレベル(0)に引き下げる。アプリケーション・モード(APP=1)では、トランジスタM2及びM3がオン状態であるため、スイッチセルS1がオフ状態である限り、RST=0に戻してもHL=0が保持される。すなわち、ヒューズ回路は0を出力する。一方、スイッチセルS1がオン状態の時、RST=0に戻すと、HL=1にセットされる、すなわちヒューズ回路は1を出力する。
【0071】
図10は、
図3に示したロジックブロックの一構成例を示す回路図である。プログラマブル論理集積回路1は、ロジックブロック21に2つの2入力ルックアップテーブル(LUT0、LUT1)を含むものとする。
【0072】
ロジックブロック21の出力Y0からは、信号SEL0によってLUT0の出力T0、またはT0を入力とするD−フリップフロップ(DFF)の出力Q0の一方が選択されて出力される。同様に、ロジックブロック21の出力Y1からは、信号SEL1によってLUT1の出力T1、またはT1を入力とするDFFの出力Q1の一方が選択されて出力される。行配線HL0〜HL3はLUT0に入力され、行配線HL5〜HL8はLUT1に入力される。行配線HL0〜HL8は、抵抗変化素子を含むスイッチセルにより、LUT0及びLUT1に設定された真理値情報にしたがって、プルアップ(1固定値)またはプルダウン(0固定値)される。例えば、行配線HL0=0、HL1=0、HL2=0、HL3=1の場合、LUT0からはAND論理が出力される。行配線HL4、HL9は、それぞれSEL0、SEL1の値に対応してプルアップまたはプルダウンされる。
【0073】
なお、
図10では、説明を容易にするために、ロジックブロック21が2つの2入力ルックアップテーブルを備えた構成例を示している。一般的なロジックブロック21では、3入力ルックアップテーブルや4入力ルックアップテーブルが用いられる。また、一般的なロジックブロック21は8個程度のルックアップテーブルを備えている。
【0074】
ところで、上述したように抵抗変化素子で発生する不良には、オフ状態に書き換えることができないリセット不良(オン固定)と、オン状態に書き換えることができないセット不良(オフ固定)とがある。
【0075】
図11は、クロスバー・スイッチブロックが備えるスイッチセルにてセット不良(オフ固定)が発生したときの一例と、その対処方法の一例とを示す模式図である。ここでは、構成情報にしたがって配線A1と配線B1とが接続され、かつ配線A2と配線B2とが接続される例で説明する。その場合、配線A1と配線B1とを接続するためにスイッチセルS11がオン状態に書き換えられ、配線A2と配線B2とを接続するためにスイッチセルS22がオン状態に書き換えられる。スイッチセルS11及びS22以外のその他のスイッチセルは全てオフ状態に書き換えるものとする。
【0076】
図11(a)は、スイッチセルS22においてセット不良が発生した例を示している。この場合、配線A2から配線B2へ信号を伝送できない故障が発生する。
【0077】
上記故障を回避するには、構成情報を変更して、例えば
図11(b)に示すような迂回経路を形成すればよい。
図11(b)は、スイッチセルS20をオン状態にセットして、配線A2から配線B2への経路を配線A0から配線B2への迂回経路に変更する様子を示している。この場合、
図11(b)に示すクロスバー・スイッチブロックに対して、配線A2ではなく、配線A0へ信号を出力するように、他のロジックブロック21の構成情報も変更する。
【0078】
また、他の迂回経路の候補としては、スイッチセルS32をオン状態にセットして、配線A2から配線B3への経路を形成することが考えられる。この場合、
図11(b)に示すクロスバー・スイッチブロックに対して、配線B2ではなく、配線B3へ信号を入力するように他のロジックブロック21の構成情報も変更する。
【0079】
セット不良が発生した場合、該セット不良が発生したスイッチセル224は使用できないが、該スイッチセル224が接続される行配線あるいは列配線に該セット不良が影響することはない。したがって、構成情報を変更する場合はセット不良が発生したスイッチセル224を使用しないように迂回経路を形成すればよい。また、セット不良が発生した場合、コネクション・スイッチブロック223では、該セット不良のスイッチセル224を含む列配線VL2を入力配線A2から切断する必要はない。したがって、
図8に示したコネクション・スイッチブロック223のヒューズ回路E2の設定値は0のままでよい。
【0080】
図12は、クロスバー・スイッチブロックが備えるスイッチセルにてリセット不良(オン固定)が発生したときの一例と、その対処方法の一例とを示す模式図である。ここでは、
図11に示したセット不良の発生時と同様に、構成情報にしたがって配線A1と配線B1とが接続され、かつ配線A2と配線B2とが接続される例で説明する。その場合、配線A1と配線B1とを接続するためにスイッチセルS11がオン状態に書き換えられ、配線A2と配線B2とを接続するためにスイッチセルS22がオン状態に書き換えられる。スイッチセルS11及びS22以外のその他のスイッチセルは全てオフ状態に書き換えるものとする。
【0081】
図12(a)は、スイッチセルS12においてリセット不良が発生した例を示している。この場合、4本の配線VL1、HL1、VL2、HL2が、オン状態のスイッチセルS11、S12、S22によって短絡する。すなわち、配線A1、A2、B1、B2が短絡する故障が生じる。
【0082】
上記故障を回避するには、構成情報を変更して迂回経路を形成すると共に、リセット不良が発生したスイッチセルを含む列配線VL2を入力配線A2から切り離す必要がある。
図12(b)は、スイッチセルS20をオン状態にセットして、配線A2から配線B2への経路を配線A0から配線B2への迂回経路へ変更する例を示している。また、
図12(b)では、コネクション・スイッチブロック223のヒューズ回路E2を1に変更して、配線A2と配線VL2とを電気的に切断している。このように構成情報を変更することで、配線A1から配線B1への信号経路と、配線A0から配線B2への信号経路とが確立する。
【0083】
上述したように、リセット不良が発生した場合、該リセット不良が発生したスイッチセル224を含む行配線または列配線は、該スイッチセル224を介して他の行配線または列配線と意図せずに短絡する不良(道連れ不良)を引き起こす。したがって、リセット不良のスイッチセル224とそれが接続される列配線(または行配線)とを使用しないように迂回経路を構成する必要がある。また、リセット不良のスイッチセル224を含む列配線を入力配線から切り離すようにコネクション・スイッチブロック223が備えるヒューズ回路を設定する必要がある。
【0084】
(第2の実施の形態)
図13は、第2の実施の形態のプログラマブル論理集積回路が備えるセグメントの一構成例を示すブロック図である。
【0085】
図13に示すように、第2の実施の形態のプログラマブル論理集積回路1は、入力配線A0〜A3、出力配線Y0〜Y1及び接地線と、列配線VL0〜VL6とを接続または切断するコネクション・スイッチブロック(第1のコネクション・スイッチブロック226)に加えて、行配線HL0〜HL9とロジックブロック21の入力端子及び出力バッファの入力端子とを接続または切断する第2のコネクション・スイッチブロック227を有する点で第1の実施の形態と異なる。第1のクロスバー・スイッチブロック221は第1の方向へ延在する冗長の行配線(第1の冗長配線)HL4を備え、第2のクロスバー・スイッチブロック222は第1の方向へ延在する冗長の行配線(第1の冗長配線)HL9を備えた構成である。
【0086】
第2のコネクション・スイッチブロック227は、不良スイッチの有無を示す値を保持する記憶素子及びスイッチ素子として機能するヒューズ回路を備えている。セグメントのその他の構成は、
図5に示した第1の実施の形態と同様である。
【0087】
図14は、
図13に示した第1のコネクション・スイッチブロックの一構成例を示す回路図である。
【0088】
第1のコネクション・スイッチブロック226は、コンフィグレーション・モード及びリード・モードにおいて(/APP=1)、入力配線A0〜A3、出力配線Y0〜Y1及び接地線と、列配線VL0〜VL6とを一時的に接続または切断する。これにより、他のセグメントからの出力電圧と、書き込み及び読み出し時に印加されるバイアス電圧との競合を回避できる。
【0089】
また、第1のコネクション・スイッチブロック226は、アプリケーション・モードにおいて(/APP=0)、入力配線A0〜A3、出力配線Y0〜Y1及び接地線と、列配線VL0〜VL6とを接続する。第1のコネクション・スイッチブロック226は、第1の実施の形態のコネクション・スイッチブロック223と異なり、不良スイッチを含む列配線を入力配線から切り離す機能は有しない。
【0090】
図15は、
図13に示した第2のコネクション・スイッチブロックの一構成例を示す回路図である。
【0091】
第2のコネクション・スイッチブロック227は、クロスバー・スイッチブロックが備えるスイッチセル224で不良が発生した場合に、当該スイッチセル(不良スイッチ)224が接続される行配線を隣接する行配線に置き換える。例えば、第1のクロスバー・スイッチブロック221及び第2のクロスバー・スイッチブロック222で不良スイッチが発生していない場合、トランジスタM0、M2、M4、M6がオンされ、トランジスタM1、M3、M5、M7がオフされて、行配線HL0〜HL3が出力配線S0〜S3に接続される。
【0092】
一方、例えば、行配線HL2のスイッチセル224で不良スイッチが発生した場合、トランジスタM0、M2、M5、M7がオンされ、トランジスタM1、M3、M4、M6がオフされて、行配線HL2がHL3に置き換えられ、行配線HL3がHL4に置き換えられる。すなわち、行配線HL0が出力配線S0に接続され、行配線HL1が出力配線S1に接続され、行配線HL3が出力配線S2に接続され、行配線HL4が出力配線S3に接続され、不良スイッチを含む行配線HL2はどの出力配線にも接続されない。
【0093】
第1のコネクション・スイッチブロック226及び第2のコネクション・スイッチブロック227の接続情報は、
図9に示したヒューズ回路で保存される。ヒューズ回路は列配線及び行配線毎に設けられ、第2のコネクション・スイッチブロック227はヒューズ回路の設定値により、対応する行配線を隣接する行配線に置き換えるか否かが決定される。例えば、E=0の時は対応する行配線を隣接する行配線に置き換えず、E=1の時は対応する行配線を隣接する行配線に置き換える。
【0094】
第1のクロスバー・スイッチブロック221及び第2のクロスバー・スイッチブロック222で不良スイッチが発生していない場合は全てのヒューズ回路E0〜E3が0に設定される。各行配線に昇順に番号が付与され、第1のクロスバー・スイッチブロック221及び第2のクロスバー・スイッチブロック222で不良スイッチが発生している場合、該不良スイッチを含む行配線とその行配線よりも1大きい行配線のヒューズ回路が1に設定される。例えば、行配線HL2で不良スイッチが発生した場合、E0=0、E1=0、E2=1、E3=1となる。
【0095】
図16は、クロスバー・スイッチブロックが備えるスイッチセルでセット不良(オフ固定)が発生したときの一例と、その対処方法の一例とを示す模式図である。
【0096】
ここでは、構成情報にしたがって配線A0と配線B0とが接続され、配線A1と配線B1とが接続され、配線A2と配線B2とが接続され、配線A3と配線B3とが接続される例で説明する。その場合、スイッチセルS00、S11、S22、S33がオン状態に書き換えられ、他のスイッチセルが全てオフ状態に書き換えられる。
図16(a)は、スイッチセルS22においてセット不良が発生した様子を示している。この場合、配線A2から配線B2へ信号を伝送できない故障が生じる。
【0097】
上記故障を回避するには、構成情報を、例えば
図16(b)に示すように変更して迂回経路を形成すればよい。
図16(b)に示す例では、スイッチセルS22の代わりにスイッチセルS32をオン状態とし、スイッチセルS33の代わりにスイッチセルS43をオン状態とする構成情報に変更している。また、第2のコネクション・スイッチブロック227では、行配線HL3と配線B2とが接続され、行配線HL4と配線B3とが接続されるようにヒューズ回路が設定される。すなわち、E0=0、E1=0、E2=1、E3=1となる構成情報に変更する。以上の構成情報の変更により、配線A2と配線B2とが導通状態となるため、所望の信号経路を確保できる。
【0098】
図17は、クロスバー・スイッチブロックが備えるスイッチセルでリセット不良(オン固定)が発生したときの一例と、その対処方法の一例とを示す模式図である。ここでは、
図16に示したセット不良の発生時と同様に、構成情報にしたがって配線A0と配線B0とが接続され、配線A1と配線B1とが接続され、配線A2と配線B2とが接続され、配線A3と配線B3とが接続される例で説明する。その場合、スイッチセルS00、S11、S22、S33がオン状態に書き換えられ、他のスイッチセルが全てオフ状態に書き換えられる。
【0099】
図17(a)は、スイッチセルS21においてリセット不良が発生した様子を示している。この場合、4本の配線VL1、HL1、VL2、HL2がオン状態のスイッチセルS11、S21、S22によって短絡する。すなわち、配線A1、A2、B1、B2が短絡して、配線A1から配線B1、配線A2から配線B2へ信号を正常に伝送できない故障が生じる。
【0100】
上記故障を回避するには、構成情報を、例えば
図17(b)に示すように変更して迂回経路を形成すればよい。
図17(b)に示す例では、スイッチセルS22の代わりにスイッチセルS32をオン状態にし、スイッチセルS33の代わりにスイッチセルS43をオン状態にする構成情報に変更する。また、第2のコネクション・スイッチブロック227では、行配線HL3が出力配線B2と接続され、行配線HL4が出力配線B3と接続されるようにヒューズ回路が設定される。すなわち、E0=0、E1=0、E2=1、E3=1に設定する。
【0101】
このように変更すると、行配線HL1とHL2の短絡は解消されないが、行配線HL2が出力配線B2から切り離されるため、上記故障を回避できる。したがって、入力配線A1と出力配線B1、入力配線A2と出力配線B2とが導通状態となって、所望の信号経路を確保できる。
【0102】
第2の実施の形態によれば、一つのセグメントにおける入力配線と出力配線の接続関係を変更することなく維持できる。これは、他のセグメントの構成情報を変更する必要が無いことを意味するため、不良が発生したセグメントの構成情報だけを変更すればよいという利点を有する。
【0103】
(第3の実施の形態)
図18は、第3の実施の形態のプログラマブル論理集積回路が備えるセグメントの一構成例を示すブロック図である。
【0104】
図18に示すように、第3の実施の形態のプログラマブル論理集積回路1は、コネクション・スイッチブロック223が第2の方向へ延在する冗長の列配線(第2の冗長配線)VL7を備え、列配線VL0〜VL7と入力配線A0〜A3との接続を切り替える点で第1及び第2の実施の形態と異なっている。
【0105】
コネクション・スイッチブロック223は、不良スイッチの有無を示す値を保持する記憶素子及びスイッチ素子として機能するヒューズ回路を備えている。セグメントのその他の構成は、
図5に示した第1の実施の形態と同様である。
【0106】
図19は、
図18に示したコネクション・スイッチブロックの一構成例を示す回路図である。
【0107】
図19に示すように、第3の実施の形態のコネクション・スイッチブロック223は、コンフィグレーション・モード及びリード・モードにおいて(/APP=1)、全ての入力配線A0〜A3と全ての列配線VL0〜VL3とを一時的に切断する。これにより、他のセグメントからの出力電圧と、書き込み及び読み出し時に印加されるバイアス電圧との競合を避けることができる。また、コネクション・スイッチブロック223は、第1のクロスバー・スイッチブロック221及び第2のクロスバー・スイッチブロック222のスイッチセル224で不良が発生した場合に、該不良スイッチと接続される列配線を隣接する列配線と置き換える。クロスバー・スイッチブロックで不良スイッチが発生していない場合、トランジスタM0、M2、M4、M6、M8、M10、M12がオン状態に設定され、トランジスタM1、M3、M5、M7、M9、M11、M13はオフ状態に設定されて、入力配線A0〜A3が列配線VL0〜VL3に接続され、Y0〜Y1が列配線VL4〜VL5に接続され、接地線0がVL6に接続される。
【0108】
一方、例えば列配線VL2に接続されるスイッチセル224で不良スイッチが発生した場合、トランジスタM0、M2、M5、M7、M9、M11、M13はオン状態に設定され、トランジスタM1、M3、M4、M6、M8、M10、M12はオフ状態に設定されて、列配線VL2がVL3に置き換えられ、列配線VL3がVL4に置き換えられ、列配線VL4がVL5に置き換えられ、列配線VL6がVL7に置き換えられる。すなわち、不良スイッチを含む列配線VL2はどの入力配線にも接続されない。
【0109】
コネクション・スイッチブロック223の接続情報は、
図9に示したヒューズ回路で保存される。ヒューズ回路は列配線毎に設けられ、ヒューズ回路の設定値によって、それに対応する列配線を隣接する列配線に置き換えるか否かが決定される。例えば、E=0の時は該ヒューズ回路に対応する列配線が隣接する列配線に置き換えられず、E=1の時は該ヒューズ回路に対応する列配線が隣接する列配線に置き換えられる。
【0110】
第1のクロスバー・スイッチブロック221及び第2のクロスバー・スイッチブロック222のスイッチセル224で不良が発生していない場合、全てのヒューズ回路E0〜E6は0に設定される。
【0111】
各列配線に昇順に番号が付与され、第1のクロスバー・スイッチブロック221及び第2のクロスバー・スイッチブロック222のスイッチセル224で不良が発生している場合、当該不良スイッチが接続される列配線とその列配線よりも1大きい列配線のヒューズ回路が1に設定される。例えば、列配線VLに不良スイッチがある場合、E0=0、E1=0、E2=1、E3=1、E4=1、E5=1、E6=1となる。
【0112】
図20は、クロスバー・スイッチブロックが備えるスイッチセルでセット不良(オフ固定)が発生したときの一例と、その対処方法の一例とを示す模式図である。
【0113】
ここでは、構成情報にしたがって配線A0と配線B0とが接続され、配線A1と配線B1とが接続され、配線A2と配線B2とが接続され、配線A3と配線B3とが接続される例で説明する。その場合、スイッチセルS00、S11、S22及びS33がオン状態に書き換えられ、他のスイッチセルが全てオフ状態に書き換えられる。
図20(a)は、スイッチセルS22においてセット不良が発生した様子を示している。この場合、配線A2から配線B2へ信号を伝送できない故障が発生する。
【0114】
上記故障を回避するには、構成情報を、例えば
図20(b)に示すように変更して迂回経路を形成すればよい。
図20(b)に示す例では、スイッチセルS22の代わりにスイッチセルS23をオン状態とし、スイッチセルS33の代わりにスイッチセルS34をオン状態に変更している。また、コネクション・スイッチブロック223では、配線A2と列配線VL3とが接続され、配線A3と列配線VL4とが接続され、配線Y0と列配線VL5とが接続され、配線Y1と列配線VL6とが接続され、接地線0が列配線VL7と接続されるようにヒューズ回路が設定される。すなわち、E0=0、E1=0、E2=1、E3=1、E4=1、E5=1、E6=1となる構成情報に変更する。以上の構成情報の変更により、配線A2と配線B2とが導通状態となるため、所望の信号経路を確保できる。
【0115】
図21は、クロスバー・スイッチブロックが備えるスイッチセルでリセット不良(オン固定)が発生したときの一例と、その対処方法の一例とを示す模式図である。ここでは、
図20に示したセット不良の発生時と同様に、構成情報にしたがって配線A0と配線B0とが接続され、配線A1と配線B1とが接続され、配線A2と配線B2とが接続され、配線A3と配線B3とが接続される例で説明する。その場合、スイッチセルS00、S11、S22及びS33がオン状態に書き換えられ、他のスイッチセルが全てオフ状態に書き換えられる。
図21(a)は、スイッチセルS12においてリセット不良が発生した様子を示している。この場合、4本の配線VL1、HL1、VL2、HL2が、オン状態のスイッチS11、S12、S22によって短絡する。すなわち、配線A1、A2、B1及びB2が短絡し、A1からB1、A2からB2へ信号を正常に伝送できない故障が生じる。
【0116】
上記故障を回避するには、構成情報を、例えば
図21(b)に示すように変更して迂回経路を形成すればよい。
図21(b)に示す例では、スイッチセルS22の代わりにスイッチセルS23をオン状態にし、スイッチセルS33の代わりにスイッチセルS34をオン状態に変更している。また、コネクション・スイッチブロック223では、配線A2と列配線VL3とが接続され、配線A3と列配線VL4とが接続され、配線Y0と列配線VL5とが接続され、配線Y1と列配線VL6とが接続され、接地線0が列配線VL7と接続されるようにヒューズ回路が設定される。すなわち、E0=0、E1=0、E2=1、E3=1、E4=1、E5=1、E6=1となる構成情報に変更する。
【0117】
このように変更すると、列配線VL1とVL2の短絡は解消されないが、列配線VL2が入力配線A2から切り離されるため、上記故障を回避できる。したがって、入力配線A1と出力配線B1、入力配線A2と出力配線B2とが導通状態となって、所望の信号経路を確保できる。
【0118】
第3の実施の形態によれば、第2の実施の形態と同様に、一つのセグメントにおける入力配線と出力配線の接続関係を変更することなく維持できる。これは、他のセグメントの構成情報を変更する必要が無いことを意味するため、不良が発生したセグメントの構成情報だけを変更すればよいという利点を有する。
【0119】
(第4の実施の形態)
図22は、第4の実施の形態のプログラマブル論理集積回路が備えるセグメントの一構成例を示すブロック図である。
【0120】
図22に示すように、第4の実施の形態のプログラマブル論理集積回路1は、第2の実施の形態と同様に、入力配線A0〜A3、出力配線Y0〜Y1及び接地線と、列配線VL0〜VL6とを接続または切断する第1のコネクション・スイッチブロック226と、行配線HL0〜HL9とロジックブロック21の入力端子及び出力バッファの入力端子とを接続または切断する第2のコネクション・スイッチブロック227とを有する。第1のクロスバー・スイッチブロック221は冗長の行配線(第1の冗長配線)HL4を備え、第2のクロスバー・スイッチブロック222は冗長の行配線(第1の冗長配線)HL9を備えている。さらに、第4の実施の形態のプログラマブル論理集積回路1は、第3の実施の形態と同様に、コネクション・スイッチブロック(第1のコネクション・スイッチブロック226)が冗長の列配線(第2の冗長配線)VL7を備え、列配線VL0〜VL7と入力配線A0〜A3との接続が切り替え可能な構成である。
【0121】
第1のコネクション・スイッチブロック226は、不良スイッチの有無を示す値を保持する第1の記憶素子及び第1のスイッチ素子として機能するヒューズ回路を備えている。第2のコネクション・スイッチブロック227は、不良スイッチの有無を示す値を保持する第2の記憶素子及び第2のスイッチ素子として機能するヒューズ回路を備えている。セグメントのその他の構成は、
図5に示した第1の実施の形態と同様である。
【0122】
第1のコネクション・スイッチブロック221は、コンフィグレーション・モード及びリード・モードにおいて(/APP=1)、入力配線A0〜A3、出力配線Y0〜Y1及び接地線と、列配線VL0〜VL6とを一時的に接続または切断する。また、第1のコネクション・スイッチブロック226は、第1のクロスバー・スイッチブロック221及び第2のクロスバー・スイッチブロック222で不良スイッチが発生した場合に、該不良スイッチと接続される列配線を隣接する列配線と置き換える。
【0123】
本実施形態の第1のコネクション・スイッチブロック226は、
図19に示した第3の実施の形態のコネクション・スイッチブロック223と同様の構成である。また、不良スイッチを含む列配線を置き換えるための方法も第3の実施の形態と同様である。
【0124】
第2のコネクション・スイッチブロック227は、第1のクロスバー・スイッチブロック221及び第2のクロスバー・スイッチブロック222で不良スイッチが発生した場合に、該不良スイッチが接続される行配線を隣接する行配線に置き換える。
【0125】
本実施形態の第2のコネクション・スイッチブロック227は、
図15に示した第2の実施の形態のコネクション・スイッチブロック223と同様の構成である。また、不良スイッチを含む行配線を置き換えるための方法も第2の実施の形態と同様である。
【0126】
図23は、クロスバー・スイッチブロックが備えるスイッチセルでリセット不良(オン固定)が発生したときの一例と、その対処方法の一例とを示す模式図である。ここでは、構成情報にしたがって配線A0と配線B0とが接続され、配線A1と配線B1とが接続され、配線A2と配線B2とが接続され、配線A3と配線B3とが接続される例で説明する。その場合、スイッチセルS00、S11、S22、S33がオン状態に書き換えられ、他のスイッチセルが全てオフ状態に書き換えられる。
図23(a)は、スイッチセルS12においてリセット不良が発生した様子を示している。この場合、4本の配線VL1、HL1、VL2、HL2が、オン状態のスイッチS11、S12、S22によって短絡する。すなわち、配線A1、A2、B1及びB2が短絡し、A1からB1、A2からB2へ信号を正常に伝送できない故障が生じる。
【0127】
上記故障を回避するには、不良スイッチが接続される行配線と、それよりも行番号が大きい行配線の構成情報とを隣接する行配線にコピーする。さらに、不良スイッチが接続される列配線と、それよりも列番号が大きい列配線の構成情報とを隣接する列配線にコピーする。すなわち、構成情報を、例えば
図23(b)に示すように変更して迂回経路を形成すればよい。
図23(b)に示す例では、スイッチセルS11の代わりにスイッチセルS21をオン状態にし、スイッチセルS22の代わりにスイッチセルS33をオン状態にし、スイッチセルS33の代わりにスイッチセルS44をオン状態に変更している。また、第1のコネクション・スイッチブロック226では、入力配線A0と列配線VL0とが接続され、入力配線A1と列配線VL1とが接続され、入力配線A2と列配線VL3とが接続され、入力配線A3と列配線VL4とが接続され、配線Y0と列配線VL5とが接続され、配線Y1と列配線VL6とが接続され、接地線0と列配線VL7とが接続されるようにヒューズ回路が設定される。さらに、第2のコネクション・スイッチブロック227では、行配線HL0と出力配線B0と接続され、行配線HL2と出力配線B1とが接続され、行配線HL3と出力配線B2とが接続され、行配線HL4と出力配線B3とが接続されるようにヒューズ回路が設定される。
【0128】
以上説明したように構成情報を変更することで、不良スイッチを含む列配線VL2が入力配線A2から切り離され、不良スイッチを含む行配線HL1が出力配線B1から切り離される。したがって、行配線HL2を介した迂回経路により配線A1から配線B1の信号経路が形成され、列配線VL3及び行配線HL3を介した迂回経路により配線A2から配線B2の信号経路が形成され、列配線VL4及び行配線HL4を介した迂回経路により配線A3から配線B3の信号経路が形成されて、上記故障が解消される。
【0129】
上述した第1〜第3の実施の形態では、リセット不良(オン固定)が発生したスイッチセル224が常時オンしていることで、配線負荷が増大する信号経路が発生する可能性がある。これは、プログラマブル論理集積回路の信号遅延や消費電力の増大を招くために好ましくない。
【0130】
第4の実施の形態では、リセット不良が発生したスイッチセル224と接続される行配線及び列配線が入出力配線から完全に切り離される。したがって、プログラマブル論理集積回路の信号遅延や消費電力の増大が抑制される。
【0131】
なお、第4の実施の形態では説明を省略したが、セット不良(オフ固定)が発生した場合は第2及び第3の実施の形態で説明した対処方法を適用できる。例えば、セット不良が発生した場合は、第2のコネクション・スイッチブロック227のヒューズ回路の設定を変更して、セット不良が発生したスイッチセルを含む行配線を隣接する行配線と置き換えてもよい。または、第1のコネクション・スイッチブロック226のヒューズ回路の設定を変更して、セット不良が発生したスイッチセルを含む列配線を隣接する列配線と置き換えてもよい。
【0132】
本発明のプログラマブル論理集積回路1は、以上説明した第1の実施の形態〜第4の実施の形態に限定されるものではなく、本発明の技術思想の範囲内で適宜変更してもよい。
【0133】
例えば、抵抗変化素子は、電源電圧が供給されていないときでも低抵抗状態と高抵抗状態とを保持できればよく、固体電解質抵抗素子、金属酸化物抵抗素子、相変化抵抗素子または磁気抵抗素子等を用いてもよい。
【0134】
また、
図10に示したロジックブロック21において、LUT回路のクロスバー・スイッチブロックに冗長配線及び冗長スイッチセルを備えると共に、コネクション・スイッチブロックを備え、不良スイッチが発生した場合は、該不良スイッチが接続される配線を冗長配線と置換えるように変更してもよい。
【0135】
さらに、
図8、
図15、
図19に示したコネクション・スイッチブロックにおいて、入出力配線と行列配線との接続を切り替えるスイッチ手段として用いたトランジスタの代わりに抵抗変化素子を用いてもよい。
【0136】
(第5の実施の形態)
第5の実施の形態では、上述した第1〜第4の実施の形態で示したプログラマブル論理集積回路1に実装する回路の形成に必要な構成情報の設計を支援する設計支援システムについて説明する。
【0137】
図24は、本発明の設計支援システムの一構成例を示すブロック図である。
【0138】
図24に示すように、設計支援システム10は、演算装置11、記憶装置12、表示装置13及び入出力装置14を備え、演算装置11、記憶装置12、表示装置13及び入出力装置14がバス15を介して互いに接続された構成である。設計支援システム10は、例えばコンピュータシステムによって実現される。設計支援システム10には、構成情報転送装置16及びプログラマブル論理集積回路1が有線または無線による周知の通信手段を用いて通信可能に接続される。プログラマブル論理集積回路1及び構成情報転送装置16は、アプリケーション・ボードとして設計支援システム10に搭載されていてもよい。
【0139】
演算装置11は、予め記憶装置12に保存されたプログラムにしたがって処理を実行することで、設計支援システム10全体の動作を制御する。また、演算装置11は、予め記憶装置12に保存されたプログラムにしたがって処理を実行することで、後述する設計支援ツール群100の機能を実現する。
【0140】
記憶装置12には設計情報やプログラムが格納される。設計情報は、プログラマブル論理集積回路1に実装する、設計者が作成する回路の動作記述情報、制約条件情報等を含む。また、設計情報には、後述する演算装置11の処理結果であるネットリスト情報、配置配線情報、遅延・電力解析結果、プログラマブル論理集積回路1のリソース情報や構成情報、書換え履歴情報等を含む。
【0141】
表示装置13は、設計支援ツールの命令入力画面や該設計支援ツールによる処理結果を表示する。
【0142】
入出力装置14は、キーボード、マウス等の入力装置、並びに構成情報転送装置16、印刷装置等の出力装置と信号やデータを送受信するインタフェース回路である。
【0143】
構成情報転送装置16は、設計支援システム10及びプログラマブル論理集積回路1と接続され、設計支援システム10とプログラマブル論理集積回路1間の構成情報等のデータ伝送を制御する。例えば、設計支援システム10から送信された構成情報等のデータを受信し、プログラマブル論理集積回路1のデータ入出力仕様の送信データに変換して転送する。また、プログラマブル論理集積回路1から出力された構成情報等のデータを受信し、設計支援システム10のデータ入出力仕様の送信データに変換して転送する。
【0144】
図25は、
図24に示した設計支援システムが備える設計支援ツール群の一構成例を示すブロック図である。
【0145】
図25に示すように、設計支援ツール群100は、論理合成ツール101、配置配線ツール102、遅延電力解析ツール103、リソース設定ツール104、欠陥解析ツール105及び書換え履歴解析ツール106を備える。
【0146】
配置配線ツール102及び遅延電力解析ツール103は本発明の設計支援システムが備える構成情報生成手段の一例であり、リソース設定ツール104は本発明の設計支援システムが備えるリソース設定手段の一例である。また、欠陥解析ツール105は本発明の設計支援システムが備える欠陥情報生成手段の一例であり、書換え履歴解析ツール106は本発明の設計支援システムが備える書換え履歴情報生成手段の一例である。
【0147】
論理合成ツール101は、設計者によって入力された動作記述情報及び遅延・電力等の制約条件情報を参照して、論理合成を行う。設計者は、本ツールによりネットリストを得ることができる。ネットリストはプログラマブル論理集積回路1が備える各要素回路の接続情報である。
【0148】
配置配線ツール102は、ネットリストに含まれる、プログラマブル論理集積回路1が備える各要素回路をプログラマブル論理集積回路1のリソース情報に基づいて疑似的に配置・配線する。設計者は、本ツールにより構成情報を得ることができる。
【0149】
遅延電力解析ツール103は、構成情報を参照して設計者が作成する回路の最大遅延時間の解析や消費電力を計算する。設計者は、本ツールにより、プログラマブル論理集積回路1に所要の回路を実装したときの動作周波数や消費電力の値を知ることができる。
【0150】
リソース設定ツール104は、プログラマブル論理集積回路1から受信した構成情報に基づいてデバイス固有のリソース情報を作成する。リソース情報は、プログラマブル論理集積回路1に実装する回路で利用可能な回路要素を示す情報であり、プログラマブル論理集積回路1が備える要素回路やスイッチブロックに含まれる抵抗変化素子のアドレス情報、抵抗変化素子の欠陥(不良)の有無を示す情報等が含まれる。
【0151】
欠陥解析ツール105は、配置配線ツール102で生成された構成情報と、プログラマブル論理集積回路1から受信した構成情報とを比較し、設計者が作成する回路の実装対象であるプログラマブル論理集積回路1の欠陥(不良)の有無を示す情報(欠陥情報)を作成する。
【0152】
書換え履歴解析ツール106は、プログラマブル論理集積回路1から読み出された構成情報(内部構成情報)に基づいてデバイス固有の書換え履歴情報を作成する。書換え履歴情報には、プログラマブル論理集積回路1が備える要素回路やスイッチブロックに含まれる抵抗変化素子のアドレス情報と書換え回数情報を含む。
【0153】
図26は、本発明の設計支援システムを用いた論理設計手順の一例を示すフローチャートである。
図26は、回路Aが実装されたプログラマブル論理集積回路1に、該回路Aと異なる回路Bを実装する場合の処理手順の一例を示している。
【0154】
図26に示すように、設計支援システム10には、ハードウェア記述言語(例えば、Verilog−HDL、VHDL等)を用いて設計者が作成した回路Bの動作記述ファイルが入力される。
【0155】
設計支援システム10は、論理合成ツール101を用いて動作記述ファイルを論理合成し(ステップC1)、回路Bのネットリストを作成する。ネットリストは、プログラマブル論理集積回路1のロジックブロック21が備える要素回路であるLUTやDFF等を用いて作成される。ネットリストには各LUTの真理値情報も含まれる。論理合成ツール101は、設計者が予め設定したタイミング制約情報を満たすように回路を最適化する。
【0156】
論理合成ツール101によりネットリストが作成されると、設計支援システム10は、設計者の指示にしたがって、リソース設定ツール104を用いて欠陥情報に基づくリソース設定を実行する(ステップC2)。欠陥情報はデバイス固有の情報であり、後述する方法によって事前に作成される情報である。リソース設定は、コンフィグレーションを実施するデバイス(プログラマブル論理集積回路1)が変更される度に実行する必要がある。
【0157】
図27は、
図26に示したリソース設定の処理手順の一例を示すフローチャートである。
【0158】
図27に示すように、リソース設定ツール104は、まず欠陥情報からオン固定の不良素子(リセット不良が発生した素子、あるいはオン状態に固定された欠陥素子)を抽出し(ステップD1)、当該不良素子が置換可能であるか否かを検査する(ステップD2)。置換可能な状態とは、不良素子が存在するクロスバー・スイッチブロックにおいて、他に不良素子が存在せず、かつ冗長配線が利用されていない条件を満たす状態を指す。置換可能な場合は、不良素子を含む配線を隣接する配線に置き換え、冗長配線を利用するようにコネクション・スイッチブロックのヒューズ回路の設定値を確定する(ステップD3)。この設定値は、ヒューズ回路の抵抗変化素子に書き込む値であり、構成情報に含まれる。置換不可能な場合は、当該不良素子を含むクロスバー・スイッチブロック及び当該スイッチブロックを介して入力されるロジックブロック21をリソース情報から削除し(ステップD4及びD5)、後述する配置配線処理で利用しないようにする。
【0159】
次に、リソース設定ツール104は、欠陥情報からオフ固定の不良素子(セット不良が発生した素子、あるいはオフ状態に固定化された欠陥素子)を抽出し(ステップD6)、当該不良素子が置換可能であるか否かを検査する(ステップD7)。置換可能な場合は、不良素子を含む配線を隣接する配線に置き換え、冗長配線を利用するようにコネクション・スイッチブロックのヒューズ回路の設定値を確定する(ステップD8)。置換不可能な場合は、当該不良素子のスイッチセルをリソース情報から削除し、後述する配置配線処理で利用しないように設定する(ステップD9)。
【0160】
ネットリスト及びリソース情報が作成されると、設計支援システム10は、設計者の指示により、配置配線ツール102を用いてプログラマブル論理集積回路1に実装する回路Bの配置配線処理を実行し(ステップC3)、構成情報を作成する。配置配線処理において、配置配線ツール102は、ネットリストに記載された要素回路をプログラマブル論理集積回路1に物理的にどのように配置するかを決定する。また、配置配線ツール102は、ネットリストに記載された要素回路の接続情報に基づいて、物理的に配置された各要素回路を、配線スイッチを用いてどのように配線して接続するかを決定する。このとき、配置配線ツール102は、回路遅延が最小となるように使用する要素回路及び配線スイッチを最適に選択する。さらに、配置配線ツール102は、リソース情報を参照して、当該要素回路及び配線スイッチが使用不可能であれば他の要素回路及び配線スイッチを利用するように変更する。
【0161】
図28及び
図29を用いて、配置配線ツール102による処理について説明する。
【0162】
図28は、リソース情報に利用不可のスイッチブロック及びロジックブロックを含む場合の配置配線ツール102による一処理例を示す模式図である。
【0163】
図28に示す例では、第1のスイッチブロックがオン固定の不良スイッチを含み、リソース設定ツール104によって冗長配線に置き換え不可能と判断されて利用不可と判定されているものとする。また、第1のロジックブロックは、その入出力配線が第1のスイッチブロックに接続されているため、利用不可と判定されているものとする。
【0164】
図28(a)は、配置配線ツール102が、回路遅延が最小となる信号経路の候補として、第0のロジックブロックから第1のロジックブロックへの信号経路を選択した様子を示している。ここでは、上述したように第1のスイッチブロック及び第1のロジックブロックが利用不可のリソースであるため、配置配線ツール102は迂回経路を探索する処理を実行する。
【0165】
配置配線ツール102は、例えば第2のロジックブロックが未使用のリソースであることを検出し、第0のロジックブロックから第2のロジックブロックへの信号経路に置き換えるための処理を行う。最終的に、
図28(b)に示すように配線し、この信号経路が最良であると判定して構成情報を決定する。
【0166】
図29は、リソース情報に利用不可のスイッチセルを含む場合の配置配線ツールによる一処理例を示す模式図である。
【0167】
図29に示す例では、第1のスイッチセルがオフ固定の発生した不良スイッチであり、リソース設定ツール104によって冗長配線に置換え不可能と判断され、利用不可のスイッチセルとしてリソース情報に登録されているものとする。
【0168】
図29(a)は、配置配線ツール102が、回路遅延が最小となる信号経路の候補として、第1のスイッチセルをオン状態にして配線A1からB1への信号経路を選択したことを示している。ここでは、上述したように第1のスイッチセルが利用不可のリソースであるため、配置配線ツール102は迂回経路を探索する処理を実行する。
【0169】
配置配線ツール102は、例えば未使用の入力配線A2及び未使用の出力配線B2を検出し、第2のスイッチセルをオン状態にして配線A2からB2への信号経路に置き換えるための処理を行う。最終的に、
図29(b)に示すように配線し、この信号経路が最良であると判定して構成情報を決定する。
【0170】
配置配線ツール102によって構成情報が決定すると、設計支援システム10は、
図26に示す処理手順に戻り、設計者の指示により遅延電力解析ツール103を用いて該構成情報に基づく回路の遅延及び電力を解析する(ステップC4)。そして、設計者が予め設定した遅延及び電力の制約条件を満たしているか否かを判定し(ステップC5)、制約条件を満たしていれば、その構成情報が最終結果となる。制約条件を満たしていない場合は、ステップC3の処理へ戻って該制約条件を満たすまで配置配線処理を繰り返し実行する。
【0171】
最終的に回路Bの構成情報が決定すると、設計者によって構成情報転送装置16が設計支援システム10及びプログラマブル論理集積回路1と接続され、設計支援システム10とプログラマブル論理集積回路1との通信経路が確立する。決定した回路Bの構成情報は、構成情報転送装置16を介してプログラマブル論理集積回路1へ送信される。プログラマブル論理集積回路1は、構成情報転送装置から構成情報を受信すると、
図6に示した処理手順にしたがってコンフィグレーション動作を開始する(ステップC6)。全ての構成情報のコンフィグレーションが完了すると、プログラマブル論理集積回路1には回路Bが実装された状態となる。
【0172】
プログラマブル論理集積回路1に回路Bが実装されると、設計支援システム10は、設計者の指示により、欠陥解析ツール105を用いてプログラマブル論理集積回路1に書き込まれた構成情報を検証する。
【0173】
欠陥解析ツール105は、プログラマブル論理集積回路1に対して全てのスイッチセルの状態読み出しを指示し、プログラマブル論理集積回路1は該指示にしたがって全てのスイッチセルの状態を読み出す(ステップC7)。そして、読み出したスイッチセルの状態を示す構成情報(内部構成情報)を、構成情報転送装置16を介して設計支援システム10へ送信する。
【0174】
設計支援システム10は、プログラマブル論理集積回路1から読み出された内部構成情報を受信すると、欠陥解析ツール105を用いて、配置配線後の構成情報と、プログラマブル論理集積回路1から読み出された構成情報(内部構成情報)とを比較し(ステップC8)、両者が同一であるか否かを判定する(ステップC9)。両者が同一である場合はプログラマブル論理集積回路1に対するコンフィグレーション作業は完了となる。配置配線後の構成情報とプログラマブル論理集積回路1から読み出された構成情報とが異なる場合、欠陥解析ツール105は書き込み不良を含む欠陥が発生したと判定する。そして、欠陥解析ツール105は、書き込み不良が発生した欠陥箇所に対応するスイッチセルがオン固定であるかオフ固定であるかを解析し、該スイッチセルのアドレスとその解析結果(オン固定またはオフ固定)とを欠陥情報に追加記録することで該欠陥情報を更新する(ステップC10)。
【0175】
欠陥情報が更新されると、設計支援システムは、
図26のステップC2の処理に戻ってリソース設定ツール104によりリソース設定を再度実行し、配置配線ツール102により構成情報を再度作成する。
【0176】
構成情報の再作成時、配置配線ツール102は、リソース情報に新たに追加された利用不可のリソースに着目し、該リソースに関連する部位に対してのみ構成情報を修正する。再作成された構成情報はプログラマブル論理集積回路1に送信されてコンフィグレーションが実行される。このとき、再作成された構成情報の大部分は既にプログラマブル論理集積回路1に書き込まれている。
【0177】
したがって、
図6に示した処理手順によれば、プログラマブル論理集積回路1が備える多くのスイッチセル(抵抗変化素子)の書き換え動作を省略できる。
【0178】
プログラマブル論理集積回路1に対する再作成された構成情報のコンフィグレーションが終了すると、設計支援システム10は、設計者の指示により、欠陥解析ツール105を用いてプログラマブル論理集積回路1に書き込まれた構成情報を再度検証する。再作成された構成情報とプログラマブル論理集積回路1から読み出された構成情報とが一致すれば、該プログラマブル論理集積回路1には回路Bが正しく実装されているため、一連のコンフィグレーション作業が完了する。
【0179】
なお、プログラマブル論理集積回路1に対する構成情報のコンフィグレーションでは、ある特定の抵抗変化素子に書き換え動作が集中しないようにできれば、プログラマブル論理集積回路1の信頼性を向上させるために好ましい。
【0180】
図30は、欠陥情報を含むリソース情報と書換え履歴情報とを用いてプログラマブル論理集積回路に対する構成情報のコンフィグレーションを実行する場合の処理手順を示すフローチャートである。書換え履歴情報には、プログラマブル論理集積回路1が備える各抵抗変化素子のアドレスと、各抵抗変化素子の状態の書き換え回数を示す情報とが含まれる。
【0181】
図30は、先に回路Bの構成情報が書き込まれたプログラマブル論理集積回路1を、該回路Bとは異なる回路Aの構成情報に書き換える場合の処理例を示している。
【0182】
図30に示す処理では、配置配線ツール102が、ネットリスト、欠陥情報が反映されたリソース情報及び書換え履歴情報を参照して、各要素回路をどのように配置するか、またどの配線スイッチを利用して要素回路を接続するかを決定する。このとき、使用する要素回路及び配線スイッチは、回路遅延を最小とする最適化方針において、利用不可の要素回路及び配線スイッチの回避を最優先とし、続いて書換え回数が少ない抵抗変化素子を有するスイッチセルを優先して利用する配置配線処理を実行する。
【0183】
書換え履歴情報は、書換え履歴解析ツール106により、プログラマブル論理集積回路1から読み出された構成情報(回路B)と回路Aの構成情報とを比較し(ステップD1)、その差分を取ることで更新する(ステップD2)。その他の処理は、
図26に示した処理と同様であるため、ここではその説明を省略する。
【0184】
次に
図31を用いて書換え履歴情報を考慮した信号経路の決定プロセスを説明する。
【0185】
図31は、書換え履歴情報を考慮した信号経路の決定プロセスの一例を示す模式図である。
【0186】
図31において、スイッチセルに記載された数字は過去に実行された書換え回数を示している。
図31(a)は、回路Aの構成情報の一部であるクロスバー・スイッチブロックの状態を示している。回路Aでは、配線A0〜A3から配線B0〜B3への信号経路が2本形成されており、書換え回数が少ないスイッチS21及びS03が優先して利用されている。すなわち、スイッチS21をオンすることで配線A1から配線B2への信号経路が形成され、スイッチS03をオンすることで配線A3から配線B0への信号経路が形成されている。
【0187】
ここで、回路Bでは、同一のクロスバー・スイッチブロックにおいて配線A0〜A3から配線B0〜B3への信号経路を3本形成する場合を考える。この場合、各スイッチの書換え回数を抑制する最も有効な方法は、各スイッチのオン/オフをなるべく書き換えないことである。すなわち、3本の信号経路のうち、スイッチS21を介した配線A1から配線B2への信号経路とスイッチS03を介した配線A3から配線B0への信号経路は変更しない。また、残りの1本の信号経路を形成するのに用いるスイッチ候補は書換え回数が少ない(
図31(a)の例では4)スイッチS20及びS12である。しかしながら、スイッチS20は、該スイッチS20が接続される配線B2が既に利用されているため選択できない。一方、スイッチS12は利用可能なスイッチ・リソースである。
【0188】
したがって、スイッチS12をオンにして配線A2から配線B1への信号経路を形成する構成情報が作成されることになる。その結果を
図31(b)に示す。
【0189】
書換え履歴情報は、上述したように、書換え履歴解析ツール106により、書き換える構成情報(回路A)と、プログラマブル論理集積回路1から読み出した構成情報(回路B)との差分を取ることで作成する。また、回路Bのコンフィグレーションに失敗し、再度コンフィグレーションを実行する場合は、先にプログラマブル論理集積回路1から読み出した構成情報(回路B)と、再コンフィグレーション後にプログラマブル論理集積回路1から読み出した構成情報(回路B’)との差分を取ることで作成される。
【0190】
本発明の設計支援システムは、以上説明した第5の実施の形態に限定されるものではなく、本発明の技術思想の範囲内で適宜変更してもよい。
【0191】
例えば、プログラマブル論理集積回路1が、コンピュータシステム(設計支援システム10)でサポートする通信規格に準じたデータを送受信できるインタフェースを有する場合、構成情報転送装置16を介さずに該プログラマブル論理集積回路1を設計支援システム10に直接接続してもよい。
【0192】
また、リソース情報を作成する機能、欠陥情報を作成する機能、書換え履歴情報を作成する機能等は、例えば配置配線ツール102に備えていてもよい。
【0193】
なお、プログラマブル論理集積回路1から読み出した構成情報を利用する欠陥解析ツール105、書換え履歴解析ツール106、リソース設定ツール104及び配置配線ツール102には、例えば、設計者にプログラマブル論理集積回路1を設計支援システムに接続するように促す機能を備えていることが望ましい。
【0194】
また、欠陥情報や書換え履歴情報等のリソース情報はデバイス(プログラマブル論理集積回路1)固有の情報であるため、プログラマブル論理集積回路1には該プログラマブル論理集積回路1を識別するための識別番号(ID)を保存するための記憶手段を備えることが望ましい。その場合、プログラマブル論理集積回路1から読み出した構成情報を利用する欠陥解析ツール105、書換え履歴解析ツール106、リソース設定ツール104及び配置配線ツール102には、プログラマブル論理集積回路1から識別番号(ID)を読み取るための機能を備えていることが望ましい。さらに、設計支援システム10には、プログラマブル論理集積回路1から読み出した識別番号(ID)及びその読み取り日時等をリソース情報等に記録する機能を備えていることが望ましい。
(付記1)
複数のロジックブロックと、
第1の方向へ延在する複数の第1の配線と第2の方向へ延在する複数の第2の配線とを接続または切断する、前記第1の配線と前記第2の配線との交点に配置された複数の抵抗変化素子を備えた複数のクロスバー・スイッチブロックと、
前記ロジックブロックに信号を入力するための入力配線と前記クロスバー・スイッチブロックとを接続または切断するコネクション・スイッチブロックと、
前記抵抗変化素子の状態を検出する読出し手段と、
前記抵抗変化素子の状態を変更する書込み手段と、
外部から入力される構成情報にしたがって前記抵抗変化素子の状態を変更するとき、前記読出し手段により前記抵抗変化素子毎の状態を読み出し、前記書込み手段により前記構成情報で示される状態と異なる前記抵抗変更素子の状態のみを変更する制御手段と、を有するプログラマブル論理集積回路。
(付記2)
前記コネクション・スイッチブロックは、
前記入力配線と前記第2の配線とを接続または切断するスイッチ素子を備え、
前記制御手段は、
前記抵抗変化素子で状態を変更できない不良が発生した場合、前記スイッチ素子により前記不良が発生した抵抗変化素子が接続される第2の配線と前記入力配線とを切断する付記1に記載のプログラマブル論理集積回路。
(付記3)
前記コネクション・スイッチブロックは、
前記入力配線と前記第2の配線とを接続する第1のコネクション・スイッチブロックと、
前記ロジックブロック及び前記ロジックブロックの出力信号を出力するための出力配線と、前記第1の配線とを接続または切断するスイッチ素子を備えた第2のコネクション・スイッチブロックと、を有し、
前記クロスバー・スイッチブロックは、
前記第1の方向へ延在する第1の冗長配線をさらに備え、
前記制御手段は、
前記抵抗変化素子で状態を変更できない不良が発生した場合、前記スイッチ素子により、前記出力配線を、前記不良が発生した抵抗変化素子が接続される第1の配線に代えて、該第1の配線と隣接する第1の配線または前記第1の冗長配線と接続する付記1に記載のプログラマブル論理集積回路。
(付記4)
前記コネクション・スイッチブロックは、
前記第2の方向へ延在する第2の冗長配線と、
前記入力配線及び前記第2の冗長配線と前記第2の配線とを接続または切断するスイッチ素子とを備え、
前記制御手段は、
前記抵抗変化素子で状態を変更できない不良が発生した場合、前記スイッチ素子により、前記入力配線を、前記不良が発生した抵抗変化素子が接続される第2の配線に代えて、該第2の配線と隣接する第2の配線または前記第2の冗長配線と接続する付記1に記載のプログラマブル論理集積回路。
(付記5)
前記コネクション・スイッチブロックは、
前記入力配線と前記第2の配線とを接続または切断する第1のスイッチ素子を備えた第1のコネクション・スイッチブロックと、
前記ロジックブロック及び前記ロジックブロックの出力信号を出力するための出力配線と、前記第1の配線とを接続または切断する第2のスイッチ素子を備えた第2のコネクション・スイッチブロックと、を有し、
前記クロスバー・スイッチブロックは、
前記第1の方向へ延在する第1の冗長配線をさらに備え、
前記第1のコネクション・スイッチブロックは、
前記第2の方向へ延在する第2の冗長配線をさらに備え、
前記制御手段は、
前記抵抗変化素子で状態を変更できない不良が発生した場合、前記第1のスイッチ素子により前記入力配線を、前記不良が発生した抵抗変化素子が接続される第2の配線に代えて、該第2の配線と隣接する第2の配線または前記第2の冗長配線と接続し、
前記第2のスイッチ素子により、前記出力配線を、前記不良が発生した抵抗変化素子が接続される第1の配線に代えて、該第1の配線と隣接する第1の配線または前記第1の冗長配線と接続する付記1に記載のプログラマブル論理集積回路。
(付記6)
コネクション・スイッチブロックは、
前記第2の配線毎に設けられた、前記不良が発生した抵抗変化素子の有無を示す情報を保持する記憶素子を備え、
前記記憶素子に抵抗変化素子を含む付記2または4に記載のプログラマブル論理集積回路。
(付記7)
第1のコネクション・スイッチブロックは、
前記第2の配線毎に設けられた、前記不良が発生した抵抗変化素子の有無を示す情報を保持する第1の記憶素子を備え、
第2のコネクション・スイッチブロックは、
前記第1の配線毎に対応して設けられた、前記不良が発生した抵抗変化素子の有無を示す情報を保持する第2の記憶素子を備え、
前記第1の記憶素子及び前記第2の記憶素子に抵抗変化素子を含む付記3または5に記載のプログラマブル論理集積回路。
(付記8)
前記抵抗変化素子は、固体電解質抵抗素子、金属酸化物抵抗素子、相変化抵抗素子または磁気抵抗素子である付記1から7のいずれか1項に記載のプログラマブル論理集積回路。
(付記9)
抵抗変化素子を備えるプログラマブル論理集積回路に実装する回路の設計を支援する設計支援システムであって、
前記回路の実装対象である前記プログラマブル論理集積回路の不良の有無を示す欠陥情報に基づいて、前記回路で利用可能な回路要素を示す情報であるリソース情報を生成するリソース設定手段と、
前記プログラマブル論理集積回路が備える要素回路の接続情報であるネットリスト及び前記リソース情報に基づいて仮想的な配置配線を実施して構成情報を生成する構成情報生成手段と、
前記構成情報生成手段で生成された構成情報と、前記プログラマブル論理集積回路から読み出した構成情報である内部構成情報とを比較し、前記構成情報生成手段で生成された構成情報と前記内部構成情報とが一致しない場合、前記欠陥情報を更新する欠陥情報生成手段と、を有する設計支援システム。
(付記10)
前記リソース設定手段は、
前記抵抗変化素子で状態を変更できない不良が発生している場合、前記不良が発生した抵抗変化素子である欠陥素子がオン状態で固定されているかオフ状態で固定されているかを判定し、
オフ状態で固定された欠陥素子を前記リソース情報から削除することで該リソース情報を更新し、
前記構成情報生成手段は、
前記リソース設定手段による更新後のリソース情報に基づいて前記構成情報を生成する付記9に記載の設計支援システム。
(付記11)
前記リソース設定手段は、
前記抵抗変化素子で状態を変更できない不良が発生している場合、前記不良が発生した抵抗変化素子である欠陥素子が接続される配線または前記欠陥素子を含む回路要素が、前記プログラマブル論理集積回路が備える冗長配線または前記冗長回路に置き換え可能か否かを判定し、
前記欠陥素子が接続される配線または前記欠陥素子を含む回路要素を前記リソース情報から削除し、前記冗長配線または前記冗長回路を前記リソース情報に追加することで該リソース情報を更新し、
前記構成情報生成手段は、
前記リソース設定手段による更新後のリソース情報に基づいて前記構成情報を生成する付記9または10に記載の設計支援システム。
(付記12)
前記抵抗変化素子の状態の変更回数を示す書換え履歴情報を生成する書換え履歴情報生成手段をさらに有し、
前記構成情報生成手段は、
前記ネットリスト、前記リソース情報及び前記書換え履歴情報に基づいて状態の変更回数が少ない抵抗変化素子を優先的に用いて前記構成情報を生成する付記9から11のいずれか1項に記載の設計支援システム。
(付記13)
前記プログラマブル論理集積回路に、
前記抵抗変化素子が接続される配線毎に設けられた、前記不良が発生した抵抗変化素子の有無を示す情報を保持する記憶素子を備え、ロジックブロックの入出力配線と前記抵抗変化素子が接続される配線とを接続または切断するコネクション・スイッチブロックを有し、
前記リソース設定手段は、
前記抵抗変化素子で状態を変更できない不良が発生している場合、前記不良が発生した抵抗変化素子である欠陥素子が接続される配線を前記入出力配線から切断するように前記記憶素子に設定するための構成情報を生成する付記10から12のいずれか1項に記載の設計支援システム。
(付記14)
前記プログラマブル論理集積回路に、
前記抵抗変化素子が接続される配線毎に設けられた、前記不良が発生した抵抗変化素子の有無を示す情報を保持する記憶素子を備え、ロジックブロックの入出力配線と前記抵抗変化素子が接続される配線とを接続または切断するコネクション・スイッチブロックを有し、
前記リソース設定手段は、
前記抵抗変化素子で状態を変更できない不良が発生している場合、前記不良が発生した抵抗変化素子である欠陥素子が接続される配線に代えて、前記冗長配線を前記入出力配線と接続するように前記記憶素子に設定するための構成情報を生成する付記11に記載の設計支援システム。
(付記15)
抵抗変化素子を備えるプログラマブル論理集積回路に所望の回路を形成するためのコンフィグレーション方法であって、
ハードウェア記述言語により記述された前記回路の動作記述情報を論理合成し、前記回路のネットリストを作成する第1ステップと、
前記ネットリスト及び前記回路の実装対象である前記プログラマブル論理集積回路の不良の有無を示す欠陥情報に基づいて、前記回路で利用可能な回路要素を示す情報であるリソース情報を作成する第2ステップと、
前記ネットリスト及び前記リソース情報に基づいて仮想的な配置配線を実施して前記回路の形成に必要な情報である構成情報を作成する第3ステップと、
前記第3のステップで作成された構成情報で示される回路の信号遅延及び消費電力を計算し、予め設定された仕様を満たすか否かを検証する第4ステップと、
前記第4ステップで検証された構成情報を前記プログラマブル論理集積回路に書き込む第5ステップと、
前記プログラマブル論理集積回路に書き込まれた構成情報である内部構成情報を取得する第6ステップと、
前記第4ステップで検証された構成情報と前記内部構成情報とを比較する第7ステップと、
前記第4ステップで検証された構成情報と前記内部構成情報とが一致しない場合、前記第4ステップで検証された構成情報と前記内部構成情報との差異に基づいて前記欠陥情報を更新する第8ステップと、
前記第4ステップで検証された構成情報と前記内部構成情報とが一致するまで前記第2〜第8ステップを繰り返す第9ステップと、を有するコンフィグレーション方法。
(付記16)
前記第4ステップで検証された構成情報と前記内部構成情報とを比較し、前記抵抗変化素子の状態の変更回数を示す書換え履歴情報を生成する第10ステップをさらに有し、
前記第3ステップは、
前記ネットリスト、前記リソース情報及び前記書換え履歴情報に基づいて仮想的な配置配線を実施して前記回路の形成に必要な情報である構成情報を作成する付記15に記載のコンフィグレーション方法。
(付記17)
抵抗変化素子を備えるプログラマブル論理集積回路に実装する回路の設計を支援する設計支援プログラムを記録した記録媒体であって、
コンピュータを、
前記回路の実装対象である前記プログラマブル論理集積回路の不良の有無を示す欠陥情報に基づいて、前記回路で利用可能な回路要素を示す情報であるリソース情報を生成するリソース設定手段と、
前記プログラマブル論理集積回路が備える要素回路の接続情報であるネットリスト及び前記リソース情報に基づいて仮想的な配置配線を実施して構成情報を生成する構成情報生成手段と、
前記構成情報生成手段で生成された構成情報と、前記プログラマブル論理集積回路から読み出した構成情報である内部構成情報とを比較し、前記構成情報生成手段で生成された構成情報と前記内部構成情報とが一致しない場合、前記欠陥情報を更新する欠陥情報生成手段と、して機能させる設計支援プログラムを記録した記録媒体。
(付記18)
前記リソース設定手段が、
前記抵抗変化素子で状態を変更できない不良が発生している場合、前記不良が発生した抵抗変化素子である欠陥素子がオン状態で固定されているかオフ状態で固定されているかを判定し、
オフ状態で固定された欠陥素子を前記リソース情報から削除することで該リソース情報を更新し、
前記構成情報生成手段が、
前記リソース設定手段による更新後のリソース情報に基づいて前記構成情報を生成する、ように前記コンピュータを機能させる付記17に記載の設計支援プログラムを記録した記録媒体。
【0195】
以上、上述した実施形態を模範的な例として本発明を説明した。しかしながら、本発明は、上述した実施形態には限定されない。即ち、本発明は、本発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。
【0196】
この出願は、2015年5月29日に出願された日本出願特願2015−109908号を基礎とする優先権を主張し、その開示の全てをここに取り込む。