(57)【特許請求の範囲】
【請求項１】
ＦＰＧＡとメモリとに接続され、該メモリに格納されるコンフィグレーションデータによって該ＦＰＧＡのコンフィグレーションを行うためのＦＰＧＡコンフィグレーション装置であって、
前記ＦＰＧＡへコンフィグレーションデータを書き込むデータ書込装置と、前記メモリの書き込み制御を行うメモリコントロール部と、に接続され、
前記データ書込装置による前記ＦＰＧＡへの前記コンフィグレーションデータの書き込み終了を検出する書込終了検出部と、
コンフィグレーションされた状態の前記ＦＰＧＡからコンフィグレーションデータを読み出す制御を行う読出処理制御部と、
前記ＦＰＧＡから読み出された前記コンフィグレーションデータを前記メモリへ転送するコンフィグレーションデータ転送部と、
前記コンフィグレーションデータの書き込みが終了したとき、前記ＦＰＧＡに書き込まれたコンフィグレーションデータを読み出す制御を前記読出処理制御部に開始させ、前記コンフィグレーションデータ転送部から転送された前記コンフィグレーションデータを前記メモリへ書き込む処理を前記メモリコントロール部に開始させるコンフィグレーション状態制御部と、
を備えるＦＰＧＡコンフィグレーション装置。
【請求項２】
請求項１に記載されるＦＰＧＡコンフィグレーション装置を有する回路基板。
【請求項３】
請求項１に記載されるＦＰＧＡコンフィグレーション装置を有する電子装置であって、前記ＦＰＧＡコンフィグレーション装置によって前記電子装置の動作を制御するＦＰＧＡがコンフィグレーションされる電子装置。
【請求項４】
所定のメモリから読み出されたコンフィグレーションデータをＦＰＧＡに書き込んで、該ＦＰＧＡのコンフィグレーションを行うＦＰＧＡコンフィグレーション方法であって、
前記ＦＰＧＡへコンフィグレーションデータを書き込むデータ書込装置による前記ＦＰＧＡへの前記コンフィグレーションデータの書き込み終了を検出し、
前記コンフィグレーションデータの書き込みが終了したとき、コンフィグレーションされた状態の前記ＦＰＧＡからコンフィグレーションデータを読み出す制御を行う読出処理制御部に、前記ＦＰＧＡに書き込まれたコンフィグレーションデータを読み出す制御を開始させ、読み出された前記コンフィグレーションデータを前記所定のメモリへ転送し、前記所定のメモリの書き込み制御を行うメモリコントロール部に、転送された前記コンフィグレーションデータを前記所定のメモリへ書き込む処理を開始させ、
前記所定のメモリに格納されたコンフィグレーションデータを前記ＦＰＧＡに書き込んで、前記コンフィグレーションされた状態と同じ状態に前記ＦＰＧＡをコンフィグレーションする、ＦＰＧＡコンフィグレーション方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＦＰＧＡ （Field Programmable Gate Array）のコンフィグレーションを行うＦＰＧＡコンフィグレーション装置や、このようなＦＰＧＡコンフィグレーション装置を搭載した回路基板、ＦＰＧＡコンフィグレーション装置によって内蔵するＦＰＧＡをコンフィグレーションする電子装置及びＦＰＧＡコンフィグレーション方法に関する。
【背景技術】
【０００２】
近年、論理回路を自由にプログラミングすることができるＦＰＧＡが広く用いられるようになってきている。ＦＰＧＡを搭載した装置は、電源投入時などに、所定のメモリに格納したコンフィグレーションデータをＦＰＧＡに書き込んで、ＦＰＧＡのコンフィグレーションを行うＦＰＧＡコンフィグレーション回路が搭載される。
このようなＦＰＧＡを搭載する装置の中には、メモリに格納したコンフィグレーションデータによってＦＰＧＡをコンフィグレーションするだけでなく、外部のコンフィグレーションデータ書込装置（以下「データ書込装置」と示す）を接続し、このデータ書込装置によってＦＰＧＡをコンフィグレーションできる装置がある。
【０００３】
図１は、外部に接続されたデータ書込装置によって内蔵するＦＰＧＡをコンフィグレーションできる電子装置の概略構成図である。電子装置１は、ＦＰＧＡ２、ＦＰＧＡコンフィグレーション装置３、メモリ４を備えている。ＦＰＧＡコンフィグレーション装置３は、電子装置１の電源投入時などに、メモリ４に格納されたコンフィグレーションデータをＦＰＧＡ２に書き込んでＦＰＧＡ２のコンフィグレーションをすることができる。また、電子装置１は、外部に接続されたデータ書込装置１００からもＦＰＧＡ２のコンフィグレーションをすることができるように構成される。
【０００４】
データ書込装置１００からＦＰＧＡ２のコンフィグレーションを行うとき、ＦＰＧＡコンフィグレーション装置３は、ＦＰＧＡ２のコンフィグレーションと平行して、データ書込装置１００がＦＰＧＡ２へ書き込むコンフィグレーションデータを、新たなコンフィグレーションデータとしてメモリ４に格納する。そして例えば次回の電源投入時などに、ＦＰＧＡコンフィグレーション装置３は、新たに格納されたコンフィグレーションデータによってＦＰＧＡ２のコンフィグレーションを行う。
【０００５】
下記特許文献１には、コンフィギュアラブルコア、コンフィギュレーションデータ格納メモリ、コンフィギュレーション制御部、及びメモリ制御部を有する回路が開示されている。
下記特許文献２には、内部コンフィグレーションＲＡＭにコンフィグレーションデータを格納し、このＲＡＭからＦＰＧＡへコンフィグレーションデータをダウンロードする技術が開示されている。
下記特許文献３には、不揮発性メモリにコンフィグレーションデータを格納し、ＦＰＧＡのコンフィグレーション時に、不揮発性メモリからコンフィグレーションデータを読み込みＦＰＧＡに出力する技術が開示されている。
【０００６】
【特許文献１】特開２００７−２１８９９１号公報
【特許文献２】特開平８−７６９７４号公報
【特許文献３】特開２００３−４４３０３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
電子装置１の外部に接続するデータ書込装置１００によってＦＰＧＡ２のコンフィグレーションを行う場合、データ書込装置１００がＦＰＧＡ２へデータを転送するデータ転送速度よりもＦＰＧＡコンフィグレーション装置３からメモリ４へデータを転送できるデータ書込速度の方が早い必要がある。このため、ＦＰＧＡコンフィグレーション装置３の構成やメモリ４に使用するデバイスの選択は上記条件を満足するように行われており、上記条件は電子装置１の回路設計上の制約になっている。
【０００８】
開示の装置及び方法は、ＦＰＧＡを搭載した電子装置を、その外部のデータ書込装置によってＦＰＧＡのコンフィグレーションを行えるように構成し、データ書込装置からＦＰＧＡに書き込まれたコンフィグレーションデータをメモリに保存する場合における、上述の問題を解消することを目的とする。
【課題を解決するための手段】
【０００９】
上記問題を解決するために、開示の装置及び方法では、コンフィグレーションデータをメモリに格納するとき、コンフィグレーションされたＦＰＧＡからコンフィグレーションデータを読み出してメモリに格納する。
【発明の効果】
【００１０】
開示の装置及び方法によれば、必ずしも、外部のデータ書込装置がＦＰＧＡのコンフィグレーションを行う際のデータ転送速度よりも、メモリへ転送するデータ転送速度の方が早くなくともよいので、ＦＰＧＡコンフィグレーション装置とメモリとの間のデータ転送速度に関する上述した制約を回避することができる。
【発明を実施するための最良の形態】
【００１１】
以下、添付する図面を参照して実施例を説明する。図２は、開示の電子装置１の実施例の概略構成図である。電子装置１は、電子装置１にて行われる処理を実行するＦＰＧＡ２と、電子装置１の電源投入時や外部からの指示があったときにＦＰＧＡ２のコンフィグレーションを行うＦＰＧＡコンフィグレーション装置３と、ＦＰＧＡ２のコンフィグレーションデータを格納するためのメモリ４と、メモリ４からのデータの読み出し処理及びメモリ４へのデータの書き込み処理を制御するメモリコントロール部５と、ＦＰＧＡコンフィグレーション装置３の動作を制御するＣＰＵ６を備える。例えばメモリ４は、フラッシュメモリ等の不揮発性メモリとしてよい。
また電子装置１は、外部に接続されたデータ書込装置１００からもＦＰＧＡ２のコンフィグレーションをすることができるように構成される。なお、ＦＰＧＡコンフィグレーション装置３は、ＦＰＧＡ２やメモリ４と同一の回路基板上に搭載されてもよく、異なる回路基板上に搭載されてもよい。
【００１２】
図３は、開示のＦＰＧＡコンフィグレーション装置３の第１構成例を示す概略構成図である。例えば、電子装置１の製造時にＦＰＧＡ２を外部のデータ書込装置１００によりコンフィグレーションするとき、データ書込装置１００がＦＰＧＡコンフィグレーション装置３に接続され、データ書込装置１００から出力されるコンフィグレーションデータをＦＰＧＡコンフィグレーション装置３で受信する。
【００１３】
図示するとおり、ＦＰＧＡコンフィグレーション装置３は、書込データ先頭検出部１０と、書込データ終了検出部１１と、コンフィグレーション状態制御部１２と、読出処理制御部１３と、読出データ先頭検出部１４と、読出データ終了検出部１５と、第１データ変換部１６と、第２データ変換部１７と、３：１セレクタ１８を備えている。
【００１４】
書込データ先頭検出部１０は、外部のデータ書込装置１００によりＦＰＧＡ２をコンフィグレーションするとき、データ書込装置１００から受信したコンフィグレーションデータの開始を検出し、コンフィグレーションデータの開始を示すトリガ信号を生成する。書込データ終了検出部１１は、データ書込装置１００から受信したコンフィグレーションデータの終了を検出し、コンフィグレーションデータの終了を示すトリガ信号を生成する。
【００１５】
コンフィグレーション状態制御部１２は、外部のデータ書込装置１００がＦＰＧＡコンフィグレーション装置３に接続されデータ書込装置１００によりＦＰＧＡ２をコンフィグレーションするのか、それともメモリ４に格納されているコンフィグレーションデータによりＦＰＧＡ２をコンフィグレーションするのかに応じて、３：１セレクタ１８を切り替えてＦＰＧＡ２へ出力するコンフィグレーションデータとその書き込み制御信号の供給元を切り替える。
またコンフィグレーション状態制御部１２は、書込データ終了検出部１１によりデータ書込装置１００から受信したコンフィグレーションデータの終了を検出したとき、ＦＰＧＡ２からコンフィグレーションデータを読み出す制御を後述の読出処理制御部１３に開始させ、読出処理制御部１３からの制御信号をＦＰＧＡ２へ出力するべく３：１セレクタ１８を切り替える。そして読み出されたコンフィグレーションデータをメモリ４に書き込む処理をメモリコントロール部５に開始させる。
【００１６】
読出処理制御部１３は、データ書込装置１００によるＦＰＧＡ２のコンフィグレーションが終了した後に、ＦＰＧＡ２からコンフィグレーションデータを読み出すための読出クロック信号を生成することにより、ＦＰＧＡ２からのコンフィグレーションデータの読出処理を制御する。
第１データ変換部１６は、ＦＰＧＡ２から受信したコンフィグレーションデータをメモリ４へ書き込むデータフォーマットに変換してメモリ４へ転送する。
読出処理制御部１３及び第１データ変換部１６によるＦＰＧＡ２からのコンフィグレーションデータの読み出し処理及びメモリ４への転送処理は、メモリコントロール部５により生成されるメモリ４への書き込みデータのフロー制御信号に基づいて行われ、メモリ４へデータを書き込み可能な場合にコンフィグレーションデータをメモリ４へ転送し、メモリ４へデータを書き込みできない場合には転送を停止する。フロー制御信号に基づくコンフィグレーションデータの読出制御の詳細は後述する。
【００１７】
読出データ先頭検出部１４は、読出クロック信号によってＦＰＧＡ２から読み出されたコンフィグレーションデータの先頭を検出し、コンフィグレーションデータの先頭を示すトリガ信号を生成する。読出データ終了検出部１５は、ＦＰＧＡ２から読み出されたコンフィグレーションデータの終了を検出し、コンフィグレーションデータの終了を検出を示すトリガ信号を生成する。
第２データ変換部１７は、メモリ４に格納されているコンフィグレーションデータによりＦＰＧＡ２をコンフィグレーションするときに、メモリ４から読み出したコンフィグレーションデータをＦＰＧＡ２へ書き込むデータフォーマットに変換する。
３：１セレクタ１８は、コンフィグレーション状態制御部１２からのセレクト信号に従って、ＦＰＧＡ２へ出力するコンフィグレーションデータ及び／又はその書き込み制御信号の供給元を切り替える。
【００１８】
図４は、図３のＦＰＧＡコンフィグレーション装置３によるコンフィグレーション方法を示すフローチャート（その１）であり、図５は図４に示すコンフィグレーション実行ルーチンＳ２のフローチャートであり、図６は図４に示すメモリ書き込みルーチンＳ８のフローチャートである。図４に示すコンフィグレーション方法では、データ書込装置１００がＦＰＧＡコンフィグレーション装置３に接続され、データ書込装置１００によりＦＰＧＡ２のコンフィグレーションが行われる。
【００１９】
ステップＳ１において、データ書込装置１００内の書込処理部１０１から送信されたコンフィグレーションデータ及び書込制御信号がＦＰＧＡコンフィグレーション装置３で受信されると、書込データ先頭検出部１０は、受信したコンフィグレーションデータの先頭位置を検出する。コンフィグレーション状態制御部１２は、書込データ先頭検出部１０がコンフィグレーションデータを検出したタイミングに基づいて、受信するコンフィグレーションデータの位相を決定する。
【００２０】
ステップＳ２において、データ書込装置１００によるＦＰＧＡ２のコンフィグレーションが行われる。図５に示すステップＳ１０にて、コンフィグレーション状態制御部１２は、決定されたコンフィグレーションデータの位相に基づいて、３：１セレクタ１８を操作することにより、ＦＰＧＡ２へ出力するコンフィグレーションデータの供給元をデータ書込装置１００に切り替える。ステップＳ１１においてデータ書込装置１００の書込処理部１０１がＦＰＧＡ２のコンフィグレーションを実行する。書込データ終了検出部１１によりコンフィグレーションデータの終了が検出されるまでステップＳ２が繰り返される。
【００２１】
図４のステップＳ３において、書込データ終了検出部１１がデータ書込装置１００から受信するコンフィグレーションデータの終了を検出すると、コンフィグレーション状態制御部１２は、データ書込装置１００によるＦＰＧＡ２のコンフィグレーションが終了したと判断して、処理をステップＳ４に移行する。
ステップＳ４においてコンフィグレーション状態制御部１２は、３：１セレクタ１８を操作することにより、ＦＰＧＡ２へ出力する制御信号の供給元を読出処理制御部１３に切り替える。
【００２２】
ステップＳ５においてコンフィグレーション状態制御部１２は、ＦＰＧＡ２からコンフィグレーションデータを読み出すための読出制御信号を読出処理制御部１３に生成させる。読出制御信号は３：１セレクタ１８を介してＦＰＧＡ２に供給され、ＦＰＧＡ２からのコンフィグレーションデータの読み出し処理が開始する（Ｓ６）。
ステップＳ７において、読出データ先頭検出部１４は、ＦＰＧＡ２から読み出したコンフィグレーションデータの先頭位置を検出する。
【００２３】
コンフィグレーション状態制御部１２は、読出データ先頭検出部１４がコンフィグレーションデータを検出したタイミングに基づいて、受信するコンフィグレーションデータの位相を決定する。コンフィグレーションデータの位相を決定したコンフィグレーション状態制御部１２は、第１データ変換部１６に、ＦＰＧＡ２から読み出されたコンフィグレーションデータをメモリ４に書き込みに適したフォーマットに変換するように指示を行う。またコンフィグレーション状態制御部１２は、第１データ変換部１６から出力されるコンフィグレーションをメモリ４に書き込むように、メモリコントロール部５へ指示を行う。
【００２４】
ステップＳ８において、ＦＰＧＡ２から読み出されたコンフィグレーションデータがメモリ４に格納される。
図６のステップＳ２０においてコンフィグレーション状態制御部１２は、決定されたコンフィグレーションデータの位相に基づいて、３：１セレクタ１８を操作することにより、ＦＰＧＡ２へ出力する制御信号の供給元を読出処理制御部１３に切り替える。
【００２５】
ステップＳ２１において、コンフィグレーション状態制御部１２は、ＦＰＧＡ２からコンフィグレーションデータを読み出すための読出制御信号を読出処理制御部１３に生成させる。
読出制御信号は３：１セレクタ１８を介してＦＰＧＡ２に供給され、ステップＳ２２において、ＦＰＧＡ２からコンフィグレーションデータが読み出される。
ステップＳ２３において第１データ変換部１６は、ＦＰＧＡ２から読み出されたコンフィグレーションデータを書き込みに適したフォーマットに変換する。
ステップＳ２４において、第１データ変換部１６は、変換されたコンフィグレーションデータをメモリ４へ転送し、コンフィグレーションデータがメモリ４へ格納される。
【００２６】
図７は、読出処理制御部１３と第１データ変換部１６の構成例を示す概略構成図である。読出処理制御部１３及び第１データ変換部１６は、様々なデータ転送速度を有するデバイスをメモリ４に使用できるようにするために、メモリコントロール部５によるメモリ４の書き込みフロー制御に従って、ＦＰＧＡ２から読み出されたコンフィグレーションデータをメモリ４へ転送する。
図示するとおり、読出処理制御部１３は、読出指示受信部２０と、読出イネーブル生成部２１と、分周器２２とを備える。
一方で、第１データ変換部１６は、コンフィグレーションデータ検出部２３と、シフトレジスタ２４と、分周器２５と、ＦＩＦＯ（先入れ先出し）メモリ２６（以下「ＦＩＦＯ」と記す）とを備えている。
【００２７】
読出処理制御部１３の読出指示受信部２０は、ＦＰＧＡ２からコンフィグレーションデータを読み出す処理を行う読出指示信号をコンフィグレーション状態制御部１２から受信する。
読出イネーブル生成部２１は、読出指示受信部２０が受信した読出指示信号を、ＦＰＧＡ２へ出力する読出イネーブル信号として３：１セレクタ１８へ出力する。
分周器２２には、第１データ変換部１６のＦＩＦＯ２６から出力されるSatisfied信号を否定した信号と読出指示受信部２０が受信した読出指示信号との論理積信号が入力される。分周器２２は、論理積信号の値が「真」である期間において交番し「偽」である期間にはエッジが発生しないクロック信号を生成し、ＦＰＧＡ２へ出力する読出クロック信号として３：１セレクタ１８へ出力する。ＦＩＦＯ２６のSatisfied信号については後述する。
【００２８】
第１データ変換部１６のコンフィグレーションデータ検出部２３は、読出データ先頭検出部１４と読出データ終了検出部１５の検出結果に基づいて、ＦＰＧＡ２からコンフィグレーションデータが出力されていることを検出する。
シフトレジスタ２４は、分周器２２による読出クロック信号にしたがって、ＦＰＧＡ２から読み出されたコンフィグレーションデータをラッチし、またラッチしたデータ内容をシフトさせることにより、コンフィグレーションデータをシリアルパラレル変換してＦＩＦＯ２６へ出力する。
【００２９】
分周器２５は、分周器２２から出力される読出クロック信号を分周して、シフトレジスタ２４の出力データをＦＩＦＯ２６へ取り込む取り込みタイミング信号ＴＰを生成し、ＦＩＦＯ２６の書き込みイネーブル端子ＷＥに出力する。このとき、分周器２５は、Ｌｏａｄ端子に入力される読出データ先頭検出部１４の検出タイミングに基づいてコンフィグレーションデータのバイト毎の区切りを決定し、コンフィグレーションデータの各バイトに含まれる１〜８ビットの信号が、シフトレジスタ２４のデータ出力バスから出力されるタイミングで、タイミング信号ＴＰを出力する。
【００３０】
ＦＩＦＯ２６は、読み出しイネーブルＲＥがアサートされる間、入力端子から入力されたコンフィグレーションデータを入力された順序で出力端子から出力する。メモリ４への書き込み禁止を示すメモリコントロール部５からフロー制御信号の論理否定によって読み出しイネーブルＲＥをアサートすることによって、メモリ４へのデータ書き込みができる間だけＦＩＦＯ２６からコンフィグレーションデータを出力し、メモリ４へのデータ書き込みができない期間ではコンフィグレーションデータの出力を停止する。
ＦＩＦＯ２６は、データ出力速度よりデータ入力速度の方が早い等の理由によって全ての記憶領域を使い果たしたときは、Satisfied信号を論理値「真」にアサートする。このため、分周器２２はＦＩＦＯ２６の記憶領域を使い果たされている間は、読出クロック信号にエッジが発生しないので、ＦＩＦＯ２６のオーバーフローが防止される。
【００３１】
図８〜図１０は、図７の回路の各部（ａ）〜における信号のタイムチャートである。各図８〜図１０において、信号（ａ）は読出指示受信部２０で受信される読出指示信号であり、信号（ｂ）はＦＩＦＯ２６から出力されるSatisfied信号であり、信号（ｃ）は分周器２２に入力される上記の論理積信号であり、信号（ｄ）は読出イネーブル信号であり、信号（ｅ）は読出クロック信号である。
【００３２】
また、信号（ｆ）はＦＰＧＡ２から読み出されるシリアル形式のコンフィグレーションデータであり、信号（ｇ）は読出データ先頭検出部１４から出力されるトリガ信号であり、信号（ｈ）は読出データ終了検出部１５から出力されるトリガ信号であり、信号（ｉ）はコンフィグレーションデータ検出部２３の出力信号であり、信号（ｊ）〜（ｑ）はシフトレジスタ２４から出力される８つの各ビット信号である。
【００３３】
信号（ｒ）は分周器２５から出力されるタイミング信号ＴＰであり、信号（ｓ）はメモリコントロール部５からのフロー制御信号であり、信号（ｔ）はＦＩＦＯ２６からメモリ４へ出力されるパラレル形式のコンフィグレーションデータである。
【００３４】
図８は、コンフィグレーションデータの読み出し開始における各信号のタイムチャートである。図において信号（ｂ）及び（ｈ）は値「偽」のままである。
データ書込装置１００によるＦＰＧＡ２のコンフィグレーションが終了して、コンフィグレーション状態制御部１２からの読出指示信号（ａ）がアサートされると、読出イネーブル信号（ｄ）がアサートされ、読出クロック（ｅ）が供給され、ＦＰＧＡ２からシリアル形式のコンフィグレーションデータ（ｆ）の読み出しが開始される。
【００３５】
読出データ先頭検出部１４は、コンフィグレーションデータ（ｆ）に含まれる同期バイト（「０−１」〜「０−８」）を受信するとパルス信号（ｇ）を出力する。コンフィグレーションデータ検出部２３は、出力論理値（ｉ）をアサートしてコンフィグレーションデータを読み出し中であることを示す。
【００３６】
シフトレジスタ２４は、コンフィグレーションデータ検出部２３の出力論理値（ｉ）によってイネーブル状態になり、シリアル形式のコンフィグレーションデータ（ｆ）をパラレル形式のデータ変換した各ビット信号（ｊ）〜（ｑ）を出力する。分周器２５はＬｏａｄ端子に入力される読出データ先頭検出部１４のトリガ信号（ｇ）のパルスタイミングに基づいて、コンフィグレーションデータの第１バイトに含まれる１〜８ビットの信号（「１ー１」〜「１−８」）が、シフトレジスタ２４のデータ出力バス（ｊ）〜（ｑ）から出力されるタイミングで、タイミング信号ＴＰ（ｒ）を出力する。
ＦＩＦＯ２６からはパラレルデータへ変換されたコンフィグレーションデータ（ｔ）が出力すると、フロー制御信号（ｓ）はメモリ４へのデータ書き込み準備ができるまでの間アサートされ、その間ＦＩＦＯ２６からデータの読み出しが禁止される。
【００３７】
図９は、コンフィグレーションデータの読み出し開始における各信号のタイムチャートである。図において信号（ｂ）及び（ｇ）は値「偽」のままである。
読出データ終了検出部１５は、コンフィグレーションデータ（ｆ）の末尾（「ｚ−１」〜「ｚ−８」）を検出するとパルス信号（ｈ）を出力する。コンフィグレーションデータ検出部２３は、出力論理値（ｉ）をアサートを停止してコンフィグレーションデータの読み出しが完了したことを示す。
また、読出データ終了検出部１５のパルス信号（ｈ）によって、コンフィグレーション状態制御部１２からの読出指示信号（ａ）のアサートが停止され、これに伴って読出イネーブル信号（ｄ）のアサートが停止され、読出クロック（ｅ）の供給が停止し、コンフィグレーションデータ（ｆ）の読み出しを停止する。
【００３８】
図９は、コンフィグレーションデータの読み出し途中においてＦＩＦＯ２６のSatisfied信号がアサートされた場合の各信号のタイムチャートである。図において信号（ａ）、（ｄ）及び（ｉ）は値「真」のままであり、信号（ｇ）及び（ｈ）は値「偽」のままである。ＦＩＦＯ２６のSatisfied信号（ｂ）がアサートされると、分周器２２の入力（ｃ）の論理値が値「偽」になることによって読出クロック（ｅ）が交番しなくなり、このため、読出クロック（ｅ）のエッジに同期して読み出されるコンフィグレーションデータ（ｆ）の読み出しが停止する。また、シフトレジスタ２４は、読み出しクロック（ｅ）によるコンフィグレーションデータのラッチ及びシフトを停止し、これによってシフトレジスタ２４の各ビット信号（ｊ）〜（ｑ）が保持される。
【００３９】
図４のステップＳ９において、読出データ終了検出部１５がＦＰＧＡ２から読み出されたコンフィグレーションデータの終了を検出する。コンフィグレーション状態制御部１２は、ＦＰＧＡ２からのコンフィグレーションデータの読み出しが完了したと判断して、処理を終了する。
【００４０】
なお図３に示す構成において、第１データ変換部１６は、読出データ先頭検出部１４及び読出データ終了検出部１５の検出信号を入力しているが、ＦＰＧＡ２から読み出したコンフィグレーションデータの位相及び終了が特定できる信号であれば、他の信号を、読出データ先頭検出部１４及び読出データ終了検出部１５の検出信号の代わりに第１データ変換部１６に入力してもよい。例えば、コンフィグレーションデータの位相及び終了が特定できる信号をコンフィグレーション状態制御部１２から供給してもよい。以下の他の実施例でも同様である。
また、第１データ変換部１６に、読出データ終了検出部１５の検出信号を入力しているが、コンフィグレーションデータの長さが予め判っているなど、コンフィグレーションデータの末尾を検出しなくても末尾位置が決定可能な場合は、読出データ終了検出部１５を省いてもよい。以下の他の実施例でも同様である。
【００４１】
また、コンフィグレーション状態制御部１２に、書込データ終了検出部１１及び読出データ終了検出部１５の検出信号を入力しているが、コンフィグレーションデータの長さが予め判っているなど、コンフィグレーションデータの末尾を検出しなくても末尾位置が決定可能な場合は、書込データ終了検出部１１及び読出データ終了検出部１５を省いてもよい。以下の他の実施例でも同様である。
【００４２】
また、読出処理制御部１３は読出クロックの生成及び停止を制御するために、第１データ変換部１６のＦＩＦＯ２６のSatisfied信号を入力するが、Satisfied信号の代わりに、メモリコントロール部５によるフロー制御信号によって読出クロックの生成及び停止を制御してもよく、また上記Satisfied信号やメモリコントロール部５によるフロー制御信号と同様の信号をコンフィグレーション状態制御部１２で生成して供給してもよい。以下の他の実施例でも同様である。
【００４３】
なお図３に示す構成では、書込データ先頭検出部１０と読出データ先頭検出部１４とを別々に設け、また書込データ終了検出部１１と読出データ終了検出部１５とを別々に設けているが、これらは同じコンフィグレーションデータの先頭と末尾を検出するものであるため、書込データ先頭検出部１０と読出データ先頭検出部１４とを同一の回路で構成し、書込データ終了検出部１１と読出データ終了検出部１５とを同一の回路で構成してもよい。以下の他の実施例でも同様である。
【００４４】
図１１は、図３のＦＰＧＡコンフィグレーション装置３によるコンフィグレーション方法を示すフローチャート（その２）である。図１１に示すコンフィグレーション方法では、データ書込装置１００がＦＰＧＡコンフィグレーション装置３に接続されず、ＦＰＧＡコンフィグレーション装置３は、メモリ４に格納されたコンフィグレーションデータによってＦＰＧＡ２のコンフィグレーションを行う。
【００４５】
電子装置１の電源投入時又は外部からの指示あったとき、ステップＳ３０においてコンフィグレーション状態制御部１２は、メモリコントロール部５に、メモリ４からのコンフィグレーションデータの読み出し制御を実行させる。
ステップＳ３１において第２データ変換部１７は、メモリ４から読み出したコンフィグレーションデータを、ＦＰＧＡ２に書き込めるフォーマットに変換し、変換したコンフィグレーションデータをＦＰＧＡ２へ書き込む書込制御信号を生成する。
【００４６】
ステップＳ３２においてコンフィグレーション状態制御部１２は、３：１セレクタ１８を操作することにより、ＦＰＧＡ２へ出力するコンフィグレーションデータと書込制御信号の供給元を第２データ変換部１７に切り替える。
ステップＳ３３において、コンフィグレーションデータと書込制御信号がＦＰＧＡ２に出力され、コンフィグレーションが実行される。メモリ４に格納されたコンフィグレーションデータの書き込みが終了するまで、以上ステップＳ３０〜Ｓ３３が繰り返される。
【００４７】
図１２は、開示のＦＰＧＡコンフィグレーション装置３の第２構成例を示す概略構成図である。図１２に示すＦＰＧＡコンフィグレーション装置３は、図３を参照して説明したＦＰＧＡコンフィグレーション装置３と類似する構成を有しており、同一の構成要素には同一の参照符号を付して説明を省略する。
本構成例では、ＦＰＧＡコンフィグレーション装置３はＦＰＧＡ２から読み出したコンフィグレーションデータの正常性を判定する正常性判定部３１と、正常性判定部３１による判定結果を保持する判定結果保持部３２を備える。
【００４８】
本構成例における正常性判定部３１は、読出データ先頭検出部１４と読出データ終了検出部１５による検出結果に基づいてＦＰＧＡ２から読み出したコンフィグレーションデータの先頭と末尾を判定して、コンフィグレーションデータの誤り検出符号を算出し、これをＦＰＧＡ２から読み出したコンフィグレーションデータに含まれている誤り検出符号と比較することによって、ＦＰＧＡ２から読み出したコンフィグレーションデータの正常性を判定する。誤り検出符号は、例えばパリティ符号や巡回冗長検査（CRC:Cyclic Redundancy Checking）符号であってよい。以下の他の実施例でも同様である。
データ書込装置１００は、検出符号演算部１０２によって書込処理部１０１から出力するコンフィグレーションデータの誤り検出符号を演算し、合成部１０３によって誤り検出符号をコンフィグレーションデータに合成してから、ＦＰＧＡコンフィグレーション装置３に出力する。
【００４９】
ＦＰＧＡコンフィグレーション装置３の動作を制御する図２に記載のＣＰＵ６は、判定結果保持部３２に保持された正常性判定結果に従って、ＦＰＧＡ２から読み出されメモリ４に保持されたコンフィグレーションデータが正常の時に、このコンフィグレーションデータによるコンフィグレーションをＦＰＧＡコンフィグレーション装置３に許可し、コンフィグレーションデータが正常でない場合には、このコンフィグレーションデータによるコンフィグレーションをＦＰＧＡコンフィグレーション装置３に禁止してもよい。以下に示す判定結果保持部３２を有する他の実施例でも同様である。
【００５０】
図１３は図１２のＦＰＧＡコンフィグレーション装置３によるコンフィグレーション方法を示すフローチャートであり、図１４は、図１３に示すメモリ書き込みルーチンＳ４０のフローチャートである。
【００５１】
ステップＳ１〜ステップＳ３では、図４に示すステップＳ１〜Ｓ３と同様にＦＰＧＡ２のコンフィグレーションを行う。ステップＳ４〜Ｓ７では、図４に示すステップＳ４〜Ｓ７と同様に、ＦＰＧＡ２からコンフィグレーションデータの読み出しを開始して、コンフィグレーションデータの先頭を検出する。その後の処理は図１４に示すメモリ書き込みルーチンＳ４０へ移る。
【００５２】
ステップＳ２０〜Ｓ２３において、図６に示すステップＳ２０〜Ｓ２３と同様にＦＰＧＡ２からコンフィグレーションデータを読み込んで、メモリ４への書き込みに適したフォーマットに変換する。
続くステップＳ４３では、正常性判定部３１は、ＦＰＧＡ２から読み出したコンフィグレーションデータの誤り検出符号を算出する。
ステップＳ２４において、第１データ変換部１６は、変換されたコンフィグレーションデータをメモリ４へ転送し、コンフィグレーションデータがメモリ４へ格納される。
【００５３】
図１３に示すステップＳ９では、読出データ終了検出部１５がＦＰＧＡ２から読み出されたコンフィグレーションデータの終了を検出する。コンフィグレーションデータが終了した場合には処理がＳ４１に移り、終了していない場合にはステップＳ４０を繰り返す。
ステップＳ４１において正常性判定部３１は、算出した誤り検出符号と、ＦＰＧＡ２から読み出したコンフィグレーションデータに含まれている誤り検出符号と比較して、ＦＰＧＡ２から読み出したコンフィグレーションデータの正常性を判定する。
ステップＳ４２において正常性判定部３１は、判定結果を判定結果保持部３２に保持する。
【００５４】
なお図１２に示す構成において、正常性判定部３１は、読出データ先頭検出部１４及び読出データ終了検出部１５の検出信号を入力しているが、ＦＰＧＡ２から読み出したコンフィグレーションデータの位相及び終了が特定できる信号であれば、他の信号を、読出データ先頭検出部１４及び読出データ終了検出部１５の検出信号の代わりに正常性判定部３１に入力してもよい。例えば、コンフィグレーションデータの位相及び終了が特定できる信号をコンフィグレーション状態制御部１２から供給してもよい。以下の他の実施例でも同様である。
また、正常性判定部３１に、読出データ終了検出部１５の検出信号を入力しているが、コンフィグレーションデータの長さが予め判っているなど、コンフィグレーションデータの末尾を検出しなくても末尾位置が決定可能な場合は、読出データ終了検出部１５を省いてもよい。以下の他の実施例でも同様である。
【００５５】
図１５は、開示のＦＰＧＡコンフィグレーション装置３の第３構成例を示す概略構成図である。図１５に示すＦＰＧＡコンフィグレーション装置３は、図１２を参照して説明したＦＰＧＡコンフィグレーション装置３と類似する構成を有しており、同一の構成要素には同一の参照符号を付して説明を省略する。
本構成例では、コンフィグレーション状態制御部１２は、判定結果保持部３２に保持された、正常性判定部３１による判定結果に従って、メモリ４に記憶されたコンフィグレーションデータが正常でない場合に、これを無効にする処理を行う。
【００５６】
メモリ４に記憶されたコンフィグレーションデータを無効にする処理には、メモリ４に記憶されたコンフィグレーションデータを消去する処理が含まれる。図１６は、図１５のＦＰＧＡコンフィグレーション装置３によるコンフィグレーション方法を示すフローチャートである。
ステップＳ１〜ステップＳ４２までの処理は、図１３を参照して説明したステップＳ１〜Ｓ４２までの処理と同じであるため説明を省略する。
ステップＳ４４において、コンフィグレーション状態制御部１２は、判定結果保持部３２に保持された、正常性判定部３１による判定結果を参照して、メモリ４に記憶されたコンフィグレーションデータが正常であるか否かを判定する。正常である場合には処理を終了し、正常でない場合にはステップＳ４５においてメモリ４に記憶されたコンフィグレーションデータを消去する。
【００５７】
メモリ４に記憶されたコンフィグレーションデータを無効にする処理には、コンフィグレーション状態制御部１２が判定結果保持部３２を参照して、又は判定結果保持部３２に保持される判定結果の内容をコンフィグレーション状態制御部１２に設けたフリップフロップに記憶して、メモリ４に記憶されたコンフィグレーションデータでＦＰＧＡ２のコンフィグレーションを禁止する処理も含まれる。後に説明するＦＰＧＡコンフィグレーション装置３の第４及び第５構成例でも同様である。
【００５８】
図１７は、正常性判定結果に応じてコンフィグレーションを禁止するコンフィグレーション方法を示すフローチャートである。図１７に示すコンフィグレーション方法では、データ書込装置１００がＦＰＧＡコンフィグレーション装置３に接続されず、ＦＰＧＡコンフィグレーション装置３は、メモリ４に格納されたコンフィグレーションデータによってＦＰＧＡ２のコンフィグレーションを行う。
【００５９】
電子装置１の電源投入時又は外部からの指示あったとき、ステップＳ４６においてコンフィグレーション状態制御部１２は、判定結果保持部３２を参照して、又はコンフィグレーション状態制御部１２に設けたフリップフロップに保持された、正常性判定部３１による判定結果を参照して、メモリ４に記憶されたコンフィグレーションデータが正常であるか否かを判定する。正常である場合には図１１を参照して説明したＳ３０〜Ｓ３４と同様にＦＰＧＡ２のコンフィグレーションを行い、正常でない場合にはＦＰＧＡ２のコンフィグレーションを中止して処理を終了する。
【００６０】
図１８は、開示のＦＰＧＡコンフィグレーション装置３の第４構成例を示す概略構成図である。図１８に示すＦＰＧＡコンフィグレーション装置３は、図３を参照して説明したＦＰＧＡコンフィグレーション装置３と類似する構成を有しており、同一の構成要素には同一の参照符号を付して説明を省略する。
【００６１】
本構成例では、ＦＰＧＡコンフィグレーション装置３は、外部のデータ書込装置１００によりＦＰＧＡ２をコンフィグレーションするとき、データ書込装置１００から受信したコンフィグレーションデータの誤り検出符号を算出する第１誤り検出符号演算部３３と、第１誤り検出符号演算部３３が算出した誤り検出符号を保持する誤り検出符号保持部３４と、ＦＰＧＡ２から読み出したコンフィグレーションデータの誤り検出符号を算出する第２誤り検出符号演算部３５と、誤り検出符号保持部３４に保持された誤り検出符号と第２誤り検出符号演算部３５が算出した誤り検出符号とを比較することにより、ＦＰＧＡ２から読み出したコンフィグレーションデータの正常性を判定する正常性判定部３１と、正常性判定部３１による判定結果を保持する判定結果保持部３２を備える。
【００６２】
第１誤り検出符号演算部３３は、書込データ先頭検出部１０と書込データ終了検出部１１による検出結果に基づいてデータ書込装置１００から受信したコンフィグレーションデータの先頭と末尾を判定して、コンフィグレーションデータの誤り検出符号を算出する。
第２誤り検出符号演算部３５は、読出データ先頭検出部１４と読出データ終了検出部１５による検出結果に基づいてＦＰＧＡ２から読み出したコンフィグレーションデータの先頭と末尾を判定して、コンフィグレーションデータの誤り検出符号を算出する。
正常性判定部３１は、例えば誤り検出符号保持部３４に保持された誤り検出符号と第２誤り検出符号演算部３５が算出した誤り検出符号とが等しいときＦＰＧＡ２から読み出したコンフィグレーションデータの正常と判定し、これら誤り検出符号が相違するとき正常でないと判定する。
【００６３】
図１９は、図１８のＦＰＧＡコンフィグレーション装置３によるコンフィグレーション方法を示すフローチャートであり、図１９に示すコンフィグレーション実行ルーチンＳ５０のフローチャートである。
ステップＳ１では、図４に示すステップＳ１と同様にデータ書込装置１００送信されたコンフィグレーションデータの先頭位置を検出し、コンフィグレーションデータの位相を決定する。
その後、図２０のステップＳ１０及びＳ１１では、図５に示すステップＳ１０及びＳ１１と同様に３：１セレクタ１８を操作し、ＦＰＧＡ２のコンフィグレーションを実行する。ステップＳ５１では、第１誤り検出符号演算部３３がコンフィグレーションデータの誤り検出符号を算出する。
【００６４】
図１９に示すステップＳ３において、書込データ終了検出部１１がデータ書込装置１００から受信するコンフィグレーションデータの終了を検出すると、誤り検出符号保持部３４は、第１誤り検出符号演算部３３が算出した誤り検出符号を保持する（ステップＳ５２）。
ステップＳ４〜Ｓ９において、図１６に示すステップＳ４〜Ｓ９と同様に、コンフィグレーションデータをメモリ４に格納する。ただし図１４に示すステップＳ４３における誤り検出符号の演算は、第２誤り検出符号演算部３５が行う。
【００６５】
ステップＳ４１〜Ｓ４５において、図１６に示すステップＳ４１〜Ｓ４５と同様に、メモリ４に格納されたコンフィグレーションデータの正常性判定を行い、コンフィグレーションデータが正常でない場合には、これを無効化する処理を行う。ただし、ステップＳ４１において正常性判定部３１は、誤り検出符号保持部３４に保持された誤り検出符号と第２誤り検出符号演算部３５が算出した誤り検出符号とが等しいときＦＰＧＡ２から読み出したコンフィグレーションデータの正常と判定し、これら誤り検出符号が相違するとき正常でないと判定する。
【００６６】
なお図１８に示す構成において、第１誤り検出符号演算部３３は、書込データ先頭検出部１０及び書込データ終了検出部１１の検出信号を入力しているが、データ書込装置１００から受信したコンフィグレーションデータの位相及び終了が特定できる信号であれば、他の信号を、書込データ先頭検出部１０及び書込データ終了検出部１１の検出信号の代わりに第１誤り検出符号演算部３３に入力してもよい。例えば、コンフィグレーションデータの位相及び終了が特定できる信号をコンフィグレーション状態制御部１２から供給してもよい。以下の他の実施例でも同様である。
また、第１誤り検出符号演算部３３に、書込データ終了検出部１１の検出信号を入力しているが、コンフィグレーションデータの長さが予め判っているなど、コンフィグレーションデータの末尾を検出しなくても末尾位置が決定可能な場合は、書込データ終了検出部１１を省いてもよい。以下の他の実施例でも同様である。
【００６７】
第２誤り検出符号演算部３５は、読出データ先頭検出部１４及び読出データ終了検出部１５の検出信号を入力しているが、ＦＰＧＡ２から読み出したコンフィグレーションデータの位相及び終了が特定できる信号であれば、他の信号を、読出データ先頭検出部１４及び読出データ終了検出部１５の検出信号の代わりに第２誤り検出符号演算部３５に入力してもよい。例えば、コンフィグレーションデータの位相及び終了が特定できる信号をコンフィグレーション状態制御部１２から供給してもよい。以下の他の実施例でも同様である。
また、第２誤り検出符号演算部３５に、読出データ終了検出部１５の検出信号を入力しているが、コンフィグレーションデータの長さが予め判っているなど、コンフィグレーションデータの末尾を検出しなくても末尾位置が決定可能な場合は、読出データ終了検出部１５を省いてもよい。以下の他の実施例でも同様である。
【００６８】
図２１は、開示のＦＰＧＡコンフィグレーション装置３の第５構成例を示す概略構成図である。図２１に示すＦＰＧＡコンフィグレーション装置３は、図３を参照して説明したＦＰＧＡコンフィグレーション装置３と類似する構成を有しており、同一の構成要素には同一の参照符号を付して説明を省略する。
【００６９】
本構成例では、ＦＰＧＡコンフィグレーション装置３は、外部のデータ書込装置１００によりＦＰＧＡ２をコンフィグレーションするとき、データ書込装置１００から受信したコンフィグレーションデータの一部をサンプルとして抽出する第１サンプル抽出部３６と、第１サンプル抽出部３６が抽出したサンプルを保持する第１サンプル保持部３７と、ＦＰＧＡ２から読み出したコンフィグレーションデータの一部をサンプルとして抽出する第２サンプル抽出部３８と、第１サンプル保持部３７に保持されたサンプルと第２サンプル抽出部３８が抽出したサンプルとを比較することにより、ＦＰＧＡ２から読み出したコンフィグレーションデータの正常性を判定する正常性判定部３１と、正常性判定部３１による判定結果を保持する判定結果保持部３２を備える。
【００７０】
第１サンプル抽出部３６は、書込データ先頭検出部１０と書込データ終了検出部１１による検出結果に基づいてデータ書込装置１００から受信したコンフィグレーションデータの先頭及び／又は末尾を判定して、コンフィグレーションデータの所定の位置のデータをサンプルとして抽出する。
第２サンプル抽出部３８は、読出データ先頭検出部１４と読出データ終了検出部１５による検出結果に基づいてＦＰＧＡ２から読み出したコンフィグレーションデータの先頭及び／又は末尾を判定して、コンフィグレーションデータの所定の位置のデータをサンプルとして抽出する。
正常性判定部３１は、例えば第１サンプル保持部３７に保持されたサンプルと第２サンプル抽出部３８が抽出したサンプルとが等しいときＦＰＧＡ２から読み出したコンフィグレーションデータの正常と判定し、これらサンプルが相違するとき正常でないと判定する。
【００７１】
図２２は図２１のＦＰＧＡコンフィグレーション装置３によるコンフィグレーション方法を示すフローチャートであり、図２３は図２２に示すコンフィグレーション実行ルーチンＳ６０のフローチャートであり、図２４は図２２に示すメモリ書き込みルーチンＳ６３のフローチャートである。
ステップＳ１では、図４に示すステップＳ１と同様にデータ書込装置１００送信されたコンフィグレーションデータの先頭位置を検出し、コンフィグレーションデータの位相を決定する。
【００７２】
その後、図２３のステップＳ１０及びＳ１１では、図５に示すステップＳ１０及びＳ１１と同様に３：１セレクタ１８を操作し、ＦＰＧＡ２のコンフィグレーションを実行する。
ステップＳ６１では、第１サンプル抽出部３６は、書込データ先頭検出部１０により検出されたコンフィグレーションデータの先頭位置に基づいて、受信したコンフィグレーションデータの部分が、サンプルとして抽出すべき部分であるか否かを判定し、サンプルとして抽出すべき部分である場合にはこれを第１サンプル保持部３７に保持する（ステップＳ６２）。
【００７３】
図２２に示すステップＳ３において、書込データ終了検出部１１がデータ書込装置１００から受信するコンフィグレーションデータの終了を検出すると処理はＳ４に移る。ステップＳ４〜Ｓ７では、図４に示すステップＳ４〜Ｓ７と同様に、ＦＰＧＡ２からコンフィグレーションデータの読み出しを開始して、コンフィグレーションデータの先頭を検出する。その後の処理は図２４に示すメモリ書き込みルーチンＳ６３へ移る。
【００７４】
ステップＳ２０〜Ｓ２４において、図６に示すステップＳ２０〜Ｓ２４と同様にＦＰＧＡ２からコンフィグレーションデータを読み込んで、メモリ４への書き込みに適したフォーマットに変換し、コンフィグレーションデータをメモリ４へ格納する。
ステップＳ６４では、第２サンプル抽出部３８は、読出データ先頭検出部１４により検出されたコンフィグレーションデータの先頭位置に基づいて、ＦＰＧＡ２から読み出したコンフィグレーションデータの部分が、サンプルとして抽出すべき部分であるか否かを判定する。サンプルとして抽出すべき部分である場合にはこれを正常性判定部３１へ出力する。
ステップＳ６５において正常性判定部３１は、第１サンプル保持部３７に保持されたサンプルと第２サンプル抽出部３８が抽出したサンプルとが等しいときＦＰＧＡ２から読み出したコンフィグレーションデータの正常と判定し、これらサンプルが相違するとき正常でないと判定する。
【００７５】
図２２のステップＳ６６において正常性判定部３１は、判定結果を判定結果保持部３２に出力し、ステップＳ４２において判定結果が判定結果保持部３２に保持される。
ステップＳ４４及びＳ４５において、図１６に示すステップＳ４４及びＳ４５と同様に、コンフィグレーションデータが正常でない場合には、これを無効化する処理を行う。
【００７６】
なお図２１に示す構成において、第１サンプル抽出部３６は、書込データ先頭検出部１０及び書込データ終了検出部１１の検出信号を入力しているが、データ書込装置１００から受信したコンフィグレーションデータの位相及び終了が特定できる信号であれば、他の信号を、書込データ先頭検出部１０及び書込データ終了検出部１１の検出信号の代わりに第１サンプル抽出部３６に入力してもよい。例えば、コンフィグレーションデータの位相及び終了が特定できる信号をコンフィグレーション状態制御部１２から供給してもよい。以下の他の実施例でも同様である。
また、第１サンプル抽出部３６に、書込データ終了検出部１１の検出信号を入力しているが、コンフィグレーションデータの長さが予め判っているなど、コンフィグレーションデータの末尾を検出しなくても末尾位置が決定可能な場合は、書込データ終了検出部１１を省いてもよい。以下の他の実施例でも同様である。
【００７７】
第２サンプル抽出部３８は、読出データ先頭検出部１４及び読出データ終了検出部１５の検出信号を入力しているが、ＦＰＧＡ２から読み出したコンフィグレーションデータの位相及び終了が特定できる信号であれば、他の信号を、読出データ先頭検出部１４及び読出データ終了検出部１５の検出信号の代わりに第２サンプル抽出部３８に入力してもよい。例えば、コンフィグレーションデータの位相及び終了が特定できる信号をコンフィグレーション状態制御部１２から供給してもよい。以下の他の実施例でも同様である。
また、第２サンプル抽出部３８に、読出データ終了検出部１５の検出信号を入力しているが、コンフィグレーションデータの長さが予め判っているなど、コンフィグレーションデータの末尾を検出しなくても末尾位置が決定可能な場合は、読出データ終了検出部１５を省いてもよい。以下の他の実施例でも同様である。
【００７８】
図２５は、開示のＦＰＧＡコンフィグレーション装置３の第６構成例を示す概略構成図である。図２５に示すＦＰＧＡコンフィグレーション装置３は、図３を参照して説明したＦＰＧＡコンフィグレーション装置３と類似する構成を有しており、同一の構成要素には同一の参照符号を付して説明を省略する。
本構成例では、ＦＰＧＡ２からコンフィグレーションデータを読み出したとき、読み出したコンフィグレーションデータに含まれる、例えばバージョン情報などの、コンフィグレーションデータの同一性を識別する識別子情報を抽出する識別子抽出部４１と、識別子抽出部４１が抽出した識別子を保持する識別子保持部４２と、識別子抽出部４１が抽出する識別子と以前に識別子保持部４２に保持された識別子とを比較することによって、今回読み出したコンフィグレーションデータとメモリ４に格納されているコンフィグレーションデータとの同一性を判定する同一性判定部４３と、を備える。
コンフィグレーション状態制御部１２は、今回読み出したコンフィグレーションデータとメモリ４に格納されているコンフィグレーションデータとが同一であるときは、ＦＰＧＡ２からコンフィグレーションデータを読み出す処理を中止する。
識別子抽出部４１は、読出データ先頭検出部１４と読出データ終了検出部１５による検出結果に基づいてＦＰＧＡ２から読み出したコンフィグレーションデータの先頭及び／又は末尾を判定して、コンフィグレーションデータ内の所定の位置にある識別子情報を抽出する。
【００７９】
図２６は図２５のＦＰＧＡコンフィグレーション装置３によるコンフィグレーション方法を示すフローチャートである。ステップＳ１〜Ｓ７の処理は、図４に示すステップＳ１〜Ｓ７の処理と同様であるため説明を省略する。
ステップＳ７０において識別子抽出部４１は、読み出したコンフィグレーションデータに含まれるコンフィグレーションデータの識別子情報を抽出する。識別子情報が検出されなかった場合には処理をＳ８に移行する。
【００８０】
ステップＳ７２では、同一性判定部４３は、前回までのＦＰＧＡ２からのコンフィグレーションデータの読み出しによって既に識別子保持部４２に保持されている識別子と、今回の読み出しで識別子抽出部４１が抽出した識別子とを比較し、判定結果をコンフィグレーション状態制御部１２へ出力する。
これらの識別子同士が同一である場合には、今回、読み出したコンフィグレーションデータとメモリ４に格納されているコンフィグレーションデータとが同一であることを意味する。したがって、コンフィグレーション状態制御部１２は、読出処理制御部１３に対して、コンフィグレーションデータの読出制御信号の生成の中止を指示する。例えばコンフィグレーション状態制御部１２は、図７に示す読出指示受信部２０へ出力する読出指示信号のアサートを解除する。また、コンフィグレーション状態制御部１２は、メモリコントロール部５にデータの書き込みの中止を指示する。
【００８１】
これらの識別子同士が異なる場合には、ステップＳ７３において、同一性判定部４３は、今回識別子抽出部４１が抽出した識別子を識別子保持部４２に保持して、識別子保持部４２に記憶される識別子情報を更新する。
ステップＳ８及びＳ９の処理は、図４を参照して説明したステップＳ８及びＳ９の処理と同様であるので説明を省略する。
【００８２】
なお、識別子抽出部４１は、読出データ先頭検出部１４及び読出データ終了検出部１５の検出信号を入力しているが、ＦＰＧＡ２から読み出したコンフィグレーションデータの位相及び終了が特定できる信号であれば、他の信号を、読出データ先頭検出部１４及び読出データ終了検出部１５の検出信号の代わりに識別子抽出部４１に入力してもよい。例えば、コンフィグレーションデータの位相及び終了が特定できる信号をコンフィグレーション状態制御部１２から供給してもよい。以下の他の実施例でも同様である。
また、識別子抽出部４１に、読出データ終了検出部１５の検出信号を入力しているが、コンフィグレーションデータの長さが予め判っているなど、コンフィグレーションデータの末尾を検出しなくても末尾位置が決定可能な場合は、読出データ終了検出部１５を省いてもよい。以下の他の実施例でも同様である。
【００８３】
図２７は開示のＦＰＧＡコンフィグレーション装置３の第７構成例を示す概略構成図である。図２５を参照して説明したＦＰＧＡコンフィグレーション装置３と類似する構成を有しており、同一の構成要素には同一の参照符号を付して説明を省略する。
本構成例では、同一性判定部４３は、ＦＰＧＡ２から読み出したコンフィグレーションデータから識別子抽出部４１が抽出した識別子と、メモリ４に格納されたコンフィグレーションデータから読み出された識別子とを比較して、ＦＰＧＡ２から読み出したコンフィグレーションデータと、メモリ４に格納されたコンフィグレーションデータから読み出された識別子との同一性を比較する。
【００８４】
図２８は、図２７のＦＰＧＡコンフィグレーション装置３によるコンフィグレーション方法を示すフローチャートである。ステップＳ１〜Ｓ７の処理は、図４に示すステップＳ１〜Ｓ７の処理と同様であるため説明を省略する。
ステップＳ７４において、同一性判定部４３は、メモリ４に格納されたコンフィグレーションデータから読み出された識別子の読み出しを、コンフィグレーション状態制御部１２に指示する。コンフィグレーション状態制御部１２はメモリコントロール部５に対して、メモリ４に格納されたコンフィグレーションデータから識別子を読み出す処理を指示する。
【００８５】
ステップＳ７０において識別子抽出部４１は、読み出したコンフィグレーションデータに含まれるコンフィグレーションデータの識別子情報を抽出する。識別子情報が検出されなかった場合には処理をＳ８に移行する。
ステップＳ７５では、同一性判定部４３は、メモリ４から読み出された識別子と、今回の読み出しで識別子抽出部４１が抽出した識別子とを比較し、判定結果をコンフィグレーション状態制御部１２へ出力する。
【００８６】
これらの識別子同士が同一である場合には、コンフィグレーション状態制御部１２は、読出処理制御部１３に対して、コンフィグレーションデータの読出制御信号の生成の中止を指示する。また、コンフィグレーション状態制御部１２は、メモリコントロール部５にデータの書き込みの中止を指示する。
ステップＳ８及びＳ９の処理は、図４を参照して説明したステップＳ８及びＳ９の処理と同様であるので説明を省略する。
【００８７】
以上の実施例を含む実施形態に関し、更に以下の付記を開示する。
【００８８】
（付記１）
ＦＰＧＡとメモリとに接続され、該メモリに格納されるコンフィグレーションデータによって該ＦＰＧＡのコンフィグレーションを行うためのＦＰＧＡコンフィグレーション装置であって、
コンフィグレーションされた状態の前記ＦＰＧＡからコンフィグレーションデータを読み出す制御を行う読出処理制御部と、
前記ＦＰＧＡから読み出された前記コンフィグレーションデータを前記メモリへ転送するコンフィグレーションデータ転送部と、
を備えるＦＰＧＡコンフィグレーション装置。
【００８９】
（付記２）
前記コンフィグレーション装置は、前記ＦＰＧＡへコンフィグレーションデータを書き込むデータ書込装置と、前記メモリの書き込み制御を行うメモリコントロール部と、に接続され、
前記データ書込装置による前記ＦＰＧＡへの前記コンフィグレーションデータの書き込み終了を検出する書込終了検出部と、
前記コンフィグレーションデータの書き込みが終了したとき、前記ＦＰＧＡに書き込まれたコンフィグレーションデータを読み出す制御を前記読出処理制御部に開始させ、前記コンフィグレーションデータ転送部から転送された前記コンフィグレーションデータを前記メモリへ書き込む処理を前記メモリコントロール部に開始させるコンフィグレーション状態制御部と、
を備える付記１に記載のＦＰＧＡコンフィグレーション装置。
【００９０】
（付記３）  
前記ＦＰＧＡから読み出された前記コンフィグレーションデータの正常性を判定する正常性判定部を備える付記２に記載のＦＰＧＡコンフィグレーション装置。
【００９１】
（付記４）
前記コンフィグレーション状態制御部は、前記正常性判定部による正常性の判定の結果に応じて、前記メモリに格納されたコンフィグレーションデータを無効にする付記３に記載のＦＰＧＡコンフィグレーション装置。
【００９２】
（付記５）
前記ＦＰＧＡから読み出された前記コンフィグレーションデータの誤り判定符号を演算する誤り判定符号演算部を備え、
前記正常性判定部は、前記コンフィグレーションデータに予め含まれる誤り判定符号と、前記演算された誤り判定符号との比較により正常性を判定する付記３に記載のＦＰＧＡコンフィグレーション装置。
【００９３】
（付記６）
前記データ書込装置が前記ＦＰＧＡへ書き込む前記コンフィグレーションデータの誤り判定符号を演算する第１誤り判定符号演算部と、
前記ＦＰＧＡから読み出された前記コンフィグレーションデータの誤り判定符号を演算する第２誤り判定符号演算部と、を備え、
前記正常性判定部は、前記第１及び第２誤り判定符号演算部により各々演算された誤り判定符号同士の比較により正常性を判定する付記３に記載のＦＰＧＡコンフィグレーション装置。
【００９４】
（付記７）
前記データ書込装置が前記ＦＰＧＡへ書き込む前記コンフィグレーションデータの一部を抽出する第１サンプル抽出部と、
前記ＦＰＧＡから読み出された前記コンフィグレーションデータの一部を抽出する第２サンプル抽出部と、を備え、
前記正常性判定部は、前記第１及び第２サンプル抽出部により各々抽出されたデータ同士の比較により正常性を判定する付記３に記載のＦＰＧＡコンフィグレーション装置。
【００９５】
（付記８）
前記メモリに記憶される前記コンフィグレーションデータと前記ＦＰＧＡから読み出された前記コンフィグレーションデータとの同一性を判定する同一性判定部を備える付記２に記載のＦＰＧＡコンフィグレーション装置。
【００９６】
（付記９）
前記同一性判定部は、前記メモリに保持される前記コンフィグレーションデータから識別子を読み出し、前記ＦＰＧＡから読み出された前記コンフィグレーションデータとの同一性を判定する付記８に記載のＦＰＧＡコンフィグレーション装置。
【００９７】
（付記１０）
付記１〜９に記載されるＦＰＧＡコンフィグレーション装置を有する回路基板。
【００９８】
（付記１１）
付記１〜９に記載されるＦＰＧＡコンフィグレーション装置を有する電子装置であって、前記ＦＰＧＡコンフィグレーション装置によって前記電子装置の動作を制御するＦＰＧＡがコンフィグレーションされる電子装置。
【００９９】
（付記１２）
所定のメモリから読み出されたコンフィグレーションデータをＦＰＧＡに書き込んで、該ＦＰＧＡのコンフィグレーションを行うＦＰＧＡコンフィグレーション方法であって、
所定のコンフィグレーション状態にコンフィグレーションされたＦＰＧＡからコンフィグレーションデータを読み出して、前記所定のメモリに格納するステップと、
前記所定のメモリに格納されたコンフィグレーションデータを前記ＦＰＧＡに書き込んで、前記所定のコンフィグレーション状態と同じコンフィグレーション状態に前記ＦＰＧＡをコンフィグレーションするステップと、
を有するＦＰＧＡコンフィグレーション方法。
【図面の簡単な説明】
【０１００】
【図１】外部に接続されたデータ書込装置によって内蔵するＦＰＧＡをコンフィグレーションできる電子装置の概略構成図である。
【図２】開示の電子装置の実施例の概略構成図である。
【図３】開示のＦＰＧＡコンフィグレーション装置の第１構成例を示す概略構成図である。
【図４】図３のＦＰＧＡコンフィグレーション装置によるコンフィグレーション方法を示すフローチャート（その１）である。
【図５】図４に示すコンフィグレーション実行ルーチンのフローチャートである。
【図６】図４に示すメモリ書き込みルーチンのフローチャートである。
【図７】図３に示す読み出し処理制御部と第１データ変換部の構成例を示す概略構成図である。
【図８】図７の回路の各部における信号のタイムチャート（その１）である。
【図９】図７の回路の各部における信号のタイムチャート（その２）である。
【図１０】図７の回路の各部における信号のタイムチャート（その３）である。
【図１１】図３のＦＰＧＡコンフィグレーション装置によるコンフィグレーション方法を示すフローチャート（その２）である。
【図１２】開示のＦＰＧＡコンフィグレーション装置の第２構成例を示す概略構成図である。
【図１３】図１２のＦＰＧＡコンフィグレーション装置によるコンフィグレーション方法を示すフローチャートである。
【図１４】図１３に示すメモリ書き込みルーチンのフローチャートである。
【図１５】開示のＦＰＧＡコンフィグレーション装置の第３構成例を示す概略構成図である。
【図１６】図１５のＦＰＧＡコンフィグレーション装置によるコンフィグレーション方法を示すフローチャート（その１）である。
【図１７】図１５のＦＰＧＡコンフィグレーション装置によるコンフィグレーション方法を示すフローチャート（その２）である。
【図１８】開示のＦＰＧＡコンフィグレーション装置の第４構成例を示す概略構成図である。
【図１９】図１８のＦＰＧＡコンフィグレーション装置によるコンフィグレーション方法を示すフローチャートである。
【図２０】図１９に示すコンフィグレーション実行ルーチンのフローチャートである。
【図２１】開示のＦＰＧＡコンフィグレーション装置の第５構成例を示す概略構成図である。
【図２２】図２１のＦＰＧＡコンフィグレーション装置によるコンフィグレーション方法を示すフローチャートである。
【図２３】図２２に示すコンフィグレーション実行ルーチンのフローチャートである。
【図２４】図２２に示すメモリ書き込みルーチンのフローチャートである。
【図２５】開示のＦＰＧＡコンフィグレーション装置の第６構成例を示す概略構成図である。
【図２６】図２５のＦＰＧＡコンフィグレーション装置によるコンフィグレーション方法を示すフローチャートである。
【図２７】開示のＦＰＧＡコンフィグレーション装置の第７構成例を示す概略構成図である。
【図２８】図２７のＦＰＧＡコンフィグレーション装置によるコンフィグレーション方法を示すフローチャートである。
【符号の説明】
【０１０１】
１    電子装置
２    ＦＰＧＡ
３    ＦＰＧＡコンフィグレーション装置
４    メモリ
５    メモリコントロール部
１０    書込データ先頭検出部
１１    書込データ終了検出部
１２    コンフィグレーション状態制御部
１３    読出処理制御部
１４    読出データ先頭検出部
１５    読出データ終了検出部
１６    第１データ変換部
１７    第２データ変換部
１８    ３：１セレクタ
１００    データ書込装置
【図１】
0005169486.tif 000002
【図２】
0005169486.tif 000003
【図３】
0005169486.tif 000004
【図４】
0005169486.tif 000005
【図５】
0005169486.tif 000006
【図６】
0005169486.tif 000007
【図７】
0005169486.tif 000008
【図８】
0005169486.tif 000009
【図９】
0005169486.tif 000010
【図１０】
0005169486.tif 000011
【図１１】
0005169486.tif 000012
【図１２】
0005169486.tif 000013
【図１３】
0005169486.tif 000014
【図１４】
0005169486.tif 000015
【図１５】
0005169486.tif 000016
【図１６】
0005169486.tif 000017
【図１７】
0005169486.tif 000018
【図１８】
0005169486.tif 000019
【図１９】
0005169486.tif 000020
【図２０】
0005169486.tif 000021
【図２１】
0005169486.tif 000022
【図２２】
0005169486.tif 000023
【図２３】
0005169486.tif 000024
【図２４】
0005169486.tif 000025
【図２５】
0005169486.tif 000026
【図２６】
0005169486.tif 000027
【図２７】
0005169486.tif 000028
【図２８】
0005169486.tif 000029