主要内容

このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

ZynqワークフローのAXI4-Stream视频インターフェイス入門

この例では,生成されたHDL IPコアでの高速ビデオストリーミングを可能にするAXI4-Stream视频インターフェイスの使用方法を説明します。

はじめる前に

この例を実行するには,次のソフトウェアとハードウェアをインストールして設定していなければなりません。

ZedBoardを設定するには,この例の”Zynqハードウェアとツールの設定“の節を参照してください。

はじめに

以下の例では,次のような操作方法を説明します。

  1. ストリーミングピクセルプロトコルを使用したビデオストリーミングアルゴリズムのモデル化。

  2. AXI4-Stream视频インターフェイスを使用したHDL IPコアの生成。

  3. HDMIインターフェイスにアクセスできるZedBoardビデオリファレンス設計への生成されたIPコアの統合。

  4. 手臂®プロセッサを使用したFPGAファブリックでのパラメーター調整によるライブビデオ出力の変更。

  5. 独自のカスタムビデオリファレンス設計の作成。

上記の図は,生成されたHDL DUT IPコアが事前定義されたビデオリファレンス設計でどのように機能するかを示すアーキテクチャの概要図です。この図で,高密度脂蛋白DUT IPブロックは[IPコアの生成]ワークフローから生成されたIPコアです。図の他の部分は事前定義されたビデオリファレンス設計を表し,この設計にはHDMI入力インターフェイスとHDMI出力インターフェイスを処理する他のIPが含まれます。

高密度脂蛋白DUT IPは,HDMI入力IPからのビデオストリームを処理し,出力ビデオストリームを生成してHDMI出力IPに送信します。これらのビデオストリームはすべてAXI4-Stream视频インターフェイスで転送されます。

高密度脂蛋白DUT IPには,パラメーター調整のためにAXI4-Liteインターフェイスを含めることもできます。AXI4-Liteインターフェイスと比べて,AXI4-Stream视频インターフェイスは,データをより高速に転送するため,ビデオアルゴリズムのデータパスにより適しています。

Zynqハードウェアとツールの設定

1.以下の図に示すようにZedBoardとFMC HDMI I / Oカードを設定します。ZedBoardハードウェア セットアップの詳細については、ボードのドキュメントを参照してください。

1.1.上の図(マーカー1 ~ 3)に示すようにUSB UARTケーブル,イーサネットケーブルおよび電力ケーブルを接続します。

1.2.上の図(マーカー4)に示すようにJP7JP11のジャンパーが設定されており,LinuxをSDカードから起動できるようになっていることを確認します。JP7: 下、JP8: 下、JP9: 上、JP10: 上、JP11:下です。

1.3.上の図(マーカー5)に示すようにJ18のジャンパーが2 v5で設定されていることを確認します。

1.4。上の図(マーカー6)に示すようにHDMIビデオソースをFMC HDMI I / Oカードに接続します。ビデオソースは 1080p ビデオ出力 (ビデオ カメラ、スマート フォン、タブレット、コンピューターの HDMI 出力など) を提供できなければなりません。

1.5。上の図(マーカー7)に示すようにモニターをFMC HDMI I / Oカードに接続します。モニターは1080 p表示をサポートできなければなりません。

2.まだインストールしていない場合は,HDL编码支持包Xi金宝applinx Zynq平台,嵌入式编码支持包Xilinx Zynq平台,および计算机视觉系统工具箱支持包Xilinx Zynq-Based硬件をインストールします。サポートパッケージをインストールするには,MATLAB®ツールストリップに移動して[アドオン][ハードウェアサポートパッケージの入手)をクリックします。

3.嵌入式编码支持包Xilinx 金宝appZynq平台で提供されるSDカードイメージを使用していることを確認します。SDカードイメージを更新しなければならない場合は,MATLABプロンプトで次のコマンドを実行します。

targetupdater

4.MATLABコマンドウィンドウで次のコマンドを入力してZynqハードウェア接続を設定します。

h = zynq

関数zynqはCOMポートを介してハードウェアにログインし,ifconfigコマンドを実行してボードのIPアドレスを取得します。この関数はイーサネット接続のテストも行います。

