JP4028480B2 - FPGA configuration control method and control apparatus - Google Patents

FPGA configuration control method and control apparatus Download PDF

Info

Publication number
JP4028480B2
JP4028480B2 JP2003430068A JP2003430068A JP4028480B2 JP 4028480 B2 JP4028480 B2 JP 4028480B2 JP 2003430068 A JP2003430068 A JP 2003430068A JP 2003430068 A JP2003430068 A JP 2003430068A JP 4028480 B2 JP4028480 B2 JP 4028480B2
Authority
JP
Japan
Prior art keywords
fpga
configuration
data
working surface
rewrite
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2003430068A
Other languages
Japanese (ja)
Other versions
JP2005191872A (en
Inventor
通之 勝又
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2003430068A priority Critical patent/JP4028480B2/en
Publication of JP2005191872A publication Critical patent/JP2005191872A/en
Application granted granted Critical
Publication of JP4028480B2 publication Critical patent/JP4028480B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

本発明は、FPGA(Flexible Programmable Gate Array)のコンフィギュレーションを制御するFPGAコンフィギュレーション制御方法及びFPGAコンフィギュレーション制御装置に関するものである。   The present invention relates to an FPGA configuration control method and an FPGA configuration control apparatus for controlling the configuration of an FPGA (Flexible Programmable Gate Array).

FPGAはコンフィギュレーションデータを書き換えることにより、ハード機能を変更することが可能な回路である。従来のFPGAのコンフィギュレーションデータの書き換えは、以下のようにして行われていた。   The FPGA is a circuit whose hardware function can be changed by rewriting configuration data. Rewriting the configuration data of the conventional FPGA has been performed as follows.

遠隔に位置する上位装置からコンフィギュレーションデータを動作中のFPGAを通してフラッシュメモリに書き込む。上位装置から動作中のFPGAにフラッシュメモリに書き込んだコンフィギュレーションデータに書き換えるよう指示する。FPGAは上位装置からの指示に基づいてフラッシュメモリよりコンフィギュレーションデータを読み出して更新する。   Configuration data is written to the flash memory from the remotely located host device through the active FPGA. An instruction is given to rewrite the configuration data written in the flash memory from the host device to the operating FPGA. The FPGA reads and updates the configuration data from the flash memory based on an instruction from the host device.

一方、フラッシュメモリに書き込まれたデータからFPGAをコンフィギュレーションされる場合に、フラッシュメモリに書き込んだデータに不備があった、又はフラッシュメモリに誤ったデータを書き込んだ後、FPGAコンフィギュレーションを開始した場合には正常にFPGAのコンフィギュレーションを完了させることができない。   On the other hand, when the FPGA is configured from the data written to the flash memory, the data written to the flash memory is incomplete, or the FPGA configuration is started after writing incorrect data to the flash memory Cannot successfully complete the FPGA configuration.

従来、既に書き込まれたデータでFPGAコンフィギュレーションデータ未完了状態に陥ってしまった場合は、上位装置から動作していないFPGAに対して、コンフィギュレーションデータを送信して、再度、コンフィギュレーションを行うことはできない。   Conventionally, when the FPGA configuration data has not been completed due to the already written data, the configuration data is transmitted to the FPGA not operating from the host device, and the configuration is performed again. I can't.

そこで、復旧させるためには人手によるFPGA書き込み専用端末をFPGAに直接接続してデータを書き換えることによりFPGAコンフィギュレーションを完了させていた。   Therefore, in order to recover, the FPGA configuration is completed by rewriting data by connecting a dedicated FPGA write-only terminal directly to the FPGA.

また、先行技術文献として以下の文献1,2がある。   Further, there are the following documents 1 and 2 as prior art documents.

文献1は、2組以上のコンフィギュレーションデータをコンフィギュレーションメモリに格納し、スイッチにより2組以上のコンフィギュレーションデータの中から一つを選択してルーチングマトリクスに出力して、コンフィギュレーションを行うことにより、FPGAにおいて複数の論理関数を実現することを開示している。   Document 1 stores two or more sets of configuration data in a configuration memory, selects one of the two or more sets of configuration data with a switch, outputs it to a routing matrix, and performs configuration. , An implementation of a plurality of logic functions in an FPGA is disclosed.

文献2は、制御装置によりプログラム及びコンフィギュレーションデータが格納された不揮発性メモリからコンフィギュレーションデータを読み出して、FPGAにコンフィギュレーションを行うこと、不揮発性メモリのデータの一部又は全部を書き換えることを開示している。
特開平8−51356号公報 特開2003−44303号公報
Document 2 discloses that the configuration data is read from the nonvolatile memory in which the program and configuration data are stored by the control device, the FPGA is configured, and part or all of the data in the nonvolatile memory is rewritten. is doing.
JP-A-8-51356 JP 2003-44303 A

しかしながら、従来のFPGAコンフィギュレーション方法では、上述のように、既に書き込まれたデータでFPGAコンフィギュレーション完了しなかった場合には、自動的にFPGAコンフィギュレーションを再開することができなかった。   However, in the conventional FPGA configuration method, as described above, if the FPGA configuration is not completed with already written data, the FPGA configuration cannot be automatically restarted.

また、FPGAコンフィギュレーションに失敗した場合にはFPGA自体が正常に機能しないため、上位装置からFPGAデータ書き換えが不可能であり、装置を復旧させるには人手によるFPGA書き込み専用端末を接続してデータを書き換える以外の手段しかなかったため、保守性が悪かった。   In addition, if the FPGA configuration fails, the FPGA itself does not function normally, so that the FPGA data cannot be rewritten from the host device. To restore the device, a manual FPGA write-only terminal is connected and the data is restored. Since there was only a means other than rewriting, the maintainability was bad.

文献1は、複数の論理関数を一つのFPGAに実現できるが、コンフィギュレーションデータに誤りがあってコンフィギュレーションが失敗した場合については何ら開示していないので、上述した問題点を解決することができない。   Reference 1 can implement a plurality of logical functions in one FPGA, but does not disclose any case where the configuration fails due to an error in the configuration data, so the above-mentioned problems cannot be solved. .

文献2は、不揮発性メモリに格納されたコンフィギュレーションデータに誤り等があって、コンフィギュレーションが失敗して装置を復旧させるためには、CPUより不揮発性メモリのデータを書き換え、再度コンフィギュレーションを行う必要があるが、自動的で再コンフィギューションを行うものでないため、再コンフィギュレーションが完了するまでは、FPGAの機能が停止したままであり、装置が動作しないという問題点がある。   According to Document 2, the configuration data stored in the non-volatile memory has an error or the like, and in order to restore the device when the configuration fails, the CPU rewrites the data in the non-volatile memory and performs configuration again. Although it is necessary, since it does not automatically perform reconfiguration, there is a problem that the function of the FPGA remains stopped until the reconfiguration is completed, and the apparatus does not operate.

本発明は上記を鑑みてなされたものであり、書き込んだFPGAデータに不備、誤りがあったとしても、正常にFPGAのコンフィギュレーションを完了させることのできるFPGAコンフィギュレーション制御方法及び制御装置を提供することである。   The present invention has been made in view of the above, and provides an FPGA configuration control method and a control apparatus capable of completing the configuration of the FPGA normally even if the written FPGA data is incomplete or incorrect. That is.

図1は本発明の原理図である。図1に示すように、FPGAコンフィギュレーション制御装置は、メモリ2、データ書き換え部4、第1コンフィギュレーション部6、面切り替え部8及び第2コンフィギュレーション部10を具備する。   FIG. 1 shows the principle of the present invention. As shown in FIG. 1, the FPGA configuration control device includes a memory 2, a data rewrite unit 4, a first configuration unit 6, a surface switching unit 8, and a second configuration unit 10.

メモリ2は、データ格納面表示フラグ12の領域並びにデータを格納する第1及び第2面を有する。データ書き換え部4は、データ格納面表示フラグ12が示すワークキング面に該当する第1及び第2面14#1,14#2の何れかの面に書き換えデータを格納する。   The memory 2 has an area for the data storage surface display flag 12 and first and second surfaces for storing data. The data rewrite unit 4 stores the rewrite data on any one of the first and second surfaces 14 # 1 and 14 # 2 corresponding to the work surface indicated by the data storage surface display flag 12.

第1コンフィギュレーション部6は、データ格納面表示フラグ12が示すワーキング面に格納された書き換えデータに基づきFPGAにコンフィギュレーションを行う。面切り替え部8は、コンフィギュレーションが完了したならば、現在のワーキング面がプロテクト面、現在のプロテクト面がワーキング面となるようデータ格納面表示フラグ12を更新する。   The first configuration unit 6 configures the FPGA based on the rewrite data stored on the working surface indicated by the data storage surface display flag 12. When the configuration is completed, the surface switching unit 8 updates the data storage surface display flag 12 so that the current working surface becomes the protection surface and the current protection surface becomes the working surface.

第2コンフィギュレーション部10は、コンフィギュレーションが失敗したならば、データ格納面表示フラグ12が示すワーキング面とは異なるプロテクト面に該当する第1及び第2面14#1,14#2の何れかの面に格納されたデータに基づきFPGAにコンフィギュレーションを行う。   If the configuration fails, the second configuration unit 10 selects one of the first and second surfaces 14 # 1 and 14 # 2 corresponding to a protection surface different from the working surface indicated by the data storage surface display flag 12. The FPGA is configured based on the data stored in the plane.

このようにコンフィギュレーションが失敗した場合でも、プロテクト面に格納された以前にコンフィギュレーションが完了したデータに基づいてコンフィギュレーションを自動的に行うので、専用端末を接続してコンフィギュレーションを行う必要がなくなる。   Even if the configuration fails in this way, the configuration is automatically performed based on the previously completed configuration data stored in the protected surface, eliminating the need to configure by connecting a dedicated terminal. .

本発明によれば、FPGAデータ格納面をワーキング面とプロテクト面の2面構成して、ワーキング面に格納された書き換えデータによるFPGAコンフギュレーションに失敗しても自動的にFPGAデータ書き換え前のデータを格納しているプロテクト面からFPGAコンフィギュレーションを開始することにより、システム故障を回避できる。   According to the present invention, the FPGA data storage surface is composed of two surfaces, a working surface and a protection surface, and even if the FPGA configuration by the rewrite data stored in the working surface fails, the data before the FPGA data rewrite is automatically performed. System failure can be avoided by starting the FPGA configuration from the protected surface storing the.

また、データ格納面表示フラグをメモリに格納して、制御するので、常に正常にFPGAデータ書き換えが終了したデータでの装置立ち上げが可能となるため信頼性を向上させることができる。   Further, since the data storage surface display flag is stored and controlled in the memory, it is possible to start up the apparatus with data for which FPGA data rewriting has been normally completed normally, so that reliability can be improved.

また、遠隔からのFPGAデータ書き換えによるFPGAコンフィギュレーションに失敗しても人手による専用端末での書き換え以外の復旧手段を実装したので、フィールドでの保守性は格段に向上する。   In addition, even if the FPGA configuration by remote FPGA data rewriting fails, since the restoration means other than the manual rewriting by the dedicated terminal is implemented, the maintainability in the field is remarkably improved.

図2は本発明の実施形態によるFPGAコンフィギュレーション制御装置の構成図である。図2に示すように、FPGAコンフィギュレーション制御装置は、上位装置50、下位装置52及びFPGAデータ書き込み専用端末(以下、専用端末と略す)54を具備する。   FIG. 2 is a block diagram of an FPGA configuration control apparatus according to an embodiment of the present invention. As shown in FIG. 2, the FPGA configuration control device includes an upper device 50, a lower device 52, and an FPGA data writing dedicated terminal (hereinafter abbreviated as a dedicated terminal) 54.

上位装置50は、下位装置52に対して、書き換えデータの送信及びコンフィギュレーション開始指示等のコンフィギュレーション書き換えに係わる処理及びその他の処理を行う装置であり、例えば、サーバ装置である。上位装置50は、記憶部100、CPU102及びI/O部104を有する。   The host device 50 is a device that performs processing related to configuration rewriting, such as transmission of rewrite data and a configuration start instruction, and other processing to the lower device 52, and is, for example, a server device. The host device 50 includes a storage unit 100, a CPU 102, and an I / O unit 104.

記憶部100は、書き換えデータ等やコンフィギュレーション書き換え処理に係わるプログラムやその他のプログラム等を記憶するメモリである。CPU102は記憶部100に記憶されたコンフィギュレーション書き換えに係わるプログラム等を実行する。   The storage unit 100 is a memory that stores rewrite data and the like, a program related to configuration rewrite processing, other programs, and the like. The CPU 102 executes a program related to configuration rewriting stored in the storage unit 100.

コンフィギュレーション書き換えでは、I/O部104を通して、下位装置52に書き換えデータの送信及びコンフィギュレーション開始指示を行う。I/O部104は、所定のインタフェースに従って下位装置52との間で通信を行う。   In the configuration rewriting, transmission of rewrite data and a configuration start instruction are performed to the lower device 52 through the I / O unit 104. The I / O unit 104 communicates with the lower device 52 according to a predetermined interface.

下位装置52はFPGA158を含む装置であり、例えば、ルータである。下位装置52は、SDRAM150、BOOT152、CPU154、I/O156#0,156#1、FPGA158、コンフィギュレーション制御部160、コネクタ162及びフラッシュメモリ164を有する。   The subordinate device 52 is a device including the FPGA 158, and is, for example, a router. The lower level device 52 includes an SDRAM 150, a BOOT 152, a CPU 154, I / O 156 # 0 and 156 # 1, an FPGA 158, a configuration control unit 160, a connector 162, and a flash memory 164.

SDRAM150はCPU154が実行するコンフィギュレーション書き換えに係わるプログラム等を記憶するメモリである。コンフィギュレーション書き換えでは、(i)I/O156#0より書き換えデータを受信して、FPGA158にコンフィギュレーションデータをコンフィギュレーション制御部160に出力するよう指示する、(ii)I/O156#0よりコンフィギュレーション開始指示を受信して、FPGA158にコンフィギュレーション開始をコンフィギュレーション制御部160に出力するよう指示するプログラムが記憶されている。   The SDRAM 150 is a memory that stores a program related to configuration rewriting executed by the CPU 154. In configuration rewriting, (i) receiving rewrite data from the I / O 156 # 0 and instructing the FPGA 158 to output the configuration data to the configuration control unit 160. (ii) configuration from the I / O 156 # 0 A program for receiving the start instruction and instructing the FPGA 158 to output the configuration start to the configuration control unit 160 is stored.

BOOT152は、ブートプログラムを格納するメモリである。CPU154は、SDRAM150やBOOT152に格納されたプログラムを実行する。I/O156#0は、上位装置50に接続される外部ポートとバス155との間のインタフェースを司る。   The BOOT 152 is a memory that stores a boot program. The CPU 154 executes a program stored in the SDRAM 150 or the BOOT 152. The I / O 156 # 0 controls the interface between the external port connected to the host device 50 and the bus 155.

即ち、上位装置50よりCPU154宛のデータを受信してバス155に出力し、バス155より上位装置50宛のデータを受信して、上位装置50に送信する。I/O#1は、外部ポートとバス155との間のインタフェースを行う。バス155は、CPU154とFPGA158,I/O156#0,156#1との間を通信するバスである。   That is, data addressed to the CPU 154 is received from the host device 50 and output to the bus 155, and data addressed to the host device 50 is received from the bus 155 and transmitted to the host device 50. I / O # 1 provides an interface between the external port and the bus 155. The bus 155 is a bus that communicates between the CPU 154 and the FPGA 158, I / O 156 # 0, 156 # 1.

FPGA158は、バス155間でデータの送受信をするインタフェース部並びに信号線159よりデータの受信及びコンフィギュレーション完了通知を信号線159に出力するインタフェース部を含み以下の機能を有する。   The FPGA 158 includes an interface unit that transmits / receives data between the buses 155 and an interface unit that outputs data reception and configuration completion notification from the signal line 159 to the signal line 159 and has the following functions.

(i) バス155より所定インタフェースでデータを受信すると、該データがコンフィギュレーション制御部160宛であるとき、該データを信号線159に出力する。該当データは、コンフィギュレーションに係わるデータであり、書き換えデータ及びコンフィギュレーション開始指示が含まれる。   (I) When data is received from the bus 155 through a predetermined interface, when the data is addressed to the configuration control unit 160, the data is output to the signal line 159. The relevant data is data related to the configuration, and includes rewrite data and a configuration start instruction.

(ii) バス155よりデータを受信して、該データがコンフィギュレーション制御部160宛でないとき、該データに基づいてハードウェアとして動作する。   (Ii) When data is received from the bus 155 and the data is not addressed to the configuration control unit 160, it operates as hardware based on the data.

(iii) 信号線159よりデータを受信して、データに該当するアドレスを有するレジスタに格納する。全データがレジスタに格納されてハードウェアとして動作することを確認すると、コンフィギュレーション完了通知を信号線159に出力する。   (Iii) Data is received from the signal line 159 and stored in a register having an address corresponding to the data. When it is confirmed that all data is stored in the register and operates as hardware, a configuration completion notification is output to the signal line 159.

(i),(ii)は、コンフィギュレーションが完了して、FPGA160が正常に動作している場合に機能する。   (I) and (ii) function when the configuration is completed and the FPGA 160 is operating normally.

信号線159は、FPGA158とコンフィギュレーション制御部160との間を接続する。コンフィギュレーション制御部160は、FPGA158が接続される信号線159、専用端末54が接続されるコネクタ162及びフラッシュメモリ164が接続される信号線163にそれぞれ接続され、FPGAコンフィギュレーションに係わる後述の制御を行う。   The signal line 159 connects between the FPGA 158 and the configuration control unit 160. The configuration control unit 160 is connected to the signal line 159 to which the FPGA 158 is connected, the connector 162 to which the dedicated terminal 54 is connected, and the signal line 163 to which the flash memory 164 is connected, and performs the control described below related to the FPGA configuration. Do.

図3は図2中のフラッシュメモリ164の構成図の一例である。図3に示すように、フラッシュメモリ164は、面管理情報領域250、A面領域252#A及びB面領域252#Bを含む。面管理情報領域250は、データ格納面表示フラグ260、ワーキング面書き込みフラグ262、データ格納面コピー完了フラグ264を有する。   FIG. 3 is an example of a configuration diagram of the flash memory 164 in FIG. As shown in FIG. 3, the flash memory 164 includes a plane management information area 250, an A-plane area 252 # A, and a B-plane area 252 # B. The surface management information area 250 includes a data storage surface display flag 260, a working surface write flag 262, and a data storage surface copy completion flag 264.

データ格納面表示フラグ260は、2面実装しているデータ格納領域252#A,252#Bのうち、A面領域252#Aがワーキング面であるか、プロテクト面であるかを表示するフラグである。例えば、A面252#Aがワーキング面ならば、“1”、B面252#Bがワーキング面ならば、“0”が設定される。   The data storage plane display flag 260 is a flag for displaying whether the A plane area 252 # A is the working plane or the protect plane among the data storage areas 252 # A and 252 # B mounted on the two planes. is there. For example, “1” is set if the A plane 252 # A is a working plane, and “0” is set if the B plane 252 # B is a working plane.

ワーキング面書き込みフラグ262は、上位装置50又は専用端末54よりワーキング面に対してデータ書き込みが実施されたか否かを表示する。例えば、データ書き込みが実施された場合は“1”、それ以外の場合は“0”が書き込まれる。   The working surface writing flag 262 displays whether data has been written to the working surface from the host device 50 or the dedicated terminal 54. For example, “1” is written when data is written, and “0” is written otherwise.

このフラグ262が設定(“1”)されている場合には、ワーキング面とプロテクト面で格納されているデータに差分があるため、ワーキング面にデータを格納後、FPGAコンフィギュレーションを実施し、正常に完了したワーキング面からプロテクト面の切り替え及びワーキング面からプロテクト面へデータコピーが必要であることを示す。   When this flag 262 is set (“1”), there is a difference between the data stored on the working surface and the protection surface, so after storing the data on the working surface, the FPGA configuration is performed and the data is normal. It shows that it is necessary to switch data from the working surface to the protected surface and to copy data from the working surface to the protected surface.

データ格納面コピー完了フラグ264は、データ格納面コピーを実施したか否かを表示する。ワーキング面へ初期データ又は書き換えデータが書き込まれたとき、フラグ264に、例えば、“0‘が書き込まれてフラグが解除される。また、データがコピーされると、フラグ264が設定(”1“)される。   The data storage surface copy completion flag 264 displays whether or not the data storage surface copy has been performed. When initial data or rewrite data is written to the working surface, for example, “0” is written in the flag 264 to cancel the flag, and when the data is copied, the flag 264 is set (“1”). )

