(57)【要約】【課題】プログラマブルデバイスを有する機能ブロックの追加または変更を容易に行うことのできるプログラマブルデバイス制御装置およびプログラマブルデバイス制御方法を提供する。【解決手段】本発明におけるプログラマブルデバイス制御方法は、制御装置１に接続された複数のＦＰＧＡ５の用途を示す種別コード３１を読み出す読み出しステップ(Ｓ４)と、前記種別コード３１に対応するプログラムを検索する検索ステップ（Ｓ５）と、前記検索ステップ（Ｓ５）により検索されたプログラムを各ＦＰＧＡ５に書き込む個別プログラム書き込みステップ(Ｓ６)とを有する。【選択図】図４
2007094603.tif 000002
【特許請求の範囲】
【請求項１】
制御装置に接続された複数のプログラマブルデバイスの用途を示す種別コードを読み出す読み出しステップと、
前記種別コードに対応するプログラムデータを検索する検索ステップと、
前記検索ステップにより検索されたプログラムデータを各プログラマブルデバイスに書き込む個別プログラム書き込みステップとを有する
ことを特徴とするプログラマブルデバイス制御方法。
【請求項２】
前記プログラマブルデバイス制御方法は、さらに、
前記複数のプログラマブルデバイスに共通プログラムを書き込む共通プログラム書き込みステップを有し、
前記読み出しステップでは、前記書き込まれた共通プログラムによってプログラマブルデバイスに形成された回路により種別コードを読み出す
ことを特徴とする請求項１記載のプログラマブルデバイス制御方法。
【請求項３】
前記プログラマブルデバイス制御方法は、さらに、
前記複数のプログラマブルデバイスの個数を判定する個数判定ステップを有し、
前記読み出しステップでは、前記個数判定ステップによる判定結果に基づき、種別コードを読み出し、
前記共通プログラム書き込みステップでは、前記個数判定ステップによる判定結果に基づき、複数のプログラマブルデバイスに共通プログラムを書き込み、
前記個別プログラム書き込みステップでは、前記個数判定ステップによる判定結果に基づき、複数のプログラマブルデバイスに個別プログラムを書き込む
ことを特徴とする請求項２記載のプログラマブルデバイス制御方法。
【請求項４】
前記プログラマブルデバイス制御方法は、さらに、
前記複数のプログラマブルデバイスがそれぞれ有する、前記プログラマブルデバイスの固有の仕様を示す機能コードを読み出すことで、各プログラマブルデバイスの固有の仕様を判定する機能判定ステップを有し、
前記読み出しステップでは、前記機能判定ステップによる判定結果に基づき、種別コードを読み出し、
前記共通プログラム書き込みステップでは、前記機能判定ステップによる判定結果に基づき、複数のプログラマブルデバイスに共通プログラムを書き込み
前記個別プログラム書き込みステップでは、前記機能判定ステップによる判定結果に基づき、複数のプログラマブルデバイスに個別プログラムを書き込む
ことを特徴とする請求項２または３記載のプログラマブルデバイス制御方法。
【請求項５】
前記個数判定ステップでは、前記複数のプログラマブルデバイスがそれぞれ有する第一のシフトレジスタを直列に接続した回路を用い、プログラマブルデバイスの個数を判定する
ことを特徴とする請求項３記載のプログラマブルデバイス制御方法。
【請求項６】
前記共通プログラムにより形成された回路は、第二のシフトレジスタを有し、
前記複数のＦＰＧＡの複数の第二のシフトレジスタは直列に接続され、
前記読み出しステップでは、前記直列に接続された複数の第二のシフトレジスタにより形成された回路により種別コードを読み出す
ことを特徴とする請求項２記載のプログラマブルデバイス制御方法。
【請求項７】
制御装置に接続された複数のプログラマブルデバイスの種別情報を示す種別コードを読み出す読み出しステップと、
前記種別コードに対応するプログラムデータを検索する検索ステップと、
前記検索ステップにより検索されたプログラムデータを各プログラマブルデバイスに書き込む個別プログラム書き込みステップと
をコンピュータに実行させることを特徴とするプログラム。
【請求項８】
制御装置に接続された複数のプログラマブルデバイスと、
前記各プログラマブルデバイスの用途を示す種別コードを格納する種別コード格納手段と、
前記種別コードを読み出す読み出し手段と、
前記複数のプログラマブルデバイスに書き込む複数のプログラムデータを格納するプログラムデータ格納手段と、
前記複数のプログラムデータより前記読み出した種別コードに対応するプログラムデータを検索する検索手段と、
前記検索手段により検索されたプログラムデータを各プログラマブルデバイスに書き込む個別プログラム書き込み手段とを備える
ことを特徴とするプログラマブルデバイス制御装置。
【請求項９】
前記プログラマブルデバイス制御装置は、さらに、
前記複数のプログラマブルデバイスに共通プログラムを書き込む共通プログラム書き込み手段を備え、
前記読み出し手段は、前記書き込まれた共通プログラムによってプログラマブルデバイスに形成された回路により種別コードを読み出す
ことを特徴とする請求項８記載のプログラマブルデバイス制御装置。
【請求項１０】
前記プログラマブルデバイス制御装置は、さらに、
前記複数のプログラマブルデバイスの個数を判定する個数判定手段を備え、
前記読み出し手段は、前記個数判定手段による判定結果に基づき、種別コードを読み出し、
前記共通プログラム書き込み手段は、前記個数判定手段による判定結果に基づき、複数のプログラマブルデバイスに共通プログラムを書き込み、
前記個別プログラム書き込み手段は、前記個数判定手段による判定結果に基づき、複数のプログラマブルデバイスに個別プログラムを書き込む
ことを特徴とする請求項９記載のプログラマブルデバイス制御装置。
【請求項１１】
前記各プログラマブルデバイスは、前記各プログラマブルデバイスの固有の仕様を示す機能コードを格納する機能コード格納手段を備え、
前記プログラマブルデバイス制御装置は、さらに、
前記各プログラマブルデバイスの機能コード格納手段が格納する機能コードを読み出すことで、各プログラマブルデバイスの固有の仕様を判定する機能判定手段を備え、
前記読み出し手段では、前記機能判定手段による判定結果に基づき、種別コードを読み出し、
前記共通プログラム書き込み手段は、前記機能判定手段による判定結果に基づき、複数のプログラマブルデバイスに共通プログラムを書き込み
前記個別プログラム書き込み手段は、前記機能判定手段による判定結果に基づき、複数のプログラマブルデバイスに個別プログラムを書き込む
ことを特徴とする請求項９または１０記載のプログラマブルデバイス制御装置。
【請求項１２】
前記各プログラマブルデバイスは、第一のシフトレジスタを備え、
前記各プログラマブルデバイスの第一のシフトレジスタは、電気的に直列に接続され、
前記個数判定手段は、前記第一のシフトレジスタを直列に接続した回路を用い、プログラマブルデバイスの個数を判定する
ことを特徴とする請求項１１記載のプログラマブルデバイス制御装置。
【請求項１３】
前記共通プログラムにより形成された回路は、第二のシフトレジスタを備え、
前記複数のプログラマブルデバイスの複数の第二のシフトレジスタは電気的に直列に接続され、
前記読み出し手段は、前記直列に接続された複数の第二のシフトレジスタにより形成された回路により種別コードを読み出す
ことを特徴とする請求項９、１０、１１または１２記載のプログラマブルデバイス制御装置。
【請求項１４】
前記種別コードは、基板上の配線の組み合わせにより形成される
ことを特徴とする請求項１３記載のプログラマブルデバイス制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラマブルデバイス制御装置およびプログラマブルデバイス制御方法に関し、特に、プログラマブルデバイスの自動プログラム書込みを行うプログラマブルデバイス制御装置プログラマブルデバイス制御方法に関する。
【背景技術】
【０００２】
プルグラマブルデバイスは、ユーザがプログラムを書き込むことで、任意に回路を形成することのできるＬＳＩである。プログラマブルデバイスとして、ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）およびＰＬＤ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）等がある。
【０００３】
プログラマブルデバイスは、揮発性記憶素子を使用しており、電源投入後に、毎回プログラムを書き込み、回路を形成する必要がある。
【０００４】
図９は、従来のプログラマブルデバイス制御装置のブロック図である。
図９に示すように、従来のプログラマブルデバイス制御装置は、各ＦＰＧＡ１０１に対し、書き込むプログラムを記憶したＲＯＭ１０２を配置している。従来のプログラマブルデバイスは、電源投入後に各ＦＰＧＡ１０１に対応するＲＯＭ１０２に格納されているプログラムを書き込む。しかしならが、上記方法では、各ＦＰＧＡ１０１に書き込むプログラムを変更するためには、各ＦＰＧＡ１０１に対応するＲＯＭ１０２を変更しなくてはならず面倒であるという問題がある。
【０００５】
上記問題を解決する方法として、ＦＰＧＡ１０１に書き込むプログラムをプロセッサ等の制御装置またはホストコンピュータ等に記憶する方法がある（例えば、特許文献１）。
【０００６】
図１０は、ＦＰＧＡ１０１に書き込むプログラムをプロセッサ等の制御装置またはホストコンピュータ等に記憶する従来のプログラマブルデバイス制御装置のブロック図である。
【０００７】
図１０に示すプログラマブルデバイス制御装置は、複数のＦＰＧＡ１０１に書き込む複数のプログラムを、プロセッサ１０３内のＲＯＭ１０５に一括して格納する。これにより、各ＦＰＧＡ１０５に書き込むプログラムを一括して管理することができる。
【０００８】
また別の方法として、外部Ｉ／Ｆ１０７を介し、ホストコンピュータ等に格納されているプログラムをプロセッサのＲＡＭ１０６に読込み、ＦＰＧＡ１０１に書き込む方法がある。
【特許文献１】特開２００２−３４２０８５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、ＦＰＧＡ１０１に書き込むプログラムをプロセッサ等の制御装置またはホストコンピュータ等に記憶する方法では、制御装置が、制御装置に接続されているどのＦＰＧＡ１０１に、どのプログラムを書き込むかの情報を有している必要がある。よって、ＦＰＧＡ１０１を有する機能ブロックを追加または変更する場合、ユーザは、ＦＰＧＡ１０１に書き込むプログラムの情報を新たに制御装置に入力する必要がある。すなわち、ユーザは、制御装置に接続するＦＰＧＡ１０１を有する機能ブロックを追加または変更するハード変更と、ＦＰＧＡに書き込むプログラム情報を追加または変更するソフト変更とを行う必要がある。よって、ＦＰＧＡ１０１を有する機能ブロックの追加または変更を行うことが面倒であるという問題がある。
【００１０】
そこで、本発明は、ＦＰＧＡ１０１等のプログラマブルデバイスを有する機能ブロックの追加または変更を容易に行うことのできるプログラマブルデバイス制御装置およびプログラマブルデバイス制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記目的を達成するために、本発明に係るプログラマブルデバイス制御方法は、制御装置に接続された複数のプログラマブルデバイスの用途を示す種別コードを読み出す読み出しステップと、前記種別コードに対応するプログラムデータを検索する検索ステップと、前記検索ステップにより検索されたプログラムデータを各プログラマブルデバイスに書き込む個別プログラム書き込みステップとを有する。
【００１２】
これにより、識別コードから各プログラマブルデバイスに書き込むプログラムデータを検索する。すなわち、制御装置は、各プログラマブルデバイスに書き込むプログラムデータの情報を有していなくても、識別コードより、自動的に各プログラマブルデバイスに書き込むプログラムデータを検索する。よって、制御装置に接続さているプログラマブルデバイスの変更または追加をする場合に、制御装置のプログラム変更をする必要がない。すなわち、制御装置に接続されているプログラマブルデバイスの変更（ハード変更）をするだけで、制御装置のソフト変更を行う必要はない。また、プログラマブルデバイスを変更しなくても、種別コードを変更するだけで、機能変更を行うことができる。よって、本発明におけるプログラマブルデバイス制御方法は、プログラマブルデバイスの追加または変更を容易に行うことができる。
【００１３】
また、前記プログラマブルデバイス制御方法は、さらに、前記複数のプログラマブルデバイスに共通プログラムを書き込む共通プログラム書き込みステップを有し、前記読み出しステップでは、前記書き込まれた共通プログラムによってプログラマブルデバイスに形成された回路により種別コードを読み出してもよい。
【００１４】
これにより、各プログラマブルデバイスに識別コード読み出し回路が形成される。よって、各プログラマブルデバイスを有する機能ブロックに、識別コードの読み出し機能がない場合でも、各プログラマブルデバイスに形成された識別コード読み出し回路を用いることで、識別コードの読み出しを行うことができる。
【００１５】
また、前記プログラマブルデバイス制御方法は、さらに、前記複数のプログラマブルデバイスの個数を判定する個数判定ステップを有し、前記読み出しステップでは、前記個数判定ステップによる判定結果に基づき、種別コードを読み出し、前記共通プログラム書き込みステップでは、前記個数判定ステップによる判定結果に基づき、複数のプログラマブルデバイスに共通プログラムを書き込み、前記個別プログラム書き込みステップでは、前記個数判定ステップによる判定結果に基づき、複数のプログラマブルデバイスに個別プログラムを書き込んでもよい。
【００１６】
これにより、制御装置に接続されているプログラマブルデバイスの個数を判定することができる。よって、制御装置が、制御装置に接続されているプログラマブルデバイスの個数の情報を有さない場合でも、自動的に接続されているプログラマブルデバイスの個数の情報を判定することができる。
【００１７】
また、前記プログラマブルデバイス制御方法は、さらに、前記複数のプログラマブルデバイスがそれぞれ有する、前記プログラマブルデバイスの固有の仕様を示す機能コードを読み出すことで、各プログラマブルデバイスの固有の仕様を判定する機能判定ステップを有し、前記読み出しステップでは、前記機能判定ステップによる判定結果に基づき、種別コードを読み出し、前記共通プログラム書き込みステップでは、前記機能判定ステップによる判定結果に基づき、複数のプログラマブルデバイスに共通プログラムを書き込み前記個別プログラム書き込みステップでは、前記機能判定ステップによる判定結果に基づき、複数のプログラマブルデバイスに個別プログラムを書き込んでもよい。
【００１８】
これにより、制御装置に接続されているプログラマブルデバイスの固有の仕様（端子情報、動作速度および容量等）を判定することができる。よって、制御装置が、制御装置に接続されているプログラマブルデバイスの固有の仕様の情報を有さない場合でも、自動的に接続されているプログラマブルデバイスの固有の仕様の情報を判定することができる。
【００１９】
また、前記個数判定ステップでは、前記複数のプログラマブルデバイスがそれぞれ有する第一のシフトレジスタを直列に接続した回路を用い、プログラマブルデバイスの個数を判定してもよい。
【００２０】
また、前記共通プログラムにより形成された回路は、第二のシフトレジスタを有し、前記複数のＦＰＧＡの複数の第二のシフトレジスタは直列に接続され、前記読み出しステップでは、前記直列に接続された複数の第二のシフトレジスタにより形成された回路により種別コードを読み出してもよい。
【００２１】
なお、本発明は、このようなプログラマブルデバイス制御方法として実現することができるだけでなく、プログラマブルデバイス制御方法に含まれる特徴的なステップをコンピュータに実行させるプログラムとして実現したりすることもできる。また、プログラマブルデバイス制御方法に含まれる特徴的なステップを手段とするプログラマブルデバイス制御装置として実現することもできる。
【発明の効果】
【００２２】
本発明は、ＦＰＧＡ１０１等のプログラマブルデバイスを有する機能ブロックの追加または変更を容易に行うことのできるプログラマブルデバイス制御装置およびプログラマブルデバイス制御方法を提供することができる。
【発明を実施するための最良の形態】
【００２３】
以下、本発明に係るプログラマブルデバイス制御装置の実施の形態について、図面を参照しながら詳細に説明する。
【００２４】
図１は、本実施の形態におけるプログラマブルデバイス制御装置の構成を示すブロック図である。
【００２５】
図１に示すプログラマブルデバイス制御装置は、制御装置１と、機能ブロック２と、機能ブロック３と、終端装置４とを備える。
【００２６】
制御装置１は、機能ブロック２および機能ブロック３の制御を行う、プロセッサ等である。
【００２７】
機能ブロック２および３は、ＦＰＧＡ５と、種別コード格納部６とを備える。
ＦＰＧＡ５は、書き込まれたプログラムにより任意の回路構成を形成するプログラマブルデバイスである。
【００２８】
種別コード格納部６は、機能ブロック２および３の用途を示した種別コード３１を格納する。種別コード３１は、各機能ブロック２および３のＦＰＧＡ５に書き込まれるプログラムの情報を示したコードである。例えば、種別コード格納部６は、基板上の配線の組み合わせにより種別コード３１を格納する。
【００２９】
終端装置４は、機能ブロック３より出力された信号を折り返し、機能ブロック３に出力する。
【００３０】
制御装置１は、機能ブロック２と接続される。機能ブロック２は、制御ブロック３と接続される。機能ブロック３は、終端装置４と接続される。
【００３１】
制御装置１、機能ブロック２、機能ブロック３および終端装置４は、２つの信号経路７および８を有する。各信号経路７および８は、制御装置１、機能ブロック２、機能ブロック３および終端装置４の順に接続される。各信号経路７および８は、終端装置４で折り返し、機能ブロック３、機能ブロック２および制御装置１の順で接続される。このように、各信号経路７および８は、ループを形成する。
【００３２】
信号経路７は、各ＦＰＧＡ５へのプログラムの書き込みに用いられる。
信号経路８は、種別コード３１の読み出しに用いられる。
【００３３】
図２は、図１に示す制御装置１のブロック図である。
制御装置１は、Ｉ／Ｏ制御部１０および１４と、個数判定部１１と、機能判定部１２と、共通プログラム書き込み部１３と、種別コード読み出し部１５と、種別コードデータ格納部１６と、プルグラムデータ格納部１８と、プログラム検索部２０と、個別プログラム書き込み部２１とを備える。
【００３４】
Ｉ／Ｏ制御部１０は、信号経路７と制御装置１との信号の受け渡しを行う入力インターフェース等である。
【００３５】
個数判定部１１は、Ｉ／Ｏ制御部１０を介し、信号経路７より入力された信号より、制御装置１に接続されている機能ブロックの個数および接続順序を判定する。
【００３６】
機能判定部１２は、Ｉ／Ｏ制御部１０を介し、信号経路７より入力された信号より、各機能ブロックの固有の仕様（端子情報、動作速度および容量等）を判定する。
【００３７】
共通プログラム書き込み部１３は、個数判定部１１および機能判定部１２の判定結果に基づき、Ｉ／Ｏ制御部１０および信号経路７を介し、機能ブロック２および３に共通プログラムおよび共通プログラムの書き込み命令を送る。ここで共通プログラムとは、各機能ブロック２および３の種別コード３１を読み出すための回路を形成するプログラムである。
【００３８】
Ｉ／Ｏ制御部１４は、信号経路８と制御装置１との信号の受け渡しを行う入力インターフェース等である。
【００３９】
種別コード読み出し部１５は、Ｉ／Ｏ制御部１４を介し、信号経路８より各機能ブロック２および３の用途を示す種別コード３１を読み出す。
【００４０】
種別コードデータ格納部１６は、種別コード３１と、ＦＰＧＡ５に書き込むプログラムとの関係を示す種別コードデータ１７を格納する、ハードディスク等である。
【００４１】
プログラムデータ格納部１８は、ＦＰＧＡ５に書き込む複数のプログラムデータ１９を格納する、ハードディスク等である。
【００４２】
プログラム検索部２０は、種別コード読み出し部１５により読み出された各機能ブロック２および３の種別コード３１と、種別コードデータ格納部１６に格納されている種別コードデータ１７とから、各機能ブロック２および３に書き込むプログラムを検索する。
【００４３】
個別プログラム書き込み部２１は、プログラム検索部２０の検索結果より、各機能ブロックに書き込みプログラムデータ１９をＩ／Ｏ制御部１０および信号経路７を介して、各機能ブロックに送る。
【００４４】
図３は、図１に示す機能ブロック２の構成を示すブロック図である。なお、機能ブロック３も同様の構成である。
【００４５】
機能ブロック２は、ＦＰＧＡ５と、種別コード格納部６と、Ｉ／Ｏ制御部３２と、プログラム書き込み部３３とを備える。
【００４６】
Ｉ／Ｏ制御部３２は、機能ブロック２と信号経路７との信号の受け渡しを行う。ここでは図示していないが、Ｉ／Ｏ制御部３２は、シフトレジスタを備える。また、Ｉ／Ｏ制御部３２は、機能ブロックの機能を示す機能コードを格納する。例えば、Ｉ／Ｏ制御部３２は、ＪＴＡＧ回路等で形成される。
【００４７】
プログラム書き込み部３３は、制御装置１からＩ／Ｏ制御部３２を介し送られてきたプログラムデータ１９をＦＰＧＡ５に書き込む。
【００４８】
信号経路７は、制御装置１のＩ／Ｏ制御部１０、機能ブロック２のＩ／Ｏ制御部３２、機能ブロック３のＩ／Ｏ制御部３２、終端装置４、機能ブロック３のＩ／Ｏ制御部３２、機能ブロック２のＩ／Ｏ制御部３２および制御装置１のＩ／Ｏ制御部１０の順に電気的に直列に接続された折り返しループ経路を構成する。また、信号経路８は、制御装置１のＩ／Ｏ制御部１４、機能ブロック２のＦＰＧＡ５、機能ブロック３のＦＰＧＡ５、終端装置４、機能ブロック３のＦＰＧＡ５、機能ブロック２のＦＰＧＡ５および制御装置１のＩ／Ｏ制御部１４の順に電気的に直列に接続された折り返しループ経路を構成する。
【００４９】
信号経路７において、機能ブロック２のＩ／Ｏ制御部３２、および、機能ブロック３のＩ／Ｏ制御部３２のシフトレジスタは直列に接続される。
【００５０】
次に、本実施の形態におけるプログラマブルデバイス制御装置の動作を説明する。
図４は、本実施の形態におけるプログラマブルデバイス制御装置のプログラム書き込み動作を示すフローチャートである。
【００５１】
プログラマブルデバイス制御装置に電源が投入されると、制御装置１に接続されているＦＰＧＡのプログラム書き込み動作が開始される。
【００５２】
図５は、電源投入時の機能ブロック２および３の回路構成を模式的に示す図である。図５に示すように、電源投入時の機能ブロック２および３のＦＰＧＡ５には、プログラムが書き込まれておらず、ＦＰＧＡ５には、回路が形成されていない。また、図５に示すように、Ｉ／Ｏ制御部３２は、シフトレジスタ５１を備える。
【００５３】
まず、制御装置１の個数判定部１１は、制御装置１に接続されているＦＰＧＡ５を有する機能ブロックの個数を判定する。
【００５４】
図６は、接続されている機能ブロックの個数判定に用いられる信号のタイミングチャートを示す図である。図６に示す出力信号６２は、個数判定部１１より出力される信号である。データ６３は、機能ブロック２のＩ／Ｏ制御部３２のシフトレジスタ５１が保持するデータである。データ６４は、機能ブロック３のＩ／Ｏ制御部３２のシフトレジスタ５１が保持するデータである。入力信号６５は、個数判定部１１に入力される信号である。なお、電源投入時には、機能ブロック２および機能ブロック３のＩ／Ｏ制御部３２の各シフトレジスタ５１の保持するデータは、Ｌレベルであるとする。
【００５５】
個数判定部１１は、Ｉ／Ｏ制御部１０を介し、信号経路７に図６に示すようなクロック信号６１および出力信号６２を出力する。クロック信号６１および出力信号６２は、機能ブロック２のＩ／Ｏ制御部３２が備えるシフトレジスタ５１に送られる。これにより、時刻Ｔ１において、機能ブロック２のＩ／Ｏ制御部３２が備えるシフトレジスタ５１は、クロック信号６１の立ち上がりに同期し、出力信号６２の信号レベルを取り込む。すなわち、機能ブロック２のＩ／Ｏ制御部３２が備えるシフトレジスタ５１の格納するデータ６３がＨレベルになる。データ６３は、機能ブロック３のＩ／Ｏ制御部３２が備えるシフトレジスタ５１のシリアル入力に送られる。これにより、時刻Ｔ２において、機能ブロック３のＩ／Ｏ制御部３２が備えるシフトレジスタ５１は、クロック信号６１の立ち上がりに同期し、データ６３の信号レベルを取り込む。すなわち、機能ブロック３のＩ／Ｏ制御部３２が備えるシフトレジスタ５１の保持するデータ６４は、Ｈレベルになる。データ６４は、終端装置４、機能ブロック３および機能ブロック２を介し、個数判定部１１に入力される。個数判定部１１は、出力信号６２にＨレベルを出力してから、入力信号６５がＨレベルに変化するまでのクロック数をカウントすることで、接続されている機能ブロックの個数を判定する。すなわち、出力信号６２にＨレベルを出力した後、２クロックで入力信号６５がＨレベルに変化したので、個数判定部１１は、接続されている機能ブロックは２個であると判定する（Ｓ１）。
【００５６】
次に、制御装置１の機能判定部１２は、Ｉ／Ｏ制御部３２が格納している機能コードを出力する命令を、信号経路７を介し、各機能ブロックのＩ／Ｏ制御部３２に、送る。各機能ブロックのＩ／Ｏ制御部３２は、送られてきた命令に従い機能コードを出力する。出力された機能コードは、信号経路７を介し、機能判定部１２に送られる。機能判定部１２は、送られてきた種別コード３１と、機能判定部１２が格納しているテーブルとから、各機能ブロックの固有の仕様（端子情報、動作速度および容量等）を判定する（Ｓ２）。
【００５７】
制御装置１の共通プログラム書き込み部１３は、ステップＳ１およびステップＳ２で判定された機能ブロックの個数および固有の仕様に基づき、各機能ブロックに共通プログラムの書き込み命令を送る。すなわち、共通プログラム書き込み部１３は、Ｉ／Ｏ制御部１０を介し、信号経路７に共通プログラムおよび書き込み命令を送る。各機能ブロックのＩ／Ｏ制御部３２は、送られてきた共通プログラムを、プログラム書き込み部３３に送る。プログラム書き込み部３３は、共通プログラムをＦＰＧＡ５に書き込む。これにより、ＦＰＧＡ５は、種別コード格納部６に格納されている種別コード３１を読み出す回路を構成する（Ｓ３）。図７は、共通プログラム書き込み後の、機能ブロック２および３の回路構成を模式的に示す図である。図７に示すように、ＦＰＧＡ５にシフトレジスタ７１が形成される。シフトレジスタ７１は、信号経路８および種別コード格納部６に接続される。シフトレジスタ７１は、種別コード格納部６に格納されている種別コード３１を取り込み、信号経路８に出力する機能を有する。また、各機能ブロックのシフトレジスタ７１は、信号経路８を介し、電気的に直列に接続される。
【００５８】
制御装置１の種別コード読み出し部１５は、ステップＳ１およびステップＳ２で判定された機能ブロックの個数および固有の仕様に基づき、各機能ブロックに種別コード３１の読み出し命令を送る。すなわち、種別コード読み出し部１５は、Ｉ／Ｏ制御部１４を介し、信号経路８に種別コード読み出し命令を送る。各機能ブロックのＩ／Ｏ制御部３２は、信号経路８より種別コード読み出し命令を受け取り、送られてきた命令をＦＰＧＡ５に送る。ＦＰＧＡ５は、送られてきた命令に従い、種別コード格納部６に格納されている種別コード３１を読み出す。すなわち、ＦＰＧＡ５に形成されたシフトレジスタ７１は、種別コード３１を取り込み、信号経路８に順次出力する。読み出された種別コード３１は、信号経路８およびＩ／Ｏ制御部１４を介し、種別コード読み出し部１５に送られる（Ｓ４）。
【００５９】
制御装置１のプログラム検索部２０は、読み出し部１５に送られた各機能ブロックの種別コード３１と、種別コードデータ格納部１６に格納されている種別コードデータ１７とから、各機能ブロックに書き込むプログラムデータ１９を検索する（Ｓ５）。
【００６０】
個別プログラム書き込み部２１は、プログラム検索部２０による検索結果より、各機能ブロックに書き込むプログラムデータ１９を取得する。個別プログラム書き込み部２１は、取得したプログラムデータ１９を、ステップＳ１およびステップＳ２で判定された機能ブロックの個数および固有の仕様に基づき、各機能ブロックに送る。すなわち、個別プログラム書き込み部２１は、Ｉ／Ｏ制御部１０を介し、信号経路７に、プログラム書き込み命令および各機能ブロックのＦＰＧＡ５に書き込むプログラムデータ１９を送る。各機能ブロックのＩ／Ｏ制御部３２は、送られてきたプログラムデータ１９を、プログラム書き込み部３３に送る。プログラム書き込み部３３は、プログラムデータ１９をＦＰＧＡ５に書き込む。これにより、ＦＰＧＡ５は、種別コード格納部６に格納されている種別コード３１に対応する機能を有する回路を構成する（Ｓ６）。図８は、ステップＳ６におけるプログラム書き込み後の機能ブロック２および３の回路構成を模式的に示す図である。図８に示すように、例えば、ＦＰＧＡ５に、Ｉ／Ｏ制御部８１と、制御部８２と、処理部８３および８４とが形成される。Ｉ／Ｏ制御部８１は、信号経路８５を介し、制御装置１および他の機能ブロックとの信号の受け渡しを行う。制御部８２は、処理部８３および８４の制御を行う。処理部８３および８４は、書き込まれたプログラムデータ１９に対応する、任意の処理機能を有する。例えば、処理部８３および８４は、画像処理または音声処理等を行う。
【００６１】
以上により、本実施の形態におけるプログラマブルデバイス制御装置は、ステップＳ１において、制御装置１に接続されている機能ブロックの個数を判定する。これにより、制御装置１に接続されている機能ブロックの個数の情報を制御装置１が有していない場合でも、自動的に制御装置１に接続されている機能ブロックの個数を判定することができる。
【００６２】
また、ステップＳ２において、制御装置１に接続されている機能ブロックの固有の仕様を判定する。これにより、制御装置１に接続されている機能ブロックの固有の仕様の情報を有さない場合でも、自動的に接続されている機能ブロックの固有の仕様の情報を判定することができる。
【００６３】
また、ステップＳ３〜Ｓ５において、各機能ブロックの種別コード３１を読み出すためのプログラムを書き込み、種別コード３１を読み出す。これにより、制御装置１が、各機能ブロックのＦＰＧＡ５に書き込むプログラムの情報を有していなくても、自動的に各機能ブロックのＦＰＧＡ５に書き込むプログラムを判定することができる。よって、接続する機能ブロックの変更または追加する場合に、制御装置１のプログラム変更をする必要がない。すなわち、制御装置１に接続する機能ブロックの変更（ハード変更）をするだけで、制御装置１のソフト変更を行う必要はない。また、機能ブロックを変更しなくとも、種別コード３１を変更するだけで、プログラマブルデバイス制御装置の機能変更を行うことができる。よって、本実施の形態におけるプログラマブルデバイス制御装置は、ＦＰＧＡ５等のプログラマブルデバイスを有する機能ブロックの追加または変更を容易に行うことができる。
【００６４】
以上、本発明の実施の形態に係るプログラマブルデバイス制御装置について説明したが、本発明は、この実施の形態に限定されるものではない。
【００６５】
例えば、上記実施形態におけるプログラマブルデバイス制御装置は、終端装置４を介し信号を折り返しているが、終端装置４を用いなくともよい。例えば、基板上の配線等で信号を折り返してもよい。
【００６６】
また、上記説明では、制御装置１に２個の機能ブロックが接続されているが、制御装置１に接続される機能ブロックの個数はこれに限らない。
【００６７】
また、上記説明では、制御装置１に接続されている機能ブロック２および３は、ＦＰＧＡ５を有しているが、ＦＰＧＡ５を有さない機能ブロックが含まれてもよい。
【００６８】
また、上記説明では、信号経路７および信号経路８は、制御装置１、機能ブロック２、機能ブロック３、終端装置４、機能ブロック３、機能ブロック２および制御装置１の順に接続されている。つまり、上りおよび下りの経路の両方で各機能ブロックを経由するループ経路を形成しているが、上りまたは下りの経路のどちらか一方で各機能ブロックを経由するループ経路を形成してもよい。すなわち、制御装置１、機能ブロック２、機能ブロック３、終端装置４および制御装置１の順に信号経路を形成してもよい。また、制御装置１、終端装置４、機能ブロック３、機能ブロック２および制御装置１の順に信号経路を形成してもよい。
【００６９】
また、上記説明では、各機能ブロックは、１個のＦＰＧＡ５を備えているが、複数のＦＰＧＡ５を備えてもよい。なお、各機能ブロックが複数のＦＰＧＡ５を備える場合には、各ＦＰＧＡに対応する複数の種別コード３１が各機能ブロックの種別コード格納部６に格納される。
【００７０】
また、種別コードデータ１７は、制御装置１内の種別コードデータ格納部１６に格納されているが、これに限らない。例えば、ネットワークを介したホストコンピュータ等に種別コードデータ１７を格納し、制御装置１が種別コードデータ１７を読み出し使用してもよい。
【００７１】
また、プログラムデータ１９は、制御装置１内のプルグラムデータ格納部１８に格納されているが、これに限らない。例えば、ネットワークを介したホストコンピュータ等にプログラムデータ１９を格納し、制御装置１がプログラムデータ１９を読み出し使用してもよい。
【００７２】
また、上記説明では、電源投入時にプログラム書き込み動作が開始するとしているが、電源投入時以外にも、外部からのコマンド入力等の操作により、プログラム書き込み動作を開始してもよい。
【産業上の利用可能性】
【００７３】
本発明は、プログラマブルデバイス制御装置およびプログラマブルデバイス制御方法に適用でき、特にＦＰＧＡを使用する工業用制御電子機器、デジタルＡＶ応用機器、有線通信機器、無線通信機器および衛星通信機器等のプログラマブルデバイス制御装置およびプログラマブルデバイス制御方法に適用できる。
【図面の簡単な説明】
【００７４】
【図１】本発明におけるプログラマブルデバイス制御装置のブロック図である。
【図２】制御装置１のブロック図である。
【図３】機能ブロック２のブロック図である。
【図４】プログラム書き込み動作を示すフローチャートである。
【図５】電源投入時の機能ブロック２の回路構成を示す図である。
【図６】機能ブロックの個数判定に用いられる信号のタイミングチャートを示す図である。
【図７】共通プログラム書き込み後の機能ブロック２の回路構成を示す図である。
【図８】プログラム書き込み後の機能ブロック２の回路構成を示す図である。
【図９】従来のプログラマブルデバイス制御装置のブロック図である。
【図１０】従来のプログラマブルデバイス制御装置のブロック図である。
【符号の説明】
【００７５】
１    制御装置
２、３    機能ブロック
４    終端装置
５、１０１    ＦＰＧＡ
６    種別コード格納部
７、８、８５    信号経路
１０、１４、３２、８１    Ｉ／Ｏ制御部
１１    個数判定部
１２    機能判定部
１３    共通プログラム書き込み部
１５    種別コード読み出し部
１６    種別コードデータ格納部
１７    種別コードデータ
１８    プルグラムデータ格納部
１９    プログラムデータ
２０    プログラム検索部
２１    個別プログラム書き込み部
３１    種別コード
３３    プログラム書き込み部
５１、７１    シフトレジスタ
６１    クロック信号
６２    出力信号
６３、６４    データ
６５    入力信号
８２    制御部
８３、８４    処理部
１０２、１０５    ＲＯＭ
１０３    プロセッサ
１０４    ＣＰＵ
１０６    ＲＡＭ
１０７    外部Ｉ／Ｆ
【図１】
2007094603.tif 000003
【図２】
2007094603.tif 000004
【図３】
2007094603.tif 000005
【図４】
2007094603.tif 000006
【図５】
2007094603.tif 000007
【図６】
2007094603.tif 000008
【図７】
2007094603.tif 000009
【図８】
2007094603.tif 000010
【図９】
2007094603.tif 000011
【図１０】
2007094603.tif 000012