I/O端子の入出力の方向を確認する

FPGAのI/O端子の入出力方向を確認するにはどのようにしたらよいでしょうか?

オシロやロジックアナライザでは、信号のHやLは確認できても、入出力の方向まではわかりません。

実はFPGAは、入出力端子の1つ1つが「現在、入力しているか出力しているか」といった情報を持っています。この情報はJTAG端子を通じて取得し、ソフト的に調べることができます。

JTAGを使えば入出力方向がわかる

MITOUJTAGを使うと、FPGAのBGA端子の1つ1つが、現在、入力なのか出力なのかを、リアルタイムにパソコンの画面上にわかりやすく可視化しすることができます。下の図はBGAパッケージFPGAの一部の端子です。

 

図1 デバイスの端子の状態表示の例

 

 

表示された端子の色は、赤(ピンク)がHレベル、青(水色)がLレベルを表しています。塗りつぶしなら出力、網掛けなら入力です。真っ赤と真っ黒は電源ピンです。JTAGを使うと入出力方向まで調べることができます。

 

 

図2 端子の表示の見方の例

波形で見れば一目瞭然

入出力の方向は波形で見れば一目瞭然です。次の図はDDR2 SDRAMにアクセスするFPGAの、SDRAMへのデータ端子の状態をキャプチャしたものです。

 

書き込み時にはFPGAが出力するので赤い線で、読み出し時にはFPGAが入力するので緑色の線で表示されています。入出力の方向が変わる信号は、その方向が分かっていればより効果的なデバッグができるでしょう。

 

図3 DDR2 SDRAMの端子の状態を波形として見てみる

IPコア埋め込みタイプのJTAGロジアナでは、端子の入出力方向はわからない

なお、FPGAにIPコアを埋め込むタイプのロジックアナライザ(各社からいろいろ出ていますが)は端子の入出力方向を調べることはできません。なぜならば、入出力方向の情報は端子に埋め込まれたものであり、JTAGバウンダリスキャンによってしか取得できないからです。

 

やはり、外側の信号をみるなら、バウンダリスキャン。これしかありません。