XJTAG 3.12 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.12.4

Released 28th October 2022

  • XJDeveloper:
    • Connections Screen: Set the initial focus to the first text box on the Add Connectionn dialog.
    • Categorise Devices Screen: Set the initial focus to the textbox on the Assign Device as Ignored dialog.
    • Test Device Files Screen:
      • Edit Configuration Variable Dialog:
        • Fix a crash attempting to re-order list values when the list is empty.
        • Ensure that the Remove button is disabled when it is unavailable when editing list values.
        • A validation error could appear erroneously when editing list values.
        • Display validation errors immediately rather than when OK is clicked.
        • Fix the behaviour of removing multiple list values in certain circumstances.
        • Make it possible to select a list value as the default immediately after creating it.
        • Fix the behaviour of pasting new list values on top of existing values.
      • Fix a potential crash when adding additional code files to a device file on a newly created board that was not yet saved.
      • Don’t open code files when double-clicking the tree expand/collapse icons.
      • Reloading an externally modified test device file can cause its version number to be displayed incorrectly.
    • Logic Files Screen: Report an error if a logic device with a footprint without any gates is assigned.
    • XJRunner Setup Screen: Fix the Help button on the Add Fault dialog.
    • Revisions: Fix a potential crash viewing the BOM data for the parent project.
    • Ensure that menu items on the Tools menu get disabled correctly after a project is closed.
    • Unhiding warnings did not always work correctly.
    • Context menus on hyperlinks in errors were not being displayed.
    • When viewing the Change Log of a library file, ensure that the diff is always visible.
    • Fix various issues highlighting matches in the Find and Replace dialog.
  • XJInvestigator: Fix a typo on the Constant Pins Screen.
  • XJRunner:
    • Improve the User Management Dialog.
    • Fix a potential crash after an XJLinmk has been unplugged.
  • XJEase Library Editor:
    • Don’t allow a file to be renamed to a blank filename.
    • Fix a potential crash trying to export a library with an incorrect file extension.
  • Connection Test Viewer: Fix a potential crash changing the filters with the Edit View dialog open.
  • Connection Test:
    • When a power or ground net has an error, include power and ground pins in the output.
    • Display self-monitoring pins correctly in the output.
    • Handle expected shorts on self-monitoring differential nets.
    • Fix a potential crash when enabling the option to always drive differentially.
  • XJIntegration: Fix a TestStand example VI.
  • XJEase:
    • Fix a possible crash if AV software prevents access to the compiled executable.
    • Support brackets with GETFREQ, SETFREQ, GET_OSC_OUTPUT_FREQ, SET_OSC_OUTPUT_FREQ, FLUSH, SAFE and EXTERNAL_SAFE builtin functions.
  • Logic: Handle excluded devices properly.
  • ODB++: Be more forgiving of invalid data in the misc/info file if it is not information that XJTAG relies on.
  • Netlists: Support a new, unknown netlist format.
  • Help:
    • Update test coverage figures in the tutorials.
    • Improve XJFlash help.
    • User Guide:
      • Add JTAG Chain section.
      • Improve the wording around unfitted suggestion rules.
    • Update Utilities section in the main help.
    • Fix application context help addresses that included anchors.
    • Don’t make an alert sound when pressing enter to search.

3.12.3

