
こんにちは。
マクニカでインテル® 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 ピンとして使用する場合、以下の注意点があります。
★ ユーザー・モード時、すべての 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 ピンヘッダー
または、他の切り替えメカニズムを使用することを推奨しています。
★ Signal Tap Logic Analyzer IP、JTAG-to- Avalon Master Bridge IP、および その他の JTAG 関連 IP は使用できない。
ユーザー・モード時に 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 へのアクセスが復旧します。