Warning to KiCad Users: Avoid all links to kicad - pcb.org – Use kicad.org

Starting Electronics needs your help! Please make a donation to help cover our hosting and other costs. Click the donate button to send a donation of any amount.

Donations Received:

Xilinx CPLD Programming using the Amontec JTAGkey in Windows 7

Created on: 19 January 2013

How to program a Xilinx CPLD using the Amontec JTAGkey USB JTAG tool in Windows 7. This article shows how to install the software for programming a CPLD using the JTAGkey and then how to use the software to do the programming.

In order to load a configuration file to the CPLD, the following steps need to be taken:

  • Connect the JTAGkey to the target CPLD board using the flying lead cable
  • Generate a SVF file in Xilinx iMPACT from a CPLD project, e.g. a VHDL CPLD project
  • Use the Amontec SVF player software to load the Xilinx SVF file to the CPLD

Downloading and Installing the Amontec SVF Player Software

Before continuing, you will need to install the drivers for the Amontec JTAGkey.

Xilinx iMPACT can't connect directly to the Amontec JTAGkey, even after installing the JTAGkey drivers. Additional software from Amontec is needed. This software is the Amontec SVF player software.


Go to the Amontec page for the JTAGkey and scroll down to find Amontec JTAGkey SVF Player. Or use your browser to search for it on the page.

Download the SVF player software, the file name will be something like amontec-jtagkey-svfplayer-v2-0-20111011.zip


Extract the svfplayer folder from the downloaded zipped file. The SVF player is a command line application.

There are three ways to install the SVF player:

  1. Copy the svfplayer folder to a suitable folder on your PC and then modify the Windows path to include the svfplayer folder. The SVF player software will then be available from any command line window.
  2. Copy the svfplayer folder to a suitable folder on your PC and then access it by specifying the full path from a console window or in a batch file.
  3. Copy the SVF player files to every CPLD project that you create and access them from the command line there.

Connecting to the Target CPLD Board

The Amontec JTAGkey is supplied with a connector with ribbon cable and fly-leads that are capable of being connected individually to the JTAG header of the target board. To make the connection to a target board, you will need the Amontec JTAGkey pinout page for the flying lead cable (supplied with the JTAGkey or found on the Amontec JTAGkey page, document amt_ann010.pdf) and the pinout for the target board's JTAG header.

This example shows how to connect the JTAGkey to the JTAG header of the home built Xilinx CPLD board.

Connections to the Home Built CPLD Board

This is just an example to show how to connect the JTAGkey to the JTAG header of a target CPLD or FPGA board. If you are using a different board, be sure to check the board's circuit diagram for its JTAG header pinout.

There are six connections between the JTAGkey and the CPLD board, namely: Power (VREF), GND, TMS, TCK, TDO and TDI.

Connections from the JTAGkey to the home built Xilinx CPLD board.

JTAGkey CPLD Board JTAG Signal
Pin 1, Brown Pin 2 VREF (Vcc, 3.3V)
Pin 5, Green Pin 10 TDI
Pin 7, Violet Pin 4 TMS
Pin 9, White Pin 6 TCK
Pin 13, Orange Pin 8 TDO
Pin 20, Black Pin 1 (or any odd numbered pin) GND

This video shows the connections being made between the JTAGkey and the home built CPLD board.

Can't see the video? View on YouTube →

Books that may interest you:

C Programming with Arduino Book Ultimate Arduino MEGA 2560 Hardware Manual Ultimage Arduino Uno Hardware Manual

Generating a CPLD Configuration File

If using a JTAG programmer that is compatible with the Xilinx software, a Xilinx project would be created (e.g. a VHDL code project) and then compiled. After compiling, iMPACT would be started and then the CPLD or FPGA programmed directly using iMPACT.

When using the JTAGkey, an extra step is necessary. The Xilinx project is created and iMPACT is started. Instead of using iMPACT to program the CPLD or FPGA, it must be used to generate a SVF file. The SVF file is then used by the Amontec SVF player software to program the CPLD or FPGA.

Configuring the CPLD

This video shows how to create a SVF file for the project using Xilinx iMPACT. A normal VHDL project is created and compiled. Xilinx iMPACT is started as usual from within the Xilinx ISE software, however iMPACT is now used to produce a SVF file which is then used to configure the CPLD using the Amontec SVF player software.

Can't see the video? View on YouTube →

With the SVF file (default.svf) copied into the folder that contains the Amontec SVF player software, the following entered on the command line configures the CPLD with the SVF file:

amontec-jtagkey-svfplayer.exe -svfFile default.svf -op

Amontec SVF Player Command Line Options

The following is the help information from the SVF player showing the command line options that can be used with the player:

-- Amontec SVF Player            --
-- based on Amontec AmtXHAL      --
-- http://www.amontec.com        --
-- version: 2.0 (Build 20111011) --
Amontec amtxhal.dll version: 2.0 (Build 20111010)
usage: amontec-jtagkey-svfplayer.exe [options]
  -help                (-h)   : this help
  -pause               (-p)   : pause the console at the end
  -svfLine TXT         (-sl)  : a SVF line to be executed
  -svfFile TXT         (-sf)  : a SVF filename to be executed
  -optimizer           (-op)  : optimize the frequency
  -frequencyFactor NUM (-ff)  : a percent value
  -runtestFactor NUM   (-rtf) : a percent value
  -runtestGuard NUM    (-rtg) : minimum of RUNTEST to keep
  -headerTapNum NUM    (-htn) : absolute Header tap number
  -headerIRLength NUM  (-hirl): absolute Header Instruction Register Length
  -trailerTapNum NUM   (-ttn) : absolute Trailer tap number
  -trailerIRLength NUM (-tirl): absolute Trailer Instruction Register Length
  -portID NUM          (-pid) : a Port ID value