PCI-X+SDR SDRAMテスト回路のシミュレーションが今度は本当にうまく行った。
SDR SDRAMのモデルはMicron社のVerilogモデルmt48lc16m16a2.vを使わせていただいています。
下の図はModelSim SEでシミュレーションしたところ。PCI-XからSDR SDRAMへの読み書きするところだ。
最初に4番地に0x55667788をPCI-Xターゲット・ライトで書き込む。これがピンクで囲ったところ。次にそのデータをSDR SDRAMに書き込む。それが緑で囲った部分。
オレンジで囲んだ部分が、同じ4番地からPCI-Xターゲット・リードでデータを読み出すトランザクション。SDR SDRAMのリードデータが用意できないので、一旦スプリット応答でトランザクションを終了している。
青で囲った部分でSDR SDRAMのリードコマンドを発行してdata_busにSDR SDRAMのリードしたデータが出力されている。出力データは左から2番目のフィールドに0x55667788XXXXXXXXと表示されている。 XXXXXXXXの部分は書き込まれていないのでXになっているようだ。CAS Latencyは3。
読み出したデータをスプリット完了でホストに通知しているのが黄色の部分。
#こちらのモデルのせいでスプリット完了のときのTRDY#がおかしいですが、それはご愛嬌ということで。。。

今度はSTOP#(pcix_stop_b)もアサートされていない。大丈夫そう。。。
さらにISE9.1SP3でインプリメントして実際に確かめてみました。
そうするとLinux上からSDR SDRAMにシングル転送ですが、書き込み後読み出せることを確認できました。
下がホストPCからPCI-Xバス越しにボードのSDR SDRAMデータをリードしようとしてスプリット応答し、その後スプリット完了でデータを通知するときのチップスコープ波形です。

スプリット完了で0x00001234というデータを返していますが、そのデータの下位8ビットがdata_bus(39:32)に現れています。
133MHzで(たぶん)SDR SDRAMに読み書きできました。よかった~。うれしいです。
でも、間違いということもあるので、オシロで動作周波数の確認を怠らないようにしないと。。。
2008/01/15:追記
SDRAMのクロックを
”FPGA Editorの使い方3”を参考にテストポイントに配線してオシロで見てみた。そうしたら133MHzのクロックが確認できた。ちゃんと動作しているようだ。
- 2008年01月15日 15:14 |
- 基板のFPGA回路
-
| トラックバック:0
-
| コメント:0
PCI-X+SDR SDRAMテスト回路のシミュレーションがようやくうまくいくようになった。
SDR SDRAMのモデルはMicron社のVerilogモデルmt48lc16m16a2.vを使わせていただいています。
下の図はModelSim SEでシミュレーションしたところ。PCI-XからSDR SDRAMへの読み書きするところだ。
最初に4番地に0x55667788をPCI-Xターゲット・ライトで書き込む。これがピンクで囲ったところ。次にそのデータをSDR SDRAMに書き込む。それが緑で囲った部分。
オレンジで囲んだ部分が、同じ4番地からPCI-Xターゲット・リードでデータを読み出すトランザクション。SDR SDRAMのリードデータが用意できないので、一旦スプリット応答でトランザクションを終了している。
青で囲った部分でSDR SDRAMのリードコマンドを発行してdata_busにSDR SDRAMのリードしたデータが出力されている。出力データは左から2番目のフィールドに0x55667788XXXXXXXXと表示されている。XXXXXXXXの部分は書き込まれていないのでXになっているようだ。CAS Latencyは3。
読み出したデータをスプリット完了でホストに通知しているのが黄色の部分。

大体シミュレーションはOKそうなので、インプリメントして確かめてみようと思う。2007/01/12 追記:
インプリメントしてみたところ、間違っていました。STOP#がアサートされていて、TRDY#が1にドライブされていませんでした。ただいま修正中です。
テストモジュールということで、ろくなドキュメントを書かず(ブログをドキュメント代わりに)に作っていたので、その付けがきています。やはりドキュメントはしっかり書かないとだめですね。身にしみました。
- 2008年01月09日 15:33 |
- 基板のFPGA回路
-
| トラックバック:0
-
| コメント:0