I'm working with a board design that uses a Xilinx CoolRunner II CPLD (XC2C256-7VQ100I). We're currently working with the customer, and setting up the pins they'll be using external from our board to control our device. JTAG has several lines we'll use to program the CPLD on each part (TDO, TCK, TMS, TDI). In our production environment, we'd like to use several external pins to hook up to these lines to program the device. However, the end customer would like to ground these pins (Since our product will be fitting into an existing design). My question is, will there be any repercussions I need to consider about grounding those 4 pins on the device? (On the CPLD the JTAG lines are pins 45, 47, 48, 83). I'm fairly sure it shouldn't cause any issues, but haven't yet been able to find a definitive answer.
Grounding JTAG Lines
jtagprogrammable-logic
Related Solutions
I don't know the exact reasoning for JTAG, but when high speed signals are used and according to the best practices, you should put a GND in between every signal of a flat cable. JTAG can be considered as a High Speed Signal.
Multiple GND wires are used to avoid crosstalk between the signal lines. They avoid capacitive coupling between adjacent lines. And they also provide a separate return path for every signal. Indeed, in high speed signals, the return current "prefers" the path of least impedance. That path is, for high speed signals, the closest GND. Thus the different signals will have different return paths and that avoids crosstalk of the return path.
The final goal is to guarantee good signal integrity, reduced emissions and a better immunity to external disturbances.
Taken from a Segger web page:
1 VTref Input This is the target reference voltage. It is used to check if the target has power, to create the logic-level reference for the input comparators and to control the output logic levels to the target. It is normally fed from Vdd of the target board and must not have a series resistor.
2 Not connected NC This pin is not connected in J-Link. It is reserved for compatibility with other equipment. Connect to Vdd or leave open in target system.
3 nTRST Output JTAG Reset. Output from J-Link to the Reset signal of the target JTAG port. Typically connected to nTRST of the target CPU. This pin is normally pulled HIGH on the target to avoid unin- tentional resets when there is no connection.
5 TDI Output JTAG data input of target CPU. It is recommended that this pin is pulled to a defined state on the target board. Typically connected to TDI of target CPU.
7 TMS Output JTAG mode set input of target CPU. This pin should be pulled up on the target. Typically connected to TMS of target CPU.
9 TCK Output JTAG clock signal to target CPU. It is recommended that this pin is pulled to a defined state of the target board. Typically connected to TCK of target CPU.
11 RTCK Input Return test clock signal from the target. Some targets must synchronize the JTAG inputs to internal clocks. To assist in meeting this requirement, you can use a returned, and retimed, TCK to dynamically control the TCK rate. J-Link supports adaptive clocking, which waits for TCK changes to be echoed correctly before making further changes. Connect to RTCK if available, otherwise to GND.
13 TDO Input JTAG data output from target CPU. Typically connected to TDO of target CPU.
15 RESET I/O Target CPU reset signal. Typically connected to the RESET pin of the target CPU, which is typically called "nRST", "nRESET" or "RESET".
17 DBGRQ NC This pin is not connected in J-Link. It is reserved for compatibility with other equipment to be used as a debug request signal to the target system. Typically connected to DBGRQ if available, otherwise left open.
19 5V-Target supply Output This pin can be used to supply power to the target hardware.
Best Answer
Grounding the JTAG input lines (TCK, TMS, and TDI) is fine, although it'll make the port unusable. The JTAG output, TDO, is another matter — grounding it will cause a short circuit if it is driven high by the CPLD! If you cannot bring JTAG out to a dedicated set of pins, you're probably best off leaving it disconnected.