Parent page: More about Schematics
Refactoring, in the traditional sense, is the act of restructuring an existing design (or body of code in programming land) without changing the functionality of that design (or code). In terms of PCB design, there are various situations in which some form of refactoring would provide a beneficial and timely solution:
Altium Designer provides a number of features that collectively form its Design Refactoring capabilities - giving you maximum flexibility to restructure your designs according to requirements.
Certain refactoring commands can be accessed from the Edit » Refactor menu, but far better access is gained using the Schematic Editor's right-click context menu. The commands available from the Refactor sub-menu will change in context with the object under the cursor - applicable to a part, sheet symbol, or device sheet symbol. This method of access gives you the commands you need, where and when you need them - and only commands that are applicable to the specific design object at hand.
This feature is ideal where an existing part has become obsolete and needs to be replaced by a functionally-equivalent sub-circuit, defined on a separate sheet.
Right-clicking on a part and choosing the Refactor » Convert Part To Sheet Symbol command from the context menu, converts the part symbol into a sheet symbol. Connectivity is retained, with the sheet entries named as per the original pin naming, and I/O Type set to reflect the original pin electrical type.
The sheet symbol's Designator is initially set to the original part's designator, and its Filename initially set to the part's comment text.
If the required child sheet exists, simply change the sheet symbol's Filename to point to that sheet. If not, a sub-sheet can quickly be created by right-clicking on the sheet symbol and choosing the Sheet Symbol Actions » Create Sheet From Sheet Symbol command. In this latter case, ports corresponding to the symbol's sheet entries will be placed on the new sub-sheet, ready for the replacement sub-circuitry to be defined and hooked up.
An alternative, and perhaps faster method to achieve a similar end result, is to right-click on the required part and choose the Part Actions » Push Part To Sheet command. The following sequence of steps are essentially performed:
You can then simply delete the part and replace it with functionally-equivalent circuitry, as required.
This feature is ideal for when an existing standalone sub-design, such as a power supply or a satellite board, is to be made into a sub-circuit, to be used within a larger, single board design - perhaps to minimize manufacturing costs. This is the reverse of the previous section, which was replacing a component with a lower-level sub-circuit. Rather this is the process of plugging a sub-circuit into the higher-level design, making it available for connection to a point above in the hierarchy.
Right-clicking on a part and choosing the Refactor » Convert Part To Ports command from the context menu, converts the part symbol into a set of ports. Connectivity is retained, with the ports named as per the original pin naming, and I/O Type set to reflect the original pin electrical type.
The sub-circuit's insertion into the hierarchy is then completed by adding a sheet symbol on the relevant higher-level parent sheet. To do this:
The sheet symbol references the underlying sub-sheet (through its Filename property) and has sheet entries corresponding to the ports on the child sheet.
At some stage, the concept of designing for reuse has to increase in its abstraction. If we simply stopped at the component level, then each design that featured a similar piece of functionality - such as a USB interface, or voltage regulator - would be ‘reinventing the wheel’ as it were. And that’s where Device Sheets come into play - schematic sheets designed to offer specific circuit functionality. Their use removes the risks associated with the traditional copy-and-paste approach. And they eliminate the repetition of design effort while adding to the level of design content that can be reused in future designs.
As part of its Refactoring tool suite, the Schematic Editor provides the ability to quickly convert an existing standard schematic sheet into a device sheet, for reuse in other designs.
To convert an existing schematic sheet into a device sheet:
Device sheets enable functional sub-circuits to be captured and reused across designs. However, there may be a need to modify an existing sub-circuit for a particular design. Rather than modifying the device sheet itself, the Schematic Editor provides the ability to take a copy of the device sheet, making its circuitry available on a standard schematic sheet. This allows you to modify the local copy in-line with requirements for your current design, and safe in the knowledge that the original device sheet remains untouched.
To 'convert' an existing device sheet into a schematic sheet:
As a design evolves, the content of the source schematic sheets that comprise that design may need to be shifted around - a specific portion of circuitry may 'read' better on its own sheet, or perhaps a sheet is becoming overloaded (and unreadable!) and could benefit from moving some circuitry to an additional/different sheet.
Another refactoring feature is the ability to select one or more objects on a sheet, and move that selection to a different sheet. To do this: