こんにちは、マス男です。

本日は、JTAG 接続を使用して FPGA デバイスが起動しているかを確認する方法についてご紹介します。

JTAG モードについて

JTAG ( Joint Test Action Group )とは集積回路やデバッグなどに用いる、テストアクセスポート規格 IEEE 1149.1 の通称です。
JTAG は4本の信号( TCK, TDO, TDI, TMS )で構成されています。アルテラ社製 FPGA は JTAG 規格をサポートしています。

JTAG モードはどのデバイス、コンフュギュレーション・モードよりも優先されます。

例えば、MSEL ピンが AS モードに設定されていても、 JTAG モードを優先します。Figure8-23 に JTAG 回路図を示します。

USB-Blaster で基板と書き込みツール( インテル® Quartus® Prime Programmer )を接続し、JTAG モードでコンフィギュレーションを実行します。

 

USB-Blaster の10 ピンコネクタの信号配置は「 Intel® FPGA Download Cable User Guide 」に記載されています( figure3、Table3 )。

 

これらの資料を参照し、 JTAG 回路の配線設計を行いました。

「 Auto Detect 」でデバイスを認識

基板上で JTAG 回路の配線ができました。JTAG を経由して、デバイスにアクセスできるかどうか、確認してみたいと思います。

Programmer を開く => Auto Detect をクリックする( 図1 )。

図1. Programmer 画面

図2 のメッセージウインドウが表示されました。 つまり、正しく JTAG 配線ができ、かつ、デバイスが起動していることが分かりました。

図2. デバイスを認識できた時 ○

一方、 JTAG 信号配線に不具合がある、または、デバイスが起動していないときは図3の警告メッセージが表示されます。

図3. デバイスを認識できない時 ×

コンフィギュレーション失敗…

「 Auto Detect 」で正しく JTAG 配線でき、かつ、デバイスが起動していることを確認できました。しかし、 JTAG コンフィギュレーション実行をした時、以下の Warning が表示され、 コンフィギュレーションが失敗しました…

 

Warning =>「 CONF_DONE pin failed to go high in device 1. 」

 

マス男 「 CONF_DONE pin って何?」

ハチ先輩のコラム『コンフィギュレーション・シーケンス』にその答えが書かれていました。(まさに、新人エンジニアの赤面ブログが役立つ瞬間!)

ハチ先輩のコラムによると、コンフィギュレーションが失敗する原因として、大きく分けて2種類の原因があるそうです。

 

 ・ツール操作時のミス
 ・基板に関する問題

 

実は、マス男の基板はコンフィギュレーションが成功する時もあれば、失敗する時もあり、動作がとても不安定であり、基板に関する問題だったのです。。

 

(続きはこちらをクリック←)