コンフィグ前のFPGAの端子を観る
起動していないFPGAに対するデバッグ
MITOUJTAGの強力なバウンダリスキャンを使うと、FPGAが起動する前からI/O端子の状態を見ることができます。FPGAには各社から埋め込みロジックアナライザIPコアなど様々なデバッグ手段が用意されていますが、起動前のFPGAに対して端子の状態を調べたり操作したり、また、起動に失敗した原因を探る方法は、MITOUJTAG以外の選択肢はありません。
この節では、MITOUJTAGを使うと起動前のFPGAに対してどのようなデバッグができるのかを示します。
起動していないFPGAの端子の状態を見る
Spartan-3A評価ボードではジャンパJ46を外すとFPGAがROMからコンフィギュレーションできなくなります。この状態で電源を入れ、FPGAの端子の状態をサンプリングしてみると、ほとんどすべてのピンが入力状態になって動いていないことがわかります。
そして、左上のほうに1つだけLを出力している(水色で塗りつぶされた)端子が見えますが、これはDONEピンです。また、いくつかの端子については、網掛けのままピンクと水色に点滅しているのがわかります。これは、FPGAの外から入力されたクロック信号です。

図1 コンフィギュレーションされる前でもクロックが入っているのがわかる
次の図は、FPGA起動前の状態で、Spartan-3A評価基板上のロータリエンコーダを回したり、スライドスイッチを動かしたときの端子の状態を波形としてキャプチャしたものです。FPGAが起動していないのに、クロックやスイッチなどの入力が見えているのがわかります。
図2 コンフィギュレーションされる前のFPGAの端子状態
モードピンの設定間違いを見つける
XILINX FPGAは、モードピン(M0~M2)の設定を間違えると起動することができません。しかし、MITOUJTAGを使えば、コンフィギュレーション前であっても、FPGA(XC3S700A FG484)のモードピンの状態を見ることができます。Spartan-3A評価ボードでは、モードピンはジャンパJ26に出ているので、このジャンパを抜き差してキャプチャした波形を次の図に示します。
もし、評価ボードではなく実機、でモードピンの設定が予期したとおりになっていないような場合では、すぐに原因がわかります。
また、モードピンは双方向ピンなので、バウンダリスキャンのEXTESTモードを使ってアクティブに操作することも可能です。MITOUJTAGの画面上でモードピンを動かし、基板上のプルダウン抵抗の部分をオシロで見る・・という今までにないデバッグ方法も可能になります。
図3 コンフィギュレーションされる前のFPGAのモードピン
PROG、INITなどの制御信号の間違いを発見する
FPGAを使用した回路を設計する上で間違いやすい事例のひとつとして、コンフィギュレーション用の信号(DONE、CCLK、INIT、PROG、D0)などの接続を間違えるということがあります。
MITOUJTAGを使うと、普通のFPGA設計方法では絶対に操作できない、「コンフィグ関連端子」をマウスクリックで操作し、コンフィグROMとFPGA間の接続や、それらの機能が正しく動作しているかを調べることができます。
例えば、以下のようにコンフィグROMの端子を操作し、FPGAの反応を調べます。
- D0ピンを操作する→FPGAのAB20番ピン(SPI_MISO)が変化する
- CFピンを操作する→ FPGAのC4番ピン(PROG_B)が変化する
- OE_RESETをHにしてCFピンをHにする→ FPGAのV13番ピン(FPGA_INIT_B)がHに変化し、コンフィグROMのCLK端子にクロックが供給される
- OE_RESETをHにしてCFピンをLにする→ FPGAのV13番ピン(FPGA_INIT_B)が変化する

図4 コンフィグROMの端子も簡単に操作できる
このように、コンフィグROMとFPGA間のような、従来の手法ではデバッグできなかった領域まで、MITOUJTAGはデバッグできます。逆に、MITOUJTAGを使わなければ、この部分をデバッグすることはできません。
コンフィギュレーション成否を見る
FPGAがコンフィギュレーションに成功しているかどうか、MITOUJTAGを使えば一目でわかります。コンフィギュレーションに成功したFPGAは、Hレベル、Lレベル、入力、出力と、端子がにぎやかに動いています。

図5 コンフィギュレーションされる前のFPGAのモードピン
それに対して、コンフィギュレーション前の(あるいは失敗した)FPGAは、ほとんどの端子が入力状態になっていてます。FPGAの内部プルアップ抵抗などによってHレベルやLレベルに固定され動いていません。
そして、DONEピンがLを出力しているのが確かめられます。
そのような状態でも、クロックやM0-M2、INIT、PROGなどのピンの状態は見えています。

図6 コンフィギュレーションされる前のFPGAのモードピン
コンフィギュレーション過程を見る
FPGAが正しくコンフィギュレーションされる過程を、JTAGロジックアナライザで見てみます。
コンフィグROMのCE端子がLに下がり、CLKが与えられ、D0から何らかのデータが出力され、約400msでコンフィグレーションがおこなわれているのがわかります。
コンフィギュレーションが行われると、FPGAが起動し、約100ms後にLEDの点滅が開始しているのが波形として見えています。
図7 コンフィギュレーション過程
このように、MITOUJTAGを使うと、FPGAの動作をコンフィギュレーション前から連続して追跡することができます。



