@tscircuit/fanout-solver 0.0.35 → 0.0.37
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +14 -0
- package/lib/boundary-exit.ts +52 -0
- package/lib/build-output.ts +32 -10
- package/lib/fanout-exit-position.ts +78 -0
- package/lib/fanout-solver.ts +267 -38
- package/lib/index.ts +16 -13
- package/lib/prepare-buses.ts +261 -36
- package/lib/route-bus.ts +543 -59
- package/lib/route-single-layer-adaptive-exits.ts +2 -2
- package/lib/route-single-layer-push-shove.ts +2 -1
- package/lib/route-via-minimal-winding.ts +898 -0
- package/lib/types.ts +63 -3
- package/lib/validate-fanout-solution.ts +63 -11
- package/package.json +1 -1
|
@@ -3,13 +3,13 @@ import type {
|
|
|
3
3
|
SimpleRouteJson,
|
|
4
4
|
SimplifiedPcbTrace,
|
|
5
5
|
} from "@tscircuit/capacity-autorouter"
|
|
6
|
+
import { createFanoutOutputIds } from "./fanout-output-ids"
|
|
6
7
|
import {
|
|
7
8
|
distance,
|
|
8
9
|
distancePointToObstacle,
|
|
9
10
|
distanceSegmentToObstacle,
|
|
10
11
|
distanceSegmentToSegment,
|
|
11
12
|
} from "./geometry"
|
|
12
|
-
import { createFanoutOutputIds } from "./fanout-output-ids"
|
|
13
13
|
import { type AvailableBoundaryRegion, getRegionAnchor } from "./prepare-buses"
|
|
14
14
|
import type {
|
|
15
15
|
FanoutDirection,
|
|
@@ -729,7 +729,6 @@ function routeDirectionGroup(params: {
|
|
|
729
729
|
if (achievedFlow !== terminals.length) {
|
|
730
730
|
if (FANOUT_FLOW_DEBUG_ENABLED) {
|
|
731
731
|
const unmatchedConnections = terminals.flatMap((terminal, index) => {
|
|
732
|
-
const terminalNode = terminalStart + index
|
|
733
732
|
return terminalWasMatched(index)
|
|
734
733
|
? []
|
|
735
734
|
: [terminal.item.connection.connection.name]
|
|
@@ -832,6 +831,7 @@ function buildPlan(route: FlowRoute, traceWidth: number): FanoutRoutePlan {
|
|
|
832
831
|
targetLayer: "top",
|
|
833
832
|
termination: item.bus.termination,
|
|
834
833
|
direction: item.bus.direction,
|
|
834
|
+
...(item.bus.exitEdge ? { exitEdge: item.bus.exitEdge } : {}),
|
|
835
835
|
exitPoint: points.at(-1)!,
|
|
836
836
|
trace: {
|
|
837
837
|
type: "pcb_trace",
|
|
@@ -3,12 +3,12 @@ import type {
|
|
|
3
3
|
SimpleRouteJson,
|
|
4
4
|
SimplifiedPcbTrace,
|
|
5
5
|
} from "@tscircuit/capacity-autorouter"
|
|
6
|
+
import { createFanoutOutputIds } from "./fanout-output-ids"
|
|
6
7
|
import {
|
|
7
8
|
distance,
|
|
8
9
|
distanceSegmentToObstacle,
|
|
9
10
|
distanceSegmentToSegment,
|
|
10
11
|
} from "./geometry"
|
|
11
|
-
import { createFanoutOutputIds } from "./fanout-output-ids"
|
|
12
12
|
import type {
|
|
13
13
|
FanoutBorderDistribution,
|
|
14
14
|
FanoutCorner,
|
|
@@ -768,6 +768,7 @@ function buildPlan(path: RoutedPath): FanoutRoutePlan {
|
|
|
768
768
|
targetLayer: "top",
|
|
769
769
|
termination: item.bus.termination,
|
|
770
770
|
direction: item.direction,
|
|
771
|
+
...(item.bus.exitEdge ? { exitEdge: item.bus.exitEdge } : {}),
|
|
771
772
|
exitPoint: points.at(-1)!,
|
|
772
773
|
trace: {
|
|
773
774
|
type: "pcb_trace",
|