This blog article is the final part of the three part series detailing the new Revisions feature in XJDeveloper 3.10. This article looks under the hood at how the device matching algorithm works.
Why device matching?
Historically, the main issue with re-using your XJDeveloper project setup from one revision of a board to the next was device renumbering. XJDeveloper uses a device-centric model to setup your project and everything is keyed on reference designator, so if, for example, U27 is suddenly not U27 anymore then your old project is not much use. The new Revisions feature aims to overcome this problem by automatically identifying any reference designator changes and updating your project accordingly. The algorithm identifies a one-to-one mapping between devices in the source project and devices in the revision project and then copies across any device categorisations. It simultaneously updates the XJRunner test list, connections, constant pins and many other aspects of the project so you don’t have to. The end result is a much quicker transition from one design revision to the next while developing tests for your board.
How does it work?
The device matching algorithm pulls in all available data about the old and new revisions of the circuit to produce 1-to-1 matches between the source project and the revision. Each match is given a percentage confidence score which is then displayed in the Revision Checklist, 100% indicating a perfect match. Matches which the algorithm is very confident about are accepted automatically (but can be undone), others are presented as suggestions which you can either accept or reject.
The confidence score assigned to a match is made up of 4 separate factors:
- Reference designator match
- Bill of Materials (BOM) data match
- Pin count match
- Net topology match
The relative weightings of the different factors vary depending on the type of device being matched. You can mouse over any score in the Revision Checklist to display a tooltip with a detailed breakdown of all the contributions. I will go into more detail about each of the contributions below.