ソフト・マクロのCPUでLinuxを動かす(前編) ――FPGAベースのボード・コンピュータを設計する
● 割り込みコントローラ
MicroBlazeには割り込み入力が一つしかありません. しかし,多くの組み込み機器では,複数の割り込み入力を必要とします.そこで,MicroBlazeの外部にOPB割り込みコントローラ(以下「OPB INTC」)を接続しました.
OPB INTCは最大32本の割り込み入力が可能で,それぞれの入力に対して"H"レベル,"L"レベル,立ち上がりエッジ,立ち下がりエッジを指定できます.今回はOPBタイマ("H"レベル),OPB UART Lite(立ち上がりエッジ),LANコントローラ("H"レベル)の三つの割り込みを使用しています.また,ユーザ割り込みのためのexternal_intという機能を用意しました.実際には外部ポートと割り込みコントローラを接続するだけの機能です.
OPB INTCでは,各割り込み入力に対して,それぞれイネーブル,ステータス,アクノリッジの各フラグと割り込み制御のためのイネーブル・フラグがあります.ソフトウェアからOPB INTCのステータス・レジスタに'1'を書き込むことで,疑似的に割り込みを発生させることができます.割り込みハンドラのデバッグ時には非常に便利な機能です.