描画回路の仕様は…

 それでは、描画回路の仕様を簡単に説明した後、私がどのように回路を設計していったかを紹介します。私が設計した描画回路の大まかなモジュール図を示します。

描画回路モジュール図
[画像のクリックで拡大表示]

 テクスチャー貼り付けや塗りつぶし処理には、フレームテクスチャーのアドレス、塗りつぶし色や透過色などのパラメータが必要です。このパラメータはCPUからコマンド形式で回路へ送ります。ここでは、これを描画コマンドと呼ぶことにします。

 描画コマンドをCPUから受け取り、それを描画コマンドFIFOへ保存するモジュールが描画レジスターです。描画コマンドには大まかに分けて、描画処理をするコマンドと、描画処理用のパラメータを設定するコマンドがあります。描画処理用のパラメータを設定するコマンドは、回路内の設定値を書き換えるだけなので瞬時に処理が完了しますが、描画処理をするコマンドは処理に時間がかかります。描画コマンドは同時に1つしか実行できないので、描画処理をするコマンドの実行中には他の描画コマンドを読み出すことができません。従って、描画コマンドをFIFOに一時保存して読み出した描画コマンドの処理が終わった後にFIFOから次の描画コマンドを読み込みます。

 描画パラメータの設定や、描画処理を開始するためには、描画コマンドを解析する必要があります。それを担うモジュールがコマンド解析部です。コマンドの解析によって取得したパラメータや描画処理の開始信号は、必要に応じてメモリーアクセス部や画素間演算部に送り、各モジュールで使用しています。

 メモリーアクセス部は、テクスチャーやフレームの画素値の読み出し、処理後の画素値の書き込みを行うモジュールです。テクスチャー、フレームの画素値はそれぞれテクスチャーFIFO、フレームFIFOに保存され、画素間演算・透過処理後の画素値は書き込みデータFIFOから読み出し出力されます。

 画素間演算部は、指定色の透過や描画パラメータによって指定された比率でフレームとテクスチャーの画素値をブレンドし、結果を書き込んでデータFIFOに保存するモジュールです。ステンシル機能は、テクスチャーの画素値が指定色であった場合、画素間演算を行わずフレームの画素値を書き込みデータFIFOに保存することで実現しました。以上が、描画回路モジュールの簡単な説明になります。