FC2カウンター FPGAの部屋 基板のFPGA回路

FPGAやCPLDの話題やFPGA用のツールの話題などです。 マニアックです。 日記も書きます。

FPGAの部屋

FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。Xilinx ISEの初心者の方には、FPGAリテラシーおよびチュートリアルのページをお勧めいたします。

PCI-X+SDR SDRAMテスト回路(続き)

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#がおかしいですが、それはご愛嬌ということで。。。
pcix2sdr_sdram_080115.png

今度はSTOP#(pcix_stop_b)もアサートされていない。大丈夫そう。。。

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

スプリット完了で0x00001234というデータを返していますが、そのデータの下位8ビットがdata_bus(39:32)に現れています。
133MHzで(たぶん)SDR SDRAMに読み書きできました。よかった~。うれしいです。
でも、間違いということもあるので、オシロで動作周波数の確認を怠らないようにしないと。。。

2008/01/15:追記
SDRAMのクロックを”FPGA Editorの使い方3”を参考にテストポイントに配線してオシロで見てみた。そうしたら133MHzのクロックが確認できた。ちゃんと動作しているようだ。
  1. 2008年01月15日 15:14 |
  2. 基板のFPGA回路
  3. | トラックバック:0
  4. | コメント:0

PCI-X+SDR SDRAMテスト回路

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。
読み出したデータをスプリット完了でホストに通知しているのが黄色の部分。
pcix2sdr_sdram_070109.png

大体シミュレーションはOKそうなので、インプリメントして確かめてみようと思う。

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