上位装置50からのコンフィギュレーション開示指示/電源オン/スイッチオンによりワーキング面のデータによるFPGAコンフィギュレーションが完了して、プロテクト面にデータがコピーされたとき、又はプロテクト面のデータによるFPGAコンフィギュレーションが完了して、ワーキング面にデータがコピーされたとき、フラグ264が設定(“1”)される。   When the configuration disclosure instruction / power-on / switch-on from the host device 50 completes the FPGA configuration based on the data on the working surface and the data is copied to the protected surface, or the FPGA configuration based on the data on the protected surface is completed. When the data is copied to the working surface, the flag 264 is set (“1”).

A面252#A,B面252#Bは、フラッシュメモリ164が2面に分割されたデータ格納領域であり、例えば、データ領域がフラッシュメモリ164のアドレスにより2分割され、アドレスの小さい方をA面252#A、アドレスの大きい方をB面252#Bとする。   The A plane 252 # A and the B plane 252 # B are data storage areas in which the flash memory 164 is divided into two planes. For example, the data area is divided into two by the address of the flash memory 164. Surface 252 # A and the one with the larger address are referred to as surface B 252 # B.

専用端末54は、コネクタ162を通して、A,B面のいずれかの書き込み面を指定して、初期データをコンフィギュレーション制御部160に送信する。   The dedicated terminal 54 designates one of the writing surfaces A and B through the connector 162 and transmits initial data to the configuration control unit 160.

