Altium Designer Documentation

Capturing the Logical System Design in Altium Designer

Created: March 14, 2022 | Updated: March 14, 2022

Advanced electronic product designs are generally composed of multiple PCB designs that are interconnected to create a complete, functional system. From a design with a main board and a front panel LCD module to a complex active back-plane system with plug-in cards, all are implemented as a system of multiple board designs.

This requires a high-level design system that allows multiple ‘child’ PCB designs to be electrically and physically connected together while maintaining the integrity of their Pin and Net connectivity. Integrated system-level design is supported by Altium Designer in the form of a dedicated Multi-board Design environment that features both the logical (schematic) and physical (PCB) aspects of system design.

A system-level Multi-board Design is hosted in Altium Designer by a dedicated Multi-board project type (*.PrjMbd) and its constituent schematic-based logical design document (*.MbsDoc) and physical PCB-based documents (*.MbaDoc). The document types bring existing Altium Designer project designs into the Multi-board design environment where they are interconnected, edited and checked as a complete system.

The essential steps for creating a Multi-board system Schematic design from child PCB project designs are:

  1. Create an Altium Designer Multi-board project and add a Multi-board schematic document to the project.
  2. Place graphical blocks (Modules) in the Schematic to logically represent the child projects.
  3. Link each Module to its appropriate child project.
  4. Import the child project connectivity data into the system design.
  5. Add connections between Modules to create the logical system design.

The physical counterpart to the logical system design in a Multi-board Schematic document is a Multi-board Assembly document, which is populated with imported PCB data from the Multi-board Project. Each PCB project Module in the Multi-board system design Schematic is represented by a physical PCB in the matching Multi-board Assembly document.

See the Multi-board Assembly documentation for information on creating and working with a Multi-board Assembly.

Multi-board projects and their associated sub-projects can be saved to an Altium Workspace, where they can benefit from the version control, sharing and management capabilities provided by an on-site Altium server Workspace, or a cloud-based Altium 365 Workspace.

See Sharing a Multi-board Project for information on storing and sharing a Multi-board project in an Altium Workspace.

Enabling PCB Projects for Multi-board Design

Altium Designer PCB projects that represent the child board designs in a Multi-board system design will contain specific connections, such as edge connectors or header plugs/sockets, that are included as the electrical and physical interface to other PCBs in the system design.

These connections and their associated electrical Nets need to be detected and processed by a Multi-board schematic (logical) design document to establish the inter-board connectivity in the system-level design. This functionality is enabled by the presence of a specific component parameter for the PCB project connectors – a System parameter with Connector as an attribute value.

For each connector in a PCB project design that is intended for a system-level interconnection, select the connector part then add the special component parameter under the Parameters tab of the Properties panel.

Multi-board Design Project

An Altium Designer system-level design is formed in a Multi-board project, which like any other project type is created through File » New » Project. The Create Project dialog opens; select an option under the Multiboard heading in the Project Type region. 

The core design element in a Multi-board project is the logical connection design, which is developed in a Multi-board schematic document (*.MbsDoc). Add this file type to the Multi-board project from the Projects panel by right-clicking on the project entry then selecting Add New to Project » Multi-board Schematic from the context menu.

For both the Multi-board Project and its (open) schematic documents, right-click on their entries in the Projects panel then select the File » Save As option to rename the document files accordingly.

Multi-board Schematic design

The connectivity between PCB projects that make up a Multi-board system design is established by placing representative blocks (Modules) on the schematic and connecting their exposed connectors (Entries) together using virtual connections and/or wires.

Modules, representing child PCB project designs, are placed in the workspace from the Place » Module menu or by selecting the Module button () in the editor's Active Bar – see below.

Altium Designer includes an Active Bar at the top of each editor’s workspace that provides shortcut buttons for object placement commands.

A small triangle shape in the lower area of a button indicates that a drop-down menu is available for accessing other related commands. Click and hold the button to open its menu.

To assist repeated object placement, the button icon and function will actively change to show the last used menu option.

Double-click a placed Module and use the Properties panel to define its Designator and Title, and also the source PCB design project to which the Module is linked. Use the  associated with the Source field to set to a local or server-based managed project, and the desired board design within that project specified (Assembly/Board).

Add further modules and their child project links to the multi-board schematic design, as required for the complete system design.

