Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 14 additions & 8 deletions docs/elements/breakout.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -6,19 +6,21 @@ description: >-

## Overview

A `<breakout />` is similar to a [`<group />`](./group.mdx) but is meant for situations where you
want to guide the autorouter on where connections should exit the group. Inside
a breakout you can place [`<breakoutpoint />`](./breakoutpoint.mdx) elements to
define explicit exit locations, or let tscircuit generate breakout points for
connections that leave the breakout.
A `<breakout />` is a transparent routing container similar to a
[`<group />`](./group.mdx). It does not create a subcircuit, selector scope, or
private net scope. Instead, its routing properties guide the autorouter on where
connections should exit the region. Inside a breakout you can place
[`<breakoutpoint />`](./breakoutpoint.mdx) elements to define explicit exit
locations, or let tscircuit generate breakout points for connections that leave
the breakout.

import CircuitPreview from "@site/src/components/CircuitPreview"

This 100-pin BGA keeps two 8-bit buses on contiguous outer columns and assigns
each bus an explicit fanout direction. Eight center-region balls connect to
GND and VCC pours on separate inner layers.

<CircuitPreview defaultView="pcb" code={`
<CircuitPreview verticalStack defaultView="pcb" code={`
const buses = [
{
name: "DATA",
Expand Down Expand Up @@ -172,14 +174,18 @@ The breakout uses the fanout autorouter by default, so its fanout controls can
be set directly on `<breakout />`. `busFanoutDirections` sends each named bus
toward a specific side.

Because `<breakout />` is transparent, its traces use the same GND and VCC nets
as the board-level copper pours. The pours do not need to be children of the
breakout, and no net exposure or separate `<autoroutingphase />` is required.

`fanoutRoutingLayers={["top"]}` reserves the top layer for signal escape. The
GND and VCC traces have only one component endpoint, so `fanoutPourNetMap`
drops them to `inner1` and `inner2`. Those plane layers do not need to appear in
`fanoutRoutingLayers`.

When `fanoutPourNetMap` is omitted, tscircuit infers the plane destinations
from matching `<copperpour />` elements. An explicit map is useful when a net
has pours on multiple layers:
from matching `<copperpour />` elements on the enclosing board. An explicit map
is useful when a net has pours on multiple layers:

```tsx
<breakout
Expand Down
Loading