Cross-Board Rules

The container holds ERC checks and DRC rule types that apply to cross-board nets. ERC checks run on the MBS document; DRC rules run on each sub-board's DRC pass.

ERC checks

Cross-board ERC runs in two places:

  • MBSCH ERC (most checks): run Inspect → Electrical Rules Checker (or Ctrl/Cmd+Shift+I) with the MBS open.
  • Sub-project ERC (one check): a single cross-board check fires during a normal sub-project schematic ERC pass.

Severity for each check is configurable in Schematic Setup → Violation Severity on a sub-project (the MBSCH's setup dialog is titled "Multi-Board Schematic Setup" and hides the Violation Severity panel). The severities apply project-wide.

CheckRuns inDefaultTriggers
Module pin's target pad is missingMBSCHWarningA module pin points at a connector pad (component ref + pin number) that no longer exists on the sub-project PCB. Run Refresh from sub-projects to rescan.
Module pin not wired to a cross-board netMBSCHErrorA module pin has no wire attached or sits on no named net. Wire it to a pin on a different block.
Net touches only one module blockMBSCHWarningAll pins on the net belong to the same block, so it's not actually cross-board. Wire to another block or remove the wiring.
Power pin not drivenMBSCHErrorA power-input pin on a cross-board net has no power-output source. Catches GND ↔ 5V shorts and missing supply connections.
Pin-type conflictMBSCHError or WarningTwo pins of incompatible electrical types are connected on a cross-board net (e.g. output ↔ output). Uses the standard ERC pin-type matrix.
Label shadows a cross-board netMBSCHWarningA sub-project has a local PCB net with the same name as a cross-board net it doesn't participate in. The next sync would silently merge the two; rename one side first.
Connector pin unconnectedSub-project SCHWarningA connector pin participates in a cross-board net per the container's topology, but is dangling on this board's local schematic. Wire it up locally.

DRC rules

The container holds five DRC rule types beyond standard sub-board DRC. Each rule fires during sub-project DRC, not container DRC. All five run together in the same DRC pass.

Set them from the container project's setup dialog. The Cross-Board Rules panel is a five-tab notebook with one grid per rule type. To validate cross-board rules from the agent without opening every sub-project, use pcb_cross_board action="validate".

RuleWhat it checksViolation code
Min Power PinsConnector pin count for a named net is below the minimum on a sub-boardDRCE_CROSS_BOARD_POWER_PINS
Max LengthTotal trace length of a cross-board net across all sub-boards exceeds the limitDRCE_CROSS_BOARD_LENGTH
Differential PairsPair members are out of sync (one isn't cross-board, or they touch different sub-projects)DRCE_CROSS_BOARD_DIFF_PAIR
CurrentExpected current exceeds pin count × per-pin ratingDRCE_CROSS_BOARD_CURRENT
Voltage DropEstimated DC drop across the cross-board net exceeds the maximumDRCE_CROSS_BOARD_VOLTAGE_DROP

Configuring DRC rules

Each rule type has its own configurable fields.

Cross Board Rules

Min Power Pins

Counts unique connector pins on a sub-board that carry the named cross-board net. Fires when the count is below the minimum. Use this to enforce minimum pin redundancy on power and ground nets.

FieldTypeNotes
net_namestringCross-board net (e.g. +5V)
min_pinsint ≥ 1Minimum number of pins

Max Length

Sums the total trace length of a cross-board net across every sub-board. The test lazy-loads each sibling sub-board's PCB to read its traces, so the rule counts contributions from every sub-project even if only one editor is open.

FieldTypeNotes
net_namestringCross-board net
max_lengthnm in proto, mm in dialog1 mm = 1e6 nm

Differential Pairs

Checks two invariants per declared pair:

  1. Both pair members are cross-board nets. If the positive is cross-board but the negative is local-only on a sub-board, the pair is broken.
  2. Both members touch the same set of sub-projects. If one ends at board A while the other continues to board B, the differential signal converts to single-ended at a connector.
FieldTypeNotes
pstringPositive net name
nstringNegative net name

Current

Multiplies the per-pin current rating by the number of connector pins on a sub-board to get safe carry capacity. Fires when expected_amps exceeds capacity.

FieldTypeNotes
net_namestringCross-board net
expected_ampsdouble (A)DC current draw on the net
pin_rating_ampsdouble (A)Safe carry per connector pin

Zero values skip the check silently.

Voltage Drop

Estimates DC voltage drop across a cross-board net with a lumped-resistance model:

R_trace   = (length_mm / width_mm) × sheet_R_mΩ_per_sq      (per sub-board, summed)
R_contact = pin_R_mΩ / number_of_parallel_pins              (per connector crossing)
drop_mV   = (R_trace + R_contact) × expected_amps

Fires when drop_mV exceeds max_drop_mv.

FieldTypeDefault if 0
net_namestringrequired
expected_ampsdouble (A)required
max_drop_mvdouble (mV)required
trace_width_umdouble (µm)250
trace_sheet_r_milliohm_per_sqdouble (mΩ/sq)0.5
contact_r_per_pin_milliohmdouble (mΩ)20

The defaults model 1 oz copper with a standard pin header. Override for non-standard stackups.

From the agent and Python