Professional Documents
Culture Documents
AP0128 Managing Design Variation With Variants
AP0128 Managing Design Variation With Variants
Summary
This application note
provides detailed
information with respect
to assembly variants,
including their definition
and generation of
relevant output.
Product requirements may warrant the need to produce a variety of similar Printed Circuit
Boards that all differ slightly from an underlying base design. For example, standard and
deluxe versions of a commercial electronic product may differ in the functionality they
offer, with the standard version incorporating a subset of the components used in the
deluxe version.
Introduction
At the design level, one or more assembly variations of a board design can be defined
using the assembly variants feature. An assembly variant is an alternately assembled
version of the original board design. It may vary from the original with respect to:
the specific part type/value of those components (e.g. a discrete component with a different value, or a faster logic
component of the same or different technology family)
varied component-level parameters (e.g. tolerance or voltage-rating of a capacitor, Manufacturers Part Number, etc).
The true power of the assembly variants feature is that variations of a design can be created without having to create and
maintain explicit PCB design projects for each variant. You are simply controlling the population of components on the base
board fabrication of the PCB remains the same irrespective of whether the original (full design) or a variant of it is being
manufactured. The variation, in physical terms, comes into play during the board assembly phase whether a component is
fitted or not and whether the default component from the base design is used or whether an alternate part is specified.
When generating manufacturing output, the base design is always used to generate fabrication-related documents (e.g. Gerber,
ODB++, NC Drill, etc), but when generating assembly-related documentation (e.g. Bill of Materials, Pick and Place, Assembly
Drawings, etc), the source from which the output is generated will depend on the assembly variant you wish to manufacture.
Initially, a design will not have any assembly variants defined and the dialog will list all components used on the original, fully
populated board design. Sub-columns provide the following information for each component:
Version (v2.3) May 19, 2008
Logical this is the components logical designator, as assigned to the component on the associated source schematic
sheet
Comment this is the type of component (logic chip, connector, etc) or its value (e.g. resistance, capacitance, etc) and is
taken from the value entered in the components Comment property field
Designator this is the components physical designator, as assigned to the component once placed in the PCB design
Document this is the source schematic document within the design project upon which the component may be found.
Note: In multi-channel designs, the logical designators for the replicated channel components may be the same on the
schematic side, but each component will have a unique physical designator when placed on the PCB side. This will be reflected
in the Assembly Variant Management dialog (Figure 2).
The lower region of the Assembly Variant Management dialog also referred to as the Parameter Variations region is used for
specifying changes to the parameters of components that are to be fitted on an assembly variant. The region reflects the
parameters (and their values) associated with the currently selected component in the region above. The components
Comment property is also included, which can be used to specify an alternate part/value for the component on the variant
board. Initially, with no assembly variants defined, only the original parameter values for the components in the base design will
be displayed (Figure 3).
With the name and any parameters defined as required, click OK in the Variant of [ProjectName] dialog the new variant will
appear in the Assembly Variant Management dialog (Figure 6).
Figure 7. Select the required variant and use the Copy Variant command.
Once copied, use the paste command to insert the variant into the Assembly Variant Management dialog. The Variant of
[ProjectName] dialog will appear with a default name for the new variant, in the format CopiedVariantName_1. Change the
name as required, as well as making any changes to associated parameters for the variant.
Figure 8. Paste the copied variant back into the management dialog, renaming as required.
The pasted variant is an identical copy of the original, including any component fitting and component parameter variations.
By default, all components will be initially fitted for a newly-added assembly variant. This allows you to just concentrate on the
components you wish to exclude or change.
Part of a design may cater for extended or advanced functionality and the particular assembly variant you are defining may
need to exclude this functionality. In such a case, the checkbox associated with each component that is not to be fitted on the
variant board should be unchecked (Not Fitted). The example image in Figure 11 shows an assembly variant based on a
multi-channel mixer design. The standard (original) design has eight input channels. The defined variant has only four input
channels. Therefore the components associated with input channels 5-8 are specified to not be fitted for this assembly variant.
The part type/value for a selected component in the upper region of the dialog is specified using the Comment parameter entry
in the lower region. This value is taken from the components Comment property field. The original value for the base design is
shown, along with the value currently specified for each defined assembly variant. By default, the initial value for a components
Comment in an assembly variant will be the same as that
in the base design (Figure 12).
To specify the use of an alternate part in an assembly
variant, enable the checkbox associated with the
Figure 12. The initial part type/value for a variant will be that of the base
Comment entry for that variant and type the new value
design.
directly. Figure 13 illustrates an example of specifying
alternate parts to be used for low and high speed variations of a standard design.
Varying a component and/or its additional parameters for an assembly variant is not always an easy task. The change could be
trivial, requiring a different value for a capacitor and no other changes. It could also be near impossible having to remember a
16-digit manufacturer's part number for example. To facilitate quick and efficient variation of components for assembly variants,
the Assembly Variant Management dialog provides the ability to update the parameter fields based on a chosen component in a
library.
To illustrate the use of this feature, consider the circuit fragment and variant set-up of Figure 15. The eight LED components in
the base design are red in color. The defined assembly variant (Green LED Version) requires that these LEDs be green in
color. At this stage, the parameter information for the variant has not been varied. As you can see, there are quite a few
parameters that may require changing in addition to the Comment parameter which will be used to specify the required
component variation and, rather than resorting to typing in the values manually, extracting those values for the required
component straight from a library would be most beneficial.
Figure 15. Parameters for a defined assembly variant prior to being varied.
The varied component that you wish to use for the assembly variant is located using the standard Browse Libraries dialog.
Access this dialog from the right-click menu by choosing Update Values From Library.
Use the Browse Libraries dialog to browse through the currently available libraries for the parent project. The available libraries
consist of project libraries, installed libraries and libraries found along search paths defined in the Search Paths tab of the
Options for Project dialog (Project Project Options).
Clicking the ... button in the dialog will give access to the Available Libraries dialog, from where you can add/remove libraries
to/from the overall list of those available to the project.
The dialog also provides a search facility accessed by clicking the Find button allowing you to search for a specific
component across the Available Libraries or in any library along an external search path.
Once you have chosen the required component, click OK to access the Update Project Variants From Library dialog (Figure 16).
The left-hand region of this dialog lists all parameters currently defined for the library component, as well as its Comment and
Description fields. The right-hand region lists all assembly variants currently defined for the parent design project.
If a parameter exists for the library component but not for the original component in the base design, it will be unavailable for
selection (grayed-out), leaving only those parameters that do match.
Simply enable the parameters whose values you wish to vary by default all matching parameters
will be enabled and also the assembly variants to which the variation is to apply. Commands are
available on the right-click menu to quickly enable or disable all entries in both regions.
Upon clicking OK, the parameter value(s) from the library component will be used as the new
parameter variation value(s) for the selected assembly variant(s).
Figure 17 illustrates the resulting parameter variations for our Green LED variant example.
Figure 17. Parameter variation values extracted from library component and added to the target variant definition.
Editing techniques
Various features are provided in the Assembly Variant Management dialog to enable quick and efficient definition of assembly
variants for a design. The following sections take a closer look at these features.
Selection
Unless you are editing on a single cell basis, the fastest way to make changes is always to define a selection of items and push
a change to all items in that selection simultaneously.
Standard multi-select features are supported in both regions of the dialog Ctrl+click, Shift+click and click & drag. In addition,
commands are available from the right-click menu for a region, allowing you to:
Select Column all cells in the column containing the focused cell will become selected.
Select All all cells in all columns in the region will become selected.
Invert Selection all cells currently not included in a selection within the column(s) involved in that selection will become
selected. The cells in the original selection will be deselected.
Select Column and Select All are particularly useful when copying information for manipulation in an external spreadsheet
see External copy & paste.
As well as being able to select and edit all components in the Assembly Variant Management dialog, you can also open the
dialog directly from the schematic, with just the selected component(s) displayed ready for editing. For more information, see the
section Accessing variant information from the schematic.
Filtering by variation
Some designs may contain a large number of components. To allow you to concentrate only on components that vary between
the base design and defined assembly variants in effect hiding the clutter of non-varied components use the Only Show
Varied Components option, available from the right-click menu for the upper region of the Assembly Variant Management
dialog.
A varied component is deemed to be one whose:
Inclusion state differs in one or more variants from that of the base design (i.e. has been set to Not Fitted) and/or
has one or more parameters that differ in value across one or more variants to those of the base design.
Figure 18 shows an example of the use of this filtering, where the majority of base design components are hidden, leaving only
four components that have been changed for a defined assembly variant. Two have been specified as not to be fitted on the
variant board, while the other two have had some underlying parameters changed.
You can also apply similar filtering to the lower region of the dialog, using the Only Show Varied Values option from the
region's right-click menu. For the component(s) currently selected in the upper region of the dialog, only those associated
parameters whose values differ across one or more defined variants from those of the base design, will be displayed.
This lower-region filtering is powerful when used in conjunction with upper-region filtering. In the example of Figure 19, two
variants of a base design have been defined. Filtering has been applied to the upper region of the Assembly Variant
Management dialog (Only Show Varied Components option enabled), resulting in only two varied components being
displayed. The full parameter listing for these components selected simultaneously shows that the components differ in
some way parametrically between variant and base designs. As you can see, many of the parameters remain unchanged
between base and variants.
Figure 19. Lower-region unfiltered displaying all parameters for selected components.
Figure 20 shows the resulting lower region of the dialog after filtering is applied (Only Show Varied Values option enabled).
With the 'noise' of the unchanged parameters removed from display, you are free to concentrate only on those parameters that
do change between board variations.
Version (v2.3) May 19, 2008
10
Figure 20. Lower-region filtered displaying parameters for selected components with varied values only.
Figure 21. Unfiltered data in the upper region of the Assembly Variant Management dialog.
If you wanted to quickly jump to component entries starting with the letter L, you would press that letter on the keyboard. The
first designator in the list starting with L would be made active and the letter L would be highlighted to show that filtering of the
list is based upon it, as illustrated in Figure 22.
11
If there are multiple components whose designators start with the same letter and especially if the list of components is
particularly long, simply type further letters to target the specific entry you require.
To clear the current filtering, allowing you to enter a different starting letter, press Esc. Use the Backspace key to clear the
previously entered filter characters, in sequence.
You can use this feature to filter based on any column within the dialog. Use the Right Arrow and Left Arrow keys to switch
between columns, or click directly on a field within a column. As you switch, the current filter for the column you are leaving is
cleared.
Single variant editing
To toggle the state of a checkbox for a single component or single parameter entry
thereof, simply click directly on the corresponding cell. Similarly, to edit a value entry for a
single component parameter, simply click directly on the corresponding cell and enter the
value.
If you wish to set the same checkbox state for multiple components simultaneously, or
the same value for multiple parameters of a component, you must first select the
corresponding checkbox cells for those components, or value cells for those parameters.
When all cells have been selected, right-click and choose the Edit Selected command
from the pop-up menu that appears.
The focused cell distinguished by a dotted outline will become available for editing.
Simply click on the cells checkbox or enter the parameter value and click away from the
cell. The checkbox state/parameter value will be copied to each cell in the selection.
Similarly, when enabling parameters to be varied for a fitted component, commands are
available (Figure 25) to quickly set all selected parameters to Varied (checkbox checked) or Not Varied (checkbox
unchecked).
Version (v2.3) May 19, 2008
12
Whether defining component inclusion for a variant, or enabling a parameter value to be varied, it is the corresponding
checkbox field that must be edited. To change the status of multiple components to Not Fitted for example, you must
ensure that the checkbox field for each component is selected and not the field containing the text entry otherwise the
Edit Selected and Set Selected As commands will not function.
Multi-variant editing
Component inclusion and parameter variation states can be edited across
assembly variants. Simply ensure all checkbox fields for the required
components or component parameters are selected and then edit the state
using one of the Set Selected As commands available from the right-click
menu.
Cross-variant editing of parameter values is not supported.
Parametric editing of multiple components
When editing the definition of a particular assembly variant, you may often need to edit the same parameter values for multiple,
similar components. For example, you may need to change the Value, Supplier and Supplier Code for several capacitors
in a design. Rather than having to modify the parameters on an individual component basis, the Assembly Variant Management
dialog allows you to edit the parameters of multiple selected components simultaneously.
As you select components to edit in the upper region of the dialog, the parameters of those components will be listed in the
lower region. The designators of the components selected for editing are listed as part of the Parameter Variations header
enabling you to instantly check which components you are editing (Figure 27).
Figure 27. Editing the parameters of multiple similar components (eight 0.1uF capacitors).
For a mutual parameter where the value of that parameter is the same between components, a single entry for that parameter
will appear in the list, as shown in Figure 27. For a mutual parameter where the value of that parameter is different between
components, separate entries for that parameter will appear in the list, with component designator(s) displayed to indicate which
component a particular entry is associated to. Figure 28 illustrates this for two capacitors one with value 0.1uF and one with
value 10uF.
13
Figure 28. Identifying parent components for mutual parameters possessing different values.
There may be times where you edit components that possess dissimilar parameters one component may contain one or
more parameters that the other(s) do not. Such a parameter will present as a single entity in the lower region of the dialog,
giving the impression that it is shared by all selected components. When the variant information is saved, any modified value
for the parameter will only be saved with respect to a component that truly possesses it. Put another way, if a component
doesn't have that parameter, no value will be saved for it (and the parameter will not be created).
Internal copy & paste
Checkbox states or component parameter values can be edited using the copy and paste features available within the dialog:
To copy a single entry, either right-click on the source cell and choose the Copy command from the pop-up menu that
appears, or click and hold on the source cell and use the Ctrl+C keyboard shortcut
To copy multiple contiguous entries, select all required cells and either choose the Copy command from the right-click menu
or use the Ctrl+C shortcut.
To paste a single copied entry to a single destination cell, right-click on the destination cell and choose Paste from the popup menu, or click and hold on the destination cell and use the Ctrl+V keyboard shortcut.
To paste a single copied entry to multiple contiguous destination cells, select all required destination cells and either choose
the Paste command from the right-click menu or use the Ctrl+V shortcut.
To paste multiple contiguous copied entries to destination cells, right-click on the destination cell and choose Paste from the
pop-up menu, or click and hold on the destination cell and use the Ctrl+V keyboard shortcut. The number of destination cells
involved will be equal to the number of original copied entries (e.g. if you copy 2 contiguous checkbox state entries, 2
contiguous destination cells will be used to take the pasted information). Should you wish to copy the information into
multiple destination cells, ensure that the number of destination cells selected is a multiple of the number of entries originally
copied (e.g. if you copied 2 contiguous checkbox state cells, you can copy the information into 2, 4, 6 etc, selected
destination cells effectively making 1, 2, 3 etc pastes of the original copied information).
14
Figure 30 shows an example of variant parameter information copied from the lower region of the dialog:
Whereas the entire table contents may prove useful when editing variant information in an external spreadsheet, bear in mind
that it is only the variant definitions that should be pasted back into the Assembly Variant Management dialog. Therefore select
only the editable variant information, or part thereof, to copy back into the dialog.
When the information is pasted into the external spreadsheet application, all header information is stripped. Also, checkbox
status will be represented as follows:
TRUE = checked
FALSE = unchecked
These values will be translated back into the relevant checkbox entries upon pasting back into the Assembly Variant
Management dialog.
Version (v2.3) May 19, 2008
15
Figure 31. Saving data from the Assembly Variant Management dialog.
Basic report
A basic-level report can be generated for either the upper or lower regions of the dialog. The report for the top region allows you
to quickly assess which project components are fitted or not for a defined assembly variant. The report for the lower region
provides the parameter variation information with respect to the currently selected component(s) in the upper region.
Figure 32. Basic-level report generated from the lower region of the Assembly Variant
Management dialog.
Simply right-click within a region and use the Report command from the menu that appears. The Report Preview dialog will
open, with the generated report loaded ready. Use the Report Preview dialog to peruse, print and export the report in various
formats.
Only information that is currently displayed in the corresponding region of the dialog will be presented in the report.
16
Detailed report
A detailed report is a HTML-formatted document that incorporates information from both regions of the Assembly Variant
Management dialog. Generate a report of this type using the Detailed Report command, available from the menu associated to
the dialog's Menu button.
The Variant Report dialog will appear (Figure 34). The original base design and all defined assembly variants will be listed in
this dialog, allowing you to configure exactly what you want reported.
By default, all defined assembly variants, as well as the original base design, will be enabled for inclusion into the report.
The exact information featured in the report will depend on the state of the Report Only Varied Components option:
Full Non-Varied Information (option disabled) all components are listed, showing their inclusion state in each enabled
variant. For each component, all parameters and their values are listed.
Full Varied Information (option enabled) - only those components that vary in some way between enabled variants are
listed, showing their inclusion state in each variant. For each component, only those parameters that vary in some way
between variants are listed, along with their values.
The report will be created and opened as the active document within the main design window. Figure 35 shows an example of a
detailed report containing only information for components and parameters that vary somehow between the variants and the
original base design (i.e. Report Only Varied Components option has been enabled).
17
Figure 35. Generated detailed report showing only variations between defined variants and the base design.
18
Figure 36. Displaying components in context with the selection made on the schematic sheet(s).
Cross probing
You can quickly assess where in the base design a particular component resides, using the cross probe feature. Simply select a
component entry in the Assembly Variant Management dialog, then right-click and choose the Cross Probe command from the
menu that appears. Alternatively, double-click directly on a component entry.
The relevant source document will be made active and the component will appear highlighted, in accordance with the
highlighting methods defined on the System Navigation page of the Preferences dialog.
19
When accessing the Assembly Variant Management dialog for a project for the first time, the project will automatically be
compiled. The cross probing feature is only available when the source schematic document for the target component is open
(or open and hidden) and the project has been compiled. If the source schematic is currently closed or has been closed and
reopened, a dialog will appear upon trying to cross probe alerting you to this fact and advising you to recompile the project
before proceeding.
20
Figure 39. Specifying an assembly variant as the source for document generation.
Assembly variants can be used as the source when generating the following documentation types:
Assembly Drawings
Bill of Materials
Component Cross
Reference Report
Schematic Prints
Simple BOM.
21
It is important to remember that although such documentation types can be generated directly - using commands accessible
from within the respective document editor (from the File and Reports menus) - these commands relate to the full base
design and not to any variant of that design. The exception to this is documentation generated involving the Report Manager
dialog (Bill of Materials, Component Cross Reference, etc), whereby you can select which variant to use directly within the
dialog (see Direct report generation).
For further information on Output Job Configuration files, including output definitions and generation, refer to the OutputJob
Editor Reference.
Schematic prints
As mentioned in the previous section, an Output Job file can be used to generate schematic prints, the source of which can be
an assembly variant. In reality, what this means is that the full design appearing on the source schematic document(s) is
printed, with the ability to determine how components that are not fitted for that variant are drawn.
In order to access and nominate a source assembly variant for use in generating the prints, you must set the Data Source field
for the corresponding Schematic Prints output generator to [Project Physical Documents]. Use of the project's physical
structure means that schematics will be expanded from logical sheets to physical sheets obtaining separate prints for each
channel in a multi-channel design.
Figure 40. Enabling use of variants by setting the data source to use the physical structure.
Once you have configured the output generator to use the required assembly variant as its source, you will need to specify how
you want the non-fitted components handled 'graphically' on the printed sheets. Options for doing this are available in the
Schematic Drawing Options region of the Variant Options dialog (Figure 41). Access to this dialog is made through the
Assembly Variant Management dialog. Simply choose the Variant Drawing Style command from the menu associated to the
dialog's Menu button.
22
The components that are not fitted for the source variant as determined in the
Assembly Variant Management dialog are still drawn on the generated printouts,
but drawn as though they were masked. The Variant Options dialog simply provides
you with the ability to overlay more 'obvious' graphics or text so that you can better
distinguish those components.
Figure 42 illustrates the appearance of four LED components that are not fitted for a
particular assembly variant of a design. In this case, no additional overlay graphics
or text have been used.
Use the available schematic drawing options in the dialog to define the required
drawing overlay as required. The available options are:
You could also combine one of the graphic options with text.
As you make a choice, an example of the result will appear in the associated preview window.
Figure 43 illustrates different overlays used for the four LEDs of Figure 42.
23
Figure 44. Using a special string to display variant naming on a printed schematic document.
Figure 45. Specifying PCB drawing options in the Variant Options dialog.
By default, components that are not fitted for a particular assembly variant are simply
not drawn on the printout. Figure 46 illustrates this for the four LED components shown
previously on the schematic side in Figure 42.
To add these components onto the print drawn in draft mode (Figure 47) ensure
that the Display Not Fitted Components in Draft Mode option is enabled.
Use the available PCB drawing options in the dialog to overlay more 'obvious' graphics
or text so that you can better distinguish those components. The available options are:
A strike-through designator
24
Figure 48. Using a special string to display variant naming on a printed schematic document.
From within the respective Report Manager dialog, specify the variant to be used as the source from the Change Variant submenu. This menu can be accessed from the dialog's right-click menu, or by clicking on the Menu button.
The dialog name will change to reflect the assembly variant chosen. The data in the main grid will be updated with:
Parameter values updated with those from the source variant, where they vary from the base design.
25
For more information on creating a Bill of Materials, refer to the Generating a Custom Bill of Materials tutorial.
Figure 51. Specifying use of an assembly variant as part of the Smart PDF setup options.
As with schematic prints and assembly drawings generated from an Output Job file, you have the ability to control the graphical
representation of non-fitted components on the schematic and PCB prints within the generated PDF. For more information on
the options available and where to define them, refer back to the sections on Schematic prints and PCB assembly drawings,
respectively.
26
Figure 52. Schematic sheet within a generated PDF with graphical overlay for non-fitted components.
Figure 53. PCB composite print within a generated PDF with graphical overlay for non-fitted components.
Likewise, the use of the =VariantName special string is also supported by the schematic prints in the generated PDF file. For
more information, refer back to the section Labeling the print with the variant name.
For more information on generating documentation using the Smart PDF feature, refer to the document Smart PDF
Generation.
27
Component inclusion states will remain unchanged. A part defined as Not Fitted before an update will remain as Not
Fitted after an update.
Component parameters that are defined to be Not Varied for an assembly variant will acquire any new value arising from
the update. Put another way, if a parameter is not specifically varied in its value, an update of its value in the base design
will flow through to the assembly variant as well.
Component parameters that have been specifically varied for an assembly variant will remain untouched. The specified
value for such a parameter before the update will remain at that value after the update.
For information on using database libraries, refer to the Using Components Directly from your Company Database
application note.
For information on Altium Designer's various update tools, refer to the Keeping Components Up-To-Date application note.
28
Revision History
Date
Version No.
Revision
21-Mar-2005
1.0
Initial Release
01-Jun-2005
1.1
20-Sep-2005
1.2
Lower image fixed on page 8 to correctly reflect status of cells copied to external spreadsheet.
16-Oct-2006
2.0
17-Mar-2008
2.1
29-Apr-2008
2.2
19-May-2008
2.3
16-Mar-2011
Updated template.
29