図4は図2中のコンフィギュレーション制御部160の機能ブロック図である。コンフィギュレーション制御部160は、図4に示すように、初期データ書き込み部200、データ書き換え処理部202、コンフィギュレーション部204及びデータコピー部206を有する。   FIG. 4 is a functional block diagram of the configuration control unit 160 in FIG. As illustrated in FIG. 4, the configuration control unit 160 includes an initial data writing unit 200, a data rewrite processing unit 202, a configuration unit 204, and a data copy unit 206.

初期データ書き込み部200は、以下のようにして、専用端末54から受信したデータをフラッシュメモリ164に書き込む。   The initial data writing unit 200 writes the data received from the dedicated terminal 54 to the flash memory 164 as follows.

図5は初期データ書き込み部200の動作フローチャートである。ステップS2において、専用端末54よりA面,B面書き込み指示受信したか否かを判定する。書き込み指示を受信したならば、ステップS4に進む。書き込み指示を受信していないとき、ステップS2でウェイトする。   FIG. 5 is an operation flowchart of the initial data writing unit 200. In step S <b> 2, it is determined whether an A-side and B-side write instruction is received from the dedicated terminal 54. If a write instruction is received, the process proceeds to step S4. When a write instruction has not been received, the process waits in step S2.

ステップS3において、フラッシュメモリ164に書き込み中であるか否かを判断する。書き込み中でなければ、ステップS4に進む。書き込み中であれば、終了する。   In step S3, it is determined whether or not writing to the flash memory 164 is in progress. If not writing, the process proceeds to step S4. If writing is in progress, the process is terminated.

ステップS4において、書き込み指示がA面であるか否かを判断する。書き込み指示面がA面ならば、ステップS6に進む。書き込み指示面がB面ならば、ステップS8に進む。   In step S4, it is determined whether or not the write instruction is the A side. If the writing instruction surface is the A surface, the process proceeds to step S6. If the writing instruction surface is the B surface, the process proceeds to step S8.

ステップS6において、専用端末54より受信したデータをフラッシュメモリ164のA面252#Aに書き込みを実施する。即ち、データに該当するフラッシュメモリ164のA面252#Aのアドレス領域に順次書き込む。   In step S6, the data received from the dedicated terminal 54 is written to the A side 252 # A of the flash memory 164. That is, the data is sequentially written in the address area of the A surface 252 # A of the flash memory 164 corresponding to the data.

