Creating Tests for Non-JTAG Devices using XJEase
To test a circuit, XJDeveloper needs to understand the devices it is going to interact with. During the creation of a boundary scan test, the circuit’s accessible components are therefore categorised into their different types and are assigned files that describe their pins and operation. As well as the JTAG devices themselves (which are described by their BSDL files), this applies to all the components that JTAG devices can connect to, either directly or via other components. Non-JTAG devices are classified as either passive, logic, unfitted, ignored, excluded, or test.
Every component that is categorised as a test device is described by a file written in the XJEase language. As well as containing information on the devices' pins, these files may also include code that tests the devices by using their functionality.
Test device files can be used for simple devices as well as complex ones. For example, a component as basic as a push-button switch could have a device file with test code that displays a screen prompt to ask an operator to press the button, and then monitors the relevant net to detect a change of state. Test device files for more complex devices such as DDR memories may include calls to other XJEase files that use the address and data busses to perform read / write operations.
XJDeveloper comes with an extensive library of such files, covering most memories and many commonly used devices, although there can be situations when users may wish to create new ones. XJDeveloper supports custom XJEase libraries to store and manage your own files. This guide provides an overview of XJEase test device files and how to write new ones if necessary. The source code for existing library files is viewable, and users are encouraged to copy and reuse the content in their own device files.
This user guide covers the following topics:
- The importance of test device files and their role in boundary scan tests
- How test devices files differ from circuit code files
- Where to find XJEase files
- The structure and syntax of test device files
- Scope of XJEase functions
- Types of variables in XJEase
- Flow control within an XJEase file
- How to create your own device files
- How to call code that resides in other files (“additional code files”)
- How to create constants that can be different in alternative device configurations
- A brief introduction to XJEase keywords
The Importance of Test Device Files & Their Role in Boundary Scan Tests
There are two reasons why a non-JTAG device needs a test device file:
- To tell XJDeveloper how to interact with the device in order to test it.
- To provide a method for preventing a device from interfering with other boundary scan tests. For example, if a clock oscillator continually drives a group of nets, they would be unsuitable for testing unless the oscillator could be disabled. Rather than permanently disabling the clock, a test device file could be used to enable it only during tests that require it to be running. This ability to switch it on and off allows the best test coverage to be achieved.
Test device files are therefore required not only for the devices that are to be tested, but also for ones that could affect tests if their pins were active.
XJTAG v4.1.101