(57)【特許請求の範囲】
【請求項１】
プログラマブル・ロジック・デバイスおよび埋め込みロジックを有するシステムのコンフィグレーションを行う方法において：
前記プログラマブル・ロジック・デバイスのコンフィグレーションを行うための第１のコンフィグレーション・データ・セクションおよび前記埋め込みロジックのコンフィグレーションを行うための第２のコンフィグレーション・データ・セクションを含む単一のシリアル化されたビット・ストリームを前記システムに供給するステップと、
前記ビット・ストリームに関連づけられたアドレスを、第１および第２のマルチプレクサのそれぞれに提供するステップと、
前記アドレスの第１の値に応答して、前記第１のマルチプレクサが前記プログラマブル・ロジック・デバイスに対し前記第１のコンフィグレーション・データ・セクションを提供することがイネーブルになるステップと、
前記アドレスの第２の値に応答して、前記第２のマルチプレクサが前記埋め込みロジックに対し前記第２のコンフィグレーション・データ・セクションを提供することがイネーブルになるステップと
を含むことを特徴とする方法。
【請求項２】
プログラマブル・ロジック・デバイスと、
前記プログラマブル・ロジック・デバイスに結合された埋め込みロジックと、
前記プログラマブル・ロジック・デバイスおよび前記埋め込みロジックの両方のコンフィグレーションを行うための単一のシリアル化されたビット・ストリームを供給するように動作可能なコンフィグレーション・ソースと、
回路とを備え、
前記回路は、
前記ビット・ストリームに関連づけられたアドレスを、第１および第２のマルチプレクサのそれぞれに提供し、
前記アドレスの第１の値に応答して、前記第１のマルチプレクサが前記プログラマブル・ロジック・デバイスに対し前記ビット・ストリームの一部を提供することがイネーブルになり、
前記アドレスの第２の値に応答して、前記第２のマルチプレクサが前記埋め込みロジックに対し前記ビット・ストリームの一部を提供することがイネーブルになる
ことを特徴とするシステム。
【請求項３】
前記プログラマブル・ロジック・デバイスおよび前記埋め込みロジックは、単一の半導体チップ上に配置されることを特徴とする前記請求項２記載のシステム。
【請求項４】
前記単一のシリアル化されたビット・ストリームは：
前記埋め込みロジックを識別する第１のヘッダ；
コンフィグレーションが行われる前記埋め込みロジック内のリソースを識別する第１のアドレス・フィールド；
前記リソースのコンフィグレーションを行うための第１のコンフィグレーション・データのストリーム；および、
前記第１のコンフィグレーション・データのストリームが前記リソースに転送されたことを示す第１のファイル終了インジケータ；
からなることを特徴とする前記請求項２記載のシステム。
【請求項５】
前記単一のシリアル化されたビット・ストリームは：
前記プログラマブル・ロジック・デバイスを識別する第２のヘッダ；
コンフィグレーションが行われる前記プログラマブル・ロジック・デバイス内のリソースを識別する第２のアドレス・フィールド；
前記リソースのコンフィグレーションを行う第２のコンフィグレーション・データのストリーム；および、
前記第２のコンフィグレーション・データのストリームが前記リソースに転送されたことを示す第２のファイル終了インジケータ；
からなることを特徴とする前記請求項４記載のシステム。
【請求項６】
プログラマブル・ロジック・デバイスと、
前記プログラマブル・ロジック・デバイスに結合され、かつ中央処理ユニットを有する埋め込みロジックと、
前記埋め込みロジックのコンフィグレーションを行うための単一のシリアル化されたビット・ストリームを供給するように動作可能なコンフィグレーション・ソースと、
回路とを備え、
前記回路は、
前記ビット・ストリームに関連づけられたアドレスを、第１および第２のマルチプレクサのそれぞれに提供し、
前記アドレスの値に応答して、前記第１のマルチプレクサが前記埋め込みロジックに対し前記ビット・ストリームを提供することがイネーブルになる一方、前記第２のマルチプレクサはそれがディスエーブルになる
ことを特徴とするシステム。
【請求項７】
前記プログラマブル・ロジック・デバイスおよび前記埋め込みロジックは、単一の半導体チップ上に配置されることを特徴とする前記請求項６記載のシステム。
【請求項８】
プログラマブル・ロジック・コンフィグレーション・データが外部ソースから供給されて、前記プログラマブル・ロジック・デバイスのコンフィグレーションが行われることを特徴とする前記請求項７記載のシステム。
【請求項９】
埋め込みロジックおよびプログラマブル・ロジック・デバイスを含むシステムとするチップ搭載システムに、コンフィグレーション・データを提供するコンフィグレーション装置であって、前記装置は、
前記埋め込みロジック内のロジック・デバイスのアドレスが収められるアドレス・フィールドを含むヘッダと、前記ロジック・デバイスのコンフィグレーションを行うためのコンフィグレーション・データとを有するコンフィグレーション・データ・ビット・ストリーム・レジスタと、
回路とを備え、
前記回路は、
第１および第２のマルチプレクサのそれぞれに前記アドレスを提供し、
前記アドレスの値に応答して、前記第１のマルチプレクサが前記ロジック・デバイスに対し前記コンフィグレーション・データを提供することがイネーブルになる一方、前記第２のマルチプレクサはそれがディスエーブルになる
ことを特徴とするコンフィグレーション装置。
【請求項１０】
前記ヘッダは、さらに前記コンフィグレーション・データ内のエラーに関するチェックに使用されるＣＲＣデータを含む巡回冗長（ＣＲＣ）フィールドを包含することを特徴とする前記請求項９記載のコンフィグレーション装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、集積回路に関する。より具体的に述べれば、本発明は、埋め込みロジックを有するＰＬＤのコンフィグレーションに向けられている。
【０００２】
【従来の技術】
プログラマブル・ロジック・デバイス（ＰＬＤ）は、各種のロジック・ファンクションを実行するためにシステム設計者がカスタマイズすることができる集積回路である。ＰＬＤは、固定集積回路の利点とカスタム集積回路の柔軟性を結合している。これらのデバイスを使用することによって、カスタム・ロジック・ファンクションの設計および作成がインハウスで可能になり、しかも長期にわたるリードタイム、高い設備費用、およびカスタム・デバイスに関連した専用の在庫管理の問題が排除される。さらに、設計スケジュールおよび購入契約を覆すことなく、設計を容易に変更することもできる。
【０００３】
しばしばＰＬＤは、任意にプログラムされ、かつ互いに相互接続された複数の汎用ロジック・ブロックを含んでいる。これらのブロックは、スタティック・ランダム・アクセス・メモリ（ＳＲＡＭ）等の揮発性メモリまたは、それに代えて消去可能プログラマブル読み出し専用メモリ（ＥＰＲＯＭ）、電気的消去可能プログラマブル読み出し専用メモリ（ＥＥＰＲＯＭ）、ヒューズ、アンチヒューズ等の不揮発性メモリを使用して実装されることになる。プログラマブル・エレメントが揮発性メモリである場合には、希望に応じてデバイスを動作させるために、システムのパワー・アップ時にメモリ・セルのコンフィグレーションを行わなければならない。これは、通常、外部コンフィグレーション・ソースからＰＬＤにコンフィグレーション・データをロードすることによってなされる。コンフィグレーション・ソースは、たとえば、フラッシュ・メモリ等の不揮発性メモリとすることができる。ＰＬＤのコンフィグレーションは、コンフィグレーション・ソースからＰＬＤにコンフィグレーション・データを転送することによって達成される。
【０００４】
近年は、たとえばＰＬＤ内に、別のロジック・デバイスを埋め込む傾向が見られる。埋め込みデバイス（つまり「埋め込みロジック」）は、コントロール・ロジックおよびその他のアプリケーション専用ロジック・デバイス、たとえば揮発性メモリ、不揮発性メモリ、キャッシュ等を包含することがあり、それらはプログラマブル・ロジック・コアのコンフィグレーションに先行して埋め込まれる。プロセッサ（または中央処理ユニット（ＣＰＵ））が埋め込みロジックの部分を構成することもある。プロセッサは、１つの半導体チップに実装された集積回路であり、通常は、各種ユニットの中でも特に、命令実行ユニット、レジスタ・ファイル、算術論理演算ユニット（ＡＬＵ）、乗算器等を含んでいる。プロセッサは、ディジタル・システム中に見られ、パーソナル・コンピュータ等においては命令実行用に、またほとんどのディジタル・デバイスにあってはそのオペレーションのコントロールに使用することができる。
【０００５】
【発明が解決しようとする課題】
埋め込みロジックの追加が望ましいことは立証されているが、ＰＬＤコアのコンフィグレーションに加えて、埋め込みロジック・デバイスのセット・アップ（つまりコンフィグレーション）を行うための方法のニーズが残されたままになっている。
【０００６】
【課題を解決するための手段】
本発明の第１の側面においては、プログラマブル・ロジック・デバイスおよび埋め込みロジックを有するシステムのコンフィグレーションを行う方法が開示されている。この方法は、単一のシリアル化されたビット・ストリームをこのシステムに供給するステップを含む。このビット・ストリームは、固有のプロトコルによって特性決定され、プログラマブル・ロジック・デバイスのコンフィグレーションを行う第１のコンフィグレーション・データ・セクションとプログラマブル・ロジック・デバイスのコンフィグレーションを行う第２のコンフィグレーション・データ・セクションを含む。
【０００７】
本発明の第２の側面においては、プログラマブル・ロジック・デバイスおよびプログラマブル・ロジック・デバイスに結合される埋め込みロジックを有するディジタル・システムが開示されている。また、コンフィグレーション・ソースが備えられて、プログラマブル・ロジック・デバイスおよび埋め込みロジックの両方のコンフィグレーションを行うための単一のシリアル化されたビット・ストリームを供給する。
【０００８】
本発明の第３の側面においては、チップ搭載システムにコンフィグレーション・データを提供するためのコンフィグレーション装置が開示されており、当該システムは、埋め込みロジックおよびプログラマブル・ロジック・デバイスを含む。このコンフィグレーション装置は、埋め込みロジック内のロジック・デバイスのアドレスが収められるアドレス・フィールドを含むヘッダおよび、ロジック・デバイスのコンフィグレーションを行うためのコンフィグレーション・データが収められるデータ・フィールドを有するコンフィグレーション・データ・ビット・ストリーム・レジスタを包含する。
【０００９】
以下に示す詳細な説明および添付の図面は、本発明の本質および利点のより良い理解を提供することになろう。
【００１０】
【発明の実施の形態】
図１に、本発明が具体化されたディジタル・システムのブロック図を示す。このシステムは、単一のボード、複数のボード、さらには複数の筐体内に実施される。図１は、プログラマブル・ロジック・デバイス１０６を使用したシステム１０を示している。プログラマブル・ロジック・デバイスは、現在のところ、たとえばＡｌｔｅｒａ（オルテラ）のＭＡＸ（登録商標）、ＦＬＥＸ（登録商標）、およびＡＰＥＸ（商標）シリーズのＰＬＤによって代表される。システム１０は、ディジタル・コンピュータ・システム、ディジタル信号プロセッシング・システム、専用ディジタル交換網、またはその他のプロセッシング・システムとすることができる。さらに、この種のシステムは、たとえば、純粋に例示のみを目的として列挙するが、テレコミュニケーション・システム、自動車システム、コントロール・システム、コンシューマ・エレクトロニクス、パーソナル・コンピュータその他等の各種広範な応用に向けて設計することができる。
【００１１】
図１に示した一例の実施形態において半導体デバイス１００は、メモリ１０２およびＩ／Ｏ  １０４に結合されており、プログラマブル・ロジック・デバイス（ＰＬＤ）１０６および埋め込みロジック１０７を含んでいる。この埋め込みロジックは、各種のコンポーネントの中でも特にＣＰＵ（またはプロセッサ）１０９、不揮発性メモリ１１１、揮発性メモリ１１３およびその他のペリフェラル１１５を含んでいる。ＰＬＤアレイ１０６および埋め込みロジックのすべてのリソースがシステム・バス１１７に結合されている。
【００１２】
図２を参照すると、本発明の一実施形態に従った一例のコンフィグレーション・ロジックのブロック図が示されている。埋め込みコントローラ２１０は、２つのソースのうちの１つから、すなわち外部コンフィグレーション・ソース２００またはスレーブ・インターフェース２２５からコンフィグレーション・データを受け取るように構成されている。外部コンフィグレーション・ソース２００は、コンフィグレーション・データを提供することが可能であり、かつ、限定する意図ではないが、ＲＡＭ、キャッシュ・メモリ、ハードディスク・ドライブ、フロッピーディスク、ＣＤＲＯＭ等にストアしておくことができる。
【００１３】
一実施形態においては、コンフィグレーション・データを、＜アドレス，［長さ］，データ，［ＣＲＣ］＞というフォーマットに従ってシリアル・ビット・ストリームの形式で与えることができる。一例を示すと、２n アドレス空間の場合であれば、アドレス・フィールドがｎビットのワードによって表され、長さフィールドが、コンフィグレーション・データを構成するｎビットのワードの数を識別し、データ・フィールドがｎビットのコンフィグレーション・データ・ワードのシリアル・ストリームを包含することになる。ＣＲＣ（巡回冗長検査）フィールドは、データの保護に使用される。
【００１４】
一実施形態においては、コンフィグレーション・データが２つのメイン・セクションからなる：すなわち、ＰＬＤアレイ２２０用のコンフィグレーション・データおよび埋め込みロジック２３０用のコンフィグレーション・データである。これによれば、第１のコンフィグレーション・データ・ビット・ストリームが、まずマスタ・インターフェース２３５を介して埋め込みロジック２３０に送られ、次に、ＰＬＤコントローラ２４０を介して第２のコンフィグレーション・データがＰＬＤアレイ２２０に送られるが、後者はオプションである。ＰＬＤコントローラ２４０へのコンフィグレーション・データの転送は、シリアル・ビット・ストリーム・モードの形、あるいはパラレル同期モードの形とすることができる。その実施形態が図１に示されており、それを参照すると、コンフィグレーション・インターフェース１２４を経由したＰＬＤアレイ１０６に対するシリアル・インターフェース１２２だけでなく、ＰＬＤアレイ１０６に対するパラレル・インターフェース１２０（システム・バス１１７経由）が示されている。シリアル・モードは、すべての転送に使用されるが、パラレル同期モードは、スレーブ・インターフェース２２５からコンフィグレーション・データを受け取るために使用される。ＰＬＤアレイ２２０のコンフィグレーションは、ＪＴＡＧ（ＩＥＥＥ標準１１４９．１）等の業界標準プロトコルを使用することによって行うこともできる。
【００１５】
別の実施形態においては、埋め込みロジック２３０の任意のリソースのコンフィグレーションおよび／またはＰＬＤアレイ２２０のコンフィグレーションは、任意の順序で行うことができる。たとえば、一実施形態として、ＰＬＤアレイ２２０のコンフィグレーションを行うことなく埋め込みロジック２３０のプロセッサのコンフィグレーションを行ってもよく、その後、外部メモリ、内部メモリまたはインターネット等の外部ソースからＰＬＤアレイ２２０のコンフィグレーションを行うこともできる。さらに別の実施形態においては、ユーザは、回路ごとに、あるいは全体として埋め込みロジック２３０をディセーブルすることができる。
【００１６】
好ましくは、埋め込みロジック（たとえばオン−チップＲＡＭ）のコンフィグレーションを行うためのコンフィグレーション・データの完全なセットが、たとえば外部コンフィグレーション・ソース２００等にストアされたコンフィグレーション・データ・ファイル内に収められる。この例の実施形態においては、コンフィグレーション・データ・ファイルは、コンフィグレーション・ファイル・ヘッダを含み、それにコンフィグレーション・ファイル・プリアンブルが続き、さらにそれにオプション・レジスタが続く。その後コンフィグレーション・データが示され、さらにその後に埋め込みロジック用のコンフィグレーション・データが完了したことを示すファイル終了（ＥＯＦ）ブロックが続く。最後に、コンフィグレーション・ファイル・ポストアンブルによってコンフィグレーション・ファイルが終了する。
【００１７】
アドレス・フィールドは、好ましくは、データを記述した特定のコントロール・ビットを有する。一例とする３２ビットのアドレス・フィールドの場合、アドレスは４の倍数である。したがって、アドレスの最下位２ビットを別の目的に使用することができる。（より大きい、もしくはより小さいアドレス・フィールド・サイズの場合でも同様の状況になる。）３２ビットの例については、ビット０（つまり最下位ビット）が、その値が１であるか、０であるかによって、次のワードがデータ長の値を保持するか、あるいは長さの値が省略されているかということを示すことができる。別のビット、たとえばビット１を用いて、データにＣＲＣが続くか否かを示すことができる。コンフィグレーション・ファイル・ヘッダ、コンフィグレーション・ファイル・プリアンブルおよびコンフィグレーション・ファイル・ポストアンブルは、たとえば、１１１．．．１１１（１６ビットがすべて１）、０１０００１１０（８ビット）というように、あらかじめ定義済みのパターンを有する設定された数のビットから構成される。
【００１８】
先に触れたように、オプション・レジスタは、コンフィグレーション・データ・ファイルの一部を構成する。オプション・レジスタのすべてのビットは、好ましくはパワー・アップ時にリセットされる（たとえばすべて１）。これらのビットの値は、パワー・アップに続き、シリアル・データ・ストリームによって決定される。オプション・レジスタは、あらかじめ決定された数のビットを含み、たとえば、ＰＬＤコンフィグレーション・データが現在の転送に続くか否か、システムがコンフィグレーション・エラーに応答する方法（つまり、シャットダウンまたは自動コンフィグレーション）、互換性およびプログラマ・オブジェクト・ファイル（ＰＯＦ）の識別といったことを示す。デフォルトにおいては、オプション・レジスタのビット０の値が、現在の転送にＰＬＤコンフィグレーション・データが続くことを示す値にセットされる。しかしながら、選択肢の１つとして、このビットを、現在の転送に続くＰＬＤコンフィグレーション・データがないことを埋め込みコントローラに対して示すようにセットすることもできる。
【００１９】
次に図３を参照すると、本発明に従った別の実施形態３０が示されている。実施形態３０は、埋め込みロジック３０２および／またはＰＬＤ  ３０４のコンフィグレーションを行うためのコンフィグレーション情報が収められるシリアル・ビット・ストリーム３００のレジスタを包含している。一例の実施形態においては、ＰＬＤ  ３０４および埋め込みロジック３０２が単一の半導体チップ上に配置される。コンフィグレーション情報は、アドレス・フィールド３０８、ＣＲＣフィールド３１０および長さフィールド３１１を含むヘッダを有する。長さフィールド３１１には、コンフィグレーション・データの長さに関する情報が収められている。アドレス・フィールド３０８は、デコーダ３１２によって受け取られる。そのデコーダ３１２で、コンフィグレーションを行うべきシステム・リソースが決定される。システム・リソースは、ＰＬＤ  ３０４もしくは、埋め込みロジック３０２内のロジック・デバイスとすることができる。ＣＲＣフィールド３１０内のＣＲＣデータおよびコンフィグレーション・データ３１４は、エラー検出器３１６に供給される。エラー検出器３１６によってエラーが検出されなければ、コンフィグレーション・データ３１４は、それぞれのコントロール入力３２２および３２４においてデコーダ３１２によりコントロールされるマルチプレクサ３１８および３２０に転送される。マルチプレクサ３１８および３２０のうち、いずれがイネーブルになるかは、アドレス・フィールド３０８から供給され、デコーダ３１２によってデコードされるアドレス情報によって決定される。デコード後のアドレス情報から埋め込みロジック３０２内のロジック・デバイスが識別される場合には、マルチプレクサ３１８が選択され、それによってコンフィグレーション・データを埋め込みロジック３０２内の関連するロジック・デバイスに転送することが可能になる。これに対して、デコード後のアドレス情報からＰＬＤ  ３０４が識別される場合には、マルチプレクサ３２０が選択されるのでＰＬＤ  ３０４へのコンフィグレーション・データの転送が可能になる。いずれの場合においても、データの転送は、コンフィグレーション・データに結合されているエンド・フィールド内においてデータ終了ビット（１ないしは複数）が検出されることによって完了する。コンフィグレーション・データ・ビット・ストリームが存在しない場合に、別の実施形態においては、コンフィグレーション・データがデフォルトのコンフィグレーション・ソース３３０から供給され、その結果たとえば、パワー・アップの間に、またはリセット状態の後に、システムの自動的なセット・アップが可能になる。
【００２０】
上記のコンフィグレーション・ロジック・ファンクションは、プロセッサ・ブート・ロード／ソース・ファンクションを包含するものであってもよく、それによってプロセッサに、フラッシュ・メモリからブートするべきか、オン−チップＲＡＭからブートするべきかが伝えられえる。フラッシュ・メモリからブートするモードの場合においては、プロセッサがブートされた後にコンフィグレーション・データが受け取られる。オン−チップＲＡＭからブートするモードの場合においては、コンフィグレーション・データが受け取られてＰＬＤアレイ２２０のコンフィグレーションが行われるまで、また、埋め込みロジック内のオン−チップＲＡＭおよび／またはレジスタをセット・アップするための、たとえばシステムに関するメモリ・マップを指定するコンフィグレーション・データが受け取られるまでプロセッサがリセット状態に保持される。このモードの下においては、コンフィグレーションに続いてブートのためにプロセッサが解放される。
【００２１】
結論を述べると、本発明は、ＰＬＤアレイおよび埋め込みロジックの両方のコンフィグレーションを単一のシリアルビット・ストリームから行うための方法および装置を開示している。ただし、好ましい実施形態を例示した以上の説明は、説明の目的で示したものに過ぎない。それが網羅的であること、ないしは本発明をここに説明した厳格な形に限定することはその意図になく、上記の教示に照らして修正および変形は可能である。つまり、本発明の真の範囲ならびに精神は、そこにあるのではなく、特許請求の範囲およびその等価概念によって示される。
【図面の簡単な説明】
【図１】本発明の一実施形態に従ったディジタル・システムのブロック図を示している。
【図２】本発明の一実施形態に従った一例のコンフィグレーション・ロジックのブロック図を示している。
【図３】本発明の一実施形態に従った一例のコンフィグレーション装置を示している。
【符号の説明】
１００  半導体デバイス
１０２  メモリ
１０４  Ｉ／Ｏ
１０６、３０４  プログラマブル・ロジック・デバイス（ＰＬＤ）
１０７  埋め込みロジック
１０９  ＣＰＵ（またはプロセッサ）
１１１  不揮発性メモリ
１１３  揮発性メモリ
１１５  ペリフェラル
１１７  システム・バス
２００  外部コンフィグレーション・ソース
２１０  埋め込みコントローラ
２２０  ＰＬＤアレイ
２２５  スレーブ・インターフェース
２３０  埋め込みロジック
３００  シリアル・ビット・ストリーム
３０２  埋め込みロジック
３０８  アドレス・フィールド
３１０  ＣＲＣフィールド
３１１  長さフィールド
３１２  デコーダ
３１４  コンフィグレーション・データ
３１６  エラー検出器
３１８、３２０  マルチプレクサ
３２２、３２４  コントロール入力
３３０  コンフィグレーション・ソース
【図１】
0004898020.tif 000002
【図２】
0004898020.tif 000003
【図３】
0004898020.tif 000004