前回はFPGAプラグイン的な機能である動的再配置の概念について説明をしました。今回は、実際どのようなことができるのか実例を挙げて説明していきます。
FPGAプラグイン的な機能ということからわかる通り、機能を追加するための場所や記述の方法があらかじめ決められています。
そこで今回は、イメージセンサからの入力を受けて、Video Capture Blockへ信号を渡す間の部分に、追加ロジックを記述したいと思います。
そこで今回は、イメージセンサからの入力を受けて、Video Capture Blockへ信号を渡す間の部分に、追加ロジックを記述したいと思います。イメージとしては右図のようになります。
追加するのは、イメージセンサから出力されるデータ信号を反転させて取り込むロジックです。
追加ロジックを組み込むための方法が決まっていると説明してきました。
これはつまり具体的に言えば、追加ロジックを開発するために必要になる、ISE用プロジェクト一式を弊社から提供してことを意味しています。
この弊社から提供しているプロジェクトに追加したいロジックを追加記述していけば良いわけです。
ただし、SVI-06Coreとの接続のためのインターフェイスの名称と役割が仕様として決まっておりますので、仕様を守りつつ追加ロジックを記述する必要があります。
インターフェイス名称は右記の通りです。
簡単にインターフェイスの説明をします。インターフェイスは大きく6個のポートグループから構成されています。
ポートグループそれぞれの役割は次の表のとおりとなります。
なお、ポートグループの詳細等につきましては弊社サイトにある
「FPGA動的再配置/SVI-06 《FPGA動的再配置の検討・実装方法》」の説明をご覧ください。
では実際にHDL上で設定をしていきましょう。
1. 弊社から提供するCDイメージの中に、動的再配置用のISEプロジェクトが格納されているので、ISEプロジェクト一式をPCのハードディスクにコピーします。
<コピー対象フォルダ>
SVI-source\FPGA\SVI06-TOP_DPRPRExxxxxxPub_Vvvv
(xxxxxx:リリース年月日6桁、vvv:リリースしたFPGAバージョン番号)
2. ISE Project Navigatorを起動。
3. File →Open Projectから、「SVI06_TOP.xise」を開きます。(「SVI06_TOP.xise」は1でコピーしたフォルダ直下に格納されています。)
右図が表示されます。
4. 開いたプロジェクトの中に、「MSviPreprocessBlock_06Stdvvv.v」(vvv:バージョン番号)がありますので、このファイルをこのプロジェクトから削除します。
5. SVI-source\FPGA\SVI06-TOP_DPRPRExxxxxxPub_Vvvv\src\dprpreフォルダ内に「MSviPreprocessBlock_06Empvvv.v」があるのでこれをプロジェクトに読み込みます。
4、5で読み込んだファイルを開きます。
6. ファイルの184行目の「wCamDtS」の前にチルダを追加して保存をおこないます。(反転ロジック追加部分)
修正前:rCamDtI <= wCamDtS;
修正後:rCamDtI <= ~wCamDtS;
7. DesignウィンドウのProcessツリーで「Synthesize-XST」をダブルクリックし論理合成を行います。
8. DesignウィンドウのProcessツリーで「Implement Design」をダブルクリックして、回路合成を開始します。
9. DesignウィンドウのProcessツリーで「Generate Programming File」をダブルクリックすることで、ビットストリームファイルを作成します。
10. SVIUpdateアプリケーションを使用し、9で作成したファイルでSVI-06のFPGAの回路を更新します。
このようにして、画像反転のロジックを組み込むことができました。最後にロジック組み込み前と組み込み後の違いをご覧ください。
このように、SVI-06が持っている機能をフル活用して、簡単にカメラからの信号を変換することができました。
このFPGAのプラグイン的な機構ともいえる動的再配置を利用して多くの機能が開発されるといいなと思います。
動的再配置で開発したHDLは弊社に公開する必要はありませんし、自由に販売等されても問題ございません。
この詳細につきましては弊社Webサイトにある
動的再配置のページをご覧ください。
ぜひ、動的再配置の機構や活用の仕方に興味ありましたら弊社までご連絡ください。
次回はこの動的再配置を利用してどのようなことができるのか、どのようなメリット・デメリットなどご紹介いたします。