Program Using a JTAG Chain

About this task

You can program an FPGA that is part of a JTAG chain. The chain can include Trion®, Topaz, and Titanium FPGAs as well as other devices. You define your JTAG chain using a JTAG chain file. You import the JTAG chain file into the Programmer to perform programming. The JTAG chain file is an XML file (.xml) that includes all of the devices in the chain. For example:

Trion FPGA example:

<?xml version="1.0"?>
  
<chain>
   <device chip_num="1" id_code="0x00210a79" ir_width="4" istr_code="1100" />
   <device chip_num="2" id_code="0x00210a79" ir_width="4" istr_code="1100" />
   <device chip_num="3" id_code="0x00210a79" ir_width="4" istr_code="1100" />
</chain>

Titanium Topaz FPGA example:

<?xml version="1.0"?>
                
<chain>
   <device chip_num="1" id_code="0x10661A79" ir_width="5" istr_code="11000" />
   <device chip_num="2" id_code="0x10661A79" ir_width="5" istr_code="11000" />
   <device chip_num="3" id_code="0x10661A79" ir_width="5" istr_code="11000" />
</chain>
where:
  • chip_num is the device order starting from position 1.
  • id_code is the hexadecimal JEDEC device ID (all lowercase letters)
  • ir_width is the width of the instruction register in bits
  • istr_code is the binary IDCODE instruction
Note: To create a Test Data In (TDI) connection, use chip_num=”1” as the first device.
Note: For Trion FPGAs, use 1100 as the istr_code.
Note: For Titanium Topaz FPGAs, use 11000 as the istr_code.

To program using a JTAG chain:

Procedure

  1. Create a JTAG Chain File using a text editor.
  2. Open the Programmer.
  3. Choose your USB Target and Image.
  4. Select JTAG as the Programming Mode.
  5. Click the Import JCF toolbar button.
  6. Browse to your JTAG Chain File and click Open.
  7. Select which device you want to program in the drop-down list next to the JTAG Programming Mode option.
  8. Click Start Program.

Example

Note: If you implement both the daisy chain and JTAG chain together, ensure that the daisy chain is fully completed before executing the JTAG chain. Because the daisy chain requires CSIs to be connected to CSOs, the JTAG chain will only configure successfully when the CSIs are high.