@tscircuit/schematic-trace-solver 0.0.144 → 0.0.145
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/dist/index.d.ts +2 -0
- package/dist/index.js +62 -49
- package/lib/solvers/MspConnectionPairSolver/MspConnectionPairSolver.ts +14 -5
- package/lib/solvers/MspConnectionPairSolver/isLabeledPeripheralConnection.ts +46 -10
- package/lib/solvers/NetLabelPlacementSolver/NetLabelPlacementSolver.ts +7 -0
- package/package.json +1 -1
- package/tests/repros/__snapshots__/repro-tida010076-page02.snap.svg +10 -30
- package/tests/repros/assets/repro-tida010076-page02.input.json +2 -0
- package/tests/repros/repro-tida010076-page02.test.ts +31 -0
- package/tests/solvers/MspConnectionPairSolver/msp-connection-pair-solver-direct-connection-distance.test.ts +80 -0
package/dist/index.d.ts
CHANGED
|
@@ -146,6 +146,8 @@ type MspConnectionPair = {
|
|
|
146
146
|
dcConnNetId: string;
|
|
147
147
|
globalConnNetId: string;
|
|
148
148
|
userNetId?: string;
|
|
149
|
+
/** The trace replaces fallback labels that could not fit between its pins. */
|
|
150
|
+
suppressNetLabel?: boolean;
|
|
149
151
|
pins: [InputPin & {
|
|
150
152
|
chipId: string;
|
|
151
153
|
}, InputPin & {
|
package/dist/index.js
CHANGED
|
@@ -420,8 +420,48 @@ function getOrthogonalMinimumSpanningTree(pins, opts = {}) {
|
|
|
420
420
|
return edges;
|
|
421
421
|
}
|
|
422
422
|
|
|
423
|
+
// lib/solvers/NetLabelPlacementSolver/SingleNetLabelPlacementSolver/geometry.ts
|
|
424
|
+
var NET_LABEL_HORIZONTAL_WIDTH = 0.45;
|
|
425
|
+
var NET_LABEL_HORIZONTAL_HEIGHT = 0.2;
|
|
426
|
+
function getDimsForOrientation(params) {
|
|
427
|
+
const { orientation, netLabelWidth, netLabelHeight } = params;
|
|
428
|
+
const horizWidth = typeof netLabelWidth === "number" ? netLabelWidth : NET_LABEL_HORIZONTAL_WIDTH;
|
|
429
|
+
const horizHeight = typeof netLabelHeight === "number" ? netLabelHeight : NET_LABEL_HORIZONTAL_HEIGHT;
|
|
430
|
+
if (orientation === "y+" || orientation === "y-") {
|
|
431
|
+
return {
|
|
432
|
+
// Rotated: horizontal length = netLabelHeight, vertical length = netLabelWidth
|
|
433
|
+
width: horizHeight,
|
|
434
|
+
height: horizWidth
|
|
435
|
+
};
|
|
436
|
+
}
|
|
437
|
+
return {
|
|
438
|
+
width: horizWidth,
|
|
439
|
+
height: horizHeight
|
|
440
|
+
};
|
|
441
|
+
}
|
|
442
|
+
function getCenterFromAnchor(anchor, orientation, width, height) {
|
|
443
|
+
switch (orientation) {
|
|
444
|
+
case "x+":
|
|
445
|
+
return { x: anchor.x + width / 2, y: anchor.y };
|
|
446
|
+
case "x-":
|
|
447
|
+
return { x: anchor.x - width / 2, y: anchor.y };
|
|
448
|
+
case "y+":
|
|
449
|
+
return { x: anchor.x, y: anchor.y + height / 2 };
|
|
450
|
+
case "y-":
|
|
451
|
+
return { x: anchor.x, y: anchor.y - height / 2 };
|
|
452
|
+
}
|
|
453
|
+
}
|
|
454
|
+
function getRectBounds(center, w, h) {
|
|
455
|
+
return {
|
|
456
|
+
minX: center.x - w / 2,
|
|
457
|
+
minY: center.y - h / 2,
|
|
458
|
+
maxX: center.x + w / 2,
|
|
459
|
+
maxY: center.y + h / 2
|
|
460
|
+
};
|
|
461
|
+
}
|
|
462
|
+
|
|
423
463
|
// lib/solvers/MspConnectionPairSolver/isLabeledPeripheralConnection.ts
|
|
424
|
-
var
|
|
464
|
+
var getLabeledConnectionRouteReason = ({
|
|
425
465
|
inputProblem,
|
|
426
466
|
chipMap,
|
|
427
467
|
pins
|
|
@@ -430,12 +470,10 @@ var isLabeledPeripheralConnection = ({
|
|
|
430
470
|
const directConnection = inputProblem.directConnections.find(
|
|
431
471
|
(connection) => connection.pinIds.includes(firstPin.pinId) && connection.pinIds.includes(secondPin.pinId)
|
|
432
472
|
);
|
|
433
|
-
if (directConnection?.netLabelWidth === void 0) return
|
|
473
|
+
if (directConnection?.netLabelWidth === void 0) return null;
|
|
434
474
|
const firstChip = chipMap[firstPin.chipId];
|
|
435
475
|
const secondChip = chipMap[secondPin.chipId];
|
|
436
|
-
if (!firstChip || !secondChip) return
|
|
437
|
-
const hasSinglePinPeripheral = firstChip.pins.length === 1 || secondChip.pins.length === 1;
|
|
438
|
-
if (!hasSinglePinPeripheral) return false;
|
|
476
|
+
if (!firstChip || !secondChip) return null;
|
|
439
477
|
let firstFacingDirection = firstPin._facingDirection;
|
|
440
478
|
if (!firstFacingDirection) {
|
|
441
479
|
firstFacingDirection = getPinDirection(firstPin, firstChip);
|
|
@@ -444,8 +482,20 @@ var isLabeledPeripheralConnection = ({
|
|
|
444
482
|
if (!secondFacingDirection) {
|
|
445
483
|
secondFacingDirection = getPinDirection(secondPin, secondChip);
|
|
446
484
|
}
|
|
447
|
-
|
|
448
|
-
|
|
485
|
+
const hasOpposingHorizontalDirections = firstFacingDirection === "x-" && secondFacingDirection === "x+" || firstFacingDirection === "x+" && secondFacingDirection === "x-";
|
|
486
|
+
if (!hasOpposingHorizontalDirections) return null;
|
|
487
|
+
const hasSinglePinPeripheral = firstChip.pins.length === 1 || secondChip.pins.length === 1;
|
|
488
|
+
if (hasSinglePinPeripheral) return "single-pin-peripheral";
|
|
489
|
+
const sharedSectionId = firstChip.sectionId && firstChip.sectionId === secondChip.sectionId ? firstChip.sectionId : null;
|
|
490
|
+
if (!sharedSectionId) return null;
|
|
491
|
+
const firstIsLeft = firstPin.x <= secondPin.x;
|
|
492
|
+
const directionsPointTowardEachOther = firstIsLeft ? firstFacingDirection === "x+" && secondFacingDirection === "x-" : firstFacingDirection === "x-" && secondFacingDirection === "x+";
|
|
493
|
+
const labelsOverlapAlongX = Math.abs(firstPin.x - secondPin.x) < directConnection.netLabelWidth * 2;
|
|
494
|
+
const labelsOverlapAlongY = Math.abs(firstPin.y - secondPin.y) < NET_LABEL_HORIZONTAL_HEIGHT;
|
|
495
|
+
const fallbackLabelsOverlap = directionsPointTowardEachOther && labelsOverlapAlongX && labelsOverlapAlongY;
|
|
496
|
+
return fallbackLabelsOverlap ? "overlapping-fallback-labels" : null;
|
|
497
|
+
};
|
|
498
|
+
var isLabeledPeripheralConnection = (params) => getLabeledConnectionRouteReason(params) !== null;
|
|
449
499
|
|
|
450
500
|
// lib/solvers/MspConnectionPairSolver/MspConnectionPairSolver.ts
|
|
451
501
|
var DEFAULT_MAX_MSP_PAIR_DISTANCE = 1;
|
|
@@ -520,12 +570,12 @@ var MspConnectionPairSolver = class extends BaseSolver {
|
|
|
520
570
|
if (this.directConnectionPinPairKeys.has(pinPairKey)) {
|
|
521
571
|
pairDistance = distance(p1, p2);
|
|
522
572
|
}
|
|
523
|
-
const
|
|
573
|
+
const labeledConnectionRouteReason = getLabeledConnectionRouteReason({
|
|
524
574
|
inputProblem: this.inputProblem,
|
|
525
575
|
chipMap: this.chipMap,
|
|
526
576
|
pins: [p1, p2]
|
|
527
577
|
});
|
|
528
|
-
if (pairDistance > this.maxMspPairDistance && !
|
|
578
|
+
if (pairDistance > this.maxMspPairDistance && !labeledConnectionRouteReason) {
|
|
529
579
|
return;
|
|
530
580
|
}
|
|
531
581
|
if (arePinsInDifferentSchematicSections(this.inputProblem, p1, p2)) {
|
|
@@ -543,11 +593,13 @@ var MspConnectionPairSolver = class extends BaseSolver {
|
|
|
543
593
|
}
|
|
544
594
|
const globalConnNetId = this.globalConnMap.getNetConnectedToId(pin1);
|
|
545
595
|
const userNetId = this.userNetIdByPinId[pin1] ?? this.userNetIdByPinId[pin2];
|
|
596
|
+
const suppressNetLabel = pairDistance > this.maxMspPairDistance && labeledConnectionRouteReason === "overlapping-fallback-labels";
|
|
546
597
|
this.mspConnectionPairs.push({
|
|
547
598
|
mspPairId: `${pin1}-${pin2}`,
|
|
548
599
|
dcConnNetId: dcNetId,
|
|
549
600
|
globalConnNetId,
|
|
550
601
|
userNetId,
|
|
602
|
+
suppressNetLabel,
|
|
551
603
|
pins: [p1, p2]
|
|
552
604
|
});
|
|
553
605
|
return;
|
|
@@ -626,46 +678,6 @@ import "graphics-debug";
|
|
|
626
678
|
// lib/solvers/SchematicTraceLinesSolver/SchematicTraceSingleLineSolver2/SchematicTraceSingleLineSolver2.ts
|
|
627
679
|
import { calculateElbow as calculateElbow2 } from "calculate-elbow";
|
|
628
680
|
|
|
629
|
-
// lib/solvers/NetLabelPlacementSolver/SingleNetLabelPlacementSolver/geometry.ts
|
|
630
|
-
var NET_LABEL_HORIZONTAL_WIDTH = 0.45;
|
|
631
|
-
var NET_LABEL_HORIZONTAL_HEIGHT = 0.2;
|
|
632
|
-
function getDimsForOrientation(params) {
|
|
633
|
-
const { orientation, netLabelWidth, netLabelHeight } = params;
|
|
634
|
-
const horizWidth = typeof netLabelWidth === "number" ? netLabelWidth : NET_LABEL_HORIZONTAL_WIDTH;
|
|
635
|
-
const horizHeight = typeof netLabelHeight === "number" ? netLabelHeight : NET_LABEL_HORIZONTAL_HEIGHT;
|
|
636
|
-
if (orientation === "y+" || orientation === "y-") {
|
|
637
|
-
return {
|
|
638
|
-
// Rotated: horizontal length = netLabelHeight, vertical length = netLabelWidth
|
|
639
|
-
width: horizHeight,
|
|
640
|
-
height: horizWidth
|
|
641
|
-
};
|
|
642
|
-
}
|
|
643
|
-
return {
|
|
644
|
-
width: horizWidth,
|
|
645
|
-
height: horizHeight
|
|
646
|
-
};
|
|
647
|
-
}
|
|
648
|
-
function getCenterFromAnchor(anchor, orientation, width, height) {
|
|
649
|
-
switch (orientation) {
|
|
650
|
-
case "x+":
|
|
651
|
-
return { x: anchor.x + width / 2, y: anchor.y };
|
|
652
|
-
case "x-":
|
|
653
|
-
return { x: anchor.x - width / 2, y: anchor.y };
|
|
654
|
-
case "y+":
|
|
655
|
-
return { x: anchor.x, y: anchor.y + height / 2 };
|
|
656
|
-
case "y-":
|
|
657
|
-
return { x: anchor.x, y: anchor.y - height / 2 };
|
|
658
|
-
}
|
|
659
|
-
}
|
|
660
|
-
function getRectBounds(center, w, h) {
|
|
661
|
-
return {
|
|
662
|
-
minX: center.x - w / 2,
|
|
663
|
-
minY: center.y - h / 2,
|
|
664
|
-
maxX: center.x + w / 2,
|
|
665
|
-
maxY: center.y + h / 2
|
|
666
|
-
};
|
|
667
|
-
}
|
|
668
|
-
|
|
669
681
|
// lib/utils/textBoxBounds.ts
|
|
670
682
|
function getTextBoxBounds(textBox, padding = {}) {
|
|
671
683
|
return {
|
|
@@ -3148,6 +3160,7 @@ var NetLabelPlacementSolver = class extends BaseSolver {
|
|
|
3148
3160
|
(t) => component.has(t.pins[0].pinId) && component.has(t.pins[1].pinId)
|
|
3149
3161
|
);
|
|
3150
3162
|
if (compTraces.length > 0) {
|
|
3163
|
+
if (compTraces.some((trace) => trace.suppressNetLabel)) continue;
|
|
3151
3164
|
const lengthOf = (path) => {
|
|
3152
3165
|
let sum = 0;
|
|
3153
3166
|
const pts = path.tracePath;
|
|
@@ -14,7 +14,7 @@ import { visualizeInputProblem } from "../SchematicTracePipelineSolver/visualize
|
|
|
14
14
|
import { doesPairCrossRestrictedCenterLines } from "./doesPairCrossRestrictedCenterLines"
|
|
15
15
|
import { getConnectivityMapsFromInputProblem } from "./getConnectivityMapFromInputProblem"
|
|
16
16
|
import { getOrthogonalMinimumSpanningTree } from "./getMspConnectionPairsFromPins"
|
|
17
|
-
import {
|
|
17
|
+
import { getLabeledConnectionRouteReason } from "./isLabeledPeripheralConnection"
|
|
18
18
|
|
|
19
19
|
export type MspConnectionPairId = string
|
|
20
20
|
export const DEFAULT_MAX_MSP_PAIR_DISTANCE = 1
|
|
@@ -26,6 +26,8 @@ export type MspConnectionPair = {
|
|
|
26
26
|
dcConnNetId: string
|
|
27
27
|
globalConnNetId: string
|
|
28
28
|
userNetId?: string
|
|
29
|
+
/** The trace replaces fallback labels that could not fit between its pins. */
|
|
30
|
+
suppressNetLabel?: boolean
|
|
29
31
|
pins: [InputPin & { chipId: string }, InputPin & { chipId: string }]
|
|
30
32
|
}
|
|
31
33
|
|
|
@@ -121,14 +123,17 @@ export class MspConnectionPairSolver extends BaseSolver {
|
|
|
121
123
|
if (this.directConnectionPinPairKeys.has(pinPairKey)) {
|
|
122
124
|
pairDistance = distance(p1, p2)
|
|
123
125
|
}
|
|
124
|
-
// Labeled one-pin peripherals
|
|
125
|
-
//
|
|
126
|
-
const
|
|
126
|
+
// Labeled one-pin peripherals and opposed pins whose fallback labels
|
|
127
|
+
// cannot fit need a real trace even when they are far apart.
|
|
128
|
+
const labeledConnectionRouteReason = getLabeledConnectionRouteReason({
|
|
127
129
|
inputProblem: this.inputProblem,
|
|
128
130
|
chipMap: this.chipMap,
|
|
129
131
|
pins: [p1, p2],
|
|
130
132
|
})
|
|
131
|
-
if (
|
|
133
|
+
if (
|
|
134
|
+
pairDistance > this.maxMspPairDistance &&
|
|
135
|
+
!labeledConnectionRouteReason
|
|
136
|
+
) {
|
|
132
137
|
// Too far apart; skip creating an MSP pair for this net
|
|
133
138
|
return
|
|
134
139
|
}
|
|
@@ -155,12 +160,16 @@ export class MspConnectionPairSolver extends BaseSolver {
|
|
|
155
160
|
const globalConnNetId = this.globalConnMap.getNetConnectedToId(pin1!)!
|
|
156
161
|
const userNetId =
|
|
157
162
|
this.userNetIdByPinId[pin1!] ?? this.userNetIdByPinId[pin2!]
|
|
163
|
+
const suppressNetLabel =
|
|
164
|
+
pairDistance > this.maxMspPairDistance &&
|
|
165
|
+
labeledConnectionRouteReason === "overlapping-fallback-labels"
|
|
158
166
|
|
|
159
167
|
this.mspConnectionPairs.push({
|
|
160
168
|
mspPairId: `${pin1}-${pin2}`,
|
|
161
169
|
dcConnNetId: dcNetId,
|
|
162
170
|
globalConnNetId,
|
|
163
171
|
userNetId,
|
|
172
|
+
suppressNetLabel,
|
|
164
173
|
pins: [p1, p2],
|
|
165
174
|
})
|
|
166
175
|
|
|
@@ -1,9 +1,14 @@
|
|
|
1
1
|
import type { InputChip, InputPin, InputProblem } from "lib/types/InputProblem"
|
|
2
|
+
import { NET_LABEL_HORIZONTAL_HEIGHT } from "../NetLabelPlacementSolver/SingleNetLabelPlacementSolver/geometry"
|
|
2
3
|
import { getPinDirection } from "../SchematicTraceLinesSolver/SchematicTraceSingleLineSolver/getPinDirection"
|
|
3
4
|
|
|
4
5
|
type PinWithChipId = InputPin & { chipId: string }
|
|
5
6
|
|
|
6
|
-
export
|
|
7
|
+
export type LabeledConnectionRouteReason =
|
|
8
|
+
| "single-pin-peripheral"
|
|
9
|
+
| "overlapping-fallback-labels"
|
|
10
|
+
|
|
11
|
+
export const getLabeledConnectionRouteReason = ({
|
|
7
12
|
inputProblem,
|
|
8
13
|
chipMap,
|
|
9
14
|
pins,
|
|
@@ -11,22 +16,18 @@ export const isLabeledPeripheralConnection = ({
|
|
|
11
16
|
inputProblem: InputProblem
|
|
12
17
|
chipMap: Record<string, InputChip>
|
|
13
18
|
pins: [PinWithChipId, PinWithChipId]
|
|
14
|
-
}):
|
|
19
|
+
}): LabeledConnectionRouteReason | null => {
|
|
15
20
|
const [firstPin, secondPin] = pins
|
|
16
21
|
const directConnection = inputProblem.directConnections.find(
|
|
17
22
|
(connection) =>
|
|
18
23
|
connection.pinIds.includes(firstPin.pinId) &&
|
|
19
24
|
connection.pinIds.includes(secondPin.pinId),
|
|
20
25
|
)
|
|
21
|
-
if (directConnection?.netLabelWidth === undefined) return
|
|
26
|
+
if (directConnection?.netLabelWidth === undefined) return null
|
|
22
27
|
|
|
23
28
|
const firstChip = chipMap[firstPin.chipId]
|
|
24
29
|
const secondChip = chipMap[secondPin.chipId]
|
|
25
|
-
if (!firstChip || !secondChip) return
|
|
26
|
-
|
|
27
|
-
const hasSinglePinPeripheral =
|
|
28
|
-
firstChip.pins.length === 1 || secondChip.pins.length === 1
|
|
29
|
-
if (!hasSinglePinPeripheral) return false
|
|
30
|
+
if (!firstChip || !secondChip) return null
|
|
30
31
|
|
|
31
32
|
let firstFacingDirection = firstPin._facingDirection
|
|
32
33
|
if (!firstFacingDirection) {
|
|
@@ -37,8 +38,43 @@ export const isLabeledPeripheralConnection = ({
|
|
|
37
38
|
secondFacingDirection = getPinDirection(secondPin, secondChip)
|
|
38
39
|
}
|
|
39
40
|
|
|
40
|
-
|
|
41
|
+
const hasOpposingHorizontalDirections =
|
|
41
42
|
(firstFacingDirection === "x-" && secondFacingDirection === "x+") ||
|
|
42
43
|
(firstFacingDirection === "x+" && secondFacingDirection === "x-")
|
|
43
|
-
)
|
|
44
|
+
if (!hasOpposingHorizontalDirections) return null
|
|
45
|
+
|
|
46
|
+
const hasSinglePinPeripheral =
|
|
47
|
+
firstChip.pins.length === 1 || secondChip.pins.length === 1
|
|
48
|
+
if (hasSinglePinPeripheral) return "single-pin-peripheral"
|
|
49
|
+
|
|
50
|
+
// The overlap fallback is intended for explicitly grouped schematic
|
|
51
|
+
// sections, where hierarchy boxes and their nearby connectors are laid out
|
|
52
|
+
// as one visual unit. Applying it to ordinary sheets can reroute unrelated
|
|
53
|
+
// component-to-component labels elsewhere in the design.
|
|
54
|
+
const sharedSectionId =
|
|
55
|
+
firstChip.sectionId && firstChip.sectionId === secondChip.sectionId
|
|
56
|
+
? firstChip.sectionId
|
|
57
|
+
: null
|
|
58
|
+
if (!sharedSectionId) return null
|
|
59
|
+
|
|
60
|
+
// When two multi-pin components face each other across a short gap, the
|
|
61
|
+
// fallback label at each pin can be wider than the available space. Route
|
|
62
|
+
// the explicit connection instead of rendering two copies of the long net
|
|
63
|
+
// name on top of one another.
|
|
64
|
+
const firstIsLeft = firstPin.x <= secondPin.x
|
|
65
|
+
const directionsPointTowardEachOther = firstIsLeft
|
|
66
|
+
? firstFacingDirection === "x+" && secondFacingDirection === "x-"
|
|
67
|
+
: firstFacingDirection === "x-" && secondFacingDirection === "x+"
|
|
68
|
+
const labelsOverlapAlongX =
|
|
69
|
+
Math.abs(firstPin.x - secondPin.x) < directConnection.netLabelWidth * 2
|
|
70
|
+
const labelsOverlapAlongY =
|
|
71
|
+
Math.abs(firstPin.y - secondPin.y) < NET_LABEL_HORIZONTAL_HEIGHT
|
|
72
|
+
|
|
73
|
+
const fallbackLabelsOverlap =
|
|
74
|
+
directionsPointTowardEachOther && labelsOverlapAlongX && labelsOverlapAlongY
|
|
75
|
+
return fallbackLabelsOverlap ? "overlapping-fallback-labels" : null
|
|
44
76
|
}
|
|
77
|
+
|
|
78
|
+
export const isLabeledPeripheralConnection = (
|
|
79
|
+
params: Parameters<typeof getLabeledConnectionRouteReason>[0],
|
|
80
|
+
) => getLabeledConnectionRouteReason(params) !== null
|
|
@@ -188,6 +188,13 @@ export class NetLabelPlacementSolver extends BaseSolver {
|
|
|
188
188
|
)
|
|
189
189
|
|
|
190
190
|
if (compTraces.length > 0) {
|
|
191
|
+
// This routed trace exists specifically because two endpoint labels
|
|
192
|
+
// could not fit in the available gap. Do not replace that pair with
|
|
193
|
+
// one redundant long label on the newly routed wire. If routing had
|
|
194
|
+
// failed there would be no trace here, so the port-only fallback
|
|
195
|
+
// branch below would still label both endpoints.
|
|
196
|
+
if (compTraces.some((trace) => trace.suppressNetLabel)) continue
|
|
197
|
+
|
|
191
198
|
// Choose a representative trace (longest by L1 length)
|
|
192
199
|
const lengthOf = (path: SolvedTracePath) => {
|
|
193
200
|
let sum = 0
|
package/package.json
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<svg width="640" height="640" viewBox="0 0 640 640" xmlns="http://www.w3.org/2000/svg"><rect width="100%" height="100%" fill="white"/><g><polyline data-points="-0.498,-4.0485 -0.298,-4.0485 -0.298,-4.4485 -0.498,-4.4485" data-type="line" data-label="" points="328.79491940643186,394.0468425733768 332.2901680528032,394.0468425733768 332.2901680528032,401.0373398661195 328.79491940643186,401.0373398661195" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-12.7,7.608499999999995 -12.899999999999999,7.608499999999995 -12.899999999999999,7.808499999999995 -12.7,7.808499999999995" data-type="line" data-label="" points="115.54979949131643,190.32627521962334 112.05455084494511,190.32627521962334 112.05455084494511,186.83102657325202 115.54979949131643,186.83102657325202" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-12.7,4.208499999999994 -12.899999999999999,4.208499999999994 -12.899999999999999,4.408499999999994 -12.7,4.408499999999994" data-type="line" data-label="" points="115.54979949131643,249.74550220793617 112.05455084494511,249.74550220793617 112.05455084494511,246.25025356156482 115.54979949131643,246.25025356156482" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-12.7,4.0084999999999935 -12.899999999999999,4.0084999999999935 -12.899999999999999,4.208499999999994 -12.7,4.208499999999994" data-type="line" data-label="" points="115.54979949131643,253.2407508543075 112.05455084494511,253.2407508543075 112.05455084494511,249.74550220793617 115.54979949131643,249.74550220793617" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-12.7,0.6084999999999905 -12.899999999999999,0.6084999999999905 -12.899999999999999,0.8084999999999907 -12.7,0.8084999999999907" data-type="line" data-label="" points="115.54979949131643,312.6599778426203 112.05455084494511,312.6599778426203 112.05455084494511,309.16472919624897 115.54979949131643,309.16472919624897" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-12.7,-2.591499999999998 -12.899999999999999,-2.591499999999998 -12.899999999999999,-2.391499999999999 -12.7,-2.391499999999999" data-type="line" data-label="" points="115.54979949131643,368.58395618456154 112.05455084494511,368.58395618456154 112.05455084494511,365.08870753819025 115.54979949131643,365.08870753819025" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-12.7,-2.7914999999999974 -12.899999999999999,-2.7914999999999974 -12.899999999999999,-2.591499999999998 -12.7,-2.591499999999998" data-type="line" data-label="" points="115.54979949131643,372.0792048309329 112.05455084494511,372.0792048309329 112.05455084494511,368.58395618456154 115.54979949131643,368.58395618456154" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-12.7,-2.9914999999999967 -12.899999999999999,-2.9914999999999967 -12.899999999999999,-2.7914999999999974 -12.7,-2.7914999999999974" data-type="line" data-label="" points="115.54979949131643,375.57445347730425 112.05455084494511,375.57445347730425 112.05455084494511,372.0792048309329 115.54979949131643,372.0792048309329" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-12.7,-3.191499999999996 -12.899999999999999,-3.191499999999996 -12.899999999999999,-2.9914999999999967 -12.7,-2.9914999999999967" data-type="line" data-label="" points="115.54979949131643,379.06970212367554 112.05455084494511,379.06970212367554 112.05455084494511,375.57445347730425 115.54979949131643,375.57445347730425" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-12.7,-3.3914999999999953 -12.899999999999999,-3.3914999999999953 -12.899999999999999,-3.191499999999996 -12.7,-3.191499999999996" data-type="line" data-label="" points="115.54979949131643,382.5649507700469 112.05455084494511,382.5649507700469 112.05455084494511,379.06970212367554 115.54979949131643,379.06970212367554" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-9.7,-2.5914999999999955 -9.5,-2.5914999999999955 -9.5,-2.3914999999999953 -9.7,-2.3914999999999953" data-type="line" data-label="" points="167.97852918688653,368.58395618456154 171.47377783325786,368.58395618456154 171.47377783325786,365.0887075381902 167.97852918688653,365.0887075381902" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-9.7,-2.7914999999999957 -9.5,-2.7914999999999957 -9.5,-2.5914999999999955 -9.7,-2.5914999999999955" data-type="line" data-label="" points="167.97852918688653,372.07920483093284 171.47377783325786,372.07920483093284 171.47377783325786,368.58395618456154 167.97852918688653,368.58395618456154" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-9.7,-2.991499999999995 -9.5,-2.991499999999995 -9.5,-2.7914999999999957 -9.7,-2.7914999999999957" data-type="line" data-label="" points="167.97852918688653,375.5744534773042 171.47377783325786,375.5744534773042 171.47377783325786,372.07920483093284 167.97852918688653,372.07920483093284" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-9.7,-3.191499999999995 -8.440000000000001,-3.191499999999995 -8.440000000000001,-2.991499999999995 -9.7,-2.991499999999995" data-type="line" data-label="" points="167.97852918688653,379.06970212367554 189.99859565902594,379.06970212367554 189.99859565902594,375.5744534773042 167.97852918688653,375.5744534773042" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-9.7,-3.3914999999999953 -8.440000000000001,-3.3914999999999953 -8.440000000000001,-3.191499999999995 -9.7,-3.191499999999995" data-type="line" data-label="" points="167.97852918688653,382.5649507700469 189.99859565902594,382.5649507700469 189.99859565902594,379.06970212367554 167.97852918688653,379.06970212367554" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-2.215,0.9599999999999997 -2.0149999999999997,0.9599999999999997 -2.0149999999999997,1.3599999999999997 -2.215,1.3599999999999997" data-type="line" data-label="" points="298.7882097773339,306.51707834662255 302.28345842370527,306.51707834662255 302.28345842370527,299.52658105387985 298.7882097773339,299.52658105387985" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-2.215,0.5599999999999997 -2.0149999999999997,0.5599999999999997 -2.0149999999999997,0.9599999999999997 -2.215,0.9599999999999997" data-type="line" data-label="" points="298.7882097773339,313.5075756393652 302.28345842370527,313.5075756393652 302.28345842370527,306.51707834662255 298.7882097773339,306.51707834662255" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-2.215,0.1599999999999997 -1.305,0.1599999999999997 -1.305,0.5599999999999997 -2.215,0.5599999999999997" data-type="line" data-label="" points="298.7882097773339,320.4980729321079 314.6915911183235,320.4980729321079 314.6915911183235,313.5075756393652 298.7882097773339,313.5075756393652" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="9.873,0.9599999999999997 9.673,0.9599999999999997 9.673,1.3599999999999997 9.873,1.3599999999999997" data-type="line" data-label="" points="510.0410379640177,306.51707834662255 506.5457893176464,306.51707834662255 506.5457893176464,299.52658105387985 510.0410379640177,299.52658105387985" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="9.873,0.5599999999999998 9.673,0.5599999999999998 9.673,0.9599999999999997 9.873,0.9599999999999997" data-type="line" data-label="" points="510.0410379640177,313.5075756393652 506.5457893176464,313.5075756393652 506.5457893176464,306.51707834662255 510.0410379640177,306.51707834662255" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="9.873,0.15999999999999992 9.673,0.15999999999999992 9.673,0.5599999999999998 9.873,0.5599999999999998" data-type="line" data-label="" points="510.0410379640177,320.4980729321079 506.5457893176464,320.4980729321079 506.5457893176464,313.5075756393652 510.0410379640177,313.5075756393652" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="14.177999999999999,-7.9315 14.161249999999999,-7.9315 14.161249999999999,-7.7315 13.222000000000001,-7.7315 13.222000000000001,-7.9315 13.422,-7.9315" data-type="line" data-label="" points="585.2762650771608,461.90709504267636 584.9835380030272,461.90709504267636 584.9835380030272,458.411846396305 568.5689765475058,458.411846396305 568.5689765475058,461.90709504267636 572.0642251938771,461.90709504267636" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-5.0729999999999995,5.0315 -5.273,5.0315 -5.273,6.046500000000001 -3.3229999999999986,6.046500000000001 -3.3229999999999986,5.0315 -3.522999999999999,5.0315" data-type="line" data-label="" points="248.84110662068747,235.36255402811798 245.34585797431612,235.36255402811798 245.34585797431612,217.6241671477834 279.4245322764367,217.6241671477834 279.4245322764367,235.36255402811798 275.92928363006536,235.36255402811798" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-13.258000000000001,-6.4914999999999985 -13.258000000000001,-6.691499999999998 -13.908,-6.691499999999998 -13.908,-7.9315 -13.258000000000001,-7.9315 -13.258000000000001,-7.7315000000000005" data-type="line" data-label="" points="105.79805576794035,436.7413047888027 105.79805576794035,440.236553435174 94.43849766723352,440.236553435174 94.43849766723352,461.90709504267636 105.79805576794035,461.90709504267636 105.79805576794035,458.411846396305" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="9.857999999999999,-3.3915 9.097999999999999,-3.3915 9.097999999999999,-2.42 9.857999999999999,-2.42" data-type="line" data-label="" points="509.7788943155398,382.56495077004695 496.49694945932873,382.56495077004695 496.49694945932873,365.58678047029815 509.7788943155398,365.58678047029815" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="9.857999999999999,-4.3485 9.097999999999999,-4.3485 9.097999999999999,-3.3915 9.857999999999999,-3.3915" data-type="line" data-label="" points="509.7788943155398,399.2897155429338 496.49694945932873,399.2897155429338 496.49694945932873,382.56495077004695 509.7788943155398,382.56495077004695" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="9.857999999999999,-5.319999999999999 9.097999999999999,-5.319999999999999 9.097999999999999,-4.3485 9.857999999999999,-4.3485" data-type="line" data-label="" points="509.7788943155398,416.2678858426826 496.49694945932873,416.2678858426826 496.49694945932873,399.2897155429338 509.7788943155398,399.2897155429338" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-12.7,8.408499999999995 -12.7,8.5085 -14.191999999999997,8.5085" data-type="line" data-label="" points="115.54979949131643,176.345280634138 115.54979949131643,174.59765631095223 89.47524458938628,174.59765631095223" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-12.7,8.208499999999994 -13.445999999999998,8.208499999999994 -13.445999999999998,-3.9115000000000006 -6.9399999999999995,-3.9115000000000006 -6.9399999999999995,8.408499999999995 -12.7,8.408499999999995" data-type="line" data-label="" points="115.54979949131643,179.84052928050934 102.51252204035134,179.84052928050934 102.51252204035134,391.6525972506124 216.21296050681102,391.6525972506124 216.21296050681102,176.345280634138 115.54979949131643,176.345280634138" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-12.7,7.808499999999995 -12.899999999999999,7.808499999999995 -12.899999999999999,8.208499999999994 -12.7,8.208499999999994" data-type="line" data-label="" points="115.54979949131643,186.83102657325202 112.05455084494511,186.83102657325202 112.05455084494511,179.84052928050934 115.54979949131643,179.84052928050934" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-9.7,7.408499999999998 -7.079000000000001,7.408499999999998 -7.079000000000001,8.008499999999996 -9.7,8.008499999999996" data-type="line" data-label="" points="167.97852918688653,193.82152386599464 213.78376269758292,193.82152386599464 213.78376269758292,183.33577792688064 167.97852918688653,183.33577792688064" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-9.7,6.008500000000003 -7.079000000000001,6.008500000000003 -7.079000000000001,7.408499999999998 -9.7,7.408499999999998" data-type="line" data-label="" points="167.97852918688653,218.28826439059392 213.78376269758292,218.28826439059392 213.78376269758292,193.82152386599464 167.97852918688653,193.82152386599464" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-12.7,2.6084999999999923 -14.360999999999997,2.6084999999999923 -14.360999999999997,4.0084999999999935 -12.7,4.0084999999999935" data-type="line" data-label="" points="115.54979949131643,277.70749137890687 86.52175948320249,277.70749137890687 86.52175948320249,253.2407508543075 115.54979949131643,253.2407508543075" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-12.7,2.208499999999992 -13.640999999999998,2.208499999999992 -13.640999999999998,2.6084999999999923 -12.7,2.6084999999999923" data-type="line" data-label="" points="115.54979949131643,284.69798867164957 99.1046546101393,284.69798867164957 99.1046546101393,277.70749137890687 115.54979949131643,277.70749137890687" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-12.7,0.8084999999999907 -13.640999999999998,0.8084999999999908 -13.640999999999998,2.208499999999992 -12.7,2.208499999999992" data-type="line" data-label="" points="115.54979949131643,309.16472919624897 99.1046546101393,309.16472919624897 99.1046546101393,284.69798867164957 115.54979949131643,284.69798867164957" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-12.7,-0.7915000000000045 -13.640999999999998,-0.7915000000000052 -13.640999999999998,0.6084999999999912 -12.7,0.6084999999999905" data-type="line" data-label="" points="115.54979949131643,337.1267183672196 99.1046546101393,337.1267183672196 99.1046546101393,312.6599778426203 115.54979949131643,312.6599778426203" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-12.7,-2.391499999999999 -13.761,-2.3914999999999997 -13.761,-0.7915000000000038 -12.7,-0.7915000000000045" data-type="line" data-label="" points="115.54979949131643,365.08870753819025 97.00750542231648,365.08870753819025 97.00750542231648,337.1267183672196 115.54979949131643,337.1267183672196" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-9.7,-1.7914999999999957 -7.199000000000002,-1.7914999999999957 -7.199000000000002,-1.1914999999999951 -9.7,-1.1914999999999956" data-type="line" data-label="" points="167.97852918688653,354.60296159907614 211.6866135097601,354.60296159907614 211.6866135097601,344.11721565996214 167.97852918688653,344.11721565996214" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-9.7,-2.3914999999999953 -7.079000000000001,-2.3914999999999953 -7.079000000000001,-1.7914999999999948 -9.7,-1.7914999999999957" data-type="line" data-label="" points="167.97852918688653,365.0887075381902 213.78376269758292,365.0887075381902 213.78376269758292,354.60296159907614 167.97852918688653,354.60296159907614" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="0.907,-1.2829999999999995 0.7070000000000001,-1.2829999999999995 0.7070000000000001,-1.0829999999999995 -2.554,-1.0829999999999995 -2.554,-0.6829999999999996 0.7070000000000001,-0.6829999999999996 0.7070000000000001,1.842999999999999 0.907,1.842999999999999" data-type="line" data-label="" points="353.3490411471905,345.7162919156771 349.85379250081917,345.7162919156771 349.85379250081917,342.22104326930577 292.8637633217345,342.22104326930577 292.8637633217345,335.23054597656306 349.85379250081917,335.23054597656306 349.85379250081917,291.0855555728931 353.3490411471905,291.0855555728931" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="6.747,-1.2830000000000004 6.947,-1.2830000000000004 6.947,-1.083 10.207999999999998,-1.083 10.207999999999998,-0.683 8.408,-0.6829999999999996 8.408,-0.2829999999999997 8.528,-0.2829999999999993 8.528,0.11700000000000071 6.947,0.11700000000000071 6.947,3.143 10.207999999999998,3.143 10.207999999999998,3.543 6.747,3.543" data-type="line" data-label="" points="455.41030162123366,345.7162919156771 458.905550267605,345.7162919156771 458.905550267605,342.22104326930577 515.8955794466897,342.22104326930577 515.8955794466897,335.23054597656306 484.43834162934763,335.23054597656306 484.43834162934763,328.2400486838204 486.5354908171704,328.2400486838204 486.5354908171704,321.2495513910777 458.905550267605,321.2495513910777 458.905550267605,268.3664393714794 515.8955794466897,268.3664393714794 515.8955794466897,261.37594207873667 455.41030162123366,261.37594207873667" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-14.191999999999997,8.108500000000001 -15.342999999999996,8.108500000000001" data-type="line" data-label="" points="89.47524458938628,181.5881536036949 69.36008862951923,181.5881536036949" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-6.342,6.491499999999999 -6.342,8.5425 -6.393,8.5425" data-type="line" data-label="" points="226.6637539594613,209.8472389096072 226.6637539594613,174.0034640410691 225.77246555463663,174.0034640410691" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-5.273,5.0315 -5.8629999999999995,5.0315 -5.8629999999999995,5.0305" data-type="line" data-label="" points="245.34585797431612,235.36255402811798 235.0348744675207,235.36255402811798 235.0348744675207,235.38003027134982" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="9.873,0.15999999999999992 9.082999999999998,0.15999999999999992" data-type="line" data-label="" points="510.0410379640177,320.4980729321079 496.23480581085084,320.4980729321079" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="6.747,3.7430000000000003 10.887999999999995,3.7430000000000003 10.887999999999995,3.6920000000000006" data-type="line" data-label="" points="455.41030162123366,257.8806934323653 527.7794248443522,257.8806934323653 527.7794248443522,258.77198183719" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-13.258000000000001,-5.8915 -13.258000000000001,-5.7905 -13.709,-5.7905" data-type="line" data-label="" points="105.79805576794035,426.25555884968867 105.79805576794035,424.4904582832712 97.916270070373,424.4904582832712" fill="none" stroke="purple" stroke-width="1px"/></g><g><rect data-type="rect" data-label="schematic_component_2" data-x="-13.1355" data-y="-7.351500000000001" x="97.93374631360486" y="445.129901540094" width="20.010298500475898" height="13.281944856211055" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="schematic_component_3" data-x="-1.4979999999999998" data-y="-4.2485" x="293.84243294271846" y="390.55159392700546" width="34.9524864637134" height="13.980994585485405" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="schematic_component_4" data-x="-14.741999999999997" data-y="8.3085" x="70.25137703434386" y="174.59765631095223" width="19.223867555042403" height="6.990497292742674" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="schematic_component_5" data-x="-11.2" data-y="2.5084999999999997" x="115.54979949131643" y="176.3452806341379" width="52.4287296955701" height="206.21967013590904" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="schematic_component_6" data-x="-4.297999999999999" data-y="5.0315" x="248.84110662068747" y="225.3137141698004" width="27.088177009377887" height="20.097679716635213" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="schematic_component_7" data-x="-2.9899999999999998" data-y="1.2599999999999998" x="271.70003276795603" y="275.9336526908733" width="27.088177009377887" height="50.68110537238442" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="schematic_component_8" data-x="10.648" data-y="1.2599999999999998" x="510.04103796401773" y="275.9336526908733" width="27.088177009377944" height="50.68110537238442" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="schematic_component_9" data-x="10.457999999999998" data-y="-2.32" x="509.77889431553984" y="358.5962831775555" width="20.971491878227994" height="10.485745939113997" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="schematic_component_10" data-x="10.457999999999998" data-y="-3.2915" x="509.77889431553984" y="375.57445347730425" width="20.971491878227994" height="10.485745939113997" fill="hsl(320, 100%, 50%, 0.8)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="schematic_component_11" data-x="10.457999999999998" data-y="-4.2485" x="509.77889431553984" y="392.2992182501912" width="20.971491878227994" height="10.485745939113997" fill="hsl(320, 100%, 50%, 0.8)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="schematic_component_12" data-x="10.457999999999998" data-y="-5.22" x="509.77889431553984" y="409.27738854993993" width="20.971491878227994" height="10.485745939113997" fill="hsl(320, 100%, 50%, 0.8)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="schematic_component_13" data-x="-9.142" data-y="-5.988499999999999" x="160.25402967840586" y="420.96025715043606" width="34.9524864637134" height="13.980994585485348" fill="hsl(320, 100%, 50%, 0.8)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="schematic_component_14" data-x="-11.017999999999999" data-y="-7.351500000000001" x="132.71147034499973" y="437.78987938271416" width="24.466740524599345" height="27.961989170970696" fill="hsl(320, 100%, 50%, 0.8)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="schematic_component_15" data-x="-6.127" data-y="6.1915" x="218.7994445051258" y="209.8472389096072" width="23.243403498369418" height="10.485745939114025" fill="hsl(320, 100%, 50%, 0.8)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="schematic_component_16" data-x="-13.043" data-y="-6.1915" x="97.93374631360491" y="426.25555884968867" width="23.24340349836936" height="10.485745939114054" fill="hsl(320, 100%, 50%, 0.8)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="schematic_component_17" data-x="12.29925" data-y="-7.9315" x="546.1294802378018" y="460.15947071949074" width="12.626585735016533" height="3.4952486463712944" fill="hsl(320, 100%, 50%, 0.8)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="schematic_component_18" data-x="13.783249999999999" data-y="-7.9315" x="572.0642251938771" y="460.15947071949074" width="12.626585735016533" height="3.4952486463712944" fill="hsl(320, 100%, 50%, 0.8)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="schematic_component_19" data-x="11.60325" data-y="-7.9315" x="532.9174403545181" y="460.15947071949074" width="14.723734922839185" height="3.4952486463712944" fill="hsl(320, 100%, 50%, 0.8)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="schematic_component_20" data-x="14.599249999999998" data-y="-7.9315" x="585.2762650771608" y="460.15947071949074" width="14.723734922839185" height="3.4952486463712944" fill="hsl(320, 100%, 50%, 0.8)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="schematic_component_21" data-x="3.827" data-y="4.543" x="353.3490411471905" y="178.0142618627802" width="102.06126047404314" height="131.77087396819954" fill="hsl(320, 100%, 50%, 0.8)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="schematic_component_22" data-x="3.827" data-y="-3.383" x="353.3490411471905" y="323.28553372758904" width="102.06126047404314" height="118.2617379499743" fill="hsl(320, 100%, 50%, 0.8)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="I2C" data-x="-1.918" data-y="-3.7335000000000003" x="299.7843556415497" y="386.35729555135987" width="8.388596751291232" height="4.369060807964161" fill="rgba(160, 0, 220, 0.14)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="J1" data-x="-14.771999999999998" data-y="8.6235" x="76.19329973317512" y="170.40335793530664" width="6.291447563468438" height="4.369060807964189" fill="rgba(160, 0, 220, 0.14)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="SEAM-20-03.0-S-06-2-A-K-TR" data-x="-10.739999999999998" data-y="-3.5215000000000005" x="122.54029678405914" y="383.26400049932124" width="54.52587888339286" height="3.1457237817342047" fill="rgba(160, 0, 220, 0.14)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="J2" data-x="-12.18" data-y="8.5235" x="121.4917221901477" y="172.1509822584923" width="6.2914475634684095" height="4.369060807964161" fill="rgba(160, 0, 220, 0.14)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="GBC03DABN-M30" data-x="-3.892999999999999" data-y="4.3265" x="255.83160391343014" y="246.11044361570984" width="27.26293944169646" height="3.1457237817342047" fill="rgba(160, 0, 220, 0.14)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="J3" data-x="-4.552999999999999" data-y="5.721500000000001" x="254.78302931951873" y="221.11941579415475" width="6.291447563468381" height="4.369060807964189" fill="rgba(160, 0, 220, 0.14)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="09452812800" data-x="-2.705" data-y="-0.3200000000000002" x="278.69053006069873" y="327.31380779253203" width="23.068641066050816" height="3.1457237817342047" fill="rgba(160, 0, 220, 0.14)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="J4" data-x="-3.245" data-y="2.825" x="277.6419554667873" y="271.73935431522773" width="6.2914475634684095" height="4.3690608079642175" fill="rgba(160, 0, 220, 0.14)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="09452812800" data-x="10.933" data-y="-0.3200000000000002" x="517.0315352567604" y="327.31380779253203" width="23.06864106605076" height="3.1457237817342047" fill="rgba(160, 0, 220, 0.14)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="J5" data-x="10.393" data-y="2.825" x="515.982960662849" y="271.73935431522773" width="6.2914475634684095" height="4.3690608079642175" fill="rgba(160, 0, 220, 0.14)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="1751248" data-x="10.677999999999999" data-y="-2.7499999999999996" x="516.7693916082826" y="369.7810788459438" width="14.680044314759584" height="3.1457237817342047" fill="rgba(160, 0, 220, 0.14)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="J6" data-x="10.378" data-y="-1.9049999999999998" x="515.7208170143713" y="354.40198480190986" width="6.291447563468296" height="4.3690608079642175" fill="rgba(160, 0, 220, 0.14)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="1751248" data-x="10.677999999999999" data-y="-3.7215" x="516.7693916082826" y="386.7592491456926" width="14.680044314759584" height="3.1457237817342047" fill="rgba(160, 0, 220, 0.14)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="J7" data-x="10.378" data-y="-2.8765" x="515.7208170143713" y="371.3801551016586" width="6.291447563468296" height="4.3690608079642175" fill="rgba(160, 0, 220, 0.14)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="1751248" data-x="10.677999999999999" data-y="-4.6785" x="516.7693916082826" y="403.4840139185794" width="14.680044314759584" height="3.1457237817342047" fill="rgba(160, 0, 220, 0.14)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="J8" data-x="10.378" data-y="-3.8335" x="515.7208170143713" y="388.10491987454554" width="6.291447563468296" height="4.369060807964161" fill="rgba(160, 0, 220, 0.14)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="1751248" data-x="10.677999999999999" data-y="-5.6499999999999995" x="516.7693916082826" y="420.4621842183282" width="14.680044314759584" height="3.1457237817342047" fill="rgba(160, 0, 220, 0.14)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="J9" data-x="10.378" data-y="-4.805" x="515.7208170143713" y="405.0830901742943" width="6.291447563468296" height="4.3690608079642175" fill="rgba(160, 0, 220, 0.14)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="J10" data-x="-9.562" data-y="-5.4735" x="166.19595237723718" y="416.76595877479053" width="8.388596751291203" height="4.369060807964161" fill="rgba(160, 0, 220, 0.14)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="SBH11-PBPC-D07-ST-BK" data-x="-10.117999999999999" data-y="-8.281500000000001" x="139.70196763774243" y="466.45091828295915" width="41.942983756456044" height="3.1457237817342047" fill="rgba(160, 0, 220, 0.14)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="J11" data-x="-11.138" data-y="-6.4365000000000006" x="138.65339304383096" y="433.5955810070685" width="8.388596751291232" height="4.369060807964161" fill="rgba(160, 0, 220, 0.14)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="U1_T1_Data_Top_Level" data-x="2.5069999999999997" data-y="8.428" x="359.2909638460218" y="173.8199634871346" width="44.04013294427887" height="4.369060807964161" fill="rgba(160, 0, 220, 0.14)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="T1_Data_Top_Level.SchDoc" data-x="2.747" data-y="0.6430000000000001" x="360.3395384399332" y="310.484185560254" width="50.331580507747276" height="3.1457237817342047" fill="rgba(160, 0, 220, 0.14)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="U1_T1_Power_Top_Level" data-x="2.567" data-y="0.11550000000000016" x="359.2909638460218" y="319.0912353519434" width="46.137282132101745" height="4.3690608079642175" fill="rgba(160, 0, 220, 0.14)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="T1_Power_Top_Level.SchDoc" data-x="2.8070000000000004" data-y="-6.8965000000000005" x="360.3395384399332" y="442.2463214068376" width="52.4287296955701" height="3.1457237817342047" fill="rgba(160, 0, 220, 0.14)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="netId: NET_RST
|
|
1
|
+
<svg width="640" height="640" viewBox="0 0 640 640" xmlns="http://www.w3.org/2000/svg"><rect width="100%" height="100%" fill="white"/><g><polyline data-points="-0.498,-4.0485 -0.298,-4.0485 -0.298,-4.4485 -0.498,-4.4485" data-type="line" data-label="" points="328.79491940643186,394.0468425733768 332.2901680528032,394.0468425733768 332.2901680528032,401.0373398661195 328.79491940643186,401.0373398661195" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="9.857999999999999,-3.3915 9.097999999999999,-3.3915 9.097999999999999,-2.42 9.857999999999999,-2.42" data-type="line" data-label="" points="509.7788943155398,382.56495077004695 496.49694945932873,382.56495077004695 496.49694945932873,365.58678047029815 509.7788943155398,365.58678047029815" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="9.857999999999999,-4.3485 9.097999999999999,-4.3485 9.097999999999999,-3.3915 9.857999999999999,-3.3915" data-type="line" data-label="" points="509.7788943155398,399.2897155429338 496.49694945932873,399.2897155429338 496.49694945932873,382.56495077004695 509.7788943155398,382.56495077004695" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="9.857999999999999,-5.319999999999999 9.097999999999999,-5.319999999999999 9.097999999999999,-4.3485 9.857999999999999,-4.3485" data-type="line" data-label="" points="509.7788943155398,416.2678858426826 496.49694945932873,416.2678858426826 496.49694945932873,399.2897155429338 509.7788943155398,399.2897155429338" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-12.7,7.608499999999995 -12.899999999999999,7.608499999999995 -12.899999999999999,7.808499999999995 -12.7,7.808499999999995" data-type="line" data-label="" points="115.54979949131643,190.32627521962334 112.05455084494511,190.32627521962334 112.05455084494511,186.83102657325202 115.54979949131643,186.83102657325202" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-12.7,4.208499999999994 -12.899999999999999,4.208499999999994 -12.899999999999999,4.408499999999994 -12.7,4.408499999999994" data-type="line" data-label="" points="115.54979949131643,249.74550220793617 112.05455084494511,249.74550220793617 112.05455084494511,246.25025356156482 115.54979949131643,246.25025356156482" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-12.7,4.0084999999999935 -12.899999999999999,4.0084999999999935 -12.899999999999999,4.208499999999994 -12.7,4.208499999999994" data-type="line" data-label="" points="115.54979949131643,253.2407508543075 112.05455084494511,253.2407508543075 112.05455084494511,249.74550220793617 115.54979949131643,249.74550220793617" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-12.7,0.6084999999999905 -12.899999999999999,0.6084999999999905 -12.899999999999999,0.8084999999999907 -12.7,0.8084999999999907" data-type="line" data-label="" points="115.54979949131643,312.6599778426203 112.05455084494511,312.6599778426203 112.05455084494511,309.16472919624897 115.54979949131643,309.16472919624897" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-12.7,-2.591499999999998 -12.899999999999999,-2.591499999999998 -12.899999999999999,-2.391499999999999 -12.7,-2.391499999999999" data-type="line" data-label="" points="115.54979949131643,368.58395618456154 112.05455084494511,368.58395618456154 112.05455084494511,365.08870753819025 115.54979949131643,365.08870753819025" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-12.7,-2.7914999999999974 -12.899999999999999,-2.7914999999999974 -12.899999999999999,-2.591499999999998 -12.7,-2.591499999999998" data-type="line" data-label="" points="115.54979949131643,372.0792048309329 112.05455084494511,372.0792048309329 112.05455084494511,368.58395618456154 115.54979949131643,368.58395618456154" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-12.7,-2.9914999999999967 -12.899999999999999,-2.9914999999999967 -12.899999999999999,-2.7914999999999974 -12.7,-2.7914999999999974" data-type="line" data-label="" points="115.54979949131643,375.57445347730425 112.05455084494511,375.57445347730425 112.05455084494511,372.0792048309329 115.54979949131643,372.0792048309329" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-12.7,-3.191499999999996 -12.899999999999999,-3.191499999999996 -12.899999999999999,-2.9914999999999967 -12.7,-2.9914999999999967" data-type="line" data-label="" points="115.54979949131643,379.06970212367554 112.05455084494511,379.06970212367554 112.05455084494511,375.57445347730425 115.54979949131643,375.57445347730425" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-12.7,-3.3914999999999953 -12.899999999999999,-3.3914999999999953 -12.899999999999999,-3.191499999999996 -12.7,-3.191499999999996" data-type="line" data-label="" points="115.54979949131643,382.5649507700469 112.05455084494511,382.5649507700469 112.05455084494511,379.06970212367554 115.54979949131643,379.06970212367554" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-9.7,-2.5914999999999955 -9.5,-2.5914999999999955 -9.5,-2.3914999999999953 -9.7,-2.3914999999999953" data-type="line" data-label="" points="167.97852918688653,368.58395618456154 171.47377783325786,368.58395618456154 171.47377783325786,365.0887075381902 167.97852918688653,365.0887075381902" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-9.7,-2.7914999999999957 -9.5,-2.7914999999999957 -9.5,-2.5914999999999955 -9.7,-2.5914999999999955" data-type="line" data-label="" points="167.97852918688653,372.07920483093284 171.47377783325786,372.07920483093284 171.47377783325786,368.58395618456154 167.97852918688653,368.58395618456154" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-9.7,-2.991499999999995 -9.5,-2.991499999999995 -9.5,-2.7914999999999957 -9.7,-2.7914999999999957" data-type="line" data-label="" points="167.97852918688653,375.5744534773042 171.47377783325786,375.5744534773042 171.47377783325786,372.07920483093284 167.97852918688653,372.07920483093284" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-9.7,-3.191499999999995 -8.440000000000001,-3.191499999999995 -8.440000000000001,-2.991499999999995 -9.7,-2.991499999999995" data-type="line" data-label="" points="167.97852918688653,379.06970212367554 189.99859565902594,379.06970212367554 189.99859565902594,375.5744534773042 167.97852918688653,375.5744534773042" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-9.7,-3.3914999999999953 -8.440000000000001,-3.3914999999999953 -8.440000000000001,-3.191499999999995 -9.7,-3.191499999999995" data-type="line" data-label="" points="167.97852918688653,382.5649507700469 189.99859565902594,382.5649507700469 189.99859565902594,379.06970212367554 167.97852918688653,379.06970212367554" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-2.215,0.9599999999999997 -2.0149999999999997,0.9599999999999997 -2.0149999999999997,1.3599999999999997 -2.215,1.3599999999999997" data-type="line" data-label="" points="298.7882097773339,306.51707834662255 302.28345842370527,306.51707834662255 302.28345842370527,299.52658105387985 298.7882097773339,299.52658105387985" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-2.215,0.5599999999999997 -2.0149999999999997,0.5599999999999997 -2.0149999999999997,0.9599999999999997 -2.215,0.9599999999999997" data-type="line" data-label="" points="298.7882097773339,313.5075756393652 302.28345842370527,313.5075756393652 302.28345842370527,306.51707834662255 298.7882097773339,306.51707834662255" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-2.215,0.1599999999999997 -1.305,0.1599999999999997 -1.305,0.5599999999999997 -2.215,0.5599999999999997" data-type="line" data-label="" points="298.7882097773339,320.4980729321079 314.6915911183235,320.4980729321079 314.6915911183235,313.5075756393652 298.7882097773339,313.5075756393652" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="9.873,0.9599999999999997 9.673,0.9599999999999997 9.673,1.3599999999999997 9.873,1.3599999999999997" data-type="line" data-label="" points="510.0410379640177,306.51707834662255 506.5457893176464,306.51707834662255 506.5457893176464,299.52658105387985 510.0410379640177,299.52658105387985" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="9.873,0.5599999999999998 9.673,0.5599999999999998 9.673,0.9599999999999997 9.873,0.9599999999999997" data-type="line" data-label="" points="510.0410379640177,313.5075756393652 506.5457893176464,313.5075756393652 506.5457893176464,306.51707834662255 510.0410379640177,306.51707834662255" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="9.873,0.15999999999999992 9.673,0.15999999999999992 9.673,0.5599999999999998 9.873,0.5599999999999998" data-type="line" data-label="" points="510.0410379640177,320.4980729321079 506.5457893176464,320.4980729321079 506.5457893176464,313.5075756393652 510.0410379640177,313.5075756393652" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="14.177999999999999,-7.9315 14.161249999999999,-7.9315 14.161249999999999,-7.7315 13.222000000000001,-7.7315 13.222000000000001,-7.9315 13.422,-7.9315" data-type="line" data-label="" points="585.2762650771608,461.90709504267636 584.9835380030272,461.90709504267636 584.9835380030272,458.411846396305 568.5689765475058,458.411846396305 568.5689765475058,461.90709504267636 572.0642251938771,461.90709504267636" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="6.747,-3.083 8.302499999999998,-3.083 8.302499999999998,-3.1915 9.857999999999999,-3.1915" data-type="line" data-label="" points="455.41030162123366,377.17352973301917 482.5945979683867,377.17352973301917 482.5945979683867,379.0697021236756 509.7788943155398,379.0697021236756" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="6.747,-4.083 8.302499999999998,-4.083 8.302499999999998,-4.1485 9.857999999999999,-4.1485" data-type="line" data-label="" points="455.41030162123366,394.64977296487587 482.5945979683867,394.64977296487587 482.5945979683867,395.7944668965625 509.7788943155398,395.7944668965625" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="6.747,-5.083000000000001 8.302499999999998,-5.083000000000001 8.302499999999998,-5.12 9.857999999999999,-5.12" data-type="line" data-label="" points="455.41030162123366,412.12601619673256 482.5945979683867,412.12601619673256 482.5945979683867,412.7726371963113 509.7788943155398,412.7726371963113" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="6.747,-2.083 8.302499999999998,-2.083 8.302499999999998,-2.2199999999999998 9.857999999999999,-2.2199999999999998" data-type="line" data-label="" points="455.41030162123366,359.69728650116247 482.5945979683867,359.69728650116247 482.5945979683867,362.09153182392686 509.7788943155398,362.09153182392686" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-5.0729999999999995,5.0315 -5.273,5.0315 -5.273,6.046500000000001 -3.3229999999999986,6.046500000000001 -3.3229999999999986,5.0315 -3.522999999999999,5.0315" data-type="line" data-label="" points="248.84110662068747,235.36255402811798 245.34585797431612,235.36255402811798 245.34585797431612,217.6241671477834 279.4245322764367,217.6241671477834 279.4245322764367,235.36255402811798 275.92928363006536,235.36255402811798" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-13.258000000000001,-6.4914999999999985 -13.258000000000001,-6.691499999999998 -13.908,-6.691499999999998 -13.908,-7.9315 -13.258000000000001,-7.9315 -13.258000000000001,-7.7315000000000005" data-type="line" data-label="" points="105.79805576794035,436.7413047888027 105.79805576794035,440.236553435174 94.43849766723352,440.236553435174 94.43849766723352,461.90709504267636 105.79805576794035,461.90709504267636 105.79805576794035,458.411846396305" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-12.7,8.408499999999995 -12.7,8.5085 -14.191999999999997,8.5085" data-type="line" data-label="" points="115.54979949131643,176.345280634138 115.54979949131643,174.59765631095223 89.47524458938628,174.59765631095223" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-12.7,8.208499999999994 -13.445999999999998,8.208499999999994 -13.445999999999998,-3.9115000000000006 -6.9399999999999995,-3.9115000000000006 -6.9399999999999995,8.408499999999995 -12.7,8.408499999999995" data-type="line" data-label="" points="115.54979949131643,179.84052928050934 102.51252204035134,179.84052928050934 102.51252204035134,391.6525972506124 216.21296050681102,391.6525972506124 216.21296050681102,176.345280634138 115.54979949131643,176.345280634138" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-12.7,7.808499999999995 -12.899999999999999,7.808499999999995 -12.899999999999999,8.208499999999994 -12.7,8.208499999999994" data-type="line" data-label="" points="115.54979949131643,186.83102657325202 112.05455084494511,186.83102657325202 112.05455084494511,179.84052928050934 115.54979949131643,179.84052928050934" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-9.7,7.408499999999998 -7.079000000000001,7.408499999999998 -7.079000000000001,8.008499999999996 -9.7,8.008499999999996" data-type="line" data-label="" points="167.97852918688653,193.82152386599464 213.78376269758292,193.82152386599464 213.78376269758292,183.33577792688064 167.97852918688653,183.33577792688064" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-9.7,6.008500000000003 -7.079000000000001,6.008500000000003 -7.079000000000001,7.408499999999998 -9.7,7.408499999999998" data-type="line" data-label="" points="167.97852918688653,218.28826439059392 213.78376269758292,218.28826439059392 213.78376269758292,193.82152386599464 167.97852918688653,193.82152386599464" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-12.7,2.6084999999999923 -14.360999999999997,2.6084999999999923 -14.360999999999997,4.0084999999999935 -12.7,4.0084999999999935" data-type="line" data-label="" points="115.54979949131643,277.70749137890687 86.52175948320249,277.70749137890687 86.52175948320249,253.2407508543075 115.54979949131643,253.2407508543075" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-12.7,2.208499999999992 -13.640999999999998,2.208499999999992 -13.640999999999998,2.6084999999999923 -12.7,2.6084999999999923" data-type="line" data-label="" points="115.54979949131643,284.69798867164957 99.1046546101393,284.69798867164957 99.1046546101393,277.70749137890687 115.54979949131643,277.70749137890687" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-12.7,0.8084999999999907 -13.640999999999998,0.8084999999999908 -13.640999999999998,2.208499999999992 -12.7,2.208499999999992" data-type="line" data-label="" points="115.54979949131643,309.16472919624897 99.1046546101393,309.16472919624897 99.1046546101393,284.69798867164957 115.54979949131643,284.69798867164957" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-12.7,-0.7915000000000045 -13.640999999999998,-0.7915000000000052 -13.640999999999998,0.6084999999999912 -12.7,0.6084999999999905" data-type="line" data-label="" points="115.54979949131643,337.1267183672196 99.1046546101393,337.1267183672196 99.1046546101393,312.6599778426203 115.54979949131643,312.6599778426203" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-12.7,-2.391499999999999 -13.761,-2.3914999999999997 -13.761,-0.7915000000000038 -12.7,-0.7915000000000045" data-type="line" data-label="" points="115.54979949131643,365.08870753819025 97.00750542231648,365.08870753819025 97.00750542231648,337.1267183672196 115.54979949131643,337.1267183672196" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-9.7,-1.7914999999999957 -7.199000000000002,-1.7914999999999957 -7.199000000000002,-1.1914999999999951 -9.7,-1.1914999999999956" data-type="line" data-label="" points="167.97852918688653,354.60296159907614 211.6866135097601,354.60296159907614 211.6866135097601,344.11721565996214 167.97852918688653,344.11721565996214" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-9.7,-2.3914999999999953 -7.079000000000001,-2.3914999999999953 -7.079000000000001,-1.7914999999999948 -9.7,-1.7914999999999957" data-type="line" data-label="" points="167.97852918688653,365.0887075381902 213.78376269758292,365.0887075381902 213.78376269758292,354.60296159907614 167.97852918688653,354.60296159907614" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="0.907,-1.2829999999999995 0.7070000000000001,-1.2829999999999995 0.7070000000000001,-1.0829999999999995 -2.554,-1.0829999999999995 -2.554,-0.6829999999999996 0.7070000000000001,-0.6829999999999996 0.7070000000000001,1.842999999999999 0.907,1.842999999999999" data-type="line" data-label="" points="353.3490411471905,345.7162919156771 349.85379250081917,345.7162919156771 349.85379250081917,342.22104326930577 292.8637633217345,342.22104326930577 292.8637633217345,335.23054597656306 349.85379250081917,335.23054597656306 349.85379250081917,291.0855555728931 353.3490411471905,291.0855555728931" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="6.747,-1.2830000000000004 8.309999999999999,-1.2830000000000004 8.309999999999999,-0.2829999999999993 8.528,-0.2829999999999993 8.528,0.11700000000000071 8.309999999999999,0.11700000000000071 8.309999999999999,2.3599999999999994 9.873,2.3599999999999994" data-type="line" data-label="" points="455.41030162123366,345.7162919156771 482.72566979262564,345.7162919156771 482.72566979262564,328.2400486838204 486.5354908171704,328.2400486838204 486.5354908171704,321.2495513910777 482.72566979262564,321.2495513910777 482.72566979262564,282.05033782202315 510.0410379640177,282.05033782202315" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="6.747,-0.883 6.947,-0.883 6.947,3.343 6.747,3.343" data-type="line" data-label="" points="455.41030162123366,338.7257946229344 458.905550267605,338.7257946229344 458.905550267605,264.871190725108 455.41030162123366,264.871190725108" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-6.342,6.491499999999999 -6.342,6.6915 -1.714,6.6915 -1.714,2.243 0.907,2.2430000000000003" data-type="line" data-label="" points="226.6637539594613,209.8472389096072 226.6637539594613,206.35199026323585 307.54380763649414,206.35199026323585 307.54380763649414,284.0950582801504 353.3490411471905,284.0950582801504" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-14.191999999999997,8.108500000000001 -15.342999999999996,8.108500000000001" data-type="line" data-label="" points="89.47524458938628,181.5881536036949 69.36008862951923,181.5881536036949" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-5.273,5.0315 -5.8629999999999995,5.0315 -5.8629999999999995,5.0305" data-type="line" data-label="" points="245.34585797431612,235.36255402811798 235.0348744675207,235.36255402811798 235.0348744675207,235.38003027134982" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="9.873,0.15999999999999992 9.082999999999998,0.15999999999999992" data-type="line" data-label="" points="510.0410379640177,320.4980729321079 496.23480581085084,320.4980729321079" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="6.747,3.7430000000000003 10.887999999999995,3.7430000000000003 10.887999999999995,3.6920000000000006" data-type="line" data-label="" points="455.41030162123366,257.8806934323653 527.7794248443522,257.8806934323653 527.7794248443522,258.77198183719" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-13.258000000000001,-5.8915 -13.258000000000001,-5.7905 -13.709,-5.7905" data-type="line" data-label="" points="105.79805576794035,426.25555884968867 105.79805576794035,424.4904582832712 97.916270070373,424.4904582832712" fill="none" stroke="purple" stroke-width="1px"/></g><g><rect data-type="rect" data-label="schematic_component_2" data-x="-13.1355" data-y="-7.351500000000001" x="97.93374631360486" y="445.129901540094" width="20.010298500475898" height="13.281944856211055" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="schematic_component_3" data-x="-1.4979999999999998" data-y="-4.2485" x="293.84243294271846" y="390.55159392700546" width="34.9524864637134" height="13.980994585485405" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="schematic_component_4" data-x="-14.741999999999997" data-y="8.3085" x="70.25137703434386" y="174.59765631095223" width="19.223867555042403" height="6.990497292742674" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="schematic_component_5" data-x="-11.2" data-y="2.5084999999999997" x="115.54979949131643" y="176.3452806341379" width="52.4287296955701" height="206.21967013590904" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="schematic_component_6" data-x="-4.297999999999999" data-y="5.0315" x="248.84110662068747" y="225.3137141698004" width="27.088177009377887" height="20.097679716635213" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="schematic_component_7" data-x="-2.9899999999999998" data-y="1.2599999999999998" x="271.70003276795603" y="275.9336526908733" width="27.088177009377887" height="50.68110537238442" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="schematic_component_8" data-x="10.648" data-y="1.2599999999999998" x="510.04103796401773" y="275.9336526908733" width="27.088177009377944" height="50.68110537238442" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="schematic_component_9" data-x="10.457999999999998" data-y="-2.32" x="509.77889431553984" y="358.5962831775555" width="20.971491878227994" height="10.485745939113997" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="schematic_component_10" data-x="10.457999999999998" data-y="-3.2915" x="509.77889431553984" y="375.57445347730425" width="20.971491878227994" height="10.485745939113997" fill="hsl(320, 100%, 50%, 0.8)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="schematic_component_11" data-x="10.457999999999998" data-y="-4.2485" x="509.77889431553984" y="392.2992182501912" width="20.971491878227994" height="10.485745939113997" fill="hsl(320, 100%, 50%, 0.8)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="schematic_component_12" data-x="10.457999999999998" data-y="-5.22" x="509.77889431553984" y="409.27738854993993" width="20.971491878227994" height="10.485745939113997" fill="hsl(320, 100%, 50%, 0.8)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="schematic_component_13" data-x="-9.142" data-y="-5.988499999999999" x="160.25402967840586" y="420.96025715043606" width="34.9524864637134" height="13.980994585485348" fill="hsl(320, 100%, 50%, 0.8)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="schematic_component_14" data-x="-11.017999999999999" data-y="-7.351500000000001" x="132.71147034499973" y="437.78987938271416" width="24.466740524599345" height="27.961989170970696" fill="hsl(320, 100%, 50%, 0.8)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="schematic_component_15" data-x="-6.127" data-y="6.1915" x="218.7994445051258" y="209.8472389096072" width="23.243403498369418" height="10.485745939114025" fill="hsl(320, 100%, 50%, 0.8)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="schematic_component_16" data-x="-13.043" data-y="-6.1915" x="97.93374631360491" y="426.25555884968867" width="23.24340349836936" height="10.485745939114054" fill="hsl(320, 100%, 50%, 0.8)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="schematic_component_17" data-x="12.29925" data-y="-7.9315" x="546.1294802378018" y="460.15947071949074" width="12.626585735016533" height="3.4952486463712944" fill="hsl(320, 100%, 50%, 0.8)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="schematic_component_18" data-x="13.783249999999999" data-y="-7.9315" x="572.0642251938771" y="460.15947071949074" width="12.626585735016533" height="3.4952486463712944" fill="hsl(320, 100%, 50%, 0.8)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="schematic_component_19" data-x="11.60325" data-y="-7.9315" x="532.9174403545181" y="460.15947071949074" width="14.723734922839185" height="3.4952486463712944" fill="hsl(320, 100%, 50%, 0.8)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="schematic_component_20" data-x="14.599249999999998" data-y="-7.9315" x="585.2762650771608" y="460.15947071949074" width="14.723734922839185" height="3.4952486463712944" fill="hsl(320, 100%, 50%, 0.8)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="schematic_component_21" data-x="3.827" data-y="4.543" x="353.3490411471905" y="178.0142618627802" width="102.06126047404314" height="131.77087396819954" fill="hsl(320, 100%, 50%, 0.8)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="schematic_component_22" data-x="3.827" data-y="-3.383" x="353.3490411471905" y="323.28553372758904" width="102.06126047404314" height="118.2617379499743" fill="hsl(320, 100%, 50%, 0.8)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="I2C" data-x="-1.918" data-y="-3.7335000000000003" x="299.7843556415497" y="386.35729555135987" width="8.388596751291232" height="4.369060807964161" fill="rgba(160, 0, 220, 0.14)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="J1" data-x="-14.771999999999998" data-y="8.6235" x="76.19329973317512" y="170.40335793530664" width="6.291447563468438" height="4.369060807964189" fill="rgba(160, 0, 220, 0.14)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="SEAM-20-03.0-S-06-2-A-K-TR" data-x="-10.739999999999998" data-y="-3.5215000000000005" x="122.54029678405914" y="383.26400049932124" width="54.52587888339286" height="3.1457237817342047" fill="rgba(160, 0, 220, 0.14)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="J2" data-x="-12.18" data-y="8.5235" x="121.4917221901477" y="172.1509822584923" width="6.2914475634684095" height="4.369060807964161" fill="rgba(160, 0, 220, 0.14)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="GBC03DABN-M30" data-x="-3.892999999999999" data-y="4.3265" x="255.83160391343014" y="246.11044361570984" width="27.26293944169646" height="3.1457237817342047" fill="rgba(160, 0, 220, 0.14)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="J3" data-x="-4.552999999999999" data-y="5.721500000000001" x="254.78302931951873" y="221.11941579415475" width="6.291447563468381" height="4.369060807964189" fill="rgba(160, 0, 220, 0.14)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="09452812800" data-x="-2.705" data-y="-0.3200000000000002" x="278.69053006069873" y="327.31380779253203" width="23.068641066050816" height="3.1457237817342047" fill="rgba(160, 0, 220, 0.14)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="J4" data-x="-3.245" data-y="2.825" x="277.6419554667873" y="271.73935431522773" width="6.2914475634684095" height="4.3690608079642175" fill="rgba(160, 0, 220, 0.14)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="09452812800" data-x="10.933" data-y="-0.3200000000000002" x="517.0315352567604" y="327.31380779253203" width="23.06864106605076" height="3.1457237817342047" fill="rgba(160, 0, 220, 0.14)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="J5" data-x="10.393" data-y="2.825" x="515.982960662849" y="271.73935431522773" width="6.2914475634684095" height="4.3690608079642175" fill="rgba(160, 0, 220, 0.14)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="1751248" data-x="10.677999999999999" data-y="-2.7499999999999996" x="516.7693916082826" y="369.7810788459438" width="14.680044314759584" height="3.1457237817342047" fill="rgba(160, 0, 220, 0.14)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="J6" data-x="10.378" data-y="-1.9049999999999998" x="515.7208170143713" y="354.40198480190986" width="6.291447563468296" height="4.3690608079642175" fill="rgba(160, 0, 220, 0.14)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="1751248" data-x="10.677999999999999" data-y="-3.7215" x="516.7693916082826" y="386.7592491456926" width="14.680044314759584" height="3.1457237817342047" fill="rgba(160, 0, 220, 0.14)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="J7" data-x="10.378" data-y="-2.8765" x="515.7208170143713" y="371.3801551016586" width="6.291447563468296" height="4.3690608079642175" fill="rgba(160, 0, 220, 0.14)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="1751248" data-x="10.677999999999999" data-y="-4.6785" x="516.7693916082826" y="403.4840139185794" width="14.680044314759584" height="3.1457237817342047" fill="rgba(160, 0, 220, 0.14)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="J8" data-x="10.378" data-y="-3.8335" x="515.7208170143713" y="388.10491987454554" width="6.291447563468296" height="4.369060807964161" fill="rgba(160, 0, 220, 0.14)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="1751248" data-x="10.677999999999999" data-y="-5.6499999999999995" x="516.7693916082826" y="420.4621842183282" width="14.680044314759584" height="3.1457237817342047" fill="rgba(160, 0, 220, 0.14)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="J9" data-x="10.378" data-y="-4.805" x="515.7208170143713" y="405.0830901742943" width="6.291447563468296" height="4.3690608079642175" fill="rgba(160, 0, 220, 0.14)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="J10" data-x="-9.562" data-y="-5.4735" x="166.19595237723718" y="416.76595877479053" width="8.388596751291203" height="4.369060807964161" fill="rgba(160, 0, 220, 0.14)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="SBH11-PBPC-D07-ST-BK" data-x="-10.117999999999999" data-y="-8.281500000000001" x="139.70196763774243" y="466.45091828295915" width="41.942983756456044" height="3.1457237817342047" fill="rgba(160, 0, 220, 0.14)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="J11" data-x="-11.138" data-y="-6.4365000000000006" x="138.65339304383096" y="433.5955810070685" width="8.388596751291232" height="4.369060807964161" fill="rgba(160, 0, 220, 0.14)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="U1_T1_Data_Top_Level" data-x="2.5069999999999997" data-y="8.428" x="359.2909638460218" y="173.8199634871346" width="44.04013294427887" height="4.369060807964161" fill="rgba(160, 0, 220, 0.14)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="T1_Data_Top_Level.SchDoc" data-x="2.747" data-y="0.6430000000000001" x="360.3395384399332" y="310.484185560254" width="50.331580507747276" height="3.1457237817342047" fill="rgba(160, 0, 220, 0.14)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="U1_T1_Power_Top_Level" data-x="2.567" data-y="0.11550000000000016" x="359.2909638460218" y="319.0912353519434" width="46.137282132101745" height="4.3690608079642175" fill="rgba(160, 0, 220, 0.14)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="T1_Power_Top_Level.SchDoc" data-x="2.8070000000000004" data-y="-6.8965000000000005" x="360.3395384399332" y="442.2463214068376" width="52.4287296955701" height="3.1457237817342047" fill="rgba(160, 0, 220, 0.14)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="netId: NET_RST
|
|
2
2
|
globalConnNetId: connectivity_net9" data-x="-14.388" data-y="-6.691499999999998" x="77.6613041646511" y="438.48892911198834" width="16.777193502582435" height="3.4952486463713512" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="netId: NET_RST
|
|
3
3
|
globalConnNetId: connectivity_net9" data-x="0.42600000000000005" data-y="-4.083" x="336.5543714013762" y="392.9021486416902" width="16.777193502582463" height="3.4952486463713512" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="netId: NET_GND
|
|
4
4
|
globalConnNetId: connectivity_net10" data-x="-13.258000000000001" data-y="-6.4905" x="104.0504314447547" y="428.3352317942797" width="3.495248646371323" height="16.777193502582406" fill="hsl(80, 100%, 50%, 0.35)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="netId: NET_GND
|
|
@@ -10,8 +10,7 @@ globalConnNetId: connectivity_net10" data-x="7.228000000000001" data-y="-6.083"
|
|
|
10
10
|
globalConnNetId: connectivity_net11" data-x="-16.182999999999996" data-y="8.108500000000001" x="39.99999999999997" y="179.84052928050926" width="29.360088629519225" height="3.495248646371323" fill="hsl(80, 100%, 50%, 0.35)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="netId: NET_Local_3V3
|
|
11
11
|
globalConnNetId: connectivity_net11" data-x="7.588" data-y="-0.0829999999999993" x="455.4277778644655" y="322.9971757142634" width="29.360088629519282" height="3.4952486463713512" fill="hsl(80, 100%, 50%, 0.35)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="netId: NET_PHY_VDD
|
|
12
12
|
globalConnNetId: connectivity_net12" data-x="-13.470999999999997" data-y="8.3085" x="89.49272083261813" y="176.3452806341379" width="25.165790253873666" height="3.495248646371323" fill="hsl(80, 100%, 50%, 0.35)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="netId: NET_PHY_VDD
|
|
13
|
-
globalConnNetId: connectivity_net12" data-x="-
|
|
14
|
-
globalConnNetId: connectivity_net12" data-x="0.18600000000000005" data-y="2.2429999999999994" x="328.16577465008504" y="282.3474339569647" width="25.165790253873638" height="3.4952486463713512" fill="hsl(80, 100%, 50%, 0.35)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="netId: NET_External_3V3
|
|
13
|
+
globalConnNetId: connectivity_net12" data-x="-2.434" data-y="6.5195" x="282.37801738262044" y="207.61027977592954" width="25.165790253873695" height="3.4952486463713512" fill="hsl(80, 100%, 50%, 0.35)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="netId: NET_External_3V3
|
|
15
14
|
globalConnNetId: connectivity_net13" data-x="-14.465999999999998" data-y="-3.9115000000000006" x="66.8609858473637" y="389.90497292742674" width="35.65153619298766" height="3.4952486463713512" fill="hsl(80, 100%, 50%, 0.35)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="netId: NET_AGND
|
|
16
15
|
globalConnNetId: connectivity_net14" data-x="-7.683846153846154" data-y="7.618599999999998" x="193.7761528499119" y="186.47975408429164" width="18.87434269040523" height="7.3400221573798206" fill="#00000066" stroke="#000000" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="netId: NET_AGND
|
|
17
16
|
globalConnNetId: connectivity_net14" data-x="-12.899999999999999" data-y="-3.6014999999999953" x="102.61737949974251" y="382.56495077004683" width="18.8743426904052" height="7.340022157379792" fill="#00000066" stroke="#000000" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="netId: NET_AGND
|
|
@@ -149,19 +148,10 @@ globalConnNetId: connectivity_net0" data-x="-0.5339999999999999" data-y="2.36" x
|
|
|
149
148
|
globalConnNetId: connectivity_net1" data-x="-0.7739999999999999" data-y="-0.8829999999999996" x="294.6113876449201" y="336.97817029974874" width="58.72017725903851" height="3.4952486463713512" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="netId: .U1_T1_Data_Top_Level > .pin1 to .J4 > .pin2
|
|
150
149
|
globalConnNetId: connectivity_net1" data-x="-0.5339999999999999" data-y="1.9599999999999997" x="298.80568602056576" y="287.2932107915802" width="58.72017725903851" height="3.4952486463713512" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="netId: .U1_T1_Data_Top_Level > .pin1 to .J4 > .pin2
|
|
151
150
|
globalConnNetId: connectivity_net1" data-x="-0.7739999999999999" data-y="1.642999999999999" x="294.6113876449201" y="292.83317989607883" width="58.72017725903851" height="3.4952486463712944" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="netId: .U1_T1_Power_Top_Level > .pin6 to .J5 > .pin1
|
|
152
|
-
globalConnNetId: connectivity_net2" data-x="
|
|
153
|
-
globalConnNetId: connectivity_net2" data-x="8.
|
|
154
|
-
globalConnNetId: connectivity_net3" data-x="8.
|
|
155
|
-
globalConnNetId: connectivity_net3" data-x="8.192" data-y="1.9599999999999995" x="451.3033844617473" y="287.2932107915802" width="58.72017725903851" height="3.4952486463713512" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="netId:
|
|
156
|
-
globalConnNetId: connectivity_net3" data-x="8.427999999999999" data-y="3.343" x="455.4277778644655" y="263.12356640192235" width="58.720177259038564" height="3.4952486463713512" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="netId: .U1_T1_Power_Top_Level > .pin13 to .J6 > .pin1
|
|
157
|
-
globalConnNetId: connectivity_net7" data-x="8.908" data-y="-2.083" x="455.4277778644655" y="357.9496621779768" width="75.49737076162091" height="3.4952486463713512" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="netId: .U1_T1_Power_Top_Level > .pin13 to .J6 > .pin1
|
|
158
|
-
globalConnNetId: connectivity_net7" data-x="7.696999999999998" data-y="-2.2199999999999998" x="434.26404731068703" y="360.34390750074124" width="75.49737076162091" height="3.4952486463712944" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="netId: .U1_T1_Power_Top_Level > .pin8 to .J7 > .pin1
|
|
159
|
-
globalConnNetId: connectivity_net4" data-x="8.668" data-y="-3.083" x="455.4277778644655" y="375.4259054098335" width="67.10877401032974" height="3.4952486463713512" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="netId: .U1_T1_Power_Top_Level > .pin8 to .J7 > .pin1
|
|
160
|
-
globalConnNetId: connectivity_net4" data-x="7.9369999999999985" data-y="-3.1915" x="442.65264406197826" y="377.3220778004899" width="67.10877401032974" height="3.4952486463713512" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="netId: .U1_T1_Power_Top_Level > .pin11 to .J8 > .pin1
|
|
161
|
-
globalConnNetId: connectivity_net5" data-x="8.847999999999999" data-y="-4.083" x="455.4277778644655" y="392.9021486416902" width="73.40022157379815" height="3.4952486463713512" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="netId: .U1_T1_Power_Top_Level > .pin11 to .J8 > .pin1
|
|
162
|
-
globalConnNetId: connectivity_net5" data-x="7.756999999999999" data-y="-4.1485" x="436.36119649850986" y="394.0468425733768" width="73.40022157379815" height="3.4952486463713512" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="netId: .U1_T1_Power_Top_Level > .pin12 to .J9 > .pin1
|
|
163
|
-
globalConnNetId: connectivity_net6" data-x="8.488" data-y="-5.083000000000001" x="455.4277778644655" y="410.3783918735469" width="60.81732644686133" height="3.4952486463713512" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="netId: .U1_T1_Power_Top_Level > .pin12 to .J9 > .pin1
|
|
164
|
-
globalConnNetId: connectivity_net6" data-x="8.116999999999999" data-y="-5.12" x="448.9440916254467" y="411.02501287312566" width="60.81732644686133" height="3.4952486463712944" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="netId: NET_TEST
|
|
151
|
+
globalConnNetId: connectivity_net2" data-x="9.989999999999998" data-y="-1.2830000000000004" x="482.7256697926256" y="343.96866759249144" width="58.72017725903851" height="3.4952486463713512" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="netId: .U1_T1_Data_Top_Level > .pin4 to .J5 > .pin1
|
|
152
|
+
globalConnNetId: connectivity_net2" data-x="8.427999999999999" data-y="3.543" x="455.4277778644655" y="259.628317755551" width="58.720177259038564" height="3.4952486463713512" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="netId: .U1_T1_Power_Top_Level > .pin7 to .J5 > .pin2
|
|
153
|
+
globalConnNetId: connectivity_net3" data-x="8.627" data-y="3.343" x="458.90555026760507" y="263.12356640192235" width="58.72017725903845" height="3.4952486463713512" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="netId: .U1_T1_Data_Top_Level > .pin2 to .J5 > .pin2
|
|
154
|
+
globalConnNetId: connectivity_net3" data-x="8.192" data-y="1.9599999999999995" x="451.3033844617473" y="287.2932107915802" width="58.72017725903851" height="3.4952486463713512" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="netId: NET_TEST
|
|
165
155
|
globalConnNetId: connectivity_net100" data-x="-12.258999999999999" data-y="-7.351500000000001" x="113.8196514113626" y="450.02324964501383" width="18.874342690405285" height="3.4952486463713512" fill="hsl(320, 100%, 50%, 0.35)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="netId: NET_TEST
|
|
166
156
|
globalConnNetId: connectivity_net100" data-x="0.366" data-y="-4.4830000000000005" x="334.45722221355345" y="399.89264593443295" width="18.87434269040523" height="3.4952486463712944" fill="hsl(320, 100%, 50%, 0.35)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="netId: NET_MSP_3V3
|
|
167
157
|
globalConnNetId: connectivity_net101" data-x="-14.429" data-y="-5.7905" x="72.75047981649936" y="422.74283396008553" width="25.165790253873638" height="3.4952486463713512" fill="hsl(320, 100%, 50%, 0.35)" stroke="black" stroke-width="0.057220535714285696"/></g><g><rect data-type="rect" data-label="netId: NET_MSP_3V3
|
|
@@ -419,8 +409,7 @@ orientation: x+" data-x="6.747" data-y="-6.083" cx="455.41030162123366" cy="429.
|
|
|
419
409
|
orientation: x-" data-x="-15.342999999999996" data-y="8.108500000000001" cx="69.36008862951923" cy="181.5881536036949" r="3" fill="hsl(80, 100%, 50%, 0.9)"/></g><g><circle data-type="point" data-label="anchorPoint
|
|
420
410
|
orientation: x+" data-x="6.747" data-y="-0.0829999999999993" cx="455.41030162123366" cy="324.74480003744907" r="3" fill="hsl(80, 100%, 50%, 0.9)"/></g><g><circle data-type="point" data-label="anchorPoint
|
|
421
411
|
orientation: x+" data-x="-14.191999999999997" data-y="8.3085" cx="89.47524458938628" cy="178.09290495732355" r="3" fill="hsl(80, 100%, 50%, 0.9)"/></g><g><circle data-type="point" data-label="anchorPoint
|
|
422
|
-
orientation: x-" data-x="-
|
|
423
|
-
orientation: x-" data-x="0.907" data-y="2.2429999999999994" cx="353.3490411471905" cy="284.0950582801504" r="3" fill="hsl(80, 100%, 50%, 0.9)"/></g><g><circle data-type="point" data-label="anchorPoint
|
|
412
|
+
orientation: x-" data-x="-1.714" data-y="6.5195" cx="307.54380763649414" cy="209.35790409911522" r="3" fill="hsl(80, 100%, 50%, 0.9)"/></g><g><circle data-type="point" data-label="anchorPoint
|
|
424
413
|
orientation: x-" data-x="-13.445999999999998" data-y="-3.9115000000000006" cx="102.51252204035134" cy="391.6525972506124" r="3" fill="hsl(80, 100%, 50%, 0.9)"/></g><g><circle data-type="point" data-label="anchorPoint
|
|
425
414
|
orientation: y+" data-x="-7.683846153846154" data-y="7.408499999999998" cx="203.21332419511452" cy="193.82152386599464" r="3" fill="hsl(80, 100%, 50%, 0.9)"/></g><g><circle data-type="point" data-label="anchorPoint
|
|
426
415
|
orientation: y-" data-x="-12.899999999999999" data-y="-3.3914999999999953" cx="112.05455084494511" cy="382.5649507700469" r="3" fill="hsl(80, 100%, 50%, 0.9)"/></g><g><circle data-type="point" data-label="anchorPoint
|
|
@@ -558,19 +547,10 @@ orientation: x+" data-x="-2.215" data-y="2.36" cx="298.7882097773339" cy="282.05
|
|
|
558
547
|
orientation: x-" data-x="0.907" data-y="-0.8829999999999996" cx="353.3490411471905" cy="338.7257946229344" r="3" fill="hsl(40, 100%, 50%, 0.9)"/></g><g><circle data-type="point" data-label="anchorPoint
|
|
559
548
|
orientation: x+" data-x="-2.215" data-y="1.9599999999999997" cx="298.7882097773339" cy="289.04083511476585" r="3" fill="hsl(40, 100%, 50%, 0.9)"/></g><g><circle data-type="point" data-label="anchorPoint
|
|
560
549
|
orientation: x-" data-x="0.907" data-y="1.642999999999999" cx="353.3490411471905" cy="294.58080421926445" r="3" fill="hsl(40, 100%, 50%, 0.9)"/></g><g><circle data-type="point" data-label="anchorPoint
|
|
561
|
-
orientation: x+" data-x="
|
|
562
|
-
orientation: x
|
|
563
|
-
orientation: x+" data-x="6.
|
|
550
|
+
orientation: x+" data-x="8.309999999999999" data-y="-1.2830000000000004" cx="482.72566979262564" cy="345.7162919156771" r="3" fill="hsl(40, 100%, 50%, 0.9)"/></g><g><circle data-type="point" data-label="anchorPoint
|
|
551
|
+
orientation: x+" data-x="6.747" data-y="3.543" cx="455.41030162123366" cy="261.37594207873667" r="3" fill="hsl(40, 100%, 50%, 0.9)"/></g><g><circle data-type="point" data-label="anchorPoint
|
|
552
|
+
orientation: x+" data-x="6.947" data-y="3.343" cx="458.905550267605" cy="264.871190725108" r="3" fill="hsl(40, 100%, 50%, 0.9)"/></g><g><circle data-type="point" data-label="anchorPoint
|
|
564
553
|
orientation: x-" data-x="9.873" data-y="1.9599999999999995" cx="510.0410379640177" cy="289.04083511476585" r="3" fill="hsl(40, 100%, 50%, 0.9)"/></g><g><circle data-type="point" data-label="anchorPoint
|
|
565
|
-
orientation: x+" data-x="6.747" data-y="3.343" cx="455.41030162123366" cy="264.871190725108" r="3" fill="hsl(40, 100%, 50%, 0.9)"/></g><g><circle data-type="point" data-label="anchorPoint
|
|
566
|
-
orientation: x+" data-x="6.747" data-y="-2.083" cx="455.41030162123366" cy="359.69728650116247" r="3" fill="hsl(40, 100%, 50%, 0.9)"/></g><g><circle data-type="point" data-label="anchorPoint
|
|
567
|
-
orientation: x-" data-x="9.857999999999999" data-y="-2.2199999999999998" cx="509.7788943155398" cy="362.09153182392686" r="3" fill="hsl(40, 100%, 50%, 0.9)"/></g><g><circle data-type="point" data-label="anchorPoint
|
|
568
|
-
orientation: x+" data-x="6.747" data-y="-3.083" cx="455.41030162123366" cy="377.17352973301917" r="3" fill="hsl(40, 100%, 50%, 0.9)"/></g><g><circle data-type="point" data-label="anchorPoint
|
|
569
|
-
orientation: x-" data-x="9.857999999999999" data-y="-3.1915" cx="509.7788943155398" cy="379.0697021236756" r="3" fill="hsl(40, 100%, 50%, 0.9)"/></g><g><circle data-type="point" data-label="anchorPoint
|
|
570
|
-
orientation: x+" data-x="6.747" data-y="-4.083" cx="455.41030162123366" cy="394.64977296487587" r="3" fill="hsl(40, 100%, 50%, 0.9)"/></g><g><circle data-type="point" data-label="anchorPoint
|
|
571
|
-
orientation: x-" data-x="9.857999999999999" data-y="-4.1485" cx="509.7788943155398" cy="395.7944668965625" r="3" fill="hsl(40, 100%, 50%, 0.9)"/></g><g><circle data-type="point" data-label="anchorPoint
|
|
572
|
-
orientation: x+" data-x="6.747" data-y="-5.083000000000001" cx="455.41030162123366" cy="412.12601619673256" r="3" fill="hsl(40, 100%, 50%, 0.9)"/></g><g><circle data-type="point" data-label="anchorPoint
|
|
573
|
-
orientation: x-" data-x="9.857999999999999" data-y="-5.12" cx="509.7788943155398" cy="412.7726371963113" r="3" fill="hsl(40, 100%, 50%, 0.9)"/></g><g><circle data-type="point" data-label="anchorPoint
|
|
574
554
|
orientation: x-" data-x="-11.717999999999998" data-y="-7.351500000000001" cx="132.71147034499973" cy="451.7708739681995" r="3" fill="hsl(320, 100%, 50%, 0.9)"/></g><g><circle data-type="point" data-label="anchorPoint
|
|
575
555
|
orientation: x-" data-x="0.907" data-y="-4.4830000000000005" cx="353.3490411471905" cy="401.64027025761857" r="3" fill="hsl(320, 100%, 50%, 0.9)"/></g><g><circle data-type="point" data-label="anchorPoint
|
|
576
556
|
orientation: x-" data-x="-13.709" data-y="-5.7905" cx="97.916270070373" cy="424.4904582832712" r="3" fill="hsl(320, 100%, 50%, 0.9)"/></g><g><circle data-type="point" data-label="anchorPoint
|
|
@@ -1137,6 +1137,7 @@
|
|
|
1137
1137
|
},
|
|
1138
1138
|
"width": 5.84,
|
|
1139
1139
|
"height": 7.540000000000001,
|
|
1140
|
+
"sectionId": "card_top_unboxed",
|
|
1140
1141
|
"pins": [
|
|
1141
1142
|
{
|
|
1142
1143
|
"pinId": "schematic_port_0",
|
|
@@ -1363,6 +1364,7 @@
|
|
|
1363
1364
|
},
|
|
1364
1365
|
"width": 5.84,
|
|
1365
1366
|
"height": 6.767000000000001,
|
|
1367
|
+
"sectionId": "card_top_unboxed",
|
|
1366
1368
|
"pins": [
|
|
1367
1369
|
{
|
|
1368
1370
|
"pinId": "schematic_port_43",
|
|
@@ -42,5 +42,36 @@ test("repro TIDA-010076 page 02 net-label placement", () => {
|
|
|
42
42
|
expect(j5AgndLabel.anchorPoint.y).toBeCloseTo(
|
|
43
43
|
Math.min(...j5GroundPins.map((pin) => pin.y)),
|
|
44
44
|
)
|
|
45
|
+
|
|
46
|
+
const powerConnectorPinPairs = [
|
|
47
|
+
["schematic_port_50", "schematic_port_266"],
|
|
48
|
+
["schematic_port_53", "schematic_port_268"],
|
|
49
|
+
["schematic_port_54", "schematic_port_270"],
|
|
50
|
+
["schematic_port_55", "schematic_port_264"],
|
|
51
|
+
]
|
|
52
|
+
const output = solver.inlineNetLabelSolver!.getOutput()
|
|
53
|
+
const clusteredPowerNetIds = new Set(
|
|
54
|
+
inputProblem.directConnections
|
|
55
|
+
.filter((connection) =>
|
|
56
|
+
powerConnectorPinPairs.some((pair) =>
|
|
57
|
+
pair.every((pinId) => connection.pinIds.includes(pinId)),
|
|
58
|
+
),
|
|
59
|
+
)
|
|
60
|
+
.map((connection) => connection.netId),
|
|
61
|
+
)
|
|
62
|
+
|
|
63
|
+
for (const pinPair of powerConnectorPinPairs) {
|
|
64
|
+
expect(
|
|
65
|
+
output.traces.some((trace) =>
|
|
66
|
+
pinPair.every((pinId) => trace.pinIds.includes(pinId)),
|
|
67
|
+
),
|
|
68
|
+
).toBe(true)
|
|
69
|
+
}
|
|
70
|
+
expect(
|
|
71
|
+
output.netLabelPlacements.filter((label) =>
|
|
72
|
+
clusteredPowerNetIds.has(label.netId),
|
|
73
|
+
),
|
|
74
|
+
).toEqual([])
|
|
75
|
+
|
|
45
76
|
expect(solver).toMatchSolverSnapshot(import.meta.path)
|
|
46
77
|
})
|
|
@@ -44,3 +44,83 @@ test("two-pin direct connections use Euclidean max distance", () => {
|
|
|
44
44
|
expect(directConnectionSolver.mspConnectionPairs).toHaveLength(1)
|
|
45
45
|
expect(netConnectionSolver.mspConnectionPairs).toHaveLength(0)
|
|
46
46
|
})
|
|
47
|
+
|
|
48
|
+
test("routes a distant labeled connection when opposed fallback labels would overlap", () => {
|
|
49
|
+
const inputProblem = createInputProblem()
|
|
50
|
+
inputProblem.maxMspPairDistance = 1
|
|
51
|
+
inputProblem.chips[0]!.sectionId = "power-output"
|
|
52
|
+
inputProblem.chips[1]!.sectionId = "power-output"
|
|
53
|
+
inputProblem.chips[0]!.pins.push({
|
|
54
|
+
pinId: "U1.2",
|
|
55
|
+
x: 0,
|
|
56
|
+
y: -0.2,
|
|
57
|
+
_facingDirection: "x+",
|
|
58
|
+
})
|
|
59
|
+
inputProblem.chips[1]!.pins.push({
|
|
60
|
+
pinId: "U2.2",
|
|
61
|
+
x: 2,
|
|
62
|
+
y: 1.8,
|
|
63
|
+
_facingDirection: "x-",
|
|
64
|
+
})
|
|
65
|
+
inputProblem.chips[1]!.pins[0]!.y = 0.1
|
|
66
|
+
inputProblem.directConnections[0]!.netId = "LONG_POWER_NAME"
|
|
67
|
+
inputProblem.directConnections[0]!.netLabelWidth = 1.2
|
|
68
|
+
|
|
69
|
+
const solver = new MspConnectionPairSolver({ inputProblem })
|
|
70
|
+
solver.solve()
|
|
71
|
+
|
|
72
|
+
expect(solver.mspConnectionPairs).toHaveLength(1)
|
|
73
|
+
expect(solver.mspConnectionPairs[0]?.suppressNetLabel).toBe(true)
|
|
74
|
+
})
|
|
75
|
+
|
|
76
|
+
test("keeps distant labeled fallback when opposed labels have room", () => {
|
|
77
|
+
const inputProblem = createInputProblem()
|
|
78
|
+
inputProblem.maxMspPairDistance = 1
|
|
79
|
+
inputProblem.chips[0]!.sectionId = "power-output"
|
|
80
|
+
inputProblem.chips[1]!.sectionId = "power-output"
|
|
81
|
+
inputProblem.chips[0]!.pins.push({
|
|
82
|
+
pinId: "U1.2",
|
|
83
|
+
x: 0,
|
|
84
|
+
y: -0.2,
|
|
85
|
+
_facingDirection: "x+",
|
|
86
|
+
})
|
|
87
|
+
inputProblem.chips[1]!.pins.push({
|
|
88
|
+
pinId: "U2.2",
|
|
89
|
+
x: 2,
|
|
90
|
+
y: 1.8,
|
|
91
|
+
_facingDirection: "x-",
|
|
92
|
+
})
|
|
93
|
+
inputProblem.chips[1]!.pins[0]!.y = 0.1
|
|
94
|
+
inputProblem.directConnections[0]!.netId = "SIG"
|
|
95
|
+
inputProblem.directConnections[0]!.netLabelWidth = 0.6
|
|
96
|
+
|
|
97
|
+
const solver = new MspConnectionPairSolver({ inputProblem })
|
|
98
|
+
solver.solve()
|
|
99
|
+
|
|
100
|
+
expect(solver.mspConnectionPairs).toHaveLength(0)
|
|
101
|
+
})
|
|
102
|
+
|
|
103
|
+
test("does not apply the overlap fallback outside a shared schematic section", () => {
|
|
104
|
+
const inputProblem = createInputProblem()
|
|
105
|
+
inputProblem.maxMspPairDistance = 1
|
|
106
|
+
inputProblem.chips[0]!.pins.push({
|
|
107
|
+
pinId: "U1.2",
|
|
108
|
+
x: 0,
|
|
109
|
+
y: -0.2,
|
|
110
|
+
_facingDirection: "x+",
|
|
111
|
+
})
|
|
112
|
+
inputProblem.chips[1]!.pins.push({
|
|
113
|
+
pinId: "U2.2",
|
|
114
|
+
x: 2,
|
|
115
|
+
y: 1.8,
|
|
116
|
+
_facingDirection: "x-",
|
|
117
|
+
})
|
|
118
|
+
inputProblem.chips[1]!.pins[0]!.y = 0.1
|
|
119
|
+
inputProblem.directConnections[0]!.netId = "LONG_POWER_NAME"
|
|
120
|
+
inputProblem.directConnections[0]!.netLabelWidth = 1.2
|
|
121
|
+
|
|
122
|
+
const solver = new MspConnectionPairSolver({ inputProblem })
|
|
123
|
+
solver.solve()
|
|
124
|
+
|
|
125
|
+
expect(solver.mspConnectionPairs).toHaveLength(0)
|
|
126
|
+
})
|