"Toggling PROGRAM resets the latched decodes for the EXTEST, CONFIGURE, and READBACK instructions."
However, the application note also states that the PROGRAM pin resets the TAP controller. Which of these statements is correct?
The sentence stating that the PROGRAM pin resets the TAP controller is incorrect. For XC4000 and Spartan devices, PROGRAM does not reset the TAP controller. The TAP state remains unchanged after the PROGRAM pin is pulsed.
Furthermore, the following behavior was confirmed experimentally:
1. Pulsing the PROGRAM pin does not reset the TAP controller (i.e., the TAP state is unaffected by PROG).
2. The contents of certain data registers are reset. The Boundary Scan register (used for EXTEST) is reset, while the Bypass register is not reset by the PROG pin.
3. The PROG pin does not reset the Instruction Register.
In practice, the TAP should be reset by clocking five "1"s on TMS after the PROGRAM pin is pulsed. This will solve any problems that may arise from cleared data registers, etc.