何とか合成も通るようになってきた。
結局、DCMのfeed back pathはLOOP_IN, OUTを使わずFPGA内部で戻すことにした。
現状、DRAMのclockは125MHzでdatasheet上の下限の周波数だ。
何とかせめて133MHzまではいきたい。と言っても性能は6%程度しか改善されないのだが、DRAM仕様の下限値でしか動かせないというのは残念な気がするので。。

125MHzでmetさせるのにも幾つかRTLの変更が必要だった。そのため、simulationでの確認も平行して行っている。
←はその結果だが、問題ないようだ。
timingがmetしない箇所はbank controllerの要求を調停する部分でこの論理が深くなってしまった。この部分を改善するのはなかなか難しい。
早く実機で動かしてみたい気持ちもあるが、
もう少しウニウニしてみよう。
私もSpartan-3A Starter KitでDDR2 SDRAMコントローラを作ったときは、150MHzで動作したのですが、カメラのフレームバッファに使ったら、125MHzでしかフィットしませんでした。単体で動いても、組み込むとだめなので、本当にIPとして動作を保証するのでしたら、位置相対制約をかけるか、絶対位置を固定しないとだめかもしれませんね。最もクリティカルパスを作らないように、HDLを組むのが最善であることには変わりませんが。。。
返信削除こんにちは。コメント有り難うございます。
返信削除そうでしたか。
やっぱSpartan3で込み入った論理を組むのは難しいですね。
配置制約をつかうとデザインがデバイス依存になってしまうので可能な限り避けたいのですが、最終的にはそこに頼らざるを得なくなるかも知れませんね。でも、もちょっとモガいてみます。^^;