ZYBO ボードのオーディオ システム用のリファレンス設計のオーサリング
この例では、ZYBO™ Z7-10 ボードでオーディオ アルゴリズムを実行してオーディオ入出力にアクセスするリファレンス設計を作成する方法を示します。
はじめる前に
この例を実行するには、次のソフトウェアとハードウェアをインストールして設定していなければなりません。
HDL Coder™ Support Package for Xilinx® FPGA and SoC Devices
Xilinx Vivado® (ドキュメンテーションに記載されている最新バージョン)
Digilent® Zybo Z7-10 Zynq 開発ボードとアクセサリ キット
この例は、Digilent® ZYBO Z7-20 ボードのカスタム リファレンス設計を作成する際の基準として使用できます。
ZYBO Z7-10 ボードを設定するには、Zynq ワークフロー用のカスタムのボードとリファレンス設計の定義の記事の "Set up the Zybo board" の節を参照してください。
はじめに
この例では、オーディオ入力を ZYBO Z7-10 ボードから受け取り、何らかの処理を実行してから、処理されたオーディオ データを ZYBO Z7-10 ボードに送り返すリファレンス設計を作成します。HDL ワークフロー アドバイザーを使用して周辺インターフェイスの IP コアも生成します。
ZYBO Z7-10 ボードでオーディオ処理を実行するには、次の 2 つのプロトコルが必要です。
ZYBO Z7-10 ボードの SSM2603 オーディオ コーデック チップを設定するための I2C。
デジタル化されたオーディオ データをコーデック チップと zynq ファブリックの間でストリーミングするための I2S。
上記の図は、リファレンス設計が ZYBO Z7-10 ボードにおいて Filtering Algorithm IP でどのように使用されるかを示すアーキテクチャの概要図です。この例は Zedboard のオーディオ システムのリファレンス設計と似ていますが、Zedboard では ADAU1761 オーディオ コーデック チップを使用するのに対し、ZYBO Z7-10 ボードでは SSM2603 オーディオ コーデック チップを使用する点が異なります。残りの動作パラメーターについては、Zedboard のオーディオ システムのリファレンス設計と同じです。詳細については、Zynq ボードのオーディオ システム用のリファレンス設計のオーサリングの例を参照してください。
上記のリファレンス設計を作成するために使用される手順は次のとおりです。
周辺インターフェイスの IP コアを生成
Vivado でカスタム オーディオ コーデック リファレンス設計を作成
リファレンス設計定義ファイルを作成
リファレンス設計を検証
1. HDL ワークフロー アドバイザーを使用して周辺インターフェイスの IP コアを生成
この例の場合は次のようになります。
I2C IP は、Stateflow® ブロックとトライステート バッファーの古い形式の VHDL コードを使用して開発されます。
I2S IP は、Simulink でモデル化して開発されます。
1.1 I2C IP の作成
オーディオ コーデック SSM2603 を設定するための I2C IP の作成については、オーディオ コーデック チップを構成するための I2C コントローラー IP の IP コア生成の記事を参照してください。
1.2 I2S IP の作成
Simulink® で、I2S プロトコルを実装する MATLAB® 関数を含むモデルを設計します。
modelname = 'hdlcoder_I2S_ssm2603';
open_system(modelname);
テストおよび IP コアの生成の手順は Zedboard I2S モデルと同じです。I2S IP の生成については、Zynq ボードのオーディオ システム用のリファレンス設計のオーサリングの例を参照してください。
2.Vivado でカスタム オーディオ コーデック リファレンス設計を作成
I2C、I2S、および FIFO の各 IP は、カスタム リファレンス設計に組み込まれます。カスタム リファレンス設計の作成については、Zynq ワークフロー用のカスタムのボードとリファレンス設計の定義の「Create and export a custom reference design using Xilinx Vivado」の節を参照してください。
このカスタム リファレンス設計を作成する際の主な注意点は次のとおりです。
ZYBO ボードのオーディオ コーデック チップの演算について、その理論を理解していなければなりません。
FIFO は、構成に応じて既定値に設定されます。
HDL ワークフロー アドバイザーを使用して生成される IP コアでは、IPCORE_CLK と AXI4_Lite_ACLK を同じクロック ソースに接続します。
Vivado でブロック設計を検証するときは、未接続の端子に関するものを除き、重大な警告がないことを確認します。
このリファレンス設計では、オーディオ コーデックはマスター モードで動作するように設定されます。
Zynq Soc のリファレンス設計と ZYBO ボードのオーディオ コーデックの間で実行される信号は次のとおりです。
"Bit_clock" は、サンプリング周波数、チャネルあたりのビット数、チャネル数の積です。マスター モードでオーディオ コーデックによって駆動されます。この例では、サンプリング周波数は 48 KHz、チャネル数は 2、チャネルあたりのビット数は 24 です。
"Serial_data_in" は、コーデックからのアナログからデジタルに変換されたオーディオ データです。
"Serial_data_out" は、アナログ方式に変換するためにコーデックに送られるデジタル オーディオ データです。
"I2C_CLK" と "I2C_DATA" は、標準の I2C 信号です。
"MUTEN" は、オーディオ コーデック SSM2603 に接続されたハードウェア ミュート ピンです。
"MCLK" は、コーデックで必要な 12.288 MHz クロック信号です。
この例で作成されるカスタム オーディオ コーデック リファレンス設計は次のようになります。
3.リファレンス設計定義ファイルを作成
次のコードは、上記のリファレンス設計に対する ZYBO ボード リファレンス設計定義ファイル "plugin_rd.m" の内容を記述したものです。カスタム ボードを定義して登録する方法の詳細については、Zynq ワークフロー用のカスタムのボードとリファレンス設計の定義の例を参照してください。
次のコマンドを使用して、"ZYBO" フォルダーを MATLAB パスに追加します。
example_root = (hdlcoder_amd_examples_root)
cd (example_root)
addpath(genpath('ZYBO'));
IP コア ファイル、XDC ファイル、plugin_rd ファイルなど、リファレンス設計に必要なすべてのファイルを MATLAB パスの "ZYBO" フォルダー内に次の階層を使用して追加します。ユーザーが生成した IP コア ファイルは "+vivado" フォルダーに含めます。plugin_rd.m、tcl ファイル、および xdc ファイルは、"+vivado_audio_filter_2020_2" フォルダーに含めます。
4.リファレンス設計を検証
リファレンス設計を検証する方法、およびモデルからオーディオ フィルターの IP コアを生成してオーディオ コーデック リファレンス設計に統合する方法については、Zynq ボードを使用したライブ オーディオ入力のオーディオ フィルターの実行の例を参照してください。