This chapter is a simple guide to understanding the more common issues you might encounter when configuring CPLDs with JTAG Programmer. These issues are likely to fall into three groups; communication, improper connections, and improper or unstable VCC.
Observing the following guidelines should minimize the communication difficulties that can occur between the cable hardware and the target system.
Do not attach extension cables to the target system side of the cable; this can compromise configuration data integrity and cause checksum errors.
Attach the cable configuration leads firmly to the target system.
After connecting the target system, specify the chain configuration using the part command. Then use the "partinfo -id part_name" command to read the IDCODE from each part in the system. This will verify the integrity of the boundary-scan chain. If you are using the Graphical User Interface:
Operations Get Device ID
Use the verify feature to assure integrity of the configuration data. You can do this from the command line with the -v option or in the interactive mode by specifying the verify command.
When using the JTAG Programmer software with the cable on a PC to download, the process may stop with data communications errors. This is caused by serial port communication inefficiencies in the Windows environment. To set your PC to better handle serial communications at 38400 baud, add (or modify) the following lines to the 386Enh section of your SYSTEM.INI file. This file is located in the Windows directory of your system.
COM1Buffer=32768
COM2Buffer=32768
COMBoostTime=10240
Always make sure that cable leads are connected properly.
Connecting the cable leads to the wrong signal will cause permanent damage to cable internal hardware. You must connect VCC to +5 V and GND to ground.
For workstations, you must have read and write permissions to the port to which you connect the cable. JTAG Programmer might issue a message stating that the cable is not connected to port ttyx. When you see this message, follow the check list below:
ttya ``/usr/etc/getty std.9600'' unknown off local secure
ttyb ``/usr/etc/getty std.9600'' unknown off local secure
If you use a port to connect a modem or a remote login, you cannot use that port. The port must be on. Consult your System Administrator if the information the /etc/ttytab file is different than what is listed in the aforementioned list.
Never connect the control signals to the cable before VCC and ground. Xilinx recommends the following sequence:
The XChecker Cable has an internal FPGA. As with any CMOS device, the input/output pins of the internal FPGA should always be at a lower or equal potential than the rail voltage to avoid internal damage.
Make sure VCC rises to a stable level within 10ms. Stable VCC should be between 4.75 V and 5.25 V.
In the event of power glitches, reset the cable by selecting:
Output Cable Reset
If you experience a consistent error that identifies a break in your boundary-scan chain but are unable to identify such a discontinuity then execute the following steps:
The boundary scan integrity check sequences the TAP through a TRST sequence (TMS set to 1, TCK pulsed 5 times) and then transitions all devices to the RunTest/Idle state (TMS set to 0, TCK pulsed once). Then, all parts are run through a CAPTURE -IR sequence while TDI is set to 1 (1s will be shifted in). If you look in the device BSDL files you will see the expected capture sequence defined in the instruction capture field. For all xc9500 parts this sequence is a 1 followed by seven zeros. You should therefore see the 1 on TDO after the falling edge of the 4th TCK pulse after the TRST sequence. On the next TCK pulse TDO should return to zero.
The CAPTURE -IR sequence consists of the following (starting from RunTest/Idle), as illustrated in Figure C-1.
Figure C.1 Sample Expected Waveform |
Check for the following:
You may also use the Debug Chain dialog and a logic probe or oscilloscope to transition the TAP state machine directly and observe results.
You can check for system noise by running the IDCODE instruction repeatedly. The IDCODE should read correctly 100% of the time. If by test you find that the instruction is working less than 100% of the time, you may be experiencing system noise.
To remedy a problem with system noise, select Use HIGHZ instead of BYPASS from the Preferences dialog box. This places devices into tri-state mode and reduces susceptibility to system noise. To find this box use:
File Preferences
The Preferences dialog box will appear. Place a check in the box adjacent to Use HIGHZ instead of BYPASS.