FPGAの部屋FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。ISEの初心者の方には、FPGAリテラシーおよびチュートリアルのページをお勧めいたします。SDRAMコントローラのバグが解消した。テストベンチを作っていただいたので、ほぼバグは取れたと思う。完璧なテストベンチでシミュレーションするとバグが見つかるのが早いので感激した。以前はシミュレーションは適当にやって、実機に入れてテストした。全部のモジュールができるまでテストができなかったし、最初はいい加減なテストベンチしか通してなかったので、バグがぼろぼろ出た。今回、たっくさんの書いたテストベンチを見て、こんな風に単体テストをやらなければ、という気持ちがわいてきた。テストベンチを書く手間が増えるが、結局このほうが、デバック時間を驚異的に短縮できるだろう。テストベンチを勉強させていただいて、こんなテストベンチが書けるようになろうと思った。SDRAMコントローラのバグはcntroller.vが4つ。カラムアドレスを超えてバーストする場合に、バンクをプリチャージしてACTコマンドを入れてからREADやWRITEコマンドを入れるが、その際にCLK0度とCLK180度のクロックの違いでアドレスが次のアドレスになってしまった。バンクアドレスのみCLK180度でラッチしたアドレスを使用した。dqs_enableを出力するステートマシンにバグがあった。WRITEして1つ間が開いてもう一度WRITEをするときにidle_detsステートに戻してしまったが、これはWRITEであることを判定してwrite_detsステートに遷移させる必要がある。bank_addrに入れるaddressのビットフィールドが間違っていた。wr_data.vが1つだった。ビット幅の制限がないと特に-の演算をする時に符号拡張が32ビットで行われるためにfullが出力されない現在あがっているZIPファイルは修正済みである。家でも根を詰めてデバックしていたので、いささか疲れてしまった。DDR2の方はそのうちにシミュレーションしてからバグフィックスを行う。コメント:0プロフィールAuthor:marseeFPGAの部屋へようこそ!FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。WEBブログデザイナ。