Skip to main content
tscircuit Essentials

Split a Component Across Schematic Sheets

Overview

Large chips are often easier to read when their power pins and signal pins are shown on separate schematic sheets. Declare the <chip /> once, then add a <schematicbox /> to each sheet that needs to show part of it.

Each box uses chipRef to select the source chip and pinLabels to choose the pins shown in that section. All sections still represent the same physical component.

Complete Example

This example shows U1 as a two-pin power section on the first sheet and an eight-pin I/O section on the second sheet.

const chipSelector = ".U1"
const powerSheetName = "U1 Power"
const ioSheetName = "U1 I/O"
const chipSectionWidth = 2.245
const chipSectionHeight = 1

const allPinLabels = {
pin1: "VCC",
pin2: "GND",
pin3: "IO0",
pin4: "IO1",
pin5: "IO2",
pin6: "IO3",
pin7: "IO4",
pin8: "IO5",
pin9: "IO6",
pin10: "IO7",
}

const powerPinLabels = {
pin1: "VCC",
pin2: "GND",
}

const ioPinLabels = {
pin1: "IO0",
pin2: "IO1",
pin3: "IO2",
pin4: "IO3",
pin5: "IO4",
pin6: "IO5",
pin7: "IO6",
pin8: "IO7",
}

export default () => (
<board routingDisabled>
<chip name="U1" pinLabels={allPinLabels} />

<schematicsheet
name={powerSheetName}
displayName={powerSheetName}
sheetIndex={0}
>
<schematicbox
name="U1A"
chipRef={chipSelector}
width={chipSectionWidth}
height={chipSectionHeight}
pinLabels={powerPinLabels}
schPinArrangement={{
leftSide: ["pin1", "pin2"],
rightSide: [],
}}
/>
<resistor
name="R1"
resistance="1k"
footprint="0402"
connections={{ pin1: "U1.VCC" }}
/>
</schematicsheet>

<schematicsheet
name={ioSheetName}
displayName={ioSheetName}
sheetIndex={1}
>
<schematicbox
name="U1B"
chipRef={chipSelector}
width={chipSectionWidth}
height={chipSectionHeight}
pinLabels={ioPinLabels}
schPinArrangement={{
leftSide: ["pin1", "pin2", "pin3", "pin4"],
rightSide: ["pin5", "pin6", "pin7", "pin8"],
}}
/>
<resistor
name="R2"
resistance="1k"
footprint="0402"
connections={{ pin1: "U1.IO0" }}
/>
<resistor
name="R3"
resistance="1k"
footprint="0402"
connections={{ pin1: "U1.IO1" }}
/>
</schematicsheet>
</board>
)
Schematic Circuit Preview

Connect to a Split Section

Connections still target the original component name and pin label:

<resistor
name="R2"
resistance="1k"
footprint="0402"
connections={{ pin1: "U1.IO0" }}
/>

When the resistor and matching schematic box are on the same sheet, the schematic connection is drawn to that box's IO0 port.