Multi-sheet & Hierarchical Designs in Altium Designer

Now reading version 24. For the latest, read: Multi-sheet & Hierarchical Designs in Altium Designer for version 25

When schematics were originally captured on paper, it was often on a single sheet of paper large enough to fill a big drafting table, which was reproduced on a dedicated, large-format copier. Times have changed, now schematics are captured on a desktop PC, stored on a server, and printed on a small-format laser printer.

This change means that even a simple design can be more easily displayed and understood if it is presented on multiple schematic sheets. Even when the design is not particularly complicated, there can be advantages in organizing it across multiple sheets.

For example, the design may include various modular elements. Maintaining these modules as individual documents allows several designers to work on a project at the same time. Breaking the design into logical modules greatly enhances the readability of the design too, an important consideration for those that need to read and interpret the schematic later in the life of that product. Another advantage is that when a design is structured over a number of sheets with fewer components on each, small format printing, such as laser printers, can be used.

There are two decisions to make if you plan to spread your design over multiple sheets:

  • the structural relationship of the sheets, and
  • the method employed for electrical connectivity between the circuitry on those sheets.

Your choice will vary according to the size and type of each project, and your personal preferences.

This article focuses on the structural relationships between the sheets, how it works, and the tools and techniques available to create a multi-sheet design. To learn more about how connectivity is created, refer to the Creating Connectivity article.

Flat or Hierarchical Design

As mentioned, as the designer you need to decide how the schematic sheets are organized, and how the connectivity is established between those sheets. These are not separate decisions though, as you choose the structure you will also need to choose how the connections between those sheets are going to be created.

There are two approaches to structuring a multi-sheet design: either flat or hierarchical.

Both approaches are valid; each has its own strengths and weaknesses. A flat design will be quicker to create but harder for others to follow signals and interpret the functionality, especially from a printed copy. A hierarchical design will take longer to draw as there are more steps to create the connectivity with the reward being a design for which others more easily interpret its functionality and follow the signals across the sheets. Hierarchical design is also important for design reuse and an essential part of a multi-channel design.

The technique used to connect a child sheet to the parent sheet is the same for both flat and hierarchical designs - it is how the connectivity is created that determines if it is a flat or hierarchical design.

Flat Design

You can think of a flat design as if a large schematic sheet has been cut up into several smaller sheets - in a flat design all sheets exist on the same level. The connectivity in a flat design is created directly from any sheet to any other sheet - this type of connectivity is referred to as horizontal connectivity.

The use of a top sheet is optional in a flat design. If one is included, it will have a sheet symbol for each of the sheets in the design, but cannot include any wiring. There can be any number of sheets in a flat design.

First image - the flat design has no top sheet; second image - the same design has a top sheet. Note that the top sheet has no wiring. It simply shows the sheets in the design. 
First image - the flat design has no top sheet; second image - the same design has a top sheet. Note that the top sheet has no wiring. It simply shows the sheets in the design.

Both of the images above show a flat design, the version on the left does not have a top sheet, but the version on the right does. For a small design that only has two or three schematic sheets in it, you might decide that a top sheet does not add any value. Once the sheet count gets higher, a top sheet can help the reader understand the functionality of the circuit design from the way that the logical blocks (Sheet Symbols) are arranged on the sheet. All sheets in the design appear at the same level in the Projects panel because there is no hierarchy.

Hierarchical Design

It is important to remember that for hierarchical designs, a project can contain only one top sheet. All other source documents must be referenced by sheet symbols. When performing a design validation, the Multiple Top Level Documents violation check can be used to flag if this is not the case. In addition, no sheet symbol may reference the sheet it's on or any sheet higher up the ladder, as this will create an irresolvable loop in the structure.

A hierarchical design is one where the tree-like structure - or sheet-to-sheet relationships - in the design is represented. This is done with sheet symbols, which represent lower sheets in the design hierarchy. The symbol represents the sheet below, and the sheet entries in it represent (or connect to) the ports on the sheet below. The connectivity is through the Sheet Entries in those Sheet Symbols - not directly from the Ports on one sheet to the Ports on another sheet.

As in a flat design, the child sheet is identified by defining its filename in the sheet symbol. In a hierarchical design, that child sheet can also include sheet symbols, referencing lower-level sheets, thus creating another level in the hierarchy. The image below shows a hierarchical design, with 3 levels in the hierarchy.

In a hierarchical design, the structure shown in the tree is determined by the parent-to-child relationships created by the sheet symbols.
In a hierarchical design, the structure shown in the tree is determined by the parent-to-child relationships created by the sheet symbols.

