program-xc9500

CLI reference

glasgow run program-xc9500

Program, verify, and read out Xilinx XC9500 series CPLD bitstreams via the JTAG interface.

It is recommended to use TCK frequency between 100 and 250 kHz for programming.

Some CPLDs in the wild have been observed to return failures during programming, possibly because they are taken from the rejects bin or recycled, see [1]. The “program word failed” messages during programming do not necessarily mean a failed device; if the bitstream verifies afterwards, it is likely to operate correctly.

[1]: http://tech.mattmillman.com/making-use-of-recycled-xilinx-xc9500-cplds/

Supported devices are:
  • XC9536

  • XC9572

  • XC95108

  • XC95144

  • XC95216

  • XC95288

usage: glasgow run program-xc9500 [-h] [-V SPEC] [--tck PIN] [--tms PIN]
                                  [--tdi PIN] [--tdo PIN] [--trst PIN]
                                  [-f FREQ] [--scan-ir-max-length LENGTH]
                                  [--scan-dr-max-length LENGTH]
                                  [--ir-lengths IR-LENGTH,...]
                                  [--tap-index INDEX] [--slow]
                                  OPERATION ...
-h, --help

show this help message and exit

-V <spec>, --voltage <spec>

configure I/O port voltage to SPEC (e.g.: ‘3.3’, ‘A=5.0,B=3.3’, ‘A=SA’)

--tck <pin>

bind the applet I/O line ‘tck’ to PIN (default: ‘A0’, optional)

--tms <pin>

bind the applet I/O line ‘tms’ to PIN (default: ‘A1’, optional)

--tdi <pin>

bind the applet I/O line ‘tdi’ to PIN (default: ‘A2’, optional)

--tdo <pin>

bind the applet I/O line ‘tdo’ to PIN (default: ‘A3’, optional)

--trst <pin>

bind the applet I/O line ‘trst’ to PIN (optional)

-f <freq>, --frequency <freq>

set TCK frequency to FREQ kHz (default: 100)

--scan-ir-max-length <length>

give up scanning IRs longer than LENGTH bits (default: 128)

--scan-dr-max-length <length>

give up scanning DRs longer than LENGTH bits (default: 1024)

--ir-lengths <ir-length,...>

set IR lengths of each TAP to corresponding IR-LENGTH (default: autodetect)

--tap-index <index>

select TAP #INDEX for communication (default: select only TAP)

--slow

use slower but potentially more robust algorithms, where applicable

glasgow run program-xc9500 erase

usage: glasgow run program-xc9500 erase [-h] [--override]
-h, --help

show this help message and exit

--override

override write-protection

glasgow run program-xc9500 program

usage: glasgow run program-xc9500 program [-h] [--override] [--erase]
                                          [--verify] [--write-protect]
                                          [--read-protect]
                                          JED-FILE
jed-file

JED file to read

-h, --help

show this help message and exit

--override

override write-protection

--erase

erase before programming, if necessary

--verify

verify after programming

--write-protect

enable write protection

--read-protect

enable read protection

glasgow run program-xc9500 read

usage: glasgow run program-xc9500 read [-h] JED-FILE
jed-file

JED file to write

-h, --help

show this help message and exit

glasgow run program-xc9500 verify

usage: glasgow run program-xc9500 verify [-h] JED-FILE
jed-file

JED file to read

-h, --help

show this help message and exit