program-xc9500xl

CLI reference

glasgow run program-xc9500xl

Program, verify, and read out Xilinx XC9500XL and XC9500XV 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:
  • XC9536XL

  • XC9572XL

  • XC95144XL

  • XC95288XL

  • XC9536XV

  • XC9572XV

  • XC95144XV

  • XC95288XV

usage: glasgow run program-xc9500xl [-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-xc9500xl erase

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

show this help message and exit

--override

override write-protection

glasgow run program-xc9500xl program

usage: glasgow run program-xc9500xl 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-xc9500xl read

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

JED file to write

-h, --help

show this help message and exit

glasgow run program-xc9500xl verify

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

JED file to read

-h, --help

show this help message and exit