(57)【特許請求の範囲】
【請求項１】
コンピュータ装置上の開発ツールにより開発されるスキーマに従う構成データにより、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）をプログラムする方法であって、
前記コンピュータ装置の記憶装置から、デバイス・ドライバにより前記スキーマを読出すステップと、
前記ＦＰＧＡ内に実装される専用の機能の支援により、前記ＦＰＧＡにＭＵＸ要素を介して接続されるＥＥＰＲＯＭに、前記スキーマをプログラムするステップと、
前記スキーマを前記ＥＥＰＲＯＭから前記ＦＰＧＡに読出すために、ＭＵＸ要素をスイッチするステップと、
前記スキーマを前記ＥＥＰＲＯＭから前記ＦＰＧＡに供給することによる前記ＦＰＧＡの構成の初期化を、前記ＦＰＧＡ内に実装される機能により、前記ＦＰＧＡと前記ＥＥＰＲＯＭとの間に設けられた前記初期化のための信号線を活動化してトリガするステップと
を含む、方法。
【請求項２】
ＰＲＯＭ内のデータにより前記ＦＰＧＡを構成し、前記ＦＰＧＡとデバイス・ドライバとの間の通信を確立するステップを含む、請求項１記載の方法。
【請求項３】
ＦＰＧＡを、前記ＦＰＧＡにＭＵＸ要素を介して接続されるＥＥＰＲＯＭに記憶される構成データと共に使用する方法であって、
前記ＦＰＧＡ内に実装される専用の機能の支援により、前記ＥＥＰＲＯＭに前記構成データをプログラムするステップと、
前記構成データを前記ＥＥＰＲＯＭから前記ＦＰＧＡに読出すために、前記ＭＵＸ要素を制御するステップと、
前記構成データを前記ＥＥＰＲＯＭから前記ＦＰＧＡに供給することによる前記ＦＰＧＡの構成の初期化を、前記ＦＰＧＡ内に実装される機能により、前記ＦＰＧＡと前記ＥＥＰＲＯＭとの間に設けられた前記初期化のための信号線を活動化してトリガするステップと
を含む、方法。
【請求項４】
ＰＲＯＭ素子、ＥＥＰＲＯＭ素子、コンピュータ・バス・システムを介してアクセス可能なＦＰＧＡ素子、及び前記素子の間に接続されるＭＵＸ要素を含むハードウェア回路構成であって、
前記ＰＲＯＭ素子が、前記コンピュータ・バス・システムによる前記ＦＰＧＡの適切な認識のための制御データと、前記ＥＥＰＲＯＭ素子をＥＥＰＲＯＭ−ＦＰＧＡインタフェースによりプログラムするために使用可能なロジックとを含むように構成され、
前記ＦＰＧＡ素子と前記ＥＥＰＲＯＭ素子との間に、前記ＥＥＰＲＯＭ素子内の構成データの供給による前記ＦＰＧＡ素子の構成の初期化を、前記ＦＰＧＡ素子内に実装される機能によりトリガするための信号線を含むように構成され、
前記ＭＵＸ要素が前記ＰＲＯＭ素子または前記ＥＥＰＲＯＭ素子のいずれかの素子からデータを読出すように制御され、当該制御により前記ＦＰＧＡ素子を前記コンピュータ・バス・システムに適切に接続し、前記ＦＰＧＡ素子の構成を前記ＥＥＰＲＯＭ素子内の前記構成データにより初期化する
ハードウェア回路構成。
【請求項５】
ＰＣシステム・バスにより検出可能で、請求項４記載の回路構成を含むＰＣカード。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はフィールド・プログラマブル・ゲート・アレイをプログラムする分野に関する。特に、本発明はエンドユーザによる使用の間、及び前記フィールド・プログラマブル・ゲート・アレイ上で新たな機能を実現する回路の開発の間の、それらの使用の改善に関する。
【０００２】
【従来の技術】
一般に、フィールド・プログラマブル・ゲート・アレイはＦＰＧＡと呼ばれ、特定のコンピュータ機能を実現するために使用される。こうした機能は、例えばビデオ画面、プリンタ、ネットワーク・カードなどの、コンピュータ周辺装置の基本機能を制御するために使用される基本ハードウェア関連機能を実行するように意図される。
【０００３】
更に、ＦＰＧＡは、例えばグラフィック処理において非常に高速に実行される必要のある乗算及び加算演算などの、膨大な量の基本算術計算を要求するアプリケーションで使用される。
【０００４】
ＦＰＧＡは、（百万個もの）多数の相互接続回路により実現される計算機能を実現するために使用される。こうした回路は、特殊なハードウェア（例えば専用のソフトウェア・ツールと共に、開発プラットフォームとして使用されるワークステーションのシリアルまたはパラレル・ポートに接続されるByte BlasterMVのハードウェア装置）の支援により計画及び実現される。
【０００５】
これが図２に示され、そこではＰＣＩカード１８がＰＣの外部の追加のハードウェア３２に接続されるように示される。ロジック３４は、ＦＰＧＡ１６のために開発された構成データにより、ＦＰＧＡを制御及びプログラムし、システム起動時に、ＰＣＩカードがバス・システムにより検出されるために必要な構成データをＦＰＧＡに供給するために使用される。こうした従来の開発環境は、追加のハードウェアまたはプログラマブル読出し専用メモリ素子（ＰＲＯＭ）を要求する。新たな機能を含むように開発されるスキーマは、ＦＰＧＡを含むように開発されたＰＣカード上に配置されるＰＲＯＭ内に供給される。開発者のワークステーションの続くパワーオン後、ＰＲＯＭがＦＰＧＡの構成を制御及び実行する。次に、オペレーションの間にＦＰＧＡの機能がテストされる。スキーマの更新が必要な場合、使用済みのＰＲＯＭは書換えられないので、新たなＰＲＯＭが使用される必要がある。
【０００６】
或いは、電気的消去可能ＰＲＯＭ（ＥＥＰＲＯＭ）がＰＲＯＭの代わりに使用される。これらは更新時に書換えられるが、ＥＥＰＲＯＭへの書込みプロセスを制御するために、外部ハードウェアが同様に必要である。
【０００７】
ＦＰＧＡ機能の開発の間、またはエンドユーザが前記ＦＰＧＡを含むＰＣカード１８を、このカードに組み込まれる機能の更新または拡張のために交換するとき、後者の場合、関係するカードを別のカードにより置換するために、或いはＦＰＧＡ開発者の場合、ＦＰＧＡをプログラムするために使用される少なくともＰＲＯＭを置換するために、カードへの手動のアクセスが必要となる。
【０００８】
基本的に、更新の代わりに、任意の新たな機能がＦＰＧＡ上で実現されなければならない場合、同一のことが当てはまる。
【０００９】
しかしながら、ＰＣカードへの手動アクセスは追加の作業を引き起こし、例えば静電気に敏感な複数の位置に帯電される静電気により、コンピュータのケーシング内で接続される他のハードウェアを損傷するリスクを負う。
【００１０】
【発明が解決しようとする課題】
従って、本発明の目的は、エンドユーザによる使用の間、及び前記ＦＰＧＡ上で新たな機能を実現する回路の開発の間の、ＦＰＧＡの使用を改善するための方法及び回路を提供することである。
【００１１】
【課題を解決するための手段】
本発明の目的は、開示される独立クレーム内で述べられるフィーチャにより達成される。
【００１２】
本発明の概念は、回路に手動アクセスすることなく、ハードウェア電子回路をプログラムまたは更新するための方法及びシステムを含む。
【００１３】
本発明の基本概念によれば、最初にＰＲＯＭまたはＥＥＰＲＯＭ素子を、関係するカード上に物理的に接続することが提案される。この素子はシリアルにアクセスされて、シリアル・データ・ストリームをＦＰＧＡに入力するように意図される。これはＦＰＧＡがコンピュータのＰＣＩバスなどのバス・システムに通知されるとき、並びに従来のデバイス・ドライバを介してカードをアクセスできるようにするために必要である。前述のように、ＦＰＧＡはコンピュータの次のパワーオン時にＰＲＯＭにより自動的に構成され、これはＰＣＩカードがコンピュータのＢＩＯＳにより、正しく検出される要求を満たす。
【００１４】
更に、本発明のハードウェア回路構成は、ＥＥＰＲＯＭ素子及びＦＰＧＡ素子を含み、後者はコンピュータ・バス・システム及び前記素子間に接続されるＭＵＸ要素を介してアクセスされる。
【００１５】
更に、回路構成において、前記ＰＲＯＭ素子が、前記バス・システムによるＦＰＧＡの適切な認識のための制御データを含み、またジョイント・テスト・アクション・グループ（ＪＴＡＧ）に従うようなＥＥＰＲＯＭ−ＦＰＧＡ間インタフェースにより、前記ＥＥＰＲＯＭ素子をプログラムするのに有用なロジックを含むように構成される。本発明によれば、前述のＭＵＸ要素は前記ＰＲＯＭ素子若しくは前記ＥＥＰＲＯＭ素子、または前記ＦＰＧＡ素子のいずれかを選択して、これらの素子からデータを読出すように制御され、それにより前記ＦＰＧＡが前記バス・システムに適切に接続され、前記ＦＰＧＡの構成が前記ＥＥＰＲＯＭから成る内容により初期化される。
【００１６】
前述の回路構成は、カードを物理的にアクセスすることなく、ＦＰＧＡ内容の様々な更新を実行するために使用され得る。これは要約すると、次のように達成される。
【００１７】
第１のステップ・シーケンスの間、ＦＰＧＡは前述のように、ディスクから受信されるスキーマによりＥＥＰＲＯＭをプログラムするために使用される。次に、ＭＵＸがＥＥＰＲＯＭから読出すようにスイッチされて、当初の目論見通り、プログラムされた開発済みスキーマをＦＰＧＡ内に供給する。ＰＲＯＭは単に、最初の起動時にＰＣカードがＢＩＯＳにより認識されるために必要な情報を、ＦＰＧＡに転送するために使用される。従って、本発明の特徴は、ＦＰＧＡ素子が２重に構成されることであり、最初に所望のディスク通信を初期化するために、次にＥＥＰＲＯＭ内容に従い再構成されるように構成される。
【００１８】
本発明に従う方法及び回路は、従来技術の議論において略述した方法に比較して、ＦＰＧＡを含むカードを物理的にアクセスすることなく、ＦＰＧＡをプログラムすることを可能にする利点を有する。結果的に、平均開発時間が短縮され、コストが低減される。
【００１９】
更に、コンピュータの外部で余計なハードウェアが要求されない。
【００２０】
更に、以前のものに比較して、拡張機能を実行するために容易に再プログラム可能な、汎用ＰＣカードを構築することが可能である。或いは、必要に応じて、全体的に異なる機能を実現することが可能である。従って、本発明はＦＰＧＡハードウェアの柔軟性を向上させる。なぜなら、もはやそれは特定の目的だけのために専用でないからである。
【００２１】
【発明の実施の形態】
図１を参照して、本発明に従う回路の本質的要素について説明する。
【００２２】
ＰＲＯＭ１０及びＥＥＰＲＯＭ１２が、マルチプレクサ要素１４を介して、本発明に従い生成される汎用ＰＣカード上に配置されるＦＰＧＡ１６に接続される。ＰＣカードは参照番号１８により、破線で示される。４０本の信号線が入出力信号線としてＦＰＧＡの右側に提供され、コンピュータのＰＣＩバス・システムへの接続を表す。
【００２３】
ＰＲＯＭ１０及びＥＥＰＲＯＭ１２の両方から、クロック信号線及びデータ信号線がＭＵＸ１４のそれぞれの入力に接続される。１対のクロック及びデータ信号線が、ＭＵＸからＦＰＧＡ１６のそれぞれの入力に出力される。
【００２４】
ＭＵＸ要素１４は信号線ＭＵＸ  ＣＴＬを介して制御され、前記信号線が非活動状態のとき、ＰＲＯＭからデータを読出し、前記信号線が活動状態にスイッチされるとき、ＥＥＰＲＯＭ１２からデータを読出す。
【００２５】
更に、従来技術に関連して前述したように、ＦＰＧＡ１６とＥＥＰＲＯＭ１２との間には、ＦＰＧＡからＥＥＰＲＯＭをプログラムするために、４つの接続ＴＣＫ、ＴＤＩ、ＴＭＳ及びＴＤＯが提供される。
【００２６】
更に、信号線INIT_CONFIGがＦＰＧＡ１６の出力から、ＥＥＰＲＯＭ１２の入力に提供される。これの動作については後述する。
【００２７】
ＰＲＯＭ１０は、ＦＰＧＡを構成するために必要な全ての構成データを含み、それによりＦＰＧＡはコンピュータの起動時に、ＢＩＯＳによりＰＣＩバス加入装置として認識され、またデバイス・ドライバを介してアクセスされる。更に、ＰＲＯＭ１０は、前述のようにＪＴＡＧインタフェースにより、ＥＥＰＲＯＭ１２をプログラムするために必要な全てのロジックを含む。
【００２８】
次に図３を参照して、ＥＥＰＲＯＭ及びＦＰＧＡをプログラムするための本質的なステップについて述べる。
【００２９】
パワーオン後（ステップ１１０）、ＦＰＧＡ１６がＰＲＯＭ内容を介して自動的に構成される（ステップ１２０）。ＦＰＧＡはＢＩＯＳにより指示された後、その存在を伝える。ＦＰＧＡはＰＣＩターゲット・デバイス機能を含み、デバイス・ドライバと通信できる。
【００３０】
本方法の第１の態様を表すケースでは、ＦＰＧＡをプログラムするために使用されるＥＥＰＲＯＭが、前述のＦＰＧＡ開発スキーマの新たな更新によりプログラムされる。これは判断ステップ１３０の肯定分岐に相当する。従来のデバイス・ドライバはスキーマすなわち構成データを、それがスキーマ開発ツールにより書込まれた例えばディスクから読出し（ステップ１４０）、これらのデータを前述のＦＰＧＡ内に実装される専用の機能を介して、ＥＥＰＲＯＭ１２にプログラムする（ステップ１５０）。
【００３１】
特に、従来技術のように、専用のＪＴＡＧ信号、すなわちクロック（ＴＣＫ）、データ入力（ＴＤＩ）、モード選択（ＴＭＳ）及びデータ出力（ＴＤＯ）が、図１で示されるように使用される。このようにして、ＥＥＰＲＯＭのプログラミングが完了される。
【００３２】
次に、ＥＥＰＲＯＭ１２の内容によるＦＰＧＡ１６のための構成プロセスが、信号線INIT_CONFIGを介して、いわゆるカード初期化（CARD_INIT）機能を活動化することによりトリガされる。前記トリガ・ステップがＦＰＧＡ内に実装される機能により制御される。
【００３３】
特に、ＭＵＸ１４が信号線ＭＵＸ  ＣＴＬを介してスイッチされ、ＥＥＰＲＯＭ１２の信号線ＣＬＫ及びＤＡＴＡが、ＦＰＧＡ１６に供給される（ステップ１６０）。信号線INIT_CONFIGが実際に活動化されるとき（ステップ１７０）、ＦＰＧＡがＥＥＰＲＯＭの内容により構成される（ステップ１８０）。このようにして、ＦＰＧＡプログラミングが完了される（ステップ１９０）。これは前述のステップを単に繰り返すことにより、スキーマの新たな更新バージョンにより繰り返される。
【００３４】
本方法の第２の態様によれば、ＥＥＰＲＯＭ１２が既に再プログラム済みである。従って、新たなＦＰＧＡ構成スキーマの開発が完了された場合が考慮される。
【００３５】
この場合、起動プロシージャ（ステップ１１０）の後、図３に示される方法が継続し、ステップ１２０でＰＲＯＭが処理され、判断ステップ１３０を否定分岐により去り、次に前述のステップ１６０に継続する。
【００３６】
以上、本発明について特定の典型的な実施例に関連して述べてきたが、本発明の趣旨及び範囲から逸れることなく、様々な変更が可能であることが明らかであろう。従って、ここでの明細事項及び図面は、限定的なものではなく、例証的なものと理解されるべきである。
【００３７】
本発明の概念は、ＦＰＧＡスキーマ開発環境をサポートするＰＣと共に使用されるバス・システムとは独立である。
【００３８】
まとめとして、本発明の構成に関して以下の事項を開示する。
【００３９】
（１）コンピュータ装置上の開発ツールにより開発されるスキーマに従う構成データにより、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）をプログラムする方法であって、
前記コンピュータ装置の記憶装置から、デバイス・ドライバにより前記スキーマを読出すステップと、
前記ＦＰＧＡ内に実装される専用の機能の支援により、前記ＦＰＧＡに接続されるＥＥＰＲＯＭにＭＵＸ要素を介して、前記スキーマをプログラムするステップと、
前記ＥＥＰＲＯＭから前記ＦＰＧＡに読出すために、ＭＵＸ要素をスイッチするステップと、
前記スキーマを前記ＥＥＰＲＯＭから前記ＦＰＧＡに供給することにより、前記ＦＰＧＡの構成をトリガするステップと
を含む、方法。
（２）ＦＰＧＡを、前記ＦＰＧＡにＭＵＸ要素を介して接続されるＥＥＰＲＯＭに記憶される構成データと共に使用する方法であって、
前記ＥＥＰＲＯＭから前記ＦＰＧＡに読出すために、前記ＭＵＸ要素を制御するステップと、
前記スキーマを前記ＥＥＰＲＯＭから前記ＦＰＧＡに供給することにより、前記ＦＰＧＡの構成をトリガするステップと
を含む、方法。
（３）ＰＲＯＭ素子、ＥＥＰＲＯＭ素子、コンピュータ・バス・システムを介してアクセス可能なＦＰＧＡ素子、及び前記素子の間に接続されるＭＵＸ要素を含むハードウェア回路構成であって、
前記ＰＲＯＭ素子が、前記バス・システムによる前記ＦＰＧＡの適切な構成のための制御データと、前記ＥＥＰＲＯＭ素子をＥＥＰＲＯＭ−ＦＰＧＡインタフェースによりプログラムするために使用可能なロジックとを含むように構成され、
前記ＭＵＸ要素が前記ＰＲＯＭ素子若しくは前記ＥＥＰＲＯＭ素子、または前記ＦＰＧＡ素子のいずれかを選択して、これらの素子からデータを読出すように制御され、それにより前記ＦＰＧＡを前記バス・システムに適切に接続し、前記ＦＰＧＡの構成を前記ＥＥＰＲＯＭから成る内容により初期化する
ハードウェア回路構成。
（４）ＰＣシステム・バスにより検出可能で、前記（３）記載の回路構成を含むＰＣカード。
【図面の簡単な説明】
【図１】本発明の好適な実施例に従う回路の本質的要素を示す概略構造図である。
【図２】従来技術に従う回路の本質的要素を示す概略構造図である。
【図３】本発明の第１及び第２の態様に従う方法の本質的ステップを示す概略ブロック図である。
【符号の説明】
１０  ＰＲＯＭ
１２  ＥＥＰＲＯＭ
１４  ＭＵＸ
１６  ＦＰＧＡ
１８  ＰＣカード
３２  外部ハードウェア
３４  ロジック
【図１】
0003644590.tif 000002
【図２】
0003644590.tif 000003
【図３】
0003644590.tif 000004