主要内容

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

Zynqボードを使用したライブオーディオ入力のオーディオフィルターの実行

この例では,オーディオシステムをモデル化し,オーディオリファレンス設計を使用してZynq®ボードに実装する方法を示します。

はじめに

この例では次を行います。

  1. ローパス,バンドパス,ハイパスフィルターを使用するオーディオシステムをモデル化する

  2. オーディオリファレンス設計を使用してZynqボードに実装する

この例の目的は,ZedBoardまたはZyboボードのライン入力からオーディオ入力を受け取り,FPGAで処理してから,処理されたオーディオをスピーカーに送ることです。上の図は,このようなシステムの高度なアーキテクチャを示しています。周辺機器とのインターフェイスやアナログ信号とデジタル信号の間の変換には,オーディオコーデックを使用します。音频编解码器IPsはオーディオコーデックの構成,およびZynq Socとオーディオコーデックの間でのオーディオデータの転送に使用されます。フィルターIPはオーディオの処理に使用されます。手臂プロセッサは,使用するフィルターのタイプ(ローパス,バンドパス,ハイパス)を制御するために使用されます。

はじめる前に

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

  • Xilinx Zyn金宝appq平台HDL编码器支持包

  • Xilinx Zynq平台的嵌金宝app入式编码器支持包

  • Xilinx Vivado版本2019.1

  • ZedBoardまたはZyboボード

ZedBoardボードを設定するには,瞄准Xilinx Zynq平台の例の“Zynqハードウェアとツールの設定“の節を参照してください。以下に示すようにZedBoardで,モバイルまたはMP3プレーヤーのオーディオ入力をジャックに接続し,イヤフォンまたはスピーカーをHPH出来ジャックに接続します。Zyboボードも同じように設定できます。Zyboボードの設定については,为Zynq工作流定义自定义板和参考设计の例の”准备好泽博冲浪板“の節を参照してください。

はじめに

次のモデルでは,DUTサブシステムAudio_filterへの入力としてオーディオファイルが使用されます。このモデルを仿金宝app真软件でシミュレートすると,処理されたオーディオエフェクトが音频设备的作家ブロックを通じて聞こえ,フィルター処理されたオーディオ出力のスペクトログラムが频谱分析仪ブロックで表示されます。

modelname =“hdlcoder_audio_filter_biquad”;open_system (modelname);

ローパス,バンドパス,ハイパスフィルターを使用するシステムのモデル化

フィルター係数は,MATLAB®関数を使用して生成するか,仿金宝app真软件®で生成されます。このモデルでは,filterDesignerツールを使用して各タイプのフィルターのフィルター係数が生成されます。その後,それらのフィルター係数がエクスポートされてMATLABファイルとして保存されます。これらのフィルター係数が仿金宝app真软件でのフィルターの設計に使用されます。このモデルでは,対応するフィルター係数に応じて,金宝app仿真软件の離散IIRフィルターブロックが双二次ローパス,バンドパス,またはハイパスフィルターとして使用されます。

このモデルは,モデルを仿金宝app真软件でシミュレートしてテストできます。频谱分析仪で表示される周波数の範囲と Audio Device Writer ブロックを通じて聞こえるオーディオ エフェクトが、選択したフィルターのタイプに応じて変わるはずです。オーディオ入力に対して実行するフィルター処理のタイプは、过滤器选择ブロックを使用して選択されます。

Zynqボードのモデルのカスタマイズ

このモデルをZedBoardに実装するには,最初に,ZedBoardのオーディオ入力を受け取り,処理されたオーディオをZedBoardに送り返すリファレンス設計を作成しなければなりません。オーディオフィルターモデルを統合するリファレンス設計を作成する方法の詳細については,Zynqボードのオーディオシステム用のリファレンス設計のオーサリングの例を参照してください。

Zyboボードの場合は,在ZYBO板上编写音频系统参考设计を参照してください。

リファレンス設計では,左右のチャネルのオーディオデータが1つに組み合わされて単一チャネルが形成されます。下位24ビットを左チャネル,上24位ビットを右チャネルとして連結されます。上記の仿金宝app真软件モデルでは,Data_inが左右の2つのチャネルに分割されます。それらのゲインが2つに分けられ,2つのチャネルが一緒に追加されて単一チャネルが形成されます。このチャネルでフィルター処理が実行されます。

Data_inValid_inはAXI4-Stream信号です。AXI4-Streamインターフェイスの使用方法を理解するには,ZynqワークフローのAXI4-Streamインターフェイス入門の例の“簡易ストリーミングプロトコルを使用するストリーミングアルゴリズムのモデル化”の節を参照してください。Data_inは処理するデータを格納し,Valid_inはイネーブル信号として動作します。各フィルターはZedBoardまたはZyboボードの领导にマッピングされており,そのフィルターがオンとオフのどちらであるかが視覚的に示されます。

FilterSelect入力はAXI4 LITEインターフェイスで制御されます。

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

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

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