In a hierarchical design, a signal on a child sheet leaves the sheet via a Port, which connects upward to a matching Sheet Entry on the parent sheet. The parent sheet includes wiring that carries the child signal across to a Sheet Entry in another Sheet Symbol, it then travels down to a matching Port on the second child sheet, as shown in the image below.

The connectivity is from a Port on the child sheet up to a matching Sheet Entry in the Sheet Symbol on the parent sheet

This parent-child sheet structure can be defined to any depth, and there can be any number of sheets in a hierarchical design.

The connectivity between the sheets is determined by the Net Identifier Scope. This is set in the Options tab of the Options for Project dialog. To learn more about creating connectivity, read the Creating Connectivity page. Note that the Net Identifier Scope includes an Automatic option, unless you have unusual connectivity requirements, this option is a good choice.

The advantage of the hierarchical design is that it shows the reader the structure of the design and that the connectivity is completely predictable and easily traced since it is always from the child sheet up to the sheet symbol on the parent sheet.

Another advantage of a hierarchical design is that it provides the platform for the delivery of a sophisticated design reuse system. This system is delivered in two ways, depending on how the data is stored, either: file-based or server-based.

  • The file-based system is called Device Sheets, where you place an existing schematic from a library of Device Sheets directly into the design being created. To learn more about Device Sheets, refer to the Device Sheets article.
  • The Workspace-based system is called Managed Sheets, where you place an existing schematic from a connected Workspace directly into the design being created. To learn more about Managed Sheets, refer to the Managed Sheets page.

Adding Cross References

Adding cross references to the project allows you to easily follow the connective flow of nets between the schematic sheets in a project. The schematic editor supports automatically creating and updating cross references.

Enable the Automatic Cross References option in the General region and configure the options in the Cross References region of the Options tab of the Project Options dialog. You can set a specific style of cross references for the active project or enable the Follow Cross References settings in Preferences option to inherit the options in the Port Cross References region of the Schematic – General page of the Preferences dialog. From here, you can also select the objects (ports, off-sheet connectors, sheet entries) for which the cross references will be displayed.

You can quickly access the Options tab of the Project Options dialog by selecting the Reports » Automatic Cross References Settings command from the main menus or by right-clicking in the design space and selecting the Sheet Actions » Automatic Cross References Settings command from the context menu.

Configure automatic cross references for the active project in the Options tab of the Project Options dialog.
Configure automatic cross references for the active project in the Options tab of the Project Options dialog.

Cross references will be shown on the schematics next to the chosen objects in the configured style. Cross Reference values are also displayed in the Properties panel from where you can toggle the visibility of cross references for the selected objects.

Cross References can be explored on the schematics and, for the selected object, in the Properties panel. An example of cross references for a port is shown here.
Cross References can be explored on the schematics and, for the selected object, in the Properties panel. An example of cross references for a port is shown here.

Cross references are also supported in schematic PDF outputs. If an object is related to more than one connected object (e.g., a port is connected to a sheet entry on the parent schematic sheets and ports on other sheets), clicking the object in the PDF output will show the list of sheets where the connected objects reside. Select a list item to open the corresponding page. If an object is related to a single connected object, clicking the object will open the corresponding page right away.

In the schematic PDF output, multiple connected objects can be easily navigated using the pop-up menu.
In the schematic PDF output, multiple connected objects can be easily navigated using the pop-up menu.

Creating a Multi-Sheet Design

As soon as you add a second schematic sheet to your project, you've created a multi-sheet design. If you are planning on creating a flat design without a top sheet, you simply keep adding schematic sheets to the project (right-click the project's entry in the Projects panel and select Add New to Project » Schematic command from the context menu), and then confirm that the Net Identifier Scope is set correctly.

If you want to use sheet symbols to reference lower-level sheets, you can either place the sheet symbol and manually edit it to correctly refer to the lower-level sheet, or you can use the various built-in commands to help, as described below.

Referencing the Child Sheet

It is the Filename property of the Sheet Symbol that references the lower-level sheet. Note that this field should only include the schematic filename, not the path to that file's location (this location data is actually stored in the Project file).

The Filename property links this sheet symbol to the child schematic sheet.
The Filename property links this sheet symbol to the child schematic sheet.

Note that the child schematic does not have to be stored in the same folder as the parent schematic. If the file is stored in a folder below the parent's storage folder then relative file referencing is used. If the file is stored in another location, then absolute file referencing is used. Take care when relocating files in such a project, or use the Project Packager to ZIP the files, as it will resolve file paths as it ZIPs the project.

Navigating a Multi-sheet Design

The schematic editor provides you with tools that allow you to quickly navigate between documents in a multi-sheet design and related objects therein.

