XJTAG 3.8 Change Log

This document lists the main changes in each minor release of XJTAG. Please see the Release Notes for a list of breaking changes and other issues for this release.

The fixes are generally sub-divided by product. Please note, however, that fixes applied to XJRunner and XJAnalyser are usually applicable to XJDeveloper and XJInvestigator also.

3.8.5

Released 7th June 2019

  • XJDeveloper:
    • Test Device Files screen: handle incompatible or invalid files more gracefully.
    • Logic Files screen: prevent invalid data from being pasted in.
    • Test Coverage Screen:
      • Fix potential crash in the Test Point Reduction Report.
      • PCOLA/SOQ: add ability to add multiple devices.
    • Pin Mapping screen:
      • Fix possible crash adding a non JTAG test equipment pin to a reset sequence.
      • The option to go to a code file on the context menu when editing the test reset sequence could be displayed incorrectly.
    • Analyser screen: fix potential crash in some circumstances visiting the screen for a second time.
    • XJRunner Setup screen:
      • Fix resizing behaviour of available global functions dialog.
      • Bus access overrides could become invalid after a board was renamed.
    • Fix crash exporting to a zip file if the disk is full.
    • The path to a schematic file could be set incorrectly after performing a Save As.
    • When reporting that a code file had changed externally, the filename was missing.
    • Fix potential crash at startup when a network licence server is unavailable.
    • After resolving an issue with the network licence configuration, clicking Retry on the dialog at startup did not work and the application would need to be restarted.
    • Fix potential memory leak opening and closing code files whilst debugging.
  • XJRunner: re-enable tabs after cancelling serial numbers.
  • XJAnalyser: fix potential crash renaming a bus in the Pin Watch.
  • Layout Viewer:
    • Don’t disable when modal dialogs are displayed in the main application.
    • Add options dialog.
    • Show net and device selectors by default.
    • Fix crash adding an image layer that differed only in case from an existing layer.
  • Schematic Viewer:
    • Remember last search location for each search.
    • Expand netlist search results if nothing found.
  • Waveform View: test device pins read via a non JTAG test equipment pin were not being displayed.
  • Connection Test Viewer:
    • Improve handling of parsing problems.
    • Freeze and hide multi-pin nets properly.
    • Fix crash if data table size changes.
  • JTAG Chain Debugger: improve Signal Integrity output.
  • XJLink Manager: display newly installed authorisation code changes immediately.
  • XJEase:
    • Fix WRITEABLE and READABLE for dynamic chains.
    • Improve TRST constant conflict message.
    • Add a clearer error message when a logic block cannot be driven in some scenarios.
    • Fix crash compiling certain code constructs that use array initialisers.
    • Fix potential crash with raw JTAG blocks inside HOLDOFF when using dynamic chains.
    • Remove compile time restrictions on HOLDOFF, allowing nested HOLDOFFs and raw JTAG blocks.
    • Fix applying TRST constants on non JTAG test equipment pins
  • Connection Test: handle buffer pins better in some circumstances.
  • External Hardware:
    • Don’t allow TAP nets to be driven in a reset sequence.
    • Don’t allow termination reference nets to be driven.
  • SPEA:
    • Fix serialisation of fixed probe information.
    • Adding a SPEA information to a project could cause the project file to become corrupted when saving.
  • ODB++:
    • Fix BGA pin numbering when set in components file.
    • Handle user defined symbols with standard prefixes.
  • Install driver package v4.1.2319.0.
  • Use XJEase Library version 156.

3.8.4

