2021.02.01スポンサーリンクこんにちは。FPGAプログラミング初学者の「ひがし研究所」です!企業のエンジニアとして働きつつ、FPGAを使ったデジタル回路の設計に興味を持ち、休日に勉強をしています。これまで、Verilogを用いたハードウェア言語での回路記述をメインに行ってきましたが、スキルを広げるためにソフトウェアでのシステム構築の勉強をしています。World”のプログラムを実行する方法についてまとめます。前回の記事に引き続き、以下の目標で開発を進めています。今回はやり残していた開発工程のうち2と3を行います。ひがし今回、以下の書籍を参考にさせていただきました。アマゾンならポイント還元本が多数。優作品ほか、お急ぎ便対象商品は当日お届けも可能。Xilinx編もアマゾン配送商品なら通常配送無料。Zynq-7010評価ボードZyboのシステム構成図Zyboのマニュアルを参考にまとめると、以下のようなシステム構成になります。※本記事で必要なところのみを抜粋しています。実際の回路基板には他にも多くの有用な機能が含まれます。World”プログラムをFPGAに実装するためのシステム構成を設計しました。今回の記事では、Zynqのハードウェア上で動作するソフトウェアプログラムを作成します。Kit、通称SDKにエクスポートします。SDKを起動し、アプリケーションファイルを作成していきます。SDK”をクリックすると、SDKが図のように起動します。このウィンドウ上でアプリケーションファイルを作成していきましょう。Project]を実行します。ひがしアプリケーションプロジェクトを作成するための、ウィンドウが新たに立ち上がります。Package)プロジェクトの名前も”hello_bsp”と自動で入力されます。Hardware”の欄に予め自動入力されています。入力が完了したら、[Next]をクリックします。World]を選択し、[Finish]をクリックしましょう。World”のプログラムはテンプレートがあるので、テンプレートを選択するだけで簡単です。Explorerペイン”に表示されています。Explorerに作成されたプロジェクト・ハードウェアプロジェクト(design_1_wrapper_hw_platform_C)・アプリケーションプロジェクト(hello)・BSPプロジェクト(hello_bsp)ひがしメインアプリケーションとなるhelloworld.cは、アプリケーションプロジェクトのsrcフォルダ内に格納されています。ちなみに、プログラムは下のソースコードのように非常にシンプルです。終了」といった一連のプログラムとなっています。以上でCPUを動かすためのプログラムが完成しました!ひがしとはいえ、ほぼ自動でプログラムが生成されたので、作成したという実感が湧きませんね。FPGA]を選択します。Kit(通称SDK)のウィンドウ上で、図のようなショートカットをクリックします。ウィンドウが立ち上がりますので、そのまま[Program]をクリックしましょう。これをクリックすると、先ほどコンパイルしたビットストリーム(bit)ファイルがFPGAに送信され、コンフィグレーションされます。これにより、ハードウェアの実装が完了しました。ソフトウェアを書き込むための環境(プラットフォーム)が基板上に用意されたといえます。次に、ソフトウェアの書き込みを行います。引き続きSDKのウィンドウ上でアプリケーションプロジェクト”hello”を選択します。Configurations...]を実行します。Configurationsウィンドウが立ち上がります。Debugger)”をダブルクリック(1)すると、新しいデバッグ設定が作成されます(2)。デバッグ設定を確認できたら、[Debug]をクリックしてください(3)。次のウィンドウは操作画面をデバッガの画面に切り替えることを確認するダイアログなので、気にせずに[Yes]をクリックするのでよいでしょう(4)。デバッガ操作画面に切り替わります。中央のソースコードでは、“init_platform()”が緑色にハイライトされていて、ここで処理が停止していることを示しています。動作確認UARTからの信号を受信して表示するSDKターミナル上で、ホストPCのCOMポートを設定できれば、いよいよプログラムの実行です![Resume]アイコンをクリックしてプログラムを実行しましょう。World”の文字列が表示されました!!ひがし文字列が表示されるだけだと、Zynq経由で送信されたものなのかどうか、実感が湧きづらいと思います。次回はCPUのプログラムで、実際の回路基板上のLED点滅回路を動かしていき、理解を深めたいと思います。まとめ以上をまとめると、この通りです。World”プログラムを作成し実装。world”の文字列を確認ひがし本日の記事を踏まえて、次回はLED点滅回路を動かしていきましょう!ここまで読んでいただき、ありがとうございました。TerminalのマイコンとZynqをデータを通信する方法を解説。本記事では、サンプルプログラムや各API関数のリファレンスの参照方法を紹介した後、サンプルプログラムの動作原理について調べた内容を解説します。本記事ではVitisとVivadoを用いてZybo上で動作するHelloWorldアプリケーションを作成しています。Worldの出力を確認しました。本記事では、任意精度型ライブラリの使い方について解説しました。任意精度型ライブラリの特徴や追加するメリット、使用時の注意点についてまとめたあと、任意精度整数型に含まれる有用なメソッドについても紹介しています。カスタムIPの内部構成について解説ハードウェア言語で作成したRTLモジュールにIPパッケージャーを使用してAXI4-Liteインタフェースを追加する方法を解説しています。カスタムIPのどこを変更すればよいか、図解しながらIPの内部構成とカスタマイズ方法を解説しています。-プログラムの作成と実行-本記事では、VitisとVivadoを用いてZybo経由で外部ディスプレイに画像を出力するアプリケーションを作成します。CPUで動作するHDMI出力プログラムを読み込み、Zybo上で動作を確認しました。Controllerの最低限知っておくと良い項目についてまとめました。Controllerを制御するためのドライバの使用方法について初心者向けに解説しています。コメントをキャンセルメールアドレスが公開されることはありません。※サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。上に表示された文字を入力してください。@phys_higashiFPGAを使ったデジタル回路の設計に興味を持ち、休日に勉強をしています。初学者の目線から、詰まりやすいポイントとそれを解決した方法について、記事にまとめています。初学者ゆえの間違い等あるとは思いますが、お気づきの際はお問い合わせをいただけますと幸いです。@phys_higashiFPGAを使ったデジタル回路の設計に興味を持ち、休日に勉強をしています。初学者の目線から、詰まりやすいポイントとそれを解決した方法について、記事にまとめています。初学者ゆえの間違い等あるとは思いますが、お気づきの際はお問い合わせをいただけますと幸いです。-掛け算IPをZyboに実装-2021.04.182022.02.13Rustupをインストールするときに発生したエラーの回避方法2021.08.102021.11.07。