今回の目的はDigilent社提供の画像をHDMI形式で出力するデモサンプルを実行させてディスプレイに画像を表示すること。デモサンプルのうち、必要なファイル一式をWorkspaceに動かし、HDMI出力を実行することが可能。「Vitis」でのビジョンライブラリを試す前準備として、テスト画像をZynqからHDMIを通じて外部ディスプレイに出力することを目標にしています。今回の記事では、”テスト画像をHDMI形式で出力”させるアプリケーションを紹介していきます。前回の記事では、Digilent社が提供するHDMI出力デモのサンプルプログラムを読み込み、ハードウェアの設計を行いました。-本記事では、VitisとVivadoを用いてZybo経由で外部ディスプレイに画像を出力するアプリケーションを作成します。DiligentからダウンロードしたHDMI出力デモサンプルをもとに、Zynq内部のハードウェア構成を設計しています。2020.2上で動作させてみましたので、今回の記事ではその方法を記載いたします。World”アプリケーション、”LED点滅アプリケーション”を作成したときと同様に、Vitisのワークスペースを作成していきます。ワークスペースの作成手順については、すでに過去の記事でまとめていますので、改めて確認したい方は[+]マークから詳細をご確認ください。IDE]を選択します。立ち上がったウィンドウ上で、Workspaceを格納するディレクトリを指定します。指定が完了したら、[Launch]をクリックします。新しくVitisのウィンドウが立ち上がります。Project]をクリックし、新しいアプリケーションプロジェクトを作成していきます。ハードウェアデザイン(XSAファイル)の読み込み最初のウィンドウではそのまま[Next]をクリックします。Vivadoで作成したハードウェアデザイン(XSAファイル)を読み込んでいきます。(XSA)]タブを選択し、[Browse]をクリックし、前回の記事で作成したXSAファイルを選択します。選択が完了したら、[Next]をクリックします。アプリケーションプロジェクト名の指定アプリケーションプロジェクト名を入力し、アプリケーションを動作させるプロセッサの種類を選択したら、[Next]をクリックします。今回は特に設定変更不要ですので、そのまま[Next]をクリックします。Application”を選択し、[Finish]をクリックします。IDEのウィンドウの立ち上げまで完了したら、このワークスペース上で、”HDMI出力”プログラムを作成していきましょう。HDMI出力プログラムのソースコードの作成はじめに、プログラムのソースコードをワークスペースに追加します。前回の記事でDigilentのHPからダウンロードした、HDMI出力のデモサンプルファイルからソースコードをWorkspaceに移します。解凍したデモファイルの中から、[sdk]>[displaydemo]>[src]と移動し、その中のファイルを丸ごと、[workspace]内のフォルダに移していきます。今回、Vitisで作成したアプリケーション名を[hdmi_out_application]としています。[workspace]内には、このアプリケーション名と同じ名前のフォルダ[hdmi_out_application]があるはずですので、その中の[src]というフォルダの中にダウンロードした以下のファイルを移していきます。Controller)のドライバを動かすための関数display_demo.c、display_demo.h:main関数とディスプレイの表示内容を切り替える関数このファイルを移動させたらビルドを行います。world”の場合と同様です。後で確認できるように、[+]マークに詳細を記載しておきます。実装方法の詳細1プロジェクトのビルドまず、プラットフォームプロジェクトをビルドしていきます。エクスプローラ内のプラットフォームプロジェクト(hdmi_out_system_wrapper)を選択し、右クリックします。Project]を選択すると、ビルドが始まります。今回、ビルドにかかった時間は17秒でした。次に、システムプロジェクトをビルドしていきます。エクスプローラ内のシステムプロジェクト(hdmi_out_application_system)を選択し、右クリックします。Project]を選択すると、ビルドが始まります。2コンフィグレーション回路基板をホストPCにつなぎます。つないで電源を入れたら、PC側からFPGAへのbitstreamファイルの書き込み(コンフィグレーション)とアプリケーションソフトウェアのDDRへの書き込みを実行します。Hardware]を選択すると、コンフィグレーションとソフトウェアの書き込みが実施されます。3COMポートの接続デモサンプルでは、UART経由でディスプレイ表示の画素数とパターンを切り替えることが可能です。UART通信を行うためのCOMポートを選択しておきましょう。port”というウィンドウが立ち上がります。このウィンドウ内の[Port:]から該当する[COM]を選択し、[OK]をクリックします。プログラムの実行では、[Resume]マークをクリックしてみましょう。無事、ディスプレイに画像が表示されました!ひがしLED点滅回路と同様に、目に見える形でモノが動くとプログラムを動かしている実感がわきますね!ディスプレイの表示内容を自由に変えられるともっと楽しくなると思います。次回は、プログラムの内容を書き換えて、ディスプレイの表示を変えていきたいと思います。ここまで読んでいただき、ありがとうございました。次回の記事へのリンク【HDMI出力編(3)】静止画をZynqからHDMI出力するVitisアプリケーション本記事では、Vitisを用いてZybo経由で外部ディスプレイに画像を出力するアプリケーションを作成します。アプリケーションでは、ドライバ関数によりIPコアの設定を行った後、読み出すフレームバッファに直接静止画を書き込んでいます。関連記事Vitis【Vitis】ドライバのドキュメンテーションと用例を活用しようXilinx社のソフトウェア開発ツールVitisではIPコアやペリフェラルを制御するためのドライバが用意されています。本記事では、各ドライバのマニュアルへのリンクと、用例のプログラムをインポートする方法についてまとめました。本記事では、Zynqが外部からのHDMI信号を受信しDDRメモリに格納した後、DDRメモリを読み出しVGA信号を送信するDigilent社のデモサンプルの解説を行い、デモサンプルをもとにZynq内部のハードウェア構成を作成しています。Liteのレジスタに書き込む方法IPパッケージャーを使用してMaster側のAXI4-Liteインタフェースを追加する方法を解説しています。Lite”のAXI4-Liteポートと接続可能なカスタムIPを作成しました。(1)カスタムIPの内部構成について理解するハードウェア言語で作成したRTLモジュールにIPパッケージャーを使用して、Master側のAXI4-Liteインタフェースを追加する方法を解説しています。カスタムIPのどこを変更すればよいか、図解しながらIPの内部構成を解説しています。企業のエンジニアとして働きつつ、FPGAを使ったデジタル回路の設計に興味を持ち、休日に勉強をしています。Accessの最低限知っておくと良い項目についてまとめました。VDMAを制御するためのドライバの使用方法について、初心者向けに解説しています。コメントをキャンセルメールアドレスが公開されることはありません。※サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。上に表示された文字を入力してください。@phys_higashiFPGAを使ったデジタル回路の設計に興味を持ち、休日に勉強をしています。初学者の目線から、詰まりやすいポイントとそれを解決した方法について、記事にまとめています。初学者ゆえの間違い等あるとは思いますが、お気づきの際はお問い合わせをいただけますと幸いです。@phys_higashiFPGAを使ったデジタル回路の設計に興味を持ち、休日に勉強をしています。初学者の目線から、詰まりやすいポイントとそれを解決した方法について、記事にまとめています。初学者ゆえの間違い等あるとは思いますが、お気づきの際はお問い合わせをいただけますと幸いです。-掛け算IPをZyboに実装-2021.04.182022.02.13Rustupをインストールするときに発生したエラーの回避方法2021.08.102021.11.07。