PetalinuxでWavファイルを再生する(1)
Analog Devices社のIPを準備する
公開日:2023年7月31日
本記事では、Petalinux上に配置したwavファイルを、FPGA経由で音声再生するところまでを実現していきます。
今回は、Zybo Z7-20に実装されているAnalog Devices社 Codec IC SSM2603とのインターフェースとして、同社の提供するI2S Transmitter IPを使用します。 Analog Devices社は、多くの有用なIP、Library、DriverをGitHubで公開しています。
この記事では、必要なIPのソース入手からIPビルドするまでを記載しています。
Analog Devices社のHDL Libraryをダウンロードする
下記のリポジトリから、Analog Devices社のHDL Libraryを任意のディレクトリにダウンロードします。ここでは、adiというディレクトリにダウンロードしています。
$ mkdir adi
$ cd adi
$ git clone https://github.com/analogdevicesinc/hdl.git
Cloning into 'hdl'...
remote: Enumerating objects: 70997, done.
remote: Counting objects: 100% (528/528), done.
remote: Compressing objects: 100% (315/315), done.
remote: Total 70997 (delta 232), reused 430 (delta 204), pack-reused 70469
Receiving objects: 100% (70997/70997), 19.88 MiB | 5.40 MiB/s, done.
Resolving deltas: 100% (50392/50392), done.
$ ls hdl
LICENSE LICENSE_BSD-1-Clause LICENSE_LGPL README.md library quiet.mk
LICENSE_ADIBSD LICENSE_GPL2 Makefile docs projects scripts
axi_i2s_adiをビルドする
axi_i2s_adiというIPをビルドします。 ビルドが成功すると、下記のように"... OK"と出力されます。
$ cd hdl/library/axi_i2s_adi
$ export ADI_IGNORE_VERSION_CHECK=1
$ make
Building axi_i2s_adi library [/home/.../adi/hdl/library/axi_i2s_adi/axi_i2s_adi_ip.log] ... OK
これでVivadoで利用できるIPが作成できました。
注意
執筆時点でのHDL Library(2021_r1)は、Vivado 2022.1には対応していないため、ADI_IGNORE_VERSION_CHECKを1に設定しないとビルドエラーになり、ビルドログ(hdl/library/axi_i2s_adi/axi_i2s_adi_ip.log)に下記のようなエラーメッセージが出力されます。
export ADI_IGNORE_VERSION_CHECK=1
を先に実行することで回避します。
尚、axi_i2s_adiはVivado 2022.1で使用しても問題ありませんでした。
ERROR: vivado version mismatch; expected 2021.2, got 2022.1. This ERROR message can be down-graded to CRITICAL WARNING by setting ADI_IGNORE_VERSION_CHECK environment variable to 1. Be aware that ADI will not support you, if you are using a different tool version.
※文中に記載されている各種名称、会社名、商品名などは各社の商標もしくは登録商標です。