To cross probe back to, and open, a Module's source project Schematic or PCB, select the module in the workspace then use the Design » Crossprobe to Schematic/PCB commands. These commands are also available on a module's right-click context menu.

The Modules are populated with design data from their linked PCB project designs by importing the project data using the Design » Import From Child Projects command or the Design » Import From Selected Child Projects command. Most importantly, this processes the Pin and Net data from each connector in the Child Projects that have the special System:Connector parameter (i.e. parameter named System with a value of Connector) attached.

After the import is complete, a module Entry is automatically created for each of these connectors on their respective Module block graphic. The connector Entry is actively associated with Pins and Nets on the connector in the Child Project.

Select an Entry graphic in the workspace to see its details, such as its connector Pins/Nets, in the Properties panel. Until connected to the Entry on another module, the Entry's Part/Pin listing in the panel will show the connector and pins as not mated.

Connecting Child projects

To complete the process of creating and connecting Child Project Modules together, place a logical Connection between the Module Entries.

A range of connection types is available from the editor's Place menu or the Active Bar (at the top of the workspace), including Direct Connection and Wire, which refer to connectors that plug together or are wired together, respectively. Click and drag the connection line between the Module Entry points to create the logical connectivity. Note that all elements in the system schematic editor, including Entry objects, can be dragged to a new location.

Select a Connection graphic in the workspace to see its details, such as the included Nets and Pin connections, in the Properties panel.

Project structure

An established Multi-board Project features a hierarchical document structure that includes Source documents (Multi-board Schematic and Assembly), and the child PCB sub-projects linked to Modules in the schematic system design. The structure of a child project is immediately added to the Multi-board Project when a system design Module has been linked to that external project.

Expand the project structure in the Projects panel to expose the constituent files in the multi-board project and its child projects. To ensure that the Multi-board project extracts and processes the correct data from its sub-projects, the PCB of each project should be synchronized with its Schematic and free of design or drafting errors. To validate a sub-project, right-click on its name in the panel and select the Validate PCB Project <name> command – any issues will be listed in the Messages panel.

Working with Connections

The connections established between modules in the schematic ultimately represent the connectivity between child project connectors, connector pins, and nets in the overall system design. The multi-board schematic editing environment provides additional features that may be used to modify, check and update that connectivity as the overall product design is developed.

Split Connections

In design situations where a child project connector serves more than one connected project, the source connector can be logically divided (in terms of pins/nets) using the multi-board schematic editor’s Split feature – in practice, one module is connected to two other modules.

An example of such a design would be where a single header plug on a PCB is intended to accommodate two smaller header sockets, which, in turn, connect to two other PCBs – the sectioned signals from a single (e.g., 20-pin) connection are distributed to a (e.g., 10-pin) connection one PCB and a (10-pin) connection on another PCB.

To split a connection, select the Module and then an Entry in the Properties panel. Select the button, and in the subsequent Split Entry dialog, check the listed pin Pin/Net combinations you want to separate (split off) to another Entry. Use the button to confirm the selections.

The editor will automatically create a new Module Entry for the separated Pins/Nets, which can then be connected to a different Module as required.

In the example shown, Entry HDR6 on Module M1 is intended to connect to both Module M2 (a panel LCD display) and Module M3 (a power supply board). The HDR6 Entry connections have been split to logically separate out three power Nets that will connect to HDR3 on power supply Module M3. This creates an additional HDR6 Entry on M1 (HDR6 [1-2,15]) that offers just the three power connections for M3, while the original HDR6 Entry is automatically reassigned to offer the remaining 17 connections, which ultimately connect to HDR1 on the LCD Module M2.

Select a Connection in the workspace to see its constituent Nets in the Properties panel. Here, one section of the (split) HDR6 Nets is connected to HDR3 through the wire connection W-PS, which represents the three power lines between the Main Board (M1) and Power Supply (M3). As shown in the image below, each virtual wire listed in the panel’s Connections area also includes its Entry name, Pin and Net at either end in the From and To columns.

Note that along with a connection's Designator, the wire name (#) and local Net name (Net) for each entry in the Connections list can be edited for convenience. These names are local to the Multi-board system design and do not affect the source Child Projects.

Edit Connections