Released 18th March 2019

  • XJDeveloper:
    • Boards screen:
      • Fix a potential crash when editing an external board when the original board’s file was invalid.
      • Handle escaped Unicode characters in BOM files.
      • Fix a potential crash when importing BOM information from an Altium schematic.
    • JTAG Chain screen:
      • Don’t allow core names inside multi-core devices to be empty.
      • If the chain passed through a multi-core device a second time without any cores being connected, subsequent devices in the chain could be drawn incorrectly.
    • Circuit Code Files screen: update the template for newly created files so that the example test function fails by default.
    • Test Coverage screen:
      • Improve filtering for all reports.
      • Improve CSV export of all reports.
      • Export PCOLA/SOQ report to CSV.
      • Ensure that the appropriate tab is re-selected when undoing and redoing actions.
      • The option to only display coverage from enabled tests was not being saved correctly.
      • Fix incorrect panel arrangement when the options panel is docked as a document within another pane.
    • Pin Mapping screen:
      • Add a warning if an action will result in any test reset sequences being deleted.
      • In Check Chain, match the IR register contents with the IR capture values in the BSDL files.
    • Run Tests screen: improve how XJEase Watch column widths are stored and set.
    • Layout Viewer:
      • Show top component layer by default if no other layers are selected.
      • Fix potential crash whilst closing.
      • Fix drawing whilst resizing.
      • Draw nets correctly when toggling slowly while showing Analyser data.
      • The layout viewer could reopen if closed while showing Analyser data.
      • Fix modifying layer colours.
      • Allow panning in measure mode.
      • Improve printing.
      • Fix potential crash resizing the window.
      • Reset the window title when the test coverage mode is exited.
      • Make test coverage options available within the layout viewer when in test coverage mode.
      • Make analyser options and a pin colour legend available within the layout viewer when in analyser mode.
      • Hide explorer colours when in test coverage or analyser modes.
      • Handle pins on multi-core devices correctly in analyser mode.
    • Schematic Viewer:
      • Prevent drawing of annotation bounding boxes.
      • Fix a potential crash opening a schematic after changing the schematics for a board.
    • Waveform View: ensure that the remove button always removes the correct row.
    • Options Dialog:
      • Editing the device selector filters via the context menu did not always modify the correct filter.
      • Fix a potential crash editing the BOM fields for the device selector.
    • The currently selected rules were not correctly applied after editing the device category patterns from the unfitted rules dialog.
    • Fix saving projects that contain multi-core devices on boards where the board file is in a different directory to the project.
    • Fix a possible crash in some circumstances on the start screen.
  • XJAnalyser: fix spurious conflicts that could be reported when switching between SAMPLE and EXTEST.
  • XJRunner:
    • Fix potential crash starting tests.
    • Fix a possible crash in some circumstances opening a link on the start screen if the computer’s security settings are locked down.
  • Fix some drawing artifacts that appear in headings in many places in the applications on Windows 10 1809 when the display is scaled above 100%.
  • XJEase:
    • Fix potential internal runtime error driving a net via logic.
    • Fix array initialisers inside functions that reference other arrays, and generate errors for similar cases outside a function.
    • Make EXTERNAL_SAFE always disable pins that are enabled but are not included in the safe bitstream
    • Go to EXTEST via PRELOAD inside dynamic chain resets.
    • Apply SAFE to external hardware at the end of dynamic chain resets.
    • Fix programming speed regression introduced in v3.8.2.
    • Improve the help for the FLUSH keyword.
    • Improve the help that describes how parameters for external APIs are handled.
  • ODB++:
    • Display a warning if the EDA data references non-existent layers.
    • Allow empty DSC records in component files.
    • Remove duplicate BOM fields.
    • Display a warning rather than return an error if there is a pin mismatch between a component and its package.
    • Be more lenient about invalid records caused by embedded newlines in some field types.
    • Handle projects where a package’s pin numbers are overridden by a component.
    • Handle projects that contain components2 files in component layers.
  • Netlists:
    • Allow spaces in nets in CadenceExpanded format.
    • Handle quoted component references in Allegro netlists.
    • Fix crash trying to identify an empty file.
  • XJLink Manager:
    • Disabling network licensing still required the settings to be valid.
    • Fix potential crash if there was an error initialising.
  • Installer:
    • Try and fix installation failures around detecting Controlled Folder Access.
    • Update company registered address in the EULA.

3.8.3

