画像表示期間を見極めるコツ

 ディスプレーに画像を表示する際、さまざまな制御信号をディスプレーに入力しますが、その中に水平同期信号と垂直同期信号というものがあります。

水平同期信号と垂直同期信号
[画像のクリックで拡大表示]

 水平同期信号は水平方向1ライン分の映像を表示するタイミング〔映像信号の横幅(800)の終端]で、走査線はこのタイミングで次の行の先頭に移ります。垂直同期信号は1画面分の映像を表示するタイミング〔映像信号の縦幅(525)の終端〕で、走査線はこのタイミングで再び一番上の行に移ります。走査線は水平方向に走る際、水平同期信号により次の行に移ります。この動作を映像信号の縦幅回繰り返し、最後の垂直同期信号を検出することによって1画面が終了となります。これら2つの同期信号のおかげで、映像の開始点が明確になり、画像表示期間が分かります。

 そのため、第1段階では初めに、この2種類の同期信号および画素情報を転送する期間を判定する回路(同期信号生成回路)を設計します。実際の回路記述では、まずフレーム内での走査線の位置を把握するために、水平・垂直の各方向についてカウンターを定義します。水平方向のカウンターは、1サイクルごとにカウントアップし、値が映像信号の水平方向の画素数(800)に到達したら、値をリセットします、垂直方向のカウンターは,水平方向のカウンターでリセットが発生するたびにカウントアップし、値が映像信号の垂直方向の画素数(525)に到達したらリセットします。あとは、画像表示期間の水平方向(640)と垂直方向(480)内に入っている場合のみ立ち上がる信号(期間有効信号)を作成し、それに従って画素を転送すればよいのです。

 次に、この回路がきちんと動作しているか確認するために、RGBの値を出力し簡単な色のパターンを生成する回路(パターン表示回路)を設計します。色のパターンは、下に示したような、カラーバーを少しずつずらしたものです。

表示するパターン
[画像のクリックで拡大表示]

 以上の同期信号生成回路とパターン表示回路を用いて、シミュレーションを行います。今回のシミュレーションでは、テキストファイルに回路の出力(画素のデータ)を書き込み、そのテキストファイルを画像として表示するアプリケーションを用いて、正しく上の画像が表示できているかどうかを検証します。当然、このシミュレーションで画像が乱れていると、実システムでも画像が乱れて表示されます。シミュレーションでも実システムでもきちんと上のようなパターンが表示されれば、画像表示期間にきちんと画素を転送できていることになり、表示回路の第1段階が終了となります。下の写真にあるのは、画像を表示するアプリケーションと回路シミュレーターです。これ以降の課題は、ひたすらこの2つとにらめっこすることになります…。

画像を表示するアプリケーションと回路シミュレーター
[画像のクリックで拡大表示]