Introduction to Boundary Scan (ISE--IMPACT)
1) As illustrated in the following picture, we are able to communicate with our design through the Boundary Scan interface on the FPGA. And this Boundary Scan interface can be controlled by manipulating related software operations in ISE--IMPACT.

2)Essentially, Boundary Scan interface functions as a state machine. By going through four states (Reset, Shift-IR, Shift-DR, Update-DR) of this state machine, we can shift in data from ISE--IMPACT to the FPGA on board.
After you download your design into the FPGA board, click on "Start/Stop Debug Chain" in IMPACT to launch Boundary Scan configuration interface.

The following figure displays the interface of configuration for Boundary Scan.

3) Step1: reset the state machine (Boundary Scan) by clicking "Test Logic Reset". Then the icon "Test-Logic-Reset" in state diagram will be highlighted.

4) Step2: move to the state "Shift-IR" by controlling the TMS values, then shift the instruction code (0x03C2<14bits only>) into IR (Instruction Register) by controlling the TDI values.
4.1) Setup TMS values "01100" one by one to move the Boundary Scan state from "Test-Logic-Reset" to "Shift-IR".


![]()

![]()

![]()

![]()

The following figure shows that the state has been moved to "Shift-IR".

4.2) For User Port #2: Setup TDI
values "110000" one by one to shift the instruction (0x03<6bits
only>) into IR (Instruction Register). Note the LSB of the instruction will
be shifted into the register first, so that the instruction (0x03="000011")
will be sent in a reverse order. Also note that, at the time of sending the
last bit (MSB) of the instruction code, we also need to set TMS to '1' to exit
the current state ("Shift-IR") into the next state
("Exit-IR"). For

![]()

![]()

![]()

![]()

![]()

The following figure shows that the state has been moved to "Exit-IR".

5) Step3: move to the state "Shift-DR" by controlling the TMS values, then shift the 6-bit data (e.g. 0x31, i.e. "110001" , i.e. shifting in data in the order of "100011") into DR (Data Register) by controlling the TDI values.
5.1) Setup TMS values "1100" one by one to move the Boundary Scan state from "Exit-IR" to "Shift-DR".


![]()

![]()

![]()

The following figure shows that the state has been moved to "Shift-DR".

5.2) Setup TDI values "100011" (the reversed sequence of data 0x31 in this example) one by one to shift the data into DR (Data Register). Notice that, for the last bit, TMS is needed to set '1' to exit the current state ("Shift-DR") into the next state ("Exit-DR").

![]()

![]()

![]()

![]()

![]()

The following figure shows that the state has been moved to "Exit-DR".

6) Step4: Move the Boundary Scan state to "Update-DR" and go through this state. At the end of this state ("Update-DR"), the signal "Update" of the Boundary Scan unit will be set to '1'.


![]()

The following figure shows that the state has been moved to "Update-DR".

The following figure shows that the state has been moved from "Update-DR" to "Select-DR-Scan".

7) Repeat Step3 & Step4 to shift other data from ISE--IMPACT to Boundary Scan unit.