Released 7th February 2019

  • XJDeveloper:
    • Improve performance when displaying large numbers of warnings.
    • Prevent help from being opened twice when pressing F1.
    • Fix potential crash closing the application before a project is fully loaded.
    • Fix setting the default directory when opening or saving files.
    • Fix a potential crash when running a board initialisation function and a pin conflict is detected.
    • If BOM data was being extracted from netlists or schematics, their filenames would not be updated correctly after doing a Save As.
    • Boards screen:
      • Allow data to be sorted by column in the BOM import.
      • Prompt the user before importing BOM information from the netlist.
      • Display BOM fields that have already been assigned from another source.
    • JTAG Chain screen: completing the chain did not clear the error reporting that the chain was not defined in some circumstances.
    • Categorise Devices screen:
      • The list of uncategorised accessible devices was not correctly populated after removing external hardware.
      • Fix a potential crash when categorising devices that are connected to external hardware.
    • Circuit Code Files screen:
      • Closing a document that is not the foreground document could hide the file specific toolbar buttons.
      • An extra separator was added to the main File menu when editing code in the project file.
    • Test Device Files screen: fix an application slowdown when writing text in overwrite mode.
    • Test Coverage screen:
      • PCOLA/SOQ: fix crash after removing the last group.
      • PCOLA/SOQ: fix editing groups so that devices can’t be added to the same group multiple times or to multiple groups and ensuring that removed devices can be immediately re-added.
      • PCOLA/SOQ: better validation of group names.
      • Don’t exclude nets and logic blocks unnecessarily.
      • PCOLA/SOQ: if a project only contained empty groups then they would not be saved.
      • Save the state of the “Show coverage from enabled tests” checkbox in the project.
      • Various performance improvements.
    • XJEase Waveform:
      • Display events like resets, SAFE, Connection Test, RUNSVF and RUNSTAPL.
      • Allow pins on multicore devices to be captured.
      • Foreign bus pins were not being remembered in the pin selection dialog.
      • Fix a potential crash display a context menu after opening and closing the Waveform View multiple times.
    • XJEase Watch:
      • Use a different font to display variables and their values to prevent some names with a leading ‘j’ from being cut off.
      • Fix the display of long variables.
      • Improve the detailed view for arrays.
  • XJAnalyser: fix situation where a newly added bus could be renamed whilst the chain was still running.
  • Chain Debugger: better error message in some situations when Check Chain fails.
  • Layout Viewer:
    • Add device selector alongside net selector.
    • Ensure that the component layers are never the same colour.
    • Automatically enter selection mode if the selection type is changed.
    • Highlight vias on selected nets when a layer is activated.
    • Keep view buttons disabled until the board is loaded and they can have an effect.
    • Alway activate top or bottom signal layers when selecting nets, even if the layer only contains toeprints or vias.
    • The Search item on the Help menu was non-functional.
    • Mute layer colours when entering select mode.
    • Disable multiple selection as the default.
    • Display created nets for non-connected pins.
    • Fix crash when attempting to open the Layout Viewer when no 3D accelerated graphics are available.
  • XJLink Manager: an incorrect icon could sometimes be shown for some XJLink2 variants.
  • XJRunner Integration:
    • Fix potential application crash if the creating a Runner object fails.
    • Update the minimum LabVIEW, TestStand and LabWindows/CVI requirements.
  • SPEA: improve detection of unusable bed of nails testpoints.
  • XJEase:
    • Undefined data could be written to the JTAG chain after doing raw JTAG in a profile setup function.
    • Setup logic correctly when reading using :=.
    • Fix the precedence of the &&? and ||? operators.
    • The state of logic was not being reset correctly after an error, which could cause unnecessary errors in post testing functions.
    • Reading from PIO into a bit or range of bits of a variable overwrote the whole variable.
    • Improve the performance of writing to files when the data is byte aligned.
  • Connection Test:
    • Handle open-collector single-input devices better.
    • Don’t exclude nets from logic testing unnecessarily.
    • Constant pins were not being driven correctly from external hardware during 1149.6 testing.
    • Fix erroneous conflict error during initialisation.
  • ODB++: warn if a pin is present twice.
  • Netlists: add support for .fif files.
  • XJLink2 Self Test:
    • Ensure that the correct safe pinmap is always used initially to avoid pin 4 being briefly set as a soft ground.
  • Help:
    • XJEase: ensure XJEaseDoc tags are indexed correctly.
    • XJEase: improve the documentation for the &&? and ||? operators.

3.8.1

