Sabotenboy's *sigh*
今年こそ本業を変えたいなぁ...^^;




失敗です、
- 512Mbなのでsdram_controller_0のColumn数を10にしてQSYSでGenerateして、
- FPGAをまるっとコンパイル、FPGA.sofでMAX10をコンフィグして、
- PROGのmain.cの512Mbを定義しているところのコメントを外し(256Mbはコメントアウト)、
- NiosII側もPROG_bspを新しいQSYS用に更新して、PROG_bspとPROGをCleanしてBuild、
- Debugを起動するところまでは期待通り

ところが全域への書き込み終了後、Verifyを始めると最初の4 or 8byteはいいものの、
その次辺りで書き込んだ内容と読み込み内容が不一致^^;

その後、PROGのmain.cをいじってDebugの繰り返し(i.e. printfデバッグ +α)
DRAMへのclock供給は50MHzだが、うちの100MHzロジアナで信号は拾えるかな?
SDRAMのあしに線材をハンダしてやればいけるかも...

症状としては一定しており、DQ15~DQ0のうちDQ10とDQ2が常に"1"になっている
他のbitは正しい結果を返しているので、

- 多分、書き込みは動いていそう(FPGAで割り振ったアドレスをまんま書き込んでいる)
- 何故かこれら2bitだけがHIのまま(VCCと短絡してる?、ピン配置を見ると隣は他のDQとVSSだから違う)、

- タイミングの関係でうまく読めてない?(物理的なピンの位置でパフォーマンスに差があるらしい)
- 但し0x80000000から始まる最初の4byteは必ずちゃんと読めてる(任意の書き込み値で検証)
- 0x80000004から始まる4byteも読めているようだが、0x80000008になるともう駄目
- それ以降は全域にわたってこの2bitが常に"1"になっている
  (e.g. 0x00000000で書き込んでも読み出し時は0x01000100)

タイミングとなると別途色々試さねば...
うーーん、誰か助けて^^;

- SDRAMが壊れてる

という可能性も排除出来ないが、こればかりはなんとも^^;

...あと使っているMAX10は3.3V単一電源だけど、PinのAssignをする画面を見ていたら、
2.5Vデフォで設定されていた、これって3.3Vにしなくていいのかな?
内部だけならCoreは1.2Vとかを内部で作っているようなので問題無いが、
物理的に外部接続すると(e.g. SDRAM)電源ロジックは影響あるよなぁ...と

(追記)
DRAMのアクセスタイミングを追いかけるなど...恐ろしい^^;
最初の1~2回はVerify出来ているので(=512Mb全域書き込み後、今度は全域読み込み)、
もしかして書き込みの後なら読めるかも
交互に読み書きしてみようかな、そしたらいよいよタイミングだなぁ...



コメント ( 0 ) | Trackback ( )


« MAX10 ADCまで... CPLD基板(MAXI... »
 
コメント
 
コメントはありません。
コメントを投稿する
 
名前
タイトル
URL
コメント
コメント利用規約に同意の上コメント投稿を行ってください。

数字4桁を入力し、投稿ボタンを押してください。