思うところあって ( Voyage MPD の Starter Kit を使うことによって、CDからリッピングしたライブラリーを手軽に楽しめる環境ができたことが大きいです )、サンプリング周波数44.1/48kHzの信号をDSD256(11.2896/12.288MHz)に変換する回路を設計しました。多くの方と同じように、手持ちの一番充実した種類・分量の音源である44.1kHzのPCMを楽しみたいという気持ちからです。
まずはHDLによるRTLという手法で回路に変換可能な ( 専門的には「論理合成が可能」という言い方をします ) コードを額に汗を流しながら書き終えました。コードといってもいわゆるC言語等のプログラミング言語とは似ても似つかないもので、根っこの変換アーキテクチャーは同じでも、構成や実現方法が全然異なるものであります。
出来上がったコードを実際に物理的に動作する具体的なハードウェアに落として行くわけですが、規模が大きくなりますので、残念ながらUDA基板に統合、というのは全く不可能です。何しろ、フィルタの係数ビット1つ取ってみても32bitとしていますし、32bit×24bit の乗算器をFPGAのマクロを使用せずに構成するなど、基本ロジックセルどうしの配線に必要なリソースが膨大なのです。
そこで、UDAなどをトラポとし、受け側のDAIとして写真の別基板上に実装されたFPGAにインプリメントする計画を立てました。現状ではとりあえずトラポから44.1/48kHzのS/PDIFなりI2Sを受けてDSD256に変換し、それをDSD1794Aなどの既存のDACチップなどに突っ込んでD/A変換するのが手っ取り早いです。
DACチップを使わずに、DSD出力を数タップのアナログFIRフィルタを通すなどしてやれば、バッファリング・ゲイン調整などを施してDACチップレスなD/Aコンバータを作ることもできそうです。
下のチャートは、3.2kHz-0dBの正弦波を、出来上がった回路でDSD256に変換してみた結果です。測定系の事情により、周波数軸の目盛の数字は32倍にして結果を見てください (FFT によるDSDそのままの周波数スペクトラムを示しています)。
次に、参考までにKORGのAudioGateで1.6kHz-0dBの正弦波をDSD128に変換した場合のFFTもとってみました。同様に、測定系の事情で周波数軸の目盛の数字は16倍にして結果を見てください。
紆余曲折は続くと思いますが、時間を見つけて実装していきたいと思います。
続く、かも・・・