ΔΣ-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