Released 23rd August 2022

  • XJDeveloper:
    • Boards Screen:
      • When adding an existing board, import its BOM data and schematics if defined in the board file.
      • Fix a potential crash editing a board in a SPEA project.
      • Fix a possible crash in the manually created board wizard when there are multiple BSDL matches for a device.
      • BOM Import:
        • Fix a potential crash attempting to import a corrupt Excel file.
        • Introduce better default widths for BOM columns.
        • Indicate BOM fields that have already been assigned when assigning fields to columns.
        • Ignore the case of file extensions when identifying Excel BOM files.
        • Allow multiple device reference delimiters to be detected.
        • Improve the performance and reduce drawing artifacts when loading large datasets.
        • Improve the parsing of some kinds of resistor values.
    • Connections Screen: Fix a potential crash adding a disconnect.
    • Power/Ground Nets Screen:
      • Remove the context menu item to display nets in Analyser.
      • Remove a spurious menu separator from the context menu.
    • JTAG Chain Screen:
      • Offer to copy BSDL files to the project directory when suggesting JTAG chains.
      • Improve the display of TDI and TDO pin errors.
    • Categorise Devices Screen:
      • Fix a potential crash clicking the Assign As button with no devices selected.
      • Make it easier to select a device to base a new device file on.
      • Improve the validation on the form when creating a new device file.
      • Right align checkboxes when configuring test devices.
      • Fix the tab order of the Device Note dialog.
    • Constant Pins Screen:
      • Sort the constant pins.
      • Fix the behaviour of the delete and enter keys when editing device notes in the table of constant pins.
    • Test Device Files Screen:
      • Persist column widths.
      • Update status of XJEase library files immediately when they are modified.
      • Fix the ordering of the Save and Save All toolstrip buttons.
      • Creating a new test device file immediately after separating the screen did not work correctly.
      • Improve the behaviour after a duplicate bus has been created.
      • Configuration Variables: Ensure Edit and Remove buttons are enabled and disabled correctly.
      • Configuration Variables: Don’t start editing a variable when the user clicks the empty white space in the window.
    • Test Coverage Screen:
      • Fix a potential crash calculating test coverage after disabling external hardware.
      • Don’t allow unused profiles to be selected.
      • PCOLA/SOQ Report: Make the PDF export more likely to fit on a page.
      • Remember the last used filenames of reports when saving.
      • Test Coverage Report:
        • Allow the report to be filtered by board.
        • Prefer the test group name for grouping tests rather than the library category.
        • Change the order of the report wizard pages.
        • Warn if the report is out of date because the project notes have been edited.
        • Fix the width of the floating table header.
        • Fix a potential crash generating the report if the project contains duplicate compliance pin warnings.
    • Pin Mapping Screen:
      • Improve the error message when a sub-chain has no validate step.
      • Improve the Check Chain diagnostics when there are errors in the JTAG chain setup.
    • Run Tests Screen:
      • Update correctly after a profile has been renamed.
      • Waveform Viewer:
        • Add SWD label.
        • Fix a potential crash closing the viewer when stepping through code.
        • Fix a potential crash when pressing Next or Previous, if no row was selected and there were no transitions on any row.
        • Fix a possible internal compiler error when capturing logic waveforms and the logic is controllable by a JTAG device that is not in the current profile.
        • Duplicate events could be displayed in the waveform viewer when stepping through code.
    • Find and Replace:
      • Find references to variables used in test list conditions.
      • Display potentially stale search results in italics.
      • Improve the highlighting of reference matches.
      • Fix a potential hang when clicking Next on an empty result set.
      • Fix a possible case where clicking on Find in Files results would not correctly restore a separated editor screen.
    • Revisions:
      • Add a task item to check device references for multi-device logic blocks.
      • Improve the layout of the New Revision dialog.
    • Explorer:
      • Expand the search box to fill available space on the toolstrip.
      • Fix a potential crash.
    • Options Dialog:
      • Fix an issue where closing the dialog could give focus to another application.
      • Allow individual net and device patterns to be reset.
      • Don’t allow duplicate category names.
      • Don’t allow the built-in All Nets and All Components categories to be edited.
    • If extracting value data from the description BOM field was disabled and a board file is being saved in the new full format, the setting was not being correctly saved.
    • The Insert/Overwrite status in the status bar of the text editors could get out of sync.
    • Make pressing F12 to go to function definitions more reliable.
    • Fix a potential crash deleting all code from a file that contains a breakpoint.
    • BSDL Editor: Opening the file location was not opening Windows Explorer in the correct location.
    • Prevent flickering when displaying wizard dialogs.
    • Enable Ctrl+Shift+Tab for cycling backwards between docked panes.
    • Ensure that the dialog that is displayed when using Ctrl+Tab to cycle through docked panes is always displayed at the correct size.
    • Add F1 help to the Screen Explorer and the Assistant.
    • Relocate the help button in the XJEase library browser.
    • Display a better error message if logging onto the XJTAG website to download updates fails.
    • Include files specified as testlist arguments when suggesting files to be included in an XJPack file.
    • Fix undo and redo when editing projects notes.
    • Restore separated minimised windows correctly.
    • Make profile selection boxes wider to accommodate longer names.
    • Improve error messages around errors with XJLink pin connections.
    • Improve reliability of keyboard shortcuts no matter what control currently has focus.
  • XJRunner:
    • Print loop count in output when looping tests.
    • Disable menu items to view items in the schematic or layout if those items are not present in the XJPack file.
    • Enable hyperlinks in connection test output when the Connection Test output viewer is the only visualisation method available.
    • Disable hyperlinks for schematic and layout viewer if these are disabled by XJRunner user privileges.
    • Fix formatting and display of output from post testing function.
    • Fix the display of XJLinks with no name in the serial numbers dialog.
    • If a test was switched from looping a fixed number of times to looping continuously, the UI was not updated correctly.
  • XJAnalyser:
    • Display boundary register cell numbers in pin properties.
    • Fix crash attempting to view help for a warning.
    • Fix a possible crash in the project setup wizard when there are multiple BSDL matches for a device.
    • Fix spurious warnings about invalid pin names for pins that are present in the netlist, but not the BSDL file.
    • Improve the readability of some warnings.
    • Ensure that the toolstrip buttons in the constant pins window get enabled and disabled correctly.
    • Improve the Chain View window icon.
    • Add a help button to the TCK frequency dialog.
    • Improve the SVF/STAPL dialog.
  • XJInvestigator:
    • Only show the welcome screen if logins are enabled.
    • Fix the help button on the options dialog.
  • JTAG Chain Debugger:
    • Fix some layout issues on the Device Configuration tab.
    • Restore the window’s location before it is displayed, removing a flicker when the application first starts.
    • Fix the help button on the options dialog.
  • Log File Viewer:
    • Warn when opening files with unknown extensions.
    • Improve the behaviour of dragging and dropping multiple items onto the application.
    • Fix the tab order on the Add Folder to File List dialog.
  • XJEase Library Editor: Show differences between files when importing files from a project that already exist in the library.
  • Schematic Viewer:
    • Ensure that the Edit->Copy command is enabled correctly.
    • Include manual devices in netlist searches.
    • Don’t play alert sounds when performing text searches.
  • Layout Viewer: Don’t reset component fade value on every search.
  • XJVersion: Fix a crash opening the help.
  • XJEase:
    • Support external APIs in assemblies that have dependencies.
    • Force the first JTAG scan after doing SWD in non-dynamic chain projects.
    • Allow XJLink2 PIO pins to be used inside a HOLDOFF block.
    • Don’t allow external hardware access or PIO access to happen simultaneously with JTAG access inside a HOLDOFF block.
    • Fix READABLE to handle tied together logic inputs correctly.
    • Fix a internal compiler error when initialising an array assigned to a top level variable with non-constant values.
    • Improve stopping tests.
    • Modifying the bits of one variable could affect the value of another when one was initialised from the other and their bits were both modified inside the function.
  • Connection Test:
    • Fix a potential crash when handling differential buffers.
    • Fix a potential crash in certain circumstances with differential signals and common controls.
    • The option to ignore shorts on single pin nets did not work correctly for multi-core devices.
  • Logic: Improve behaviour and output when unable to drive a block.
  • Netlists: Add support for a Zuken CCF variant and Mentor PCB db format.
  • BSDL: Add CDN DFT custom cell types.
  • Help:
    • Matching search terms were not always being highlighted correctly.
    • Support searching for quoted and hyphenated terms.
    • Fix the icons in the dialog that is displayed when cycling through tabs via Ctrl+Tab.
    • Use an Excel BOM file in the XJDemo v4 and IO board example projects and in the XJDemo v4 tutorial.
    • Add a new user guide section on the test list and XJRunner setup.
    • Improve the documentation for GET_PIN_ON_NET and GET_PIN_ON_DEVICE.
    • Various tutorial fixes.
  • Installer:
    • Include XJEase Library version 170.
    • Associate .libraryproj files with the XJEase Library Editor.
    • Fix a potential failure on 32-bit versions of Windows.
  • Licensing: Ignore maintenance expiry dates for evaluation licences.