The connections between Child Project Modules are not necessarily a pin-to-pin match, particularly when a connector is split in sections that are wired to different PCB Modules.

To edit or correct the Pin/Net matches between a Module interconnection, select the Connection in the workspace and then change the From/To assignments as required in the Properties panel’s Connections list entries.

Use the From or To drop-down list to select a new Net assignment, and therefore a different end-to-end signal relationship through that individual connection or wire, within the Module-to-Module connection.

Connection Manager

The overall connectivity in a Multi-board design, once established, is detailed in the Connection Manager dialog (Design » Connection Manager).

This dialog lists all Net/Pin assignments grouped under their parent Connection Designators and type (Wire, Direct, etc.,), and includes their system design ID and Net Name, along with their From and To Pin/Net connections. Use the dialog’s option to include details of the literal Pin connections in the listing.

The dialog’s lower Conflict Resolution area will indicate any connection conflicts between the current Multi-board system design and source (child) projects during a design update, as outlined below.

System Design Updates

During the course of a multi-board system design, it’s likely that the source child projects will also be developed, and those changes need to be brought into (synchronized with) the system design. This update process is achieved by re-importing the child design(s) into the Multi-board design space via an Engineering Change Order (ECO).

Use the Design » Import From Child Projects command to import changes from all Child Projects in the system design, or the Design » Import From Selected Child Projects alternative to re-import the connection data for the project modules that are currently selected in the workspace. These commands are also available from the right-click Design context menu of a Module graphic.

The executed ECO will register any differences between the current system design connectivity and the connection data that has been imported from the child project(s). This information is available in the Connection Manager dialog (Design » Connection Manager), which is also used to resolve or reject the updated connection data from the Child Project(s).

Resolve Conflicts

The Connection Manager dialog listing will highlight any connections that are considered as in Conflict, or in practice, any imported connection update that does not agree with the system design editor’s existing connectivity data map. Select a highlighted Net entry in the list to see a graphic representation of the Conflict and to access a range of button options that can be used to resolve it.

The Net information shown in the highlighted fields in the Connection Manager listing represents the proposed change. In the example case shown here, the Nets on HDR1 pins 4 and 5 in the Child Project (LCD Module) are in a different order – in fact, they have been swapped.

The Connection Manager will interpret this change and offer appropriate correction action buttons on the Conflict Resolution graphic. The options include:

  • Confirm – The Nets on Pins 4 and 5 for the HDR1 connector in Module M2 will be changed in the system design to match the updated assignments (as highlighted) in the dialog.
  • Revert – The current Net to Pin relationship for HDR1 in Module M2 will be retained. The proposed change is ignored by the system design. Note that the system design will then not match the net assignments in the child design(s).
  • Swap Pins – The Pin/Net assignments at the other end of the connection (at HDR6 on M1, the main board PCB) will be changed to maintain a correct Net relationship between the two Modules (M1 and M2).
  • Swap Wires - The virtual wires that connect between HDR1 on M2 and HDR6 on M1 will be changed (swapped in this case) to correct the Net connectivity conflict, and the connector Pin/Net assignments will not be changed. Here, wire W2 would then connect between Pin 4 on HDR6 and Pin 5 on HDR1, and W3 connect between Pins HDR6-5 and HDR1-4.
The Conflict Resolution options that are available will depend on the type of connection that is selected. The Swap Wires option, for example, will not be offered for a Direct Connection between Module Entries, where the PCBs are directly plugged together rather than wired together.

When a conflict resolution option has been selected, an affirmative answer in the following Confirmation dialog will cause the conflict resolution action to be applied to all conflicts of the same type.

The corrected Net assignments will be highlighted in green and also reflected in the dialog's lower connection graphic. Select the button to apply the updated assignments to the Multi-board system design.

Note that the Net Name values shown in the dialog are not changed when a Conflict is resolved since they represent the Net names in the local System Design. These names are automatically created when a connection is initially placed between Module Entries and may be changed at any time by editing that connection (or Wire, etc.,) in the Properties panel

Once the Conflict Resolution changes have been applied, they can be inspected in the Properties panel when the relevant connection is selected in the system design workspace.

