FC2カウンター FPGAの部屋 秋月電子カメラモジュールOV5642を使う3(OV5642インターフェースIPの検討)
FC2ブログ

FPGAやCPLDの話題やFPGA用のツールの話題などです。 マニアックです。 日記も書きます。

FPGAの部屋

FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。Xilinx ISEの初心者の方には、FPGAリテラシーおよびチュートリアルのページをお勧めいたします。

秋月電子カメラモジュールOV5642を使う3(OV5642インターフェースIPの検討)

秋月電子カメラモジュールOV5642を使う2(OV5642の設定の検討)”の続き。

前回は、OV5642の設定レジスタの設定値を検討した。今回は、OV5642の信号を取り込むOV5642インターフェースIP を検討する。

OV5642の信号をVivado HLS で制作したインターフェースIP で受け取りたいが、Vivado HLS で作成したAXI4-Stream インターフェースのIP は for 文が始まることで初期化レイテンシがあることがある。処理化のレイテンシがあるとフリーランしているOV5642の画像データを取りこぼしてしまう。
例えば下の図は、AXI4-Stream インターフェースのMax Pooling層のシミュレーション波形だが、C Inputs -> ins(axis) -> ins_TREADY を見てみると、最初の方で 0 になっている部分があることが分かる。この 0 になっている部分はTDATA を受けられない期間なのだが、これがあるとプロトコル関係なくデータを出力するOV5642のデータを取りこぼしてしまう。
Max_Pooling_6_180225.png

そこで、最初にFIFO を置いてみればどうだろうか?そのFIFO がレイテンシなくデータを受け取れる必要はあるのだが、そうすれば、Vivado HLS で作ったOV5642インターフェースIP を接続できる。
OV5642_8_181204.png

Xilinx 社のIP として、AXI-Stream Data FIFO があるのでこれを使用できないか?と思う。 AXI-Stream Data FIFO は入力、出力に独立なクロックを選べるので、OV5642のPCLK のデータを受けて、AXI4-Stream のクロックのデータを出力することができる。HREF が 1 のときしか画像データは出ていないので、HREF 信号はTVALID に入れることにする。つまり、データが有効なときのみAXI-Stream Data FIFO にデータを取り込むことが出来る。
しかし、それでは画像フレームの先頭がわからない?そこで、VSYNC も一緒にTVALID に入れることにする。つまり、HREF とVSYNC のOR を取るわけだ。VSYNC はTUSER にも同時に入れておくと、VSYNC が 1 にアサートされたときのデータなのか?それともHREF が 1 になったきちんとしたデータなのか?が分かると思う。
もう1つ条件があってVSYNC が 1 のときはOV5642 の出力クロックのPCLK のデータレートでデータが入ってくるので、それを捌き切れるように AXI4-Stream の方のクロックをPCLK よりも周波数を高くしておこう。
HREF とVSYNC のタイミングは”秋月電子カメラモジュールOV5642を使う2(OV5642の設定の検討)”のタイミングチャート参照。
OV5642_9_181204.png

次は、AXI-Stream Data FIFO をHDLシミュレーションしてみて、レイテンシが無いかどうか?を確かめてみよう。
  1. 2018年12月04日 05:39 |
  2. CMOSイメージセンサ
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック URL
http://marsee101.blog19.fc2.com/tb.php/4376-36526e41
この記事にトラックバックする(FC2ブログユーザー)