AN 556: インテルFPGAにおけるデザイン・セキュリティー機能の使用

ID 683269
日付 11/12/2019
Public
ドキュメント目次

28nmおよび20nm FPGAのJTAGセキュアモード

FPGAは、次の場合に電源投入時にJTAGセキュアモードになります。

  • 28nm FPGAの改ざん防止ビットをイネーブルしたとき
  • 20nm FPGAのJTAGセキュア設定をイネーブルしたとき
重要: 20nm FPGAでは、LOCK および UNLOCK のJTAG命令はサポートしていません。外部JTAGをロック解除して非必須のJTAG命令にアクセスすることはできません。

JTAGセキュアモードでは、多くのJTAG命令がディスエーブルされます。JTAGセキュアモードの28nmおよび20nm FPGAでは、必須のIEEE Std. 1149.1およびIEEE Std. 1149.6 BST JTAG命令のみを使用できます。非必須のJTAG命令を、FPGAがJTAGセキュアモードのときに実行しようとすると、BYPASS JTAG命令チェーンが選択され、命令は実行されません。

表 17.  必須および非必須のIEEE Std. 1149.1およびIEEE Std. 1149.6 BST JTAG命令
必須のIEEE Std. 1149.1およびIEEE Std. 1149.6 BST JTAG命令 非必須のIEEE Std. 1149.1およびIEEE Std. 1149.6 BST JTAG命令
  • BYPASS
  • EXTEST
  • IDCODE
  • LOCK
  • UNLOCK
  • SAMPLE/PRELOAD
  • SHIFT_EDERROR_REG
  • CONFIG_IO
  • CLAMP
  • EXTEST_PULSE 18
  • EXTEST_TRAIN 18
  • HIGHZ
  • KEY_CLR_VREG
  • KEY_VERIFY 18
  • PULSE_NCONFIG
  • USERCODE

28nm FPGAの場合、非必須のJTAG命令のアクセスをイネーブルするには、UNLOCK JTAG命令を発行して、JTAGセキュアモードを非アクティブ化してください。LOCK 命令を発行して、デバイスをJTAGセキュアモードに戻します。LOCKUNLOCK JTAG命令の両方を発行できるのは、ユーザーモード中で内部JTAGインターフェイスを使用した場合のみです。これら2つの命令の発行に外部JTAGピンを使用しても、JTAGセキュアモードのアクティブ化または非アクティブ化はできません。

LOCK および UNLOCK JTAG命令によってJTAGセキュアモードをアクティブ化または非アクティブ化できるのは、改ざん防止ビットがイネーブルされているFPGAでのみです。この2つの命令を改ざん防止ビットがディスエーブルされているデバイスで発行しても、JTAGセキュアモードはオンまたはオフになりません。

18 これらのJTAG命令は、JTAGセキュアモード時に20nm FPGAに対して実行することができます。