5.MATLABコマンドウィンドウで次のコマンドを使用してXilinx Vivado合成ツールパスを設定します。コマンドを実行するときに独自のVivadoインストールパスを使用します。

(C: Xilinx\Vivado\2017.4\bin\ Vivado .bat)

ストリーミングピクセルプロトコルを使用したビデオストリーミングアルゴリズムのモデル化

Zynqに簡単なソーベルエッジ検出アルゴリズムを展開するには,まず,設計のどの部分をFPGAで実行し,設計のどの部分を手臂プロセッサで実行するかを特定します。この例では,エッジ検出器をFPGAに実装し,着信ビデオストリームをAXI4-Stream视频プロトコルで処理します。また、手臂プロセッサを使用してFPGAでパラメーターを調整し,ライブビデオ出力を変更します。

モデル例では,DUTサブシステムSobel_HWが边缘检测器ブロックを使用してソーベルエッジ検出アルゴリズムを実装します。ビデオデータと制御信号は、Vision HDL Toolbox のすべてのブロックで使用されるビデオ ストリーミング ピクセル プロトコルでモデル化されています。pixelInpixelOutはビデオストリームのデータ端子です。ctrlInctrlOutはビデオストリームの制御端子です。これらは,信号hStart这个到音速启动公开发表有效的を含むバスデータ型(ピクセル制御バス)を使用してモデル化されています。

4つの入力端子阈值Sobel_EnableBackground_ColorおよびShow_Gradientは,ソーベルエッジ検出アルゴリズムのパラメーターを調整する制御端子です。滑块获得ブロックまたは手动开关ブロックを使用してこれらの端子の入力値を調整できます。これらの端子をAXi4-Liteインターフェイスにマッピングすると,生成されたAXIインターフェイスのアクセス可能なレジスタに書き込むことで,手臂プロセッサが生成されたIPコアを制御できます。

modelname =“hdlcoder_sobel_video_stream”;open_system (modelname);sim (modelname);

AXI4-Stream视频インターフェイスを使用したHDL IPコアの生成

次に,高密度脂蛋白ワークフローアドバイザーを起動し,Zynqハードウェアソフトウェア協調設計ワークフローを使用して,この設計をZynqハードウェアに配布します。詳しい手順については,瞄准Xilinx Zynq平台の例を参照してください。

1.DUTサブシステムhdlcoder_sobel_video_stream / Sobel_HWからHDLワークフローアドバイザーを起動します。このモデル例では,ターゲットインターフェイスの設定は既に保存されているため,タスク1.1 ~ 1.3の設定は自動的に読み込まれます。モデルのターゲットインターフェイス設定の保存の詳細については,在模型中保存目标硬件设置の例を参照してください。

1.1タスクでは,[ターゲットワークフロー]については[IPコアの生成)が選択され,[ターゲットプラットフォーム]については(ZedBoard)が選択されます。

1.2タスクでは,[リファレンス設計]については[默认视频系统(需要HDMI FMC模块)]が選択されます。

1.3タスクでは,次の図に示すように[ターゲットプラットフォームインターフェイステーブル]が読み込まれます。ビデオデータ ストリーム端子pixelInctrlInpixelOut,およびctrlOutはAXI4-Stream视频インターフェイスにマッピングされ,阈值などの制御パラメーター端子はAXI4-Liteインターフェイスにマッピングされます。

AXI4-Stream视频インターフェイスはマスター/スレーブモードで通信します。このモードでは,マスターデバイスがデータをスレーブデバイスに送信します。したがって,データ端子が入力端子である場合,これをAXI4-Stream视频スレーブインターフェイスに割り当て,データ端子が出力端子である場合,これをAXI4-Stream视频マスターインターフェイスに割り当てます。

2.タスク3.2(RTLコードとIPコアの生成)を右クリックして,[選択したタスクまで実行)を選択し、IPコアを生成します。生成されたIPコアレポート内のIPコアについては,レジスタアドレスマッピングおよびその他のドキュメントを参照してください。

AXI4-Stream视频に互換するリファレンス設計へのIPの統合

次に,高密度脂蛋白ワークフローアドバイザーで,[組み込みシステムの統合)タスクを実行して,生成されたHDL IPコアをZynqハードウェアに配布します。

