ΔΣ-ADC実験編 その20 補償フィルタの設計で、苦戦しています
1.せっかくCICフィルタでdecimationしたのですから
補償フィルタ(fir
filter)の設計は、
1.fir
filterの係数は、romに格納する。
2.CICフィルタの出力を、一旦 メモリーに保存して読み出す。
3.sysDSPの macを使用する。
この方針で行こうと、思うのですが、
タイミングが、うまく取れなくて、苦戦しております。
出来上がってから、書こうと思っていたのですが、
これが、中々できませんねん、トホホ。
ここは、ひとつ、
整理の意味も込めて、各ステージをもっかい、見直してみます。
2.補償フィルタ ( fir fliter
)の設計
255taps + 0 = 256taps ( ALTERA社 AN455から抜粋 )
3. fir filter
の係数を、romに格納して、読み出す
これは、以前にも、やった事があります。
LatticeXP2 メモリ使用ガイド 参照
8bit アドレス 20bit データ
読み出しのタイミングについて
4.CICフィルタの出力を、ramに書き込み、そして読み込む
LatticeXP2 メモリ使用ガイドを参照して、シングルポートram(EBRベース)を、使いました。
先ず、decimateされたクロックの立ち上がりで、ramに書き込み
そして、次の decimateされたクロックの立ち上がりまでに、256個読み込む。
書き込んで、 すぐに 書き込んだアドレスのデータから、256個読み出します。
5.sysDSPの macを使う
256個を一巡したら、LD(値 ゼロ)の値で、accumulatorをクリアして
再び256回のmacによる計算を行う
6.上記3種類の、タイミングを調整する
これが、まだ、できてませんねん......
感じとしては、こんな様子です。
タイミング的には、オンメモリーで全て計算すれば、fs=56.8MHzで 128tapsのfirが計算できますから
十分だと、思うのですが。
H22.10.12