Device Categorisation

The categorisation process gives XJDeveloper the information it needs to interact with accessible devices in the best way. XJTAG performs two types of tests – an automatically generated connection test, and tests written using the XJEase scripting language. When creating an XJTAG project, one key objective in categorising devices is to give Connection Test the best test coverage; another is to maximise open-circuit coverage, which is achieved using tests written in XJEase.

When XJTAG boundary scan tests a board, the largest proportion of short-circuit and stuck-at faults are found during the connection test. To maximise its test coverage, Connection Test needs access to as many nets as possible, but it will not test a net if it doesn't have information about all the devices on that net. Categorisation gives the XJTAG system information about how devices are used in the circuit, allowing it to test nets appropriately: for example, a net connected to a pull-resistor will be checked differently to one connected to a series resistor. Also, depending on the circuit, this information can allow one device to be used to gain access to others, thereby extending test access through the circuit (e.g. categorising a series resistor gives access to all the devices connected to that resistor's other pin). The best test coverage is therefore only achieved once all the devices that can be accessed have been categorised.

One advantage of using Connection Test to find these faults rather than relying solely on a device-based or functional test is that it monitors all accessible nets on the board during the test. In contrast, a device-based test (whether performed with boundary scan or as a dedicated functional test) normally only checks nets associated with a particular circuit block and can therefore miss a short-circuit to an unrelated part of the board. Connection Test is therefore able to detect a much higher percentage of possible short circuits than a circuit block test. However, because there are many circumstances in which it cannot detect an open circuit, the connection test needs to be supplemented by XJEase tests that check for some kind of feedback from the device. For an LED, this could be to use boundary scan to turn on the LED, and to ask an operator to confirm it is illuminated. For a RAM, it could be to write to the memory and then obtain feedback by reading back the data.

Components that will be checked using XJEase also need to be categorised to define which test functions can be executed.

The device information that's needed by both the connection test and the XJEase tests is provided during the categorisation process by assigning model files to devices where required. XJDeveloper has six different categories into which devices can be placed: Passive, Logic, Test, Ignored, Excluded, and Unfitted. In the following sections, you will learn when to use a particular category and how to perform the task of categorisation.

  • By default, XJDeveloper only asks you to categorise devices that are accessible.

Categorisation takes place on the Categorise Devices screen:

Figure 1: Accessible Devices are Categorised on the Categorise Devices Screen

To simplify the categorisation process, XJDeveloper automatically analyses the circuit data and separates accessible devices into groups based on their characteristics and how they're being used. For example, resistors with one end connected to power or ground and a value between 1 kΩ and 100 kΩ will be proposed as pull resistors, whereas those with neither end connected to power or ground and a value below 100 kΩ will be suggested as series resistors.

  • XJDeveloper's process of grouping devices works best when the project contains BOM data, so it is important that BOM information with component values has been imported.

Figure 2 shows the Categorise Devices screen for an example project.

Groups of uncategorised devices Click a tile to categorise selected device(s) Already categorised non-JTAG devices

Figure 2: XJDeveloper's Categorise Devices screen

Uncategorised devices are shown in the upper left panel. The process of categorisation is to select them from these groups and to assign them to the appropriate categories, at which point they will be moved to the list of Categorised Devices on the right.

  • The circuit's JTAG device(s) must already have been identified at this point so that XJDeveloper knows which components can be accessed using boundary scan. JTAG devices are shown at the bottom left of the panel.
  • Any devices such as series resistors or 0 Ω links that form part of the JTAG chain will already have been categorised when the chain was defined. Similarly, devices that join power nets together will have been categorised as part of categorising the power nets (e.g. ferrite beads linking two supply rails). Those devices will already be shown in the Categorised Devices list.