ステップS8において、専用端末54より受信したデータをフラッシュメモリ164のB面252#Bに書き込みを実施する。専用端末54より受信したデータをフラッシュメモリ164に書き込み中は上位装置50からの書き込みが禁止される。   In step S8, the data received from the dedicated terminal 54 is written to the B surface 252 # B of the flash memory 164. While the data received from the dedicated terminal 54 is being written to the flash memory 164, writing from the host device 50 is prohibited.

ステップS10において、ワーキング面がA,B面のいずれであるかを示すフラッシュメモリ164のデータ格納面表示フラグ260が書き込み指示面を示すように設定する。例えば、書き込み指示面がA面ならば、データ格納面表示フラグ260に“1”を設定し、書き込み指示面がB面ならば、データ格納面表示フラグ260に“0”を設定する。   In step S10, the data storage surface display flag 260 of the flash memory 164 indicating whether the working surface is the A or B surface is set so as to indicate the writing instruction surface. For example, “1” is set in the data storage surface display flag 260 if the write instruction surface is the A surface, and “0” is set in the data storage surface display flag 260 if the write instruction surface is the B surface.

ステップS12において、フラッシュメモリ164中のワーキング面にデータが格納されてプロテクト面に格納されたデータと不一致であることを示すようにワーキング面書き込みフラグ262に“1”を設定する。   In step S12, “1” is set to the working surface write flag 262 to indicate that the data is stored in the working surface in the flash memory 164 and does not match the data stored in the protect surface.

ステップS14において、ステップS6,8で書き込んだデータのプロテクト面へのコピーが完了していないことを示すデータ格納面コピー完了フラグ264を解除(“0”)する。   In step S14, the data storage surface copy completion flag 264 indicating that copying of the data written in steps S6 and S8 to the protected surface is not completed is canceled (“0”).

データ書き換え処理部202は、以下のようにして、FPGA158から受信したコンフィギュレーション書き換えデータをフラッシュメモリ164に書き込む。   The data rewrite processing unit 202 writes the configuration rewrite data received from the FPGA 158 to the flash memory 164 as follows.

図6はデータ書き換え処理部202の動作フローチャートである。ステップS50において、FPGA158より書き込み指示受信したか否かを判定する。書き込み指示を受信したならば、ステップS52に進む。書き込み指示を受信していないとき、ステップS50でウェイトする。   FIG. 6 is an operation flowchart of the data rewrite processing unit 202. In step S50, it is determined whether a write instruction is received from the FPGA 158. If a write instruction is received, the process proceeds to step S52. When the write instruction has not been received, the process waits in step S50.

ステップS52において、フラッシュメモリ164に書き込み中であるか否かを判断する。書き込み中でなければ、ステップS54に進む。書き込み中であれば、終了する。   In step S52, it is determined whether writing to the flash memory 164 is in progress. If not writing, the process proceeds to step S54. If writing is in progress, the process is terminated.

ステップS54において、データ格納面表示フラグ260をフラッシュメモリ164より取得する。ステップS56において、データ格納面表示フラグ260によりワーキング面がA面であるか否かを判断する。ワーキング面がA面ならば、ステップS58に進む。ワーキング面がB面ならば、ステップS60に進む。   In step S54, the data storage surface display flag 260 is acquired from the flash memory 164. In step S56, it is determined by the data storage surface display flag 260 whether or not the working surface is the A surface. If the working surface is the A surface, the process proceeds to step S58. If the working surface is the B surface, the process proceeds to step S60.

ステップS58において、FPGA158より受信した書き換えデータをA面に書き込み実施する。ステップS60において、FPGA158より受信した書き換えデータをB面に書き込み実施する。フラッシュメモリ164に書き換えデータ書き込み中は専用端末54からの書き込みは禁止される。   In step S58, the rewrite data received from the FPGA 158 is written to the A side. In step S60, the rewrite data received from the FPGA 158 is written on the B side. While the rewrite data is being written to the flash memory 164, writing from the dedicated terminal 54 is prohibited.

ステップS60において、フラッシュメモリ164のワーキング面に書き換えデータが書き込まれたことを示すワーキング面書き込みフラグ262を設定(“1”)する。ステップS62において、プロテクト面にステップS58,60で格納した書き換えデータのコピーが完了していないことを示すデータ格納面コピー完了フラグ264を解除(“0”)する。   In step S60, a working surface write flag 262 is set (“1”) indicating that the rewrite data has been written to the working surface of the flash memory 164. In step S62, the data storage surface copy completion flag 264 indicating that the copy of the rewrite data stored in steps S58 and S60 on the protected surface is not completed is canceled (“0”).

コンフィギュレーション部204は、以下のようにして、フラッシュメモリ164のワーキング面に格納されたデータでFPGA158にコンフィギュレーションを行う。   The configuration unit 204 configures the FPGA 158 with data stored on the working surface of the flash memory 164 as follows.

図7はコンフィギュレーション部204の動作フローチャートである。ステップS100において、FPGA158よりFPGA開始指示受信/電源オン/スイッチオンされたか否かを判定する。FPGA開始指示受信/電源オン/スイッチオンがされたならば、ステップS102に進む。FPGA開始指示受信、電源オン及びスイッチオンされていないならば、ステップS100でウェイトする。   FIG. 7 is an operation flowchart of the configuration unit 204. In step S100, it is determined whether or not the FPGA 158 receives the FPGA start instruction / power is turned on / switched on. If the FPGA start instruction is received / power is turned on / switched on, the process proceeds to step S102. If the FPGA start instruction is received, the power is on, and the switch is not turned on, the process waits in step S100.

FPGA開始指示は、書き換えデータによるFPGAコンフィギュレーションを行うために上位装置50より下位装置52になされる。電源オン/スイッチオンは、初期データによるFPGAコンフィギュレーションを行うためのトリガである。   The FPGA start instruction is issued from the higher-level device 50 to the lower-level device 52 in order to perform FPGA configuration based on the rewrite data. Power on / switch on is a trigger for performing FPGA configuration with initial data.

ステップS102において、フラッシュメモリ164中のデータ格納面表示フラグ260により示されるワーキング面に格納されたデータによりFPGAコンフィギュレーションを開始する。即ち、ワーキング面よりデータを読み出して、データをFPGA158の該当アドレスのレジスタに書き込む。   In step S102, the FPGA configuration is started with the data stored in the working plane indicated by the data storage plane display flag 260 in the flash memory 164. In other words, the data is read from the working surface and the data is written to the register at the corresponding address of the FPGA 158.

ステップS104において、コンフィギュレーション監視タイマを起動する。ステップS106において、ワーキング面に格納された全データがFPGA158に書き込まれてFPGA158が正常に動作を開始したことを示すコンフィギュレーション完了通知をFPGA158より受信したか否かを判定する。   In step S104, a configuration monitoring timer is started. In step S <b> 106, it is determined whether all the data stored in the working surface is written in the FPGA 158 and a configuration completion notification indicating that the FPGA 158 has started operating normally has been received from the FPGA 158.

コンフィギュレーション完了通知を受信した場合は、ステップS107に進む。コンフィギュレーション完了通知を受信していない場合は、ステップS108に進む。ステップS107において、FPGA158及びCPU154を通して、上位装置50にコンフィギュレーション完了通知を行う。   If a configuration completion notification is received, the process proceeds to step S107. If the configuration completion notification has not been received, the process proceeds to step S108. In step S107, a configuration completion notification is sent to the host device 50 through the FPGA 158 and the CPU 154.

ステップS108において、コンフィギュレーション完了監視タイマがオーバフロー(タイムアウト)してか否かを判定する。タイムアウトしたならば、ステップS110に進む。タイムアウトしていなければ、ステップS106に戻る。   In step S108, it is determined whether or not the configuration completion monitoring timer has overflowed (timed out). If timed out, the process proceeds to step S110. If not timed out, the process returns to step S106.

ステップS110において、リトライカウンタを1インクリメントする。尚、リトライカウンタはコンフィギュレーション開始したときは初期化されている。ステップS112において、ワーキング面でのリトライ回数が満了したか否かを判定する。   In step S110, the retry counter is incremented by one. The retry counter is initialized when the configuration starts. In step S112, it is determined whether the number of retries on the working side has expired.

リトライ回数が満了したならば、ワーキング面に格納されたデータに不備があった、又は誤ったデータが書き込まれていたことによりFPGAが完了しなかったので、ステップS114に進む。リトライ回数が満了していないならば、ステップS102に戻る。   If the number of retries has expired, the data stored in the working surface is incomplete, or the FPGA has not been completed because incorrect data has been written, so the process proceeds to step S114. If the number of retries has not expired, the process returns to step S102.

