I have 2 devices, a Spartan 3 and a Spartan 6. I am trying to configure both of them through JTAG. One way to do this is to daisy chain the devices and use boundary scan. However , one thing I still don't understand is how do I select which device in the chain I want to program in Xilinx? Where is the option for this?

Second this is a proto board and the focus is on the ease of debugging. Will daisy chaining like this cause problems? Is there any easy way to put a single jumper to switch the JTAG pins between FPGA's or is it better to have 2 14 pin connectors and keep removing the programmer header and putting it back in?

What exactly needs to be done at the PCB design level? Is shorting the TMS,TDI,TDO,TCK from different FPGAS sufficient ?

  • 1
    \$\begingroup\$ Yes, the Xilinx imact tool does support selecting different devices daisy-chained through JTAG. When you set up impact you do a JTAG scan, and then select which target device you want to program. Several of the COTS FPGA boards I've used have both the FPGA itself and its associated configuration memory chip daisy-chained together, so that the configuration can be stored in the off-chip non-volatile memory. So, yes, it's possible (supported by JTAG), and the details of how to do it depend on what toolchain you are using, but should be in the tool documentation. \$\endgroup\$
    – MarkU
    Jan 12, 2016 at 5:36
  • \$\begingroup\$ I am using Xilinx Impact also. However I am confused as to where to enter the settings. Is there any specific document regarding this? \$\endgroup\$
    – red car
    Jan 12, 2016 at 5:39

1 Answer 1


I have used daisy chained Xilinx devices with no problems.

The key to programming the daisy chained devices is in the Xilinx iMPACT tool.

I think the tool should discover both of the devices in the chain and give you the chance to assign a configuration file to each device. You can do this by right clicking the device and assigning a configuration file.

Alternatively, you can manually add the devices and their configuration files to a blank iMPACT project. Right click on the window labelled "Boundary Scan" to add devices.

In either case, you can program, verify, and erase each individual device by right clicking it in the Boundary Scan window.

The appropriate connections on the board are as follows:

TMS and TCK : connect both devices in parallel
TDI and TDO : connect two devices in series

[POD TDI]--->[TDI device 1 TDO]--->[TDI device 2 TDO]--->[POD TDO]

Also see figure 5 in this app note.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.