ソフト・マクロのCPUでLinuxを動かす(後編) ──OSの実装とネットワーク対応機器への応用
1)OPBインターフェース回路(opb_interface.vhd)
32ビット固定長でアクセスします.
スレーブ部は,ソフトウェアから設定できるレジスタを持ち,レジスタの設定をそのままLCDインターフェース回路に出力します.レジスタにはフレーム・バッファ(RGBデータが書き込まれているSDRAM)の先頭アドレスを格納するレジスタとLCDの電源をON/OFF制御するためのレジスタがあります.
バス・マスタ部は,LCDインターフェース回路からのSDRAMアドレスを受信し,SDRAMからRGBデータの読み込みを行います.同一のOPBに接続されているそのほかのバス・マスタのコアには,MicroBlazeの命令バスとデータ・バスがあります.今回はOPBのマスタ調停方式としてDynamic方式を使用し,均等にバスを調停しています.
バス・マスタ動作時のOPBインターフェース回路とLCDインターフェース回路のハンドシェークは,リクエスト信号とアクノリッジ信号の2本の信号で行うシンプルな方法としました.LCDインターフェース回路からリクエスト信号とSDRAMアドレスを送信し,その返答として,OPBインターフェース・コアからアクノリッジ信号とRGBデータを送信します(図6).
図6 バス・マスタ動作時のハンドシェーク
リクエスト信号とアクノリッジ信号の2本の信号で行うシンプルな方法である.