PCB CoDesign

Now reading version 18.0. For the latest, read: PCB CoDesign for version 25
 

Parent page: Laying Out Your PCB

As the saying goes, many hands make light work. One of the long-held dreams of board designers is to be able to have multiple people working on the same board at the same time. While this task might not seem overly complex to the layman – take Bob’s routing from that part of the board and bring it into my copy of the board – delivering it requires a mixture of certain key capabilities.

These include:

  • A system that allows multiple designers access to the same PCB design that they can work on and save their own changes without affecting the work of other designers.
  • A mechanism to accurately compare and identify differences between versions of the same board.
  • Tools that can be used to resolve differences that are detected that allow the designer to choose whose changes win.
  • Tools that can automatically handle a large number of differences and resolve them without creating conflicts.

To resolve these tasks, Altium Designer provides PCB CoDesign features that allow you to explore the differences between the revision of the board you checked out from the Workspace and the latest available in the Workspace revision of the same board. The PCB CoDesign functionality can detect changes in data stored in the PCB document: PCB layout, object properties, layer stack, design rules and constraints.

If any conflicts are detected, you can choose whether to keep your local changes or accept the remote changes of the latest commit, then merge to confidently resolve the design overlap.

The PCB CoDesign features are accessed and operated through the PCB CoDesign panel. It requires that the PCB project is currently under version control of the connected Workspace.

  • You must be connected to a Workspace in order to use this feature.
  • Note that only Git repository-hosted projects are supported. To leverage the PCB CoDesign features when working on an SVN repository-hosted project, it must be migrated to the Git repository first. When the project is stored in an external SVN repository and mirrored in the Altium 365 Workspace using the Simple Sync arrangement or when the project is stored in an SVN repository managed through the Enterprise Server Workspace's  Version Control Service, you can migrate this project to the Workspace's built-in Git repository. Learn more about Moving from External VCS to Workspace Native VCS and  Moving from the Workspace's SVN to the Workspace's Git.
  • It is recommended that designers using the PCB CoDesign features have the same Altium Designer version.

Compare and Merge Workflow

Whenever Altium Designer detects that your PCB document is out-of-date (i.e. someone saved their work to the Workspace since you checked the document out) or in the conflict state (i.e. someone saved the document to the Workspace before you have saved your own edited and saved version of that document, see details below), you will need to perform an update to the latest revision of the board or merge to bring their changes into your version of the board. This can be done by:

  • clicking the out-of-date () or conflict () status icon in the Projects panel and selecting the Compare and Merge with latest commit command from the menu that appears, or
  • opening the PCB CoDesign panel and clicking the Compare to Server button, or
  • clicking the Compare and Merge button in the notification that appears at the bottom of the design space.

Once the comparison is finished, the detected differences will be listed in the PCB CoDesign panel. The list presents differences detected between the base revision of the PCB document (the revision you checked out) and the latest revision in the Workspace (with changes performed by another user).

When the comparison is in progress, click the Cancel button in the pop-up that is shown during the comparison process or use the Esc shortcut to cancel the comparison.

The list of differences is grouped by categories: RulesComponents, Polygon pours, Copper, etc. Expand a category to see the list of specific differences in this category, i.e. which objects in this category have been added, modified and/or removed:

  •   – the object has been added in the latest revision
  •   – the object has been modified in the latest revision
  •   – the object has been removed from the latest revision

To make it easier to understand changes in large nets (shown in the Copper category), copper objects in nets are split into smaller entities – pin-to-pin connections.

Javascript ID: PCBCoDesign_PinToPin

For a difference of the Modified type, you can also hover the cursor over its entry or expand it to see details on the modification.

Use settings accessed by clicking the  control at the top of the panel to configure the display of changes.

  • Enable the Show on PCB option (shortcut: Shift+A) at the top of the panel to highlight the differences in the PCB document design space. Color coding allows you to see which objects have been added (green), modified (orange), or removed (red).

  • When the Show on PCB option is enabled, you can also enable the Zoom selected object option to cross-probe to the affected object in the design space when clicking a difference entry in the PCB CoDesign panel. Use the slider to adjust the zoom factor used to close-in on the selected object.

You can also toggle between the current state and the state before any changes by holding the Shift+B keyboard shortcut. The hint in the panel shows which state is currently active.

Javascript ID: PCBCoDesign_States

Click the Merge button at the bottom of the panel to merge all detected differences. Note that the differences will be merged into your local working copy of the PCB document, which should be saved to the Workspace to become available to other designers. Save to the Workspace can be performed from the Projects panel, or a button for saving the project to the Workspace is conveniently provided in the PCB CoDesign panel once the differences are merged.

When the changes are merged, the VCS status of the PCB document in the Projects panel will be changed to Merged, with the  icon. Click the icon to revert changes or update the project from the Workspace.

  • When comparison results are currently shown in the PCB CoDesign panel, and another user saves the project to the Workspace or you modify the PCB locally, a notification about the need to update the comparison appears in the PCB CoDesign panel, with a button to refresh the comparison data.

     

  • Note that from the Git version control perspective, the Merged status is still a conflict that will be resolved after saving the project to the Workspace (this is how Git works in case of merging conflicts).

Conflict Resolution

Another way of working is a 3-way comparison, which you use if someone else is also working on the board. Imagine the scenario where both you and your colleague Bob check out a copy of the board from the Workspace. You both work on your own copy of the board, placing and routing components. Bob finishes the area of the board for which he is responsible, and saves it back to the Workspace. At the same time, you also work on your area of the board and save the changes locally. This creates a conflict situation that can be handled with the PCB CoDesign panel.

To start comparison, you can click the conflict status icon in the Projects panel () and select the Compare and Merge with latest commit command from the menu that appears or click the Compare to Server button in the PCB CoDesign panel. Once the comparison is finished, the list of detected differences will be listed in the panel, along with detected conflicts listed at the bottom of the panel.

For each detected conflict, you can choose if your local changes (Local) or changes from the latest commit in the Workspace (Remote) should be applied. Alternatively, use the drop-down in the banner area at the top of the detected conflict region to select the desired mode for all detected conflicts at once.

  • For conflicting polygon pours, you can also combine two conflicting polygons into a single polygon pour (Combined). 
  • For conflicting nets, you can choose if local or remote changes should be applied for each object in the net (tracks and vias).

Once the desired mode is chosen for all conflicts, you can merge changes into your local copy of the PCB document.

When merging polygon pours and selecting the Combined or Remote option, note that a merged polygon needs to be repoured (that can be done, for example, by right-clicking the polygon in the design space and selecting Polygon Actions » Repour Selected from the context menu). If the Repour Polygons After Modification option is enabled on the PCB Editor – General page of the Preferences dialog, the polygon pour will be automatically repoured after merging.
If you find an issue, select the text/image and pressCtrl + Enterto send us your feedback.
Note

The features available depend on your Altium product access level. Compare features included in the various levels of Altium Designer Software Subscription and functionality delivered through applications provided by the Altium 365 platform.

If you don’t see a discussed feature in your software, contact Altium Sales to find out more.

Content