ステップS114において、フラッシュメモリ164中のデータ格納面表示フラグ260により示されるプロテクト面に格納されたデータによるFPGAコンフィギュレーションを開始する。   In step S114, FPGA configuration is started using data stored on the protected surface indicated by the data storage surface display flag 260 in the flash memory 164.

ステップS116において、コンフィギュレーション監視タイマを起動する。ステップS118において、コンフィギュレーション完了通知をFPGA158より受信したか否かを判定する。コンフィギュレーション完了通知を受信した場合は、ステップS107に進む。コンフィギュレーション完了通知を受信していない場合は、ステップS120に進む。   In step S116, a configuration monitoring timer is started. In step S118, it is determined whether a configuration completion notification is received from the FPGA 158 or not. If a configuration completion notification is received, the process proceeds to step S107. If the configuration completion notification has not been received, the process proceeds to step S120.

ステップS120において、コンフィギュレーション完了監視タイマがオーバフロー(タイムアウト)してか否かを判定する。タイムアウトしたならば、ステップS122に進む。タイムアウトしていなければ、ステップS118に戻る。   In step S120, it is determined whether or not the configuration completion monitoring timer has overflowed (timed out). If timed out, the process proceeds to step S122. If not timed out, the process returns to step S118.

ステップS122において、リトライカウンタを1インクリメントする。尚、リトライカウンタはコンフィギュレーション開始したときは初期化されている。ステップS124において、プロテクト面でのリトライ回数が満了したか否かを判定する。リトライ回数が満了したならば、ステップS126に進む。リトライ回数が満了していないならば、ステップS114に戻る。   In step S122, the retry counter is incremented by one. The retry counter is initialized when the configuration starts. In step S124, it is determined whether or not the number of retries on the protected surface has expired. If the number of retries has expired, the process proceeds to step S126. If the number of retries has not expired, the process returns to step S114.

ステップS126において、CPU154を通して、上位装置50に装置故障が発生したことをコンフィギュレーション正常終了通知が一定時間内に行われないことにより通知する。   In step S126, the CPU 154 notifies the host device 50 that a device failure has occurred by not sending a normal configuration end notification within a predetermined time.

装置故障が発生したものと判定しているのは、プロテクト面に格納されたデータは以前FPGAコンフィギュレーションが正常終了したデータであり、データに誤りがないものと考えられるからである。   The reason why it is determined that a device failure has occurred is that the data stored in the protected surface is data that has been successfully completed in FPGA configuration before, and it is considered that there is no error in the data.

このように、ワーキング面に格納されたデータによるコンフィギュレーションが失敗した場合には、プロテクト面に格納されたデータでコンフィギュレーションを自動的に再開するので、専用端末54を接続してコンフィギュレーションを行う必要がない。   As described above, when the configuration using the data stored in the working plane fails, the configuration is automatically resumed with the data stored in the protect plane, so the dedicated terminal 54 is connected to perform the configuration. There is no need.

図8はデータコピー部206の動作フローチャートである。ステップS150において、ワーキング面コンフィギュレーション完了したか否かを判定する。ワーキング面コンフィギュレーション完了したならば、ステップS152に進む。ワーキング面コンフィギュレーションが完了していなければ、ステップS170に進む。   FIG. 8 is an operation flowchart of the data copy unit 206. In step S150, it is determined whether the working surface configuration is completed. If the working surface configuration is completed, the process proceeds to step S152. If the working surface configuration is not completed, the process proceeds to step S170.

ステップS152において、ワーキング面書き込みフラグ262の設定(“1”)が有るか否かを判定する。ワーキング面書き込みフラグ262の設定があれば、ステップS154に進む。ワーキング面書き込みフラグ262の設定がなければ、ワーキング面とプロテクト面には同一のデータが格納されていると識別し、データコピーは実施せず終了する。   In step S152, it is determined whether the working surface writing flag 262 is set (“1”). If the working surface writing flag 262 is set, the process proceeds to step S154. If the working plane write flag 262 is not set, it is identified that the same data is stored in the working plane and the protect plane, and the data copy is terminated without executing.

ステップS154において、フラッシュメモリ164のデータ格納面表示フラグ260が示すワーキング面からプロテクト面にデータコピー開始する。ステップS156において、コピー完了したか否かを判定する。コピー完了したならば、ステップS158に進む。コピー完了していなければ、ステップS156でループしてデータコピーを続行する。   In step S154, data copying is started from the working surface indicated by the data storage surface display flag 260 of the flash memory 164 to the protected surface. In step S156, it is determined whether or not copying has been completed. If the copying is completed, the process proceeds to step S158. If the copying has not been completed, data loop is continued in a loop in step S156.

ステップS158において、フラッシュメモリ164のワーキング面書き込みフラグ262を解除(“0”)する。ステップS160において、データ格納面コピー完了フラグ264を解除(“0”)する。   In step S158, the working surface write flag 262 of the flash memory 164 is canceled (“0”). In step S160, the data storage surface copy completion flag 264 is canceled (“0”).

ステップS162において、現在のワーキング面がプロテクト面、現在のプロテクト面がワーキング面となるように、データ格納面表示フラグ260を更新してワーキング面とプロテクト面の面切り替えを実施する。   In step S162, the data storage surface display flag 260 is updated so that the current working surface becomes the protection surface and the current protection surface becomes the working surface, and the working surface and the protection surface are switched.

これにより、ワーキング面とプロテクト面のデータが一致し、プロテクト面にはコンフィギュレーションが完了したデータが格納される。   As a result, the data on the working surface and the protect surface coincide with each other, and the data whose configuration is completed is stored in the protect surface.

ステップS170において、プロテクト面コンフィギュレーション完了したか否かを判定する。プロテクト面コンフィギュレーション完了したならば、ステップS172に進む。プロテクト面コンフィギュレーションが完了していなければ、終了する。   In step S170, it is determined whether protection surface configuration is completed. If the protection surface configuration is completed, the process proceeds to step S172. If the protection surface configuration has not been completed, the process ends.

ステップS172において、フラッシュメモリ164のデータ格納面表示フラグ260が示すプロテクト面からワーキング面にデータコピー開始する。ステップS174において、コピー完了したか否かを判定する。コピー完了したならば、ステップS176に進む。コピー完了していなければ、ステップS174でループしてコピーを続行する。   In step S172, data copy is started from the protected surface indicated by the data storage surface display flag 260 of the flash memory 164 to the working surface. In step S174, it is determined whether or not copying has been completed. If the copying is completed, the process proceeds to step S176. If the copying has not been completed, the loop is continued in step S174.

ステップS176において、ワーキング面書き込みフラグ262を解除(“0”)する。ステップS178において、データ格納面コピー完了フラグ264を設定(“1”)する。   In step S176, the working surface writing flag 262 is canceled (“0”). In step S178, the data storage surface copy completion flag 264 is set (“1”).

このとき、ワーキング面とプロテクト面の切り替えをしていないので、次回の書き換えデータはワーキング面に格納されて、ワーキング面におけるFPGAコンフィギュレーション完了する環境が構築される。   At this time, since the working surface and the protection surface are not switched, the next rewrite data is stored in the working surface, and an environment for completing the FPGA configuration on the working surface is constructed.

図9(a)〜(e)はFPGAコンフィギュレーション方法を示す図である。以下、本発明のFPGAコンフィギュレーション方法の説明をする。   FIGS. 9A to 9E are diagrams showing the FPGA configuration method. Hereinafter, the FPGA configuration method of the present invention will be described.

(a) 初期データの書き込み
専用端末54は、A,B面のいずれかの書き込み面を指定して、初期データをコンフィギュレーション制御部160にコネクタ162を通して送信する。
(A) Writing Initial Data The dedicated terminal 54 designates one of the writing surfaces A and B, and transmits initial data to the configuration control unit 160 through the connector 162.

