2013年6月10日月曜日

LatticeECP3用DDR3 SDRAMCの作成 5

単純なリード/ライト、少し複雑なリード/ライトの他、CLやCWLを振っての動作が論理シミュレーションで確認できたので合成に着手している。  システムアーキテクチャはとりあえず以下のようにした。

IDDRX2DやODDRX2D等のハードマクロは以下のようなdirective (synthesis  foo)を記述する必要があった。

このdirectiveでハードマクロの属性を指定するようだ。合成後にPhysical viewerでハードマクロを見てみると以下のように表示された。

StrategyはTiming Strategyで行っている。

合成制約は以下のようにした。。。クロック周波数の設定と幾つかの非同期パスのBLOCK (dont_touch)設定程度だ。 因みに、今回はPLLを使っているのでクロック周波数の情報はPLLのネットリストからも取得できるらしく、下記のように明示しなくても自動で設定が挿入される。 が、明示しないと不安なので明示している。

で、合成は成功した。以下はPhysical Viewerで全体を表示した様子。

これを見るとかなりのリソースを喰っているように見えるが、Device utilization summaryをみると、SLICEの使用率は9%と少ない。

タイミングも一応metしている。

上記結果のfmaxの値を見ると、500MHz (1Gbps)まではいけるかも??
それは後々確認することにして、今はリードタイミングについて確認をしなければ。


0 件のコメント:

コメントを投稿

自作CPUで遊ぶ 25

まだ制御ソフトが完成していないので今まではスピンドルを移動するために一々簡単なプログラムを書いて移動させていたのだが、非常に面倒なのでCNCペンダント的なものを作ることにした。 右側の縦に2つ並んでいるスイッチ...