3.12.2

Released 17th May 2022

  • XJDeveloper:
    • Boards Screen: Fix a potential crash in the Manually Created Board wizard if the BSDL Library referenced files that were no longer present.
    • Categorise Devices Screen:
      • Don’t scroll the Assign As panel to the bottom after categorising devices.
      • Remove invalid characters from test device filenames when creating new test device files.
    • Logic Files Screen: Make the list of part names resizable when editing logic device types.
    • Test Coverage Screen:
      • Ensure that test devices are always put into the correct group in test coverage reports.
      • Suggest a filename when exporting CSV files.
    • Pin Mapping Screen: Fix a potential crash after running a reset sequence during Check Chain when the project uses dynamic chains.
    • Analyser Screen: Fix a potential crash clicking on a JTAG pin that is connected to an excluded or uncategorised device.
    • Find and Replace:
      • The highlighting of search results was not always displayed correctly.
      • Allow XJModule documentation to be searched.
    • Revisions:
      • Clear project notes when creating a revision.
      • Add a checklist item to review the circuit name.
    • Add Enter key shortcuts to edit items in various places.
    • Enable common shortcut keystrokes in various text boxes in the application.
    • Prevent confusion when BOM value data was available from the description field and from an assigned value field.
    • Improve suggestions for suspected paired termination resistors.
    • Allow the output font to be configured in various output boxes in the application.
    • Optimise opening the Options Dialog.
  • XJRunner:
    • Fix a possible error writing the log files when stopping tests in group mode.
    • Support the ISO 8601 date format in log file names.
    • Print the result of each iteration of a looped test in the plain text log file.
  • XJAnalyser:
    • The filename could be truncated in the status bar when running SVF and STAPL files.
    • Improve the validation of TCK frequencies in the Run SVF/STAPL dialog.
  • JTAG Chain Debugger:
    • Fix a potential crash adding steps to a test reset sequence.
    • Fix a potential crash in Get Max TCK or Check Chain if the BSDL Library referenced files that were no longer present.
    • Allow the output font to be configured.
  • XJEase Library Editor: Fix a possible crash importing files from a project that has missing files in it.
  • XJIntegration: Fix potential memory leaks when using the XJTAG output box.
  • Schematic Viewer:
    • Disable an alert sound when searching.
    • Don’t truncate board names unnecessarily on tabs.
    • Ensure list of boards is disabled correctly when load all boards is selected when opening schematics.
  • Netlists: Add support for KiCad netlists.
  • Installer: Prompt the user to reboot gracefully after upgrading the Visual C++ libraries rather than doing it unconditionally.