コンフィギュレーション制御部160は、上述したように、専用端末54より初期データを受信して、図9(a)に示すように、フラッシュメモリ164内の指定された書き込み面、例えば、A面252#Aに書き込むとともに書き込んだ面252#Aがワーキング面となるようにデータ格納面表示フラグ260を設定(“1”)、ワーキング面書き込みフラグ262を設定(“1”)及びデータ格納面コピー完了フラグ264を解除(“0”)する。   As described above, the configuration control unit 160 receives the initial data from the dedicated terminal 54 and, as shown in FIG. 9A, the designated writing surface in the flash memory 164, for example, the A surface 252 #. The data storage surface display flag 260 is set (“1”), the working surface writing flag 262 is set (“1”), and the data storage surface copy completion flag is set so that the written surface 252 # A becomes the working surface. H.264 is released (“0”).

(b) 初期データのFPGAコンフィギュレーション
電源がオン/スイッチがオンされると、コンフィギュレーション制御部160は、上述したようにワーキング面に格納されたデータによりFPGA158にコンフィギュレーションを開始する。
(B) FPGA Configuration of Initial Data When the power supply is turned on / switched on, the configuration control unit 160 starts configuration of the FPGA 158 with the data stored in the working surface as described above.

コンフィギュレーションが完了すると、ワーキング面書き込みフラグ262が設定(“1”)されていることから、図9(b)に示すように、ワーキング面に格納されたデータをプロテクト面にコピーして、ワーキング面書き込みフラグ262を解除(“0”)及びデータ格納面コピー完了フラグ264を設定(“1”)する。   When the configuration is completed, the working plane write flag 262 is set (“1”). Therefore, as shown in FIG. 9B, the data stored in the working plane is copied to the protect plane and the working plane is copied. The surface write flag 262 is canceled (“0”), and the data storage surface copy completion flag 264 is set (“1”).

現在のプロテクト面262#Bがワーキング面、現在のワーキング面262#Aがプロテクト面となるようにデータ格納面表示フラグ260を更新(“0”)してワーキング面の切り替えを行う。   The data storage surface display flag 260 is updated (“0”) so that the current protection surface 262 # B is the working surface and the current working surface 262 # A is the protection surface, and the working surface is switched.

これにより、FPGA158に初期データがコンフィギュレーションされて、FPGA158が動作を開始する。また、プロテクト面には、コンフィギュレーションが完了したデータが格納される。尚、コンフィギュレーションに失敗した場合は、上記(a),(b)を再実行する。   As a result, initial data is configured in the FPGA 158, and the FPGA 158 starts operation. In addition, data for which configuration has been completed is stored in the protected surface. If configuration fails, the above steps (a) and (b) are re-executed.

(c) データの書き換え
上位装置50は、書き換えデータを下位装置52のCPU154及びFPGA158を通して、コンフィギュレーション制御部160に送信する。コンフィギュレーション制御部160は、図9(c)に示すように、書き換えデータをデータ格納面表示フラグ260が示すワーキング面、例えば、B面162#Bに格納するとともに、ワーキング面書き込みフラグ262を設定(“1”)及びデータ格納面コピー完了フラグ264を解除(“0”)する。
(C) Rewriting Data The upper device 50 transmits the rewritten data to the configuration control unit 160 through the CPU 154 and the FPGA 158 of the lower device 52. As shown in FIG. 9C, the configuration control unit 160 stores the rewrite data on the working surface indicated by the data storage surface display flag 260, for example, the B surface 162 # B, and sets the working surface write flag 262. ("1") and the data storage surface copy completion flag 264 is canceled ("0").

(d) 書き換えデータのFPGAコンフィギュレーション
上位装置50は、コンフィギュレーション開始指示を下位装置52のCPU154及びFPGA158を通して、コンフィギュレーション制御部160に行う。コンフィギュレーション制御部160は、コンフィギュレーション開始指示を受信すると、書き換えデータをデータ格納面表示フラグ260が示すワーキング面に格納されたデータをFPGA158にコンフィギュレーションする。
(D) FPGA Configuration of Rewrite Data The host device 50 issues a configuration start instruction to the configuration control unit 160 through the CPU 154 and the FPGA 158 of the lower device 52. When the configuration control unit 160 receives the configuration start instruction, the configuration control unit 160 configures the FPGA 158 with the rewrite data stored in the working surface indicated by the data storage surface display flag 260.

コンフィギュレーションが完了すると、ワーキング面書き込みフラグ262が設定(“1”)されていることから、図9(d)に示すように、ワーキング面、例えば、B面162#Bに格納されたデータをプロテクト面にコピーして、ワーキング面書き込みフラグ262を解除(“0”)及びデータ格納面コピー完了フラグ264を設定(“1”)する。   When the configuration is completed, since the working surface write flag 262 is set (“1”), as shown in FIG. 9D, the data stored in the working surface, for example, the B surface 162 # B is stored. Copy to the protected surface, release the working surface write flag 262 (“0”), and set the data storage surface copy completion flag 264 (“1”).

現在のプロテクト面がワーキング面、現在のワーキング面がプロテクト面となるようにデータ格納面表示フラグ260を更新(“1”)してワーキング面の切り替えを行う。   The data storage surface display flag 260 is updated (“1”) so that the current protected surface is the working surface and the current working surface is the protected surface, and the working surface is switched.

コンフィギュレーションが失敗すると、プロテクト面に格納されたデータをFPGA158にコンフィギュレーションする。コンフィギュレーションが完了すると、ワーキング面書き込みフラグ262が設定(“1”)されていることから、図9(e)に示すように、プロテクト面、例えば、A面262#Aに格納されたデータをワーキング面にコピーして、ワーキング面書き込みフラグ262を解除(“0”)及びデータ格納面コピー完了フラグ264を設定(“1”)する。   If the configuration fails, the data stored in the protected surface is configured in the FPGA 158. When the configuration is completed, since the working surface write flag 262 is set (“1”), the data stored in the protected surface, for example, the A surface 262 # A, as shown in FIG. The data is copied to the working surface, the working surface write flag 262 is canceled (“0”), and the data storage surface copy completion flag 264 is set (“1”).

以上説明したように、装置故障が発生していない限り、ワーキング面に格納されたデータによるFPGAコンフィギュレーションが完了しなくてもプロテクト面での装置立ち上げが可能となる。また、この時、装置は上位装置よりFPGAデータを書き換える前の時点におけるFPGAデータとなる。   As described above, as long as no device failure has occurred, it is possible to start up the device on the protected surface even if the FPGA configuration based on the data stored in the working surface is not completed. At this time, the apparatus becomes the FPGA data at the time before the FPGA data is rewritten from the host apparatus.