The Tools » Up/Down Hierarchy command is used to move the focus to the next level up, or down, in the design hierarchy, from the current document. After launching the command, the cursor will change to a cross-hair and you will be prompted to choose a navigation point. If you click on a sheet entry you will be presented with the matching port on the sub-sheet, if you click on a sheet symbol you will be presented with the entire sub-sheet. To navigate up through the hierarchy, click a port to be presented with the matching sheet entry on the parent sheet.

If a sheet entry or port is connected to a bus, the first click will pop-up a menu, from where you can select the whole bus or an individual signal in the bus. The corresponding wiring from the sheet entry or port will be highlighted. Clicking on the original sheet entry or port a second time will present you with the corresponding port on the schematic sheet below, or sheet entry on the sheet above, respectively.

To open the child sheet referenced by the sheet symbol currently under the cursor, right-click over a placed sheet symbol and choose the Sheet Symbol Actions » Open SubSheet <SchematicDocumentName> command, from the context menu. After launching the command, the schematic document referenced by the symbol will be opened (if not already) and made the active document in the main design window.

When the automatic cross references are enabled for the associated objects, you can also use the Jump To commands from the objects' right-click Port Actions, Sheet Entry Actions and Off Sheet Actions (for a flat design) sub-menus to navigate between ports, sheet entries, and off-sheet connectors. For example, when the Automatic Cross References option is enabled and the Sheet Entry & Ports setting option is selected for the Ports option on the Options tab of the Options for Project dialog, you can right-click over a port and choose the required Port Actions » Jump to Port <PortName> on <SchematicDocumentName> or Port Actions » Jump to Sheet Entry <PortName> on <SchematicDocumentName> command, from the context menu - the source document for the indicated port or sheet entry will be made the active document, and the cursor will be positioned over the port or sheet entry. All ports of the same name (and any connected wiring) on the target document will be highlighted.

Use the Jump to command to jump to a matching object anywhere in the design.
Use the Jump to command to jump to a matching object anywhere in the design.

  • When you navigate between objects, the corresponding object will become highlighted in the design space. The visual display is in accordance with the Highlight Methods (Dimming, Zooming, Selecting) defined on the System - Navigation page of the Preferences dialog.
  • Hierarchy can also be navigated directly by pressing Ctrl and double-clicking over a port, sheet entry, or sheet symbol.
  • Hierarchy can also be navigated by using the Interactive Navigation feature of the Navigator panel.

Creating Hierarchy

The software includes a number of commands that allow you to build your multi-document, hierarchical structure quickly and efficiently. The commands you use will depend on your personal design methodology - which can be broadly classified as top-down, or bottom-up. These commands will be more efficient than creating the hierarchy manually, as they handle all the elements that are needed in the process, such as adding Sheet Entries, creating new schematic sheets, placing Ports, and so on.

