(57)【特許請求の範囲】
【請求項１】
論理回路の機能を示す論理データを保持する論理データ保持部が複数搭載されたプログラマブルデバイスを制御する制御方法であって、
前記プログラマブルデバイスを制御する制御装置が、前記複数の論理データ保持部のうち一部の論理データ保持部が保持する論理データを更新する指示であって、前記一部の論理データ保持部を特定する特定データと、前記一部の論理データ保持部に対応した更新後の論理データと、論理データの更新を有効にする信号とを含む前記指示を前記プログラマブルデバイスに出力し、
前記プログラマブルデバイスに搭載された論理データ更新部が、前記指示に基づいて、前記更新後の論理データを前記複数の論理データ保持部の全てに出力すると共に、前記特定データで特定される論理データ保持部には前記信号をそのまま出力し、前記複数の論理データ保持部のうちの前記特定データで特定される論理データ保持部以外の論理データ保持部には、前記信号を、論理データの更新を無効にする信号に変更して出力することによって、前記一部の論理データ保持部が保持する論理データのみを前記更新後の論理データに更新する、
ことを特徴とするプログラマブルデバイスの制御方法。
【請求項２】
前記制御装置は、
前記複数の論理データ保持部のうち、前記論理データの更新を行う論理データ保持部の指定および更新される論理データの入力を受け付け、
指定された論理データ保持部を前記一部の論理データ保持部として、該一部の論理データ保持部についてのみの前記指示を生成する、
ことを特徴とする請求項１記載のプログラマブルデバイスの制御方法。
【請求項３】
前記プログラマブルデバイスは、
前記論理データ更新部が、前記一部の論理データ保持部が保持する論理データを更新している間、前記複数の論理データ保持部のうち前記一部の論理データ保持部以外の論理データ保持部により実現される論理回路を動作させる、
ことを特徴とする請求項１または２記載のプログラマブルデバイスの制御方法。
【請求項４】
論理回路の機能を示す論理データを保持する複数の論理データ保持部と、
前記複数の論理データ保持部のうち一部の論理データ保持部が保持する論理データを更新する指示であって、前記一部の論理データ保持部を特定する特定データと、前記一部の論理データ保持部に対応した更新後の論理データと、論理データの更新を有効にする信号とを含む前記指示に基づいて、前記更新後の論理データを前記複数の論理データ保持部の全てに出力すると共に、前記特定データで特定される論理データ保持部には前記信号をそのまま出力し、前記複数の論理データ保持部のうちの前記特定データで特定される論理データ保持部以外の論理データ保持部には、前記信号を、論理データの更新を無効にする信号に変更して出力することによって、前記一部の論理データ保持部が保持する論理データのみを前記更新後の論理データに更新する論理データ更新部と、
を備えることを特徴とするプログラマブルデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラマブルデバイスの制御方法およびプログラマブルデバイスに関する。
【背景技術】
【０００２】
近年、論理回路の機能を変更可能なField Programmable Gate Array(FPGA)が用いられている。ＦＰＧＡは、プログラマブルデバイスとも称される。ＦＰＧＡには、Look Up Table(LUT)が搭載される。ＬＵＴは、論路回路の機能を示すテーブルであり、該ＬＵＴのデータが更新されることで、ＦＰＧＡの論理回路の機能が更新される。
【０００３】
関連する技術として、ＬＵＴ形式のデータ変換処理を組み込んだプログラマブル論理回路におけるＬＵＴの設定操作を簡略化する技術が提案されている（例えば、特許文献１を参照）。また、再起動を必要とすることなく、再読み込みされたプログラムに基づいて動作することが可能な情報処理デバイスに関する技術が提案されている（例えば、特許文献２を参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００４−０５４５６８号公報
【特許文献２】特開２００５−１８２４１０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
例えば、ＦＰＧＡ（プログラマブルデバイス）に搭載される各ＬＵＴは、コンフィグレーション処理により更新される。コンフィグレーション処理は、ＦＰＧＡの外部に設けられるRead Only Memory(ROM)に対して、各ＬＵＴのＬＵＴデータが記憶され、該ＲＯＭから読み出されたＬＵＴデータが各ＬＵＴに設定されることにより行われる。
【０００６】
この際、上記ＲＯＭの先頭の領域から全領域に対して各ＬＵＴのＬＵＴデータが更新される。ＦＰＧＡに搭載されるＬＵＴの数が多くなるに応じて、コンフィグレーション処理にかかる時間が長くなる。このため、ＦＰＧＡに搭載される各ＬＵＴのうち一部のＬＵＴが更新される場合でも、更新時間が長くなる。
【０００７】
１つの側面として、本発明は、プログラマブルデバイスに搭載される論理回路の機能の更新時間を短縮化することを目的とする。
【課題を解決するための手段】
【０００８】
１つの態様では、プログラマブルデバイスの制御方法は、論理回路の機能を示す論理データを保持する論理データ保持部が複数搭載されるプログラマブルデバイスを制御する制御方法であって、前記プログラマブルデバイスを制御する制御装置が、前記複数の論理データ保持部のうち一部の論理データ保持部が保持する論理データを更新する指示であって、前記一部の論理データ保持部を特定する特定データと、前記一部の論理データ保持部に対応した更新後の論理データと、論理データの更新を有効にする信号とを含む前記指示を前記プログラマブルデバイスに出力し、前記プログラマブルデバイスに搭載される論理データ更新部が、前記指示に基づいて、前記更新後の論理データを前記複数の論理データ保持部の全てに出力すると共に、前記特定データで特定される論理データ保持部には前記信号をそのまま出力し、前記複数の論理データ保持部のうちの前記特定データで特定される論理データ保持部以外の論理データ保持部には、前記信号を、論理データの更新を無効にする信号に変更して出力することによって、前記一部の論理データ保持部が保持する論理データのみを前記更新後の論理データに更新する。
【発明の効果】
【０００９】
１つの側面によれば、プログラマブルデバイスに搭載される論理回路の機能の更新時間を短縮化することができる。
【図面の簡単な説明】
【００１０】
【図１】電子機器および制御装置の一例を示す図である。
【図２】ＦＰＧＡの一例を示す図（その１）である。
【図３】ＦＰＧＡの一例を示す図（その２）である。
【図４】制御装置の一例を示す機能ブロック図である。
【図５】更新指示生成の一例を示す画面例である。
【図６】更新指示生成の他の例を示す画面例である。
【図７】ＦＰＧＡの一例を示す図（その３）である。
【図８】更新指示を入力したＬＵＴ更新モジュールの出力の一例を示す図である。
【図９】ＦＰＧＡの一例を示す図（その４）である。
【図１０】制御装置の処理の流れの一例を示すフローチャートである。
【図１１】ＦＰＧＡの処理の流れの一例を示すフローチャートである。
【図１２】制御装置のハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【００１１】
以下、図面を参照して、実施形態について説明する。図１は、電子機器１および制御装置２の一例を示す。電子機器１は、例えば、映像機器や通信機器等であり、該電子機器１の基板にＦＰＧＡ３とコンフィグレーションＲＯＭ４とＣＰＵ５とが搭載される。また、電子機器１には、制御装置２が接続される。電子機器１の例は、図１の例には限定されない。
【００１２】
ＦＰＧＡ３は、論理回路の機能を更新可能なプログラマブルデバイスである。コンフィグレーションＲＯＭ４は、ＦＰＧＡ３に搭載される各論理回路の機能を一括的に設定するためのデータを記憶する。Central Processing Unit(CPU)５は、ＦＰＧＡ３に接続される。
【００１３】
制御装置２は、コンフィグレーションＲＯＭ４およびＣＰＵ５に接続されるコンピュータである。制御装置２は、コンフィグレーションＲＯＭ４に各論理回路の機能を一括的に設定するためのデータを記憶し、ＣＰＵ５を介して、ＦＰＧＡ３を制御する。
【００１４】
図２は、ＦＰＧＡ３の一例を示す図である。ＦＰＧＡ３には、バスインタフェース１０（図２では、「バスＩ／Ｆ」と表記）と記憶回路１１とＬＵＴ更新モジュール１２と複数のLook Up Table(LUT)とが搭載されている。
【００１５】
バスインタフェース１０は、ＣＰＵ５と接続され、ＣＰＵ５との間でデータの入出力を行う。記憶回路１１は、ＣＰＵ５から入力した各種の情報を記憶する。記憶回路１１は、例えば、レジスタやメモリ等であってよい。記憶回路１１が記憶する情報は、例えば、電子機器１の制御をＦＰＧＡ３が行う際に使用される情報である。
【００１６】
バスインタフェース１０は記憶回路１１と接続される。ＬＵＴ更新モジュール１２は、バスインタフェース１０に接続される。また、ＦＰＧＡ３には複数のＬＵＴが搭載される。ＦＰＧＡ３に搭載されるＬＵＴの数は任意の数であってもよい。
【００１７】
ＬＵＴについて説明する。ＬＵＴは、ＦＰＧＡ３のロジックセルに含まれるテーブルである。実施形態のＬＵＴは、４つの信号を入力し、１つの信号を出力する。ただし、ＬＵＴに入力される信号数は４つには限定されず、出力される信号の数も１つには限定されない。
【００１８】
ＬＵＴが保持するデータ（以下、ＬＵＴデータと称する）が更新されることで、該ＬＵＴにより実現される論理回路の機能が変更される。ＬＵＴデータは、論理データの一例である。
【００１９】
例えば、ＬＵＴデータが更新されることで、ＬＵＴにより実現される論理回路は、ＡＮＤ回路やＯＲ回路等、任意の論理回路に変更される。また、各ＬＵＴにはそれぞれアドレスが付与される。アドレスは、ＬＵＴを特定する特定データの一例である。
【００２０】
図２の例では、「ＬＵＴ−Ｘ：Ｘはゼロ以上の整数」のうち「Ｘ」はＬＵＴのアドレスを示す。「ＬＵＴ−０」はアドレス「０」のＬＵＴであることを示し、「ＬＵＴ−１」はアドレス「１」のＬＵＴであることを示す。
【００２１】
各ＬＵＴは、コンフィグレーションＲＯＭ４に接続される。制御装置２は、コンフィグレーションＲＯＭ４に各論理回路の機能を一括的に設定するためのデータ（一括設定データ）を記憶する。一括設定データは、ＬＵＴのアドレスと該ＬＵＴに保持させるＬＵＴデータを含む。
【００２２】
コンフィグレーションＲＯＭ４に記憶された一括設定データがＦＰＧＡ３に入力され、各ＬＵＴにＬＵＴデータが入力されることで、各ＬＵＴが保持するＬＵＴデータが一括的に更新される。この処理は、コンフィギュレーション処理とも称される。
【００２３】
図３は、コンフィグレーション処理の一例を示す。例えば、一括設定データにおいて、アドレス「０」とＡＮＤ論理を示すＬＵＴデータとが対応付けられているとする。この場合、ＬＵＴ−０にＡＮＤ論理を示すＬＵＴデータ（ＡＮＤ論理データ）が入力され、ＬＵＴ−０は該ＬＵＴデータを保持する。
【００２４】
これにより、ＬＵＴ−０は、ＡＮＤ論理回路として機能する。図３の例の場合、ＬＵＴ−１には、ＯＲ論理を示すＬＵＴデータ（ＯＲ論理データ）が入力され、ＬＵＴ−１は該ＬＵＴデータを保持する。これにより、ＬＵＴ−１は、ＯＲ論理回路として機能する。
【００２５】
同様に、ＬＵＴ−２には、Exclusive OR(EOR)論理を示すＬＵＴデータ（ＥＯＲ論理データ）が入力され、ＬＵＴ−２は、該ＬＵＴデータを保持する。これにより、ＬＵＴ−２は、ＥＯＲ論理回路として機能する。
【００２６】
コンフィグレーション処理が行われることにより、ＦＰＧＡ３に搭載される他のＬＵＴにもそれぞれＬＵＴデータが入力され、該他のＬＵＴはそれぞれＬＵＴデータを保持する。これにより、該他のＬＵＴは、それぞれ所定の論理回路として機能する。
【００２７】
一括設定データは、例えば、ビットファイルデータであってもよい。制御装置２を操作する操作者（例えば、ＦＰＧＡ３の回路構成を設定する設定者等）は、制御装置２に、ＦＰＧＡ３に搭載される各ＬＵＴに保持させるＬＵＴデータを設定する。
【００２８】
例えば、操作者は、制御装置２を用いて、プログラムコードのコーディングを行い、ＦＰＧＡ３に搭載される各ＬＵＴに保持させるＬＵＴデータを設定する。ＬＵＴデータの設定は、コーディング以外の手法により行われてもよい。
【００２９】
制御装置２は、各ＬＵＴについて、ＬＵＴデータの設定の入力を受け付ける。制御装置２は、設定された各ＬＵＴのＬＵＴデータから一括設定データを生成し、生成された一括設定データをコンフィグレーションＲＯＭ４に記憶する。
【００３０】
一括設定データがコンフィグレーションＲＯＭ４に記憶される際、制御装置２は、コンフィグレーションＲＯＭ４の先頭の領域から全領域を更新して、一括設定データをコンフィグレーションＲＯＭ４に記憶する。
【００３１】
ここで、各ＬＵＴのうち一部のＬＵＴが保持するＬＵＴテーブルの更新をコンフィグレーション処理により行う場合を想定する。この場合、コンフィグレーション処理が行われると、コンフィグレーションＲＯＭ４の先頭の領域から全領域が更新される。
【００３２】
また、ＦＰＧＡ３に搭載される全てのＬＵＴが保持するＬＵＴデータが更新される。従って、ＦＰＧＡ３に搭載される全てのＬＵＴではなく、一部のＬＵＴが保持するＬＵＴデータを更新する場合でも、コンフィグレーション処理のためにかかる時間が長くなる。
【００３３】
コンフィグレーション処理は、全てのＬＵＴが保持するＬＵＴデータを更新する処理であり、該コンフィグレーション処理が行われている間、ＦＰＧＡ３はデバイスとしては機能しない。
【００３４】
このため、ＦＰＧＡ３に対してコンフィグレーション処理が行われている間、ＦＰＧＡ３はコンフィグレーション処理以外の動作が行われないため、この間、電子機器１は動作しない。例えば、電子機器１が通信機器である場合、ＦＰＧＡ３に対してコンフィグレーション処理が行われている間、該通信機器は機能しない。
【００３５】
そこで、実施形態では、コンフィグレーション処理を行うことなく、ＦＰＧＡ３に搭載される各ＬＵＴのうち一部のＬＵＴのみについて、ＬＵＴデータの更新を行うために、ＬＵＴ更新モジュールがＦＰＧＡ３に搭載される。
【００３６】
ＬＵＴ更新モジュール１２は、バスインタフェース１０に接続される回路であり、論理データ更新部の一例である。制御装置５は、ＦＰＧＡ３に搭載される複数のＬＵＴのうち更新対象である一部のＬＵＴにのみ、ＬＵＴデータを更新する指示（以下、更新指示と称する）を生成する。
【００３７】
図４を参照して、制御装置２の一例について説明する。制御装置２は、記憶部２０と検出部２１と更新指示生成部２２とデータ出力部２３と画面制御部２４と入力受け付け部２５とを含む。
【００３８】
また、制御装置２は、表示装置３１と入力装置３２とＣＰＵ５とに接続される。表示装置３１は、例えばディスプレイであり、入力装置３２は、例えばマウスやキーボード等である。
【００３９】
記憶部２０には各種のデータが記憶される。例えば、ＦＰＧＡ３に搭載される全てのＬＵＴが保持するＬＵＴデータを記述したコード（プログラムコード）が記憶部２０に記憶される。
【００４０】
このプログラムコードが変更された場合、検出部２１は、プログラムコードのうち変更された部分を検出する。例えば、プログラムコードには、ＬＵＴのアドレスとＬＵＴデータとの対応関係が、各ＬＵＴのそれぞれについて記述される。
【００４１】
各ＬＵＴのアドレスのうち何れかのアドレスに対応するＬＵＴのＬＵＴデータが変更された場合、検出部２１は、変更されたＬＵＴデータのアドレスおよび更新後のＬＵＴデータを検出する。
【００４２】
例えば、プログラムコードが編集された場合、編集前のプログラムコードと編集後のプログラムコードとの文字列の比較により、更新されたＬＵＴのアドレスおよび更新後のＬＵＴデータが検出されてもよい。
【００４３】
更新指示生成部２２は、検出部２１が検出したＬＵＴのアドレスに対応するＬＵＴが保持するＬＵＴデータを更新する更新指示を生成する。この更新指示には、ＬＵＴのアドレスと、更新後のＬＵＴデータと、ＬＵＴデータの更新を有効にするイネーブル信号とが含まれる。
【００４４】
データ出力部２３は、生成された更新指示をＣＰＵ５に出力する。画面制御部２４は、表示装置３１の画面制御を行う。例えば、画面制御部２４は、上記のプログラムコードを表示装置３１に表示する制御を行う。
【００４５】
入力受け付け部２５は、入力装置３２を用いて行われた操作を受け付ける。例えば、制御装置２を操作する操作者は、入力装置３２を用いて、上記のプログラムコードを編集する。入力受け付け部２５は、編集された内容を受け付ける。
【００４６】
図５は、更新指示の生成の一例を示す。図５の例において、表示装置３１には、プログラムコードを編集するための編集画面（図５では「コード編集画面」と表記）が表示される。
【００４７】
ＬＵＴデータの更新前において、プログラムコードには「ＬＵＴ０＝ＡＮＤ」が記述されている（図５の例における破線部分）。この記述は、アドレス「０」のＬＵＴにＡＮＤ論理が設定されていることを示す。また、プログラムコードには、他のＬＵＴについての論理が設定されている。
【００４８】
例えば、制御装置２の操作者は、入力装置３２を用いて、図５の例に示すように、「ＬＵＴ０＝ＡＮＤ」を「ＬＵＴ０＝ＮＡＮＤ」に変更したとする。この場合、検出部２１は、「ＬＵＴ０＝ＡＮＤ」の文字列が「ＬＵＴ０＝ＮＡＮＤ」に変更されたことを検出する。
【００４９】
図５は、ＬＵＴ―０のＬＵＴデータが変更される例を示すが、複数のＬＵＴのＬＵＴデータが変更されてもよい。例えば、ＬＵＴ―０およびＬＵＴ―１の２つのＬＵＴのＬＵＴデータが変更されてもよい。
【００５０】
プログラムコードの変更が終了すると（例えば、編集後のプログラムコードが保存された場合等）、更新指示生成部２２は、検出部２１が検出した変更に基づいて、更新指示を生成する。
【００５１】
図５の例の場合、検出部２１は、アドレス「０」のＬＵＴが保持するＬＵＴデータがＡＮＤ論理からＮＡＮＤ論理に更新されたことを検出する。従って、更新指示生成部２２は、更新されたＬＵＴのアドレス「０」と、更新後のＬＵＴデータであるＮＡＮＤ論理を示す機械語と、イネーブル信号とを含む更新指示を生成する。
【００５２】
図６は、更新指示の生成の他の例を示す。図６の例において、ＬＵＴ更新画面は、制御装置２により実行される所定のソフトウェアの制御により、表示装置３１に表示される画面である。
【００５３】
操作者は、入力装置３２を用いて、ＬＵＴデータの更新を行う対象のＬＵＴを特定する。例えば、図６の例の場合、操作者は、入力装置３２としてのマウスを用いて、「ＬＵＴ−０」のプルダウンメニューＭにポインタＰを合わせて押下する。
【００５４】
入力受け付け部２５が、この押下操作を受け付けると、画面制御部２４は表示装置３１に各種の論理回路（例えば、ＯＲ論理やＥＯＲ論理等）を示す情報を表示する。操作者は、マウスを用いて、所望の論理回路を選択する。
【００５５】
入力受け付け部２５が、この選択操作を受け付ける。これにより、更新指示生成部２２は、更新されたＬＵＴのアドレス「０」と、更新後のＬＵＴデータであるＮＡＮＤ論理を示す機械語と、イネーブル信号とを含む更新指示を生成する。
【００５６】
図７の例に示されるように、更新指示が生成されると、制御装置２のデータ出力部２３は、ＣＰＵ５に生成された更新指示を出力する。ＣＰＵ５は、バスインタフェース１０に更新指示を出力する。
【００５７】
この更新指示は、バスインタフェース１０を介して、ＬＵＴ更新モジュール１２に入力される。図８は、更新指示を入力したＬＵＴ更新モジュール１２の出力の一例を示す。
【００５８】
図８の例では、更新指示は、ＮＡＮＤ論理を示すＬＵＴデータと、アドレス「０」を示すデータと、各ＬＵＴが保持するＬＵＴデータの更新を有効にするイネーブル信号とを含む。この更新指示がＬＵＴ更新モジュール１２に入力される。
【００５９】
ＬＵＴ更新モジュール１２は、イネーブル信号制御部４１を含む。イネーブル信号制御部４１は、ＬＵＴ更新モジュール１２に接続される各ＬＵＴに対して、イネーブル信号を有効または無効にして、出力する制御を行う回路である。
【００６０】
図８の例の場合、ＬＵＴ更新モジュール１２は、入力した更新指示に含まれるＮＡＮＤ論理を示すＬＵＴデータを、ＦＰＧＡ３に搭載される各ＬＵＴに出力する。また、ＬＵＴ更新モジュール１２は、入力した更新指示に含まれるアドレス「０」を示すデータを各ＬＵＴに出力する。
【００６１】
イネーブル信号制御部４１は、更新指示に含まれるアドレス「０」と、「有効」であることを示すイネーブル信号とを入力する。イネーブル信号制御部４１は、更新指示に含まれるアドレスに対応するＬＵＴ以外のＬＵＴに対するイネーブル信号を有効から無効に変更する。
【００６２】
図８の例の場合、更新指示に含まれるアドレスは「０」である。よって、イネーブル信号制御部４１は、ＬＵＴ−０以外のＬＵＴに出力するイネーブル信号を有効から無効に変更する。この場合、ＬＵＴ−１およびＬＵＴ−２に出力されるイネーブル信号は無効に変更される。
【００６３】
一方、イネーブル信号制御部４１は、ＬＵＴ−０に出力されるイネーブル信号を変更しない。このため、ＬＵＴ−０に出力されるイネーブル信号は有効のままである。
【００６４】
図９の例に示されるように、ＬＵＴ−０は、ＮＡＮＤ論理を示すＬＵＴデータおよびアドレス「０」を示すデータを入力する。また、ＬＵＴ−０は、有効であることを示すイネーブル信号を入力する。ＬＵＴ−０は、入力したアドレスが「０」であり、イネーブル信号が有効であるため、ＬＵＴデータの更新を行う。
【００６５】
これにより、ＬＵＴ−０が保持するＬＵＴデータは、ＡＮＤ論理からＮＡＮＤ論理に変更される。ＦＰＧＡ３に搭載される各ＬＵＴのうち、ＬＵＴ−０以外のＬＵＴには、無効であることを示すイネーブル信号が入力される。このため、ＬＵＴ−０以外のＬＵＴは、ＬＵＴデータの更新を行わない。
【００６６】
従って、ＬＵＴ更新モジュール１２は、入力した更新指示に基づいて、ＦＰＧＡ３に搭載される各ＬＵＴのうち一部のＬＵＴ（更新対象のＬＵＴ）のみについて、ＬＵＴデータを更新する。
【００６７】
従って、ＦＰＧＡ３に対するコンフィグレーション処理を行うことなく、更新対象のＬＵＴが保持するＬＵＴデータが更新される。上述したように、コンフィグレーション処理が行われる場合、コンフィグレーションＲＯＭ４の先頭の領域から全領域が更新されるため、コンフィグレーション処理の時間が長くなる。
【００６８】
実施形態では、ＦＰＧＡ３に搭載される各ＬＵＴのうち一部のＬＵＴが保持するＬＵＴデータが更新される場合、コンフィグレーション処理は行われない。この場合、ＬＵＴ更新モジュールが、更新対象のＬＵＴが保持するＬＵＴデータのみを更新するため、更新時間を短縮化することができる。
【００６９】
例えば、ＦＰＧＡ３に搭載されるＬＵＴの数が数十万個程度の場合、コンフィグレーション処理に数時間程度かかる場合がある。ＦＰＧＡ３に搭載される各ＬＵＴのうち１つのＬＵＴ（ＬＵＴ−０）が保持するＬＵＴデータの更新がコンフィグレーション処理により行われると、更新処理に数時間程度かかることになる。
【００７０】
実施形態では、ＦＰＧＡ３に搭載されるＬＵＴ更新モジュール１２は、制御装置２で指定されたＬＵＴ−０が保持するＬＵＴデータのみを更新する。このため、ＦＰＧＡ３に搭載されるＬＵＴの数が数十万個程度の場合でも、数分程度で更新処理が終了することがある。従って、ＬＵＴデータの更新時間が短くなる。
【００７１】
また、ＬＵＴ更新モジュール１２は、ＦＰＧＡ３に搭載される複数のＬＵＴのうち、更新指示で特定されるＬＵＴのみを更新する。該ＬＵＴが更新されている間、ＬＵＴ更新モジュール１２は、ＦＰＧＡ３に搭載される各ＬＵＴのうち、更新対象以外のＬＵＴに対して、ＬＵＴデータの更新を無効にするイネーブル信号を出力する。
【００７２】
従って、更新指示で特定されるＬＵＴが更新されている間、更新対象以外のＬＵＴは動作することができる。更新対象のＬＵＴがＬＵＴ−０のみである場合、ＦＰＧＡ３に搭載される複数のＬＵＴのうち、ＬＵＴ−０以外のＬＵＴは動作可能である。
【００７３】
コンフィグレーション処理が行われる場合、ＦＰＧＡ３はデバイスとして機能しない。一方、実施形態では、ＦＰＧＡ３に搭載される各ＬＵＴのうち一部のＬＵＴが更新されている間でも、更新対象以外のＬＵＴは動作するため、ＬＵＴの更新中にＦＰＧＡ３をデバイスとして機能させることができる。
【００７４】
＜実施形態のフローチャートの一例＞
次に、制御装置２の処理の流れの一例について、図１０のフローチャートを参照して説明する。制御装置２は、ＦＰＧＡ３のＬＵＴの更新操作を受け付けた場合、該更新操作はコンフィグレーション処理を指定した操作であるかを判定する（ステップＳ１）。
【００７５】
この判定は、例えば、入力受け付け部２５が入力装置３２から受け付けた入力に基づいて行われてもよい。コンフィグレーション処理が指定された場合（ステップＳ１でＹＥＳ）、制御装置２は、ＦＰＧＡ３にコンフィグレーションを実行させるコンフィグレーション指示をコンフィグレーションＲＯＭ４に出力する（ステップＳ２）。
【００７６】
この場合、コンフィグレーションＲＯＭ４の先頭の領域から全領域が更新されて、一括設定データが記憶されるコンフィグレーション処理が実行される。コンフィグレーション処理が実行される場合、ＦＰＧＡ３は機能しない。
【００７７】
コンフィグレーション処理が指定されない場合（ステップＳ１でＮＯ）、更新指示生成部２２は、入力受け付け部２５が受け付けた入力内容に基づいて、更新対象のＬＵＴのアドレスを特定する（ステップＳ３）。
【００７８】
また、更新指示生成部２２は、特定されたＬＵＴに対応するＬＵＴデータを認識する（ステップＳ４）。認識されたＬＵＴデータは、更新後の論理を示すデータである。例えば、ＬＵＴ−０に対応付けられていたＡＮＤ論理がＮＡＮＤ論理に変更された場合、検出部２１は、該変更を検出する。
【００７９】
これにより、更新指示生成部２２は、特定されたＬＵＴに対応するＬＵＴデータを認識する。更新指示生成部２２は、特定されたＬＵＴのみについての更新指示を生成する（ステップＳ５）。
【００８０】
この更新指示には、特定されたＬＵＴのアドレスと、更新後のＬＵＴデータと、ＬＵＴデータの更新を有効にするイネーブル信号とが含まれる。データ出力部２３は、生成された更新指示をＣＰＵ５に出力する（ステップＳ６）。ＣＰＵ５に出力された更新指示は、ＦＰＧＡ３に入力される。
【００８１】
次に、ＦＰＧＡ３の処理の一例について、図１１のフローチャートを参照して説明する。ＣＰＵ５からＦＰＧＡ３のバスインタフェース１０に更新指示が入力される。そして、該更新指示はＬＵＴ更新モジュール１２に入力される。
【００８２】
ＬＵＴ更新モジュール１２は、更新指示に含まれるＬＵＴデータを、ＦＰＧＡ３に搭載される各ＬＵＴに出力する（ステップＳ１１）。また、ＬＵＴ更新モジュール１２は、更新指示に含まれるアドレスを示すデータを、ＦＰＧＡ３に搭載される各ＬＵＴに出力する（ステップＳ１２）。
【００８３】
ＬＵＴ更新モジュール１２のイネーブル信号制御部４１は、イネーブル信号およびアドレスを示すデータを入力する。イネーブル信号制御部４１は、更新指示に含まれるアドレスを示すデータに基づいて、ＬＵＴごとに、有効または無効のイネーブル信号を出力する（ステップＳ１３）。
【００８４】
イネーブル信号制御部４１は、更新指示に含まれるアドレスを示すデータに基づいて、該アドレスのＬＵＴに対しては、イネーブル信号を有効にしたまま出力する。
【００８５】
一方、イネーブル信号制御部４１は、更新指示に含まれるアドレス以外のアドレスのＬＵＴに対して、イネーブル信号を有効から無効に変更し、無効に変更されたイネーブル信号を出力する。
【００８６】
更新対象のＬＵＴは、更新指示に含まれるＬＵＴデータと、アドレスを示すデータと、有効であることを示すイネーブル信号とを入力する。これにより、更新対象のＬＵＴは、保持しているＬＵＴデータを、入力したＬＵＴデータに更新する（ステップＳ１４）。
【００８７】
従って、更新対象のＬＵＴによるＬＵＴデータの更新処理が行われる。該更新処理が行われている間、ＦＰＧＡ３は、更新対象のＬＵＴ以外のＬＵＴにより実現される論理回路を動作させる（ステップＳ１５）。
【００８８】
以上により、コンフィグレーション処理が行われることなく、更新対象のＬＵＴが保持するＬＵＴデータが更新される。このため、更新を行うための時間を短くすることができる。
【００８９】
また、更新対象のＬＵＴが更新されている間、更新対象のＬＵＴ以外のＬＵＴは論理回路として機能するため、ＦＰＧＡ３は機能する。例えば、電子機器１が通信機器の場合、ＦＰＧＡ３のうち一部のＬＵＴが更新されている場合でも、通信機器は通信を行うことができる。
【００９０】
＜制御装置のハードウェア構成の一例＞
次に、図１２の例を参照して、制御装置２のハードウェア構成の一例を説明する。図１２の例に示すように、バス１００に対して、プロセッサ１１１とRandom Access Memory(RAM)１１２とＲＯＭ１１３とが接続される。また、該バス１００に対して、補助記憶装置１１４と媒体接続部１１５と表示装置３１と入力装置３２とが接続される。
【００９１】
プロセッサ１１１はＲＡＭ１１２に展開されたプログラムを実行する。実行されるプログラムとしては、実施形態における制御装置の処理を行うプログラムが適用されてもよい。
【００９２】
ＲＯＭ１１３はＲＡＭ１１２に展開されるプログラムを記憶する不揮発性の記憶装置である。このＲＯＭ１１３は、制御装置２のＲＯＭ１１３であり、コンフィグレーションＲＯＭ４とは異なる。
【００９３】
補助記憶装置１１４は、種々の情報を記憶する記憶装置であり、例えばハードディスクドライブや半導体メモリ等を補助記憶装置１１４に適用してもよい。媒体接続部１１５は、可搬型記録媒体１１８と接続可能に設けられている。
【００９４】
可搬型記録媒体１１８としては、可搬型のメモリや光学式ディスク（例えば、Compact Disc(CD)やDigital Versatile Disc(DVD)、半導体メモリ等）を適用してもよい。この可搬型記録媒体１１８に実施形態の処理を行うプログラムが記録されていてもよい。
【００９５】
表示装置３１は、上述したように、例えばディスプレイである。入力装置３２は、上述したように、例えばマウスやキーボード等である。
【００９６】
記憶部２０は、ＲＡＭ１１２や補助記憶装置１１４等により実現されてもよい。制御装置２の検出部２１と更新指示生成部２２とデータ入出力部２３と画面制御部２４と入力受け付け部２５とは、与えられたプログラムをプロセッサ１１１が実行することにより実現されてもよい。
【００９７】
ＲＡＭ１１２、ＲＯＭ１１３、補助記憶装置１１４および可搬型記録媒体１１８は、何れもコンピュータ読み取り可能な有形の記憶媒体の一例である。これらの有形な記憶媒体は、信号搬送波のような一時的な媒体ではない。
【００９８】
＜その他＞
本実施形態は、以上に述べた実施の形態に限定されるものではなく、本実施形態の要旨を逸脱しない範囲内で種々の構成または実施形態を取ることができる。
【符号の説明】
【００９９】
１    電子機器
２    制御装置
３    ＦＰＧＡ
４    コンフィグレーションＲＯＭ
１０    バスインタフェース
１１    記憶回路
１２    更新モジュール
２１    検出部
２２    更新指示生成部
２３    データ入出力部
２４    画面制御部
２５    入力受け付け部
３１    表示装置
３２    入力装置
１１１    プロセッサ
１１２    ＲＡＭ
１１３    ＲＯＭ
【図１】
0006701828.tif 000002
【図２】
0006701828.tif 000003
【図３】
0006701828.tif 000004
【図４】
0006701828.tif 000005
【図５】
0006701828.tif 000006
【図６】
0006701828.tif 000007
【図７】
0006701828.tif 000008
【図８】
0006701828.tif 000009
【図９】
0006701828.tif 000010
【図１０】
0006701828.tif 000011
【図１１】
0006701828.tif 000012
【図１２】
0006701828.tif 000013