FC2カウンター FPGAの部屋 Spartan-3A Starter KitでCMOSカメラ・ディスプレイ回路19(DDR2 SDRAMコントローラのバグフィック)
FC2ブログ

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

FPGAの部屋

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

Spartan-3A Starter KitでCMOSカメラ・ディスプレイ回路19(DDR2 SDRAMコントローラのバグフィック)

”Spartan-3A Starter KitでCMOSカメラ・ディスプレイ回路18(DDR2 SDRAMコントローラのバグ)”でDDR2 SDRAMコントローラにバグがあることがわかったので修正を試みた。
まずは、シミュレーションで問題の状態が再現できれば、バグフィックスに最適な環境となるので、Veritak シミュレーションによるバグの再現に努力した。そうすると、バグが再現できた。
Veritak シミュレーションによるバグ波形を下に示す。
CamDispCntrler_DDR2_33_100826.png

前回のChipScope Proの波形と見比べると、同様にプリチャージ・コマンドの前にREADコマンドが発行されていることがわかる。
CamDispCntrler_DDR2_31_100826.png

バグを再現できたので、どこがバグっているかを調べた。そうすると、Controller.vにバグがあった。現在、バンクをアクテイブにしているときは、以前のROW、バンクアドレスとこれから発行されるREADやWRITEのアドレスを比較して違っていたら、プリチャージしてアクティベート・コマンドを発行するようにステートマシンが組んであったが、その比較するところにバグがあった。早速修正して、もう一度シミュレーションを行った。それを下図に示す。
CamDispCntrler_DDR2_34_100826.png

きちんとプリチャージしてから、アクティベート、READコマンドの順になった。
次に修正後のChipScope Proの波形を下に示す。
CamDispCntrler_DDR2_35_100827.png

シミュレーション同様に修正されたことがわかる。
さて、ここまでうまく行ったので、今度はディスプレイにCMOSカメラの画像を表示してみる。まずは白黒でやってみた。それが下図。
CamDispCntrler_DDR2_pict_13_100826.jpg

やったーー。。。ノイズは見事になくなった。が、モアレのような感じがある。これは、RGB4ビット幅なので、しかたないのかな?それに画素がちらついている感がある。

DDR2 SDRAMコントローラにバグが有ることがわかったので、以前のダウンロード用のソースも変更したいと思う。ちなみにバーストテストでは、WriteデータをすぐにReadしているので、ROWアドレスやバンクが変わらずに、バグがでなかった。今回はWriteとReadを非同期で行っているので、バグがわかった。やはり、検証方法の考察は大事だということがわかった。と言っても売り物のIPとしてだしているわけではないので、ゆっくりと検証したいと思う。今やっているアプリも自作のDDR2 SDRAMコントローラの検証としてもやっているつもりなのだ。
  1. 2010年08月27日 05:45 |
  2. 画像処理
  3. | トラックバック:0
  4. | コメント:2

コメント

やっぱりバンク境界は、鬼門ですねぇ

あと、リフレッシュ制御?
  1. 2010/08/27(金) 20:49:23 |
  2. URL |
  3. アプロ #-
  4. [ 編集 ]

そうですね。リフレッシュ境界は大丈夫だと思うのですが、後でアサーションを追加しようと思っています。
それよりも、SRAMの時は、Write、Read交互だったので、簡単だったのですが、今度は特にVGAコントローラはかなりバッファリングしてあるので、どこか最初か?データを見ただけでは良くわかりません。数はあっていると思うのですが、H, Vカウンタとデータの境界があっているか?その辺を検証しようと思っています。
  1. 2010/08/27(金) 21:00:32 |
  2. URL |
  3. marsee #f1oWVgn2
  4. [ 編集 ]

コメントの投稿


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

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