Released 7th December 2018

  • XJDeveloper:
    • Boards screen:
      • Fix dialog box title when finishing editing external hardware.
      • Allow individual BOM sources to be selected when suggesting missing devices as unfitted.
    • JTAG Chain screen: improve help.
    • Test Device Files screen:
      • New additional code files should not include the standard template the circuit code files do.
      • Update modified files that are open when updating files from the library.
      • Don’t ask to add test functions to the test list that are already present.
    • Test Coverage screen:
      • Calculate PCOLA/SOQ statistics.
      • Add PCOLA/SOQ report.
      • Improve retention of selected item when switching screens.
      • Fix functional test coverage if a pin was affected by multiple functional tests.
      • Functional test coverage was not being displayed correctly in the chart view when multiple nets were selected.
    • XJRunner Setup screen:
      • Sort test devices when setting bus access overrides.
      • Show device reference for pins from other devices in busses when editing bus access overrides.
      • Don’t allow pins on a device that is both a JTAG and a test device to be selected for bus access overrides.
      • Fix potential crash editing the test list caused by duplicate test functions being created when categorising devices.
    • Analyser screen: fix potential crash when running with dynamic chains.
    • Run Tests screen: fix memory leak when switching back and forth to the screen.
    • XJEase Waveform:
      • Fix displaying read/write lines with conflicts.
      • Fix crash selecting pins to display if a pin is on a bus but not present in the netlist.
      • Display core names for pins on multicore devices.
    • Explorer: make it clear when a pin on a bus belongs to a different device.
    • Fix potential crash reloading a project after modifying the project externally and leaving errors in a board file.
    • Add a context menu to tabbed documents to allow multiple documents to be closed at once.
    • Fix code folding in XJEase code editors when a function definition had a comment on the end of the line.
    • Fix potential crash when changing screens very quickly.
    • Fix potential crash copying text from the application in certain places when another application is holding the clipboard open.
    • Improve the layout and usability of the category page of the options dialog.
  • Layout Viewer:
    • Don’t update the current mouse position when dragging.
    • Allow image layers to be deleted.
  • XJAnalyser: in some situations, a pin’s write value could be displayed erroneously as oscillating.
  • XJRunner Integration:
    • Allow access to SERIAL_NUMBER and XJPACK_PROJECT_VERSION globals.
    • Ensure XJPACK_PROJECT_VERSION gets initialised.
    • Ensure that network licences are released when closing.
    • LabVIEW example:
      • Fix potential crash if the XJLink is unplugged.
      • Add an example using OutputFromLastTestRun.
    • Lab/Windows: update the generated wrappers.
  • XJEase:
    • Don’t report an error if a pin on a bus has the same override applied twice.
    • Fix bus access overrides with multicore devices.
    • Restrict SET statements to only use current overrides.
    • Add hyperlinks to warnings about test function tags.
  • Netlists:
    • Handle PADS PowerPCB v10 files.
    • Identify more recent Eagle netlists.
  • XJVersion: fix displaying installation details.
  • SPEA: fix crash parsing faulty power supply information.
  • Installer:
    • Add missing standalone XJAnalyser help file.
    • Handle failure to detect Controlled Folder Access resulting in the installation failing.
  • XJDemo 3 example:
    • Re-enable disabled WriteSerialNumber function.
    • Update functional test coverage.
    • Flush the keyboard buffer before prompting the user for input.
  • Help:
    • Include XJAnalyser tutorial in XJAnalyser help index.
    • Add breadcrumbs to all help pages.
    • Various tutorial improvements.

3.8.0

Released 20th November 2018

  • Waveform Viewer for XJEase
    • Allows capture and graphical display of signals during a test.
    • Contains debugging controls so can use in conjunction with code breakpoints.
  • New Test Coverage screen, combining the DFT and Functional Tests screens.
    • Test coverage analysis algorithms improved around logic devices.
    • Test Coverage statistics adjust dynamically to reflect which tests are selected and what Connection Test options are enabled.
  • New Layout Viewer
    • Better performance.
    • Better integration with the rest of the system.
    • Much smaller XJPack files.

