FC2カウンター FPGAの部屋 2013年01月18日
FC2ブログ

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

FPGAの部屋

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

ZedBoard用CMOSカメラ回路の作製10(画像の上下を反転)

 前回、CMOSカメラの取り付けをミスって、画像が上下反転してしまったので、カメラ回路の方で上下を反転することにした。
mt9d111_inf_axi_master IPをAdd IPする際に、C_UPSIDE_DOWN パラメータを追加して、TRUEだったら、カメラ画像の上下を反転することにした。
ZedBoard_Cam_34_130117.png

HDLコードも修正して、論理合成、インプリメントしてみたところ、正常に写っているんですが、エッジにゴミが見えます。
ZedBoard_Cam_35_130118.jpg 

上の写真では見づらいかもしれませんが、エッジの付近を見るとノイズが見えます。上下反転せずに、上下逆さまで表示するとノイズは見えません。シミュレーションでもう一度確認することにします。

(追加)
理由がわかった気がします。
カメラ回路はMT9D111から受け取ったピクセルデータを非同期FIFOを介して、100MHz動作のAXIバスでPSに送って、DDR3 SDRAMに書き込んでいます。その時に、AXIバスかバックエンドが遅く、2つ以上のピクセルデータをバーストで書き込む場合がありました。その時のAXIバスのM_AXI_AWBURST のモードは、INCR でアドレス・インクリメント・モードです。ですが、上下反転の場合は、後ろのアドレスから書き込んでいくので、アドレス・デクリメント・モードで書かないとバーストできません。そんなモードはAXIバスには無いですし、DDR3 SDRAMのバースト・モードの関係から言ってもできない相談です。というわけで、代替え案を考える必要がありそうです。考えられる代替え案としては、次に示す二つがあると思われます。

1.Last In First Out (つまりスタックですね!)を付ける。(結構面倒そう)
2.AXIバスの動作周波数を200MHz(アナデバのHDMIサンプルのAXIバスの動作周波数は 200MHz です)にして、シングル転送限定とする。


1.は面倒なので、2.をやってみたいと思います。その前に、1ドル = 90円を超えてしまったので、もっと高くなる前に、基板を改訂してFusionPCBに投げようと思います。
  1. 2013年01月18日 05:52 |
  2. ZedBoard
  3. | トラックバック:0
  4. | コメント:2