(57)【特許請求の範囲】
【請求項１】
外部のプログラマブルロジックデバイスを構成する情報を記憶するための構成メモリであって、
前記情報を記憶するためのメモリアレイと、
データ出力ポートとを含み、前記データ出力ポートは前記メモリアレイに結合され、前記情報は前記データ出力ポートを介して前記構成メモリから転送可能であり、さらに、
前記メモリアレイに結合されてＪＴＡＧ命令を受取るためのＪＴＡＧポートと、
ＪＴＡＧ回路とを含み、前記ＪＴＡＧ回路は前記ＪＴＡＧポートからＪＴＡＧ命令のグループのうちの１つの命令を受取りかつ前記ＪＴＡＧ命令に従って前記構成メモリの動作を制御することが可能である、構成メモリ。
【請求項２】
前記メモリアレイは前記ＪＴＡＧポートを介してプログラム可能である、請求項１に記載の構成メモリ。
【請求項３】
前記メモリアレイはインシステムでプログラム可能である、請求項１に記載の構成メモリ。
【請求項４】
前記情報はプログラマブルロジックデバイスを構成するための構成データである、請求項１に記載の構成メモリ。
【請求項５】
前記情報は前記ＪＴＡＧ命令の受信に応答して転送可能である、請求項１に記載の構成メモリ。
【請求項６】
前記メモリアレイは、
出力端子をさらに含み、前記出力端子は前記ＪＴＡＧ命令の受信に応答して第１の論理状態から第２の論理状態に変化する、請求項１に記載の構成メモリ。
【請求項７】
情報を記憶するのに使用するための構成メモリであって、
入出力端子と、
抵抗器とを含み、前記抵抗器は前記入出力端子と電圧源との間に選択的に結合され、さらに、
エミュレーションビットを含み、前記エミュレーションビットはユーザがプログラム可能であり、さらに、
プログラマブルスイッチを含み、前記プログラマブルスイッチは前記抵抗器に結合され、前記プログラマブルスイッチは前記エミュレーションビットがアサートされた際に前記抵抗器を前記入出力端子から切り離す、構成メモリ。
【請求項８】
前記エミュレーションビットがアサートされると、前記入出力端子が３状態になる、請求項７に記載の構成メモリ。
【請求項９】
情報を記憶するのに使用するための構成メモリであって、
クロッキング事象を提供するクロック信号と、
前記情報を記憶するためのメモリアレイと、
第１および第２の入力制御線と、
アドレスカウンタとを含み、前記アドレスカウンタは前記メモリアレイにアドレスを提供し、前記アドレスカウンタは前記第１および第２の入力制御線に応答してイネーブルされ、前記アドレスカウンタは前記第２の入力制御線に応答してリセットされ、これにより、前記アドレスカウンタがイネーブルされると前記アドレスカウンタは各クロッキング事象で前記メモリアレイ内の次のアドレスに進められ、さらに、
第１の出力端子と、
デコードロジックとを含み、前記デコードロジックは前記アドレスカウンタが前記メモリアレイ内の情報の最後の項目のアドレスに対応する値を有すると、前記第１の出力端子を第１の論理状態から第２の論理状態に変化させ、さらに、
前記情報がそれを介して前記構成メモリから転送可能であるデータ出力ポートと、
ＪＴＡＧ回路とを含み、前記ＪＴＡＧ回路はＪＴＡＧポートからＪＴＡＧ命令のグループのうちの１つの命令を受取りかつ前記ＪＴＡＧ命令に従って前記構成メモリの動作を制御することが可能である、構成メモリ。
【請求項１０】
前記メモリアレイは前記ＪＴＡＧポートを介してプログラム可能である、請求項９に記載の構成メモリ。
【請求項１１】
前記メモリアレイはインシステムでプログラム可能である、請求項９に記載の構成メモリ。
【請求項１２】
前記情報はプログラマブルロジックデバイスを構成するための構成データである、請求項９に記載の構成メモリ。
【請求項１３】
前記第１の入力制御線と電圧源との間に選択的に結合される第１の抵抗器と、
前記第２の入力制御線と前記電圧源との間に選択的に結合される第２の抵抗器と、
第２のデータ出力端子と前記電圧源との間に選択的に結合される第３の抵抗器と、
エミュレーションビットとをさらに含み、これにより、前記エミュレーションビットがアサートされると、前記第１、第２、および第３の抵抗器が前記第１の入力制御線、前記第２の入力制御線、および前記第２のデータ出力端子から切り離される、請求項７に記載の構成メモリ。
【請求項１４】
前記第１、第２および第３の抵抗器は、前記メモリアレイと共通の物理的パッケージ内に収められる、請求項１３に記載の構成メモリ。
【請求項１５】
発振器をさらに含み、前記発振器は前記クロック信号を選択的に提供し、さらに、
双方向クロック端子を含み、前記双方向クロック端子は前記構成メモリが第１の動作モードにある場合には前記発振器によって、第２の動作モードにある場合には外部クロック信号によって、選択的に駆動される、請求項９に記載の構成メモリ。
【請求項１６】
第２の出力端子をさらに含み、前記出力端子は前記ＪＴＡＧポートを介した専有ＪＴＡＧ命令の受信に応答して第１の論理状態から第２の論理状態に変化する、請求項９に記載の構成メモリ。
【請求項１７】
構成メモリを含み、前記構成メモリは情報を記憶するためのメモリアレイと、前記情報を転送するためのデータ出力ポートと、ＪＴＡＧポートからＪＴＡＧ命令のグループのうちの１つの命令を受取りかつ前記ＪＴＡＧ命令に従って前記構成メモリの動作を制御することが可能なＪＴＡＧ回路とを有し、さらに、
プログラマブルロジックデバイスを含み、前記プログラマブルロジックデバイスは前記構成メモリの前記データ出力ポートに結合され、これにより前記情報は前記構成メモリから前記プログラマブルロジックデバイスへと転送可能である、デジタルシステム。
【請求項１８】
前記構成メモリは前記ＪＴＡＧポートを介してプログラム可能である、請求項１７に記載のデジタルシステム。
【請求項１９】
前記メモリアレイはインシステムでプログラム可能である、請求項１７に記載のデジタルシステム。
【請求項２０】
前記情報はプログラマブルロジックデバイスを構成するための構成データである、請求項１７に記載のデジタルシステム。
【請求項２１】
前記情報は前記ＪＴＡＧ命令の受信に応答して転送可能である、請求項１７に記載のデジタルシステム。
【請求項２２】
前記構成メモリはさらに、
出力端子を含み、前記出力端子は前記ＪＴＡＧ命令の受信に応答して第１の論理状態から第２の論理状態に変化する、請求項１７に記載のデジタルシステム。
【請求項２３】
プログラマブルロジックデバイスを構成する方法であって、
メモリアレイと、ＪＴＡＧポートからＪＴＡＧ命令のグループのうちの１つの命令を受取りかつ前記ＪＴＡＧ命令に従って前記構成メモリの動作を制御することが可能なＪＴＡＧ回路とを有する第１の構成メモリを提供するステップと、
前記第１の構成メモリの前記メモリアレイを構成データでプログラムするステップと、
前記構成データを前記第１の構成メモリの前記メモリアレイから前記プログラマブルロジックデバイスへと転送するステップとを含む、方法。
【請求項２４】
前記プログラムするステップはさらに、
構成データを前記ＪＴＡＧポートを介して前記構成メモリの前記メモリアレイに転送するステップをさらに含む、請求項２３に記載の方法。
【請求項２５】
前記プログラムするステップはインシステムのプログラミングによって達成される、請求項２３に記載の方法。
【請求項２６】
前記データを転送するステップはさらに、
ＪＴＡＧ命令を前記ＪＴＡＧポートを介して前記構成メモリに送るステップと、
前記ＪＴＡＧ命令に応答して前記構成メモリ上の出力信号をアサートするステップと、
前記出力信号を前記プログラマブルロジックデバイスで受取るステップと、
前記プログラマブルロジックデバイスが前記構成データを受取るよう準備するステップと、
前記構成データを前記プログラマブルロジックデバイスに送るステップとをさらに含む、請求項２３に記載の方法。
【請求項２７】
前記データを転送するステップは、前記構成データを前記構成メモリから一度に１ビットずつ送り出すことによって達成される、請求項２３に記載の方法。
【請求項２８】
メモリアレイを有する第２の構成メモリを提供するステップと、
前記第２の構成メモリの前記メモリアレイを付加的な構成データでプログラムするステップと、
前記構成データが前記プログラマブルロジックデバイスに転送された後に、前記付加的な構成データを前記プログラマブルロジックデバイスに転送するステップとをさらに含む、請求項２３に記載の方法。
【請求項２９】
構成メモリと、
プログラマブルロジックデバイスとを含み、前記プログラマブルロジックデバイスは請求項２３の方法によって構成されている、デジタルシステム。
【請求項３０】
複数のプログラマブルロジックデバイスをプログラムする方法であって、
メモリアレイと、データ出力ポートと、ＪＴＡＧポートと、前記ＪＴＡＧポートからＪＴＡＧ命令のグループのうちの１つの命令を受取りかつ前記ＪＴＡＧ命令に従って前記構成メモリの動作を制御することが可能なＪＴＡＧ回路とを有する構成メモリを提供するステップと、
前記構成メモリの前記メモリアレイを構成データでプログラムするステップと、
前記構成データを前記構成メモリから前記複数のプログラマブルロジックデバイスの各々に転送するステップとを含む、方法。
【請求項３１】
前記複数のプログラマブルロジックデバイスは互いに結合されてプログラマブルロジックエレメントの連続するチェーンを形成し、前記連続するチェーンは、前記複数のプログラマブルロジックデバイスのうちの第１のプログラマブルロジックデバイスのデータ入力ポートが前記構成メモリに結合されかつ、前記連続するチェーン内の後続のプログラマブルロジックデバイスの各々のデータ入力ポートが前記連続するチェーン内の先行するプログラマブルロジックデバイスのデータ出力ポートに結合され、前記構成データは前記構成メモリから前記複数のプログラマブルロジックデバイスの各々に前記連続するチェーンを介して直列に転送される、請求項３０に記載の方法。
【請求項３２】
前記転送するステップは、
前記構成データの第１の部分を第１のプログラマブルロジックデバイスに第１の経路を介して直列に転送するステップと、その後で
前記構成データの第２の部分を第２のプログラマブルロジックデバイスに第２の経路を介して直列に転送するステップとをさらに含む、請求項３０に記載の方法。
【請求項３３】
前記転送するステップは、
前記構成データの第１の部分を第１の経路を介して第１のプログラマブルロジックデバイスに転送するステップと、
同時に、前記構成データの第２の部分を第２の経路を介して第２のプログラマブルロジックデバイスに転送するステップとをさらに含む、請求項３０に記載の方法。
【請求項３４】
前記転送するステップは、
前記構成データの第１の部分を第２のプログラマブルロジックデバイスを介して第１のプログラマブルロジックデバイスに直列に転送するステップと、
前記構成データの第２の部分を前記構成メモリからの直接の経路を介して第２のプログラマブルロジックデバイスに直列に転送するステップとをさらに含む、請求項３０に記載の方法。
【請求項３５】
第２の構成メモリを提供するステップと、
前記第２の構成メモリを付加的な構成データでプログラムするステップと、
前記構成データを転送するステップの後に、前記付加的な構成データを前記複数のプログラマブルロジックデバイスのうち少なくとも１つに転送するステップとをさらに含む、請求項３０に記載の方法。
【請求項３６】
外部のプログラマブルロジックデバイスのための構成情報を記憶する構成メモリをプログラムする方法であって、前記構成メモリは、メモリアレイと、ＪＴＡＧポートからＪＴＡＧ命令のグループのうちの１つの命令を受取りかつ前記ＪＴＡＧ命令に従って前記構成メモリの動作を制御することが可能なＪＴＡＧ回路とを有し、前記方法は、
前記ＪＴＡＧ命令を前記ＪＴＡＧポートに送るステップと、
前記ＪＴＡＧポートを介して構成データを前記構成メモリの前記メモリアレイに転送するステップとを含む、方法。
【請求項３７】
前記構成データは前記転送するステップに先立ってディスケット上に記憶される、請求項３６に記載の方法。
【請求項３８】
前記構成データはコンピュータソフトウェアプログラムによって生成される、請求項３６に記載の方法。
【発明の詳細な説明】
【０００１】
【発明の背景】
この発明は、一般に集積回路および集積回路を構成するための技術に関する。特定的にはこの発明は、プログラマブルロジックデバイス（ＰＬＤ）の構成に使用する情報を記憶するのに特に有益である構成可能メモリに関する。たとえばこの発明は、アルテラ社（Altera）のフレックス（Flex：商標）１０Ｋおよびフレックス８ＫラインのＰＬＤとインタフェース可能なデバイスを提供する。しかし、この発明の原理を使用して設計されたデバイスは、種々の目的のための情報の記憶に、および種々のデバイスとのインタフェースに、有益に使用されるであろう。
【０００２】
当業界においてＰＬＤは周知である。設計者はこれらにより、標準仕様の部品を使用して特殊化された論理機能を実行することが可能となる。ＰＬＤはまた、設計者が種々の論理機能のためにユーザに合せて仕様変更することが可能な集積回路である。以上のように、ＰＬＤは標準、固定、集積回路の補給管理上の利点と、特別注文のデバイスのアーキテクチャの柔軟性とを兼ね備える。これらのデバイスを使用することによって、企業内でのカスタム論理機能の設計および製造が可能となり、一方、技術上の製品の立案から実際の製造までにかかる長い期間、工作機械にかかる高いコスト、複雑な部品調達戦略、およびカスタムデバイスに伴う専用の在庫の問題が解消される。さらに、その設計は、設計計画および購入契約を覆すことなく容易に変更が可能である。
【０００３】
典型的なＰＬＤは、集積回路製造業者のもとに届いた時点ではまだ特定の機能を実行することはできず、このデバイスはまず構成されなくてはならない。ＰＬＤはしばしば複数の基準論理ブロックを含み、これらは任意にプログラムが可能であり、かつ互いに相互接続され得る。しばしば、ＰＬＤはＳＲＡＭ等の揮発メモリを使用して実現される。揮発メモリは、システムへの電力供給が終わった時点でその構成を失う。他にも、ＰＬＤは、電源が切断されても構成を保持する不揮発性メモリとともに実現されてもよい。不揮発性メモリには、消去再書込可能読出専用メモリ（ＥＰＲＯＭ）、電気的消去再書込可能読出専用メモリ（ＥＥＰＲＯＭ）、ヒューズ、およびアンチヒューズ等がある。
【０００４】
使用されるプログラム可能エレメントが揮発性メモリである場合には、そのメモリセルは、デバイスを所望のとおりに動作させるために、システムの電源投入時に構成されなくてはならない。これは典型的に、構成データを外部ソースからＰＬＤ内にロードすることによってなされる。この外部ソースとは、たとえば不揮発性メモリである。しばしば、この構成データは構成メモリ内に記憶される。構成メモリとは、情報を記憶することが可能なメモリである。ＰＬＤの構成は、この構成データを構成メモリからＰＬＤに転送することによって達成される。構成を実施する方法としては他には、ＣＰＵ、システムコントローラ、その他等のインテリジェントホストによって、このデータを外部メモリから転送する方法がある。
【０００５】
この発明は、構成メモリが改良されることが望ましいことを認識している。プログラマブルロジックデバイスおよび、それらが中で動作するシステムがより複雑になるにつれて、構成メモリおよびそれを使用するための技術は改良されなくてはならない。今日のプログラマブルロジックデバイスはますます大型にかつ複雑になりつつある。その結果として、より大量の構成データがそれらを構成するのに必要となり、構成のプロセスのスピードおよび柔軟性がますます大きな関心事となっている。さらに、デバイスを構成するための新しい技術は、構成メモリの現時点の技術水準を超えたさらなる進歩を要求している。
【０００６】
以上により、改良された構成メモリが必要とされている。
【０００７】
【発明の概要】
この発明は、情報を記憶するのに使用するための構成メモリを提供する。この構成メモリは以下のものを含む。すなわち、中に情報を記憶するメモリアレイと、情報をそれを通じて転送するデータ出力ポートと、ＪＴＡＧポートからＪＴＡＧ命令のグループのうちの１つの命令を受取りかつそのＪＴＡＧ命令に従って構成メモリの動作を制御することの可能なＪＴＡＧ回路とを含む。ＪＴＡＧポートは、ジョイント・テスト・アクション・グループ（Joint Test Action Group ）のインタフェース標準（ＪＴＡＧ標準）によって規定される。このＪＴＡＧ標準は、ＩＥＥＥ標準１１４９．１−１９９０、「ＩＥＥＥ標準テストアクセスポートおよび境界走査アーキテクチャ（IEEE Standard Test Access Port and Boundary-Scan Architecture ）」内に記載されており、これがすべての目的のためにここに引用により援用される。
【０００８】
好ましい実施例においては、構成メモリ内に記憶される情報とは、プログラマブルロジックデバイスを構成するのに使用するための構成データである。
【０００９】
別の好ましい実施例においては、構成メモリと共通の物理的パッケージ内に抵抗器が設けられて、制御信号のうちのいくつかを所望の論理レベルに保持する。これらの抵抗器は、システムから選択的に切り離すことが可能であり、それにより先行技術のデバイスとの後方互換性が与えられる。
【００１０】
プログラマブルロジックデバイスを構成するための方法もまた提供される。この方法は以下のステップを含む。すなわち、メモリアレイと、ＪＴＡＧポートからＪＴＡＧ命令のグループのうちの１つの命令を受取りかつそのＪＴＡＧ命令に従って構成メモリの動作を制御することが可能なＪＴＡＧ回路とを有する構成メモリを提供するステップと、そのメモリアレイを構成データでプログラムするステップと、構成データをプログラマブルロジックデバイスに転送するステップとを含む。この発明の好ましい実施例においては、構成メモリはデータをＪＴＡＧポートを介してそれに転送することによってプログラムされる。別の好ましい実施例では、データはＪＴＡＧ命令を受信した時点で構成メモリからプログラマブルロジックデバイスに転送される。
【００１１】
構成メモリをインシステムでプログラムするための方法もまた提供される。この方法は、ＪＴＡＧ命令を構成メモリのＪＴＡＧポートに送るステップと、構成データをＪＴＡＧポートを介して構成メモリのメモリアレイ内に転送するステップとを含む。
【００１２】
この発明の性質および利点は、この明細書の残りの部分および添付の図面を参照することにより、さらにより理解されるであろう。
【００１３】
【実施例の説明】
図１は、この発明が具現化され得る典型的な環境を図示する。デジタルシステムは、処理ユニット１０１を有し、処理ユニット１０１はメモリ１０５および入出力デバイス１１１と結合される。このようなデジタルシステムの一例がパーソナルコンピュータであるが、広い範囲にわたる種々の消費者向け電子機器製品にこの発明は有益に使用されるであろう。この発明は、電気通信、スイッチ、ネットワーク、および他の多くの技術分野で応用が可能である。
【００１４】
図１のデジタルシステムは、この発明に記載される種類の１または複数の構成メモリ１２４およびプログラマブルロジックデバイス１２１を含む。図１では、プログラマブルロジックデバイス１２１および構成メモリ１２４は処理ユニット１０１の一部分として示されているが、メモリ１０５または入出力デバイス１１１がプログラマブルロジックデバイス１２１および構成メモリ１２４を含むことも可能である。
【００１５】
示されるデジタルシステムは、単一の基板上に、多数の基板上に、または多数の筐体内でも実現が可能である。たとえば、構成メモリ１２４は、プログラマブルロジックデバイス１２１とは全く異なる位置にあって、ネットワークで接続されてもよい。さらに、デジタルシステムは、示されるエレメントをいかなる数でまたはいかに組合せて含んでもよい。たとえば、このデジタルシステムは多数の処理ユニット１０１を有してもよく、または、処理ユニット１０１を全く有さなくてもよい。
【００１６】
プログラマブルロジックデバイス１２１の利点の１つは、その論理的柔軟性である。したがって、このようなデバイスを種々のデジタルシステム内で利用する多くの応用例が、当業者には容易に思いつかれるであろう。
【００１７】
図２を参照して、プログラマブルロジックデバイス２１０と接続したこの発明の構成メモリ２００の使用が示される。構成メモリ２００は、プログラマブルロジックデバイス２１０を所望の論理機能を行なうように構成するのに使用するための構成データを含む。プログラマブルロジックデバイス２１０はしばしば、揮発性セルを含むデバイスであり、揮発性セルは機械の電源切断時にそれらの値を保持しない。したがって、機械の電力投入時に、またはプログラマブルロジックデバイス２１０を再構成する際に、構成データがプログラムマブルジックデバイス２１０内にロードされなくてはならない。構成メモリ２００はこの構成データを保持する。
【００１８】
構成データは、データバス２２０を介して構成メモリ２００からプログラマブルロジックデバイス２１０に転送される。この転送動作は、データクロック２２２によって同期化されるが、このデータクロック２２２は構成メモリ２００、プログラマブルロジックデバイス２１０、または他のデバイスから供給され得る。構成メモリ２００がデータクロック２２２をシステムに提供する場合、このメモリはマスタとなる。構成メモリ２００がデータクロック２２２を外部デバイスから受取る場合には、このメモリはスレーブとなる。
【００１９】
さらに、構成メモリ２００とプログラマブルロジックデバイス２１０との間にはコントロールバス２２４が存在する。コントロールバス２２４は、２つのデバイス２００および２１０の間にハンドシェイク信号を提供する。このハンドシェイク信号は、各々のデバイスに、自らの動作をいつ開始するか、および他方のデバイスが動作をいつ完了したかについての情報を提供する。コントロールバス２２４については、以下により詳細に説明する。
【００２０】
構成メモリ２００に関するこの発明の一特徴は、ＪＴＡＧポート２３０である。ＪＴＡＧポート２３０は、構成メモリ２００がシリアルの業界標準プロトコルを介してアクセスされることを可能にする。ＪＴＡＧポートの構造およびＪＴＡＧポートの使用に関連したプロトコルは、上に引用したＪＴＡＧ標準内に記載されている。
【００２１】
この発明の構成メモリを使用してプログラマブルロジックデバイスを構成する際に、多くの技術が使用され得る。構成技術のいくつかの例が、米国特許番号第５，５９０，３０５号内に記載されており、これがすべての目的のためにここに引用により援用される。図３は、この技術の一例を示す。図３には、単一のプログラマブルロジックデバイス３１０に結合された単一のシリアル構成メモリ３００が示される。シリアル構成メモリ３００は、データクロック（ＤＣＬＫ）、データポート３３０、制御線、およびＪＴＡＧポートを有する。
【００２２】
この発明の一実施例においては、制御線はたとえば４本の別個の線からなり得る。制御線のうち１本は、初期設定構成線（ＩＮＩＴ−ＣＯＮＦ）である。ＩＮＩＴ−ＣＯＮＦは、シリアル構成メモリ３００からの出力であり、シリアル構成メモリ３００がプログラマブルロジックデバイス３１０の構成を開始することが可能となった際にローに駆動されるが、これが、プログラマブルロジックデバイス３１０にデータを受信する準備をするように指示する。
【００２３】
データの受信が可能になると、プログラマブルロジックデバイス３１０はシリアル構成メモリ３１０のチップ選択線（ｎＣＳ）をローに駆動する。このｎＣＳ線は、構成プロセスの間はローに駆動されるが、他の場合にはハイの論理レベルに保持される。ｎＣＳがアサートされると、シリアル構成メモリ３００はデータポート３３０上に一度に１ビットずつデータを送り出し始める。このデータの送り出しは、構成メモリ３００内のすべてのデータがプログラマブルロジックデバイス３１０に転送され終わるまで続けられる。
【００２４】
このデータ転送が完了すると、構成メモリ３００はカスケード線（ｎＣＡＳＣ）と称される別の制御線をアサートする。ｎＣＡＳＣ線は、構成メモリ３００がその構成データのすべての排出を完了したことを知らせる信号を送る出力である。ｎＣＡＳＣ線は、多数の構成メモリをつなぎ合わせるのに有益である。この技術は以下に述べる。図３においては、他の構成メモリが存在しないので、ｎＣＡＳＣは接続されないままである。
【００２５】
構成メモリ３００の最後の制御線が出力イネーブル線（ＯＥ）である。ＯＥの目的は、構成メモリ３００をイネーブルすることである。構成の途中エラーが発生すると、構成メモリ３００はディスエーブルされる。すなわち、プログラマブルロジックデバイス３１０は、構成中にエラーが発生すると、ＯＥをローに駆動する。構成メモリ３００は、ＯＥがローになったのを認めて、そのレジスタをリセットして、構成のプロセスを最初からやり直す。
【００２６】
図３には、ＪＴＡＧポートの制御線もまた示される。ＪＴＡＧポートは、４つの制御信号を含むが、これらはＪＴＡＧ標準内に規定されている。ＪＴＡＧ入力信号は、テストデータ入力線（ＴＤＩ）、テストモード選択線（ＴＭＳ）、およびテストクロック（ＴＣＫ）を含む。テストデータ出力線（ＴＤＯ）もまた設けられる。ＪＴＡＧポートは、ＴＤＩ線上にデータを直列に送り込み、かつ、データをＴＤＯ線上に直列に送り出すことによって動作する。ＴＣＫ線は、動作を同期化させるクロックを提供する。ＴＭＳ線は、ＪＴＡＧポートが種々の動作状態間で切換わるように操作される。
【００２７】
図４は、構成メモリ３００の好ましい実施例をより詳細に示した図である。好ましい実施例においては、図４に示されるコンポーネントは単一の半導体基板上に製造される。構成データはメモリアレイ４００内に記憶されるが、メモリアレイ４００はランダムアクセスメモリとして構成され、データ入力４０２およびアドレス入力４０４を有する。メモリアレイ４００はたとえばＥＰＲＯＭ、ＥＥＰＲＯＭ、フラッシュ、アンチヒューズ、ヒューズ、ＳＲＡＭ、または他の種類のメモリセルからなってもよく、複数の種類のメモリセルの組合せであってもよい。アドレス入力４０４のためのアドレスは、アドレスカウンタ４１０によって提供される。メモリアレイ４００は直列操作のために１ビット幅であってもよく、または、並列操作のために多ビット幅であってもよい。これら２つの種類の動作を以下に説明する。
【００２８】
アドレスカウンタ４１０は、ＯＥがアサートされていないときに、初期値、たとえばすべてゼロにリセットされ、ｎＣＳがアサートされかつＯＥがアサートされた際にイネーブルされる。アドレスカウンタ４１０はデータクロック（ＤＣＬＫ）によって駆動される。すなわち、構成メモリ３００がイネーブルされている際に、アドレスカウンタ４１０は各クロックサイクルにつき１だけインクリメントされる。この方法によって、メモリアレイ４００は各メモリ位置で逐次アクセスされる。メモリ位置がアドレスカウンタ４１０によってアクセスされると、その位置におけるデータがシフトレジスタ４２０内に記憶される。シフトレジスタ４２０から、構成データは構成メモリ３００からプログラマブルロジックデバイスへと送り出される。
【００２９】
構成データがメモリアレイ４００から完全に排出されたことを判定するデコードロジック４３０もまた含まれる。デコードロジック４３０は、アドレスカウンタ４１０の出力を参照して、メモリアレイ４００からデータがなくなったことを判定する。これは、現時点でのアドレスを、メモリアレイ４００に記憶された情報の最後の一片のアドレスと比較することによってなされ得る。メモリアレイ４００からデータがなくなると、ｎＣＡＳＣ４３４がアサートされて、データ出力線４３６が３状態になる。
【００３０】
データクロック線（ＤＣＬＫ）は双方向端子である。これは２つの動作モードを有する。１つの動作モードにおいて、構成メモリ３００はマスタである。すなわち、ＤＣＬＫは構成メモリ３００内の発振器４４０から供給される。発振器４４０は、ｎＣＳ線およびＯＥから入力を受取る発振器コントロールロジック４４２によって制御される。マスタとして動作している場合、アドレスカウンタ４１０のためのクロックおよびＤＣＬＫの両方が発振器４４０から供給される。
【００３１】
構成メモリ３００の第２の動作モードは、スレーブとしてのものである。スレーブとして動作している場合、ＤＣＬＫは外部デバイスから供給される。たとえば、クロックは外部のプログラマブルロジックデバイスから、または、同じシステム内の別の構成メモリから供給され得る。スレーブモードにある場合、発振器４４０からの出力は３状態となり、発振器４４０がＤＣＬＫから分離される。スレーブモードでは、ＤＣＬＫは構成メモリ３００への入力として動作する。
【００３２】
好ましい実施例においては、構成メモリ３００がマスタとして動作するかスレーブとして動作するかの決定は、電源投入時になされる。この情報はラッチ４４８内に記憶される。ラッチ４４８は、ｎＣＳおよびＯＥの初期の状態を記憶する。電源投入時にｎＣＳがローでありかつＯＥがハイであれば、構成メモリ３００はマスタである。他の場合にはこれはスレーブである。
【００３３】
構成メモリ３００はまた、ＪＴＡＧ回路４５０を含む。ＪＴＡＧ回路４５０は、ＴＤＩ、ＴＭＳおよびＴＣＫを入力として受取る。ＪＴＡＧ回路４５０内にＴＡＰコントローラ４５４が設けられる。ＴＡＰコントローラ４５４は、ＴＭＳ信号およびＴＣＫ信号における変化に応答してＪＴＡＧ回路の動作のシーケンスを制御する、同期式有限状態マシンである。この動作は、ＪＴＡＧ標準内に記載されている。
【００３４】
ＪＴＡＧ回路４５０内には、命令レジスタ４５６もまた設けられる。命令レジスタ４５６は、ＴＡＰコントローラ４５４がある状態にある間のみロード可能である。他の状態である間は、ＪＴＡＧ回路４５０は命令レジスタ４５６内の命令に応じて作用する。
【００３５】
メモリアレイ４００のメモリセルは互いにデイジー連鎖されて、１または複数のＪＴＡＧテストデータレジスタを形成する。ＪＴＡＧテストデータレジスタ内の第１のエレメントはＴＤＩに結合される。ＪＴＡＧテストデータレジスタの最後のエレメントは、構成メモリ３００の外部線に接続されるが、これがＴＤＯである。
【００３６】
ＴＡＰコントローラ４５４を適正な状態に位置付け、かつ、正しい命令を命令レジスタ４５６内にロードすることによって、データはＪＴＡＧテストデータレジスタを介してメモリアレイ４００のメモリセル内に直列に走査される。この態様により、メモリアレイ４００を構成データでプログラムすることが可能となる。メモリアレイ４００のプログラミングは、構成メモリがそれが存在するシステム内に位置する間にも達成され得る。これは、インシステムプログラミング（ＩＳＰ）と称される。命令レジスタ、命令セット、およびＪＴＡＧコントローラ状態マシンの詳細は、ＪＴＡＧ標準に記載される。
【００３７】
構成メモリ３００のための構成データは外部ソフトウェアによって供給され得る。たとえば、カリフォルニア州サンホーゼイ（San Jose, CA）のアルテラ・コーポレーション（Altera Corporation）が販売しているアルテラ製ＭＡＸ＋ＰＬＵＳ  ＩＩソフトウェアが、１または複数のプログラマブルロジックデバイスのために所望の論理機能を実現するのに使用され得る。ＭＡＸ＋ＰＬＵＳ  ＩＩソフトウェアは、設計を実現するための構成データを生成する。この構成データが、プログラマブルロジックデバイスをプログラムするのに使用される。この構成データはたとえば、ただしこれらに限定されるものではないが、ランダムアクセスメモリ、キャッシュメモリ、磁気媒体、ハードディスクドライブ、フロッピーディスク、ＣＤ  ＲＯＭ、および他の多くのメモリ等のメモリ内に記憶され得る。好ましい種類の構成データは、当業界で“ＳＶＦ”ファイルとして公知の標準構成ファイルフォーマット内に記憶される。たとえば、ＳＶＦファイルはフロッピーディスク内に記憶され得る。このＳＶＦファイルは、コンピュータからのケーブルを介してこの発明の構成メモリ内に転送され得る。
【００３８】
付加的な出力端子としてＩＮＩＴ−ＣＯＮＦがあるが、これは構成メモリ３００からの出力信号であって、構成メモリ３００が構成データの転送を開始することが可能になった際にそれを知らせる。この発明の一実施例においては、ＩＮＩＴ−ＣＯＮＦはメモリアレイ４００のセルのうちの１つに結合される。ＪＴＡＧ命令、たとえば専有ＪＴＡＧ命令は、ＪＴＡＧ回路４５０に送られ得るが、これがＩＮＩＴ−ＣＯＮＦをアサートする。ＪＴＡＧ命令は命令レジスタ４５６内にロードされ得る。ＪＴＡＧ回路がデータをセル内にロードすることにより、ＩＮＩＴ−ＣＯＮＦがアサートされる。別の実施例においては、構成メモリ３００はメモリアレイ４００の外側に別個の回路を有し、これが専有ＪＴＡＧ命令によって操作されてＩＮＩＴ−ＣＯＮＦをアサートする。
【００３９】
ｎＣＳ信号は論理レベルローでアサートされ得る。ＯＥは論理レベルハイでアサートされ得る。すなわち、構成メモリ３００が選択されるべき際には、ｎＣＳはローに駆動されかつＯＥはハイに保たれる。エラーが発生した場合には、ＯＥがローに駆動されて、構成メモリ３００がディスエーブルされる。他の場合には、これらの出力は論理レベルハイに保たれ得る。これらの入力をハイに保つのは、ＶＣＣと入力信号との間に位置付けられる抵抗器４６０および４６２である。先行技術の構成メモリにおいては、抵抗器は構成メモリの外部に、ＶＣＣと入力信号との間に配置された。
【００４０】
この発明の一実施例においては、抵抗器４６０はＶＣＣとｎＣＳ線との間に位置付けられ、かつ、別の抵抗器４６２はＶＣＣとＯＥとの間に位置付けられる。これらの抵抗器４６０および４６２は、構成メモリパッケージ内のメモリアレイ４００と共通の物理的パッケージ内に位置付けられる（すなわち、同じ半導体基板上に製造される）。このことは、外部抵抗器の数を減じ、外部抵抗器に伴って生じるスペースの要求および配線の必要のすべてを排除するという利点を有する。これは、必要とされる部品の数を減じ、したがって、欠陥または損傷の可能性を有する部品の数を減じる。さらに、設計者は、設計に必要とされる抵抗器の適正なサイズの決定について思い悩む必要もなくなる。
【００４１】
同様に、構成メモリ３００がプログラマブルロジックデバイスに構成サイクルを開始するよう信号を送る際に、ＩＮＩＴ−ＣＯＮＦはローに駆動される。アサートされていない状態では、これは論理レベルハイに保たれる。ＩＮＩＴ−ＣＯＮＦを論理レベルハイに保つために、ＶＣＣとＩＮＩＴ−ＣＯＮＦとの間に抵抗器４６４が配置される。過去においては、抵抗器はチップの外部に配置されていた。この発明の一実施例においては、抵抗器４６４はチップパッケージ内に位置付けられて、それにより上述のすべての利点がもたらされる。
【００４２】
この発明の構成メモリは、過去に使用されていたデバイスと後方互換可能であるように、エミュレーションビット４７０を備える。エミュレーションビット４７０がセットされると、ｎＣＳ、ＯＥ、およびＩＮＩＴ−ＣＯＮＦ上の抵抗器４６０、４６２および４６４はプログラマブルスイッチ４８０、４８２、および４８４によって回路から切り離される。さらに、先行技術のデバイスはＪＴＡＧインタフェース、ＴＤＯ出力線、ＩＮＩＴ−ＣＯＮＦ出力を有さないので、エミュレーションビット４７０がセットされるとこれらの出力は３状態になる。エミュレーションビット４７０をセットすることで、この発明のデバイスは、システムを再設計することなく、先行技術で入手可能であった構成メモリと交換可能に使用することが可能となる。
【００４３】
プログラマブルスイッチ４８０および４８２は、構成メモリ３００がスレーブとして動作している際に、抵抗器４６０および４６２をシステムから切り離すことも可能である。
【００４４】
この発明は、単一のシリアル構成メモリと単一のプログラマブルロジックデバイスとを構成する技術のみにとどまることはない。この発明の原理を利用して他の技術もまた提供される。たとえば、システムは、単一のシリアル構成メモリと多数のプログラマブルロジックデバイスとで、多数のシリアル構成メモリと単一のプログラマブルロジックデバイスで、または、多数のシリアル構成メモリと多数のプログラマブルロジックデバイスとで、動作が可能である。
【００４５】
さらに、構成メモリは、多数のデータ出力線とともに並列デバイスとして動作が可能である。この場合には、多数のプログラマブルロジックデバイスが単一の構成メモリに結合され得るか、または、多数のプログラマブルロジックデバイスが多数の構成メモリと結合され得る。
図５は、多数のシリアル構成メモリ５００および５１０、ならびに多数のプログラマブルロジックデバイス５２０および５３０を示す。構成メモリ５００および５１０は、両方のプログラマブルロジックデバイス５２０および５３０のための構成データを保持する。第１の構成メモリ５００は、第１のプログラマブルロジックデバイス５２０内にそのデータを出力し始め、構成メモリ５００が構成データを出力し終わるかまたは第１のプログラマブルロジックデバイス５２０が完全に構成されるまで出力を続ける。第１の構成メモリ５００がデータを出力し終わると、第２の構成メモリ５１０がデータを出力し始める。第１のプログラマブルロジックデバイス５２０が完全に構成されると、第２のプログラマブルロジックデバイス５３０がデータを受入れ始める。この際の制御信号のハンドシェィクは上述と同様である。第１の構成メモリ５００からのｎＣＡＳＣ信号は、第２の構成メモリ５１０のｎＣＳと結合される。第１の構成メモリ５００からデータがなくなると、ｎＣＡＳＣがアサートされて、第２の構成メモリ５１０がデータの出力を始める。第１のプログラマブルロジックデバイス５２０は、その構成が完全に終わると、状態線（ｎＣＥＯ）をローに駆動する。これが、第２のプログラマブルロジックデバイス５３０がデータの受入れを開始してもよいことを知らせる。
【００４６】
構成メモリおよびプログラマブルロジックデバイスは、システム内に必要とされる数だけ、この方法によって互いにつなげることが可能である。プログラマブルロジックデバイス５２０または５３０のいずれかに構成プロセス中にエラーが発生すると、プログラマブルロジックデバイス５２０または５３０のｎＳＴＡＴＵＳ線がアサートされる。ｎＳＴＡＴＵＳは構成メモリ５００および５１０のＯＥに接続されている。このことがシステム全体をリセットし、構成プロセスは初めから再度開始される。
【００４７】
システムのためのデータクロックＤＣＬＫは、構成メモリのうちの１つ、たとえば第１の構成メモリ５００、または、プログラマブルロジックデバイスのうちの１つ、たとえば第１のプログラマブルロジックデバイス５２０のいずれかによって提供される。デバイスのうちの１つのみがデータクロックのためのマスタとして使用され、他のデバイスはスレーブモードにおかれる。
【００４８】
上述のように、構成メモリは並列操作にも使用され得る。図４を参照して、メモリアレイ４００はわずか１ビット幅ではなく、多ビット幅であり得る。データ出力線も、単一のデータ出力線４３６ではなく、多数のデータ出力線が設けられて、メモリアレイ４００の各列につき別個のデータ出力線が提供される。シフトレジスタ４２０はメモリアレイ４００からデータをロードして、多数のデータ出力線４３６の各々の上に一度に１ビットずつそのデータを出力する。この方法によって、単一の構成メモリが多数のプログラマブルロジックデバイスに結合されることが可能となる。
【００４９】
図６は、単一の並列構成メモリ６１０に結合された一連のプログラマブルロジックデバイス６００（１、２、…ｉ）を示す。並列の構成メモリ６１０は多数のデータ出力線６２０（１、２、…ｉ）を有する。個別のデータ出力線６２０（ｉ）の各々は単一のプログラマブルロジックデバイス６００（ｉ）に接続される。構成メモリ６１０は、上述のように構成を開始することが可能になると、各プログラマブルロジックデバイス６００に接続されているＩＮＩＴ−ＣＯＮＦをアサートする。その後データは、プログラマブルロジックデバイスの各々にそのデータ入力線を介して並列に転送される。
【００５０】
プログラマブルロジックデバイスのための構成が完了すると、ＣＯＮＦ−ＤＯＮＥ線が高められる。コントロールロジック６３０は、すべてのプログラマブルロジックデバイスが完全に構成された際にそれを判定し、かつ、エラーが発生したかどうかを判定する。この情報は、構成メモリに、それぞれｎＣＳ線およびＯＥ線上にフィードバックされる。
【００５１】
各々のプログラマブルロジックデバイスの構成は、同時に行なわれる。単一の構成メモリ内に十分なデータを保持できない場合には、多数の並列構成メモリをカスケード接続してもよい。この場合には、第１の構成メモリが、そのデータのすべてを出力し、その後、第２の構成メモリに、プログラマブルロジックデバイスへのデータの出力を開始するよう、ｎＣＡＳＣを介して信号を送る。
【００５２】
図７は、この発明の構成メモリを使用して多数のプログラマブルロジックデバイスをプログラムする別の技術を示した図である。（図４内により詳細に示される構成メモリのような）シリアル構成メモリ７００は第１のプログラマブルロジックデバイス７１０と結合される。構成メモリ７００はＪＴＡＧポートを有し、これは、そのＴＤＩ、ＴＭＳおよびＴＣＫ線を介してＪＴＡＧ命令を受取る。プログラマブルロジックデバイス７１０は第２のプログラマブルロジックデバイス７２０に結合され、これが第３のプログラマブルロジックデバイス７３０に、以下同様に結合される。その結果としてのプログラマブルロジックデバイスの連続のチェーン（デイジー−チェーン）は、所望の長さにまで延長が可能である。
【００５３】
構成メモリ７００からの構成データは、上述のように第１のプログラマブルロジックデバイス７１０に送られる。しかし、第１のプログラマブルロジックデバイス７１０もまた構成データ出力ポートを有する。データは第１のプログラマブルロジックデバイス７１０内に送られ、これが満たされると、上述のように構成プロセスが終了するのではなく、データは構成データ出力ポート７１２上に送り出されて、第２のプログラマブルロジックデバイス７２０に送られる。プログラマブルロジックデバイス７２０からの出力もまた、プログラマブルロジックデバイス７３０への入力に接続される。この態様によって、いかなる数のデバイスもデイジー連鎖することが可能であり、データは、構成が完了するまで直列にそれらを通過し続ける。プログラマブルロジックデバイス７３０は、それが完全に構成されると、コントロールビット７３２をアサートし、これにより構成メモリ７００が停止する。
【００５４】
ここにこの発明を使用したいくつかの特定の実施例および技術を提示したが、上述の実施例はこの発明の例示のみを意図したものであって、上述の例によって前掲の請求の範囲を限定するものではない。当業者には、この発明の範囲および性質から離れることなく、記載された特定の構造または論理エレメントに変形が加えられ得ることが容易に理解されるであろう。たとえば、論理レベルは切換えが可能であり、信号の名前もまた変えることができる。設計にその性質を変えることなく付加的な回路を追加することもまた可能である。さらにたとえば、他の組合せの並列およびシリアル構成メモリも構成技術として使用が可能である。
【図面の簡単な説明】
【図１】構成メモリを含むデジタルシステムのブロック図である。
【図２】互いに結合された構成メモリおよびプログラマブルロジックデバイスのブロック図である。
【図３】構成メモリとプログラマブルロジックデバイスとの間のインタフェース線を示す、より詳細なブロック図である。
【図４】この発明の構成メモリのより詳細な図である。
【図５】多数の構成メモリを使用して多数のプログラマブルロジックデバイスを直列に構成するための技術を示したブロック図である。
【図６】多数のプログラマブルロジックデバイスを並列に構成するための技術を示したブロック図である。
【図７】ＰＬＤを互いにデイジー連鎖することによって多数のＰＬＤを構成メモリから構成するための技術を示したブロック図である。
【符号の説明】
２００  構成メモリ
２１０  プログラマブルロジックデバイス
４００  メモリアレイ
４４０  発振器
４５０  ＪＴＡＧ回路
４５６  命令レジスタ
４６０  抵抗器
４６２  抵抗器
４６４  抵抗器
【図１】
0003883655.tif 000002
【図２】
0003883655.tif 000003
【図３】
0003883655.tif 000004
【図４】
0003883655.tif 000005
【図５】
0003883655.tif 000006
【図６】
0003883655.tif 000007
【図７】
0003883655.tif 000008