3.12.1

Released 20th April 2022

    • XJDeveloper:
      • Boards Screen: blank lines in BOM CSV files could cause incorrect line numbers to be displayed in the BOM Import Wizard.
      • Connections Screen: duplicate connections were not being detected correctly in some circumstances.
      • JTAG Chain Screen: importing a multi-core device file from a child directory of a project did not work correctly.
      • Categorise Devices Screen: add a drop-down of recently used device notes for ignore devices.
      • Run Tests Screen: tests could fail to start if the application had been left idle for more than five minutes.
      • Find/Replace:
        • Improve the highlighting of search results when doing find in files.
        • Prevent the dialog from going behind the main form.
        • Fix some focus issues when clicking on find results.
        • Fix a possible crash after closing an inactive document.
        • Highlight search results more clearly.
        • If Mark All had been selected for a search that matched every character, then it could not be cleared.
        • Fix a possible crash doing an incremental search after closing a file.
      • Ensure new projects have a proper safe pin mapping assigned by default: pin 4 was being set as a soft ground.
      • Suppress warnings correctly for JTAG/Test devices.
      • Fix a regression where a project containing duplicate inter-board device connections could not be loaded.
      • Fix a potential crash closing the project after XJEase execution has failed because the application has run out of memory.
      • The project could be incorrectly marked as modified after exporting an XJPack file.
      • Display the library versions of test and passive device files.
      • Explorer: bus access could be displayed incorrectly after creating, enabling or disabling connections.
    • XJAnalyser: fix some display glitches when first displaying the devices.
    • XJRunner:
      • Fix an issue where right-clicking in the test output could stop working.
      • Fix a possible crash opening XJPack files from network drives.
      • Force the user to login after enabling logins.
      • Don’t display the user welcome screen when logins are disabled.
      • Suppress inverted short errors if digital signals propagate through capacitors in 1149.6 testing.
      • Fix an issue where users could be incorrectly edited in the user management dialog after clicking and dragging between checkboxes on different rows.
      • Display user comments in test output and .xjlog files.
    • XJInvestigator: fix a crash after dragging a project onto the start screen.
    • XJRun:
      • Ignore null characters in XJEase output, which could cause output to be truncated.
      • Add an -E switch to specify that certain warnings should be reported as errors.
      • Add an -I switch to specify that certain warnings should be ignored.
    • JTAG Chain Debugger:
      • Fix a possible crash after editing a PIO pin with an invalid name.
      • Correct the application’s main window title.
    • Layout Viewer:
      • Text would appear upside-down when the board was rotated in the bottom view.
      • Remove the actual size button.
      • Reduce the net opacity when viewing specific nets or faults.
      • Layout Viewer settings could be lost if the project was opened and closed without opening the layout viewer.
      • Update colours to make various layers brighter and more easily differentiated.
    • Schematic Viewer: display three digit page counts correctly.
    • XJIntegration:
      • Update example C# projects.
      • XJEase function calls in test reset sequences were not being resolved when using an overridden pin mapping file.
      • Add XJLink.SelfTestPassed property.
      • Fix a possible deadlock stopping the XJLink self test.
    • XJLink Manager:
      • Add the ability to download new maintenance files from the XJTAG website.
      • Searching for text in the XJLink self test output did not work.
      • Fix removing expired authcodes – was notifying that they had been removed each time it started.
    • XJHelp: hide the search results after clicking on a search result if the search results window is set to auto-hide.
    • SPEA:
      • Ensure that test results are returned correctly when running using the DLL.
      • Improve the locating of configuration files.
      • Combine all logging configuration in the XjtagConfig.ini file.
      • Allow the pin mapping to be overridden in XjtagConfig.ini.
      • Allow the XJLink2 self test to be run via the integration DLL.
    • XJEase: improve and document the quoting of arguments to commands run via the SYSTEM function.
    • Connection Test:
      • Fix a potential crash when a net contains both coupling capacitors and bias term resistors.
      • Reduced test fixture board output did not work correctly when there are connections on the board.
      • Fix a crash in certain circumstances if the option to always driver differential signals differentially is enabled.
      • Fix an issue where spurious undetected shorts could be reported between differentially terminated nets that have no available inputs.
    • Logic: support logic that spans multiple devices.
    • Netlists: handle spaces in net names in Cadnetix netlists.
    • Installer: fix the detection of older existing C++ runtimes.
    • Help:
      • Improve the description of the XJEase SAFE statement.
      • Improve the documentation for test device files, XJEase scopes and function calls.
      • User guide: add section on handling XJEase library updates.
      • When opening the XJDemo v3 tutorial from the XJDemo v4 tutorial, open it in a new window.