本発明は以下の付記を含む。
(付記1) FPGAにコンフィギュレーションをするFPGAコンフィギュレーション制御方法において、
データ格納面表示フラグを設定する領域並びにデータを格納する第1及び第2面を有するメモリの前記データ格納面表示フラグが示すワーキング面に該当する前記第1及び第2面のいずれかに書き換えデータを格納する第1ステップと、
前記データ格納面表示フラグが示すワーキング面に格納された書き換えデータに基づき前記FPGAにコンフィギュレーションを行う第2ステップと、
前記コンフィギュレーションが完了したならば、現在のワーキング面がプロテクト面、現在のプロテクト面がワーキング面となるよう前記データ格納面表示フラグを更新する第3ステップと、
前記コンフィギュレーションが失敗したならば、前記データ格納面表示フラグが示すワーキング面とは異なるプロテクト面に該当する第1及び第2面の何れかの面に格納されたデータに基づきFPGAにコンフィギュレーションを行う第4ステップと、
を具備したことを特徴とするFPGAコンフィギュレーション制御方法。
(付記2) 前記第3ステップは前記データ格納面表示フラグが示すワークキング面に該当する第1及び第2面の何れかの面に格納されたデータを他方の面にコピーするステップを含むことを特徴とする付記1記載のFPGAコンフィギュレーション制御方法。
(付記3) 前記第4ステップは前記データ格納面表示フラグが示すワーキング面とは異なるプロテクト面に該当する第1及び第2面のいずれかの面に格納されたデータを他方の面にコピーするステップを含むことを特徴とする付記1記載のFPGAコンフィギュレーション制御方法。
(付記4) 前記第1及び第2面のいずれかの面に初期データを格納し、該初期データを格納した面がワーキング面となるように前記データ格納面表示フラグを設定するステップと、前記データ格納面表示フラグが示すワーキング面に格納された初期データに基づき前記FPGAにコンフィギュレーションを行うステップとを更に含むことを特徴とする付記1記載のFPGAコンフィギュレーション制御方法。
(付記5) FPGAにコンフィギュレーションをするFPGAコンフィギュレーション制御装置において、
データ格納面表示フラグの領域並びにデータを格納する第1及び第2面を有するメモリと、
前記データ格納面表示フラグが示すワークキングに該当する前記第1及び第2面の何れかの面に、書き換えデータを格納するデータ書き換え部と、
前記データ格納面表示フラグが示すワーキング面に格納された書き換えデータに基づき前記FPGAにコンフィギュレーションを行う第1コンフィギュレーション部と、
前記コンフィギュレーションが完了したならば、現在のワーキング面がプロテクト面、現在のプロテクト面がワーキング面となるよう前記データ格納面表示フラグを更新する面切り替え制御部と、
前記コンフィギュレーションが失敗したならば、前記データ格納面表示フラグが示すワーキング面とは異なるプロテクト面に該当する第1及び第2面の何れかの面に格納されたデータに基づきFPGAにコンフィギュレーションを行う第2コンフィギュレーション部と、
を具備したことを特徴とするFPGAコンフィギュレーション制御装置。
(付記6) 前記第1コンフィギュレーション部によるコンフィギュレーションが完了したならば、前記データ格納面表示フラグが示すワーキング面に格納されたデータをプロテクト面にコピーする第1データコピー部を更に具備したことを特徴とする付記5記載のFPGAコンフィギュレーション制御装置。
(付記7) 前記第2コンフィギュレーション部によるコンフィギュレーションが完了したならば、前記データ格納面表示フラグが示すワーキング面とは異なるプロテクト面に格納されたデータをワーキング面にコピーする第2データコピー部を更に具備したことを特徴とする付記6記載のFPGAコンフィギュレーション制御装置。
(付記8) 専用端末より初期データを受信して、前記データ格納面表示フラグが示すワーキング面に格納する初期データ書き込み部と、電源がオンされると、前記データ格納面表示フラグが示すワーキング面に格納された初期データに基づき前記FPGAにコンフィギュレーションを行う第3コンフィギュレーション部と、前記第3コンフィギュレーション部よるコンフィギュレーションが完了したならば、前記データ格納面表示フラグが示すワーキング面に格納された初期データをプロテクト面にコピーする第3データコピー部とを更に具備したことを特徴とする付記5記載のFPGAコンフィギュレーション制御装置。
(付記9) 前記書き換えデータは上位装置により送信されて前記FPGAを通して受信されることを特徴とする付記5記載のFPGAコンフィギュレーション制御装置。
The present invention includes the following supplementary notes.
(Supplementary Note 1) In the FPGA configuration control method for configuring the FPGA,
Data to be rewritten in one of the first and second planes corresponding to the working plane indicated by the data storage plane display flag of the memory having the first and second planes for storing data and the area for setting the data storage plane display flag A first step of storing
A second step of configuring the FPGA based on rewrite data stored in the working surface indicated by the data storage surface display flag;
When the configuration is completed, a third step of updating the data storage surface display flag so that the current working surface is a protection surface and the current protection surface is a working surface;
If the configuration fails, the FPGA is configured based on the data stored in one of the first and second surfaces corresponding to the protected surface different from the working surface indicated by the data storage surface display flag. A fourth step to perform;
An FPGA configuration control method comprising:
(Supplementary Note 2) The third step includes a step of copying data stored in one of the first and second surfaces corresponding to the working surface indicated by the data storage surface display flag to the other surface. The FPGA configuration control method according to appendix 1, characterized by:
(Supplementary Note 3) In the fourth step, data stored in one of the first and second surfaces corresponding to the protected surface different from the working surface indicated by the data storage surface display flag is copied to the other surface. The FPGA configuration control method according to claim 1, further comprising steps.
(Supplementary Note 4) A step of storing initial data in any one of the first and second surfaces, and setting the data storage surface display flag so that the surface storing the initial data becomes a working surface; The FPGA configuration control method according to appendix 1, further comprising a step of configuring the FPGA based on initial data stored in a working plane indicated by a data storage plane display flag.
(Supplementary Note 5) In the FPGA configuration control device that configures the FPGA,
A memory having a data storage surface display flag area and first and second surfaces for storing data;
A data rewrite unit for storing rewrite data on any one of the first and second surfaces corresponding to the work king indicated by the data storage surface display flag;
A first configuration unit configured to configure the FPGA based on rewrite data stored in a working surface indicated by the data storage surface display flag;
When the configuration is completed, a surface switching control unit that updates the data storage surface display flag so that the current working surface is a protected surface and the current protected surface is a working surface;
If the configuration fails, the FPGA is configured based on the data stored in one of the first and second surfaces corresponding to the protected surface different from the working surface indicated by the data storage surface display flag. A second configuration section to perform;
An FPGA configuration control apparatus comprising:
(Additional remark 6) When the configuration by the 1st configuration part was completed, it further provided the 1st data copy part which copies the data stored in the working surface which the said data storage surface display flag shows to a protection surface The FPGA configuration control device according to appendix 5, characterized by:
(Supplementary Note 7) When the configuration by the second configuration unit is completed, a second data copy unit that copies the data stored in the protection surface different from the working surface indicated by the data storage surface display flag to the working surface The FPGA configuration control device according to appendix 6, further comprising:
(Supplementary Note 8) An initial data writing unit that receives initial data from a dedicated terminal and stores it in a working surface indicated by the data storage surface display flag; and a working surface indicated by the data storage surface display flag when the power is turned on. A third configuration unit configured to configure the FPGA based on the initial data stored in the memory, and when the configuration by the third configuration unit is completed, the configuration data is stored in the working surface indicated by the data storage surface display flag. The FPGA configuration control device according to appendix 5, further comprising a third data copy unit that copies the initial data to the protected surface.
(Supplementary note 9) The FPGA configuration control device according to supplementary note 5, wherein the rewrite data is transmitted by a host device and received through the FPGA.

本発明の原理図である。It is a principle diagram of the present invention. 本発明の実施形態によるコンフィギュレーション制御装置の構成図である。It is a block diagram of the configuration control apparatus by embodiment of this invention. 図2中のフラッシュメモリ構成図である。FIG. 3 is a configuration diagram of a flash memory in FIG. 2. 図2中のコンフィギュレーション制御部の機能ブロック図である。FIG. 3 is a functional block diagram of a configuration control unit in FIG. 2. 初期データ書き込み動作フローチャートである。It is an initial data write operation flowchart. 書き換えデータ書き込み動作フローチャートである。It is a rewrite data writing operation flowchart. FPGAコンフィギュレーション動作フローチャートである。It is a FPGA configuration operation | movement flowchart. データコピーの動作フローチャートである。It is an operation | movement flowchart of a data copy. FPGAコンフィギュレーション制御方法を示す図である。It is a figure which shows the FPGA configuration control method.

符号の説明Explanation of symbols

2 メモリ
4 データ書き換え部
6 第1コンフィギュレーション部
8 面切り替え部
10 第2コンフィギュレーション部
12 データ格納面表示フラグ
14#1 第1面
14#2 第2面
16 FPGA
2 memory 4 data rewrite unit 6 first configuration unit 8 screen switching unit 10 second configuration unit 12 data storage surface display flag 14 # 1 first surface 14 # 2 second surface 16 FPGA

Claims (2)

