PCIバスの動作を見る
PCIバスの動作を観察する。(CQ出版 SpartanIIE300を使用)
CQ出版社から発売されている、Spartan-IIE300評価キットを使って、PCIバスの動作を観察してみましょう。
バウンダリスキャンができるまで
この評価ボードは下の図のような外観をしています。SpartanIIEのほかには、LVDSインタフェースや、SDRAM、フラッシュROM、そしてPCIコネクタがついています。

図1 Spartan-IIE300評価キットの外観
?
?
評価ボードとMITOUJTAGを実行するPCをJTAGで接続し、評価ボードの電源を入れるとXC2S300Eが認識されます。

図2 XC2S300Eが認識された
?
評価ボードで使用しているFPGAのパッケージはFine BGAの456なので、デバイスの絵の上で右クリックし、Change Deviceを実行して、XC2S300E_FG456を指定します。

図3 パッケージにBGA456を指定
?
2台のPCを用意して動作中の様子を観察
さて、ここで、もう一台PCを用意します。用意したのは、ヒューレットパッカードのデスクトップマシンで、Windows2000がインストールされています。以後、このマシンのことをターゲットマシンと呼ぶことにします。

図3 ヒューレットパッカードのターゲットマシン
?
ターゲットマシンの空いているPCIスロットに、評価ボードを挿し込みます。
図5 ターゲットマシンのPCIスロットに評価ボードを装着
?
このときターゲットマシンの電源コードは抜いておき、評価ボードのACアダプタも抜いておきます。ただし、評価ボードのスイッチは入れておきます。またJTAGコネクタも接続しておきます。
ターゲットマシンの電源プラグを挿して電源をONにすると、評価ボードのLEDが光り動作を始めたことがわかります。
バウンダリスキャンで評価ボードのFPGAをサンプリングしてみると、全部のピンが青く表示されてしまいます。
?

図6 とりあえず、サンプリングしてみる
?
SpartanIIは、何も書き込まれていない状態では、バウンダリスキャンでサンプリングすることができません。何らかのデータを書き込む必要があるようです。
そこで、Spartan-IIE300評価ボードのCDROMの中にある、サンプルデザインsp2e_top.bitをFPGAに書き込みます。このデザインは、PCIのバスには何も出力しないようです。
デザインを書き込んだ後、再びサンプリングすると、次の図のようにFPGAの各ピンの状態が表示されました。ここで、連続サンプリングを開始すると、FPGAの各端子が動いて見えます。

図7 データを書き込んだ後、FPGAのピンをサンプリング
?
調べたところ、FPGAのピンと各機能ブロックはおおよそ次の図のような対応になっているようです。

図8 FPGAのピン割り当てと機能ブロック
?
さて、UCFファイルを読み込んだら、ターゲットマシンを再起動し、MITOUJTAGのロジックアナライザを起動して、PCIバス上の信号を観察してみましょう。
ただし、ここで電源OFF-ONをしてしまうと、せっかく書き込んだFPGAのデータが消えてしまうので、Windowsからソフトウェア的に再起動を行います。
次の図のように、ターゲットマシンが起動してからWindowsのログオン画面が出るまでのPCIバスの動作を見ることができました。

図9 PCが起動する際のPCIバスの挙動
?
PCIに32本あるデータ/アドレスバスはほとんどどれも同じような動きをしています。
起動時に、12秒ほどPCIがほとんどアクセスされていない時期があるのがわかります。これは、DOSっぽい画面からWindowsっぽい画面に切り替わった直後に発生しています。
?
PCが起動するときのPCIバスの波形
ユーザ名とパスワードを入力しターゲットマシンにログインすると、再びPCIバスから盛んに信号が出力されます。PCIバスの活動は、ハードディスクの動きと同じようなタイミングで動くようです。
Windowsにログイン後、ハードディスクが盛んに動いているときには、PCIのデータバスにはデータが出てきますが、マウスもキーボードも動かさないアイドル状態の時にはほとんどPCIバスは活動していないようです。

図10 Windowsにログオンした際のPCIバスの挙動
?
ためしに、ターゲットマシン上でスキャンディスクを実行してみます。いろいろとPCIバスが盛んに動きます。
?

図11 スキャンディスクを実行してみる
?
シャットダウンとPCIバス
最後にターゲットマシンをシャットダウンします。シャットダウン後はFPGAの電源もOFFになります。

図12 ターゲットマシンをシャットダウン
?
このように、MITOUJTAGを使えば、PCIバスに接続されたFPGAを通じて、そのバスの挙動を観察することができることがお分かりいただけたかと思います。
?
?
ご注意
-
上記の手順でPCIバスの観察を行う場合には、お客様の責任のもとで行ってください。
-
いかなる事態が発生しようとも、弊社は責任を負いません。
-
JTAGバウンダリスキャンでは、SAMPLEコマンドのみ使用してください。EXTESTやINTESTを行うと、ターゲットPCの動作が停止するだけでなく、ターゲットPCやFPGAボードに損傷を与える可能性があります。
