If you want to create a PCB design which repeatedly uses the same circuit, you can create a repeating sheet.

REPEAT(name, firstindex, lastindex)

For example, if you want to repeat the same circuit for 16 channels:


The firstindex cannot be zero or you will get the error “Port – not matched to Sheet Entry”, so it’s not possible to number channels 0-15 for example.

Ports which must have unique connections for each copy must have the sheet entry symbol within the sheet symbol renamed to include the REPEAT keyword, but the port symbol on the schematic sheet should not include the REPEAT keyword.

If the REPEAT keyword is not used on a sheet entry, all copies of that net will be connected together. In the example, the power ports of each copy of the channel are all connected together.

Repeat Heirarchical Schematic Sheet in Altium Designer
Repeat Heirarchical Schematic Sheet in Altium Designer

The port symbol inside the sheet does not need to be given the REPEAT keyword.

Altium port on REPEAT sheet
Output port on a repeated sheet does not need REPEAT().

To connect from a repeated sheet to a non-repeated sheet, it’s necessary to split the repeat port out into a bus. Altium recommends that you do it the way I’ve shown, by pulling out a single wire from the repeat entry and assigning it the netlabel inside the repeat, then changing to a bus with standard bus net label. The individual lines of the bus must pick up the ID of the copy of the sheet, so it’s not permitted to use an index of zero in the ID of a bus net.

Net Identifier Scope

You must configure your project to use repeat sheets properly. Right-click on your project file (PrhPcb) in the Projects pane and choose Project Options.

The Net Identifer Scope is on the Options tab.

Personally I prefer to use Strict Heirarchical whenever it’s convenient because it makes it clear on which sheets nets which are used on multiple sheets are used on, but very complex designs with many nets crossing sheets make it difficult to maintain. My intention is to try to keep nets local to a sheet as much as possible.

I will use Global only in a design without ports because there is no point in using ports unless you use them consistently. Obviously, you must use ports with a repeat sheet, so if you just want to use ports for the repeated nets but not for anything else, you can use Global. Global is the default for simple projects.

Use Flat if there are lots of inter-sheet connections, but you don’t want to wire them all up. I find this a time saver for very complex multi-sheet designs when Strict may be too time consuming to maintain.

Net Identifier Scope in Altium Designer
Assign net identifier scope in Altium Designer Project. 

Repeated Reference Designator Format

Altium Multi-channel Designator Format
Altium Multi-channel Designator Format

Since you now have multiple copies of a sheet you need a way to distinguish the copies of each component on the PCB and BOM. This is configured on the Multi-Channel tab.

My preference is to keep the designators as short as possible. A dash “-” works well enough, or alternatively a colon “:” or decimal “.”. For example, “$Component-$ChannelIndex” will generate designators for the PCB and BOM such as R63-2 for channel 2.

You have to be careful if you are using a built-in font that the character is in the ASCII set or it won’t appear on the PCB.

As nice as it might seem, it’s a really bad idea not to have any character separating the sheet designator from the index number. For example, R12 on channel 3 would be R123, but you may have R123 on another sheet.

And don’t forget to perform ERC to find errors.

Repeating Heirarchical Sheets in Altium

Leave a Reply