上位装置と、専用端末と、コンフィグレーションが正常終了するとコンフィグレーション完了通知をするとともに前記上位装置からのデータに基づいてハードウェアとして動作を開始する前記上位装置に接続されたFPGA並びに該FPGA及び前記専用端末に接続されたコンフィグレーション制御部を含む下位装置とを有するFPGAコンフィグレーション制御装置を用いたFPGAコンフィグレーション制御方法において、
前記コンフィグレーション制御部は、
前記専用端末より送信された初期データを受信して、一方がワーキング面、他方がプロテクション面とされる第1及び第2面を有するメモリの前記ワーキング面に前記初期データを格納するステップと、
所定のトリガに基づいて、前記メモリの前記ワーキング面に格納された前記初期データに基づき前記FPGAにコンフィグレーションを行うステップと、
前記FPGAより前記初期データに基づく前記コンフィグレーション完了通知がされると、前記ワーキング面に格納された前記初期データを前記プロテクション面に格納するステップと
前記上位装置より前記FPGAを通して、書き換えデータを受信して、前記メモリの前記ワーキング面にコピーするステップと、
所定のトリガに基づいて、前記メモリの前記ワーキング面に格納された前記書き換えデータに基づき前記FPGAにコンフィグレーションを行うステップと、
前記FPGAより前記書き換えデータに基づく前記コンフィグレーション完了通知がされると、前記ワーキング面に格納された前記書き換えデータをプロテクション面にコピーするステップと、
前記FPGAより前記コンフィグレーション完了通知が前記書き換えデータに基づくコンフィグレーション開始から所定時間内にされないときは、前記プロテクション面に格納されたデータに基づき前記FPGAにコンフィグレーションを行うステップと、
を実行することを特徴とするFPGAコンフィグレーション制御方法。
An upper device, a dedicated terminal, an FPGA connected to the upper device that notifies the completion of configuration when the configuration is normally completed and starts operation as hardware based on data from the upper device, and the FPGA and the In an FPGA configuration control method using an FPGA configuration control device having a lower-level device including a configuration control unit connected to a dedicated terminal ,
The configuration control unit
Receiving the initial data transmitted from the dedicated terminal, and storing the initial data in the working surface of the memory having first and second surfaces, one of which is a working surface and the other is a protection surface;
Configuring the FPGA based on the initial data stored in the working surface of the memory based on a predetermined trigger;
Storing the initial data stored in the working plane in the protection plane upon notification of completion of the configuration based on the initial data from the FPGA ;
Receiving rewrite data from the host device through the FPGA and copying it to the working surface of the memory;
Configuring the FPGA based on the rewrite data stored in the working surface of the memory based on a predetermined trigger;
Copying the rewrite data stored in the working surface to a protection surface when the configuration completion notification based on the rewrite data is received from the FPGA;
When the configuration completion notification is not sent from the FPGA within a predetermined time from the start of configuration based on the rewrite data, the FPGA is configured based on data stored in the protection plane; and
The FPGA configuration control method characterized by performing this .
上位装置と、専用端末と、コンフィグレーションが正常に終了するとコンフィグレーション完了通知をするとともに前記上位装置からのデータに基づいてハードウェアとして動作を開始するFPGA及びコンフィグレーション制御部を含む下位装置とを有し、前記上位装置及び前記FPGAが接続され、前記FPGA及び前記コンフィグレーション制御部が接続され、前記専用端末及び前記コンフィグレーション制御部が接続されたFPGAコンフィグレーション制御装置において、
前記コンフィグレーション制御部は、
前記専用端末より送信された初期データを受信して、一方がワーキング面、他方がプロテクション面とされる第1及び第2面を有するメモリの前記ワーキング面に前記初期データを格納する初期データ書き込み部と、
所定のトリガに基づいて、前記メモリの前記ワーキング面に格納された前記初期データに基づき前記FPGAにコンフィグレーションを行う第1コンフィグレーション部と、
前記FPGAより前記初期データに基づく前記コンフィグレーション完了通知がされると、前記ワーキング面に格納された前記初期データを前記プロテクション面にコピーする第1データコピー部と、
前記上位装置より前記FPGAを通して、書き換えデータを受信して、前記メモリの前記ワーキング面に格納するデータ書き換え部と、
所定のトリガに基づいて、前記メモリの前記ワーキング面に格納された前記書き換えデータに基づき前記FPGAにコンフィグレーションを行う第2コンフィグレーション部と、
前記FPGAより前記書き換えデータに基づく前記コンフィグレーション完了通知がされると、前記ワーキング面に格納された前記書き換えデータを前記プロテクション面にコピーする第2データコピー部と、
前記FPGAより前記コンフィグレーション完了通知が前記書き換えデータに基づくコンフィグレーション開始から所定時間内にされないときは、前記プロテクション面に格納されたデータに基づき前記FPGAにコンフィグレーションを行う第3コンフィグレーション部と、
を備えたことを特徴とするFPGAコンフィグレーション制御装置
A host device, a dedicated terminal, and a lower device including an FPGA and a configuration control unit that notifies the completion of configuration when the configuration is normally completed and starts operation as hardware based on data from the host device. The FPGA and the FPGA are connected, the FPGA and the configuration control unit are connected, and the dedicated terminal and the configuration control unit are connected,
The configuration control unit
An initial data writing unit that receives initial data transmitted from the dedicated terminal and stores the initial data in the working surface of the memory having first and second surfaces, one of which is a working surface and the other is a protection surface When,
A first configuration unit configured to configure the FPGA based on the initial data stored in the working surface of the memory based on a predetermined trigger;
A first data copy unit configured to copy the initial data stored in the working surface to the protection surface when the configuration completion notification based on the initial data is received from the FPGA;
A data rewrite unit that receives rewrite data from the host device through the FPGA and stores the rewrite data in the working surface of the memory;
A second configuration unit configured to configure the FPGA based on the rewrite data stored in the working surface of the memory based on a predetermined trigger;
A second data copy unit configured to copy the rewrite data stored in the working surface to the protection surface when the configuration completion notification based on the rewrite data is received from the FPGA;
A third configuration unit configured to configure the FPGA based on data stored in the protection plane when the configuration completion notification from the FPGA is not performed within a predetermined time from the start of configuration based on the rewrite data;
An FPGA configuration control device comprising:
JP2003430068A 2003-12-25 2003-12-25 FPGA configuration control method and control apparatus Expired - Fee Related JP4028480B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003430068A JP4028480B2 (en) 2003-12-25 2003-12-25 FPGA configuration control method and control apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003430068A JP4028480B2 (en) 2003-12-25 2003-12-25 FPGA configuration control method and control apparatus

Publications (2)

Publication Number Publication Date
JP2005191872A JP2005191872A (en) 2005-07-14
JP4028480B2 true JP4028480B2 (en) 2007-12-26

Family

ID=34788548

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003430068A Expired - Fee Related JP4028480B2 (en) 2003-12-25 2003-12-25 FPGA configuration control method and control apparatus

Country Status (1)

Country Link
JP (1) JP4028480B2 (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5012017B2 (en) * 2006-12-28 2012-08-29 富士通株式会社 Embedded device and control method
JP5609176B2 (en) * 2010-03-12 2014-10-22 富士通株式会社 Configuration method and configuration control circuit
JP6613723B2 (en) * 2015-08-27 2019-12-04 富士ゼロックス株式会社 Electronics
EP3605335A4 (en) * 2017-03-21 2020-04-22 Nec Corporation Integrated circuit system, startup control method for integrated circuit system, and startup control program

Also Published As

Publication number Publication date
JP2005191872A (en) 2005-07-14

Similar Documents

Publication Publication Date Title
EP1899814B1 (en) Firmware update for consumer electronic device
JP6613723B2 (en) Electronics
JP2005141718A (en) In-circuit configuration architecture with configuration on initialization function for embedded configurable logic array
JP4028480B2 (en) FPGA configuration control method and control apparatus
JP4659371B2 (en) In-circuit setting structure with non-volatile memory for built-in configurable logic array
JP2005143071A (en) In-circuit setting structure for built-in logic array capable of being set
JP2007279826A (en) Configuration data updating device and method therefor
JP5045115B2 (en) Programmable device control apparatus and method
JP2023068538A (en) Information processing apparatus, method for controlling the same, and program
JP2000039993A (en) Device and method for replacing firmware
JP2007328438A (en) Information processor, its data backup, and restoration method
JP2003228490A (en) Terminal equipment connected to network, and network system using the same
JP2007041798A (en) Information processor and memory rewriting method for information processor
JP2008217202A (en) Disk array device and firmware update method
JP3888629B2 (en) Data writing program, game system, and data writing method
JP2007042038A (en) Device and method for controlling terminal equipment
JP2004355389A (en) Remote update system
JP6554801B2 (en) Redundant communication device and control method thereof
JP2001053891A (en) Method and device for updating program of portable terminal equipment
JP2013074348A (en) Configuration control circuit for fpga, fpga device and method, and configuration data updating method
WO2016125455A1 (en) Communication system, communication device, and communication method
JP7134753B2 (en) IMAGE FORMING APPARATUS, IMAGE FORMING APPARATUS CONTROL METHOD, AND PROGRAM
JP2009238071A (en) Built-in system
JP2002044693A (en) Controller of electronic exchange
JP2008198152A (en) Computer system with redundant configuration, and system switching method for computer system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060210

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070618

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070710

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070906

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20071009

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20071011

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101019

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101019

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111019

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111019

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121019

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121019

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131019

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees