Design Annotation is the systematic and methodical process for ensuring that each component in the design can be individually identified by means of a unique designator. While Altium Designer is able to maintain the identity of components using Globally Unique IDs (GUIDs), most designers historically use the component's designator as the primary means of referencing the component across the schematic (logical) and PCB (physical) domains, as well as in outputs such as the Bill of Materials (BOM).
There are three approaches to annotating a design. The choice of Annotation tool depends on a number of factors including the type of design, personal preference, and company policy and procedures.
Schematic Level Annotation
Schematic Level Annotation uses a purely logical view of the design to determine component designators. It is most useful for simple designs that do not use Device Sheets, but because it allows the order of processing to be specified as well as the option to complete existing packages for multi-part components, it is also a pre-requisite to Board Level Annotation.
In summary, use Schematic Level Annotation to:
- Package multi-part components.
- Annotate components based on their position in the schematic design.
- Annotate multi-channel designs using the default naming scheme as specified in the Project Options.
- Prepare a design for additional annotation.
PCB Annotation uses the physical location of components on the PCB to determine their designation. This allows positional information to be effectively encoded into a component's designator and can be very helpful when debugging an assembled PCB. In short, you should use PCB Annotation to annotate components based on their position on the board in the PCB Design.
Board Level Annotation
Board Level Annotation provides a mapping between designators used in the schematic (logical) design and their real-world counterparts on the PCB (physical) design. While Board Level Annotation can be used in any design, it is especially useful for multi-channel designs or designs that incorporate device sheets where the designators cannot be edited on the device sheet itself. In this way, the entire design can be re-annotated without actually modifying the original device sheet(s). Board Level Annotation resolves any conflicting annotation problems that may occur due to duplicate designators across a project and stores its changes in an
*.Annotation text file. It includes additional keywords for customizing naming schemes and allows them to be applied to all or only a select range of parts.
In summary, use Board Level Annotation to:
- Annotate the compiled components in device sheets.
- Uniquely name all components across several channels using naming schemes, which include positional annotation, global indexing, and other configurable options.
- Manually name components.
Schematic annotation is configured using the Annotate dialog. The dialog provides controls to systematically assign designators to all or selected parts in selected sheets of a project and ensures that designators are unique and ordered based on their position. Annotation options can be configured to package multi-part components, set index and suffix options, reset schematic designators including any duplicate designators, and back annotate from the PCB.
The Annotate dialog is accessed by running the Annotate Schematics command (Tools » Annotation » Annotate Schematics).
The Annotate dialog is launched from the Annotate Schematics command.
The dialog is divided into two primary regions:
- Schematic Annotation Configuration - this region is used to configure the annotation scheme as well as the scope of annotation.
- Proposed Change List - this region lists the proposed changes that will occur once accepted and executed using an Engineering Change Order (ECO).
Schematic Annotation Configuration
Order of Processing
Use this region to specify the required method of positional annotation. As you select a method from the drop-down list, the associated graphical representation dynamically updates to illustrate how the components will be annotated. Choose from the following methods of positional annotation:
- Up Then Across
- Down Then Across
- Across Then Up
- Across Then Down
When Altium Designer processes components for annotation, it applies a bounding rectangle that encompasses the complete component and all visible parameters. If the order of processing does not seem to be correct, check the position of component parameters to ensure they are not adversely impacting the result.
Process Location of
Use this region to specify the reference for component locations when processing the annotation order. Choose from the following:
- Designator - the component's designator is used as the reference for its location when determining processing order.
If the positional annotation is not performing according to your expectations, ensure that the designators are positioned correctly. It might be that the components themselves are in perfect alignment, but a misplaced designator is responsible for causing the undesirable annotation results.
- Part - the center of the component is used as the reference for its location when determining processing order.
Use the drop-down to select whether or not to replace sub-parts as part of the annotation process.
When using multi-part packages, it is often desirable to pack as many parts into the minimum number of physical parts since this minimizes the overall BOM cost of the design. The controls in this region allow you to define how components will be matched and grouped together, as well as the criteria used for determining valid groupings.
- Complete Existing Packages - use this control to decide if and how parts that are not annotated will be included in existing packages. Use the drop-down list to choose from the following:
- None - existing packages will not be completed and all new parts will be placed into new packages.
- Per Sheet - existing packages will only include new parts from the same schematic sheet.
- Whole Project - existing packages will include new parts from any of the schematic sheets in the project.
In order for multi-part packing to be included as part of the annotation process, the Complete Existing Packages drop-down must be set to something other than None. When configuring the Completing Existing Packages region, some consideration should be given to how power pins have been specified on active components. For example, many designers include VCC/GND pins on the first part of a multi-part component but then do not include those pins on subsequent parts. If the first part in a multi-part component is packed into an alternate package and has its sub-part updated, it can lead to unconnected (or floating) power connections.
- Component Parameter - this list includes all parameters found within components in the current design. Check the box associated with a parameter to use it for matching parts into packages. If multi-part components share the same enabled parameters and a common value, they will be packaged together (provided the Complete Existing Packages option is not set to None). Any remaining components that do not have the enabled parameter(s) are also packaged together.
The default settings in the dialog are to complete existing packages by Library Reference and Comment, however, you can select any combination of parameters.
- Strictly - enable this option for a Component Parameter in the list to denote that all components must have that parameter to be matched into a package. Components that do not have this parameter are annotated as individual components and are not packaged.
- Parameter » Enable Selected Parameters - use to check the 'Include' checkbox for all parameters currently selected in the list.
- Parameter » Enable All Parameters - use to check the 'Include' checkbox for all parameters in the list.
- Parameter » Disable Selected Parameters - use to uncheck the 'Include' checkbox for all parameters currently selected in the list.
- Parameter » Disable All Parameters - use to uncheck the 'Include' checkbox for all parameters in the list.
- Match Strictly » Enable Strict Matching On Selected Parameters - use to enable the Strictly option for all parameters currently selected in the list.
- Match Strictly » Enable Strict Matching On All Parameters - use to enable the Strictly option for all parameters in the list.
- Match Strictly » Disable Strict Matching On Selected Parameters - use to disable the Strictly option for all parameters currently selected in the list.
- Match Strictly » Disable Strict Matching On All Parameters - use to disable the Strictly option for all parameters in the list.
- Selection » Select All - use to select all parameter entries in the list.
- Selection » Deselect All - use to deselect all parameter entries in the list.
- Selection » Invert Selection - use to select all parameters not currently selected in the list, and deselect those that are.
Schematic Sheets To Annotate
This region of the dialog lists all of the source schematic sheets in the design project. Controls available in this region are used to determine which sheets are to be included in the annotation process and the specifics of how annotation changes will be calculated. For each sheet, the following is presented:
- Include/Exclude checkbox - enable this checkbox to include the schematic sheet in the annotation process.
- Schematic Sheet - this field displays the name of the schematic sheet.
- Annotation Scope - use this field to determine the scope of annotation with respect to the components on the sheet. Use the drop-down list to choose one of the following scopes:
- All - all parts on the schematic sheet will be annotated.
- Ignore Selected Parts - all parts, except those currently selected in the design, will be annotated.
- Only Selected Parts - only those parts currently selected in the design will be annotated.
Using Ignore Selected Parts or Only Selected Parts requires that the components are selected in the design prior to accessing the dialog.
- Order - use this field to specify where this sheet is to be placed in the overall order of sheet annotation. Type the desired order number directly into the field or use the arrows that appear once you click in the field to scroll to your preference.
- Designator Index Control - use the controls in this column to enable the use of a start index (by checking the associated box) and defining a value for the index. The designator value will begin from this index value.
- Add Suffix - use this field to specify use of a suffix to be appended to each annotated designator. Alpha (A, B, C...), numeric (1, 2, 3...), and non-alphanumeric (_ * . %...) suffixes are supported including a combination of these.
Avoid using single character suffixes such as 'A' or '1' as these can be easily confused with sub-parts and/or other designator values.
- All On - click to include all schematic sheets in the annotation process.
- All Off - click to exclude all schematic sheets from the annotation process.
- Right-Click Menu - the following commands are available from the region's right-click context menu:
- Order Alphabetically - use to order the list of schematics alphabetically. This will impact the associated Order entry for each sheet.
- Order By Project Order - use to order the list of schematics by the order in which they appear for the project (as seen on the Projects panel). This will impact the associated Order entry for each sheet.
- All On - use to include all schematic sheets in the annotation process.
- All Off - use to exclude all schematic sheets from the annotation process.
Proposed Change List
- Main List - this region of the dialog lists all designators for the parts contained within the sheets selected for annotation. For each entry, details of the Current and Proposed Designator values are included, along with the component's Sub (part) and the source Location of Part. The padlock icons () are used to denote locked columns to prevent designator and sub-part changes.
You can sort by one of these padlocked columns by clicking on the padlock. Click once to have all components whose designators and/or sub-parts are available for change listed first, click again to have all parts that are not to be touched by the annotation process appear at the top of the Proposed Change List.
Checking the box adjacent to a designator in the Current column ('designator locked') will lock that specific designator from any changes. Similarly, checking the box adjacent to a designator's Sub field ('sub-part locked') will prevent that specific sub-part of the parent multi-part component from being updated.
The following commands are available on the region's right-click menu:
- Designator » Lock Selected Designators - use to check the 'designator locked' checkbox for all designators currently selected in the list.
- Designator » Lock All Designators - use to check the 'designator locked' checkbox for all designators.
- Designator » Unlock Selected Designators - use to uncheck the 'designator locked' checkbox for all designators currently selected in the list.
- Designator » Unlock All Designators - use to uncheck the 'designator locked' checkbox for all designators.
- Part ID » Lock Selected Part ID - use to check the 'sub-part locked' checkbox for all designators currently selected in the list.
- Part ID » Lock All Part ID - use to check the 'sub-part locked' checkbox for all designators.
- Part ID » Unlock Selected Part ID - use to uncheck the 'sub-part locked' checkbox for all designators currently selected in the list.
- Part ID » Unlock All Part ID - use to uncheck the 'sub-part locked' checkbox for all designators.
- Selection » Select All - use to select all designator entries in the list.
- Selection » Select All With '?' - use to select all entries whose current designator contain ? (i.e. have been reset).
- Selection » Deselect All - use to deselect all designator entries in the list.
- Selection » Invert Selection - use to select all designators not currently selected in the list, and deselect those that are.
Multiple designator entries can be selected using standard multi-select techniques (Ctrl+click and Shift+click).
Proposed changes are calculated based on configured annotation options and loaded after clicking the Update Changes List button (below the region).
- Annotation Summary - this area provides a summary of the annotation in terms of the number of sheets involved and the matching options. It dynamically updates as changes are made to these areas.
- Update Changes List - click to update the main proposed changes list with new calculated changes based on defined annotation settings on the left side of the dialog. An information dialog will present details of how many changes were made since the previous state and how many changes were made since the original state.
Only designators that have not previously been set (i.e. R?, C?, etc.,) will be affected by the changes, therefore, if the intention is to update all designators in the design, they should first be reset by clicking the Reset All button.
- Reset All - click to reset all designators in the main list (that are not locked) back to their default component prefixes, e.g., R?, C?, D?. The changes will be loaded in the Proposed designators column. The button's drop-down allows you to change the command to Reset Duplicates. If two or more components have the same designator, all but one will be reset to their default prefixes. Again, an information dialog will present details of how many changes were made since the previous state and how many changes were made since the original state.
Note that any designators with a locked status are not reset or changed in any way.
- Back Annotate - click to open a dialog to search for and select the file for back annotation.
- Accept Changes (Create ECO) - after reviewing all proposed changes, click this button to access the Engineering Change Order dialog, which lists the proposed changes as modifications within the modification category Annotate Component. Use this dialog to validate and execute the ECO, completing the Annotation Process at the schematic level.
For non-homogeneous multi-part components, ensure the Locked icons are closed in the Properties panel to prevent sub-part changes during annotation.
If the Strictly checkbox is enabled for a Component Parameter, all components must have that parameter matched into a package. Components that do not have this parameter are annotated as individual components and are not packaged.
The following example illustrates how these options combine to give a specific result:
Consider a design with eight OR Gates and eight resistors (as shown in the image below). The OR gates contain a parameter called
QuadOrGate, with one group of four OR gates having the parameter value
Package1 and the other group of four OR Gates having the parameter value
Package2. The resistors have no such parameter. Enabling the checkbox for
QuadOrGate in the Component Parameter control will ensure that this parameter is used to control how components are packaged; in this case, the Strictly check box is not enabled.
After launching the Tools » Annotation » Annotate Schematics command, parts with the parameter
QuadOrGate = Package1 will be packaged into the same physical component and those that have the parameter
QuadOrGate = Package2 will be packaged together separately. Any remaining components that do not have the
QuadOrGate parameter will be packaged together. In this case, the resistors are packaged together since their common attribute is that they do not contain the
Example of packaged components when the Strictly option is unchecked.
If the same design is annotated but the Strictly option is checked, only those components that have the
QuadOrGate parameter will be packed. In this case, the OR gates will be packed but the resistors will be left unpacked. Consequently, while the Strictly option provides extremely fine control over the packing process, most situations will call for it to be unchecked.
Example of packaged components when the Strictly option is checked.
Multi-part components can use either an alpha or numeric part identifier suffix - i.e. U1:1, U1:2, or U1:A, U1:B. Control over the style of suffix is specified on the Schematic - General
page of the Preferences
dialog. Note that Preferences are global and apply to all currently open schematic sheets.
Schematic Sheets to Annotate
A high degree of control is provided over which schematic sheets and components will be affected by annotation and the specifics of how those changes will be calculated.
Specifying the scope of annotation.
- A check in the box to the left of the listed schematic sheet indicates that it will be processed as part of the annotation command.
- The scope of annotation is determined by the Annotation Scope drop-down list and can be expanded to include the entire schematic sheet or limited to (un)selected components. Using the Ignore Selected Parts or Only Selected Parts options requires that the components were selected in the design prior to running the Annotation command.
- Configure the order in which the schematic sheets are to be annotated using the Order field. Type a value directly into the field or use the arrows that appear once you click in the field to set the desired value.
- If the Designator Index Control option is checked, the designator value will begin from the Start Index value. The Start Index has no effect if the Designator Index Control option is not checked.
- An additional suffix can be added to the end of each designator by specifying a string/value in the associated Suffix column. Avoid using single character suffixes such as 'A' or '1' as these can be easily confused with sub-parts and/or other designator values.
Proposed Change List
Click the Update Changes List button to update the Proposed Change List so that all designator changes can be reviewed prior to being applied. Only designators that have not previously been set (i.e.
C?, etc.) will be affected by the changes. Therefore, if the intention is to update all designators in the design, they should first be reset by pressing the Reset All button.
Resetting designators prior to applying the annotation settings.
The Reset All drop-down button can also be used to Reset Duplicates.
The Proposed Change List lists all designators for the parts contained within the sheets selected for annotation. For each entry, details of the Current and Proposed Designator values are included along with the component's Sub (part) and the source Location of Part.
Checking the box associated with a Designator will lock that specific designator from any changes. Similarly, checking the Sub box will prevent that specific multi-part component from being updated. This option can be used as an alternative to setting the Lock icon in the Properties panel.
After reviewing the list of proposed changes, click the Accept Changes (Create ECO) button to launch the Engineering Change Order dialog. Once the ECO is executed, the annotation changes will be applied to the design.
Additional Schematic Annotation Commands
The Tools » Annotation menu contains a number of targeted Schematic Annotation commands. The first item in the group, c, has already been discussed.
Various available annotation commands
Reset Schematic Designators
If large portions of content have been cut and pasted from different sources into a new design, it may be necessary to reset all designators. Because this command uses settings taken from the Annotate dialog, it will be applied to items previously set within that dialog. For instance, if all Schematic Sheets To Annotate were previously checked, then the Reset Schematic Designators command will apply to the entire project whether the sheets are currently opened in the editor or not. If only a few Schematic Sheets To Annotate were previously checked, then the Reset Schematic Designators command will only affect those sheets.
After launching the command, a confirmation dialog will appear that summarizes the number of designators requiring update and asking whether you wish to proceed with the changes. After clicking Yes, all component designators across all annotation-enabled schematic sheets of the active project will be reset appearing in the form: R?, C?, D?, U?, etc.
Any designators with a locked status are not reset or changed in any way.
Reset Duplicate Schematic Designators
When duplicating portions of a design, the newly-copied components will still hold the same designator values as those from which they were copied. The Reset Duplicate Schematic Designators command provides a fast way to reset duplicate designators to '?'. Because this command uses settings taken from the Annotate dialog, it will be applied to items previously set within that dialog. For instance, if all Schematic Sheets To Annotate were previously checked, then the Reset Duplicate Schematic Designators command will apply to the entire project whether the sheets are currently opened in the editor or not. If only a few Schematic Sheets to Annotate were previously checked, then the Reset Schematic Designators command will only affect those sheets.
After launching the command, a confirmation dialog will appear that summarizes the number of designators requiring update and asking whether you wish to proceed with the changes. After clicking Yes, all duplicate component designators found across all annotation-enabled schematic sheets of the active project will be reset appearing in the form: R?, C?, D?, U?, etc.
Any designators with a locked status are not reset or changed in any way.
Annotate Schematics Quietly
The Annotate Schematics Quietly command is used to interrogate all source schematic documents for the active project that are enabled for annotation and assign a unique designator to any component that currently does not have a designator. Annotation is carried out quietly - making it possible to apply all of the previous settings of the Annotate dialog without needing to reopen the dialog. This is especially useful if the design is going through a rapid phase of development and the designer wants to quickly annotate prior to compiling the design.
Force Annotate All Schematics
This command is used to interrogate all source schematic documents for the active project that are enabled for annotation and re-annotate all components therein in accordance with the annotation scheme currently defined in the Annotate dialog.
Running the Force Annotate All Schematics command is equivalent to running the Reset Schematic Designators command followed immediately by the Annotate Schematics Quietly command. Consequently, the Force Annotate All Schematics command uses settings that were previously set within the Annotate dialog when determining which components and sheets can be updated.
After launching this command, a request for confirmation appears that details the number of designators that will be updated if accepted. After clicking Yes, all component designators across all annotation-enabled schematic sheets of the active project will be re-annotated, where necessary, to comply with the current positional annotation scheme defined in the Schematic Annotation Configuration region of the Annotate dialog.
Back Annotate Schematics
Prior to the introduction of Altium Designer's Design Compiler and Synchronizer, annotation changes were historically passed from the schematic to the PCB via a netlist (
*.net) file. Annotation changes that needed to propagate in the reverse direction - from the PCB to the schematic - were handled via a Back Annotation process. This process uses a Was-Is (
*.WAS) file or Engineering Change Order (
*.ECO) file to direct the changes to be applied to schematic designators.
This command is largely superfluous since the Design Compiler and Synchronizer are far more effective tools for managing design synchronization. It is still useful, however, for legacy purposes, and for designers who use alternate PCB layout tools (such as Specctra®).
After launching the command, the Choose WAS-IS File for Back-Annotation from PCB dialog will appear. Browse to and select the required .was (or .eco) file. After clicking Open, an information dialog will appear that lists how many changes to designators have been made since the previous state and how many have been made since the original state. At this point, the changes are not actually implemented. Click OK to bring up the Annotate dialog, from where you can view the proposed changes to the current designators before deciding to create an ECO to implement them.
- When re-annotating designators in the PCB, each re-annotation produces a unique .was file that carries the date and time in its filename. This enables you to load multiple .was files in succession - from oldest to newest - and not lose designation synchronization between the PCB and source schematic sheets.
- Back annotation can also be performed directly from within the Annotation dialog by clicking the Back Annotate button.
Number Schematic Sheets
The Number Schematic Sheets command does not alter component designators but rather schematic sheet designators (numbers). Conceptually, it is therefore related to the general concept of design annotation.
Sheet and document numbering allows you to take control over the sheet designation and store them as parameters within the respective schematic documents. Altium Designer's special string feature (
=SheetTotal) can then be used to expose these values on the sheet (in the sheet footer, for example) as text objects.
Numbering schematic sheets.
The process of numbering sheets is as follows:
Automatic Sheet Numbering (Project Option)
Enable to perform automatic sheet numbering. The values will be displayed in the Projects panel. You can also enable automatic sheet numbering by checking the Automatic Sheet Numbering option on the Options tab of the Project Options dialog.
Auto Sheet Number
Click on the Auto Sheet Number drop-down button to access the sheet numbering options.
The Select Numbering Scheme options are:
- Display Order - the sheets are numbered in the order they are displayed.
- Sheets Hierarchical Structure - Depth First - the sheets are numbered from the top level into each branch. The top-level is numbered first then the first branch under the top level is numbered completely, the second branch, and so on.
- Sheets Hierarchical Structure - Breadth First - the sheets are numbered according to their level in the hierarchy. The top-level is numbered first, all second levels are numbered next, and so on.
The Select Numbering Method options allow for Increasing or Decreasing sequential values to be selected.
Auto Document Number
Click on the Auto Document Number drop-down to access the document numbering options. They are essentially the same as the Auto Sheet Number options except with the addition of Prefix and Postfix values.
The Parameters options are as follows:
- Prefix - choose a prefix to place in front of your document number. Alpha (
C, etc.,), numeric, (
3, etc.,) and non-numeric (
%, etc.,) prefixes are supported including combinations of all of them.
- Start - choose a numerical value from which to begin numbering.
- Postfix - choose a postfix to append to the document number. Alpha (
C, etc.,), numeric (
3, etc.,) and non-numeric (
%, etc.,) postfixes are supported including combinations of all of them.
- Step - choose a value to increment each document number by. For example, if the Start index is set to 1 and the Step value is set to 100, the first document number will be 1 and the next document number will be 101 (Start + Step), the next 201, and so on.
Update Sheet Count
Click on the Update Sheet Count button to tally up the number of sheets in the current project and place the result in the SheetTotal column. The sheet count will be the total number of sheets in the project regardless of the numbering scheme selected in either of the previous controls.
Use the Move Up or Move Down buttons to move a selected schematic document up or down in the list. This is relevant when using the Display Order numbering scheme to specify Sheet or Document Numbers.
If an organization has a specific number or naming system that cannot be automated through either the Auto Sheet Number or Auto Document Number commands, custom sheet names and numbers can be written directly into the SheetNumber or DocumentNumber fields.
Schematic Sheet Numbering and Device Sheets
Sheet or Document Numbers cannot be configured for Device Sheets when they are read-only (default state) and will be cross-hatched in the Sheet Numbering For Project dialog to indicate they cannot be updated. When Device Sheets are set as editable, the cross-hatching is removed and Sheet and Document Numbering can be configured as normal.
Board Level Annotation
Board Level Annotation is the process of annotating the compiled components (the physical view of your components) of your design through the Schematic Editor. Board Level Annotation allows you to either name your components based on a number of naming schemes or specify custom names.
While Board Level Annotation can be used in any design, it is especially useful for multi-channel designs and/or designs that incorporate Device Sheets - where the designators cannot be edited on the Device Sheet itself. In this way, the entire design can be re-annotated without actually modifying the original Device Sheet(s). Board Level Annotation also resolves any conflicting annotation problems that may occur due to duplicate designators across a project, and stores its changes in a *.Annotation text file. It includes additional keywords for customizing naming schemes and allows them to be applied to all or only a select range of parts.
Board Level Annotation gives you complete control over the annotation in your project with annotation settings saved in an
*.Annotation text file displayed under the Settings\Annotation Documents sub-folder in the Projects panel. Altium Designer manages Annotation files automatically.
You can choose to name all of the components in your project, name selected components, or name only those components that are not designated. To annotate the compiled components in your project through the Schematic Editor:
- Ensure that the components have been annotated at the schematic level so that the schematic source data, including packaged options for multi-part components, is available as input for your Board Level Annotation.
- Select Tools » Annotation » Board Level Annotate (shortcut Ctrl+L) which brings up the Board Level Annotate dialog.
The Board Level Annotate dialog displays all of the schematic documents in your project.
This dialog is comprised of two main regions:
- Filter Options - for filtering and setting the scope of annotation.
- Proposed Change List - the proposed changes to be applied, based on your configured annotation options. Changes are applied through an Engineering Change Order (ECO).
The left side of the Board Level Annotate dialog allows you to control the scope of annotation at the Sheet, Channel and Part Level. The columns in the Filter Options region do not change.
- Schematic Sheet - this column lists all of the schematic documents in the project. A schematic document may be listed more than once if the design includes multiple channels.
- Channel Name - this column lists all of the relevant channels in the design. If there are no channels in the design, this column will be populated with the schematic sheet name.
- Enabled - check this box to include this schematic sheet for a specific channel in this board level annotation. Uncheck the box to exclude this sheet from board level annotation.
- Annotation Scope - choose from the following to set the scope for the parts to be annotated:
- All - all parts in the Schematic Sheet will be annotated.
- Ignore Selected Parts - all parts except those selected will be annotated.
- Only Selected Parts - only the parts selected will be annotated.
Parts to be included or excluded in board level annotation need to be selected before you open the Board Level Annotate dialog.
The right side of the dialog allows you to view Schematic Source Components (highlighted in pink), view Calculated Design Data (highlighted in green) used in the current naming scheme (whether it is the default name for compiled components or the applied naming scheme), apply a Naming Scheme and view the resulting PCB Component Instance.
- Schematic Source Component - this section is comprised of three columns:
- Hierarchy Path - the path of the schematic source in the format Filename\Channel.
- Prefix - the alphabetical prefix extracted from the Schematic Level Designator. For example, if your Schematic Level Designator is
R13, the Prefix is
If the component is undesignated, it will have a component icon with a question mark (
). After you perform the first Board Level Annotation, the icon changes to
denoting that the component has a designator. If you reset the designators, the icon will revert to
- Local Index - the index you have specified following the alphabetical prefix extracted from the schematic level designator. For example, if the schematic level designator is
R13, the Local Index is
- Calculated Design Data - upon first opening the dialog, the Calculated Design Data section displays the Room Name column, which corresponds to the default Annotate Option selected. Once a board level annotation has been performed, the columns displayed in Calculated Design Data represent the keywords selected in your naming scheme for annotation in your Annotate Options. These columns are updated dynamically based on your selection. For example, if you select the Naming Scheme to be $GlobalIndex.$SheetDesignator, the columns displayed will be Global Index and Sheet Designator.
- Naming Scheme - check the box to enable the Naming Scheme for this component. Uncheck the box to disable the Naming Scheme for this component. Note that when this field is unchecked, the PCB Component Instance column can be edited so you can specify a custom designator for your component.
- PCB Component Instance - this column displays the proposed designator. This field is dictated by either the Naming Scheme selected or a custom value that can only be specified when the Naming Scheme field is unchecked. The custom name can contain any combination of alphanumeric and non-alphanumeric characters.
The following four buttons are located beneath the Proposed Change List:
- Annotate Options - click to access the Board Level Annotation Options dialog, from where you can further customize annotation using either predefined or custom naming schemes.
Alternatively, if you want to specify a custom name for all or a particular component, uncheck the Apply box under the Naming Scheme column (in the Board Level Annotate dialog) to disable the Naming Scheme for selected components and edit the PCB Component Instance column.
Use the drop-down to select a predefined naming scheme or define your own naming scheme using valid keywords. You can select any combination of valid keywords in any order and any non-alphanumeric characters to separate keywords (for example, "_", "*", ".", and "@"). Choose from the keywords tabulated below:
Name of the associated Room as determined by the style chosen in the Room Name Options.
Component Logical Designator prefix (e.g., U for U1).
Component Logical Designator index (e.g., 1 for U1).
Logical Sheet Symbol Designator.
Index you have specified to distinguish between different channels.
Channel Index expressed as an alpha character. This format is useful only if your design contains less than 26 channels in total, or if you are using a hierarchical designator format.
Designator assigned to the Sheet Symbol.
The Sheet Number assigned to the Sheet. If Compiled Sheets have been annotated, this information will be used.
The Document Number specified in Document Options.
User defined index. You can specify the order, Start Index and/or a suffix in the Global Index Options for each schematic document. Global Index is calculated for all non-designated components. If you add new components after you have performed a board level annotation, these components will be annotated with a new Global Index and the existing components will retain their Global Index. To recalculate the Global Index for all components, click Reset All first.
The following options and controls will vary depending on the document being annotated.
Global Index Options
- Order of Processing - use the drop-down to define the processing order desired. The graphical representation will dynamically change according to your selection:
- Up Then Across
- Down Then Across
- Across Then Up
- Across Then Down
- Process Location of - use the drop-down to select the type of information to process, e.g., Designator.
- Schematic Sheets To Annotate - a list of the schematic sheets. Click on a column heading to sort the list by that subject. Listed information includes:
- Schematic Sheet - the name of the schematic sheet.
- Channel Name - the name of the channel.
- Order - the order in which the listed item will be annotated.
- Designator Index Control - enable the checkbox to enable designator index control of the listed schematic sheet.
- Start Index - click in this column and use the up/down arrow keys to select the start index. You can also enter the desired index number.
- Add Suffix - enter the desired suffix.
The right-click menu in the bottom grid area includes the following commands:
- Enable Designator Index Control - select to check all Designator Index Control checkboxes.
- Disable Designator Index Control - select to uncheck all Designator Index Control checkboxes.
- Order Alphabetically - select to sort the listed schematic sheets alphabetically.
- Order by Project Order - select to sort the listed schematic sheets by project order.
Room Name Options
- Room Naming Style - use the drop-down to select the style when naming rooms.
- Level Separator for Paths - enter the level separator for paths.
- Annotate - click on the drop-down to choose:
Annotate Undesignated, Annotate All or Annotate Selected. Once chosen, the Proposed Change List will be updated with the designator to be annotated to each applicable component.
- Reset All - click to reset all of the designators back to the default names for compiled components. After components have been reset, the Prefix column will display a component icon with a question mark () to show that the component is now undesignated.
- Back Annotate - use to synchronize changes from your PCB design to the compiled documents in the Schematic Editor. After clicking the Back Annotate button, the Choose WAS-IS File for Back-Annotation from PCB dialog appears from where you can choose the file for back annotation. Back Annotation for Board Level Annotation performs the same way as it does for Schematic Level Annotation.
Note that Back Annotation is a legacy tool and it is best practice to use Design » Update to push annotation changes from the PCB back to the schematic.
To complete Board Level Annotation:
- Click the Accept Changes (Create ECO) button. The Engineering Change Order dialog opens allowing you to validate, report and execute the ECO.
- Click the Execute Changes button then the Close button to execute Board Level Annotation.
- Click the Close button on the Board Level Annotate dialog. Your
*.Annotation file will be updated and you can view your Board Level Annotation in your documents. To complete Board Level Annotation, synchronize your schematic documents with your PCB documents by selecting Update PCB Document <Filename> from the Design menu.
Annotating Compiled Sheets
You can annotate your compiled sheets using the Annotate Compiled Sheets dialog (access by the Tools » Annotation » Annotate Compiled Sheets command). The dialog provides you with the controls to uniquely name the compiled sheets (the physical representation of your design). These values are mapped to the SheetNumber special string and are stored in the
*.Annotation file. This file is displayed under the Settings\Annotation Documents sub-folder in the Projects panel so that annotation information is remembered when you close your project.
The Annotate Compiled Sheets command treats Device Sheets like other sheets in your project and annotates them according to your Annotation options.
This region is a list of the compiled sheets of the current project. Items listed include:
- Document - the name of the schematic sheet.
- Hierarchy Path - the location of the schematic sheet.
- Sheet Number - the number assigned to the listed schematic sheet. To enter a sheet number, click in the Sheet Number column of the desired schematic document then enter the new sheet number.
You can create custom names for your compiled sheets by typing directly into the Sheet Number field. Use any combination of characters (alphanumeric or non-alphanumeric) then click OK to implement your custom annotation.
- Annotate Sheet - click the drop-down arrow to access the menu for sheet numbering options.
- Numbering Order:
- Display Order - use this option to annotate the sheets in the order they are displayed.
- Sheets Hierarchical Structure - Depth First - use this option to annotate the sheets from the top level into each branch. The top level is annotated first, then the first branch under the top level is annotated, then the second branch and so on. The Navigator view of your project shows the compiled (physical) representation of your sheets. When you annotate the sheets Depth First, you annotate each branch of the hierarchical structure at a time.
- Sheets Hierarchical Structure - Breadth First - use this option to annotate the sheets according to their level in the hierarchy. The top level is annotated first, second levels are annotated next and so on. The Navigator view of your project shows the compiled (physical) representation of your sheets. When you annotate the sheets Breadth First, you annotate the sheets based on their position in the hierarchy.
- Numbering Method:
- Increasing - use this option to number the sheets in ascending order.
- Decreasing - use this option to number the sheets in descending order.
- Click the Annotate Sheet button to annotate the sheet(s) after selecting all options. The Sheet Number will be updated to match your selections.
- Move Up - click to move the selected schematic sheet one row up.
- Move Down - click to move the selected schematic sheet one row down.
Using Compiled Sheet Annotation in your Board Level Annotation
Once you have annotated your Compiled Sheets, use the
$SheetNumber keyword in your naming scheme when performing a Board Level Annotation to use this information in your annotation. If you have not annotated your compiled sheets, the Schematic Sheet numbering (Tools » Number Schematic Sheets) information will be used by default.
Using Compiled Sheet Annotation in your Project
Once you have annotated your compiled sheets, you can place the SheetNumber special string in your project to reference this information.
- The special string is always displayed; if null, then the parameter name is displayed.
- Place a special string where the value
=SheetNumber to use your Compiled Sheet Annotation values. You can use special strings in values of parameter properties, text strings, net labels, etc.
- The Sheet Number allocated by the dialog can be referenced on printed outputs of the compiled (Physical) sheet using the =SheetNumber special string. This will then be updated in any printed outputs of the design.
Board Level Annotation and Device Sheets
Device Sheets are portable and can be re-used between designs. In most cases, the names of the components in Device Sheets are limited to the scope of that sheet and require Board Level Annotation in order to be incorporated into the design in which they are placed.
Board Level Annotation is relevant to Device Sheets due to the fact that different Device Sheets included in one project can contain duplicate designators resulting in compilation errors. Board Level Annotation can resolve any conflicting naming with the changes saved to an
*.Annotation file displayed under the Settings\Annotation Documents sub-folder.
Default Names for Compiled Components
Default Names are required to be able to distinguish between the different instances of the physical representations of components. These default names are displayed in your documents and are used if you have not performed a Board Level Annotation to annotate your compiled (physical) components. When you first launch the Board Level Annotate dialog, the default names are populated in the PCB Component Instance column.
Default naming of compiled components is also applicable for multi-channel designs that reference the same sheet in a project multiple times. This is done by either placing multiple sheet symbols that reference the same sheet in the Schematic Document or by including the
Repeat keyword in the designator of a sheet symbol to instantiate a sheet multiple times.
While this makes it easy to repeat circuitry, it also presents a challenge in terms of annotation. In a multi-channel design, there can only be one logical instance of each component with its own unique designator no matter how many "copies" of it exist on the PCB. The Multi-Channel tab of the Project Options dialog (Project » Project Options) ensures that each channel is uniquely annotated with a default name based on Room Naming Style and Component Naming Designator Format.
Rooms are regions that assist in the placement and annotation of components in multi-channel designs. More specifically, a channel on the schematic is an instance of a repeated sheet and on the PCB each channel is represented by a room. Once components have been assigned to a room, they move when the room is moved allowing separate channels to be easily controlled and identified.
Rooms play an important role in channel designations ensuring unique names.
Logical designators are assigned to the components in the Schematic Editor View. Physical designators are assigned to the components when they are placed in the PCB design or when you have performed a Board Level Annotation. In multi-channel designs, the logical designators for repeated channel components may be the same, but each component must have a unique physical designator in the PCB design. This can be accomplished by appending the Room Name to the component name as shown in the Component Naming field below.
The Multi-Channel tab of the Project Options dialog allows you to specify the Room Naming Style and the Component Naming Designator Format for your designs. By controlling the multi-channel designator format in this dialog, you control the mapping from the single logical component in the Schematic Editor View to the multiple physical instances on the PCB. The tab is essentially divided into two areas - Room Naming and Component Naming.
The Multi-Channel tab allows for flexible default naming formats in multi-channel designs.
Use the Room Naming Style drop-down to define the naming format you require for the rooms in your design. These rooms are created by default when you update the project schematics to the PCB. There are five styles available — two flat and three hierarchical.
Flat Room Name Formats
Hierarchical Room Name Formats
Flat Numeric With Names
Numeric Name Path
Flat Alpha With Names
Alpha Name Path
Mixed Name Path
Hierarchical room names are formed by concatenating all channelized sheet symbol designators (
ChannelIndex) in the relevant channel path hierarchy.
As you select a room naming style from the list, the graphical representation is dynamically updated to reflect the naming convention that will appear in the design. The larger cross-hatch regions represent the upper-level channels (or Banks) and the shaded regions within represent the lower level channels. When the design is compiled, a room is created for each sheet in the design including each bank and each lower-level channel.
Use the Level Separator for Paths field to specify the required character/symbol for separating the path information when using the hierarchical naming styles. There are no restrictions on the character used for the level separator, however, a single non-alphanumeric character is easier to read.
There are several designator formats available for naming components. You can choose a format or define your own using valid keywords. Define the Component Naming format by selecting from the Designator Format drop-down list. There are eight predefined formats — five flat and three that can be used in a hierarchical context:
Flat Designator Formats
Hierarchical Designator Formats
The Flat Designator Formats name each component designator in a linear progression, starting from the first channel, avoiding the duplication of designators. The Hierarchical Designator Formats include the Room Name in the designator for a component. If the Room Naming Style chosen is one of the two possible flat styles, then the style for the component designator will also be flat. However, if a hierarchical style has been chosen for the Room Naming Style, the component designator will also be hierarchical since the path information will be included in the format.
Defining your own Designator Format
You can define your own component designator format by typing directly into the Designator Format field using valid keywords. Select from any combination of the following keywords to construct the format string.
Name of the associated room as determined by the style chosen in the Room Naming Style field
Component Logical Designator (e.g., U1)
Component Logical Designator Prefix (e.g., U for U1)
Component Logical Designator Index (e.g., 1 for U1)
Logical Sheet Symbol Designator
Index specified to distinguish between different channels
Channel Index expressed as an alpha character. This format is useful only if your design contains less than 26 channels in total or if you are using a hierarchical designator format
The Room Naming Style is only relevant for component naming if the
$RoomName string is included in the Designator Format.
Displaying Physical Names in your Documents
Your design is constructed in the Editor tab. Compiled Documents (physical representations of your design) are visible and can be accessed by clicking on the Compiled Document tab located along the bottom of the Schematic Document in the design window.
Examples of workspace tabs
You can specify display preferences for the physical names in compiled documents on the Schematic - Compiler page of the Preferences dialog. In the Compiled Names Expansion region, select to expand the compiled (physical) names of Designators, Net Labels, Ports, Sheet Number and/or Document Number.
You also can use the associated drop-down to select how the objects are displayed. Choices include: Never display superscript (expanded names are never displayed), Always display superscript (expanded names are always displayed), or Display superscript if necessary (expanded names are only displayed if they are different from the source)
The superscript options are applicable to both the Editor tab and your Compiled Document tabs. In the Editor tab, the compiled names are in superscript and in the Compiled Document tabs, the logical name (the name in the Editor tab) is displayed in superscript.
Use the Design » Update PCB Document command to initiate a transfer process that will automatically create a component class for each schematic sheet in the design, a room for each component class, and group the components in each class in their room ready for placement.
Positional Annotation in PCB
A key ingredient of good board design is component layout. In a large design, a component's position on the board may have no relationship to its designator. For example,
R1 may end up on the opposite side of the board to
R2. To make it easier to locate a component on the board, you can reassign the designators (re-annotate the board) positionally. To systematically assign designators in the PCB Editor based on their position, click Tools » Re-Annotate to open the Positional Re-Annotate dialog as shown below.
The Positional Re-Annotate dialog includes a graphical representation of each method.
Each component is identified by its bounding rectangle excluding strings. The components are sorted into a list and the list is renumbered in that order to create the new component designations. To compare two components in the X-direction, the left-side of the bounding rectangle is used. To compare two components in the Y-direction, the edge used depends upon the renumber direction: ascending-Y, use the bottom edge; descending-Y, use the top edge.
The Comparison Threshold option can be used as a buffer value when comparing two edges to determine if they are equal. For example, if two left-edges are within 75.0 mils of each other, and the comparison threshold is set to 100.0mil, then these two components are considered to be at the same X-position (left-edge). This allows for slightly misaligned components to be re-numbered in a logical order as shown in the image below. Here
R27 is lower than the other resistors to keep it correctly annotated with the adjacent resistors (the Comparison Threshold was set to
A series of resistors that have been positionally re-annotated. Note that R27 has remained in the annotation sequence even though it is lower than the other resistors.
The Annotate Scope options also give control of the annotation process for boards with components mounted on both sides. For the Bottom Side of the board, components are re-annotated as if you are looking at the board flipped over. So, for the X-direction comparison on the back-side, the software actually uses the right edge of the bounding rectangle remembering that viewed from the back side, this edge would look like the left side.
If the Selected Only option is enabled, and re-annotation will result in a component in the selection set being given a designator that is a duplicate of an existing non-selected component, the non-selected component will have a _1 appended to its designator to ensure all designators remain unique.
Note that a rotated component is identified by the smallest bounding rectangle that encompasses the original bounding rectangle in its new rotated orientation as shown in the images below.
The image on the left shows the bounding rectangle for R2; the image on the right shows the new bounding rectangle when R2 is rotated.
An ASCII text file is generated (
DesignName[Date][Time].WAS) in the same folder as the PCB document. The file lists initial and re-annotated designator values. Once a Re-Annotate has been performed on the PCB, you would typically pass these changes back to the Schematic using the Design » Update command. The *. WAS file also can be used to load the changes into the schematic if the PCB and schematic files are in different locations.
To prevent a component from having its designator re-assigned, enable the Protect Locked Designators checkbox in the Positional Re-Annotate dialog and ensure that the Strings locked icon is enabled in the associated Properties panel as shown below.
Controlling the Display of the Designator on the PCB
Extended Designator strings in a multi-channel design can be tedious to place in the PCB Editor. You can either choose naming options that result in a short name or display the original, logical component designation instead. For example,
C30_CIN1 would display as
C30. This would necessitate some other notation being added to the board to indicate the separate channels, such as a box being drawn around each channel on the component overlay.
You can select between Logical and Physical designator display on the PCB using the Designator Display drop-down in the Other region of the Properties panel in Board mode. If you choose to display the logical designators for components in a multi-channel design, these will be displayed on the PCB and in any output generated such as prints and Gerbers. The unique physical designators, however, are always used when generating a Bill of Materials.
Design Synchronization - Finalizing the Annotation Process
Direct Design Synchronization is the preferred method to keep your Schematic and PCB designators matching unless you do not have access to both the Schematic and the PCB editors. Design Synchronization compares the components and connectivity of the schematic directly to the PCB, producing a list of differences. A list of changes required to resolve these differences is generated as an ECO (Engineering Change Order). An ECO file describes the differences between the current design and the desired design and can be executed, updating the target and bringing the design into synchronization.
Forward Synchronization and Back Synchronization
The terms Forward Synchronization and Back Synchronization are specific ways of describing the direction that annotation and design changes are transferred during the synchronization of data. Visualizing a design flow that starts with, and is driven by, the schematic, Forward Synchronization is the process of updating changes made in the Schematic Editor forward to the PCB. Back Synchronization is the process of updating changes made in the PCB backward to the Schematic Editor.
A few reasons why you would synchronize data from the Schematic to the PCB are:
- A new component is added in the Schematic Editor and is required in the PCB layout.
- You have annotated your schematic design for the first time or since your last design synchronization.
- In a multi-channel design, you have changed the Project Options to modify the physical (PCB) naming style.
- You have done a Board Level Annotation for the first time or since your last design synchronization.
To Synchronize your Schematic Design forward to the PCB Design
Choose from one of the following methods to synchronize your Schematic design forward to your PCB design:
- Select Update PCB Document on the Design menu in the Schematic Editor. If any differences exist between these and the target PCB Document, the Engineering Change Order dialog opens with a list of modifications required to synchronize the PCB with the Schematic Design. Click Execute Changes to synchronize your design.
- Select Import Changes on the Design menu in the PCB Editor, which imports changes from the Schematic Documents to the PCB document.
Back Synchronization is done when you have annotated or changed your PCB design and you want to update the schematic design.
To Synchronize your PCB Design back to the Schematic Design
Choose from one of the following methods to synchronize your PCB design back to your schematic design:
in the PCB editor, select Update Schematics on the Design menu. By default, the Push Component Designator Changes to Annotation File (if any) option in the ECO Generation tab of the Project Options dialog is checked so that changes made in the PCB Editor will be pushed to the Annotation File only and, ultimately, Compiled Documents upon compilation. Uncheck this option to push changes to the source schematic document only (Editor view).
- From the schematic editor, select Tools » Annotation » Annotate Schematics then click the Back Annotate button in the Annotate dialog. Choose the WAS-IS file generated when re-annotating designators in the PCB environment.
This is a legacy tool. The preferred method of design synchronization is the Design » Update Schematics command.
- From the schematic editor, select Tools » Annotation » Board Level Annotate then click the Back Annotate button in the Board Level Annotate dialog. Choose the WAS-IS file generated when re-annotating designators in the PCB environment.
This is a legacy tool. The preferred method of design synchronization is the Design » Update Schematics command.
- From the schematic editor, select Tools » Annotation » Back Annotate Schematics. Choose the WAS-IS file generated when re-annotating designators in the PCB environment.
This is a legacy tool. The preferred method of design synchronization is the Design » Update Schematics command.
Back Annotate Schematics synchronizes annotation changes made in the PCB editor with the schematic design. This feature is useful when it is not possible to have the PCB and schematic editors open at the same time, for example, when the PCB and the schematic are designed by people in different locations.
Traditional Methods of Design Synchronization
Altium Designer supports the traditional intermediate (netlist and WAS/IS) file approach for Design Synchronization. Forward Synchronization of annotation data can be done through the use of a netlist file and Back Synchronization can be done through the use of a WAS/IS file (listing what each designator WAS and what it now IS). The preferred method for synchronizing your design is Direct Design Synchronization.
Component Linking with Unique IDs
If you have re-annotated your design, the schematic component designators or the compiled component designators will no longer match the PCB component designators, so synchronization is required to successfully close off the design. Rather than relying on the designator itself as the key field that relates a schematic symbol to its equivalent PCB footprint, Altium Designer can maintain design synchronization through the Unique IDentifier (UID) system. The UID is a system-generated value that uniquely identifies the source component and matches each schematic component to the corresponding PCB component.
When a component is placed on a schematic sheet, it is automatically assigned a UID. The first time component information is transferred from source schematic documents to a blank PCB, the UID information from each schematic component is assigned to the corresponding PCB component.
Refactoring allows you to convert Device Sheets to Schematic Sheets and vice versa while maintaining the Unique ID of the sheet and its components. In addition, you can refactor (or move) subcircuits to other schematic sheets in the current project, maintaining the Unique ID of the subcircuit. The Refactor command is located on the Edit menu.
Altium Designer's synchronization feature, initiated by launching the Design » Update command, uses these UIDs to match each schematic component to its PCB equivalent. Design updates/changes can then be implemented using Engineering Change Orders (ECOs). An ECO 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 affect design updates in a variety of situations, such as:
- SCH to PCB design updates.
- Performing Annotation updates to schematic component designators and compiled component designators.
- Implementing updates to parameters using the Parameter Manager (Tools » Parameter Manager).
- Updating parameter information with information stored in source libraries or a company database. Whenever you compare the schematic and PCB (such as when you select Design » Update), Altium Designer first matches components that share the same UID. When components are detected that do not share a UID, you are alerted and the application offers to attempt to match by designator. Until you have assigned a matching UID to both the schematic and the PCB, you will continue to get this message. Unique IDs and their correlation are managed in the Edit Component Links dialog (Project » Component Links).
Note that the dialog can only be opened when a PCB document is active since UID changes are always applied to the PCB rather than the schematic. Use the dialog at any stage during the design to view the linking between the components to verify that components between documents are correctly matched, as well as to assign matching UIDs to components that are currently unmatched.
If you are planning on re-annotating either the schematic or the PCB, it is essential that you make sure that the UIDs are matching first, since once you change all the designators on the schematic or PCB, the UID is then the only piece of information that can be used to link the schematic component to its PCB equivalent.