Xilinx Parallel Programmer Project

Created on: 16 November 2012

This parallel port JTAG programmer can be built at home on a single sided PCB using through-hole mounting components. The programmer is for Xilinx CPLD and FPGA programming using the free Xilinx ISE WebPACK software, e.g. Vivado and ISE Design version 14.

The source files for the project (schematic and PCB files) are available in KiCad format - the open source EDA software.

The home-built JTAG programmer described here relies on the host PC having a parallel port. If your PC does not have a parallel port then you will need to use a device such as the Amontec JTAGkey (see also JTAGkey CPLD programming) or other Xilinx compatible USB programming device. The official Xilinx USB programming cable is the Platform Cable USB II.

Home built Xilinx parallel JTAG programmer
Home Built Xilinx Parallel JTAG Programmer Cable

Parallel Programmer Details and Circuit Diagram

The programmer is based on the JTAG/Parallel Download Cable schematic provided by Xilinx as shown on page 3 of this document from Xilinx.

Here is the programmer schematic from KiCad in PDF format. The KiCad source files for this schematic as well as the PCB can be found below.

Besides building the PCB for the project, two cables are also required. A 14-way ribbon cable with a IDC connector on each end is required for connecting the programmer to the target CPLD or FPGA board. A cable for connecting the programmer to the PC parallel port is also required.

Parallel Programmer Parts List

The parts listed in this table are needed for building the parallel programmer:

Qty Part Designator Notes Type
7 100Ω R1, R2, R3, R4, R5, R6, R9 ¼W 5% resistors Resistors
5 300Ω R10, R11, R12, R13, R14 ¼W 5% resistors
1 1k R8 ¼W 5% resistors
1 5k1 R7 ¼W 5% resistors – A 4k7 will also work
4 100p C1, C2, C3, C4 Ceramic capacitors Capacitor
1 10n C5 X7R capacitor
2 1N5819 D1, D2 Schottky diode – 1N5819 or similar will do Semiconductor
2 74HC125N U1, U2 Quad 3-state buffer/line driver
1 7 × 2 IDC male header P1 14 pin (7 × 2) IDC male connector, 2.54mm pin spacing Connectors
1 Solder connection P2 Wires from cable are soldered directly to the PCB, no connector needed
1 DB25 male plug with shroud - 25 pin male parallel port plug to plug into PC female parallel port socket
2 7 × 2 IDC female plugs - 14 pin (7 × 2) IDC female connectors, ribbon cable mounting, 2.54mm hole spacing.
1 8-core cable - 8 core screened cable Cable
1 14-way ribbon cable -

Source Files

Download the KiCad source files for the Xilinx parallel cable. This download contains the source files for the KiCad project with circuit diagram and PCB in KiCad format.

JTAG Parallel Programmer Construction

Assembly of the circuit board is straightforward – solder the resistors and two diodes to the board first, followed by the two ICs. Add the capacitors and connector P1 to finish the board.

Two cables will need to be made. One to connect the programmer to the PC parallel port and the other to connect the programmer to the target board.

Making the Parallel Cable

A length of 8 core screened cable (e.g. 1.8 m (6 feet) long) and a 25-pin male D-type connector is required to connect the programmer to the PC.

Solder the different coloured wires from the cable to the circuit board's P2 connector holes as shown below.

parallel cable wiring diagram
Xilinx Parallel Cable Wiring Diagram

If the cable that you are using does not have the same coloured wires as the wiring diagram, write down which colour wire you are connecting to which hole of connector P1. Now solder the wires to the 25-pin male connector shown in the diagram.

Before screwing on the plastic shroud of the connector, join pins 8, 11 and 12 together as shown in the wiring diagram.

Making the Ribbon Cable

A short length of 14-way ribbon cable around 18cm (7 inches) long with a 7 × 2 IDC female connected to each end must be made up to connect the programmer to the target circuit board.

Finished Xilinx parallel JTAG programming cable
Finished Xilinx Parallel JTAG Programming Cable

Finishing the Cable

Heatshrink tubing can be used on the cable as shown in the above image. Glue from a hot-melt glue gun can also be used to provide strain relief for the wires from the cable where they connect to the PCB. This will prevent the wires from flexing and breaking.

The cable will need to be tested by plugging it into a working CPLD or FPGA board and loading a configuration file to the board using the Xilinx programming software.

Related Articles

You may also be interested in:

Home built Xilinx CPLD board project.

Amontec JTAGkey CPLD programming.

VHDL CPLD course – learn VHDL.