138096

2013年6月3日月曜日

LatticeECP3用DDR3 SDRAMCの作成 4

リードアクセスのバグはDQSBUFDのREADストローブのタイミングが原因だった。
ここは何か引っかかりそうだなと思っていたら、やはりそうなってしまった。

以下はバグありの場合の波形で、READストローブのLのタイミングがDQSの前半しか重なっていない。そのため、DATAVALIDがSCLKの1サイクル期間しか1になっていない。
リードは8バーストで行っているので2サイクル期間1になるのが期待する動作だ。


以下は修正後の波形だ。


DQSIはDDR3 SDRAMからドライブされる外部入力信号なので、DDR3 SDRAMの出力遅延やFPGAの入力バッファの伝搬遅延時間が重なり、FPGA内部クロックに対して遅れる。これに対して、READはFPGA内部信号なのでDQSI程は遅延しないが、この両者のタイミングが重なっていないとDATAVALIDが正しく生成されない。その上、READストローブはSCLK駆動信号なのでタイミング調整をしたとしてもその粒度は粗くなる。ということで、やはり、このREAD信号の部分は少々厄介だと感じているがどうか?? 一度合成しSTA(タイミング解析)をして実遅延を調べ、それを加味した状態でシミュレーションしたほうがいいかも知れないな。


0 件のコメント:

コメントを投稿

ERROR: Failed to spawn fakeroot worker to run ...

なにかと忙しくてなかなか趣味の時間を確保できない。 ...orz  家の開発機のOSはLinux Mintなのだが、最近バージョンを22に更新したところ、myCNC用のpetalinuxをビルドできなくなってしまった。ビルドの途中で ERROR: Failed to spawn ...