(57)【要約】【課題】  部品点数や冗長ビット数の大幅な増加をともなわずに、プログラマブルデバイスの数やベンダーの種類の増加に対応できるコンフィギュレーション方法及びコンフィギュレーション装置並びにコンフィギュレーションプログラムを提供することを課題とする。【解決手段】  本コンフィギュレーション方法は、制御部の各ポートに接続された複数のプログラマブルデバイスに転送する複数のコンフィギュレーションデータを、不揮発性メモリのビット列単位で割り当て、前記ビット列の先頭に前記ポート別識別情報を付与し、前記不揮発性メモリに格納するデータ格納ステップと、前記不揮発性メモリに格納された前記複数のコンフィギュレーションデータを、制御部の各ポートに接続された対応するプログラマブルデバイスに転送するデータ転送ステップと、を有することを要件とする。【選択図】  図９
2010146098.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータが、
制御部の各ポートに接続された複数のプログラマブルデバイスのコンフィギュレーションデータを、不揮発性メモリのビット列単位で割り当て、前記ビット列の先頭に前記ポート別識別情報を付与して、前記不揮発性メモリに格納するデータ格納ステップと、
前記不揮発性メモリに格納された前記複数のコンフィギュレーションデータを、前記ポート別識別情報に対応するインターフェースにより前記制御部の各ポートに接続された対応するプログラマブルデバイスへ転送するデータ転送ステップと、
を有するプログラマブルデバイスのコンフィギュレーション方法。
【請求項２】
前記ポート別識別情報は前記ビット列各々が有効か無効かの組み合わせにより所定の情報を表す請求項１記載のコンフィギュレーション方法。
【請求項３】
前記所定の情報は、前記各ポートに接続された前記プログラマブルデバイスのベンダー種別を表す情報である請求項２記載のコンフィギュレーション方法。
【請求項４】
前記データ転送ステップより前に、前記制御部が、前記所定の情報に基づいて、前記各ポートに接続された前記プログラマブルデバイスの前記ベンダー種別を判別するベンダー種別判別ステップを有する請求項３記載のコンフィギュレーション方法。
【請求項５】
前記ベンダー種別判別ステップと前記データ転送ステップとの間に、前記識別情報を除去する識別情報除去ステップを有する請求項４記載のコンフィギュレーション方法。
【請求項６】
コンピュータに、
制御部の各ポートに接続された複数のプログラマルデバイスのコンフィギュレーションデータを、不揮発性メモリのビット列単位で割り当て、前記ビット列の先頭に前記ポート別識別情報を付与して、前記不揮発性メモリに格納するデータ格納ステップと、
前記不揮発性メモリに格納された前記複数のコンフィギュレーションデータを、前記ポート別識別情報に対応するインターフェースにより制御部の各ポートに接続された対応するプログラマブルデバイスへ転送するデータ転送ステップと、
を実行させるプログラマブルデバイスのコンフィギュレーションプログラム。
【請求項７】
制御部の各ポートに接続された複数のプログラマルデバイスのコンフィギュレーションデータを、不揮発性メモリのビット列単位で割り当て、前記ビット列の先頭に識別情報を付与して、前記不揮発性メモリに格納するデータ格納手段と、
前記不揮発性メモリに格納された前記複数のコンフィギュレーションデータを、前記識別情報に対応するインターフェースにより制御部の各ポートに接続された対応するプログラマブルデバイスへ転送するデータ転送手段と、
を有するプログラマブルデバイスのコンフィギュレーション装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のプログラマブルデバイスに、対応するコンフィギュレーションデータをロードするコンフィギュレーション方法及びコンフィギュレーション装置並びにコンフィギュレーションプログラムに関する。
【背景技術】
【０００２】
近年、論理回路等を自由にプログラミングすることが可能なプログラマブルデバイスが広く用いられている。プログラマブルデバイスを用いて論理回路等をプログラミングするためには、コンフィギュレーションデータという設定データを、プログラマブルデバイスの有するコンフィギュレーションメモリにロードする必要がある。プログラマブルデバイスの有するコンフィギュレーションメモリにコンフィギュレーションデータをロードする方法を、コンフィギュレーション方法という。以下、プログラマブルデバイスであるＦＰＧＡを搭載するＦＰＧＡ搭載システムを一例として、従来のコンフィギュレーション方法について具体的に説明する。
【０００３】
図１は、従来のＦＰＧＡ搭載システムの概略の構成を例示する図（その１）である。図１において、フラッシュメモリ３１ａは不揮発性メモリであり、コンフィギュレーションデータを格納する機能を有する。制御部３２ａ、３２ｂ、３２ｃは例えばプログラム可能な複合論理デバイス（Complex Programmable Logic Device）であり、コンフィギュレーションを制御する機能を有する。より具体的には、制御部３２ａ、３２ｂ、３２ｃは、外部装置１９からコンフィギュレーションデータを受け取り、フラッシュメモリ３１ａに格納する機能を有する。又、制御部３２ａ、３２ｂ、３２ｃは、フラッシュメモリ３１ａからＦＰＧＡ２３ａ、２３ｂ、２３ｃの有するコンフィギュレーションメモリにコンフィギュレーションデータをロードする機能を有する。ＦＰＧＡ２３ａ、２３ｂ、２３ｃはプログラム可能なゲートアレイ（Field Programmable Gate Array）であり、コンフィギュレーションメモリとしてＳＲＡＭ（図示せず）を有する。
【０００４】
図１に示すＦＰＧＡ搭載システム３０は、複数のベンダー製のＦＰＧＡを搭載したシステムの一例である。
【０００５】
制御部３２ａとＦＰＧＡ２３ａ、制御部３２ｂとＦＰＧＡ２３ｂ、及び、制御部３２ｃとＦＰＧＡ２３ｃとは、各ＦＰＧＡに搭載されている各ベンダー独自の異なるコンフィギュレーション用のインターフェースにより信号伝達可能に接続されている。すなわち、ＦＰＧＡ搭載システム３０では、それぞれのベンダーのＦＰＧＡに対応する制御部３２ａ及びフラッシュメモリ３１ａ、制御部３２ｂ及びフラッシュメモリ３１ｂ、制御部３２ｃ及びフラッシュメモリ３１ｃを設ける。そして、各ベンダー独自の異なるコンフィギュレーション用のインターフェースを用いてコンフィギュレーションデータをＦＰＧＡ２３ａ、ＦＰＧＡ２３ｂ及びＦＰＧＡ２３ｃのそれぞれのコンフィギュレーションメモリにロードする。
【０００６】
図２は、従来のＦＰＧＡ搭載システムの概略の構成を例示する図（その２）である。図２において、図１と同一構成部分については、同一符号を付し、その説明は省略する場合がある。以下、図１に示すＦＰＧＡ搭載システム３０と異なる部分のみ説明する。
【０００７】
制御部４２は、例えばプログラム可能な複合論理デバイス（Complex Programmable Logic Device）であり、コンフィギュレーションを制御する機能を有する。図２に示すＦＰＧＡ搭載システム４０は、複数のベンダー製のＦＰＧＡを搭載したシステムの一例である。
【０００８】
制御部４２のポート１とＦＰＧＡ２３ａ、制御部４２のポート２とＦＰＧＡ２３ｂ、及び、制御部４２のポート３とＦＰＧＡ２３ｃとは、各ＦＰＧＡに搭載されている各ベンダー独自の異なるコンフィギュレーション用のインターフェースにより信号伝達可能に接続されている。すなわち、ＦＰＧＡ搭載システム４０では、各ベンダー独自の異なるコンフィギュレーション用のインターフェースを用いてコンフィギュレーションデータをＦＰＧＡ２３ａ、ＦＰＧＡ２３ｂ及びＦＰＧＡ２３ｃのそれぞれのコンフィギュレーションメモリにロードする。
【０００９】
制御部４２からは、設定用ピン４４ａ及び４４ｂがＦＰＧＡ搭載システム４０の外部から電気信号を入力可能な態様で引き出されている。フラッシュメモリ１１には、例えば図３に示すようにＦＰＧＡ毎にコンフィギュレーションデータ（ＦＰＧＡ用データ２３ａ、ＦＰＧＡ用データ２３ｂ、ＦＰＧＡ用データ２３ｃ）が格納されている。
【００１０】
制御部４２は、設定用ピン４４ａ及び４４ｂから入力される信号（設定データ）の０（Ｌ）か１（Ｈ）かの組み合わせにより、フラッシュメモリ１１に格納されているどのデータをどのＦＰＧＡにロードするかを選択してロードする。例えば、設定用ピン４４ａ＝０かつ設定用ピン４４ｂ＝０なら、フラッシュメモリ１１に格納されているＦＰＧＡ用データ２３ａを、ポート1に接続されるＦＰＧＡ２３ａのコンフィギュレーションメモリに、ＦＰＧＡ用データ２３ｂを、ポート２に接続されるＦＰＧＡ２３ｂのコンフィギュレーションメモリに、ＦＰＧＡ用データ２３ｃを、ポート３に接続されるＦＰＧＡ２３ｂのコンフィギュレーションメモリにロードする。
【００１１】
例えば、設定用ピン４４ａ＝０かつ設定用ピン４４ｂ＝１なら、フラッシュメモリ１１に格納されているＦＰＧＡ用データ２３aを、ポート２に接続されるＦＰＧＡ２３ｂのコンフィギュレーションメモリに、ＦＰＧＡ用データ２３ｂを、ポート３に接続されるＦＰＧＡ２３ｃのコンフィギュレーションメモリに、ＦＰＧＡ用データ２３ｃを、ポート１に接続されるＦＰＧＡ２３aのコンフィギュレーションメモリにロードする。例えば、設定用ピン４４ａ＝１かつ設定用ピン４４ｂ＝０なら、フラッシュメモリ１１に格納されているＦＰＧＡ用データ２３aを、ポート３に接続されるＦＰＧＡ２３ｃのコンフィギュレーションメモリに、ＦＰＧＡ用データ２３ｂを、ポート２に接続されるＦＰＧＡ２３ｂのコンフィギュレーションメモリに、ＦＰＧＡ用データ２３ｃを、ポート１に接続されるＦＰＧＡ２３aのコンフィギュレーションメモリにロードする。
【００１２】
図４は、従来のＦＰＧＡ搭載システムの概略の構成を例示する図（その３）である。図４において、図１〜図２と同一構成部分については、同一符号を付し、その説明は省略する場合がある。以下、図１に示すＦＰＧＡ搭載システム３０、図２に示すＦＰＧＡ搭載システム４０と異なる部分のみ説明する。
【００１３】
制御部５２は、例えばプログラム可能な複合論理デバイス（Complex Programmable Logic Device）であり、コンフィギュレーションを制御する機能を有する。フラッシュメモリ１１と制御部５２とは信号伝達可能に接続されている。制御部５２は、コネクタ１５及びケーブル１６を介して、ＦＰＧＡ搭載システム５０の外部に配置された外部装置１９と信号伝達可能に接続されている。図４に示すＦＰＧＡ搭載システム５０は、複数のベンダー製のＦＰＧＡを搭載したシステムの一例である。
【００１４】
制御部５２のポート１とＦＰＧＡ２３ａ、制御部５２のポート２とＦＰＧＡ２３ｂ、及び、制御部５２のポート３とＦＰＧＡ２３ｃとは、各ＦＰＧＡに搭載されている各ベンダー独自の異なるコンフィギュレーション用のインターフェースにより信号伝達可能に接続されている。すなわち、ＦＰＧＡ搭載システム５０では、各ベンダー独自の異なるコンフィギュレーション用のインターフェースを用いてコンフィギュレーションデータをＦＰＧＡ２３ａ、ＦＰＧＡ２３ｂ及びＦＰＧＡ２３ｃのそれぞれのコンフィギュレーションメモリにロードする。制御部５２は、図２に示すＦＰＧＡ搭載システム４０の制御部４２のような設定用ピンは有していない。
【００１５】
フラッシュメモリ１１には、例えば図５に示すようにＦＰＧＡ毎にコンフィギュレーションデータ及びコンフィギュレーションデータの先頭情報、ポート番号、ベンダー種別等の識別情報が格納されている。例えば、先頭情報を４バイト、ポート番号を１バイト、ベンダー種別を１バイトとすると、識別情報として６バイト＝４８ビットが必要になる。制御部５２は、これらの識別情報に基づいて所定のデータを所定のＦＰＧＡのコンフィギュレーションメモリにロードする。
【００１６】
図１〜図５を参照して説明した各ベンダー独自の異なるコンフィギュレーション用のインターフェースを用いたコンフィギュレーション方法は、ＪＴＡＧインターフェースを用いたコンフィギュレーション方法とは異なり、動作クロックも速くシリアルのみならず、パラレルビット幅でもコンフィギュレーションデータをロードできる。従って、ＦＰＧＡ搭載システムに搭載されるＦＰＧＡの数が増加しても、コンフィギュレーション時間は数分程度で済むという利点がある。
【特許文献１】特開２００４−１８５２３９号公報
【特許文献２】特開２００５−２５９０５３号公報
【発明の開示】
【発明が解決しようとする課題】
【００１７】
しかしながら、図２に示す方法では、制御部に設定用ピンを設け、外部から設定用ピンに入力するデータの組み合わせに応じて、所定のデータを所定のＦＰＧＡにロードするので、各ベンダー独自の異なるコンフィギュレーション用のインターフェースを用いた場合でも、複数の制御部を準備する必要がないという利点がある。しかし、ＦＰＧＡ搭載システムに搭載されるＦＰＧＡの数が増加した場合やベンダーの種類が増加した場合に、ロードすべきデータとロードすべきＦＰＧＡを選択する設定用ピンの数も増やす必要があり実現が困難であるという問題があった。
【００１８】
又、図４に示す方法では、データ構造を工夫することにより各ベンダー独自の異なるコンフィギュレーション用のインターフェースを用いた場合でも、複数の制御部を準備する必要がないという利点がある。しかし、ＦＰＧＡ搭載システムに搭載されるＦＰＧＡの数が増加した場合やベンダーの種類が増加した場合に、ロードすべきデータとロードすべきＦＰＧＡを選択する識別情報に用いる冗長ビット数が増加し、効率的なデータの持ち方ができないという問題があった。
【００１９】
上記の点に鑑みて、部品点数や冗長ビット数の大幅な増加をともなわずに、プログラマブルデバイスの数やベンダーの種類の増加に対応できるコンフィギュレーション方法及びコンフィギュレーション装置並びにコンフィギュレーションプログラムを提供することを課題とする。
【課題を解決するための手段】
【００２０】
本コンフィギュレーション方法は、コンピュータが、制御部の各ポートに接続された複数のプログラマブルデバイスに転送する複数のコンフィギュレーションデータを、不揮発性メモリのビット列単位で割り当て、前記ビット列の先頭に前記ポート別識別情報を付与し、前記不揮発性メモリに格納するデータ格納ステップと、前記不揮発性メモリに格納された前記複数のコンフィギュレーションデータを、制御部の各ポートに接続された対応するプログラマブルデバイスに転送するデータ転送ステップと、を有することを要件とする。
【００２１】
本コンフィギュレーション装置は、制御部の各ポートに接続された複数のプログラマルデバイスのコンフィギュレーションデータを、不揮発性メモリのビット列単位で割り当て、前記ビット列の先頭に識別情報を付与して、前記不揮発性メモリに格納するデータ格納手段と、前記不揮発性メモリに格納された前記複数のコンフィギュレーションデータを、前記識別情報に対応するインターフェースにより制御部の各ポートに接続された対応するプログラマブルデバイスへ転送するデータ転送手段と、を有することを要件とする。
【００２２】
本コンフィギュレーションプログラムは、コンピュータに、制御部の各ポートに接続された複数のプログラマルデバイスのコンフィギュレーションデータを、不揮発性メモリのビット列単位で割り当て、前記ビット列の先頭に前記ポート別識別情報を付与して、前記不揮発性メモリに格納するデータ格納ステップと、前記不揮発性メモリに格納された前記複数のコンフィギュレーションデータを、前記ポート別識別情報に対応するインターフェースにより制御部の各ポートに接続された対応するプログラマブルデバイスへ転送するデータ転送ステップと、を実行させることを要件とする。
【発明の効果】
【００２３】
開示の技術によれば、部品点数や冗長ビット数の大幅な増加をともなわずに、プログラマブルデバイスの数やベンダーの種類の増加に対応できるコンフィギュレーション方法及びコンフィギュレーション装置並びにコンフィギュレーションプログラムを提供することができる。
【発明を実施するための最良の形態】
【００２４】
以下、本発明の実施の形態について説明する。なお、本発明の実施の形態では、プログラマブルデバイスであるＦＰＧＡを搭載するＦＰＧＡ搭載システムを一例として、コンフィギュレーション方法等について具体的に説明する。
【００２５】
［本発明の実施の形態に係るＦＰＧＡ搭載システムの構成］
始めに、本発明の実施の形態に係るＦＰＧＡ搭載システムの概略の構成について説明する。図６は、本発明の実施の形態に係るＦＰＧＡ搭載システムの概略の構成を例示する図である。図６を参照するに、ＦＰＧＡ搭載システム１００は、不揮発性メモリ１１０と、制御部１２０と、ＦＰＧＡ１３０ａと、ＦＰＧＡ１３０ｂと、ＦＰＧＡ１３０ｃとを有する。
【００２６】
図６において、不揮発性メモリ１１０は、例えばパラレルデータでデータ伝送が可能なフラッシュメモリ（パラレルフラッシュメモリ）であり、コンフィギュレーションデータを含むデータを格納する機能を有する。以降、不揮発性メモリに格納される、コンフィギュレーションデータを含むデータをメモリ格納用データという場合がある。
【００２７】
制御部１２０は、例えばプログラム可能な複合論理デバイス（Complex Programmable Logic Device）であり、コンフィギュレーションを制御する機能を有する。より具体的には、制御部１２０は、外部装置１９０からメモリ格納用データを受け取り不揮発性メモリ１１０に格納する機能を有する。又、制御部１２０は、不揮発性メモリ１１０からＦＰＧＡ１３０ａ、ＦＰＧＡ１３０ｂ及びＦＰＧＡ１３０ｃの有するコンフィギュレーションメモリに、メモリ格納用データに含まれるコンフィギュレーションデータをロードする機能を有する。
【００２８】
ＦＰＧＡ１３０ａ、ＦＰＧＡ１３０ｂ及びＦＰＧＡ１３０ｃはプログラム可能なゲートアレイ（Field Programmable Gate Array）であり、コンフィギュレーションメモリ（図示せず）を有する。コンフィギュレーションメモリは、例えばＳＲＡＭである。ＦＰＧＡ１３０ａ、ＦＰＧＡ１３０ｂ及びＦＰＧＡ１３０ｃは、それぞれ異なるベンダー（例えば、ベンダーＡ、Ｂ、Ｃ）で製造されたものであり、各ベンダー独自のコンフィギュレーション用のインターフェースを有する。
【００２９】
外部装置１９０は、例えばパーソナルコンピュータ等であり、ＦＰＧＡ搭載システム１００にメモリ格納用データを供給する機能を有する。このように、図６に示すＦＰＧＡ搭載システム１００は、異なるベンダーで製造されたＦＰＧＡを搭載したシステムの一例である。
【００３０】
不揮発性メモリ１１０と制御部１２０とは信号伝達可能に接続されている。制御部１２０のポート１とＦＰＧＡ１３０ａ、制御部１２０のポート２とＦＰＧＡ１３０ｂ、及び、制御部１２０のポート３とＦＰＧＡ１３０ｃとは、各ＦＰＧＡに搭載されている各ベンダー独自の異なるコンフィギュレーション用のインターフェースにより信号伝達可能に接続されている。すなわち、ＦＰＧＡ搭載システム１００では、各ベンダー独自の異なるコンフィギュレーション用のインターフェースを用いてコンフィギュレーションデータをＦＰＧＡ１３０ａ、ＦＰＧＡ１３０ｂ及びＦＰＧＡ１３０ｃのそれぞれのコンフィギュレーションメモリにロードする。制御部１２０は、コネクタ１５０及びケーブル１６０を介して、ＦＰＧＡ搭載システム１００の外部に配置された外部装置１９０と信号伝達可能に接続されている。
【００３１】
ＦＰＧＡ搭載システム１００において、外部装置１９０の有するメモリ格納用データは、ケーブル１６０、コネクタ１５０及び制御部１２０を介して、不揮発性メモリ１１０に格納される。不揮発性メモリ１１０に格納されたメモリ格納用データに含まれるコンフィギュレーションデータは、制御部１２０の制御に従い、制御部１２０を介して、ＦＰＧＡ１３０ａ、ＦＰＧＡ１３０ｂ及びＦＰＧＡ１３０ｃの有するコンフィギュレーションメモリにロードされる。
【００３２】
ＦＰＧＡ搭載システム１００のように、コンフィギュレーションメモリとしてＳＲＡＭ等が用いられているＦＰＧＡを搭載したシステムでは、ＦＰＧＡ１３０ａ、ＦＰＧＡ１３０ｂ及びＦＰＧＡ１３０ｃに供給される電源をＯＦＦにするとコンフィギュレーションメモリの中身が消去されてしまう。従って、電源をＯＮにする度に不揮発性メモリ１１０に格納されたメモリ格納用データに含まれるコンフィギュレーションデータをＦＰＧＡ１３０ａ、ＦＰＧＡ１３０ｂ及びＦＰＧＡ１３０ｃのコンフィギュレーションメモリにロードする必要がある。以上が、本発明の実施の形態に係るＦＰＧＡ搭載システム１００の概略の構成である。
【００３３】
［本発明の実施の形態に係るメモリ格納用データの構造］
続いて、本発明の実施の形態に係るメモリ格納用データの概略の構造について説明する。図７は、本発明の実施の形態に係るメモリ格納用データの概略の構造を例示する図である。図７では８ビット幅のデータを示すが、本発明の実施の形態に係るメモリ格納用データは８ビット幅には限定されない。例えば１６ビット幅の不揮発性メモリを用いれば、メモリ格納用データも１６ビット幅のデータとなる。
【００３４】
図７を参照するに、本発明の実施の形態に係るメモリ格納用データ２００は、従来は不揮発性メモリ１１０のバンク毎に持たせていたＦＰＧＡ１３０ａ、ＦＰＧＡ１３０ｂ、ＦＰＧＡ１３０ｃに対応するコンフィギュレーションデータであるＦＰＧＡ１３０ａ用データ、ＦＰＧＡ１３０ｂ用データ及びＦＰＧＡ１３０ｃ用データを、不揮発性メモリ１１０のビット列単位で持たせたことが特徴である。又、各ビット列の先頭にそのビット列が有効か無効かを示す識別情報である有効無効情報ビット２１０ａ〜２１０ｈを付与したことが特徴である。なお、有効無効情報ビット２１０ａ〜２１０ｈを一まとめとして有効無効情報ビット群２１０という場合がある。
【００３５】
例えば、メモリ格納用データ２００の第１ビット列にはＦＰＧＡ１３０ａ用のコンフィギュレーションデータであるＦＰＧＡ１３０ａ用データが割り当てられ、第１ビット列の先頭には有効無効情報ビット２１０ａが付与されている。図７の場合には、有効無効情報ビット２１０ａは、有効を示すデータである「１」とされている。メモリ格納用データ２００の第２ビット列にはＦＰＧＡ１３０ｂ用のコンフィギュレーションデータであるＦＰＧＡ１３０ｂ用データが割り当てられ、第２ビット列の先頭には有効無効情報ビット２１０ｂが付与されている。図７の場合には、有効無効情報ビット２１０ｂは、有効を示すデータである「１」とされている。メモリ格納用データ２００の第８ビット列にはＦＰＧＡ１３０ｃ用のコンフィギュレーションデータであるＦＰＧＡ１３０ｃ用データが割り当てられ、第８ビット列の先頭には有効無効情報ビット２１０ｈが付与されている。図７の場合には、有効無効情報ビット２１０ｈは、有効を示すデータである「１」とされている。
【００３６】
メモリ格納用データ２００の第３ビット列から第７ビット列には無効データ（一例として全て「０」）が割り当てられ、第３ビット列から第７ビット列の先頭には有効無効情報ビット２１０ｃ〜２１０ｇが付与されている。図７の場合には、有効無効情報ビット２１０ｃ〜２１０ｇは、無効を示すデータである「０」とされている。
【００３７】
有効無効情報ビット群２１０が、なぜ図７に示すようなデータであるのかを以下に説明する。表１は、有効無効情報ビット群２１０のデータと、ポートとベンダーの組み合わせとの対応関係を例示している。有効無効情報ビット群２１０は、例えば表１のようなデータであり、「１」と「０」との組み合わせにより、図６に示すＦＰＧＡ搭載システム１００の制御部１２０のポート１からポート３にどのベンダーのＦＰＧＡが接続されているか（以降、ベンダー種別という場合がある）の情報を表す。ＦＰＧＡ搭載システム１００では、ポート１にベンダーＡのＦＰＧＡ１３０ａが、ポート２にベンダーＢのＦＰＧＡ１３０ｂが、ポート３にベンダーＣのＦＰＧＡ１３０ｃが接続されている。従って、図７の有効無効情報ビット群２１０は、表１の６番目のデータとなっている。例えば、ポート１、２、３の全てにベンダーＡのＦＰＧＡが接続されていれば、有効無効情報ビット群２１０は表１の１番目のデータとなる。
【００３８】
【表１】
2010146098.tif 000003
【００３９】
このように、予め有効無効情報ビット群２１０（有効無効情報ビット２１０ａ〜２１０ｈのデータの組み合わせ）と、ポートとベンダーの組み合わせとの対応関係を決定しておき、メモリ格納用データ２００の各ビット列の先頭に有効無効情報ビット２１０ａ〜２１０ｈを付与する。これにより、制御部１２０は有効無効情報ビット群２１０の有効無効情報ビット２１０ａ〜２１０ｈのデータを読取ることにより、ポート１からポート３にどのベンダーのＦＰＧＡが接続されているかを判別することができる。その結果、制御部１２０は、ポート１からポート３にどのようなベンダーのＦＰＧＡが接続された場合でも、接続されたベンダー独自のコンフィギュレーション用のインターフェースに合わせて、それぞれのＦＰＧＡのコンフィギュレーションメモリにコンフィギュレーションデータをロードすることができる。
【００４０】
又、図７のようなメモリ格納用データの構造とすることにより、図５に示す先頭情報やポート番号が不要となるため、識別情報として用いる冗長ビットの数を大幅に削減することができ、効率的なデータの持ち方が可能となる。例えば、図５の例では冗長ビットとして４８ビット必要であったが、図７の例ではわずか１ビットである。
【００４１】
なお、表１は、制御部１２０の３つのポートに３つのＦＰＧＡが接続された場合（図６参照）の一例を示している。例えば、８ビット幅の不揮発性メモリを用いたＦＰＧＡ搭載システムの場合には、ＦＰＧＡのベンダー数＝Ｎ、制御部１２０のポート数＝Ｐとすると、式１：Ｎ＾Ｐ  ≦  ８ＣＰが成立する限り、本発明の実施の形態に係るメモリ格納用データの構造を実現することができる。
【００４２】
図６に示すＦＰＧＡ搭載システム１００の場合には、Ｎ＝３、Ｐ＝３であるから、式１の左辺は３＾３＝２７となる。これは、ポートとベンダーとの組み合わせが２７通りあることを示す。又、式１の右辺は８Ｃ３＝５６となる。これは、有効無効情報ビット２１０ａ〜２１０ｈの組み合わせが５６通りあることを示す。このように、ＦＰＧＡ搭載システム１００の場合には式１を満足するため、本発明の実施の形態に係るメモリ格納用データの構造を実現することができる。
【００４３】
なお、１６ビット幅の不揮発性メモリを用いた場合には、ＦＰＧＡのベンダー数＝Ｎ、制御部１２０のポート数＝Ｐとすると、式２：Ｎ＾Ｐ  ≦  １６ＣＰが成立する限り、本発明の実施の形態に係るメモリ格納用データの構造を実現することができる。ポートとベンダーとの組み合わせが多い場合には、１６ビット幅の不揮発性メモリを用いればよい。
【００４４】
又、本発明の実施の形態に係るメモリ格納用データ２００は、外部装置１９０により作成することができる。具体的には、始めに表１から該当するポートとベンダーの組み合わせを選択し、外部装置１９０により各ビット列の先頭に有効無効情報ビット２１０ａ〜２１０ｈを付与する。次いで、有効であるビット列に対象となるＦＰＧＡのコンフィギュレーションデータを割り付け、無効であるビット列に「０」データを割り付ける。その際、有効であるビット列には、若番から順番にポート１に接続されているＦＰＧＡ１３０ａに対応するコンフィギュレーションデータ（ＦＰＧＡ１３０ａ用データ）、ポート２に接続されているＦＰＧＡ１３０ｂに対応するコンフィギュレーションデータ（ＦＰＧＡ１３０ｂ用データ）、ポート３に接続されているＦＰＧＡ１３０ｃに対応するコンフィギュレーションデータ（ＦＰＧＡ１３０ｃ用データ）のように割り付ける（図７参照）。以上が、本発明の実施の形態に係るメモリ格納用データ２００の概略の構造である。
【００４５】
［本発明の実施の形態に係るコンフィギュレーション方法］
続いて、本発明の実施の形態に係るコンフィギュレーション方法、すなわち、本発明の実施の形態に係るメモリ格納用データ２００を用いてコンフィギュレーションを行う際のＦＰＧＡ搭載システム１００の動作について説明する。図８は、図６に示す制御部の概略のブロック構成を例示する図である。図９は、本発明の実施の形態に係るＦＰＧＡ搭載システムの概略の動作を例示するフローチャートである。図８及び図９を参照しながら、ＦＰＧＡ搭載システム１００の動作について説明する。
【００４６】
図８を参照するに、制御部１２０は、不揮発性メモリアクセス制御部１２１と、ポート制御部１２２と、ＦＰＧＡインターフェース部１２３ａと、ＦＰＧＡインターフェース部１２３ｂと、ＦＰＧＡインターフェース部１２３ｃとを有する。
【００４７】
図９を参照するに、ステップ１０１において、不揮発性メモリアクセス制御部１２１は、外部装置１９０からメモリ格納用データ２００を受け取り、不揮発性メモリ１１０に格納する（Ｓ１０１）。なお、ステップ１０１は一度だけ行われ、一旦不揮発性メモリ１１０にメモリ格納用データ２００が格納されれば、その後は電源投入時に、後述するステップ１０２〜ステップ１０６のみが実行される。
【００４８】
次いでステップ１０２において、不揮発性メモリアクセス制御部１２１は、不揮発性メモリ１１０に格納されているメモリ格納用データ２００を１アドレスごとに読み出し、ポート制御部１２２に転送する（Ｓ１０２）。図７に示すように、メモリ格納用データ２００は1アドレス＝８ビット（８ビット幅）であるから、メモリ格納用データ２００は８ビットごとに読み出される。
【００４９】
次いでステップ１０３において、ポート制御部１２２は、不揮発性メモリアクセス制御部１２１から転送されたメモリ格納用データ２００の各ビット列の先頭に付与された有効無効情報ビット２１０ａ〜２１０ｈ（有効無効情報ビット群２１０）のデータを判別する（Ｓ１０３）。すなわち、制御部１２０のポート１からポート３にどのベンダーのＦＰＧＡが接続されているか（ベンダー種別）を、例えば表１に基づいて判別する。
【００５０】
次いでステップ１０４において、ポート制御部１２２は、ＦＰＧＡインターフェース部１２３ａ、１２３ｂ及び１２３ｃにベンダー種別を通知する（Ｓ１０４）。次いでステップ１０５において、ポート制御部１２２は、メモリ格納用データ２００から各ビット列の先頭に付与された有効無効情報ビット群２１０を除去する。そして、ポート制御部１２２は、ＦＰＧＡインターフェース部１２３ａ、１２３ｂ及び１２３ｃに、ＦＰＧＡ１３０ａ、ＦＰＧＡ１３０ｂ及びＦＰＧＡ１３０ｃに対応するコンフィギュレーションデータであるＦＰＧＡ１３０ａ用データ、ＦＰＧＡ１３０ｂ用データ及びＦＰＧＡ１３０ｃ用データを転送する（Ｓ１０５）。
【００５１】
次いでステップ１０６において、ＦＰＧＡインターフェース部１２３ａ、１２３ｂ及び１２３ｃは、コンフィギュレーションデータであるＦＰＧＡ１３０ａ用データ、ＦＰＧＡ１３０ｂ用データ及びＦＰＧＡ１３０ｃ用データを、接続されているベンダー独自のコンフィギュレーション用のインターフェースに合わせて、ポート１からポート３に接続されているＦＰＧＡ１３０ａ、ＦＰＧＡ１３０ｂ及びＦＰＧＡ１３０ｃに転送する（Ｓ１０６）。これにより、コンフィギュレーションデータであるＦＰＧＡ１３０ａ用データ、ＦＰＧＡ１３０ｂ用データ及びＦＰＧＡ１３０ｃ用データは、ＦＰＧＡ１３０ａ、ＦＰＧＡ１３０ｂ及びＦＰＧＡ１３０ｃのそれぞれのコンフィギュレーションメモリにロードされる。以上が、メモリ格納用データ２００を用いてコンフィギュレーションを行う際のＦＰＧＡ搭載システム１００の動作（本発明の実施の形態に係るコンフィギュレーション方法）である。
【００５２】
このようなＦＰＧＡ搭載システム１００の動作は、予めコンフィギュレーションプログラムとして、パーソナルコンピュータやワークステーション等のコンピュータシステムの有する記憶部に記憶しておき、それを実行することによって実現することができる。
【００５３】
本発明の実施の形態によれば、各ＦＰＧＡに対応するコンフィギュレーションデータを、不揮発性メモリのビット列単位で持たせ、各ビット列の先頭に有効無効情報ビットを付与したメモリ格納用データを作成する。又、予め有効無効情報ビットのデータの組み合わせと、ポートとベンダーの組み合わせとの対応関係を決定しておく。これにより、制御部は有効無効情報ビットのデータの組み合わせを判別することにより、各ポートにどのベンダーのＦＰＧＡが接続されているかを認識することができる。その結果、制御部は、各ポートにどのようなベンダーのＦＰＧＡが接続された場合でも、接続されたベンダー独自のコンフィギュレーション用のインターフェースに合わせて、それぞれのＦＰＧＡのコンフィギュレーションメモリにコンフィギュレーションデータをロードすることができる。
【００５４】
又、本発明の実施の形態によれば、各ベンダー独自のインターフェースに対応するに際し、図７のようなメモリ格納用データの構造とすることにより、図５に示す先頭情報やポート番号が不要となるため、識別情報として用いる冗長ビットの数を大幅に削減することができ、効率的なデータの持ち方が可能となる。例えば、図５の例では冗長ビットとして４８ビット必要であったが、図７の例ではわずか１ビットである。
【００５５】
又、本発明の実施の形態によれば、各ベンダー独自のインターフェースに対応するに際し、図１に例示するように複数の制御部を設ける必要がなく、１個の制御部及び１個の不揮発性メモリで対応することができるため、部品点数の増加をともなうことがない。
【００５６】
又、本発明の実施の形態によれば、各ベンダー独自のインターフェースに対応するに際し、図２に例示するように設定用ピンを設ける必要がないため、ＦＰＧＡのベンダーの数の増加にも容易に対応することができる。
【００５７】
このように、部品点数や冗長ビット数の大幅な増加をともなわずに、プログラマブルデバイスの数やベンダーの種類の増加に対応できるコンフィギュレーション方法及びコンフィギュレーション装置並びにコンフィギュレーションプログラムを提供することができる。
【００５８】
以上、本発明の実施の形態について詳述したが、本発明は特定の実施の形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形及び変更が可能である。
【００５９】
例えば、本発明の実施の形態では、プログラマブルデバイスであるＦＰＧＡを搭載したＦＰＧＡ搭載システムを例にとりコンフィギュレーション方法等の説明をした。しかしながら、コンフィギュレーションの対象となるデバイスはＦＰＧＡには限定されず、プログラマブルデバイスであれば例えばＤＳＰ（ディジタル信号処理用プロセッサ）等のどのようなデバイスであっても構わない。もちろん、ＦＰＧＡやＤＳＰが混在しても構わない。
【００６０】
又、本発明の実施の形態では、制御部の一例としてプログラム可能な複合論理デバイス（Complex Programmable Logic Device）を示した。しかしながら、制御部はプログラム可能な複合論理デバイス（Complex Programmable Logic Device）には限定されず、コンフィギュレーションを制御する機能を有するものであれば例えばマイクロコンピュータやＡＳＩＣ等のどのようなデバイスであっても構わない。
【００６１】
又、本発明の実施の形態では、不揮発性メモリの一例としてパラレルフラッシュメモリを示した。しかしながら、不揮発性メモリはパラレルフラッシュメモリには限定されず、パラレルインターフェースを備えたメモリであればどのようなメモリであっても構わない。
【００６２】
又、本発明の実施の形態では、制御部に3つのプログラマブルデバイス（ＦＰＧＡ）を接続する例を示した。しかしながら、式１又は式２（１６ビットよりも大きなビット幅の不揮発性メモリを用いた場合には、これらに相当する式）を満たす限り、制御部に２つ又は4つ以上のプログラマブルデバイスを接続できることはいうまでもない。
【００６３】
又、本発明の実施の形態に係るＦＰＧＡ搭載システムは、制御部、不揮発性メモリ、ＦＰＧＡ以外にマイクロコンピュータ、論理回路、アナログ回路等を含んでいても構わない。
【００６４】
又、本発明の実施の形態では、不揮発性メモリと制御部とは独立しているが、不揮発性メモリを内蔵する制御部を用いても構わない。
【００６５】
又、本発明の実施の形態では、有効無効情報ビットにおいて、「１」を有効を示すデータ、「０」を無効を示すデータとしたが、「０」を有効を示すデータ、「１」を無効を示すデータとしても構わない。
【００６６】
又、本発明の実施の形態では、メモリ格納用データの無効データをオール「０」としたが、メモリ格納用データの無効データは必ずしもオール「０」である必要はなく、オール「１」その他どのようなデータであっても構わない。
【００６７】
以上の説明に関し、更に以下の項を開示する。
（付記１）
コンピュータが、
制御部の各ポートに接続された複数のプログラマブルデバイスのコンフィギュレーションデータを、不揮発性メモリのビット列単位で割り当て、前記ビット列の先頭に前記ポート別識別情報を付与して、前記不揮発性メモリに格納するデータ格納ステップと、
前記不揮発性メモリに格納された前記複数のコンフィギュレーションデータを、前記ポート別識別情報に対応するインターフェースにより前記制御部の各ポートに接続された対応するプログラマブルデバイスへ転送するデータ転送ステップと、
を有するプログラマブルデバイスのコンフィギュレーション方法。
（付記２）
前記ポート別識別情報は前記ビット列各々が有効か無効かの組み合わせにより所定の情報を表す付記１記載のコンフィギュレーション方法。
（付記３）
前記所定の情報は、前記各ポートに接続された前記プログラマブルデバイスのベンダー種別を表す情報である付記２記載のコンフィギュレーション方法。
（付記４）
前記データ転送ステップより前に、前記制御部が、前記所定の情報に基づいて、前記各ポートに接続された前記プログラマブルデバイスの前記ベンダー種別を判別するベンダー種別判別ステップを有する付記３記載のコンフィギュレーション方法。
（付記５）
前記ベンダー種別判別ステップと前記データ転送ステップとの間に、前記識別情報を除去する識別情報除去ステップを有する付記４記載のコンフィギュレーション方法。
（付記６）
前記データ転送ステップより前に、前記不揮発性メモリに格納されたデータを１アドレス毎に読み出すデータ読み出しステップを有する付記１乃至５の何れか一に記載のコンフィギュレーション方法。
（付記７）
前記データ転送ステップにおいて、前記複数のコンフィギュレーションデータを、前記対応するプログラマブルデバイス固有のコンフィギュレーション用のインターフェースに合わせて転送する付記１乃至６の何れか一に記載のコンフィギュレーション方法。
（付記８）
前記識別情報は、１ビットである付記１乃至７の何れか一に記載のコンフィギュレーション方法。
（付記９）
前記複数のプログラマブルデバイスは、ゲートアレイ及び／又はプロセッサを含む付記１乃至８の何れか一に記載のコンフィギュレーション方法。
（付記１０）
前記制御部は、プログラム可能な論理デバイスを含む付記１乃至９の何れか一に記載のコンフィギュレーション方法。
（付記１１）
コンピュータに、
制御部の各ポートに接続された複数のプログラマルデバイスのコンフィギュレーションデータを、不揮発性メモリのビット列単位で割り当て、前記ビット列の先頭に前記ポート別識別情報を付与して、前記不揮発性メモリに格納するデータ格納ステップと、
前記不揮発性メモリに格納された前記複数のコンフィギュレーションデータを、前記ポート別識別情報に対応するインターフェースにより制御部の各ポートに接続された対応するプログラマブルデバイスへ転送するデータ転送ステップと、
を実行させるプログラマブルデバイスのコンフィギュレーションプログラム。
（付記１２）
制御部の各ポートに接続された複数のプログラマルデバイスのコンフィギュレーションデータを、不揮発性メモリのビット列単位で割り当て、前記ビット列の先頭に識別情報を付与して、前記不揮発性メモリに格納するデータ格納手段と、
前記不揮発性メモリに格納された前記複数のコンフィギュレーションデータを、前記識別情報に対応するインターフェースにより制御部の各ポートに接続された対応するプログラマブルデバイスへ転送するデータ転送手段と、
を有するプログラマブルデバイスのコンフィギュレーション装置。
【図面の簡単な説明】
【００６８】
【図１】従来のＦＰＧＡ搭載システムの概略の構成を例示する図（その１）である。
【図２】従来のＦＰＧＡ搭載システムの概略の構成を例示する図（その２）である。
【図３】従来のメモリ格納用データの概略の構造を例示する図（その１）である。
【図４】従来のＦＰＧＡ搭載システムの概略の構成を例示する図（その３）である。
【図５】従来のメモリ格納用データの概略の構造を例示する図（その２）である。
【図６】本発明の実施の形態に係るＦＰＧＡ搭載システムの概略の構成を例示する図である。
【図７】本発明の実施の形態に係るメモリ格納用データの概略の構造を例示する図である。
【図８】図６に示す制御部の概略のブロック構成を例示する図である。
【図９】本発明の実施の形態に係るＦＰＧＡ搭載システムの概略の動作を例示するフローチャートである。
【符号の説明】
【００６９】
１００  ＦＰＧＡ搭載システム
１１０  不揮発性メモリ
１２０  制御部
１２１  フラッシュメモリアクセス制御部
１２２  ポート制御部
１２３ａ、１２３ｂ、１２３ｃ  ＦＰＧＡインターフェース部
１３０ａ、１３０ｂ、１３０ｃ  ＦＰＧＡ
１５０  コネクタ
１６０  ケーブル
１９０  外部装置
２００  メモリ格納用データ
２１０  有効無効情報ビット群
２１０ａ、２１０ｂ、２１０ｃ、２１０ｄ、２１０ｅ、２１０ｆ、２１０ｇ、２１０ｈ  有効無効情報ビット
【図１】
2010146098.tif 000004
【図２】
2010146098.tif 000005
【図３】
2010146098.tif 000006
【図４】
2010146098.tif 000007
【図５】
2010146098.tif 000008
【図６】
2010146098.tif 000009
【図７】
2010146098.tif 000010
【図８】
2010146098.tif 000011
【図９】
2010146098.tif 000012