MicroBlazeとIIRフィルタコアとはPLBというバスでつながっており、MicroBlazeはレジスタ経由でIIRフィルタコアの入力ポートにアクセスすることができます。
Applicationタブを選択し、Add Software Application Projectをダブルクリックします。Project
Nameをdemo0としてOKをクリック。![](iirsmp42.gif)
Sourceを選択し、右クリックでAdd New File。
![](iirsmp43.gif)
Appsというディレクトリを作成し、ファイル名をdemo0.cとする。
![](iirsmp44.gif)
Sourcesを展開し、demo0.cをダブルクリックして開き、これをペーストする。
![](iirsmp45.gif)
Project: demo0を選択し、右クリックでMark to Initialize BRAMsを選択。
![](iirsmp48.gif)
Project: demo0のアイコン上の赤色の「Xマーク」が消え、他のプロジェクトにXマークが付いているのを確認(この場合プロジェクトが3つあり、その中のdemo0のみが有効になっているということ)。
![](iirsmp49.gif)
メニューのDevice ConfigurationからUpdate Bitstreamを選択。これによりdemo0.cを含んだビットストリームを生成します。
![](iirsmp46.gif)
下部のConsoleに「Done!」と出たら成功です。以降この手順に従ってFPGAにダウンロードしましょう。
シンセシスレポートを見るとIIRフィルタで乗算器を6個使っています。Biquadが6個あるからです(3段×2ch)。
iirfilters_0にはIIRフィルタが2個(Lch/Rch)入っていますが、それらの係数はレジスタに繋がっているのでMicroBlazeから自由に設定できます。demo0.cではLPFの係数を設定しています(以下は周波数特性、SoftOscillo2
Standard Editionで基板に白色雑音を入力し、その出力をFFTアナライザでアベレージングしたもの)。
![](iirlpf.gif)
また、demo0.cではHPF/BPF/BRFの係数設定をコメントアウトしているので、それらを有効にすると以下のように特性が変わります。
![](iirhpf.gif)
![](iirbpf.gif)
![](iirbrf.gif)
Biquad3段縦続接続なので係数の数は3×5=15個。15個のレジスタの値を書き換えることにより、さまざまな特性を実現することができます。
|