(57)【特許請求の範囲】
【請求項１】
装置が欠陥を含んでいると製造者が判断した場合に回復され得るプログラマブル論理装置であって、
行に配列される、複数の通常のプログラマブル論理領域および少なくとも１つのスペアプログラマブル論理領域と、
該論理領域の行に関連する複数の導体と、
複数のインタリーブされた入力マルチプレクサ回路と、を含み、該複数のインタリーブされた入力マルチプレクサ回路の各々は、該行の２つの隣接する論理領域の間に接続され、且つ、該導体からの信号を該２つの論理領域に分配し、該プログラマブル論理装置は、複数の列を有し、該列の各々は、該インタリーブされた入力マルチプレクサ回路の１つと、該論理領域の１つとを含み、
各々がそれぞれの列に関連する複数のバイパス回路であって、製造者が該列に欠陥があると判断すると、該列の該インタリーブされた入力マルチプレクサ回路および該論理領域を選択的にバイパスするための複数のバイパス回路をさらに含み、該スペアプログラマブル論理領域は、欠陥があるときに、該バイパスされた論理領域において失われた回路を置き換えるために用いられる、プログラマブル論理装置。
【請求項２】
前記列の１つに欠陥があるとき、前記論理領域および前記インタリーブされた入力マルチプレクサのプログラミングデータを、欠陥を含まない列にシフトするためのプログラミングデータシフト回路をさらに含む、請求項１に記載のプログラマブル論理装置。
【請求項３】
各列に通常の出力ドライバの組（normal set of output drivers）をさらに含み、該通常の出力ドライバの組は、該列の前記論理領域に関連し、該論理領域からの出力信号を前記導体に提供する、請求項２に記載のプログラマブル論理装置。
【請求項４】
各列に関連する出力再方向付け回路をさらに含み、該出力再方向付け回路は、各論理領域からの出力信号を、（１）該論理領域で用いられる前記プログラミングデータが前記プログラミングデータシフト回路によりシフトされていない場合には、該論理領域と同じ列にある前記通常のドライバに向け、または、（２）該論理領域で用いられる該プログラミングデータが該プログラミングデータシフト回路により隣接する列からシフトされている場合には、該隣接する列にある該通常のドライバに向ける出力再方向付け回路をさらに含む、請求項３に記載のプログラマブル論理装置。
【請求項５】
各列に補助出力ドライバの組をさらに含み、該補助出力ドライバの組は、該列の前記論理領域に関連し、隣接する列の通常のドライバに用いられる前記導体への接続パターンと同じ接続パターンを用いて、該論理領域からの出力信号を該導体に提供し、
出力再方向付け回路をさらに含み、該出力再方向付け回路は、各列に関連し、各列の前記論理領域からの出力信号を、（１）該論理領域で用いられるプログラミングデータが前記プログラミングデータシフト回路によりシフトされていない場合には、該列の通常のドライバを用い、または、（２）該論理領域で用いられる該プログラミングデータが該プログラミングデータシフト回路により隣接する列からシフトされている場合には、該列の該補助ドライバを用いて、該導体に向ける、請求項２に記載のプログラマブル論理装置。
【請求項６】
各列に関連し、各列の前記論理領域からの出力信号を前記導体に提供するためのドライバと、
欠陥を含む列に関連する前記ドライバのプログラミングデータが、前記プログラミングデータシフト回路により別の列にシフトされた後、該プログラミングデータを該列に戻すように向け直すためのプログラミングデータ再方向付け回路と、をさらに含む、請求項２に記載のプログラマブル論理装置。
【請求項７】
前記インタリーブされた入力マルチプレクサ回路の各々が、２つの入力マルチプレクサ回路を含み、前記プログラマブル論理装置が、それぞれの該入力マルチプレクサ回路にそれぞれ関連する複数のプログラマブルマルチプレクサをさらに含む、請求項１に記載のプログラマブル論理装置。
【請求項８】
前記入力マルチプレクサ回路の各々が、
前記プログラマブルマルチプレクサにより前記導体に接続される複数の局所的な垂直方向の導体と、
該局所的な垂直方向の導体に選択的に接続される複数の局所的な水平方向の導体と、
該複数の局所的な水平方向の導体の１つを、隣接する論理領域の１つに選択的に接続する少なくとも１つのマルチプレクサと、を含む、請求項７に記載のプログラマブル論理装置。
【請求項９】
前記バイパス回路が、各列に少なくとも１つのバイパスマルチプレクサを含み、該バイパスマルチプレクサは、同じ列の前記インタリーブされた入力マルチプレクサからの信号を受け入れる１つの入力と、前の列の該インタリーブされた入力マルチプレクサからの信号を受け入れる別の入力と、を有し、該バイパスマルチプレクサの該出力が、次の列の前記論理領域に提供される、請求項１に記載のプログラマブル論理装置。
【請求項１０】
前記論理領域が論理素子を含む、請求項１に記載のプログラマブル論理装置。
【請求項１１】
各々が同じ複数の導体に関連する論理素子の複数の行をさらに含む、請求項１０に記載のプログラマブル論理装置。
【請求項１２】
前記論理領域が、論理アレイブロックを含み、該論理アレイブロックの各々が、複数の論理素子を含む、請求項１に記載のプログラマブル論理装置。
【請求項１３】
前記論理アレイブロックの複数の行と、
前記導体の複数の組と、をさらに含み、該導体の各組が、該論理アレイブロックのそれぞれの行に関連する、請求項１２に記載のプログラマブル論理装置。
【請求項１４】
前記論理領域が、論理アレイブロックを含み、該論理アレイブロックの各々が、複数の論理素子を含み、前記プログラマブル論理装置が、
行に配置される該論理アレイブロックの２つの組と、
該行の中心に配置され、欠陥回路を回復する際に該論理アレイブロックの組のいずれかにより用いられるスペア論理アレイブロックと、をさらに含む、請求項１に記載のプログラマブル論理装置。
【請求項１５】
デジタル処理システムであって、
プロセッサと、
該プロセッサに結合されるメモリと、
該プロセッサおよび該メモリに結合されるプログラマブル論理装置と、を含み、該プログラマブル論理装置は、該プログラマブル論理装置が欠陥を含んでいると製造者が判断した場合に回復可能であり、該プログラマブル論理装置は、
行に配列される、複数の通常のプログラマブル論理領域および少なくとも１つのスペアプログラマブル論理領域と、
該論理領域の行に関連する複数の導体と、
複数のインタリーブされた入力マルチプレクサ回路と、を有し、該複数のインタリーブされた入力マルチプレクサ回路の各々は、該行の２つの隣接する論理領域の間に接続され、且つ、該導体からの信号を該２つの論理領域に分配し、該プログラマブル論理装置は、複数の列を有し、該列の各々は、該インタリーブされた入力マルチプレクサ回路の１つと、該論理領域の１つとを含み、
各々がそれぞれの列に関連する複数のバイパス回路であって、製造者が該列に欠陥があると判断すると、該列の該インタリーブされた入力マルチプレクサ回路および該論理領域を選択的にバイパスするための複数のバイパス回路をさらに含み、該スペアプログラマブル論理領域は、欠陥があるときに、該バイパスされた論理領域において失われた回路を置き換えるために用いられる、デジタル処理システム。
【請求項１６】
前記メモリ、前記プロセッサ、および前記プログラマブル論理装置が装着される回路板をさらに含む、請求項１５に記載のデジタル処理システム。
【請求項１７】
前記プログラマブル論理装置、前記プロセッサ、および前記メモリに結合される入出力回路をさらに含む、請求項１５に記載のデジタル処理システム。
【請求項１８】
前記プログラマブル論理装置、前記プロセッサ、および前記メモリに結合される周辺ドライバをさらに含む、請求項１５に記載のデジタル処理システム。
【発明の詳細な説明】
本願は、1997年5月23日出願の米国仮出願シリアル番号第60/047,610号の権利を請求する。
発明の背景
本発明は、プログラマブル論理装置に関し、具体的には、欠陥を含むプログラマブル論理装置を回復するための冗長回路に関する。
プログラマブル論理装置は、カスタム論理機能を実行するようにプログラムされ得る集積回路である。集積回路製造技術は完全でないため、時折、プログラマブル論理装置は、欠陥を有して製造され得る。論理装置が使用される前に欠陥を回復することができなければ、その論理装置は廃棄されなければならない。そのような装置の廃棄は、欠陥が比較的重大でない場合には特に、不経済である。従って、回路の欠陥部を回復するようにスペア回路が切り換えられて配置されることを可能にする様々な冗長機構が開発されてきた。
所定の論理装置アーキテクチャのための適切な冗長機構を実現する難しさは、アーキテクチャの属性に依存する。例えば、インタリーブされたマルチプレクサ回路を用いて信号を論理アレイブロックに分配するプログラマブル論理装置に冗長を提供することに関連する難しさがある。そのような構成では、隣接する論理アレイブロックが信号経路付け資源を共有するため、１つの論理アレイブロックに欠陥が発生すると、隣接するその他の欠陥のない論理アレイブロックに影響を及ぼし得る。欠陥が検出されると、影響を受けたこれらの論理アレイブロックの両方が置き換えられる冗長機構を用いることが可能であり得るが、そのような機構は、少なくとも１つの欠陥のない論理アレイブロックのバイパスを必然的に伴う。論理資源をより効率的に用いる冗長機構が望ましい。
従って、本発明の目的は、インタリーブされた入力回路を備えるプログラマブル論理装置のための冗長構成を提供することである。
発明の要旨
本発明の上記およびその他の目的は、インタリーブされた入力マルチプレクサ回路を用いて信号を隣接する論理領域に分配するプログラマブル論理装置のための冗長回路を提供することにより、本発明の原理に従って達成される。プログラマブル論理装置は、論理領域の少なくとも１つの行を有し、且つ、多数の列を有する。各列は、インタリーブされた入力マルチプレクサの１つと、論理領域の１つとを含む。論理領域間で信号を伝えるために、論理領域の行に関連する導体の組が用いられる。
インタリーブされた入力マルチプレクサ回路の各々は、論理信号を、行の導体から２つの隣接する論理領域に分配する。信号が分配される論理領域の一方は、インタリーブされた入力マルチプレクサ回路と同じ列にある。信号が分配される他方の論理領域は、隣接する列にある。
各列には、その列のインタリーブされた入力マルチプレクサおよび論理領域をバイパスするためのバイパス回路が設けられる。装置の製造中、装置はテストされ、列のいずれかが欠陥回路を含むかどうかが判定される。列に欠陥が検出されると、製造者は、装置の使用中にその列をバイパスするようにバイパス回路を構成することにより、装置を回復することができる。
プログラマブル論理装置のプログラミング中、ユーザは、装置上の様々な論理コンポーネントに所望の論理機能を実行するよう指示するプログラミングデータを、装置に供給する。回路の列が欠陥を含んでいれば、製造者により以前に構成された回路は、本来その列のために意図されたプログラミングデータを、隣接する列にシフトする。本来この隣接する列、および、行の論理のそれに続く各列のために意図されたプログラミングデータもまた、シフトされる。
論理の様々な列のプログラミングデータが、欠陥列のバイパスを受け入れるためにシフトされているとき、通常の論理の最後の列からシフトされたプログラミングデータを受け取るために、行の終わりには、論理のスペア列が設けられる。スペア論理は、欠陥列がバイパスされるときに失われる論理を埋め合わせる。従って、装置が欠陥検出後に回復されるのか、元々装置に欠陥が無かったのかに拘わらず、同じ数の論理領域が用いられる。
論理領域からの出力は、プログラミングドライバを用いて導体に付与される。各列に関連するドライバは、典型的には、導体への独自の接続パターンを形成する。欠陥の回復中にプログラミングデータが次の列にシフトされると、ドライバに関連するプログラミングデータもまた、次の列にシフトされる。１つの構成では、プログラマブル論理装置は、プログラミングデータ再方向付け回路を用いて、ドライバについてのシフトされたプログラミングデータを、本来の列のドライバに戻すよう向け直す。別の構成では、各列に、補助ドライバが設けられる。各列の補助ドライバは、前の列の通常のドライバにより形成される導体への接続パターンと同じ接続パターンを形成する。欠陥を含む列が回復されるとき、その後の列の補助ドライバが通常ドライバの代わりに用いられ、これらのその後の列の論理領域の出力が、プログラミングデータがシフトされていなかったら向けられていたであろう行き先と同じ行き先に向けられることを確実にする。
論理領域は、好ましくはプログラマブル論理アレイブロックであり、プログラマブル論理アレイブロックの各々は、４入力ルックアップテーブルに基づくかまたは積項論理に基づく複数のプログラマブル論理素子を含む。
論理アレイブロックの２つの組が、行に設けられてもよい。このタイプの構成では、単一のスペア論理アレイブロックが、行の中心に設けられ得る。これにより、冗長に関連する間接費が削減される。なぜなら、行の論理アレイブロックの２つの組が、スペア論理アレイブロックを共有できるからである。
本発明の別の特徴、本発明の本質および様々な利点は、添付の図面と、好適な実施形態についての以下の詳細な説明とからより明らかになる。
【図面の簡単な説明】
図１は、本発明による冗長構成を備える例示的なプログラマブル論理装置の部分の回路図である。
図２は、図１に示されるタイプのプログラマブル論理装置の部分のより詳細な回路図である。
図３は、インタリーブされた入力マルチプレクサ回路をより詳細に示す、図２のプログラマブル論理装置の部分の回路図である。
図４は、本発明のプログラマブル論理装置の様々な部分にプログラミングデータを経路付けするために用いられる回路を示す回路図である。
図５は、本発明によるプログラマブル論理装置において、論理アレイブロックと水平方向の導体との間に作られる出力ドライバ接続を示す回路図である。
図６は、本発明による冗長の提供に関連する間接費を削減するための構成を示す回路図である。
図７は、本発明の冗長回路を有するプログラマブル論理装置が用いられ得るデータ処理システムの図である。
好適な実施形態の詳細な説明
プログラマブル論理装置は、カスタム論理機能を実行するようにユーザにより再構成または「プログラム」され得る論理を含む集積回路である。プログラマブル論理装置は、その最も基本的なレベルでは、プログラマブルスイッチまたはコネクタに基づく。そのようなプログラマブルコンポーネントは、ランダムアクセスメモリ、リードオンリメモリ、消去可能なプログラマブルリードオンリメモリ、電気的に消去可能なプログラマブルリードオンリメモリ、ヒューズ、アンチヒューズ、強誘電エレメント、またはその他の適切なプログラマブルコンポーネント技術を用い得る。
冗長即ちスペア回路を含むプログラマブル論理装置は、欠陥があると判定される回路の部分を回復するために、製造者により、製造プロセス中に構成され得る。
本発明による冗長構成を有するプログラマブル論理装置集積回路が、図１に示される。プログラマブル論理装置１０は、好ましくは、論理アレイブロック１２の１つ以上の行を有するが、本発明の原理は、いかなる適切なタイプのプログラマブル論理領域を含むプログラマブル論理装置にも適用可能である。行の論理アレイブロック１２は、水平方向の導体１４により相互接続される。論理アレイブロック１２の１つよりも多い行が望まれる場合、行間で論理信号を伝えるために、適切な垂直方向の導体および関連するプログラマブル経路付け回路（図示せず）が用いられ得る。図面を過度に複雑にするのを避けるために、図１には、論理アレイブロック１２の単一の行しか示されていない。さらに、図１には、論理装置１０のすべてのコンポーネントが示されているわけではない。例えば、図１には、装置１０の入出力回路の詳細は示されていない。
各論理アレイブロック１２は、好ましくは、多数のプログラマブル論理素子１６を含む。プログラマブル論理装置１０における論理素子１６およびその他のプログラマブル論理回路は、様々な論理機能を実行するようにユーザによりプログラムされ得る。論理素子１６は、ルックアップテーブル論理、積項論理、または、その他のいかなる適切なタイプのプログラマブル論理にも基づき得る。望ましい場合には、論理素子１６は、様々な論理信号を登録する（registering）ためのレジスタ論理を含んでいてもよい。
プログラマブル論理装置１０は、多数の列を有し、各列は、論理アレイブロック１２と、インタリーブされた入力マルチプレクサ回路１８とを含む。インタリーブされたマルチプレクサ回路１８は、水平方向の導体１４からの論理信号を論理アレイブロック１２に分配するために用いられる。インタリーブされた入力マルチプレクサ回路１８の各々は、導体２０を介して、２つの隣接する論理アレイブロック１２に信号を分配する。信号が分配されるアレイブロック１２の一方は、インタリーブされた入力マルチプレクサ回路１８と同じ列にある。信号が分配される他方の論理アレイブロック１２は、隣接する列にある。導体１４および導体２０のような導体は、図１では一本の線として示されているが、そのような線の各々は、典型的には、多数の平行な信号導体を表す。
装置１０の各行には、好ましくは、少なくとも１つのスペア論理アレイブロック１２と、少なくとも１つのスペアのインタリーブされた入力マルチプレクサ回路１８とがある。論理アレイブロック１２の行内でのそのようなスペア回路の場所は、決定的に重要であるわけではない。例えば、スペア回路は、行のいずれかの端部に配置されてもよく、望ましい場合には、行の中心に配置されてもよい。
製造プロセス中、装置１０は、製造者によりテストされる。論理アレイブロック１２の１つまたはインタリーブされた入力マルチプレクサ回路１８の１つに欠陥があれば、装置１０は、スペア回路を用いて欠陥列の論理アレイブロック１２およびインタリーブされた入力マルチプレクサ回路１８を置き換えることにより、回復され得る。
欠陥回路の置き換えは、典型的には、本来欠陥回路の入力に提供されるものであった論理信号が、欠陥回路に隣接する、影響を受けていない回路に向け直されるように装置を構成することを伴う。例えば、論理アレイブロック１２ａと、インタリーブされた入力マルチプレクサ回路１８ａとを含む列（列Ｎ−１）に欠陥があると判定されると、通常であれば論理アレイブロック１２ａの入力２０ａに提供されていたであろう信号を、列Ｎの論理アレイブロック１２ｂの入力２０ｂに向け直すために、その列に関連するバイパス回路２２ａが用いられ得る。列Ｎのバイパス回路２２ｂ、列Ｎ＋１のバイパス回路２２ｃ、およびその他の列のバイパス回路は使用されない。
行の各論理アレイブロック１２は、典型的には、異なるドライバパターンを用いて、その行の水平方向の導体１４への出力接続を作る。従って、欠陥回路の置き換えはまた、回路に欠陥が無ければ出力が水平方向の導体１４に接続されていたであろう方法と同じ方法で、回復された行の論理アレイブロックの出力が水平方向の導体１４に接続されるように、論理アレイブロックの幾つかからの出力を向け直すことを伴う。これは、各論理アレイブロックからの出力信号が、回路が欠陥を含んでいなければ向けられていたであろう行き先と同じ行き先に向けられることを確実にする。従って、回復された回路は、欠陥のない回路と同一の態様で動作する。
例えば、列Ｎ−１の論理アレイブロック１２ａまたはインタリーブされた入力マルチプレクサ回路１８ａに欠陥があると判定されると、出力２６ｂの信号をドライバ経路２８ａに戻るよう向け直すために、出力再方向付け（redirecting）回路２４ａが用いられ得る。これは、欠陥がなければ出力２６ａを導体１４に接続するために用いられていたであろうドライバ接続パターンと同じドライバ接続パターンが、出力２６ｂを導体１４に接続するために用いられることを可能にするため、この構成は、論理アレイブロック１２ａまたはインタリーブされた入力マルチプレクサ回路１８ａに欠陥がなければ論理アレイブロック１２ａからの出力信号が向けられていたであろう行き先と同じ行き先に、論理アレイブロック１２ｂからの出力信号が向けられることを確実にする。
論理アレイブロック１２ｂの出力２６ｂがドライバ経路２８ａに向け直されるため、出力２６ｃは、出力再方向付け回路２４ｂにより、ドライバ経路２８ｂに向け直されなければならない。論理アレイブロック１２ｃよりも左側にある連続する列の論理アレイブロック１２の出力は、同様の出力再方向付け回路２４を用いて、出力信号を、そのすぐ右側にある前の列の出力ドライバにシフトする。
望ましい場合、回路の本来の出力ドライバパターンは、その他の出力再方向付け回路構成を用いた欠陥回路の置き換えの間、保たれ得る。例えば、出力再方向付け回路構成は、通常のドライバ経路２８の回路の代わりに用いられ得る補助ドライバ経路２８’を有し得る。補助ドライバ経路２８’の各々は、同じドライバパターンを用いて、関連する論理アレイブロック出力を、前の列の通常のドライバ経路２８により用いられる導体１４に接続する。
欠陥回路が見つからなければ、各論理アレイブロックは、関連する通常のドライバ経路２８を用いて、導体１４に接続される。列が欠陥を含むと判定されると、欠陥列よりも右側にある論理アレイブロック１２は、通常のドライバ経路２８を用いて導体１４に接続され、欠陥列よりも左側にある論理アレイブロック１２は、補助ドライバ経路２８’を用いて導体１４に接続される。例えば、論理アレイブロック１２ａに欠陥があれば、論理アレイブロック１２ａよりも右側にある各論理アレイブロック１２の出力は、それぞれの通常のドライバ経路２８を用いて、導体１４に接続される。しかし、論理アレイブロック１２ｂと、論理アレイブロック１２ｂよりも左側にある各論理アレイブロック１２との出力は、補助ドライバ経路２８’を用いて、導体１４に接続される。
図２は、図１に示されるタイプのプログラマブル論理装置の部分のより詳細な回路図である。図２に示されるプログラマブル論理装置３０の部分は、水平方向の導体３４により相互接続される論理素子３２の多数の列と、単一の行とを有する。各列の多数のそのような論理素子３２は、好ましくは一緒にグループ分けされて、図１に示されるように、各列の論理アレイブロックを形成する。このレベルの詳細は、図面を過度に複雑にするのを避けるために、図２には示されていない。プログラマブル論理装置３０はまた、好ましくは、そのような論理アレイブロックの多数の行を含み、各行は、同じタイプの論理素子構成を含む。他の行の論理アレイブロックは、水平方向の導体３４の様々な行間で信号を経路付けするために、垂直方向の導体（図示せず）を用いて、図２に示される論理素子３２の行を含む論理アレイブロックの行と相互接続され得る。図２に示される論理素子３２の行には、論理素子３２は４つしかないが、論理装置３０は、いかなる適切な数の論理素子３２を有していてもよい。
論理素子３２は、積項論理(product term logic)またはルックアップテーブル論理、などのいかなる適切なタイプの論理に基づいていてもよく、望ましい場合には、レジスタ論理を含んでいてもよい。論理素子３２は、いかなる適切な数の入力および出力を有していてもよい。図２の例示的構成では、論理素子３２は、入力Ａ、Ｂ、ＣおよびＤを有する。これらの入力は、例えば、標準の４入力ルックアップテーブル回路への入力であってもよい。図２の論理素子３２の各々は、Ｌ出力およびＧ出力を有する。これらの出力は、標準のルックアップテーブル回路からの出力であってもよい。
水平方向の導体３４からの信号は、プログラマブルマルチプレクサ３８および局所的な垂直方向の導体４０により、入力マルチプレクサ回路３６に提供される。入力マルチプレクサ回路３６は、好ましくは、所定の論理アレイブロックのすべての論理素子３２を通過して延びる。プログラマブルマルチプレクサ３８は、選択された水平方向の導体３４を局所的な垂直方向の導体４０に接続するように、装置３０のユーザによりプログラムされ得る。局所的な水平方向の導体４２は、入力マルチプレクサ回路３６からの信号を論理素子３２に向けるために用いられる。
入力マルチプレクサ回路３６と論理素子３２との例示的な組が、図３に、より詳細に示される。図３に示されるように、各入力マルチプレクサ回路３６に関連する４本の局所的な垂直方向の導体４０上の信号は、プログラマブルコネクタ４３により、交差する局所的な水平方向の導体４２に選択的に経路付けされ得る。プログラマブルコネクタ４３の動作は、記憶セル４５中のデータにより制御される。
各マルチプレクサ４７は、その入力に接続された４本の水平方向の導体４２の１本を、論理素子３２の入力に向ける。各プログラマブルマルチプレクサ３８は、好ましくは、多数の個々のプログラマブルコネクタ４９から形成される。
図２の示された実施形態では、論理素子３２の列は４つある。論理素子３２ｂ、３２ｃおよび３２ｄは、通常の論理素子である。論理素子３２ａは、スペア即ち冗長論理素子３２である。製造プロセス中、装置３０は、欠陥の有無についてテストされる。装置３０に欠陥がないと判定されれば、スペア論理素子３２ａは使用される必要がない。列に欠陥があれば、その列の論理をバイパスすることにより、この欠陥がバイパスされ得る。さらに、バイパスされた列（即ち、バイパスされた論理素子）において失われた回路を置き換えるために、スペア論理素子３２ａの回路がシフトされて配置され得る。
各論理素子３２は、４つの関連する入力マルチプレクサ回路３６からの信号を受け取り得る。例えば、論理素子３２ｃは、（論理素子３２ｃのＡおよびＣ入力に接続された局所的な水平方向の導体４２ａを介して）入力マルチプレクサ回路３６ｅおよび３６ｆと、（マルチプレクサ４４で論理素子３２ｃのＢおよびＤ入力に接続された局所的な水平方向の導体４２ｂ’を介して）入力マルチプレクサ回路３６ｇおよび３６ｈとからの信号を受け取り得る。
隣接する入力マルチプレクサ回路３６は、局所的な水平方向の導体４２の共通の組を共有するため、互いにインタリーブされる。例えば、入力マルチプレクサ回路３６ｅは、入力マルチプレクサ回路３６ｆとインタリーブされる。なぜなら、入力マルチプレクサ３６ｅを通過する局所的な水平方向の導体４２が、入力マルチプレクサ３６ｆも通過するからである。
局所的な水平方向の導体４２ａは、入力マルチプレクサ回路３６からの信号を、直接論理素子入力ＡおよびＣに供給する。局所的な水平方向の導体４２ｂは、入力マルチプレクサ回路３６からの信号を、バイパスマルチプレクサ４４を介して、論理素子入力ＢおよびＤに供給する。
製造プロセス中、装置３０はテストされ、装置３０が欠陥回路を含んでいるかどうかが判定される。テストにより、装置３０に欠陥がないことが示されると、バイパスは必要とされない。従って、バイパスマルチプレクサ４４は、バイパスマルチプレクサ４４の入力に直接接続される局所的な水平方向の導体４２ｂからの信号を、マルチプレクサ出力４６を介して、論理素子入力ＢおよびＤに送るように構成される。テストにより、装置３０が、列の論理素子３２または入力マルチプレクサ回路３６の１つに欠陥を含むことが示されると、製造者は、その列の欠陥論理がバイパスされるように、適切なバイパスマルチプレクサ４４を構成する。
例えば、列２の論理素子３２ｃまたはインタリーブされた入力マルチプレクサ回路３６ｅもしくは３６ｆに欠陥が検出されると、バイパスマルチプレクサ４４’は、局所的な水平方向の導体４２ｂ’からの信号を、出力４６’を介して列２の論理素子３２ｃのＢおよびＤ入力に経路付けするのではなく、バイパス導体４８を介して列３の論理素子３２ｂのＢおよびＤ入力に経路付けするように構成され得る。
プログラミングデータを装置３０の論理に供給する経路は、好ましくは、ユーザが装置３０をプログラムするときに用いるプログラミングデータが、装置のプログラミング中に適切な論理に経路付けされるように、製造者により構成される。例えば、インタリーブされた入力マルチプレクサ回路３６ｅおよび３６ｆが用いられていれば、これらの回路３６ｅおよび３６ｆに関連するプログラマブルマルチプレクサ３８’に用いられていたであろうプログラミングデータは、プログラマブルマルチプレクサ３８”に向けられる。論理素子３２ｃを構成するために用いられていたであろうプログラミングデータは、論理素子３２ｂに提供される。列２のインタリーブされた入力マルチプレクサ３６ｅおよび３６ｆの局所的な垂直方向の導体４０’と局所的な水平方向の導体４２ａおよび４２ｂ”との間のプログラム可能な接続のパターンを確立するために用いられていたであろうプログラミングデータは、列３のインタリーブされた入力マルチプレクサ回路３６ｃおよび３６ｄに提供される。
欠陥論理回路がバイパスされる場合になされる別の変更は、導体３４に提供される論理素子出力信号の経路に関する。欠陥回路がない場合、各論理素子３２に関連する出力マルチプレクサ５０は、その論理素子３２のＬおよびＧ出力を、直接水平方向の導体３４に向ける。例えば、マルチプレクサ５０’は、論理素子３２ｃのＬおよびＧ出力を、ドライバ５２’および経路５４’を介して、水平方向の導体３４に向け、マルチプレクサ５０”は、論理素子３２ｂのＬおよびＧ出力を、ドライバ５２”および経路５４”を介して、水平方向の導体３４に向ける。装置３０が欠陥回路を含んでいると判定されると、マルチプレクサ５０は、欠陥回路が無かった場合に用いられたドライバパターンと同じドライバパターンを用いて出力信号が水平方向の導体３４に向けられるように構成される。
例えば、列２の論理素子３２ｃまたはインタリーブされた入力マルチプレクサ回路３６ｅもしくは３６ｆに欠陥が検出されると、マルチプレクサ５０’および経路５８’は、列３の論理素子３２ｂからの出力信号を、列２のバイパスされた論理素子３２ｃに関連するドライバ５２’に向け直すために用いられる。同様に、マルチプレクサ５０”は、冗長即ちスペア列のスペア論理素子３２ａからの出力を、本来列３の論理素子３２ｂに関連していたドライバ５２”に戻すように向ける。この構成は、欠陥回路をスペア回路と置き換える間に装置３０上の回路の幾らかが再構成される場合であっても、ドライバ５２の各組に関連する経路５４と水平方向の導体３４との間の接続５６のパターンが保たれることを可能にする。
ドライバ接続５６の各組は、典型的には、水平方向の導体３４の異なるパターンを駆動する。従って、用いられるドライバ接続５６のパターンを保つことは、所定の論理素子３２の論理素子出力信号がそれらの意図された行き先に到達することを確実にする。
ドライバ５４は、好ましくは、オン状態またはオフ状態のいずれかにプログラム可能である。望ましい場合、各ドライバ５４は、１本よりも多い導体３４を駆動し得る。隣接する列の欠陥のない論理素子３２および欠陥のない入力マルチプレクサにシフトされる、欠陥列の論理素子３２および入力マルチプレクサ３６のプログラミングデータとは異なり、欠陥列のドライバのプログラミングデータは、結局はシフトされない。これは、図４に示される。
図４のプログラミング構成は、プログラミング記憶セル６０の多数の垂直方向のチェーンを有する。記憶セル６０にロードされるプログラミングデータは、セル６０が関連するプログラマブル論理を構成する。セル６０の各列は、図２の装置３０の論理素子３２、入力マルチプレクサ回路３６、およびプログラマブルマルチプレクサ３８の異なる列に関連する。例えば、図４のセル６０の冗長列は、図２の冗長論理素子３２ａに関連し得、セル６０の列３は、論理素子３２ｂに関連し得、セル６０の列２は、論理素子３２ｃに関連し得、そして、セル６０の列１は、論理素子３２ｄに関連し得る。
装置をプログラムするために、入力ライン６２に供給されたプログラミングデータは、シリアルにクロックされてデータレジスタ６４に送られる。欠陥回路が検出されなければ、マルチプレクサ６８は、列１、２および３のプログラミングデータをデータレジスタ６６ｂ、６６ｃおよび６６ｄにシフトするように構成される。レジスタ６６ｂ、６６ｃおよび６６ｄのプログラミングデータは、クロックされ、それぞれ列３、２および１のセル６０の垂直方向のチェーンに送られる。
欠陥回路が（例えば、列２に）検出されると、マルチプレクサ６８は、通常であれば列２〜列３のセル６０の垂直方向のチェーンを下方向に移動していたであろうプログラミングデータと、通常であれば列３のセル６０の垂直方向のチェーンを下方向に移動していたであろうプログラミングデータとを、冗長即ちスペア列にシフトするように構成される。列１のプログラミングデータは、影響を受けない。
論理素子３２、入力マルチプレクサ回路３６、およびプログラマブルマルチプレクサ３８のプログラミングデータをシフトすることは、本来は欠陥があることが分かった回路により実行されるべきである論理機能が、欠陥のない回路により実行されることを可能にする。図２のマルチプレクサ構成は、装置の使用中に、シフトされた各論理素子の出力信号を本来の列に戻すように向け直して、本来のドライバが用いられるようにする。これは、これらのドライバのプログラミングデータが、装置のプログラミング中に、シフトされた列にとどまるのではなく、欠陥回路を含む本来の列に戻るようにシフトされることを必要とする。
図４に示されるように、装置の様々なコンポーネントのプログラミングデータは、シリアルにロードされる。例えば、論理アレイブロックの行のドライバのプログラミングデータはすべて、その行の論理素子、入力マルチプレクサ回路、およびプログラマブルマルチプレクサ３８のプログラミングデータをロードする前に、ロードされ得る。シフト用マルチプレクサ７０は、ドライバプログラミングデータを、欠陥の検出前にそのデータが本来用いられるべきであった行に戻すように選択的に向け直すために用いられる。例えば、列２が欠陥回路を含む場合、本来列２のドライバのために意図されたプログラミングデータは、シフトされた列２のプログラミングデータの残りとともに、マルチプレクサ６８’により列３にシフトされるが、経路７２およびマルチプレクサ７０’を介して、列２および適切なセル６０’に戻すように向け直される。
プログラミングデータは、セル６０の各列の頂部からシリアルにロードされるため、列２のドライバのプログラミングデータを列３から列２に戻すように向け直すようにマルチプレクサ７０’を構成すると、マルチプレクサ７０’を通過するその他すべてのプログラミングデータは、そのデータが列３の回路のものであっても、列２に向けられる。従って、マルチプレクサ７０により列２に戻されるプログラミングデータが、列３に戻されることを確実にして、列３に関連するプログラマブル論理が正しくプログラムされるようにするために、マルチプレクサ７４’が用いられる。その他のマルチプレクサ７０および７４はまた、ドライバおよびその他の回路コンポーネントのプログラミングデータを、装置３０をプログラムするために適切なセルに向けるように構成される。
論理の各列が、欠陥論理領域の回復中に論理がシフトされる場合にはいつでも使用され得る補助ドライバの組(auxiliary set of drivers)を備える場合、ドライバ５２のプログラミングデータは、その本来の列に戻されるように経路付けし直される必要はない。このタイプの１つの適切な構成が、図５に示される。図５に示されるように、論理素子７６のＬおよびＧ出力は、通常のドライバ８０または補助ドライバ８２のいずれかを介して、水平方向の導体７８に接続され得る。列が欠陥を持たなければ、その列の論理素子７６の出力は、通常のドライバ８０を介して、水平方向の導体７８に提供される。
例えば、列２の論理に欠陥がなければ、論理素子７６ａのＬおよびＧ出力は、通常のドライバ８０と接続８４および８６とを介して、水平方向の導体７８に付与される。列２に欠陥があれば、通常は論理素子７６ａの論理により実行される論理機能が、論理素子７６ｂにより実行される。これは、本来列２の論理のために意図されるプログラミングデータが装置のプログラミング中に列３にシフトされるように装置を構成することにより、達成される。列２で用いられていたであろう出力ドライバ接続パターンと同じ出力ドライバ接続パターンを列３に保持するために、論理素子７６ｂのＬおよびＧ出力は、補助ドライバ８２と接続８８および９０とを介して、水平方向の導体７８に付与される。
各列に関連する補助ドライバ８２は、水平方向の導体７８への接続について、前の列（即ち、右側の次の列）に関連する通常のドライバ８０と同じ接続を作る。例えば、列３のＬおよびＧ出力についての補助ドライバ８２に関連する接続である接続８８および９０は、列２のＬおよびＧ出力についての通常のドライバ８０に関連する接続である接続８４および８６と同じ水平方向の導体に接続される。列２が欠陥を含む場合、列１の論理素子７６が通常のドライバ８０を使用し、列２の論理素子は使用されない。列３および冗長列の論理素子は、補助ドライバ８２を用いる。
図２に示されるように、入力マルチプレクサ回路３６ａおよび３６ｊは、「エンドキャップ」である。エンドキャップは、装置３０のレイアウトに対称性を与え、且つ、ソフトウェアの適合の潜在的な問題点を低減することにより装置３０のプログラミングを容易にする活性入力マルチプレクサ回路である。入力マルチプレクサ回路３６ａは、論理素子３２ａの反対側に配置される入力マルチプレクサ回路３６ｄのバランスをとることにより対称性を与え、そして、入力マルチプレクサ回路３６ｊは、論理素子３２ｄの反対側に配置される入力マルチプレクサ回路３６ｇのバランスをとることにより対称性を与える。
エンドキャップに隣接する入力マルチプレクサに欠陥が検出されると、プログラミングデータは、論理素子の行の中央で欠陥が検出された場合とは幾らか異なる態様でシフトされる。具体的には、３つのコンポーネント（１つの論理素子および２つの入力マルチプレクサ回路）のプログラミングデータではなく、４つの論理コンポーネント（１つの論理素子および３つの入力マルチプレクサ回路）のプログラミングデータがシフトされる。例えば、図２の装置３０の入力マルチプレクサ回路３６ｉで欠陥が検出されると、以下に示す論理の領域のプログラミングデータがシフトされる。入力マルチプレクサ回路３６ｉ（入力マルチプレクサ回路３６ｇにシフトされる）、論理素子３２ｄ（論理素子３２ｃにシフトされる）、入力マルチプレクサ回路３６ｈ（入力マルチプレクサ３６ｆにシフトされる）、および、入力マルチプレクサ回路３６ｇ（入力マルチプレクサ回路３６ｅにシフトされる）。この切り換え構成は、入力マルチプレクサ回路３６ｉに関連するプログラミングデータだけをシフトすることと等価である。
ある特定の状況では、スペア回路を設けることに関連する間接費を削減することが望ましい可能性がある。図６に示されるように、プログラマブル論理アレイ装置９２は、論理領域９４のアレイを含み、各論理領域９４は、論理アレイブロックの２つのグループ（ＧＯＬ）９６を有する。各ＧＯＬ９６は、論理アレイブロック９８の２つの組を含む。スペア論理アレイブロック１００は、各論理領域９４において、行ごとに論理アレイブロック９８の２つの組の中心に設けられ得る。図２に示される冗長機構などの冗長機構は、スペア論理アレイブロック１００を用いて論理領域９４を回復するために用いられ得る。スペア論理アレイブロック１００が中心に配置されるため、論理アレイブロック９８の２つの組を含む各行には、そのようなスペア論理アレイブロック１００を２つ設けるのではなく、単一のスペア論理アレイブロック１００を設けるだけでよく、それにより間接費を削減する。
上記構成は、典型的には、より大型のシステムの部分にされるプログラマブル論理装置において用いられる。図７は、デジタルデータ処理システム１０４において用いられる、本発明の冗長回路を含むプログラマブル論理装置１０２を示す。データ処理システム１０４は、プロセッサ１０６、メモリ１０８、Ｉ／Ｏ回路１１０、および周辺ドライバ１１２、というコンポーネントの１つ以上を含み得る。これらのコンポーネントは、システムバス１１４により互いに結合され、システム１０４に含まれる回路板１１６にある。
システム１０４は、コンピュータネットワーキング、データネットワーキング、計装（instrumentation）、ビデオ処理、デジタル信号処理、または、プログラマブル論理を使用する利点が望ましいその他の任意の応用、などの幅広い範囲の様々な応用において用いられ得る。プログラマブル論理装置１０２は、様々な異なる論理機能を実行するために用いられ得る。例えば、プログラマブル論理装置１０２は、プロセッサ１０６と協働して作業するプロセッサまたはコントローラとして構成されてもよい。プログラマブル論理装置１０２はまた、システム１０４内の共有資源へのアクセスを調停するためのアービタとして用いられてもよい。さらに別の実施例では、プログラマブル論理装置１０２は、プロセッサ１０６と、システム１０４内のその他のコンポーネントの１つとの間のインタフェースとして構成されてもよい。
本発明のプログラマブル論理装置の様々なコンポーネント間に作られるプログラム可能な接続は、幅広い範囲の様々な方法のいずれで実現されてもよい。例えば、プログラム可能な接続の各々は、幾つかの入力のいずれかを出力に接続するための１つまたは複数のスイッチ、などの比較的単純なプログラマブルコネクタであってもよい。そのような接続の各々は、ランダムアクセスメモリセル、などのメモリセルを用いて構成され得る。あるいは、プログラマブルコネクタは、（例えば、入力の幾つかを論理的に組み合わせることにより）論理を実行することができるとともに、接続を作ることができる、幾らかより複雑なエレメントであってもよい。例えば、プログラム可能な接続の各々は、ＡＮＤ、ＮＡＮＤ、ＯＲまたはＮＯＲ、などの機能を実現する積項論理を用いてもよい。プログラム可能な接続を実現するのに適したコンポーネントの例としては、消去可能なプログラマブルリードオンリメモリ（ＥＰＲＯＭ）、電気的に消去可能なプログラマブルリードオンリメモリ（ＥＥＰＲＯＭ）、パストランジスタ、伝送ゲート、アンチヒューズ、レーザヒューズ、任意の金属リンク、などがある。これらのプログラマブルコンポーネントは、プログラマブルコンポーネントおよび様々なプログラマブル論理回路を制御するために用いられる構成データを格納する様々なプログラマブル機能制御エレメントまたはメモリセルにより制御され得る。適切な機能制御エレメントの例としては、スタティックランダムアクセスメモリ（ＳＲＡＭ）セル、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）セル、ファーストインファーストアウトセル、ＥＰＲＯＭ、ＥＥＰＲＯＭ、機能制御レジスタ（例えば、Wahlstromの米国特許第3,473,160号に記載のもの）、強誘電メモリ、ヒューズ、アンチヒューズ、などがある。上記の様々な例から、本発明が、一回限りのプログラマブル装置および再プログラム可能な装置の両方に適用可能であることが分かる。
上記説明は、単に本発明の原理の例示であり、本発明の範囲および精神から逸脱することなく、当業者により様々な改変がなされ得る。
【図１】
0003865789.tif 000002
【図２】
0003865789.tif 000003
【図３】
0003865789.tif 000004
【図４】
0003865789.tif 000005
【図５】
0003865789.tif 000006
【図６】
0003865789.tif 000007
【図７】
0003865789.tif 000008