3.12.0

Released 17th March 2022

Main features

      • Add a new “Excluded” device category for devices that cannot be disabled but should be excluded from the Connection Test.
      • Improve the searching files in XJDeveloper, including the ability to search all files in the project and to find all references to a function or variable.
      • Add the ability to go to the definition of any item in the code editor.
      • Add more fine-grained privileges for users in XJRunner and XJInvestigator.
      • Allow restrictions to be placed on what the end-user can do in XJRunner and XJInvestigator when creating an XJPack file.
      • Automatically analyse the results of signal integrity data.

Smaller enhancements and bug fixes

      • XJDeveloper:
        • Boards Screen: Editing a board could lose the test fixture board setting.
        • Categorise Devices Screen: Don’t allow connect devices to be incorrectly uncategorised via drag and drop or via the delete key.
        • Test Device Files Screen:
          • Don’t allow device files to be added as additional code files.
          • Rename “Configure devices” button to “Edit configuration”.
        • Logic Files Screen: Rename Logic Explorer to Navigator for consistency with other screens.
        • Circuit Code Files Screen: Don’t allow device files to be added as circuit code files.
        • Test Coverage Screen:
          • The test coverage might not be updated correctly after editing a JTAG chain profile was undone or redone.
          • Fix a potential crash after unselecting a profile.
          • Test Summary Report: Only list devices in the current profile for Connection Test and CheckChain.
          • Improve the resize behaviour of the profile selection list.
        • Pin Mapping Screen:
          • Implement a new more reliable Get Max TCK algorithm.
          • Fix Get Max TCK when used with dynamic chains.
          • Remove a spurious warning about the calculated frequency after running Get Max TCK.
        • Debug Connection Test Screen: Fix a potential crash if the XJLink Manager is no longer running.
        • Remove the option to always save projects with absolute paths.
        • Improve Save As functionality that allows more control over how the new copy of the project is structured.
        • Make switching screens smoother with fewer visual artifacts and less flickering.
        • Support common custom cell types without the need for package files.
        • Improve auto-completion in code editors to complete variable names as well as functions.
        • Rename “Ignore” category to “Ignored”.
        • Fix an issue in code editors where sometimes the current document would be changed when focus changed.
        • Fix the display of line numbers in code editors when there are more than 10000 lines.
        • Allow text in all output windows to be zoomed by holding down Control and using the mouse scroll-wheel.
        • Allow projects to be opened by dragging and dropping them onto the application window.
        • Fix a possible crash right clicking in the code preview window in the XJEase Library.
        • Don’t allow an unsaved project to be packed.
        • Update the default net and device category filters.
        • Add a number of new shortcut keys.
        • Fix inconsistent capitalisation on the New Revision Dialog.
      • Put messagebox options into categories in all Options dialogs.
      • Display a better error message if the application cannot run because the licence is not in maintenance.
      • XJRunner:
        • Don’t automatically highlight all faults in the fault dictionary.
        • It was possible for projects to appears in the users most recently used list.
        • Improve the default log filename.
        • Always display the currently logged in user in the status bar.
      • XJEase Library Editor: Fix a potential crash importing files from an XJDeveloper project that contains multiple boards.
      • Layout Viewer:
        • Allow the board to be rotated.
        • Remove some visual artifacts around the edges when panning.
        • Fix issue that occurs while attempting to pan while zooming.
        • Clarify that test coverage visualisation is for nets rather than pins.
        • When visualising test coverage, make the net visibility slider only affect nets without any coverage.
        • Replace centre to centre measurement mode with “Component or Pin” and “Net or Pad” modes.
        • Print to the selected printer, not the default one.
      • Schematic Viewer: Disable the copy item on the context menu if no text is selected.
      • XJIntegration:
        • Improve asynchronous message box functionality.
        • When a test function with multiple output values failed, the array of values was replaced by a single value.
        • The Runner.LastStopMode and FunctionFinishedEventArgs.StopMode properties were not always set correctly.
        • Fix the StopFunction method to always abort function calls.
        • Expose the XJTAG family version from the XjtagSystem.Version property rather than the full build number.
        • Calling SelectTest for a function when the corresponding group was previously disabled enabled all tests in the group, not just the selected one.
        • Runner.TckFrequency would return zero if the project was using the default TCK frequency.
        • Improve the TestStand example.
        • Improve the usability of various example projects.
        • Improve the help for the XJLink.Available property.
      • XJEase:
        • Fix the accuracy of SLEEP for shorter time periods.
        • Always display the reason that a bus is inaccessible.
        • Fix a possible crash running a test reset sequence that contains SAFE but no validate step.
        • Fix an issue where a SET statement immediately after a raw JTAG block might not always generate a JTAG scan.
      • Connection Test:
        • Generalise the option to always drive differential inputs differentially to all differential inputs, not just those driven by common-controlled pins.
        • Add an option to ignore shorts on single pin nets.
      • SPEA: Make the default XJPack export directory the Leonardo XJTAG directory.
      • Help:
        • Remove the documentation for the XJEase project files from the XJDeveloper help, so that it is no longer returned in search results.
        • Clarify the effect of the @devices XJEaseDocs tag.
        • Add user guide for creating test device files.
        • XJDeveloper: Refer to “Explorer” rather than “Netlist Explorer”.
        • Tutorial: Add exercise for editing footprints.
      • Installer: No longer include Borland C link libraries for XJAPI.

Older versions

3.11 | 3.10 | 3.9 | 3.8 | 3.7 | 3.6 | 3.5 | 3.4 | 3.3 | 3.2 | 3.1 | 3.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.