MicroBlazeとIIRフィルタコアとはPLBというバスでつながっており、MicroBlazeはレジスタ経由でIIRフィルタコアの入力ポートにアクセスすることができます。
Applicationタブを選択し、Add Software Application Projectをダブルクリックします。Project
Nameをdemo0としてOKをクリック。
Sourceを選択し、右クリックでAdd New File。

Appsというディレクトリを作成し、ファイル名をdemo0.cとする。

Sourcesを展開し、demo0.cをダブルクリックして開き、これをペーストする。

Project: demo0を選択し、右クリックでMark to Initialize BRAMsを選択。

Project: demo0のアイコン上の赤色の「Xマーク」が消え、他のプロジェクトにXマークが付いているのを確認(この場合プロジェクトが3つあり、その中のdemo0のみが有効になっているということ)。

メニューのDevice ConfigurationからUpdate Bitstreamを選択。これによりdemo0.cを含んだビットストリームを生成します。

下部のConsoleに「Done!」と出たら成功です。以降この手順に従ってFPGAにダウンロードしましょう。
シンセシスレポートを見るとIIRフィルタで乗算器を6個使っています。Biquadが6個あるからです(3段×2ch)。
iirfilters_0にはIIRフィルタが2個(Lch/Rch)入っていますが、それらの係数はレジスタに繋がっているのでMicroBlazeから自由に設定できます。demo0.cではLPFの係数を設定しています(以下は周波数特性、SoftOscillo2
Standard Editionで基板に白色雑音を入力し、その出力をFFTアナライザでアベレージングしたもの)。

また、demo0.cではHPF/BPF/BRFの係数設定をコメントアウトしているので、それらを有効にすると以下のように特性が変わります。



Biquad3段縦続接続なので係数の数は3×5=15個。15個のレジスタの値を書き換えることにより、さまざまな特性を実現することができます。
|