You are on page 1of 9

Finding Differences and Synchronizing Designs

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.

Figure 1. Flow of the synchronization process in Altium Designer

Version (v2.1) Mar 10, 2008

AR0106 Finding Differences and Synchronizing Designs

Detecting the Differences


As mentioned, the very heart of the synchronization feature is the Comparator, without which detection of differences that exist between design documents would not be possible. The Comparator can compare the component and connective information between almost all kinds of documents. The following are just some of the document-type comparisons that can be made: Design hierarchy of a project to a PCB Schematic to Schematic PCB to PCB Netlist to PCB Netlist to Netlist.

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).

Setting Up the Comparator


As a user, you have complete control over the kinds of differences that the Comparator will detect. Controls for the Comparator are accessed from the Comparator tab of the Options for Project dialog (Project Project Options), with all settings stored as part of the project. Comparison types fall into four categories: Differences associated with Components comparisons made at the component level (e.g. detection of components that exist on schematic and PCB documents, but possessing different designators) Differences associated with Nets comparisons made at the net (connective) level (e.g. detection of extra nets existing on either schematic or PCB) Differences associated with Parameters comparisons made at the parameter level (e.g. detection of an object that exists on both the schematic and PCB, with the same parameter, but different values) Differences associated with Physical comparisons made at the physical level, when comparing two versions of the same schematic or PCB document (e.g. detection of extra PCB objects in one version of the compared document).

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.

Running the Comparator


For full control over the synchronization process, you need to be able to view the list of differences detected and built by the Comparator. This is especially true if you wish to control which, and in what direction, any updates (changes) are made, in order to (re)attain synchronicity. To view the list of differences, the Comparator should be invoked using the Show Differences command, which is available from the Project menu.

Version (v2.1) Mar 10, 2008

AR0106 Finding Differences and Synchronizing Designs

Choosing the Documents


Running the Show Differences command gives access to the Choose Documents To Compare dialog, which is used to select the documents for comparison. By default, the dialog opens in simple (non-advanced) mode, allowing you to quickly select the target PCB document to compare against the projects source document hierarchy. Enable the Advanced option to be able to select different document combinations to compare as required. For example, you might need to build a PCB using a netlist generated from a third partys Schematic Editor. This could quite easily be done in Altium Designer, by comparing the netlist against the target (blank) PCB document. When comparing a projects source document hierarchy against the target PCB, the source documents will be recompiled before the comparison is made.

Component Linking through Unique IDs


When a component is placed on a schematic sheet, it is automatically given a unique ID. As a precursor to comparison, Altium Designer scans the source schematic and target PCB documents for linked components. These are components that have been previously synchronized with one another and share a unique ID. If components have not yet been synchronized between documents, a dialog will appear alerting you to this fact and allowing you to match components either automatically by designator or by hand. The latter can only be performed from the PCB document, using the Edit Component Links dialog (Project Component Links) (Figure 2).

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

AR0106 Finding Differences and Synchronizing Designs

Directing the Update Traffic


With all components linked between the source project documents and the target PCB, the comparison will proceed. The Comparator will adhere to the setup defined for it in the project options and, if any differences are detected whose associated comparison types are not set to be ignored, those differences will appear listed in the Differences dialog (Figure 3) and are also flagged as entries in the Messages panel. Differences are grouped by comparison type.

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.

Figure 4. Example of update decisions made to resolve detected differences

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.

Version (v2.1) Mar 10, 2008

AR0106 Finding Differences and Synchronizing Designs

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.

Figure 5. Exploring differences using the Differences panel

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.

Showing Physical Differences Going Graphical


The Project Show Differences command provides for detection of the logical differences that exist between (typically) different documents commonly the source documents in a project with the target PCB. These are component and connectivity comparisons. In addition to these, Altium Designers Comparator caters for the physical comparison of schematic or PCB documents. This feature enables you to graphically compare two versions of the same schematic or PCB and, with the two documents open side-by-side in the workspace, view the physical differences between them. Access to this feature can be made in one of the following ways: Using the Project Show Physical Differences command. Ensure that the previous version (typically a backup) of the document is saved with a different name before opening. The backup version of the document does not need to be added to the project, it can be opened as a free document. Then, run the command to access the Choose Documents To Compare dialog which, when configured in Advanced mode, can be used to select the two versions of the document for comparison. From within the Storage Manager panel. Select two versions of the document in the Local History region (or VCS Revisions region if your documents are under version control using CVS or SVN), right-click and choose Compare. Using the Project Local History Show Local History command. Select two versions of the document from the available list and click Compare.
The Show Physical Differences command is intended for comparison of two versions of the same document. If you run it to compare different documents, such as the projects source hierarchy with the PCB, the Differences panel will appear listing the detected logical differences. The Differences dialog will not appear. You are simply exploring the logical differences. To update, run the Show Differences command instead.

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.

