各社のFPGAはプロセスをはじめとして、機能・性能が向上しており、Xilinxのデバイスも進化しております。ボヤッとしているとどんどん取り残されてしまいます。
Xilinxは、Arm Cortex-A9のデュアルコアにDDRメモリインターフェース、そしてUSB、Gb EthernetやSDカードなどの周辺コントローラを組み合わせた、言ってみればラズパイに搭載されたブロードコムのプロセッサみたいなLSI、に、FPGAを組み合わせて1チップにしたZYNQというデバイスを出しています。
要するに、市販のプロセッサの物足りない部分に自作の大規模ロジックを組み合わせて使えますよ、という趣旨のデバイスなのです。
で、このZYNQというデバイスを積んだ評価ボードであるZYBOという基板が市販されており、私も1年ほど前に入手しておりまして、まずいことに長いこと死蔵していました。最近では秋月でも売っているんですね。敷居が下がったものです。
ラズパイB2は確かにすごいと思うのですが、私としては「オリジナルな回路で付加価値を!」、といった考え方を貫いていないとまずいですので、重い腰を上げてこの基板に取り組み始めました。はっきり言って面白いです。
仕事の用途ですと、画像に絡ませるといった方面のご要求が多そうですが、ここに書くからにはオーディオ用途でないとまずいわけで、まずはFPGA部の回路的にはZYBOのリファレンスデザインを使い、Linuxを載せてとにかく動かしてみました。
この基板もSDカードにファイル一式を入れておいてブートさせる仕組みですが、こういった組み込み開発ものは、OSを立ち上げるまでが第一の関門で、例外なく苦労させてくれます。
オーディオ的には、まずはLinux上のALSA経由で、SDに格納したWAVファイルを、ZYBOとUSB接続したUSDA_MINI基板から出力してみました。。
実験、という以外は特に面白くもないですね。おそらくMPDみたいなものを載せてもう少し実用的なものは作れるかもしれません。
FPGA部にまともなI2Sのコントローラ(24/192とDSD128くらいまで入出力できて、信号のサンプリング周波数(44.1kHz/48kHz)の倍数にあわせた水晶発振器クロックを外から入れられる)を作りこみ、プロセッサクロックの逓倍×分周に起因する、ジッタや大きな周波数偏差のない水晶発振クロックでI2Sから録音・再生できるようなものを作りたいと思っています。もちろんMCLKもきちんと出力して・・・。
また、ソフト的には、MPDよりもDLNAを実装したいな~、という想いがあります。