![見出し画像](https://assets.st-note.com/production/uploads/images/163509136/rectangle_large_type_2_8da668074ac733daa091204955338055.jpeg?width=1200)
DDR3メモリのR/Wを確認しました
背景
SipeedのTang Mega 138KのDDR3メモリのR/Wテストを実施してみる。
コアボードには写真の通りDDR3メモリ2つが載ってます。60Kではメモリ1つ
![](https://assets.st-note.com/img/1732773356-h4aN6UyREbs3O1oFAKGwqDIW.jpg?width=1200)
設計データ
PIN配置をAddress、Dq、Dqs、We等接続
PLLを設定
テスト結果出力のテスト端子を増設
This is a project for the Write/Read test of the DDR3 memory of the TangMega138K. Data consistency has been confirmed.
昨日のテスト結果
![](https://assets.st-note.com/img/1732721712-rNtweRdVgxCopuhf1l28La0J.png?width=1200)
Writeデータ
64'h5883adb4c88ad596を4回
Readデータ
64'h5883adb4c88ad596を4回が観測されてます。
OKのようです。
一時的なテストではOKですが、ほかのパターンではRWデータが一致しません。タイミングをpsec単位で調整しないと駄目なようです。
本日の結果
まったく別のプロジェクトを作り直しました。DDR3メモリのWriteとReadを実施した結果は下記
![](https://assets.st-note.com/img/1732889607-7ZKFSwHEvn6aux2Wzf5R4dQC.png?width=1200)
Writeデータの下位32bitにアドレスを代入。
Readデータの下位32bitをアドレス(マイナス8)したものと比較
一致すればdata_ok=1、不一致ならばdata_err=1
→はい、あってます。
上のGitHubのプロジェクトもリファクタリング後に入れ替えておきます。
→入れ替えました
昨日の所感
実は別のデータを書き込んだ場合では特定のビットでWデータとRデータが異なるようです。このようなデジタルでもなくアナログでもないデバッグが一番大変なのですよね・・
※アニメ絵の表紙は(年上の方などへは)印象が悪いようなので、止めました。
今日の所感
深夜になる前にギリギリ、一旦はクローズ出来て良かった。
次はラズパイからPCIEを経由してDDR3メモリにWrite,ReadしてVerifyしてみます。あとはバーストモードの確認ですね。
今は
assign app_burst = 0;
となってます。バーストOFF
app_burst = 0。ですと、バースト長:4
だそうです。
だから256bit幅でデータが1CLK出力されるようです。
app_burst = 1。ですと、バースト帳:8
256bit幅でデータが2CLK出力されると。
これ以上の改良はGithubには載せません。最低限RW可能な現状のプロジェクトをGithubに載せておきます。
寝れそう・・・