JTAG Monitoring (Detection) - JTAG Monitoring (Detection) - XAPP1098

Developing Tamper-Resistant Designs with UltraScale and UltraScale+ FPGAs (XAPP1098)

Document ID
XAPP1098
Release Date
2025-05-22
Revision
1.5.1 English

To detect any JTAG activity from within the device, you need to monitor any combination of the JTAG TCK, TDI, or TMS line(s) on a BSCANE2 primitive. Because any external JTAG command requires these lines to toggle, activity detectors on any or all of these lines can catch JTAG activity. For example, to monitor any rising edges on the TDI line, the circuit in the following figure could be used.

Figure 1. Example JTAG Activity Detector
x1098_07 Sheet.2 DFF DFF Sheet.3 BSCAN BSCAN Sheet.4 Sheet.5 Sheet.6 Sheet.7 Sheet.10 TDI TDI Sheet.11 ‘1’ ‘1’ Sheet.12 Detect Detect Sheet.13 D D Sheet.14 Clk Clk Sheet.15 Q Q Sheet.16 X1098_07_061115 X1098_07_061115

Any rising edge on the TDI line gets latched, and the detect output of the DFF remains at 1 until the part is reconfigured (that is, until the PROGRAM_B input is asserted). This method can be extended to monitor rising or falling edges on any of the TCK, TDI, or TMS signal lines. When any of the outputs of the JTAG detector DFFs are set, they can be used to initiate a tamper penalty.