FPGAの部屋FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。ISEの初心者の方には、FPGAリテラシーおよびチュートリアルのページをお勧めいたします。動作しないという問題点があったが解決できたようだ。以前の問題は0度のクロックと、180度のクロックを2つ使っていたので、それぞれのクロックを使用するFFをつなぐパスがクリティカルパスになってしまったということだった。200MHzなので5nsに収まっていれば良いところ、2.5nsにパスの遅延を収めなければならなくなっていた。そこで、ほとんどの動作クロックを0度クロックにすることにした。ステートマシンなども0度クロックに変更した。180度のクロックを使うところも最後の最後だけ180度クロックで受けるようにした。その結果、だいぶタイミングに余裕ができたようだ。変更の結果、タイミング変わってしまったので、タイミングを変更する必要が出てきた。SDRAMコントローラもできてから長いので、タイミングを忘れてしまった。SDRAMコントローラを2つインスタンシエーションして比較してみることにした。比較の結果タイミングが思い出されてきて修正できるようになってきた。修正の結果、まともに動作するようになって来た。ISE10.1.01でインプリメントしてみたところ、問題なくインプリメントできたようだ。これで、ちょっとしたアサーションを組み込んで試してみるのと、以前のテストベンチでハードにテストをしてみたいと思っている。アサーションを組み込んでみたらバグがわかった。バグを修正して、これでOKかな?とISEでインプリしたら、動作周波数が取れない。見てみると、バンクやROWアドレスが同一かどうか比較している回路から直接信号をもらっているので、組み合わせ回路が大きくなってしまった。これではだめなので、FF出力から引っ張ってきた。本当は組み合わせがいいのだが動作周波数が取れないので、仕方がない。これで1クロック分だけバンクとROWアドレスが合っているのに、もう一度プリチャージ、ACTコマンドを入れる可能性が出てしまったが、こっちのほうが動作周波数的には圧倒的にいいので、こっちにすることにした。URLhttps://marsee101.blog.fc2.com/tb.php/793-f9abf1bcこの記事にトラックバックする(FC2ブログユーザー)プロフィールAuthor:marseeFPGAの部屋へようこそ!FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。WEBブログデザイナ。