Version (v2.1) Mar 10, 2008

AR0106 Finding Differences and Synchronizing Designs

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

Comparing Versions of ASCII Text Documents


Not part of the Comparator, but well worth a mention, is the ability to compare two versions of a text-based ASCII document. This feature is available when comparing documents from within the Storage Manager panel, or when using the Show Local History command. Comparison will open the CompareForm dialog (Figure 7), showing a graphical 'diff' of the two versions of the document. The dialog is for comparison only - no modifications to a loaded document can be made.

Figure 7. Exploring differences between ASCII documents

Version (v2.1) Mar 10, 2008

AR0106 Finding Differences and Synchronizing Designs

Implementing Design Updates


Design updates/changes are implemented using Engineering Change Orders (ECOs). An ECO simply lists all modifications required to implement changes to one or more design documents, in order to satisfy the synchronization action requested. ECOs are used to effect design updates in a variety of situations, such as: Performing annotation updates to schematic component designators Implementing updates to parameters using the Parameter Manager Updating parameter information with information stored in source libraries or a company database.

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.

Setting Up ECO Options


As with the Comparator, Altium Designer affords you control over which modification types can be contained in a generated ECO. ECO-related options are accessed from the ECO Generation tab of the Options for Project dialog (Project Project Options), with all settings stored as part of the project. Modification types are grouped into categories associated with Components, Nets and Parameters. Use the controls available to configure ECO generation as required. For each modification type, you can determine whether an update action of that type will be added to the list of modifications contained in the ECO (Generate Change Orders) or skipped and therefore not included in the ECO (Ignore Differences).

Generating the ECO


To continue with our underlying example of project source to PCB synchronization, after viewing the list of detected differences, exploring them and setting the update direction(s) as required, the ECO must be generated. This is done by clicking the Create Engineering Change Order button in the Differences dialog. The Engineering Change Order dialog will appear (Figure 8), listing all modifications necessary to implement the changes required to bring the designs into synchronization. By default, all modifications are enabled for inclusion when the ECO is executed. Once again, control is yours and you can enable/disable each modification entry as required. Commands available from the dialogs right-click menu enable you to crossprobe to target and reference objects on the associated schematic and PCB documents.

Figure 8. Example modifications contained within an Engineering Change Order (ECO)

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.

Version (v2.1) Mar 10, 2008

AR0106 Finding Differences and Synchronizing Designs

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.

Resolving Synchronization Errors


Most problems with synchronizing a design generally fall into two categories: Missing component footprints. This occurs when: A footprint model is missing from the component information in the schematic. You have forgotten to add the required PCB libraries to the currently available libraries. The component in the schematic does not match any PCB library component.
If there are large scale net connectivity changes it can be easier to clear the netlist in the PCB editor the synchronisation process will reload them all. You will then need to reapply the net information to any routing. Do this using the Configure Physical Nets dialog (Design Netlist Configure Physical Nets).

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.

Direct Schematic PCB Synchronization


Altium Designers Schematic and PCB Editors provide direct synchronization commands. These commands are direct in the sense that the update direction for any differences is fully one way or the other. The Differences dialog will not appear and you can therefore not change update direction, nor can you perform bidirectional updates simultaneously. Instead, where differences are detected, you will be presented directly with the Engineering Change Order dialog loaded with the modifications needed to push the design changes from the schematic to the PCB or vice-versa. It is therefore important that the Comparator and ECO Generation options are setup appropriately in their respective tabs of the Options for Project dialog (Project Project Options). It is also a good idea to carefully scrutinize the proposed changes listed in an ECO, to ensure that changes will be made as you expect. The following direct synchronization commands are available from within the target PCB document: Design Update Schematics in ParentProjectName used to update the parent projects source schematics with changes made to the PCB design Design Import Changes From ParentProjectName used to update the active PCB document with changes made to the source schematic documents of the parent project. Design Update PCB Document DocumentName used to update the indicated PCB document with changes made to the projects source schematic documents.

The following direct synchronization command is available from within a source schematic document:

Version (v2.1) Mar 10, 2008

AR0106 Finding Differences and Synchronizing Designs

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.

Version (v2.1) Mar 10, 2008

You might also like