JP5045115B2 - プログラマブルデバイス制御装置およびその方法 - Google Patents
プログラマブルデバイス制御装置およびその方法 Download PDFInfo
- Publication number
- JP5045115B2 JP5045115B2 JP2007012647A JP2007012647A JP5045115B2 JP 5045115 B2 JP5045115 B2 JP 5045115B2 JP 2007012647 A JP2007012647 A JP 2007012647A JP 2007012647 A JP2007012647 A JP 2007012647A JP 5045115 B2 JP5045115 B2 JP 5045115B2
- Authority
- JP
- Japan
- Prior art keywords
- area
- fpga
- setting data
- configuration
- stored
- 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.)
- Active
Links
Images
Landscapes
- Logic Circuits (AREA)
Description
すなわち、請求項1に記載の発明は、外部装置に対して通信可能に接続された少なくとも1つのFPGAと、そのFPGAの動作を設定するための設定データを記憶する不揮発性メモリと、その不揮発性メモリに記憶された前記設定データを読み出してFPGAに書き込む制御手段とを備えたプログラマブルデバイス制御装置であって、不揮発性メモリは、FPGAの所定動作のうちで全ての機能を含んだ設定データを記憶する第1領域と、その第1領域に記憶された設定データに含まれる機能よりも少なく含み、かつ前記外部装置との通信機能を少なくとも含んだ設定データを記憶する第2領域とを有し、前記装置は、少なくとも第1領域に記憶された設定データの読み出しによる読み出し動作が失敗か否かを判断する読み出し動作判断手段を備え、前記制御手段は、第1領域に記憶された設定データを読み出してFPGAに書き込むとともに、前記読み出し動作判断手段によって読み出し動作が失敗と判断された場合に、前記第2領域に記憶された設定データを読み出してFPGAに書き込んだ後に当該FPGAを動作させて、前記外部装置から更新すべき設定データを前記FPGAを介して受信して前記第1領域に格納することを特徴とするものである。
図1は、実施例に係るFPGA制御装置(FPGA搭載基板)の概略ブロック図であり、図2は、フラッシュメモリの概略構成図であり、図3は、コンフィギュレーション制御部の概略構成図である。本実施例ではプログラマブルデバイスとして、FPGA(Field Programmable Gate Array)を例に採って説明するとともに、不揮発性メモリとしてフラッシュメモリ(Flash Memory)を例に採って説明する。
更新すべきコンフィギュレーションデータがあるか否かを判断する。例えば外部装置であるPC10からコンフィギュレーションデータが新たに作成された場合には、次のステップS2に進む。もし、更新がなければ、更新があるまでステップS1をループして待機する。
作成されたコンフィギュレーションデータを格納すべきフラッシュメモリ25内の領域(B面領域25Bの25aまたは25b)に、先に格納されたコンフィギュレーションデータの消去を、PC10から指示する。つまり、更新するコンフィギュレーションデータ領域のみ消去してクリアする。
PC10から更新すべきコンフィギュレーションデータを、FPGA21およびコンフィギュレーション制御部24を介して、フラッシュメモリ25に送信して、フラッシュメモリ25内のB面領域25Bの25aまたは25bに書き込んで記憶する。具体的には、更新すべきコンフィギュレーションデータを書き込むフラッシュメモリ25のアドレスをFPGA通信部24Aは受信して、そのアドレスをFPGA通信部24Aはフラッシュメモリ制御部24Cに送信する。そのアドレスに該当する領域に、更新すべきコンフィギュレーションデータを書き込んで記憶する。
コンフィギュレーションデータが正確に書き込まれたか否かを確認するために、コンフィギュレーションデータを読み出して、PC10に送信する。読み出されたコンフィギュレーションデータが、元の送信前のコンフィギュレーションデータに一致するか否かを確認するためにデータ比較を行う。
比較した結果、一致している場合には、比較結果が正常だとして、次のステップS6に進む。なお、比較結果が正常だと判断された場合には、PC10からフラッシュメモリ25へのコンフィギュレーションデータの書き込みが正常に行われていることになる。一致していない場合には、比較結果が異常だとして、ステップS2に戻って繰り返す。
フラッシュメモリ25へのコンフィギュレーションデータの書き込み後に、電源を切断してオフにする。
電源投入し、オンにする。電源オン後は、図5に示すフローを行う。具体的なフローについては後述する。
ステップS7で、電源オン後の動作が終了したら、PC10との通信をFPGA21が確保しているか否かを確認する。図5に示すフローでは、A面領域25Aに格納されるコンフィギュレーションデータは、PC10との通信機能を少なくとも含んでおり、装置の出荷後の通常の使用時には、そのコンフィギュレーションデータがA面領域25Aに予め記憶されているので、A面領域25Aに記憶されたコンフィギュレーションデータの読み出しによるコンフィギュレーション動作は失敗しない。したがって、通常の使用時にはPC10との通信を最小限にFPGA21は確保しているので、ステップS10に進む。
B面領域25BのFPGA1領域25aとFPGA2領域25bに記憶されたコンフィギュレーションデータの読み出しによるコンフィギュレーション動作が成功して正常に完了した場合には、コンフィギュレーション動作を含んだ一連のコンフィギュレーションデータの更新が正常に行われたとして、一連のフローを終了する。そして、書き込んだコンフィギュレーションデータに基づく動作をFPGA21,22が行う。ステップS8で確保している場合で、かつB面領域25BのFPGA1領域25aに記憶されたコンフィギュレーションデータの読み出しによるコンフィギュレーション動作が失敗して異常と判断された場合には、PC10との通信を最小限にFPGA21は確保しているとして、ステップS2に戻って繰り返す。
上述したようにステップS6の電源オフ後に電源を投入してオンにする。電源オンになるまでステップS71をループして待機する。
電源オン(電源投入)後に、ループカウンタ、エラーフラグを“0”にクリアする。ループカウンタおよびエラーフラグはコンフィギュレーション制御部24内で設定される。
ループカウンタが“0”であるか否かを判断する。上述したステップS72でループカウンタを“0”にクリアした状態で、ステップS73に進んだ場合には、ループカウンタは“0”である。後述するステップS82でループカウンタを1つインクリメント(増加)(図5中のステップS82では「ループカウンタインクリメント」を参照)して、後述するステップS83を経由してステップS73に戻った場合には、インクリメントされたループカウントの値に応じて判断する。ループカウンタが“0”の場合には次のステップS74に進み、それ以外の場合にはステップS85に進む。
エラーフラグが“0”であるか否かを判断する。上述したステップS72でエラーフラグを“0”にクリアした状態で、ステップS73を経由してステップS74に進んだ場合には、エラーフラグは“0”である。後述するステップS80でエラーフラグを反転し(図5中のステップS80では「エラーフラグを反転(“1”→“0”or“0”→“1”)」を参照)で、かつエラーフラグを“0”から“1”に反転して、後述するステップS81、S83を経由してステップS74に戻った場合には、エラーフラグは“1”である。エラーフラグが“0”の場合には次のステップS75に進み、エラーフラグが“1”の場合にはステップS84に進む。
エラーフラグが“0”で、かつループカウンタが“0”の場合には、フラッシュメモリ制御部24Cにリードする(読み出す)アドレスとして、コンフィギュレーションリード制御部24BはB面領域25BのFPGA1領域25aの開始アドレスにセットする。
上述したステップS75でB面領域25BのFPGA1領域25aの開始アドレスにセットして、ステップS76に進んだ場合には、FPGA21の所定動作のうちで全ての機能を含んだコンフィギュレーションデータを読み出す動作であるFPGA21のコンフィギュレーション動作を行う。後述するステップS84でA面領域25Aの開始アドレスにセットして、ステップS76に進んだ場合には、PC10との通信機能を少なくとも含んだコンフィギュレーションデータを読み出す動作であるFPGA21のコンフィギュレーション動作を行う。後述するステップS85でB面領域25BのFPGA2領域25bの開始アドレスにセットして、ステップS76に進んだ場合には、FPGA22の所定動作のうちで全ての機能を含んだコンフィギュレーションデータを読み出す動作であるFPGA22のコンフィギュレーション動作を行う。
1ビットずつ転送するコンフィギュレーションデータの転送数をカウントするとともに、上述したタイマによって開始アドレスセット後の転送時間をカウントする。所定時間内にFPGAのコンフィギュレーションのデータ受信を正常に完了したら上述した「conf done」信号を、各FPGA21,22からコンフィギュレーションリード制御部24Bを介してコンフィギュレーション動作監視部24Dに転送する。「conf done」信号が所定時間内にコンフィギュレーション動作監視部24Dに達した場合には、コンフィギュレーション動作が成功して正常に完了したとしたとコンフィギュレーション動作監視部24Dは判断する。そして、ステップS82に進む。
ステップS77で正常終了でないとして判断された場合に、ループカウンタが“1”以上である(“0”を超えている)か否かを判断する。ループカウンタが“1”以上である(“0”を超えている)場合にはステップS82に進み、ループカウンタが“0”の場合には次のステップS80に進む。
ステップS79でループカウンタが0の場合には、後述するステップS82のようにループカウンタを1つインクリメント(増加)(図5中のステップS82では「ループカウンタインクリメント」を参照)せずに、エラーフラグを反転する。すなわち、ループカウンタは“0”の状態で、エラーフラグが“1”であれば“0”にエラーフラグを反転し、エラーフラグが“0” であれば“1” にエラーフラグを反転する。
エラーフラグ反転後に、反転後のエラーフラグが“0”であるか否かを判断する。エラーフラグが“0”の場合には図5のフローを終了して、エラーフラグが“1”の場合にはステップS83に進む。
上述したステップS72でループカウンタ、エラーフラグを“0”にクリアした状態で、ステップS73に進んだ場合で、かつステップS77でループカウンタが“0”のときであるFPGA21のコンフィギュレーション動作が成功して正常に完了した場合には、このステップS82でループカウンタを1つインクリメント(増加)してループカウンタを“1”にする。また、エラーフラグの値に関わらずにステップS79でループカウンタが“1”の場合にも、このステップS82でループカウンタを1つインクリメント(増加)して“2”にする。そして、次のステップS83に進む。
ステップS81でエラーフラグが“1”の場合、あるいはステップS82でループカウンタをインクリメントした場合には、ループカウンタが“2”以上である(“1”を超えている)場合にはステップ73に戻ってループすることなくループから脱出して図5のフローを終了して、ループカウンタが“0”または“1”の場合にはステップ73に戻ってループする。
エラーフラグが“1”で、かつループカウンタが“0”の場合には、フラッシュメモリ制御部24Cにリードする(読み出す)アドレスとして、コンフィギュレーションリード制御部24BはA面領域25Aの開始アドレスにセットする。ステップS84からステップS76に進んで行われるコンフィギュレーション動作は、PC10との通信機能を少なくとも含んだコンフィギュレーションデータを読み出す動作であるFPGA21のコンフィギュレーション動作である。
エラーフラグに関わらずループカウンタが“1”の場合には、フラッシュメモリ制御部24Cにリードする(読み出す)アドレスとして、コンフィギュレーションリード制御部24BはB面領域25BのFPGA2領域25bの開始アドレスにセットする。ステップS85からステップS76に進んで行われるコンフィギュレーション動作は、FPGA22の所定動作のうちで全ての機能を含んだコンフィギュレーションデータを読み出す動作であるFPGA22のコンフィギュレーション動作である。
21,22 … FPGA
24 … コンフィギュレーション制御部
24D … コンフィギュレーション動作監視部
25 … フラッシュメモリ
25A … A面領域
25B … B面領域
Claims (4)
- 外部装置に対して通信可能に接続された少なくとも1つのFPGAと、そのFPGAの動作を設定するための設定データを記憶する不揮発性メモリと、その不揮発性メモリに記憶された前記設定データを読み出してFPGAに書き込む制御手段とを備えたプログラマブルデバイス制御装置であって、不揮発性メモリは、FPGAの所定動作のうちで全ての機能を含んだ設定データを記憶する第1領域と、その第1領域に記憶された設定データに含まれる機能よりも少なく含み、かつ前記外部装置との通信機能を少なくとも含んだ設定データを記憶する第2領域とを有し、前記装置は、少なくとも第1領域に記憶された設定データの読み出しによる読み出し動作が失敗か否かを判断する読み出し動作判断手段を備え、前記制御手段は、第1領域に記憶された設定データを読み出してFPGAに書き込むとともに、前記読み出し動作判断手段によって読み出し動作が失敗と判断された場合に、前記第2領域に記憶された設定データを読み出してFPGAに書き込んだ後に当該FPGAを動作させて、前記外部装置から更新すべき設定データを前記FPGAを介して受信して前記第1領域に格納することを特徴とするプログラマブルデバイス制御装置。
- 請求項1に記載のプログラマブルデバイス制御装置において、前記不揮発性メモリは、1つのメモリで前記第1領域および第2領域を有することを特徴とするプログラマブルデバイス制御装置。
- 外部装置に対して通信可能に接続された少なくとも1つのFPGAと、そのFPGAの動作を設定するための設定データを記憶し、第1領域および第2領域を有した不揮発性メモリとを備えたプログラマブルデバイス制御装置で、前記不揮発性メモリに記憶された前記設定データを読み出してFPGAに書き込むプログラマブルデバイス制御方法であって、前記第1領域には、FPGAの所定動作のうちで全ての機能を含んだ設定データを記憶するとともに、前記第2領域には、第1領域に記憶された設定データに含まれる機能よりも少なく含み、かつ前記外部装置との通信機能を少なくとも含んだ設定データを記憶し、第1領域に記憶された設定データを読み出してFPGAに書き込むとともに、少なくとも第1領域に記憶された設定データの読み出しによる読み出し動作が失敗した場合に、第2領域に記憶された設定データを読み出してFPGAに書き込んだ後に当該FPGAを動作させて、前記外部装置から更新すべき設定データを前記FPGAを介して受信して前記第1領域に格納することを特徴とするプログラマブルデバイス制御方法。
- 請求項3に記載のプログラマブルデバイス制御方法において、(a)少なくとも前記第1領域に記憶された前記設定データの読み出しによる読み出し動作が失敗か否かを管理するためのエラーフラグを、前記装置の電源投入後に“0”にクリアし、(b)前記エラーフラグが“0”の場合には第1領域に相当するアドレスを設定し、エラーフラグが“1”の場合には前記第2領域に相当するアドレスを設定し、(c)設定後に設定に該当する領域に記憶された設定データを読み出す読み出し動作を行い、(d)その読み出し動作が失敗と判断された場合にエラーフラグを反転して、(e)第2領域に記憶された設定データの読み出しによる読み出し動作が失敗した場合には前記反転後に終了して、第1領域に記憶された設定データの読み出しによる読み出し動作が失敗した場合には反転後に前記(b)に戻ることで、(b)〜(e)を繰り返し行うことを特徴とするプログラマブルデバイス制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007012647A JP5045115B2 (ja) | 2007-01-23 | 2007-01-23 | プログラマブルデバイス制御装置およびその方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007012647A JP5045115B2 (ja) | 2007-01-23 | 2007-01-23 | プログラマブルデバイス制御装置およびその方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2008182327A JP2008182327A (ja) | 2008-08-07 |
JP5045115B2 true JP5045115B2 (ja) | 2012-10-10 |
Family
ID=39725913
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007012647A Active JP5045115B2 (ja) | 2007-01-23 | 2007-01-23 | プログラマブルデバイス制御装置およびその方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5045115B2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5476007B2 (ja) * | 2009-02-16 | 2014-04-23 | 光洋電子工業株式会社 | プログラマブルコントローラおよびそれを用いたシステム |
JP6745586B2 (ja) * | 2015-04-28 | 2020-08-26 | 株式会社ソニー・インタラクティブエンタテインメント | プログラマブルデバイス、情報処理装置、およびプログラマブルデバイスにおける処理回路の制御方法 |
JP2021196753A (ja) | 2020-06-11 | 2021-12-27 | キヤノン株式会社 | 撮像装置及びその制御方法及びプログラム |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE4440127B4 (de) * | 1994-11-10 | 2007-11-08 | Robert Bosch Gmbh | Steuergerät |
JP4162863B2 (ja) * | 2001-03-30 | 2008-10-08 | 株式会社ルネサステクノロジ | マイクロコンピュータ |
-
2007
- 2007-01-23 JP JP2007012647A patent/JP5045115B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
JP2008182327A (ja) | 2008-08-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3608775B1 (en) | Electronic control system | |
CN107615714B (zh) | 通信装置及记录介质 | |
US7984239B2 (en) | Control program download device | |
CN112947977A (zh) | 一种软件在线升级方法及系统 | |
JP5045115B2 (ja) | プログラマブルデバイス制御装置およびその方法 | |
JP2008254484A (ja) | 車載用通信システム | |
KR100377608B1 (ko) | 데이터 처리장치 및 데이터 처리방법 | |
US5818755A (en) | Storage apparatus having a nonvolatile storage device capable of retaining data after an incomplete write operation and method of accessing same | |
JP6447469B2 (ja) | 書換システム | |
JP2012118904A (ja) | 情報処理装置 | |
US20030120860A1 (en) | Processor with embedded in-circuit programming structures | |
JP2007072695A (ja) | フラッシュメモリへの冗長保存方法及びプログラム | |
JP2000293376A (ja) | ブートプログラムの切替回路及び切替方法 | |
JP2000020425A (ja) | 通信網における端末装置の記憶内容の更新方法 | |
JP4028480B2 (ja) | Fpgaコンフィギュレーション制御方法及び制御装置 | |
JP2007041798A (ja) | 情報処理装置及び情報処理装置のメモリ書き換え方法 | |
JP3497066B2 (ja) | フラッシュメモリにおけるデータ書き込み/読み出し方法およびフラッシュメモリを用いた記憶装置 | |
JP2001147862A (ja) | フラッシュメモリ書込方法 | |
CN113467842B (zh) | 适用于工业级应用场景的嵌入式设备的启动方法、嵌入式设备和计算机可读存储介质 | |
JP2005332228A (ja) | プログラム切替え制御装置 | |
JP2008257415A (ja) | プログラム書き込み機能を有するコントローラ | |
JP2009070303A (ja) | リセットベクタ消去時プログラム書換え方法 | |
JP2001350672A (ja) | メモリ制御装置およびそのデータ処理方法 | |
JP5762139B2 (ja) | 情報処理端末及び管理サーバ | |
JPH11338688A (ja) | Sram型プログラマブルデバイスの書き込み方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20090406 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20111121 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20111206 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120206 |
|
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: 20120619 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20120702 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150727 Year of fee payment: 3 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 5045115 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |