Constant Pins
When the Connection Test is run in XJTAG, pins on the JTAG devices will be set High and Low in order to drive the nets, and the pin states read back, allowing the nets to be checked for faults. On some board designs, some nets need to be kept in specific states – perhaps not driven because they're connected to another device which can't be disabled, perhaps held High because they control the power to another part of the board, or potentially even excluded from the Connection Test completely.
One way to achieve this is to set Constant Pins in XJDeveloper, telling XJTAG to maintain a specific state on that pin's net during the Connection Test. Setting a constant value on a pin will reduce or remove the test coverage on that net during the Connection Test, and so for this reason we recommend that you set as few constant pins as possible. A properly configured project will typically have no more than 5 constant pins set.
Constant pins are similar to Bus Disable Values – both of these can set a net to a specific state or exclude it from the Connection Test, however they differ in scope. Disable values are set in a test device file for a specific device type meaning a single entry will apply to all instances of that device. Constant pins impact a single, specific net in the project.
Typically, you should set the constant pin on the device that is to be held in a constant state, not on the JTAG device. This means that when you look at the list, it's a lot easier to see why the constant pins are being set. It also ensures that if you make a new revision of the board with that device connected differently, XJTAG will understand the change and update which JTAG pin is used to apply the constant value.
Safe Bitstream
When XJTAG puts JTAG devices into boundary scan mode, it will scan in the safe bitstream. This sets all the controllable pins on the JTAG devices to a known safe state. It will also return them to this state before and after a connection test and whenever the JTAG chain is initialised or reset.
If a pin is set to a constant High or Low, the JTAG device on its net will hold the net at the appropriate level and also read from it (where possible) to ensure that it has been able to set it successfully. If it's set to any of the other states, then XJTAG won't attempt to drive the pin and if it's set to Excluded XJTAG will also ignore any values read from the net during the connection test.
This safe bit stream is formed by running through the following list, where values found by later steps override those from previous steps:
- Default pin values taken from the BSDL file
- Values from excluded devices, which set connected nets to the Excluded state
- Disable values from Test Device files in the XJTAG project
- Compliance values from the BSDL file
- Constant pins from the XJTAG project
- Default overrides
- Any nets that are controlled as part of the test reset sequence
- Any nets connected to power/ground or JTAG TAP signals.
- Constant pins are applied during safe bitstream generation and during a connection test, however they can be overridden by test device files. For more information, see the Overriding Constant Pins section.
Using Constant Pins
This guide to Constant Pins covers the following topics:
- Setting up a Constant Pin
- The interaction between Constant Pins and logic in the circuit
- How and when to override constant pin values during tests
XJTAG v4.2.5
