Knowledge Base - Browsing by Topic
Can I run SVF / STAPL / JAM files in XJEase?Yes. Look at the RUNSVF and RUNSTAPL commands in the XJEase help files.
I keep getting scan chain errors when running an XJEase script.Ensure that you have correctly terminated the JTAG TAP signals at your board. See the DFT Guidelines document.
How do the timings work if a SET command involves more than one JTAG device?A single SET command line will execute those pin settings off the same TCK edge, so they should both occur within the propogation delay from that edge.
Why can't I use "I" as a variable name?"I" is a keyword in XJEase, and is used in the SET command.
The pin names in the BSDL file do not match those in my netlist.Either the BSDL file or the netlist needs to be changed so that the pin names match. XJTAG provides a set of general purpose Perl scripts to perform this manipulation. The scripts are installed into the 'bin' directory in the XJTAG installation, and can be run from the XJTAG Command Prompt. For more information, look up "Pin numbers" in the help files.
My Xilinx SVF files don't work properly when I run them in XJTAG.Some Xilinx SVF files assume a 1MHz clock speed, and have hard-coded delays in terms of number of clock cycles, rather than in terms of time. Set XJEase / XJAnalyser to run at 1MHz, or change the delays in your SVF file.
Where can I get example XJEase scripts?There are lots of example scripts on this website. If you cannot find what you are looking for, email us.
Dynamic-width integersXJEase supports dynamic-width integers, in contrast to conventional programming languages such as C++ and hardware description languages like Verilog or VHDL. Common uses for this powerful feature are manipulating, extracting and aligning data and address bit fields. This sort of operation is very useful when writing tests for Flash Memory, DDR RAM or other device types. XJEase dynamic-width integers can be up to 2^32 (over four billion) bits wide. Processing such large integers can reduce speed considerably so you need to take a little care with their use. This article describes how best to use dynamic-width integers.
The FLUSH command in XJEaseThe FLUSH command allows you more control over the timings of JTAG writes. This application note describes a few examples of how it might be used.
The HOLDOFF command in XJEaseThe HOLDOFF command allows you to speed up JTAG cycles by grouping sets of writes together. This application note gives an example of using it to meet timing constraints on an Atmel flash device.
Testing analogue ports with XJTAGThe IEEE1149.1 (JTAG) standard does not explicitly support the testing of analogue devices, but it is easily possible to test in-circuit analogue functions using XJTAG. This application note describes a real-world example of testing an analogue RGB video port, as a demonstration of the type of solution that can be used. This type of solution can be easily adapted to test a variety of analogue functions.
Troubleshooting the connection test
This application note covers problems seen when running the connection test, such as the "JTAG chain broken" error message, or current consumption suddenly increasing (meaning that there is a contention on the circuit).
It also includes more general searching for contentions/conflicts.
Generating serial numbers in XJEaseXJRunner can generate / read and log unique board identifiers during testing, such as serial numbers and MAC addresses. This application note describes how these should be handled by the XJEase code.
I'm having problems with backslashes '\' in XJEase strings.
\ is an escape character in XJEase. To get a literal backslash in an XJEase string, you need to use two backslashes.
STRING MyFilePath1 := "c:\\projects\\MyBoard\\";
Alternatively, you can use forward slashes for file paths:
STRING MyFilePath2 := "c:/projects/MyBoard/";
How do I functionally test a JTAG device?
To functionally test a JTAG device, it must be kept in BYPASS mode during the device file tests:
JTAG LIST U1 := "myfile.bsdl" IN "BYPASS"; END;
You can then add the device to the TEST LIST section of the project file, and run tests on it in the same way as you would for a non-JTAG device.
How should I describe DDR termination resistors in XJEase?
There are two different styles of termination resistor found on a DDR memory; termination to a mid-supply voltage rail and differential termination.
DDR termination resistors that go to a mid-voltage supply rail can in most cases be categorised as "Ignore" devices. Because JTAG is a digital technology, it can only read 1 or 0, giving an indeterminate result for these resistors if they were to be classified as Pull resistors.
Differential termination resistors between the positive and negative clock signals should be described as passive devices in your XJDeveloper test system with a connection type of DIFF TERM.