In the Properties panel image shown below, the example conflict for the W-LCD connection was resolved using the Swap Wires option. This has effectively crossed over wires W2 and W3 so that the correct Net continuity is maintained, i.e the Reset and Read/Write Nets are matched between project Modules (LCD_RW# RSW and LCD_RS# RS, respectively).

Update Child Projects

To maintain synchronization between a multi-board schematic design and the child PCB projects it includes, the system designer supports the bidirectional exchange of Pin/Net data. Connectivity data is imported into the system design from child projects as outlined above, and the system design connectivity data may be passed back to the source PCB projects through the child project Update feature (Design » Update Child Projects). To update an individual child project, select its associated Module and choose the Design » Update Selected Child Projects command – both commands are also available on a Module's right-click Design context menu.

When the command is run, the design editor compares the connectivity data in the system design with that in the child projects. Any differences that are detected will be listed as proposed changes in a following Engineering Change Order (ECO) dialog, or a Comparator alert dialog will indicate that no differences have been encountered – and by implication, that no changes are required to maintain the system design to child project synchronization.

For the differences detected in the example shown here, where the RS and RSW Nets have been swapped on connector HDR1 in the LCD Board Child Project (M2 in the system design), the ECO proposes a Pin Swap in the source project to synchronize the Nets.

When the ECO is executed (after optional validation), the HDR1 connector Pins in the LCD module Child Project are swapped.

Note that the Update Child Projects process would normally be performed after any conflicts have been resolved in the Connection Manager dialog, so as to synchronize the child projects to the correct state of the system design.

In the above example, the child project Pin/Net relationship has been restored to the state prior to its changes. This is equivalent to where the changed child project data has been imported into the system design, and the connection conflict was been resolved using the Revert option. If the Swap Pins option was used to resolve the conflict, Pins 4 and 5 on the HDR6 connector in the main board project would have been swapped.

Other detected and resolved changes, such as a mismatched Net name are synchronized by a direct update to the target in the child project.

Multi-board Schematic Validation and Configuring the Verification Options

To validate your Multi-board design, choose the Run ERC command from the main Design menu.

Validate your Multi-board design using the Run ERC command.
Validate your Multi-board design using the Run ERC command.

The software checks for logical, electrical, and drafting errors between the design content and project checking settings. There are a number of checks that can be performed on the validated Multi-board design. These are configured as part of the project options. Select the Project » Project Options command from the main menus to open the Project Options dialog and select its Error Reporting tab. The Report Mode of each violation can be changed to one of four values by clicking on it and selecting the desired value in the drop-down.

Configure the required violation checks on the Error Reporting tab of the Project Options dialog.
Configure the required violation checks on the Error Reporting tab of the Project Options dialog.

If validation errors and warnings are detected in the design, a notification is displayed in the Messages panel. Note that the Messages panel will only open automatically if there is at least one Error or Fatal Error condition. To check for a Warning, you will need to open the panel manually by clicking the Panels button on the bottom-right of the design space then choose Messages. Once the project has been validated, the panel will list any warnings and errors that have been detected.

The Messages panel displays the warnings and errors detected in the Muli-board design project.
The Messages panel displays the warnings and errors detected in the Muli-board design project.

See the sections below for detailed information about each error check.

Violations Associated with Connections

This violation occurs when the name of the net associated with a connection on the Multi-board Schematic is not the same as the net associated with the corresponding pin of the connector on the child design project.

Notification

A notification is displayed in the Messages panel in the following format:

Net Name "<ConnectionNetName>" for connection "<ConnectionDesignator>" does not match with Net "<ConnectorPinNetName>" of "Pin <ConnectorDesignator-PinNumber>" in child project "Module <ModuleDesignator>(<ChildProjectName>)"

where:

  • ConnectionNetName – is the name of the net (on the Multi-board Schematic) associated with the connection that connects from the indicated pin.
  • ConnectionDesignator – is the designator of the connection.
  • ConnectorPinNetName – is the name of the net associated with the indicated pin of the connector on the child design project.
  • ConnectorDesignator-PinNumber – is the designator of the connector component in the child design represented by the module's entry and the pin of that connector.
  • ModuleDesignator – is the designator of the module on the Multi-board Schematic that is used to reference the child design project.
  • ChildProjectName – is the name, including extension, of the child project referenced by the module.

Recommendation for Resolution

This violation typically arises when the name of the net on the connector pin in one child project is different from that in the mated connector pin in another child project, i.e. the two boards being connected by a connection between the relevant parent modules on the Multi-board Schematic document.

Use the Connection Manager dialog to view the net names currently being used. The Net Name entry shows the name used for the connection on the Multi-board Schematic document. With the connection selected, this can also be seen visually in the Conflict Resolution area of the dialog. Where the connector pins have different nets associated with them in both child projects, the Net Name for the connection defaults to <FromPinNetName>/<ToPinNetName>. These net names are reflected in the Module Net fields for the From and To pins, respectively. Resolution can be in two ways:

  • Use the Rename buttons in the Conflict Resolution area for both modules to quickly set the module net in each case to be the same as the net name for the connection. Then apply the changes and pass those changes back to the child projects using the Design » Update Child Projects command. The nets associated with the respective connector pins in those projects will be updated accordingly through use of an ECO.
  • Change the naming for the net associated with the relevant connector pin in one of the child projects to be the same as that used for the connector pin in the other project. Then compile the child project and bring the change back to the Multi-board Schematic by using the Design » Import From Child Projects command. The net name for the connection will be updated accordingly through use of an ECO.

This violation occurs when a connector pin represented in a module entry on the Multi-board Schematic is not connected to any net in the child design project referenced by that module.

Notification

A notification is displayed in the Messages panel in the following format:

"Pin <ConnectorDesignator-PinNumber>" is not connected in child project "Module <ModuleDesignator>(<ChildProjectName>)"

where:

  • ConnectorDesignator-PinNumber is the designator of the connector component in the child design represented by the module's entry and the offending pin of that connector.
  • ModuleDesignator – is the designator of the module on the Multi-board Schematic that is used to reference the child design project.
  • ChildProjectName – is the name, including extension, of the child project referenced by the module, and containing the connector whose indicated pin is not connected to a net.

Recommendation for Resolution

This violation can arise in a number of situations. Consider the following when resolving a violation of this type:

  • If the pin of the referenced connector is not to be used within the design, tie it to the appropriate power line (e.g., GND).
  • Ensure that any wiring to the connector pin is making electrical contact, i.e. the wire or bus connects to the pin's electrical hot spot.
  • If the connector pin is intended to have a short wire and a net label, ensure that the net label exists and has been attached to the wire correctly.

This violation occurs when a conflict exists in the connectivity between two connected boards in the system.

Notification

A notification is displayed in the Messages panel in the following format:

Unresolved conflict exists: Net "<OldModuleNetName>" has been renamed to "<NewModuleNetName>" for "Pin <ConnectorDesignator-PinNumber>" in child project "Module <ModuleDesignator>(<ChildProjectName>)"

where:

  • OldModuleNetName – is the name of the net associated with the indicated pin of the connector on the child design project, currently held in the Multi-board Schematic editor’s existing connectivity data map.
  • NewModuleNetName – is the name of the net now associated with the indicated pin of the connector on the child design project, after importing changes made to that child project.
  • ConnectorDesignator-PinNumber – is the designator of the connector component in the child design represented by the module's entry, and the pin of that connector.
  • ModuleDesignator – is the designator of the module on the Multi-board Schematic that is used to reference the child design project.
  • ChildProjectName – is the name, including extension, of the child project referenced by the module.

Recommendation for Resolution

This violation typically arises when a change has been made in relation to the connector in one child project, and when that change is imported back to the Multi-board Schematic document, it will break the existing connectivity defined between two connected boards. For example, the nets assigned to two pins of the connector might have been swapped in one child project, meaning that there is now a mismatch when following those pins through to another target board's connector.

Use the Connection Manager dialog to view unresolved conflicts. The Connection Manager dialog listing will highlight any connections that are considered as in Conflict, or in practice, any imported connection update that does not agree with the Multi-board Schematic editor’s existing connectivity data map. Click the Show Changes Only button to see just the conflicting pins/nets of the relevant connection(s). Select a highlighted Net entry in the list to see a graphic representation of the Conflict and to access a range of button options that can be used to resolve it. The options include:

  • Confirm – the module nets on the pins for the connection in the Multi-board Schematic design document will be changed to match the updated assignments as shown in the dialog (the changes that were made in the child project).
  • Revert – the current net to pin relationship for the connection in the Multi-board Schematic design document will be retained. The proposed change is ignored by the system design. Note that the system design will then not match the net assignments in the child design(s).
  • Swap Pins – the pin/net assignments at the other end of the connection will be changed to maintain a correct net relationship between the two modules that reference the connected boards.
  • Swap Wires – the virtual wires that connect between the entries of the two modules (referencing the connected boards) will be changed (swapped) to correct the net connectivity conflict, and the connector pin/net assignments will not be changed.
The Conflict Resolution options that are available will depend on the type of connection that is selected. The Swap Wires option, for example, will not be offered for a Direction Connection between module entries where the PCBs are directly plugged together rather than wired together.

When a conflict resolution option has been selected, an affirmative answer in the following Confirmation dialog will cause the conflict resolution action to be applied to all conflicts of the same type.

The corrected net assignments will be highlighted in green and also reflected in the dialog's lower connection graphic. Select the Apply Changes button to apply the updated assignments to the Multi-board Schematic. If the resolution choice results in changes required to a child project, use the Design » Update Child Projects command to do this.

Violations Associated with Mated Parts

This violation occurs when a module entry does not currently reference a connector component in the child design project referenced by its parent module.

Notification

A notification is displayed in the Messages panel in the following format:

Entry "<EntryDesignator>" is empty in "Module <ModuleDesignator>(<ChildProjectName>)"

where:

  • EntryDesignator – is the designator of the offending module entry.
  • ModuleDesignator – is the designator of the module on the Multi-board Schematic that is used to reference the child design project.
  • ChildProjectName – is the name, including extension, of the child project referenced by the module.

Recommendation for Resolution

This violation can arise when:

  • A connector component in the referenced child project and currently associated with an existing module entry has had its special System:Connector parameter removed, and that change has been inadvertently imported to the Multi-board Schematic document. In this case, add the parameter back to the component then import the change back to the Multi-board Schematic document.
  • A new entry has been placed manually within the parent module. In this case, import changes from the child project to synchronize the required entries with their underlying connectors then remove the redundant entry.
Typically, you would ensure that the connector(s) in the child project are placed and have been given the System:Connector parameter. Then use one of the Import from Child Project commands to have the entries automatically created in the empty/shell parent module referencing that child project. This is the quickest and safest method to have the module entries in the system-level design created in-sync with their underlying connectors in the child projects.

This violation occurs when a module entry is not currently connected to another module in the design.

Notification

A notification is displayed in the Messages panel in the following format:

Part "<ConnectorDesignator>" (Entry <EntryDesignator>) doesn't have Mated Part in "Module <ModuleDesignator>(<ChildProjectName>)"

where:

  • ConnectorDesignator – is the designator of the connector component in the referenced child project.
  • EntryDesignator – is the designator of the offending module entry (which is reflective of, and synchronized with, the underlying connector in the referenced child project).
  • ModuleDesignator – is the designator of the module on the Multi-board Schematic that is used to reference the child design project.
  • ChildProjectName – is the name, including extension, of the child project referenced by the module.

Recommendation for Resolution

Ensure that the offending module entry is connected to the required entry in a target module – making a connection between the connector on one child board with that on another. Choose the type of connection and wire it up between the two module's entries accordingly. Available connection types are:

  • Direct Connection – a direct connection is used whenever the connector on one board is to plug in directly to the connector on another board without the use of a physical connection (wire, cable, or harness).
  • Cable Connection – a cable is a physical connection, providing a conduit for net signals between two boards in a multi-board system, and that cable plugs into a connector on each of those boards.
  • Wire Connection – a wire is a physical connection, providing a conduit for a single signal between two boards in a multi-board system, and that wire is attached directly into a connector on each of those boards. Although placing a single wire on the document, in reality, a series of wires will be used, in accordance with the number of signals/pins being connected between the connectors of the two boards.
  • Harness Connection – a harness is a physical connection, providing a conduit for net signals between two boards in a multi-board system, and that harness plugs into a connector on each of those boards.
Found an issue with this document? Highlight the area, then use Ctrl+Enter to report it.

Contact Us

Contact our corporate or local offices directly.

We're sorry to hear the article wasn't helpful to you.
Could you take a moment to tell us why?
200 characters remaining
You are reporting an issue with the following selected text
and/or image within the active document: