XJDeveloper — Full test development environment

XJDeveloper is XJTAG’s Integrated Development Environment, the most comprehensive integration of boundary scan functionality, flexibility and productivity.

XJDeveloper Product Sheet Get further info Evaluate

Overview

XJDeveloper is an Integrated Development Environment for JTAG test development and execution. Through its intuitive design flow, engineers have easy access to XJTAG’s market-leading interconnection and functionality-based testing technology. This is supported by a large built-in library of device tests, combined with the ability to easily develop additional tests. Advanced fault analysis and visualisation tools are included as standard. XJDeveloper also supports In-System Programming (including XJFlash) of both JTAG devices (e.g. CPLDs and FPGAs) and non-JTAG devices (EEPROMs, flash memory).

XJDeveloper gives engineers easy access to the functionality defined in IEEE 1149 (JTAG). This standard can be used throughout the entire product lifecycle to bring the benefits of boundary scan testing to any product, however complex. Projects are focussed on the devices being tested. XJTAG’s powerful processing technology automatically creates the low-level test vectors without the user needing to know how to construct them. Test coverage can be viewed at any point in the project setup to assess setup progress or see how the design can be improved. When the project is complete, XJDeveloper can create XJRunner projects for testing and programming on the production line.

XJDeveloper can be used to run tests during prototype bring-up without the need for any application code to be ready. Using the same user interface that will later be used for production line testing ensures a smooth test flow from prototype debug to production test.

XJDeveloper supports all of the test capabilities of XJTAG’s full product line-up, to give you full flexibility for all of your JTAG testing requirements.

XJDeveloper - Suggested JTAG Chains Wizard
Click image to view full size

Testing Connections

Boundary scan testing using XJDeveloper starts with XJTAG’s Advanced Interconnection Test. This is able to test a higher percentage of a circuit than most other JTAG solutions, and is automatically generated from the data given during test setup. The interconnection test provides the core of the test coverage for your board, checking JTAG-accessible nets for short-circuit, stuck-high/stuck-low faults, and open-circuit errors. The test includes checks for missing pull-up/pull-down resistors and resistive short-circuit errors. It also dynamically drives the logic devices in the circuit, giving test coverage to the nets which are accessible to JTAG only through logic devices.

XJTAG Advanced Interconnection Test
XJDeveloper - Edit code
Click image to view full size

XJEase Model Library

After the interconnection test, XJTAG continues by running tests written in the XJEase language, that are normally from XJTAG’s built-in test library. The tests use the functionality of the devices on the board to verify that they are present and connected correctly. Because XJEase is a fully-featured programming language, these tests are dynamic, and are written to react to the conditions they find on the board.

Device-Centric Tests

XJTAG’s library tests are device-centric – they are specific to the type of device being tested but not to the circuit they are placed in, or to the JTAG devices that are used to drive the nets on the PCB. This means that tests can simply be added to the project and re-used without modification whenever that type of device is re-used in other projects. Over time, this greatly reduces the engineering costs of project setup with XJTAG.

As a user, you can access the source code for each test provided in XJTAG’s library, and the full-range of XJEase debugging facilities in XJDeveloper. It is therefore possible to verify the operation of the tests, modify them, or adapt them for new or future device types.

XJDeveloper - XJEase Debugger Waveform View
Click image to view full size

Fault Analysis

The main purpose of a JTAG test system is to detect faults in PCB assemblies, but the true value of this system is in its ability to accurately identify the cause of the faults.

XJDeveloper can find and identify a wide range of faults. Information about the faults can be combined with imported Netlist and Schematic diagrams to graphically show the nets exhibiting faults. Nets can be highlighted on both the Schematic Diagram and the PCB layout, using XJDeveloper’s viewer tools. The Schematic Viewer and Layout Viewer are also accessible in XJRunner, XJTAG’s production test environment, and XJInvestigator, the advanced fault diagnosis/rework station.

These powerful features, provided as standard, take fault analysis to a new level. Being able to see all of the points on a net where a short-circuit may have occurred due to a manufacturing defect, for example, can save valuable time in rework.

XJDeveloper - Short displayed in Layout Viewer
XJDeveloper - Short displayed in Schematic Viewer
Click images to view full size

In-System Programming

In-System Programming (ISP) through a JTAG tool provides a simple way of configuring non-volatile memory during or after PCB assembly. XJDeveloper can be used to perform In-System Programming of flash and FPGA/CPLDs.

JTAG can be used to configure programmable devices of any size, by serially shifting address, data and control information through the JTAG chain to the relevant device. This is perfect for smaller devices such as EEPROMs that contain a serial number, for example. However, using this method for in-system programming larger images, such as an entire file system, would lead to programming times that are too long for a production environment. The answer to this is hardware-accelerated programming.

Accelerated Programming

XJFlash JTAG Boundary Scan software module

XJTAG has used its expertise in JTAG to offer industry-leading solutions to engineers who are faced with the challenge of delivering faster hardware-accelerated programming over a boundary scan interface. This may involve the temporary reconfiguration of an FPGA on a board as an ‘in-system programmer’. This advanced technique allows XJTAG to program large non-volatile flash memories, with the speed often being limited by the device being programmed. XJTAG calls this solution XJFlash. It has been shown to result in programming cycle times that are 50 times faster than just using boundary scan test. In some cases, the programming times are even faster than a manufacturer’s published figures.

XJDeveloper offers a range of acceleration options, including XJFlash for programming using FPGAs or CPLDs, and XJDirect, which programs using an on-board CPU or Microcontroller. Other applications may have more unusual requirements, and for such boards, XJTAG offers a consultancy service to develop bespoke solutions. Any programmable devices on a board can be used to deliver the desired results at high speed. Please contact us if you would like to know more.

Features

  • Advanced Interconnection Test
    Tests a higher percentage of your circuit than most other JTAG solutions and provides high precision fault isolation.
  • Testing and programming non-JTAG devices
    Non-JTAG devices connected to devices on the chain can be manipulated just as easily as those on the chain, for advanced testing – e.g. ethernet loopback.
  • Flexible, high-level, test description language
    Designed to simplify the process of test creation.
  • Device-centric approach
    Device tests can be reused in different circuits without modification.
  • High-level conditional test execution
    Determine whether to run tests based on board configuration, results of previous tests etc.
  • Built-in Test Library
    A large number of standard parts available in the installed XJEase library.
  • Layout Viewer to show the physical location of circuit elements and faulty nets.
  • Schematic Viewer to show circuit functionality whilst developing or debugging tests.
  • Open test implementations
    Users can view the data driven during connection test, and view or edit code from the XJEase library.
  • Waveform View
    View a graphical representation of waveforms in XJEase testing and in the Analyser screen.
  • XJEase software debugger
    Step through XJEase code, set breakpoints and examine variable values to speed up your test development.
  • No need to understand how JTAG works
    The XJTAG system works out how to drive the JTAG chains for you.
  • Program devices in-system
    SVF and STAPL files can be run from XJDeveloper to program devices, or XJEase scripts can be used to program an image directly.
  • Testing with no netlist
    Run connection test and non-JTAG device tests even on boards where you don’t have the netlist.
  • Export projects to XJRunner
    XJRunner projects prevent modification of the tests for deployment to manufacture.
  • Test coverage analysis
    Analyse and generate reports on the test coverage achieved on your circuit.
  • 1149.6 support
    Supports 1149.1 and 1149.6 devices

Frequently asked questions

General

What is included with XJDeveloper?

XJDeveloper includes:

What options are available with XJDeveloper?

  • XJDeveloper is available with or without XJAnalyser functionality.
  • XJDeveloper is available with or without XJFlash test generation capability.
  • XJDeveloper can work with hardware licensing or with network licensing (minimum hardware purchase applies).

Technical questions

What files / data do I need to start working with XJDeveloper?

The minimum needed is the BSDL file for at least one of your JTAG devices (available from the device manufacturer).

Results will be much better and test coverage easier to achieve if you have a netlist for the board you wish to test. This is usually exported from the board design (EDA) tools.

If your EDA tools support export in ODB++ format, by using this as the netlist, XJDeveloper will also have access to layout information on your board to improve how it shows you problems.

If you have a Bill of Materials (BoM) for your design, XJDeveloper can use the information in it to help you improve your setup and save time in deciding how to categorise devices.

Providing the schematics (in PDF format) to XJDeveloper also allows it to help better during board setup.

You do not need the board you wish to test in order start the setup, though you will want to verify your tests on real hardware at some stage.

What netlist formats does XJDeveloper support?

Our recommendation is that customers use ODB++ board data because this contains both netlist and layout information and almost all CAD tools can generate ODB++. However, XJDeveloper supports over 90 formats of netlist, so if you do not have ODB++ we simply suggest you try using yours. If XJDeveloper does not recognise it please send it to us, we will gladly convert it to one that we can support, and we will also add support for your format into the next release of XJTAG software.

Can I update the netlist on an existing project?

Yes, simply edit the board to use the new netlist. XJTAG will migrate all the existing setup to the new netlist.

I have modified the board during bring-up – can I represent this in XJTAG?

XJTAG has the ability to add connections (e.g. wire mods) to the circuit model, or to disconnect parts of the circuit (e.g. cut tracks) in addition to being able to mark devices such as resistors and connectors as fitted or unfitted.

How easy is it to write my own tests?

We think it is very easy. But mostly you won’t have to, because the XJEase library contains a large number of common devices such as RAM, Flash, etc.

The XJEase language is designed so that you work by thinking about the device you are testing, so if for example you want to set the nOE pin high on a chip, that is how it is described in XJEase (SET nOE := 1; ) No need to worry which JTAG device the pin is connected to, or how it is connected, XJTAG works that out for you.

The XJEase language means you can do more than just play back a pre-defined set of vectors – you can use IF or WHILE statements to make decisions during tests, and even call other programs from within the tests.

The library of tests provided with XJEase contains a wide selection of devices, and you can see all of the XJEase source code for these tests. So if you want to find out how to do something for a new device, look in the tests we supply for a similar device, and copy or modify it.

The XJEase library also contains functions for using protocols such as I2C or SPI, and useful functions for tasks such as reading programming information from files in various formats, doing maths operations, etc.

What test coverage can I get using XJTAG tools?

The best answer we can give is to suggest you try XJTAG and let XJDeveloper generate a test coverage report for your circuit. XJDeveloper can also give some indications of parts of the board which are not tested or for which testing could be improved.

If you would like to take advantage of a free DFT Coverage Review of your initial design, our experienced test engineers will be happy to provide an analysis of boundary scan testability and make suggestions for improvements to maximise test coverage. Contact us now.

System requirements

Recommended:

  • Intel® Core i3, i5, i7 processor or equivalent (any generation)
  • Microsoft® Windows® 8, Windows 8.1, Windows 10 1607 and later, or Windows 11 (32 or 64 bit)
  • 4 GB of RAM

Upgrades / Support / Maintenance

Can I upgrade to add XJAnalyser or XJFlash later?

Yes, upgrading is simple and our costs are transparent with no penalty for adding functionality at a later date.

What support does XJTAG offer?

XJTAG offers technical support by email and telephone during UK office hours.

Where appropriate we will use internet meeting/telephony software to view problems directly on a customer’s PC, or to demonstrate the use of a feature by showing a PC desktop to the customer.

Customers with a support + maintenance agreement have access to both bug-fix software releases and new-feature releases.

In the event of a fault developing in XJTAG’s hardware XJTAG will replace or repair the unit and will work with the customer to minimise downtime (e.g. by loaning a unit during the repair).

Free evaluation / Licensing

What are the differences between the trial version and the purchased product?

There is no difference between the functionality of the purchased product and the free evaluation version. We provide full technical support by telephone and email, to help with the set-up or troubleshoot any issues during your trial. You will also have access to XJTAG’s device test libraries and latest software upgrades, during your 30-day evaluation period.

Can I convert my trial version to a purchased product?

Yes. If you already have XJDeveloper for evaluation, you can continue using it without interruption by purchasing the full licence. Contact your XJTAG distributor to make a purchase and have your licence extended.

XJDeveloper Integrated Development Environment for JTAG Tests

  • Fast test development & debug
  • In-system programming setup
  • Test coverage analysis
  • Library of non-JTAG devices

Key benefits
  • Reduce your time spent debugging boards due to high precision fault isolation
  • Improve your time to market and reduce project risk by early design verification
  • Reduce your test development time by reusing tests from prototype/design in manufacturing and field support
  • Ongoing time savings by test reuse across projects

Flexible Licensing Options

Ready to get started? Try XJTAG

computer

See XJTAG in action.

Our experts will be happy to show you how the XJTAG tools can help you diagnose faults on your board as well as cutting test development and repair time.

Ask for a Demo

contact us icon

Questions? Contact us!

We're here to help.
Send us a message and one of our test specialists will get back to you shortly.

Contact us

workstation

Get a free test setup.

Evaluate the XJTAG system with full functionality for 30 days and get the first test project set up for your board – for free. No obligation to purchase.

Get started now

Join world leading companies using XJTAG Boundary Scan