こんにちは。

マクニカでインテル® FPGA 製品の技術サポートをしている インテル・F・ハナコ です。

 

MAX® 10 には、プログラミングなどで使用する JTAG ピン(TCK、TMS、TDI、TDO)の4ピンをユーザー・モード時にユーザー I/O ピンとして使用できる機能があります。
Quartus® Prime において、以下のオプションにより適応させます。

 

Enable JTAG pin sharing = On

 

このオプションは、Assignments メニュー > Device > Device and Pin Options の General カテゴリ内にあります。

この機能を ON にすると、ユーザー・モード中に標準のユーザー I/O ピンとして使用できる JTAGEN ピンが、専用ピンに 変身!
そして、この JTAGEN ピンに対して基板上で High または Low を供給することで、ユーザー・モード時の JTAG ピンが 専用ピンになったり、ユーザー I/O ピンになります。

ユーザー I/O ピンとして使用するときの注意点

JTAG ピンをユーザー・モード時にユーザー I/O ピンとして使用する場合、以下の注意点があります。

 

★ Enable JTAG pin sharing = On で使用する場合は、ユーザー・モード時、すべての JTAG ピンをシングルエンドの I/O ピンまたは

  電圧リファレンス形式の I/O ピンとして割り当てる。(推奨の入力バッファーはシュミットトリガー入力)

  その際、TDO ピンは出力または双方向ピンとして使用する。

  ※ TDO ピンを入力属性(未使用ピン処理の As input tri-stated 系 設定を含む)にしたデザインをプログラミングしてしまった場合、

    JTAGEN を High にプルアップしていても JTAG アクセスができなくなり、再プログラミングやイレース(消去)ができなくなります。

   ⇒ もし誤ってこの状態になってしまった場合の 復旧方法はこちら

 

  [参考:FAQ(メーカーのホームページより)]
  Why can’t I access the MAX 10 device via JTAG when the TDO pin is used as a user input pin in user mode?
  (今後のバージョンで改善予定ですが、Quartus Prime 17.0 ではまだ修正されていません。)

 

 

★ JTAGEN ピンは、JTAG ピンの取り扱いに応じて以下のように使用する。

コンフィグレーション・ステージ

Enable JTAG pin sharing

オプション

JTAGEN ピンの取り扱い

JTAG ピン

(TCK/TMS/TDI/TDO)

ユーザー・モード

ON

1KΩ 抵抗を介してプルダウンに接続

ユーザー I/O ピン

10KΩ 抵抗を介してプルアップ(※)に接続

専用 JTAG ピン

OFF

ユーザー I/O ピンとして使用

専用 JTAG ピン

※ プルアップ電源は VCCIO バンク1B(10M02 デバイスではバンク1)に接続する。

  JTAG ピンの動作を変更するには、インテルは、ジャンパー付きの3 ピンヘッダー

  または、他の切り替えメカニズムを使用することを推奨しています。

★ イニシャライズの段階で、JTAG ピンをトグルさせてはいけない。

 

★ イニシャライズの前に最低 5 クロック・サイクルの間、TAP(test access port)コントローラをリセット状態にし、

  TDI、TMS ピンを High、TCK ピンを Low にドライブする。

 

 

ユーザー・モード時に JTAG ピンをユーザー I/O ピンとして使用する場合には、これらを守ってください。

誤って JTAG アクセスできなくなった際の復旧方法

Enable JTAG pin sharing = On でユーザー・モード時の JTAG ピンをユーザー I/O ピンとして使用する場合は、TCK, TMS, TDI, TDO すべての JTAG ピンをシングルエンドの I/O ピンまたは電圧リファレンス形式の I/O ピンとして割り当て、かつ TDO のみ出力ピン、または双方向ピンとして使用する必要があります。

でも、もし誤って TDO ピンに入力ピンをアサインしたデザイン、あるいは TDO ピンを未使用ピンとして処理し入力属性が適用(As input tri-stated, As input tri-stated with bus-hold circuitry, As input tri-stated with weak pull-up)されたデザインの POF ファイルをプログラミングしてしまった場合、JTAGEN を High にプルアップしても JTAG アクセスができなくなり、再プログラミングやイレース(消去)ができなくなります。


その復旧方法をご紹介します。

 

1. nCONFIG、nSTATUS、CONF_DONE のいずれかのピンを強制的に Low に保持します。

  もし、すでに CFM に書き込まれているプログラムが 「Enable nCONFIG, nSTATUS, and CONF_DONE pins = OFF」 で処理した

  POF ファイルであった場合には、基板の電源を一旦 OFF にし、nCONFIG、nSTATUS、CONF_DONE のいずれかのピンを

  強制的に Low に保持した状態で基板の電源を ON にしてください。

 

2. Quartus Prime の Programmer により、MAX 10 の CFM を Erase します。

  Programmer での Erase 方法は、こちらのドキュメントを参考にしてください。

 

これにより JTAG へのアクセスが復旧します。

おすすめ記事/資料はこちら

MAX® 10 でコンフィグレーション・ピンをユーザー I/O ピンとして使用するときの注意点

おすすめ FAQ はこちら

コンフィギュレーション・デバイスに書き込んだデータを消去することはできますか?

How do I gain access to the JTAG pins of my MAX 10 device if I have enabled the JTAG pin sharing option, and the Quartus Prime Programmer is unable to auto detect the device?