Smaller enhancements and bug fixes

  • XJDeveloper:
    • Boards screen:
      • Fix crash clicking View Schematic on the Add Board dialog before the board’s netlist has been selected.
      • Fix crash adding a board and specifying an invalid netlist filename.
      • Fix potential crash handling BOM data while importing an existing board.
    • Connections screen:
      • Improve the performance of adding or removing manual devices.
      • An error was displayed if a pin was disconnected from its net and then assigned as power or ground net.
      • Device to device connections could not be disabled directly from the screen.
    • Power/Ground Nets screen: fix possible crash finding links for termination ref nets.
    • JTAG Chain screen: fix resizing behaviour of the Edit Profile dialog.
    • Categorise Devices screen:
      • Fix potential crash in some circumstances recalculating net accessibility with logic after categorising devices.
      • Pressing backspace in the filter text box could cause focus to jump elsewhere if there is more than one board.
    • Logic Files screen:
      • Trim excess whitespace from pin numbers when defining logic devices.
      • Generate warnings if conflicting entries are entered into a truth table.
      • Path to logic file not written into the project file correctly in certain circumstances when the project has a non-standard directory structure.
    • Circuit Code Files screen: new template for new additional code files that includes the standard XJEaseDoc tags for a test function.
    • Test Coverage screen:
      • Fix coverage calculations in certain circumstances for uncategorised devices and constant input nets.
      • Make all reports non-modal.
      • Fix potential crash creating a Test Summary Report.
      • Exporting test coverage reports to PDF no longer requires Microsoft Word to be installed.
      • Better default filenames when saving reports to PDF.
      • Report settings now remembered per project.
      • Allow unprobeable devices to be configured in test point reports.
      • Never suggest test points on nets with just a single pin.
      • Add termination warnings to the Test Summary Report.
      • Improve the UI for the Test Summary Report, adding a bit more space around the controls.
    • Analyser screen: fix potential crash closing the application from the Analyser screen while the chain is still running.
    • Run Tests screen:
      • If tests were stopped via switching away from the screen, the post testing function would not run.
      • Whilst debugging, if execution was stopped via the controls in the Test Device or Circuit Code Files screens, then execution could continue briefly before the test actually stopped.
    • Devices needing categorisation did not appear after categorising a coupling capacitor unless the project was closed and re-opened.
    • Don’t warn about constant values on TRST nets.
    • Be more consistent with how .xjd files are written and avoid meaningless changes to the file, which interferes with source control.
    • Projects that contained boards with slashes in their name and used an ODB++ project could not be packed.
    • Allow keyboard shortcuts for opening Explorer, the Layout Viewer and the Schematic Viewer to work globally across all top level windows in XJDeveloper.
    • Improve the update mechanism and ensure that the newly upgraded version of XJDeveloper is always launched.
    • Allow changes to project notes to be undone and redone.
  • XJAnalyser:
    • Display net names for pins on multi-core devices correctly.
    • Fix potential crash unplugging the XJLink while doing a Save As.
    • Fix potential crash doing a hard reset after starting the chain had failed with dynamic chains.
  • XJRunner: fix potential crash when importing a corrupt old style .xjrp project.
  • Log File Viewer: fix potential crash opening corrupted log files.
  • XJRun: fix crash if the argument to the -dir switch has a trailing slash.
  • XJRunner Integration:
    • Allow the pinmap to be overridden.
    • Expose the log file paths via properties.
  • SPEA: fix crash if the XJLink licence has expired.
  • XJEase:
    • Running two XJEase functions sequentially inside a TRST sequence did not always work correctly, because the chain would not be left in the correct state for the second function.
    • Improve how pin numbers and bus bit numbers are displayed in errors and warnings.
    • Allow all JTAG pins to be accessed as PIO pins, including :=*.
    • Allow PIO pins to be driven and read at the same time using :=*.
    • Allow a bit range on the right hand side of a SET statement when using :=*.
    • Ensure that external hardware and PIO accesses are better synchronised with JTAG accesses.
    • Allow PIO writes inside HOLDOFF blocks.
    • Ensure that a TRST pin controlled via external hardware remains constant after the TRST sequence has finished.
    • Flush any outstanding JTAG scans at each breakpoint when debugging.
  • Logic:
    • Reads via logic could generate unnecessary scans.
    • Various performance and correctness fixes.
  • Connection Test: fix issue where expanding an error reported that no data was found.
  • Netlists: add importer for a Corelis netlist format.
  • Installer: detect if Controlled Folder Access is enabled.
  • Help:
    • Not all items were appearing in the help index.
    • Document the application log files.
    • Clarify and improve the help for the XJEase FORMAT, FOPEN and FEXISTS function.
    • Improve the help for the XJRunner Setup screen, including adding more information on adding conditions.
    • Update the XJLink2 documentation.

Older versions

3.7 | 3.6 | 3.5 | 3.4 | 3.3 | 3.2 | 3.1 | 3.0 | 2.7 | 2.6 | 2.5 | 2.4 | 2.3 | 2.2 | 2.1 | 2.0


We welcome any suggestions for improving our products. Please contact us with any comments you may have and we will look into incorporating your ideas into a future version.