Capturing the Logical System Design

Now reading version 20. For the latest, read: Capturing the Logical System Design for version 25
 

Advanced electronic product designs are generally composed of multiple PCB designs that are interconnected to create the 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.

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 has the special System:Connector parameter 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 might 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 has 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.

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