XilinxのISEでデジタルフィルタを作成するには、係数をHDLソースにベタ書きするか、CoreGenで作成したROMの初期値として係数を読みこませ、デジタルフィルタ処理を行うモジュールから呼び出すのが王道・・・?ではないかと思います。
この半月ほど、チャレンジしてきましたが、デジタルフィルタ処理のモジュールでどうやっても所要の速度が得られず挫折。仕方ないのでお勉強にはなりませんが、CoreGenの力を借りることにします。デジタルフィルタは基本的な処理なので、標準で登録されています。

"FIR Compiler v4.0"
オーバサンプリングやダウンサンプリングにも対応しています。今回は、入出力のサンプルレートは同一にしました。
"FIR Compiler"を使うには、フィルタ係数を記録したCOEファイルを作成しておく必要があります。ちなみにCOEファイルはROMを作成するときにも使われますが微妙に中身が異なります。

"FIR Compiler"でのCOEファイルフォーマット
拡張子がCOEでテキストファイル形式です。coefficient_radixは、係数の基数を指定します。係数が2進数、10進数、16進数のとき、それぞれ2、10、16となります。
設計ツールから書き出した係数データは"TIフォーマット"でしたので、適宜整形します。エディタやエクセルにコピペして手を加えてCOEファイルを作成しました。

COEファイルを作成
0 件のコメント:
コメントを投稿