FC2カウンター FPGAの部屋 PCI-Xスプリット完了
FC2ブログ

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

FPGAの部屋

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

PCI-Xスプリット完了

ホストPCからPCI-Xターゲット・アクセスをしてきたときに、内部レジスタ以外はスプリット応答で返すことにした。その際に、PCIマスタ・モジュールを用いて、スプリット完了を64ビットアクセスで返したところ、ホストPCがNMIを受信してしまい、You probably have a hardware problem with your RAM chipsと表示が出てしまった。
ダンプデータも0番地(ボードのアクセス番地は4)は0、4番地(ボードのアクセス番地は0)は6、8番地は0、C番地は8。1つおきにデータが取れていない。
これがChipscopeで撮った波形。
pcix_split_completion_071218.png

最初のアクセスがTRDY#='0', DEVSEL#='1', STOP#='1'で応答しているのでスプリット応答、その次のアクセスのC/BE#が"C"で始まっているのでスプリット完了である。
最初のアクセスのリクエスタ・ファンクション番号は0、リクエスタ・デバイス番号は0、リクエスタ・バス番号は0。タグ番号は14。
ボードのファンクション番号は0、デバイス番号は2、バス番号は4。

スプリット完了時のアドレスフェーズのC/BE#はC。Split CompletionなのでOK。タグ番号は14、リクエスタの3つの番号は、0,0,0、ローアドレスも4でOK。(14000004)
アトリビュートフェーズのC/BE#は0。ファンクション番号は0、デバイス番号は2、バス番号は4。ビット29,30,31も0でOK。(00041004)
その後、データフェーズでC/BE#が0になっていて、オール1に保持されていないのは問題だ。(修正予定)

やはり、データフェーズでC/BE#をオール1にしても、ホストPCがNMIを受信してしまい、You probably have a hardware problem with your RAM chipsと表示が出るのは変わらない。
pcix_split_completion_071219.png


どうやら、Memory read DWORDに64ビットアクセスでスプリット完了を返すのは問題があるのかもしれない。そうではないようだ。32ビットアクセスでやってみたが同様にだめ。
1つバグがあった、下の図で、pcix_req_b_cがピンクの矢印で、いったんリクエストが解除されている。これは、PCI-Xマスタ転送メイン・ステートマシンがバグでバス・パーキングの状態になってしまったためである。このバグのためにスプリット完了トランザクションがなくなってしまっていた。
バグは解消できたが、まだNMIがかかってしまう。
pcix_split_completion_2_071219.png
  1. 2007年12月19日 13:44 |
  2. PCI
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック URL
http://marsee101.blog.fc2.com/tb.php/683-5643136b
この記事にトラックバックする(FC2ブログユーザー)