hdlsetuptoolpath (“ToolName”“Xilinx Vivado”“路径”“C: \ Xilinx \ Vivado \ 2019.1 \ bin \ vivado.bat ');

2.次のコマンドを使用して,IPリポジトリフォルダーとZedBoard登録ファイルの両方をMATLABパスに追加します。

目录(fullfile (matlabroot,“工具箱”“hdlcoder”“hdlcoderdemos”“customboards”“ipcore”));目录(fullfile (matlabroot,“工具箱”“hdlcoder”“hdlcoderdemos”“customboards”“ZedBoard”));

Zyboボードの場合は,次のコマンドを使用します。

目录(fullfile (matlabroot,“工具箱”“hdlcoder”“hdlcoderdemos”“customboards”“ipcore”));目录(fullfile (matlabroot,“工具箱”“hdlcoder”“hdlcoderdemos”“customboards”“ZYBO”));

3.DUTサブシステムhdlcoder_audio_filter_biquad / Audio_filterからHDLワークフローアドバイザーを起動するか,モデルの[发射HDL工作流顾问]ボックスをダブルクリックします。

このモデル例では,ZedBoardのターゲットインターフェイスの設定は既に保存されているため,タスク1.1 ~ 1.3の設定は自動的に読み込まれます。モデルのターゲットインターフェイス設定の保存の詳細については,在模型中保存目标硬件设置の例を参照してください。

1.1タスクでは,[ターゲットワークフロー]については[IPコアの生成)が選択され,[ターゲットプラットフォーム]については(ZedBoard)が選択されます。Zyboボードを使用している場合は,[ZedBoard]の代わりに(ZYBO)[ターゲットプラットフォーム]として選択します。

1.2タスクでは,[リファレンス設計]については【带AXI4流接口的音频系统】が選択されます。

リファレンス設計と滤波算法IPの間のオーディオデータの転送には,AXI4-Streamインターフェイスが使用されます。AXI4-Streamインターフェイスにはデータ(数据)に加え,データ有効(有效的),バックプレッシャー(准备好了),データの境界(TLAST)などの制御信号が含まれます。AXI4-Stream IPコアの生成には,少なくとも数据信号と有效的信号が必要です。1.3タスクでは,次の図に示すように[ターゲットプラットフォームインターフェイステーブル]が読み込まれます。オーディオデータストリーム端子Valid_inData_inValid_out,およびData_outはAXI4-Streamインターフェイスにマッピングされ,Pass_through_LED, BiQuad_LPF_LED, BiQuad_BPF_LED, BiQuad_HPF_LEDはZedBoardの领导にマッピングされ,制御パラメーター端子Filter_selectはAXI4-Liteインターフェイスにマッピングされます。Zyboボードを使用している場合は,(led通用[0:4]]を選択して领导をフィルターに手動でマッピングします。

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

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

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

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

1.タスク4.1[プロジェクトを作成)を実行します。このタスクでは,生成されたIPコアが带有AXI4流接口的音频系统リファレンス設計に挿入されます。最初の図に表示されているように,このリファレンス設計には,ZedBoardで送受信される内外のオーディオデータを処理するIPが含まれます。生成されたプロジェクトは完全なZynq設計であり,アルゴリズム部分(生成されたDUTアルゴリズムのIP)とプラットフォーム部分(リファレンス設計)が含まれます。オーディオフィルターモデルを統合するリファレンス設計を作成する方法の詳細については,Zynqボードのオーディオシステム用のリファレンス設計のオーサリングまたは在ZYBO板上编写音频系统参考设计の例を参照してください。

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

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

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

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

1.ソフトウェアインターフェイスモデルからコードを生成する前に,オーディオ入力ソースとオーディオ出力シンク,つまり从多媒体文件,数据类型转换,缓冲区,音频设备的作家,および频谱分析仪の各ブロックをコメントアウトします。これらのブロックは手臂プロセッサで実行する必要はありません。Audio_filterIP は FPGA ファブリックで *Filtering_Algorithm" として実行されています。ARM プロセッサは、フィルター タイプ (双二次ローパス、バンドパス、ハイパス、またはパススルー) の選択に AXI4-Lite インターフェイスを使用しています。

  1. 生成されたモデルで,[ハードウェア]ペインをクリックして[ハードウェア設定)に移動し,[コンフィギュレーションパラメーター]ダイアログボックスを開きます。

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

  3. [ハードウェア]ペインから[監視と調整)ボタンをクリックします。

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

使用するフィルターのタイプは,过滤器选择ブロックのドロップダウンオプションを使用して選択できます。

フィルター処理されたオーディオ出力は,ZynqボードのHPH出来ジャックにイヤフォンまたはスピーカーを接続して聴くことができます。選択されたフィルターに応じて,Zynqボードの対応する领导がオンになります。この例では,パススルー(フィルターを使用しない)オプションが選択されるとLD0がオンになり,双二次ローパスフィルターが選択されるとLD1がオンになり,双二次バンドパスフィルターが選択されるとLD2がオンになり,双二次ハイパスフィルターが選択されるとLD3がオンになります。