Whether you are transferring a captured design to a new PCB document for the first time, or making changes to an existing design on either the schematic or PCB side, some way of keeping the two sides in-sync is required. Altium Designer provides a powerful design synchronization feature that delivers an effective solution to the problem of keeping designs synchronized, allowing you to get on with the most important and, from an engineer's perspective, the more enjoyable job of actual design.
Summary
This article provides an overview of the process used by Altium Designer to keep your schematic and PCB designs synchronized. The facilities for detecting and resolving design differences are covered in particular.
Synchronization - Overview
The synchronization process can essentially be broken down into three steps: 1. Compare design documents (e.g. compare project source documents to the target PCB)
2. List the results of that comparison (the differences detected between the compared documents) 3. Implement changes to resolve those differences. At the heart of the synchronization process is a user-configurable Comparator (or difference engine). It is this Comparator that is used to implement Step 1 above comparing the nominated design documents and compiling a list of differences. Step 2 is the provision of a dialog that lists the results of the comparison and offers full control over the direction in which design updates are made when resolving the differences. See the section Directing the Update Traffic for further detail. Step 3 is the execution step actions to be implemented in order to bring the designs back into sync. Each action is actually a macro command, with the collective actions represented as an Engineering Change Order (ECO). See the section Implementing Design Updates for further detail. Figure 1 illustrates the overall flow for the synchronization process.
The Comparator is invoked whenever a comparison-based command is run, such as the Show Differences or Show Physical Differences commands, available from the Project menu. When updating directly from a schematic project to PCB (and vice-versa) comparison is made when using the dedicated Update/Import commands from the Design menus (see Direct Schematic PCB Synchronization).
Use the controls available to configure the Comparator as required. For each comparison type, you can determine whether any detected differences will be added to the final list of differences built by the Comparator (Find Differences) or skipped and therefore not included in the list (Ignore Differences). One example of when you might set certain comparison types to be ignored is for a design that is not multichannel in nature. In this case you can simply set the channel-related comparison types (Changed Channel Class Name, Channel Classes with Extra Members, Extra Channel Classes) to be ignored. Controls are also available that allow you to determine the criteria used by the Comparator when matching objects between compared documents. Applicable at the Net, Net Class and Component Class levels, these essentially allow you to fine tune the comparison process for these object types.
When component information is transferred for the first time between schematic source documents and a blank PCB design document, using the Synchronizer, all components will automatically be linked by unique ID the ID information from each schematic component being assigned to the corresponding component footprint.
The reason that manual linking of components is only carried out from within the PCB document, is that only the PCB component footprints need to be updated with the unique ID information it is already present on the schematic side. Use the dialog at any stage during the design to view the linking between components and to reassure yourself that the components on the schematic source documents are indeed correctly matched to the corresponding component footprints in the PCB design. Unique IDs can be removed at any time by moving the linked components back to the unmatched regions of the Edit Component Links dialog. Removing a component link will remove the unique ID from the corresponding PCB footprint only. The schematic component retains the unique ID, unless a new one is generated (using a reset unique ID-related command at either the schematic or component level). It is a good idea to have all components matched using unique IDs, so that annotation of designators in either schematic or PCB document can be carried out, with the safe knowledge that the documents can still be Figure 2. Assignment of Unique IDs through manual linking of components resynchronized at any stage. The documents can still be synchron-ized even if components aren't matched by unique IDs, but in this case, you will be prompted to match the components by designators only - comment and footprint is not taken into account and therefore it is possible that matching of some components is carried out incorrectly. In a similar vein, a unique ID is automatically assigned to each parameter definition on a source schematic document. This is used for those parameters that have been added as design rule directives. When transferring the design to the PCB document, any defined rule parameters will be used to generate the relevant design rules in the PCB. These generated rules will be given the same unique IDs, allowing you to change rule constraints in either schematic or PCB and push the changes across when performing a synchronization.
Version (v2.1) Mar 10, 2008
The Synchronizer is bi-directional. This means that you can specify updates to both documents in the same ECO. Figure 3. Viewing differences and setting update actions using the Differences dialog
In order to synchronize the designs the aim now is to determine, for each difference, whether or not to take action and in which direction the change is made specifying which document should be updated in order to remedy the difference. Even if differences are detected, you are under no obligation to take action on them. When the Differences dialog is generated, the default update decision of No Change is assigned to each entry. Altium Designer will only synchronize the elements you specify. If you wish to sweep all changes one way or another, simply right-click anywhere in Not all difference updates can be the dialog and choose from a range of commands that act on all difference entries, all pushed from the PCB back to the selected entries or all entries of a particular comparison type. Alternatively, click in the schematic document(s). The right-click Update column to make decisions on an individual basis. menu items will, in such cases, not The Change Order area of the dialog simply lists, for each difference that you decide to act upon, the action to be taken, the object affected by the action and the document upon which the action will be carried out. It is this information that is used to compile the subsequent ECO that will be used to effect the updates. Common actions that will be listed in this area are: Remove - where the update is in the direction of the document that contains the object causing the difference; the object will be removed Add - where the update is in the direction of the document that does not contain the object causing the difference; the object will be added Update - where both documents contain the same object that differs in some way; the object changed depends on the direction chosen.
allow the direction to be set to the left (i.e. the schematic document(s)). If you select this direction individually - by clicking on the associated entry in the Decision column - the ECO that is created will not contain the update, reinforcing the fact that such a change to the schematic document is not possible/supported.
Figure 4 shows an example of the Differences dialog after update decisions have been made.
Click the Report Differences button to set up and print/export a report for the differences found by the Comparator, the update decisions you have decided to make and the actions that will be included in the generated ECO.
Exploring Differences
If you want to investigate further the differences found by the Comparator, prior to generating an ECO, then click the Explore Differences button. The Differences dialog will close and you will be returned to the main workspace, with the Differences panel made visible.
The Differences panel can only display the differences that were listed in the Differences dialog.
The panel displays the differences found between documents in a tree-like structure. The top-level folder displays the total number of differences detected. Sub-folders are then created for each specific comparison type that appears in the Differences dialog. In each sub-folder are listed the specific differences that have been found, which in turn are broken down further into objects on the compared documents that are responsible for the differences arising. Use the panel to cross probe to an object responsible for a difference, on its parent document. Exploring differences in this way will cause any update decisions you have made in the Differences dialog to be lost - you will need to open the dialog again and define updates once more as required. Alternatively, you can cross probe to an object directly from within the Differences dialog. Double-click the objects entry in the Differences region of the dialog. As the Differences dialog remains open, it is a good idea to have the source and target documents open and the dialog placed such that your view is not obscured. To access detailed information about the Differences panel, press F1 when the cursor is over the (focused) panel.
In all three cases the comparison will proceed in accordance with the options defined for the Physical comparison types in the Comparator tab of the Options for Project dialog. Any detected physical differences will be listed in the Differences panel, with entries also appearing in the Messages panel. With the two versions of the document open side by side in the main design window, you can peruse the differences graphically. Clicking on a top-level folder for a detected difference (in the Differences panel) will highlight that difference on both documents simultaneously (Figure 6). Click on the sub-entry for an object to highlight it on its parent document separately.
Note that this feature is purely for visual comparison of differences between versions, neither of the documents can be updated by generation of ECOs. To access detailed information about the Storage Manager panel, press F1 when the cursor is over the (focused) panel.
Figure 6. Exploring physical differences between document versions using the Differences panel
Perhaps the most important and most often encountered situation for the use of ECOs however, and the one considered for the rest of this section, is when synchronizing the source documents of the captured design and the target PCB implementation of that design. Changes on either side will always need to be pushed to the other side in order to maintain synchronicity which is where the ECO comes into play.
It is particularly important to validate the proposed modification actions before executing them. Do this by clicking the Validate Changes button. Not only will the logic of your proposed changes be tested, but libraries will be searched to ensure that the models are available, even to the point of checking pin-to-pad matching. Validation results will appear in the Check column of the dialog. A green tick means that the proposed change is supported and will be carried out upon execution of the ECO. A red cross means that the proposed change is invalid and will not be carried out when the ECO is executed. If any modification entries fail the validation stage, an entry will appear in the corresponding Message column of the dialog (and also in the Messages panel), giving an indication as to why it failed (e.g. Footprint Not Found). You can always close out of the dialog at any stage, in order to investigate why certain changes are failing and make any design changes as necessary. When you are completely satisfied, click the Execute Changes button to execute the ECO and effect the valid changes contained therein.
When the ECO has been fully executed, a green tick will appear in the Done column for each modification carried out. Remember, only changes that pass the validation stage will be executed. Click the Report Changes button to set up and print/export a report for the modifications contained within the ECO. Bear in mind that the report will list all modification entries, irrespective of whether they validate and execute successfully.
Footprint pin numbers not matched to schematic pin numbers. Altium Designer supports user-definable pin-to-pad mapping, the default behavior is to expect the same number/letter on both sides. Pin-topad mapping is defined in the PCB Model dialog (edit the schematic symbol, select the footprint in the Models region of the dialog, and click Edit).
To resolve errors, perform a Show Differences, then in the Differences dialog click the Explore Differences button. Interrogate offending design objects through the Differences panel when it appears.
The following direct synchronization command is available from within a source schematic document:
Revision History
Date 9-Dec-2003 05-Aug-2005 Version No. 1.0 2.0 Revision New product release Updated for Altium Designer SP4. Renamed from Design Updates and ECOs. Rewritten to concentrate on the synchronization process. 10-Mar-2008 02-Aug-2011 2.1 Converted to A4, Updated template.
Software, hardware, documentation and related materials: Copyright 2011 Altium Limited. All rights reserved. You are permitted to print this document provided that (1) the use of such is for personal use only and will not be copied or posted on any network computer or broadcast in any media, and (2) no modifications of the document is made. Unauthorized duplication, in whole or part, of this document by any means, mechanical or electronic, including translation into another language, except for brief excerpts in published reviews, is prohibited without the express written permission of Altium Limited. Unauthorized duplication of this work may also be prohibited by local statute. Violators may be subject to both criminal and civil penalties, including fines and/or imprisonment. Altium, Altium Designer, Board Insight, DXP, Innovation Station, LiveDesign, NanoBoard, NanoTalk, OpenBus, P-CAD, SimCode, Situs, TASKING, and Topological Autorouting and their respective logos are trademarks or registered trademarks of Altium Limited or its subsidiaries. All other registered or unregistered trademarks referenced herein are the property of their respective owners and no trademark rights to the same are claimed.