FPGA活用回路&サンプル記述集(3) ―― ビデオ信号処理回路

大中 庸生

● ステート・マシン・カウンタの設計

 次にシーケンスを作るためのステート・マシン(図6-5)です.このシーケンスを繰り返すことによって動画となります.

zu06_05.gif


図6-5 INPUT_BLOCKのステート・マシン図

・IDLE_S

 IDLE_Sは最初のステートです.リセット解除後はF_WAIT_Sに移行します.

・F_WAIT_S

 F_WAIT_SはIO_CAM_FVALの立ち上がりを待ちます.立ち上がりが確認できたらD_WAIT_Sに移行します.それ以外は本ステートで待機します.

・L_WAIT_S

 L_WAIT_SはIO_CAM_LVALの立ち上がりを待ちます.立ち上がりが確認できたらD_WAIT_Sに移行します.それ以外はこのステートで待機します.

・D_WAIT_S

  D_WAIT_S は有効データを待つためのカウンタ(D_WAIT_CNT)が動作します.設定されたカウント数(30CLK+SIG_CAM_DELAY値)後,ACTIVE_Sに移行します.

・ACTIVE_S

 ACTIVE_Sは有効データのカウンタ(ACTIVE_CNT)が動作します.設定されたカウント数(ACTIVE_SET=1024CLK)後,L_END_Sに移行します.ACTIVE_Sに滞在している間にFIFOへのライト・リクエスト(FIFO_WRREQ)を発行します.

・L_END_S

 L_END_SはIO_CAM_LVALの立ち下がりを待ちます.立ち上がりが確認できたらLVAL_CNTを1カウント・アップさせます.このとき,LVAL_CNTと設定されたライン数(LVAL_SET)が一致した場合はEND_Sに移行し,それ以外の場合はL_WAIT_Sに移行します.

 END_Sはシーケンスの終了処理をするだけのステートです.LVAL_CNTをクリアし,次のクロックでIDLE_Sに移行します.

 入力部から処理部へのデータの受け渡しは,Dual-Clock FIFOを使っています(図6-6).これは処理部で使用できるデータに変換(異なるクロックの同期化)を行うためです.処理部からのSIG_CLKおよびSIG_CAM_RD_ENに同期してデータを出力しています.

zu06_06.gif
図6-6 Dual-Clock FIFOを設定

組み込みキャッチアップ

お知らせ 一覧を見る

電子書籍の最新刊! FPGAマガジン No.12『ARMコアFPGA×Linux初体験』好評発売中

FPGAマガジン No.11『性能UP! アルゴリズム×手仕上げHDL』好評発売中! PDF版もあります

PICK UP用語

EV(電気自動車)

関連記事

EnOcean

関連記事

Android

関連記事

ニュース 一覧を見る
Tech Villageブログ

渡辺のぼるのロボコン・プロモータ日記

2年ぶりのブログ更新w

2016年10月 9日

Hamana Project

Hamana-8最終打ち上げ報告(その2)

2012年6月26日