メインコンテンツ

基本的な Intel 評価ボードのオーディオ システム リファレンス設計の作成

この例では、Intel® Arrrow® SoC ボードでオーディオ アルゴリズムを実行してオーディオ入出力にアクセスするリファレンス設計を作成する方法を示します。

はじめに

この例では、オーディオ入力を Intel Arrow SoC Development Kit から受け取り、いくつかの処理を実行してから、処理されたオーディオ データを Arrow SoC Development Kit から送信するリファレンス設計を作成します。Arrow SoC でオーディオ処理を実行するには、次の 2 つのプロトコルが必要です。

  1. Arrow SoC の SSM2603 オーディオ コーデック チップを設定するための I2C。

  2. デジタル化されたオーディオ データをコーデック チップと Cyclone V FPGA の間でストリーミングするための I2S。

上記の図は、リファレンス設計が Filtering Algorithm IP でどのように使用されるかを示すアーキテクチャの概要図です。I2S IP は 50 MHz の周波数で動作しますが、それよりも高い周波数で Filtering Algorithm IP を実行する場合もあります。この周波数は、HDL ワークフロー アドバイザーの手順 1.4 で制御されます。この例では、フィルターは 50 MHz で動作するものと仮定します。Filtering Algorithm IP は、選択されたフィルターのタイプに応じて、着信オーディオ データの周波数範囲をフィルター処理し、フィルター処理されたオーディオ データを出力として渡します。上記の図において、Filtering Algorithm IP は Simulink でモデル化するメインのアルゴリズムです。ただし、I2C IP と I2S IP は作成する必要があります。ここでは、次の 3 つの選択肢があります。

  • 事前にパッケージ化された IP などが存在する場合はそれを使用する

  • Simulink でモデル化し、IP コア生成ワークフローを使用して IP コアを生成する

  • 古い形式の HDL コードを使用する。古い形式の HDL コードから IP を作成するには、Simulink モデルを使用して HDL コードをブラック ボックス化し、そのモデルから IP コアを生成します。I2C、I2S、PLL の各 IP と Cyclone V Hard Processor System (HPS) でリファレンス設計の一部が形成されます。

上記のリファレンス設計を作成するために使用される手順は次のとおりです。

  1. ペリフェラル インターフェイスの IP コアを生成

  2. Qsys でカスタム オーディオ コーデック リファレンス設計を作成

  3. リファレンス設計定義ファイルを作成

  4. リファレンス設計を検証

1. HDL ワークフロー アドバイザーを使用してペリフェラル インターフェイスの IP コアを生成

この例の場合は次のようになります。

  1. I2C IP は、Stateflow ブロックを使用してモデル化し、トライステート バッファーの古い形式の VHDL コードも使用して開発されます。

  2. I2S IP は、Simulink でモデル化して開発されます。

1.1 I2C IP の作成

オーディオ コーデック SSM2603 を設定するための I2C IP の作成については、Stateflow を使用して作成された I2C コントローラー モデルからの IP コアの生成を参照してください。

1.2 I2S IP の作成

Simulink で、I2S プロトコルを実装する MATLAB 関数を含むモデルを設計します。

modelname = 'hdlcoder_I2S_ssm2603';
open_system(modelname);

モデルでテスト ベンチを作成して、コーデックからの着信オーディオ データを再現します。

このデータを I2S の演算を実行する Subsystem ブロックにフィードします。スコープで Subsystem の出力を検証します。

DUT サブシステムから HDL ワークフロー アドバイザーを起動します。タスク 1.1 では、前に生成された I2C IP と同じ設定にします。タスク 1.2 では、ターゲット プラットフォーム インターフェイスを次のように設定します。

タスク 3.2 を実行し、IP コアを生成します。

2. Qsys でカスタム オーディオ コーデック リファレンス設計を作成

I2C および I2S の各 IP は、カスタム リファレンス設計に組み込まれます。カスタム リファレンス設計の作成については、Intel ワークフロー用のカスタムのボードとリファレンス設計の定義"Reference Design creation using Intel Quartus Prime" のセクションを参照してください。

このカスタム リファレンス設計を作成する際の主な注意点は次のとおりです。

  1. Arrow SoC のオーディオ コーデック チップの演算について、その理論を理解していなければなりません。

  2. HDL ワークフロー アドバイザーを使用して生成される IP コアでは、"IPCORE_CLK""AXI4_ACLK" を同じクロック ソースに接続します。

  3. このリファレンス設計では、オーディオ コーデックはマスター モードで動作するように設定されます。

Intel SoC のリファレンス設計と Arrow SoC のオーディオ コーデックの間で実行される信号は次のとおりです。

  1. "Bit_clock" は、サンプリング周波数、チャネルあたりのビット数、チャネル数の積です。マスター モードでオーディオ コーデックによって駆動されます。この例では、サンプリング周波数は 48 KHz、チャネル数は 2、チャネルあたりのビット数は 24 です。

  2. "Left_right_select" は、左のオーディオ チャネルのデータと右のオーディオ チャネルのデータを区別します。ビット クロックと同期しています。

  3. "Serial_data_in" は、コーデックからのアナログからデジタルに変換されたオーディオ データです。

  4. "Serial_data_out" は、アナログ方式に変換するためにコーデックに送られるデジタル オーディオ データです。

  5. "I2C_CLK""I2C_DATA" は、標準の I2C 信号です。

  6. "ADDR0""ADDR1" は、I2C アドレス ビットです。

  7. "Clk_24MHz" は、コーデックで必要な 24 MHz クロック信号です。

この例で作成されるカスタム オーディオ コーデック リファレンス設計は次のようになります。

3. リファレンス設計定義ファイルを作成

次のコードは、上記のリファレンス設計に対する Arrow SoC Development Kit リファレンス設計定義ファイル "plugin_rd.m" の内容を記述したものです。カスタム ボードを定義して登録する方法の詳細については、Intel ワークフロー用のカスタムのボードとリファレンス設計の定義を参照してください。

次のコマンドを使用して、"ArrowSoC" フォルダーを MATLAB パスに追加します。

example_root = (hdlcoder_intel_examples_root)
cd (example_root)
addpath(genpath('ArrowSoC'));

IP コア ファイル、qsys ファイル、tcl ファイル、plugin_rd ファイルなど、リファレンス設計に必要なすべてのファイルを MATLAB パスの "ArrowSoC" フォルダー内に次の階層を使用して追加します。ユーザーが生成した IP コア ファイルは "+quartus" フォルダーに含めます。plugin_rd.m、tcl ファイル、および qsys ファイルは、"+qsys_audio_filter_18_1" フォルダーのようなリファレンス設計プラグイン フォルダーに含めます。

4. リファレンス設計を検証

リファレンス設計とリファレンス設計内のインターフェイスが想定どおりに機能することを確認するには、アルゴリズム IP を介してオーディオの送信のみを行う Simulink モデルを設計し、リファレンス設計と統合して Arrow SoC でテストします。オーディオ ループ バックが聞こえなければなりません。

modelname = 'hdlcoder_audio_pass_through';
open_system(modelname);

モデル内のインターフェイスを次のように選択します。

モデルから IP コアを生成してオーディオ コーデック リファレンス設計に統合する方法については、Intel ボードへのオーディオ フィルターの実装を参照してください。