1.タスク4.1[プロジェクトを作成)を実行します。このタスクでは,生成されたIPコアが(默认视频系统)リファレンス設計に挿入されます。最初の図に表示されているように,このリファレンス設計には,HDMI入力インターフェイスとHDMI出力インターフェイスを処理するIPが含まれます。また,YCbCrからRGBへの色空間変換を行うIPも含まれます。生成されたプロジェクトは完全なZynq設計であり,アルゴリズム部分(生成されたDUTアルゴリズムのIP)とプラットフォーム部分(リファレンス設計)が含まれます。

2.[結果]ペインのリンクをクリックして,生成されたVivadoプロジェクトを開きます。Vivadoツールで,(开放块设计)をクリックしてZynq設計図を表示します。これには,生成されたHDL IPコア,その他のビデオパイプラインIP,およびZynqプロセッサが含まれます。

3.高密度脂蛋白ワークフローアドバイザーで,残りのタスクを実行してソフトウェアインターフェイスモデルを生成し,FPGAビットストリームを作成およびダウンロードします。[ターゲットデバイスをプログラム]タスクで[ダウンロード]プログラミングメソッドを選択して,FPGAビットストリームをZedBoard上のSDカードにダウンロードし,ZedBoardの電源をオフ/オンすると設計が自動的に再読み込みされるようにします。

FPGAファブリックでパラメーターを調整するための手臂実行可能ファイルの生成

ソフトウェアインターフェイスモデルはタスク4.2[ソフトウェアインターフェイスモデルを生成)で生成されます。

1.ソフトウェアインターフェイスモデルからコードを生成する前に,次の図に示すように,生成されたモデルで视频源视频查看器をコメントアウトします。これらのブロックは手臂プロセッサで実行する必要はありません。手臂プロセッサはAXI4-Liteインターフェイスを使用してFPGAファブリックを制御しています。実際のビデオソースと表示インターフェイスはすべてFPGAファブリックで実行されています。ビデオソースは HDMI 入力から取得され、ビデオ出力は HDMI 出力に接続されているモニターに送信されます。

2.エクスターナルモードのソフトウェアインターフェイスモデルを構成してビルドします。

  1. 生成されたモデルで,[コンフィギュレーションパラメーター]ダイアログボックスを開きます。

  2. [ソルバー]を選択して[終了時間]を[正]に設定します。

  3. モデルメニューから[シミュレーション][モード][エクスターナル]を選択します。

  4. モデルツールストリップで[実行]ボタンをクリックします。嵌入式程序员はモデルを構築し,手臂実行可能ファイルをZedBoardハードウェアにダウンロードして,これを実行し,モデルをZedBoardハードウェアで実行しているこの実行可能ファイルに接続します。

3.これで,設計のハードウェア部分とソフトウェア部分がZynqハードウェアで実行されます。Sobel_Enableスイッチを使用して,ライブビデオ出力がエッジ検出器出力と元のビデオの間で切り替わることを確認します。阈值スイッチまたはBackground_Colorスイッチを使用して,ライブビデオ出力に対するエッジ検出のさまざまな影響を確認します。これらのパラメーター値は,エクスターナルモードとAXI4-Liteインターフェイスを介してZynqハードウェアに送信されます。

ビデオリファレンス設計のカスタマイズ

既存の(默认视频系统)リファレンス設計を拡張して前処理または後処理カメラパイプラインIPをさらに追加したり,別のSoCハードウェアまたはビデオカメラインターフェイスを使用したりできます。(默认视频系统)リファレンス設計は例であり,独自のカスタムリファレンス設計を作成する開始点になります。

たとえば,(默认视频系统)リファレンス設計には,次の図に示すように,YCbCrからRGBへの色空間変換を行う2つのIPコアが含まれています。これら2つのIPコアは,高密度脂蛋白编码器で生成されたものと[IPコアの生成]ワークフローを使用して生成されたものです。必要に応じて,他の前処理または後処理カメラパイプラインIPコアを生成してカスタムリファレンス設計に追加し,ビデオプラットフォームを拡張できます。

独自のカスタムリファレンス設計の作成の詳細については,为Zynq工作流定义自定义板和参考设计の例を参照してください。