GPIOでFIRフィルタコアを制御する
ここではGPIOを新たに追加し、FIRフィルタコアのCOEFFSEL端子の制御に使用します。

IP Catalogタブを選択し、General Purpose IOを展開し、XPS General...→Add IPを選択。


Bus Interfacesタブにxps_gpio_0が追加されましたが、まだバス(PLB)とつながっていないので、白丸をクリックで茶色くして接続する。


xps_gpio_0をダブルクリックし、Channel1を選択してGPIO Data Channel Widthを1にする。


Portsタブでfirfilters_0を展開し、coeffsel_sigと名前を付ける(このプルダウンはエディット可)。


xps_gpio_0を展開し、GPIO_IO_Oのプルダウンメニューを開き、coeffsel_sigを探して選択する。これによりGPIOがFIRフィルタのCOEFFSEL端子と繋がる。


AddressタブでGenerate Addressも忘れずに行う。これによりGPIOに適当なアドレスが割り振られる。


その後ApplicationタブのSourcesのdemo0.cを開き、これを追加します。MicroBlazeはDIPスイッチの値を見ながら、GPIOによってFIRフィルタのCOEFFSELを切り替えます。


ここでUpdate Bitstreamします。これでdemo0.cの変更がビットストリームに反映されます。


Consoleに何事もなくDone!と表示されれば成功です。以降この手順に従ってFPGAにダウンロードしましょう。

シンセシスレポートを見てRAMが遅延器に割り当てられているか確認しましょう。

firfilters_0にはFIRフィルタ(200タップ)が2個(Lch/Rch)入っており、それぞれ2種類の係数(LPF/HPF)を持っています。そしてCOEFFSELがLだとLPF、HだとHPFの係数を選択します。以下はLPFを選択したときの周波数特性です。DIPスイッチのビット0, 1をL, Lにしてみましょう。


DIPスイッチのビット0, 1のどちらかをHにするとHPFになります。以下はその周波数特性です(SoftOscillo2 Standard Editionで測定)。


Back


Top Page