Use this command to build the hierarchy in a top-down fashion:

  • Create Sheet From Sheet Symbol (the Design main menu or the sheet symbol's Sheet Symbol Actions right-click sub-menu) – use this command to create a new schematic sheet below the nominated sheet symbol. The matching ports to the sheet entries on the symbol will be located in the bottom left-hand corner of the new document. Don't worry if you have not included all of the Sheet Entries in the Sheet Symbol yet, if more are added over time you can re-synchronize the Sheet Entries and Ports, as discussed below.

    • The schematic document that is created takes the sheet symbol file name to be its file name. You can either enter the intended name for the document in the sheet symbol's File Name field, complete with extension (i.e. <DocumentName>.SchDoc), or leave the name blank and enter the name when saving the document at a later stage.
    • Care should be taken when creating a sheet from a sheet symbol, and a sheet with that file name already exists. A new sheet with the same file name will be created. The duplication can be resolved when saving by either saving the new sheet with a different name or overwriting the existing sheet if required.
    • The electrical I/O Types for the created ports on the new child sheet will be the same as those for the sheet entries on the originating parent sheet symbol.

Use this command to build the hierarchy in a bottom-up fashion:

  • Create Sheet Symbol From Sheet (the Design main menu or the design space's Sheet Actions right-click sub-menu) – use this command to create a symbol from the nominated schematic sheet. To use this command, first switch to the sheet that will hold the new Sheet Symbol, then launch the command. The Choose Document to Place dialog will open - use this to choose the target schematic document that is to be referenced by the newly-created sheet symbol. The Sheet Symbol will include a Sheet Entry to match each Port it finds. If Ports or Sheet Entries are added or removed at a later stage they can be re-synchronized, as discussed below.

    • As the sheet symbol is created and placed on the active sheet, this sheet will not be listed in the Choose Document to Place dialog. This is because a sheet symbol cannot reference the same sheet on which it is itself placed.
    • The electrical I/O Types for the created sheet entries in the new parent sheet symbol will be the same as those for the ports on the originating child sheet.

Use this command to reorganize how the circuity is placed in the design:

  • Edit » Refactor » Move Selected Sub-circuit to Different Sheet - use this command to move the selected components and wiring to a different sheet in the project. The Choose Destination Document dialog will open, allowing you to choose any existing schematic in the project. This command is described in more detail below.

In case you're wondering why there are dedicated commands for moving components from one sheet to another, these are provided because the standard Cut & Copy commands automatically reset the Unique Identifier in each component. The UID ties the schematic component to the PCB component, if a schematic component's UID has been reset you will be prompted to attempt to match via designators whenever the design is synchronized (when the Design » Update command is used). UIDs can be re-synchronized if required, using the Project » Component Links command from within the PCB editor.

Learn more about Design Synchronization

Restructuring the Design

Main article: Design Refactoring

The process of design is often unstructured and organic, the designer could be formulating ideas for multiple parts of the design at the same time, capturing sections as their ideas evolve. That means that what started out as a well-organized, neatly laid out set of schematics can become crowded and poorly organized. While you can Cut, Copy and Paste to reorganize the schematic design, this is not always the best approach.

Why not cut and copy? Because as each component is placed it is assigned a unique identifier, and this identifier is automatically reset whenever a component is Cut/Copied and Pasted. This UID management is done to ensure that there is only one instance of each UID used in the design, as it is the key field that links the schematic component to the PCB component. The Cut/Copy/Paste approach is fine if the design has not been transferred to the PCB editor, but if it has, then it is better to use the refactoring tools.

Moving a Sub-circuit to Another Sheet

The easiest way to move a section of circuitry from one sheet to another is to select it, then run the Edit » Refactor » Move Selected Sub-circuit to Different Sheet command. The Choose Destination Document dialog will open, after you select the target sheet and click OK that sheet will appear, with the sub-circuit floating on the cursor, ready to position.

A selected section of circuitry can easily be moved to a different sheet in the project using the Move Selected Subcircuit to Different Sheet command.
A selected section of circuitry can easily be moved to a different sheet in the project using the Move Selected Subcircuit to Different Sheet command.

Learn more about Design Refactoring.

Synchronizing the Ports and Sheet Entries

If you have moved components and wiring as part of restructuring the design, then you may also need to re-synchronize the child sheet to its Sheet Symbol, so that each Port has a matching Sheet Entry. This is done using the Synchronize Sheet Entries and Ports command, which you can use for:

  • A specific Sheet Symbol - right-click on the Sheet Symbol to display the context menu and select the Sheet Symbol Actions » Synchronize Sheet Entries and Ports command to analyze only the Sheet Symbol under the cursor.
  • All Sheet Symbols in the design - select the Design » Synchronize Sheet Entries and Ports command to analyze all of the Sheet Symbols in the entire design, the dialog will include a tab for each Sheet Symbol in the design, in accordance with the Only Show unmatched sheet symbols option at the bottom of the dialog.

For both of these commands, the Synchronize Ports to Sheet Entries dialog will open. It will list the already matched Ports/Sheet Entries on the right side of the dialog, with the unmatched Ports and Sheet Entries listed in two columns on the left side of the dialog. A sheet symbol is said to be 'synchronized' with its referenced child sheet if all of its sheet entries match the corresponding ports on that sub-sheet – both by Name and I/O Type.

The Synchronize Ports to Sheet Entries dialog is used to ensure that the Sheet Entries match with the Ports on the child sheet. Note the two tabs, which means there are two Sheet Symbols that have Sheet Entry / Port mismatches in this design.
The Synchronize Ports to Sheet Entries dialog is used to ensure that the Sheet Entries match with the Ports on the child sheet. Note the two tabs, which means there are two Sheet Symbols that have Sheet Entry / Port mismatches in this design.

Focusing on the mismatches displayed on the left of the dialog, the idea is to select the Sheet Entry in the first column, then the correct Port in the second column, then click the required button in the middle of the dialog to update one of them so they are synchronized (and move to the list on the right of the dialog).

The buttons function as follows:

  • Button, update the Port to Match the Sheet Entry - use the Sheet Entry properties, and push them to the selected Port.
  • Button, update the Sheet Entry to Match the Port - use the Port properties, and push them to the selected Sheet Entry.

If multiple Sheet Entries are selected in the left-hand column, the software will synchronize each Sheet Entry with the adjacent Port in the second column. If there is no adjacent Port (or Sheet Entry), a new one is created.

  • If the command adds new Sheet Entries or Ports, they will need to be correctly positioned on the schematic sheet when it has finished.
  • Note that any changes made in the dialog take effect immediately. A change cannot be undone through the dialog. You will need to use the document's Undo feature to unwind a change.
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