0hmX/simplified-am62l-computer
This code defines components and scripts for physically representing and routing high-speed DDR memory signals, power lines, and ground planes on an 8-layer PCB with detailed pin assignments, copper pours, and precise via and trace layouts based on TI EVM reference data.
- Version
- 1.0.16
- License
- unset
- Stars
- 0
dist/index.cjs
'use strict';
var jsxRuntime = require('react/jsx-runtime');
var _0hmX_tps6521401vafrPmic = require('@tsci/0hmX.tps6521401vafr-pmic');
var tscircuit_ti = require('@tsci/tscircuit.ti');
var _0hmX_mt53e1g16d1zwFootprint = require('@tsci/0hmX.mt53e1g16d1zw-footprint');
var react = require('react');
var capacityAutorouter = require('@tscircuit/capacity-autorouter');
var bgaFanoutSolver = require('@tscircuit/bga-fanout-solver');
var objPath = require('././assets/USB4125_GF_A_0190-36242f33.obj');
var objPath$1 = require('././assets/TPS259470LRPWR-65e31479.obj');
var objPath$2 = require('././assets/TPS62A02DRLR-d36598cf.obj');
var objPath$3 = require('././assets/DFE201612PD_1R0M_P2-26e59cbf.obj');
var objPath$4 = require('././assets/XRCGB25M000F3A00R0-6a5f0644.obj');
var objPath$5 = require('././assets/DM3AT_SF_PEJM5-c928d38a.obj');
var objPath$6 = require('././assets/TPS22918DBVR-8ef67822.obj');
var objPath$7 = require('././assets/TPD4E02B04DQAR-057af539.obj');
var objPath$8 = require('././assets/SN74AXC1T45DBVR-a0745699.obj');
var objPath$9 = require('././assets/TPD2E2U06DCKR-df64531a.obj');
var objPath$a = require('././assets/S4B_PH_SM4_K_TB_LF__SN_-f5627100.obj');
var objPath$b = require('././assets/SKRPACE010-a0147366.obj');
var objPath$c = require('././assets/SN74LVC1G08DBVR-14340306.obj');
var objPath$d = require('././assets/LTST_C190KGKT-61d0164a.obj');
const connectedSignals = new Set([
...Array.from({ length: 16 }, (_, bit) => `DQ${bit}`),
"DMI0", "DMI1", "DQS0_t", "DQS0_c", "DQS1_t", "DQS1_c",
"CA0", "CA1", "CA2", "CA3", "CA4", "CA5",
"CS", "CKE", "ODT_CA", "CK_t", "CK_c", "RESET_n", "ZQ",
"VSS", "VDD1", "VDD2", "VDDQ",
]);
const memoryNoConnects = _0hmX_mt53e1g16d1zwFootprint.ballMap
.map(({ signal }, index) => ({ signal, pin: `pin${index + 1}` }))
.filter(({ signal }) => !connectedSignals.has(signal))
.map(({ pin }) => pin);
/**
* Uses the registry component directly so its published pin labels,
* pinAttributes, footprint, and datasheet metadata remain authoritative.
*/
const RegistryMt53e1g16 = (props) => {
const name = props.name ?? "U2";
const railConnections = _0hmX_mt53e1g16d1zwFootprint.ballMap.flatMap(({ ball, signal }) => {
const net = signal === "VSS"
? "GND"
: signal === "VDD1"
? "VDD_1V8"
: signal === "VDD2" || signal === "VDDQ"
? "VDD_DDR_1V1"
: undefined;
return net ? [{ ball, net }] : [];
});
return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(_0hmX_mt53e1g16d1zwFootprint.MT53E1G16D1ZW, { ...props, noConnect: memoryNoConnects }), railConnections.map(({ ball, net }, index) => (jsxRuntime.jsx(react.Fragment, { children: jsxRuntime.jsx("trace", { name: `MEM_RAIL_${index + 1}`, from: `${name}.${ball}`, to: `net.${net}` }) }, `${ball}-${net}`)))] }));
};
// Generated from TI TMDS62LEVM SPRCAL6D Altium ASCII board data.
// Coordinates are millimetres relative to U28 (AM62L) centre.
const TI_AM62L_EVM_MEMORY_OFFSET = { "y": -0.050917 };
const TI_AM62L_EVM_DDR_ROUTES = {
"DDR0_DQ0": {
"tiNet": "LPDDR4_DQ0",
"socBall": "F4",
"memoryBall": "B2",
"route": [
{
"route_type": "wire",
"x": 4,
"y": -2.999999,
"width": 0.13208,
"layer": "top"
},
{
"route_type": "wire",
"x": 4.010635,
"y": -2.999999,
"width": 0.13208,
"layer": "top"
},
{
"route_type": "wire",
"x": 4.470517,
"y": -2.540117,
"width": 0.13208,
"layer": "top"
},
{
"route_type": "via",
"x": 4.470517,
"y": -2.540117,
"from_layer": "top",
"to_layer": "inner2",
"via_diameter": 0.4572,
"via_hole_diameter": 0.2032
},
{
"route_type": "wire",
"x": 4.470517,
"y": -2.540117,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 5.080117,
"y": -2.540117,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 5.181717,
"y": -2.641717,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 5.181717,
"y": -3.048625,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 5.301097,
"y": -3.168005,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 5.468737,
"y": -3.168005,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 5.562717,
"y": -3.074025,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 5.562717,
"y": -2.735697,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 5.656697,
"y": -2.641717,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 5.849737,
"y": -2.641717,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 5.943717,
"y": -2.735697,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 5.943717,
"y": -3.436737,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 6.063097,
"y": -3.556117,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 7.264263,
"y": -3.556117,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 7.619863,
"y": -3.200517,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 9.194917,
"y": -3.200517,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 9.779117,
"y": -3.784717,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 11.049117,
"y": -3.784717,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 11.353917,
"y": -4.089517,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 11.678783,
"y": -4.089517,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 11.811117,
"y": -3.957183,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 11.811117,
"y": -3.276463,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 11.912463,
"y": -3.175117,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 12.189323,
"y": -3.175117,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 12.283303,
"y": -3.269097,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 12.283303,
"y": -3.957183,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 12.377283,
"y": -4.051163,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 12.638903,
"y": -4.051163,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 12.732883,
"y": -3.957183,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 12.732883,
"y": -3.751697,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 12.826863,
"y": -3.657717,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 13.037683,
"y": -3.657717,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 13.131663,
"y": -3.751697,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 13.131663,
"y": -3.957183,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 13.225643,
"y": -4.051163,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 13.615279,
"y": -4.051163,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "via",
"x": 13.615279,
"y": -4.051163,
"from_layer": "inner2",
"to_layer": "top",
"via_diameter": 0.4572,
"via_hole_diameter": 0.2032
},
{
"route_type": "wire",
"x": 13.615279,
"y": -4.051163,
"width": 0.2286,
"layer": "top"
},
{
"route_type": "wire",
"x": 13.941928,
"y": -3.65091,
"width": 0.2286,
"layer": "top"
}
]
},
"DDR0_DQ1": {
"tiNet": "LPDDR4_DQ1",
"socBall": "F3",
"memoryBall": "C2",
"route": [
{
"route_type": "wire",
"x": 4.500001,
"y": -2.999999,
"width": 0.13208,
"layer": "top"
},
{
"route_type": "wire",
"x": 4.000617,
"y": -3.454517,
"width": 0.13208,
"layer": "top"
},
{
"route_type": "via",
"x": 4.000617,
"y": -3.454517,
"from_layer": "top",
"to_layer": "inner2",
"via_diameter": 0.4572,
"via_hole_diameter": 0.2032
},
{
"route_type": "wire",
"x": 4.000617,
"y": -3.454517,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 4.407017,
"y": -3.048117,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 4.724263,
"y": -3.048117,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 4.924923,
"y": -3.248777,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 4.924923,
"y": -3.502523,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 5.613517,
"y": -4.191117,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 5.841863,
"y": -4.191117,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 6.151489,
"y": -3.881491,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 7.157837,
"y": -3.881491,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 7.566269,
"y": -4.289923,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 7.765151,
"y": -4.289923,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 8.241147,
"y": -3.813927,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 8.918565,
"y": -3.813927,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 9.525117,
"y": -4.419717,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 10.592171,
"y": -4.419717,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 10.922371,
"y": -4.749917,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 12.115917,
"y": -4.749917,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 12.268317,
"y": -4.902317,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 13.665317,
"y": -4.902317,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 14.516471,
"y": -4.051163,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 14.915505,
"y": -4.051163,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "via",
"x": 14.915505,
"y": -4.051163,
"from_layer": "inner2",
"to_layer": "top",
"via_diameter": 0.4572,
"via_hole_diameter": 0.2032
},
{
"route_type": "wire",
"x": 14.915505,
"y": -4.051163,
"width": 0.2286,
"layer": "top"
},
{
"route_type": "wire",
"x": 14.591929,
"y": -3.65091,
"width": 0.2286,
"layer": "top"
}
]
},
"DDR0_DQ2": {
"tiNet": "LPDDR4_DQ2",
"socBall": "F1",
"memoryBall": "E2",
"route": [
{
"route_type": "wire",
"x": 5.499999,
"y": -2.999999,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "wire",
"x": 5.500111,
"y": -3.000111,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "wire",
"x": 5.763377,
"y": -3.000111,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "wire",
"x": 6.090529,
"y": -3.327263,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "wire",
"x": 7.222861,
"y": -3.327263,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "wire",
"x": 7.288647,
"y": -3.261477,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "wire",
"x": 8.087731,
"y": -3.261477,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "wire",
"x": 8.397611,
"y": -3.571357,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "wire",
"x": 8.397611,
"y": -4.277477,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "via",
"x": 8.397611,
"y": -4.277477,
"from_layer": "top",
"to_layer": "inner2",
"via_diameter": 0.4572,
"via_hole_diameter": 0.2032
},
{
"route_type": "wire",
"x": 8.397611,
"y": -4.277477,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 9.001877,
"y": -4.277477,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 9.474317,
"y": -4.749917,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 10.490317,
"y": -4.749917,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 10.922117,
"y": -5.181717,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 11.760317,
"y": -5.181717,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 11.861917,
"y": -5.283317,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 13.716371,
"y": -5.283317,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 14.571335,
"y": -4.428353,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 15.838287,
"y": -4.428353,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 16.215477,
"y": -4.051163,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "via",
"x": 16.215477,
"y": -4.051163,
"from_layer": "inner2",
"to_layer": "top",
"via_diameter": 0.4572,
"via_hole_diameter": 0.2032
},
{
"route_type": "wire",
"x": 16.215477,
"y": -4.051163,
"width": 0.2286,
"layer": "top"
},
{
"route_type": "wire",
"x": 15.891924,
"y": -3.65091,
"width": 0.2286,
"layer": "top"
}
]
},
"DDR0_DQ3": {
"tiNet": "LPDDR4_DQ3",
"socBall": "E1",
"memoryBall": "F2",
"route": [
{
"route_type": "wire",
"x": 5.499999,
"y": -3.500001,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "wire",
"x": 5.499999,
"y": -3.500003,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "wire",
"x": 5.731627,
"y": -3.731631,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "wire",
"x": 6.413871,
"y": -3.731631,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "wire",
"x": 6.959717,
"y": -4.277477,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "via",
"x": 6.959717,
"y": -4.277477,
"from_layer": "top",
"to_layer": "inner2",
"via_diameter": 0.4572,
"via_hole_diameter": 0.2032
},
{
"route_type": "wire",
"x": 6.959717,
"y": -4.277477,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 7.355957,
"y": -4.673717,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 9.016863,
"y": -4.673717,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 9.851253,
"y": -5.508107,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 11.528161,
"y": -5.508107,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 11.684371,
"y": -5.664317,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 15.951317,
"y": -5.664317,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 16.592667,
"y": -5.022967,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 16.592667,
"y": -4.324213,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 16.865717,
"y": -4.051163,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "via",
"x": 16.865717,
"y": -4.051163,
"from_layer": "inner2",
"to_layer": "top",
"via_diameter": 0.4572,
"via_hole_diameter": 0.2032
},
{
"route_type": "wire",
"x": 16.865717,
"y": -4.051163,
"width": 0.2286,
"layer": "top"
},
{
"route_type": "wire",
"x": 16.541923,
"y": -3.65091,
"width": 0.2286,
"layer": "top"
}
]
},
"DDR0_DQ4": {
"tiNet": "LPDDR4_DQ4",
"socBall": "G4",
"memoryBall": "F4",
"route": [
{
"route_type": "wire",
"x": 4,
"y": -2.5,
"width": 0.13208,
"layer": "top"
},
{
"route_type": "wire",
"x": 3.542909,
"y": -2.500239,
"width": 0.13208,
"layer": "top"
},
{
"route_type": "via",
"x": 3.542909,
"y": -2.500239,
"from_layer": "top",
"to_layer": "inner2",
"via_diameter": 0.4572,
"via_hole_diameter": 0.2032
},
{
"route_type": "wire",
"x": 3.542909,
"y": -2.500239,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 4.368917,
"y": -2.159117,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 4.572117,
"y": -2.159117,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 5.892917,
"y": -2.311517,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 6.807317,
"y": -2.311517,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 7.139803,
"y": -2.159117,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 12.580536,
"y": -2.159117,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 12.682136,
"y": -2.260717,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 14.732117,
"y": -2.260717,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 15.367117,
"y": -2.057517,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 15.697317,
"y": -2.057517,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 16.867241,
"y": -2.451217,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "via",
"x": 16.867241,
"y": -2.451217,
"from_layer": "inner2",
"to_layer": "top",
"via_diameter": 0.4572,
"via_hole_diameter": 0.2032
},
{
"route_type": "wire",
"x": 16.867241,
"y": -2.451217,
"width": 0.2032,
"layer": "top"
},
{
"route_type": "wire",
"x": 16.542375,
"y": -2.050913,
"width": 0.2032,
"layer": "top"
},
{
"route_type": "wire",
"x": 16.541923,
"y": -2.050913,
"width": 0.2032,
"layer": "top"
}
]
},
"DDR0_DQ5": {
"tiNet": "LPDDR4_DQ5",
"socBall": "H4",
"memoryBall": "E4",
"route": [
{
"route_type": "wire",
"x": 4,
"y": -2.000001,
"width": 0.13208,
"layer": "top"
},
{
"route_type": "wire",
"x": 3.988679,
"y": -1.587363,
"width": 0.13208,
"layer": "top"
},
{
"route_type": "via",
"x": 3.988679,
"y": -1.587363,
"from_layer": "top",
"to_layer": "inner2",
"via_diameter": 0.4572,
"via_hole_diameter": 0.2032
},
{
"route_type": "wire",
"x": 3.988679,
"y": -1.587363,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 4.166225,
"y": -1.409817,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 4.166225,
"y": -0.825617,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 4.428861,
"y": -0.562981,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 6.111357,
"y": -0.562981,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 6.244453,
"y": -0.696077,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 6.557381,
"y": -0.696077,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 6.796141,
"y": -0.457317,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 7.758293,
"y": -0.457317,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 7.997053,
"y": -0.696077,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 8.346303,
"y": -0.696077,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 8.581253,
"y": -0.461127,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 14.456527,
"y": -0.461127,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 15.144105,
"y": -1.148705,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 15.144105,
"y": -1.228207,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 15.567015,
"y": -1.651117,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "via",
"x": 15.567015,
"y": -1.651117,
"from_layer": "inner2",
"to_layer": "top",
"via_diameter": 0.4572,
"via_hole_diameter": 0.2032
},
{
"route_type": "wire",
"x": 15.567015,
"y": -1.651117,
"width": 0.2032,
"layer": "top"
},
{
"route_type": "wire",
"x": 15.891924,
"y": -2.050913,
"width": 0.2032,
"layer": "top"
}
]
},
"DDR0_DQ6": {
"tiNet": "LPDDR4_DQ6",
"socBall": "H2",
"memoryBall": "C4",
"route": [
{
"route_type": "wire",
"x": 5,
"y": -2.000001,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "wire",
"x": 5.24892,
"y": -2.248921,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "wire",
"x": 5.834639,
"y": -2.248921,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "wire",
"x": 5.871835,
"y": -2.286117,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "wire",
"x": 6.350117,
"y": -2.286117,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "wire",
"x": 6.705717,
"y": -1.930517,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "via",
"x": 6.705717,
"y": -1.930517,
"from_layer": "top",
"to_layer": "inner2",
"via_diameter": 0.4572,
"via_hole_diameter": 0.2032
},
{
"route_type": "wire",
"x": 6.705717,
"y": -1.930517,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 6.972671,
"y": -1.663563,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 8.420471,
"y": -1.663563,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 8.585317,
"y": -1.498717,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 9.575917,
"y": -1.498717,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 9.931517,
"y": -1.143117,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 10.947517,
"y": -1.143117,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 11.074517,
"y": -1.270117,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 11.074517,
"y": -1.404737,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 11.168497,
"y": -1.498717,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 11.313277,
"y": -1.498717,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 11.407257,
"y": -1.404737,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 11.407257,
"y": -1.237097,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 11.501237,
"y": -1.143117,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 11.712057,
"y": -1.143117,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 11.806037,
"y": -1.237097,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 11.806037,
"y": -1.404737,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 11.900017,
"y": -1.498717,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 12.110837,
"y": -1.498717,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 12.204817,
"y": -1.404737,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 12.204817,
"y": -1.237097,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 12.298797,
"y": -1.143117,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 12.494377,
"y": -1.143117,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 12.588611,
"y": -1.237351,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 12.588611,
"y": -1.818757,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 12.798161,
"y": -2.028307,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 13.890615,
"y": -2.028307,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 14.268313,
"y": -1.650609,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "via",
"x": 14.268313,
"y": -1.650609,
"from_layer": "inner2",
"to_layer": "top",
"via_diameter": 0.4572,
"via_hole_diameter": 0.2032
},
{
"route_type": "wire",
"x": 14.268313,
"y": -1.650609,
"width": 0.2286,
"layer": "top"
},
{
"route_type": "wire",
"x": 14.591929,
"y": -2.050913,
"width": 0.2286,
"layer": "top"
}
]
},
"DDR0_DQ7": {
"tiNet": "LPDDR4_DQ7",
"socBall": "H3",
"memoryBall": "B4",
"route": [
{
"route_type": "wire",
"x": 4.500001,
"y": -2.000001,
"width": 0.13208,
"layer": "top"
},
{
"route_type": "wire",
"x": 4.546209,
"y": -1.534023,
"width": 0.13208,
"layer": "top"
},
{
"route_type": "via",
"x": 4.546209,
"y": -1.534023,
"from_layer": "top",
"to_layer": "inner2",
"via_diameter": 0.4572,
"via_hole_diameter": 0.2032
},
{
"route_type": "wire",
"x": 4.546209,
"y": -1.534023,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 5.038715,
"y": -1.041517,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 5.367137,
"y": -1.041517,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 5.461117,
"y": -1.135497,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 5.461117,
"y": -1.625717,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 5.555605,
"y": -1.720205,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 5.792841,
"y": -1.720205,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 5.892917,
"y": -1.620129,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 5.892917,
"y": -1.160897,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 5.986897,
"y": -1.066917,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 6.248517,
"y": -1.066917,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 6.527917,
"y": -1.346317,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 8.102717,
"y": -1.346317,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 8.233527,
"y": -1.215507,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 9.351381,
"y": -1.215507,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 9.779371,
"y": -0.787517,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 13.106771,
"y": -0.787517,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 13.238597,
"y": -0.919343,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 13.238597,
"y": -1.270879,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 13.618327,
"y": -1.650609,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "via",
"x": 13.618327,
"y": -1.650609,
"from_layer": "inner2",
"to_layer": "top",
"via_diameter": 0.4572,
"via_hole_diameter": 0.2032
},
{
"route_type": "wire",
"x": 13.618327,
"y": -1.650609,
"width": 0.2286,
"layer": "top"
},
{
"route_type": "wire",
"x": 13.941928,
"y": -2.050913,
"width": 0.2286,
"layer": "top"
}
]
},
"DDR0_DQ8": {
"tiNet": "LPDDR4_DQ8",
"socBall": "V4",
"memoryBall": "B11",
"route": [
{
"route_type": "wire",
"x": 4,
"y": 2.999999,
"width": 0.13208,
"layer": "top"
},
{
"route_type": "wire",
"x": 4.039987,
"y": 3.402213,
"width": 0.13208,
"layer": "top"
},
{
"route_type": "via",
"x": 4.039987,
"y": 3.402213,
"from_layer": "top",
"to_layer": "inner2",
"via_diameter": 0.4572,
"via_hole_diameter": 0.2032
},
{
"route_type": "wire",
"x": 4.039987,
"y": 3.402213,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 4.039987,
"y": 2.491369,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 4.345295,
"y": 2.186061,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 4.700895,
"y": 2.186061,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 4.950323,
"y": 2.435489,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 4.950323,
"y": 3.858143,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 5.334117,
"y": 4.241937,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 5.334117,
"y": 4.546483,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 4.950323,
"y": 4.930277,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 4.950323,
"y": 5.178689,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 5.130917,
"y": 5.359283,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 6.451463,
"y": 5.359283,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 7.260453,
"y": 4.550293,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 13.391759,
"y": 4.550293,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 13.615279,
"y": 4.326773,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 13.615279,
"y": 3.949329,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "via",
"x": 13.615279,
"y": 3.949329,
"from_layer": "inner2",
"to_layer": "top",
"via_diameter": 0.4572,
"via_hole_diameter": 0.2032
},
{
"route_type": "wire",
"x": 13.615279,
"y": 3.949329,
"width": 0.2286,
"layer": "top"
},
{
"route_type": "wire",
"x": 13.941928,
"y": 3.549076,
"width": 0.2286,
"layer": "top"
}
]
},
"DDR0_DQ9": {
"tiNet": "LPDDR4_DQ9",
"socBall": "T3",
"memoryBall": "C11",
"route": [
{
"route_type": "wire",
"x": 4.500001,
"y": 2.000001,
"width": 0.13208,
"layer": "top"
},
{
"route_type": "wire",
"x": 4.564497,
"y": 1.535059,
"width": 0.13208,
"layer": "top"
},
{
"route_type": "via",
"x": 4.564497,
"y": 1.535059,
"from_layer": "top",
"to_layer": "inner2",
"via_diameter": 0.4572,
"via_hole_diameter": 0.2032
},
{
"route_type": "wire",
"x": 4.564497,
"y": 1.535059,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 5.015093,
"y": 1.535059,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 5.308717,
"y": 1.828683,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 5.308717,
"y": 3.327283,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 5.892917,
"y": 3.911483,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 6.604117,
"y": 3.911483,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 6.934317,
"y": 4.241683,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 12.700117,
"y": 4.241683,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 13.369661,
"y": 3.572139,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 13.859373,
"y": 3.572139,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 14.236563,
"y": 3.949329,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 14.915759,
"y": 3.949329,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "via",
"x": 14.915759,
"y": 3.949329,
"from_layer": "inner2",
"to_layer": "top",
"via_diameter": 0.4572,
"via_hole_diameter": 0.2032
},
{
"route_type": "wire",
"x": 14.915759,
"y": 3.949329,
"width": 0.2286,
"layer": "top"
},
{
"route_type": "wire",
"x": 14.591929,
"y": 3.549076,
"width": 0.2286,
"layer": "top"
}
]
},
"DDR0_DQ10": {
"tiNet": "LPDDR4_DQ10",
"socBall": "T1",
"memoryBall": "E11",
"route": [
{
"route_type": "wire",
"x": 5.499999,
"y": 2.000001,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "wire",
"x": 6.848871,
"y": 2.000001,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "wire",
"x": 6.848993,
"y": 1.999879,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "wire",
"x": 7.376277,
"y": 1.999879,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "wire",
"x": 8.966317,
"y": 3.589919,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "via",
"x": 8.966317,
"y": 3.589919,
"from_layer": "top",
"to_layer": "inner2",
"via_diameter": 0.4572,
"via_hole_diameter": 0.2032
},
{
"route_type": "wire",
"x": 8.966317,
"y": 3.589919,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 9.287881,
"y": 3.911483,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 12.420717,
"y": 3.911483,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 13.055717,
"y": 3.276483,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 14.173317,
"y": 3.276483,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 14.423507,
"y": 3.526673,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 16.058759,
"y": 3.526673,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 16.059013,
"y": 3.526419,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 16.619337,
"y": 3.526419,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 16.713317,
"y": 3.432439,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 16.713317,
"y": 3.243209,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 16.619337,
"y": 3.149229,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 16.215477,
"y": 3.149229,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "via",
"x": 16.215477,
"y": 3.149229,
"from_layer": "inner2",
"to_layer": "top",
"via_diameter": 0.4572,
"via_hole_diameter": 0.2032
},
{
"route_type": "wire",
"x": 16.215477,
"y": 3.149229,
"width": 0.2286,
"layer": "top"
},
{
"route_type": "wire",
"x": 15.891924,
"y": 3.549076,
"width": 0.2286,
"layer": "top"
}
]
},
"DDR0_DQ11": {
"tiNet": "LPDDR4_DQ11",
"socBall": "U1",
"memoryBall": "F11",
"route": [
{
"route_type": "wire",
"x": 5.499999,
"y": 2.5,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "wire",
"x": 5.500004,
"y": 2.500005,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "wire",
"x": 7.148439,
"y": 2.500005,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "wire",
"x": 8.407517,
"y": 3.759083,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "wire",
"x": 8.407517,
"y": 4.927483,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "via",
"x": 8.407517,
"y": 4.927483,
"from_layer": "top",
"to_layer": "inner2",
"via_diameter": 0.4572,
"via_hole_diameter": 0.2032
},
{
"route_type": "wire",
"x": 8.407517,
"y": 4.927483,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 8.784961,
"y": 4.927483,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 8.911961,
"y": 5.054483,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 13.690971,
"y": 5.054483,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 13.888329,
"y": 4.857125,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 13.888329,
"y": 4.501525,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 14.044031,
"y": 4.345823,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 15.818729,
"y": 4.345823,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 16.215223,
"y": 3.949329,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "via",
"x": 16.215223,
"y": 3.949329,
"from_layer": "inner2",
"to_layer": "top",
"via_diameter": 0.4572,
"via_hole_diameter": 0.2032
},
{
"route_type": "wire",
"x": 16.215223,
"y": 3.949329,
"width": 0.2286,
"layer": "top"
},
{
"route_type": "wire",
"x": 16.541923,
"y": 3.549076,
"width": 0.2286,
"layer": "top"
}
]
},
"DDR0_DQ12": {
"tiNet": "LPDDR4_DQ12",
"socBall": "U4",
"memoryBall": "F9",
"route": [
{
"route_type": "wire",
"x": 4,
"y": 2.5,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "wire",
"x": 3.748921,
"y": 2.248921,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "wire",
"x": 3.748921,
"y": 1.839079,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "wire",
"x": 3.964295,
"y": 1.623705,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "wire",
"x": 3.964295,
"y": 1.068461,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "via",
"x": 3.964295,
"y": 1.068461,
"from_layer": "top",
"to_layer": "inner2",
"via_diameter": 0.4572,
"via_hole_diameter": 0.2032
},
{
"route_type": "wire",
"x": 3.964295,
"y": 1.068461,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 4.855073,
"y": 0.177683,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 8.509117,
"y": 0.177683,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 8.628497,
"y": 0.058303,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 14.706209,
"y": 0.058303,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 16.215223,
"y": 1.549283,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "via",
"x": 16.215223,
"y": 1.549283,
"from_layer": "inner2",
"to_layer": "top",
"via_diameter": 0.4572,
"via_hole_diameter": 0.2032
},
{
"route_type": "wire",
"x": 16.215223,
"y": 1.549283,
"width": 0.3048,
"layer": "top"
},
{
"route_type": "wire",
"x": 16.541923,
"y": 1.949079,
"width": 0.3048,
"layer": "top"
}
]
},
"DDR0_DQ13": {
"tiNet": "LPDDR4_DQ13",
"socBall": "V5",
"memoryBall": "E9",
"route": [
{
"route_type": "wire",
"x": 3.500001,
"y": 2.999999,
"width": 0.13208,
"layer": "top"
},
{
"route_type": "wire",
"x": 3.438515,
"y": 3.427613,
"width": 0.13208,
"layer": "top"
},
{
"route_type": "via",
"x": 3.438515,
"y": 3.427613,
"from_layer": "top",
"to_layer": "inner2",
"via_diameter": 0.4572,
"via_hole_diameter": 0.2032
},
{
"route_type": "wire",
"x": 3.438515,
"y": 3.427613,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 3.438515,
"y": 2.127895,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 5.083927,
"y": 0.482483,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 8.966317,
"y": 0.482483,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 9.076807,
"y": 0.371993,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 14.420205,
"y": 0.371993,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 14.640931,
"y": 0.592719,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 14.640931,
"y": 0.621421,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 15.568285,
"y": 1.548775,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "via",
"x": 15.568285,
"y": 1.548775,
"from_layer": "inner2",
"to_layer": "top",
"via_diameter": 0.4572,
"via_hole_diameter": 0.2032
},
{
"route_type": "wire",
"x": 15.568285,
"y": 1.548775,
"width": 0.3048,
"layer": "top"
},
{
"route_type": "wire",
"x": 15.891924,
"y": 1.949079,
"width": 0.3048,
"layer": "top"
}
]
},
"DDR0_DQ14": {
"tiNet": "LPDDR4_DQ14",
"socBall": "U2",
"memoryBall": "C9",
"route": [
{
"route_type": "wire",
"x": 5,
"y": 2.5,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "wire",
"x": 5.251079,
"y": 2.248921,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "wire",
"x": 5.251079,
"y": 1.896882,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "wire",
"x": 5.39688,
"y": 1.751081,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "wire",
"x": 5.396987,
"y": 1.751081,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "wire",
"x": 5.399141,
"y": 1.748927,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "wire",
"x": 6.683873,
"y": 1.748927,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "wire",
"x": 7.518517,
"y": 0.914283,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "via",
"x": 7.518517,
"y": 0.914283,
"from_layer": "top",
"to_layer": "inner2",
"via_diameter": 0.4572,
"via_hole_diameter": 0.2032
},
{
"route_type": "wire",
"x": 7.518517,
"y": 0.914283,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 7.950317,
"y": 0.914283,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 8.356717,
"y": 1.320683,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 9.608937,
"y": 1.320683,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 9.702917,
"y": 1.226703,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 9.702917,
"y": 0.881517,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 9.797151,
"y": 0.787283,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 9.989937,
"y": 0.787283,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 10.083917,
"y": 0.881263,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 10.083917,
"y": 1.175649,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 10.178151,
"y": 1.269883,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 10.373731,
"y": 1.269883,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 10.467711,
"y": 1.175903,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 10.467711,
"y": 0.881263,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 10.561691,
"y": 0.787283,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 10.772511,
"y": 0.787283,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 10.866491,
"y": 0.881263,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 10.866491,
"y": 1.175903,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 10.960471,
"y": 1.269883,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 11.691737,
"y": 1.269883,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 11.785717,
"y": 1.175903,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 11.785717,
"y": 0.881263,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 11.879697,
"y": 0.787283,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 12.098137,
"y": 0.787283,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 12.192117,
"y": 0.881263,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 12.192117,
"y": 1.150503,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 12.286097,
"y": 1.244483,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 12.479137,
"y": 1.244483,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 12.573117,
"y": 1.150503,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 12.573117,
"y": 0.932063,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 12.717897,
"y": 0.787283,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 13.119979,
"y": 0.787283,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 13.459069,
"y": 1.126373,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 13.842609,
"y": 1.126373,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 14.265519,
"y": 1.549283,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "via",
"x": 14.265519,
"y": 1.549283,
"from_layer": "inner2",
"to_layer": "top",
"via_diameter": 0.4572,
"via_hole_diameter": 0.2032
},
{
"route_type": "wire",
"x": 14.265519,
"y": 1.549283,
"width": 0.2286,
"layer": "top"
},
{
"route_type": "wire",
"x": 14.591929,
"y": 1.949079,
"width": 0.2286,
"layer": "top"
}
]
},
"DDR0_DQ15": {
"tiNet": "LPDDR4_DQ15",
"socBall": "W1",
"memoryBall": "B9",
"route": [
{
"route_type": "wire",
"x": 5.499999,
"y": 3.500001,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "wire",
"x": 5.500002,
"y": 3.500003,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "wire",
"x": 5.943717,
"y": 3.500003,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "wire",
"x": 6.045317,
"y": 3.398403,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "via",
"x": 6.045317,
"y": 3.398403,
"from_layer": "top",
"to_layer": "inner2",
"via_diameter": 0.4572,
"via_hole_diameter": 0.2032
},
{
"route_type": "wire",
"x": 6.045317,
"y": 3.398403,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 5.778363,
"y": 3.131449,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 5.778363,
"y": 1.898787,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 5.961497,
"y": 1.715653,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 6.179937,
"y": 1.715653,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 6.273917,
"y": 1.809633,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 6.273917,
"y": 2.108337,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 6.400663,
"y": 2.235083,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 6.600307,
"y": 2.235083,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 6.719687,
"y": 2.115703,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 6.719687,
"y": 1.428633,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 6.827637,
"y": 1.320683,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 7.010517,
"y": 1.320683,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 7.118467,
"y": 1.428633,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 7.118467,
"y": 1.988703,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 7.212447,
"y": 2.082683,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 7.423267,
"y": 2.082683,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 7.517247,
"y": 1.988703,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 7.517247,
"y": 1.389517,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 7.611481,
"y": 1.295283,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 7.798171,
"y": 1.295283,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 8.102971,
"y": 1.600083,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 12.483709,
"y": 1.600083,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 12.813909,
"y": 1.930283,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 13.234279,
"y": 1.930283,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 13.615279,
"y": 1.549283,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "via",
"x": 13.615279,
"y": 1.549283,
"from_layer": "inner2",
"to_layer": "top",
"via_diameter": 0.4572,
"via_hole_diameter": 0.2032
},
{
"route_type": "wire",
"x": 13.615279,
"y": 1.549283,
"width": 0.2286,
"layer": "top"
},
{
"route_type": "wire",
"x": 13.941928,
"y": 1.949079,
"width": 0.2286,
"layer": "top"
}
]
},
"DDR0_DM0": {
"tiNet": "LPDDR4_DMI0",
"socBall": "F2",
"memoryBall": "C3",
"route": [
{
"route_type": "wire",
"x": 5,
"y": -2.999999,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "wire",
"x": 5.251064,
"y": -3.251063,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "wire",
"x": 5.613263,
"y": -3.251063,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "wire",
"x": 5.892917,
"y": -3.530717,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "wire",
"x": 6.969877,
"y": -3.530717,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "wire",
"x": 7.198477,
"y": -3.759317,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "wire",
"x": 7.594717,
"y": -3.759317,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "via",
"x": 7.594717,
"y": -3.759317,
"from_layer": "top",
"to_layer": "inner2",
"via_diameter": 0.4572,
"via_hole_diameter": 0.2032
},
{
"route_type": "wire",
"x": 7.594717,
"y": -3.759317,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 7.861671,
"y": -3.492363,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 9.029817,
"y": -3.492363,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 9.626971,
"y": -4.089517,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 10.845663,
"y": -4.089517,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 11.201263,
"y": -4.445117,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 13.754979,
"y": -4.445117,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 13.992469,
"y": -4.207627,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 13.992469,
"y": -3.356219,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 14.173571,
"y": -3.175117,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 14.462115,
"y": -3.175117,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 14.538315,
"y": -3.251317,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 14.915759,
"y": -3.251317,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "via",
"x": 14.915759,
"y": -3.251317,
"from_layer": "inner2",
"to_layer": "top",
"via_diameter": 0.4572,
"via_hole_diameter": 0.2032
},
{
"route_type": "wire",
"x": 14.915759,
"y": -3.251317,
"width": 0.2286,
"layer": "top"
},
{
"route_type": "wire",
"x": 14.591929,
"y": -2.850911,
"width": 0.2286,
"layer": "top"
}
]
},
"DDR0_DM1": {
"tiNet": "LPDDR4_DMI1",
"socBall": "W2",
"memoryBall": "C10",
"route": [
{
"route_type": "wire",
"x": 5,
"y": 3.500001,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "wire",
"x": 5.248923,
"y": 3.748923,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "wire",
"x": 6.416157,
"y": 3.748923,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "wire",
"x": 6.527917,
"y": 3.860683,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "wire",
"x": 7.975717,
"y": 3.860683,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "via",
"x": 7.975717,
"y": 3.860683,
"from_layer": "top",
"to_layer": "inner2",
"via_diameter": 0.4572,
"via_hole_diameter": 0.2032
},
{
"route_type": "wire",
"x": 7.975717,
"y": 3.860683,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 8.839317,
"y": 2.997083,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 9.245463,
"y": 2.997083,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 9.435963,
"y": 3.187583,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 9.435963,
"y": 3.461903,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 9.529943,
"y": 3.555883,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 9.740763,
"y": 3.555883,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 9.834743,
"y": 3.461903,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 9.834743,
"y": 3.192663,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 9.928723,
"y": 3.098683,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 10.139543,
"y": 3.098683,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 10.233523,
"y": 3.192663,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 10.233523,
"y": 3.461903,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 10.327503,
"y": 3.555883,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 10.538323,
"y": 3.555883,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 10.632303,
"y": 3.461903,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 10.632303,
"y": 3.141863,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 10.726283,
"y": 3.047883,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 10.937103,
"y": 3.047883,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 11.031083,
"y": 3.141863,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 11.031083,
"y": 3.461903,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 11.125063,
"y": 3.555883,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 11.335883,
"y": 3.555883,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 11.429863,
"y": 3.461903,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 11.429863,
"y": 3.243463,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 11.523843,
"y": 3.149483,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 11.734663,
"y": 3.149483,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 11.828643,
"y": 3.243463,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 11.828643,
"y": 3.461903,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 11.922623,
"y": 3.555883,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 12.293971,
"y": 3.555883,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 12.878171,
"y": 2.971683,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 14.360515,
"y": 2.971683,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 14.538315,
"y": 3.149483,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 14.915759,
"y": 3.149483,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "via",
"x": 14.915759,
"y": 3.149483,
"from_layer": "inner2",
"to_layer": "top",
"via_diameter": 0.4572,
"via_hole_diameter": 0.2032
},
{
"route_type": "wire",
"x": 14.915759,
"y": 3.149483,
"width": 0.2286,
"layer": "top"
},
{
"route_type": "wire",
"x": 14.591929,
"y": 2.749078,
"width": 0.2286,
"layer": "top"
}
]
},
"DDR0_DQS0": {
"tiNet": "LPDDR4_DQS0_P",
"socBall": "G1",
"memoryBall": "D3",
"route": [
{
"route_type": "wire",
"x": 5.499999,
"y": -2.5,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "wire",
"x": 5.870839,
"y": -2.5,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "wire",
"x": 5.956422,
"y": -2.585583,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "wire",
"x": 6.592433,
"y": -2.585583,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "wire",
"x": 6.963273,
"y": -2.956423,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "via",
"x": 6.963273,
"y": -2.956423,
"from_layer": "top",
"to_layer": "inner2",
"via_diameter": 0.4572,
"via_hole_diameter": 0.2032
},
{
"route_type": "wire",
"x": 6.963273,
"y": -2.956423,
"width": 0.08128,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 6.963273,
"y": -3.000873,
"width": 0.08128,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 7.145899,
"y": -3.183499,
"width": 0.08128,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 7.260707,
"y": -3.183499,
"width": 0.08128,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 7.396597,
"y": -3.047609,
"width": 0.08128,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 7.396597,
"y": -2.931277,
"width": 0.08128,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 7.477877,
"y": -2.849997,
"width": 0.08128,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 15.006183,
"y": -2.849997,
"width": 0.08128,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 15.069683,
"y": -2.786497,
"width": 0.08128,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 15.377023,
"y": -2.786497,
"width": 0.08128,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 15.566507,
"y": -2.975981,
"width": 0.08128,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 15.566507,
"y": -3.251317,
"width": 0.08128,
"layer": "inner2"
},
{
"route_type": "via",
"x": 15.566507,
"y": -3.251317,
"from_layer": "inner2",
"to_layer": "top",
"via_diameter": 0.4572,
"via_hole_diameter": 0.2032
},
{
"route_type": "wire",
"x": 15.566507,
"y": -3.251317,
"width": 0.0889,
"layer": "top"
},
{
"route_type": "wire",
"x": 15.241925,
"y": -2.850911,
"width": 0.0889,
"layer": "top"
}
]
},
"DDR0_DQS0_n": {
"tiNet": "LPDDR4_DQS0_N",
"socBall": "G2",
"memoryBall": "E3",
"route": [
{
"route_type": "wire",
"x": 5,
"y": -2.5,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "wire",
"x": 5.24892,
"y": -2.74892,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "wire",
"x": 5.752978,
"y": -2.74892,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "wire",
"x": 5.818241,
"y": -2.814183,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "wire",
"x": 6.182477,
"y": -2.814183,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "wire",
"x": 6.324717,
"y": -2.956423,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "via",
"x": 6.324717,
"y": -2.956423,
"from_layer": "top",
"to_layer": "inner2",
"via_diameter": 0.4572,
"via_hole_diameter": 0.2032
},
{
"route_type": "wire",
"x": 6.324717,
"y": -2.956423,
"width": 0.08128,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 6.695303,
"y": -2.585583,
"width": 0.08128,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 7.268073,
"y": -2.585583,
"width": 0.08128,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 7.338939,
"y": -2.514717,
"width": 0.08128,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 14.867245,
"y": -2.514717,
"width": 0.08128,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 14.930745,
"y": -2.451217,
"width": 0.08128,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 15.566253,
"y": -2.451217,
"width": 0.08128,
"layer": "inner2"
},
{
"route_type": "via",
"x": 15.566253,
"y": -2.451217,
"from_layer": "inner2",
"to_layer": "top",
"via_diameter": 0.4572,
"via_hole_diameter": 0.2032
},
{
"route_type": "wire",
"x": 15.566253,
"y": -2.451217,
"width": 0.0889,
"layer": "top"
},
{
"route_type": "wire",
"x": 15.891924,
"y": -2.850911,
"width": 0.0889,
"layer": "top"
}
]
},
"DDR0_DQS1": {
"tiNet": "LPDDR4_DQS1_P",
"socBall": "V1",
"memoryBall": "D10",
"route": [
{
"route_type": "wire",
"x": 5.499999,
"y": 2.999999,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "wire",
"x": 5.680715,
"y": 2.819283,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "wire",
"x": 6.394059,
"y": 2.819283,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "wire",
"x": 6.597259,
"y": 3.022483,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "wire",
"x": 6.934571,
"y": 3.022483,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "wire",
"x": 7.315571,
"y": 3.403483,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "via",
"x": 7.315571,
"y": 3.403483,
"from_layer": "top",
"to_layer": "inner2",
"via_diameter": 0.4572,
"via_hole_diameter": 0.2032
},
{
"route_type": "wire",
"x": 7.315571,
"y": 3.403483,
"width": 0.08128,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 7.578715,
"y": 3.140339,
"width": 0.08128,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 7.578715,
"y": 3.025531,
"width": 0.08128,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 7.324969,
"y": 2.772039,
"width": 0.08128,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 7.324969,
"y": 2.657231,
"width": 0.08128,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 7.483211,
"y": 2.498989,
"width": 0.08128,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 7.598019,
"y": 2.498989,
"width": 0.08128,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 7.851765,
"y": 2.752481,
"width": 0.08128,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 7.966573,
"y": 2.752481,
"width": 0.08128,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 8.483971,
"y": 2.235083,
"width": 0.08128,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 14.757771,
"y": 2.235083,
"width": 0.08128,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 14.955891,
"y": 2.433203,
"width": 0.08128,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 15.138009,
"y": 2.433203,
"width": 0.08128,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 15.221829,
"y": 2.349383,
"width": 0.08128,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 15.565237,
"y": 2.349383,
"width": 0.08128,
"layer": "inner2"
},
{
"route_type": "via",
"x": 15.565237,
"y": 2.349383,
"from_layer": "inner2",
"to_layer": "top",
"via_diameter": 0.4572,
"via_hole_diameter": 0.2032
},
{
"route_type": "wire",
"x": 15.565237,
"y": 2.349383,
"width": 0.0889,
"layer": "top"
},
{
"route_type": "wire",
"x": 15.241925,
"y": 2.749078,
"width": 0.0889,
"layer": "top"
}
]
},
"DDR0_DQS1_n": {
"tiNet": "LPDDR4_DQS1_N",
"socBall": "V2",
"memoryBall": "E10",
"route": [
{
"route_type": "wire",
"x": 5,
"y": 2.999999,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "wire",
"x": 5.251082,
"y": 3.251081,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "wire",
"x": 5.696831,
"y": 3.251081,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "wire",
"x": 5.900029,
"y": 3.047883,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "wire",
"x": 6.299317,
"y": 3.047883,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "wire",
"x": 6.680317,
"y": 3.428883,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "via",
"x": 6.680317,
"y": 3.428883,
"from_layer": "top",
"to_layer": "inner2",
"via_diameter": 0.4572,
"via_hole_diameter": 0.2032
},
{
"route_type": "wire",
"x": 6.680317,
"y": 3.428883,
"width": 0.08128,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 7.025757,
"y": 3.774323,
"width": 0.08128,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 7.469241,
"y": 3.774323,
"width": 0.08128,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 7.686411,
"y": 3.557153,
"width": 0.08128,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 7.686411,
"y": 3.527943,
"width": 0.08128,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 7.686665,
"y": 3.527689,
"width": 0.08128,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 7.686665,
"y": 3.506607,
"width": 0.08128,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 8.622909,
"y": 2.570363,
"width": 0.08128,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 14.618833,
"y": 2.570363,
"width": 0.08128,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 14.816953,
"y": 2.768483,
"width": 0.08128,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 15.184491,
"y": 2.768483,
"width": 0.08128,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 15.565491,
"y": 3.149483,
"width": 0.08128,
"layer": "inner2"
},
{
"route_type": "via",
"x": 15.565491,
"y": 3.149483,
"from_layer": "inner2",
"to_layer": "top",
"via_diameter": 0.4572,
"via_hole_diameter": 0.2032
},
{
"route_type": "wire",
"x": 15.565491,
"y": 3.149483,
"width": 0.0889,
"layer": "top"
},
{
"route_type": "wire",
"x": 15.891924,
"y": 2.749078,
"width": 0.0889,
"layer": "top"
}
]
},
"DDR0_A0": {
"tiNet": "LPDDR4_CA0",
"socBall": "L5",
"memoryBall": "H2",
"route": [
{
"route_type": "wire",
"x": 3.500001,
"y": -0.499999,
"width": 0.13208,
"layer": "top"
},
{
"route_type": "wire",
"x": 3.500001,
"y": -0.552859,
"width": 0.13208,
"layer": "top"
},
{
"route_type": "wire",
"x": 3.796518,
"y": -0.849376,
"width": 0.13208,
"layer": "top"
},
{
"route_type": "wire",
"x": 3.796518,
"y": -0.8866,
"width": 0.13208,
"layer": "top"
},
{
"route_type": "via",
"x": 3.796518,
"y": -0.8866,
"from_layer": "top",
"to_layer": "bottom",
"via_diameter": 0.4572,
"via_hole_diameter": 0.2032
},
{
"route_type": "wire",
"x": 3.796518,
"y": -0.8866,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 3.796518,
"y": -1.219454,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 3.592693,
"y": -1.423279,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 3.592693,
"y": -1.751447,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 3.898763,
"y": -2.057517,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 5.511917,
"y": -2.057517,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 5.994517,
"y": -2.540117,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 6.908917,
"y": -2.540117,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 7.386945,
"y": -2.062089,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 7.792837,
"y": -2.062089,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 7.924917,
"y": -2.194169,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 7.924917,
"y": -3.048117,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 8.991717,
"y": -4.114917,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 12.990947,
"y": -4.114917,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 13.458307,
"y": -3.647557,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 13.779363,
"y": -3.647557,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 13.997803,
"y": -3.429117,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 14.532981,
"y": -3.429117,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 14.751421,
"y": -3.647557,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 17.768687,
"y": -3.647557,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 18.165181,
"y": -3.251063,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "via",
"x": 18.165181,
"y": -3.251063,
"from_layer": "bottom",
"to_layer": "top",
"via_diameter": 0.4572,
"via_hole_diameter": 0.2032
},
{
"route_type": "wire",
"x": 18.165181,
"y": -3.251063,
"width": 0.3048,
"layer": "top"
},
{
"route_type": "wire",
"x": 17.84192,
"y": -3.65091,
"width": 0.3048,
"layer": "top"
}
]
},
"DDR0_A1": {
"tiNet": "LPDDR4_CA1",
"socBall": "H6",
"memoryBall": "J2",
"route": [
{
"route_type": "wire",
"x": 2.999999,
"y": -2.000001,
"width": 0.13208,
"layer": "top"
},
{
"route_type": "wire",
"x": 2.942453,
"y": -2.057547,
"width": 0.13208,
"layer": "top"
},
{
"route_type": "wire",
"x": 2.942453,
"y": -2.455027,
"width": 0.13208,
"layer": "top"
},
{
"route_type": "via",
"x": 2.942453,
"y": -2.455027,
"from_layer": "top",
"to_layer": "bottom",
"via_diameter": 0.4572,
"via_hole_diameter": 0.2032
},
{
"route_type": "wire",
"x": 2.942453,
"y": -2.455027,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 2.942453,
"y": -2.845171,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 3.094599,
"y": -2.997317,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 4.866757,
"y": -2.997317,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 4.989185,
"y": -2.874889,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 4.989185,
"y": -2.560945,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 5.111613,
"y": -2.438517,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 5.284587,
"y": -2.438517,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 5.511917,
"y": -2.665847,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 5.511917,
"y": -4.023223,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 6.162411,
"y": -4.673717,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 8.610717,
"y": -4.673717,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 8.661517,
"y": -4.622917,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 13.055463,
"y": -4.622917,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 13.334863,
"y": -4.902317,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 13.655919,
"y": -4.902317,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 14.103213,
"y": -4.455023,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 17.762337,
"y": -4.455023,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 18.166197,
"y": -4.051163,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "via",
"x": 18.166197,
"y": -4.051163,
"from_layer": "bottom",
"to_layer": "top",
"via_diameter": 0.4572,
"via_hole_diameter": 0.2032
},
{
"route_type": "wire",
"x": 18.166197,
"y": -4.051163,
"width": 0.3175,
"layer": "top"
},
{
"route_type": "wire",
"x": 18.491919,
"y": -3.65091,
"width": 0.3175,
"layer": "top"
}
]
},
"DDR0_A2": {
"tiNet": "LPDDR4_CA2",
"socBall": "L6",
"memoryBall": "H9",
"route": [
{
"route_type": "wire",
"x": 2.999999,
"y": -0.499999,
"width": 0.13208,
"layer": "top"
},
{
"route_type": "wire",
"x": 3.000111,
"y": -0.500111,
"width": 0.13208,
"layer": "top"
},
{
"route_type": "wire",
"x": 3.000111,
"y": -0.917311,
"width": 0.13208,
"layer": "top"
},
{
"route_type": "wire",
"x": 2.997317,
"y": -0.965317,
"width": 0.13208,
"layer": "top"
},
{
"route_type": "via",
"x": 2.997317,
"y": -0.965317,
"from_layer": "top",
"to_layer": "bottom",
"via_diameter": 0.4572,
"via_hole_diameter": 0.2032
},
{
"route_type": "wire",
"x": 2.997317,
"y": -0.965317,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 3.048117,
"y": -0.575173,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 5.477373,
"y": 1.854083,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 10.261971,
"y": 1.854083,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 11.953357,
"y": 3.545469,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 13.072481,
"y": 3.545469,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 13.204561,
"y": 3.413389,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 13.204561,
"y": 3.002163,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 13.336641,
"y": 2.870083,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 13.585561,
"y": 2.870083,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 13.717641,
"y": 3.002163,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 13.717641,
"y": 3.413389,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 13.849721,
"y": 3.545469,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 14.751167,
"y": 3.545469,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 14.751421,
"y": 3.545723,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 15.729829,
"y": 3.545723,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 15.730083,
"y": 3.545469,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 16.936837,
"y": 3.545469,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 17.068917,
"y": 3.413389,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 17.068917,
"y": 2.795661,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 17.515195,
"y": 2.349383,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "via",
"x": 17.515195,
"y": 2.349383,
"from_layer": "bottom",
"to_layer": "top",
"via_diameter": 0.4572,
"via_hole_diameter": 0.2032
},
{
"route_type": "wire",
"x": 17.515195,
"y": 2.349383,
"width": 0.2286,
"layer": "top"
},
{
"route_type": "wire",
"x": 17.84192,
"y": 1.949079,
"width": 0.2286,
"layer": "top"
}
]
},
"DDR0_A3": {
"tiNet": "LPDDR4_CA3",
"socBall": "K2",
"memoryBall": "H10",
"route": [
{
"route_type": "wire",
"x": 5,
"y": -1.000001,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "wire",
"x": 5,
"y": -1.000008,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "wire",
"x": 5.249027,
"y": -1.249035,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "wire",
"x": 5.634599,
"y": -1.249035,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "wire",
"x": 5.791317,
"y": -1.092317,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "wire",
"x": 7.264517,
"y": -1.092317,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "wire",
"x": 7.467717,
"y": -1.295517,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "wire",
"x": 7.873863,
"y": -1.295517,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "wire",
"x": 8.153517,
"y": -1.015863,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "wire",
"x": 8.153517,
"y": -0.318887,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "via",
"x": 8.153517,
"y": -0.318887,
"from_layer": "top",
"to_layer": "bottom",
"via_diameter": 0.4572,
"via_hole_diameter": 0.2032
},
{
"route_type": "wire",
"x": 8.153517,
"y": -0.318887,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 10.148433,
"y": -0.318887,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 10.642463,
"y": -0.812917,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 12.065117,
"y": -0.812917,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 12.522317,
"y": -0.355717,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 17.373463,
"y": -0.355717,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 17.551263,
"y": -0.177917,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 18.301071,
"y": -0.177917,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 19.863933,
"y": 1.384945,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 19.863933,
"y": 2.538613,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 19.149959,
"y": 3.252587,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 18.668335,
"y": 3.252587,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 18.564723,
"y": 3.148975,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 18.168483,
"y": 3.148975,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "via",
"x": 18.168483,
"y": 3.148975,
"from_layer": "bottom",
"to_layer": "top",
"via_diameter": 0.4572,
"via_hole_diameter": 0.2032
},
{
"route_type": "wire",
"x": 18.168483,
"y": 3.148975,
"width": 0.2286,
"layer": "top"
},
{
"route_type": "wire",
"x": 17.84192,
"y": 2.749078,
"width": 0.2286,
"layer": "top"
}
]
},
"DDR0_A4": {
"tiNet": "LPDDR4_CA4",
"socBall": "J1",
"memoryBall": "H11",
"route": [
{
"route_type": "wire",
"x": 5.499999,
"y": -1.5,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "wire",
"x": 5.499999,
"y": -1.500007,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "wire",
"x": 5.500233,
"y": -1.500241,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "wire",
"x": 5.763123,
"y": -1.500241,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "wire",
"x": 5.906887,
"y": -1.356477,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "wire",
"x": 5.907141,
"y": -1.356477,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "wire",
"x": 5.968101,
"y": -1.295517,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "wire",
"x": 7.061571,
"y": -1.295517,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "wire",
"x": 7.366371,
"y": -1.600317,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "wire",
"x": 8.077317,
"y": -1.600317,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "wire",
"x": 8.839317,
"y": -0.838317,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "via",
"x": 8.839317,
"y": -0.838317,
"from_layer": "top",
"to_layer": "bottom",
"via_diameter": 0.4572,
"via_hole_diameter": 0.2032
},
{
"route_type": "wire",
"x": 8.839317,
"y": -0.838317,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 9.956917,
"y": -0.838317,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 10.365857,
"y": -1.247257,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 17.066631,
"y": -1.247257,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 17.780371,
"y": -0.533517,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 18.491317,
"y": -0.533517,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 20.243917,
"y": 1.219083,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 20.243917,
"y": 2.590683,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 18.489031,
"y": 4.345569,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 17.911689,
"y": 4.345569,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 17.515449,
"y": 3.949329,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "via",
"x": 17.515449,
"y": 3.949329,
"from_layer": "bottom",
"to_layer": "top",
"via_diameter": 0.4572,
"via_hole_diameter": 0.2032
},
{
"route_type": "wire",
"x": 17.515449,
"y": 3.949329,
"width": 0.3048,
"layer": "top"
},
{
"route_type": "wire",
"x": 17.84192,
"y": 3.549076,
"width": 0.3048,
"layer": "top"
}
]
},
"DDR0_A5": {
"tiNet": "LPDDR4_CA5",
"socBall": "H5",
"memoryBall": "J11",
"route": [
{
"route_type": "wire",
"x": 3.500001,
"y": -2.000001,
"width": 0.13208,
"layer": "top"
},
{
"route_type": "wire",
"x": 3.074787,
"y": -1.574787,
"width": 0.13208,
"layer": "top"
},
{
"route_type": "wire",
"x": 3.074787,
"y": -1.525387,
"width": 0.13208,
"layer": "top"
},
{
"route_type": "via",
"x": 3.074787,
"y": -1.525387,
"from_layer": "top",
"to_layer": "bottom",
"via_diameter": 0.4572,
"via_hole_diameter": 0.2032
},
{
"route_type": "wire",
"x": 3.074787,
"y": -1.525387,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 3.393303,
"y": -1.206871,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 3.393303,
"y": -0.747131,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 5.562717,
"y": 1.422283,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 10.871317,
"y": 1.422283,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 11.400399,
"y": 1.951365,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 17.677755,
"y": 1.951365,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 17.911435,
"y": 2.185045,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 17.911435,
"y": 2.845445,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 17.772243,
"y": 2.984637,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 17.772243,
"y": 3.556137,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 18.165435,
"y": 3.949329,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "via",
"x": 18.165435,
"y": 3.949329,
"from_layer": "bottom",
"to_layer": "top",
"via_diameter": 0.4572,
"via_hole_diameter": 0.2032
},
{
"route_type": "wire",
"x": 18.165435,
"y": 3.949329,
"width": 0.3048,
"layer": "top"
},
{
"route_type": "wire",
"x": 18.491919,
"y": 3.549076,
"width": 0.3048,
"layer": "top"
}
]
},
"DDR0_CS0_n": {
"tiNet": "LPDDR4_CS0",
"socBall": "L3",
"memoryBall": "H4",
"route": [
{
"route_type": "wire",
"x": 4.500001,
"y": -0.499999,
"width": 0.13208,
"layer": "top"
},
{
"route_type": "wire",
"x": 4.549765,
"y": -0.975223,
"width": 0.13208,
"layer": "top"
},
{
"route_type": "via",
"x": 4.549765,
"y": -0.975223,
"from_layer": "top",
"to_layer": "bottom",
"via_diameter": 0.4572,
"via_hole_diameter": 0.2032
},
{
"route_type": "wire",
"x": 4.549765,
"y": -0.975223,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 4.549765,
"y": -0.403215,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 4.851263,
"y": -0.101717,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 5.506837,
"y": -0.101717,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 5.638917,
"y": -0.233797,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 5.638917,
"y": -1.315837,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 5.770997,
"y": -1.447917,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 6.609197,
"y": -1.447917,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 6.741277,
"y": -1.315837,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 6.741277,
"y": -1.046597,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 6.873357,
"y": -0.914517,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 7.122277,
"y": -0.914517,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 7.254357,
"y": -1.046597,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 7.254357,
"y": -1.315837,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 7.488037,
"y": -1.549517,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 8.229717,
"y": -1.549517,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 8.458317,
"y": -1.778117,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 8.458317,
"y": -2.768463,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 9.414647,
"y": -3.724793,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 11.870787,
"y": -3.724793,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 12.372711,
"y": -3.222869,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 12.372711,
"y": -2.570597,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 12.504791,
"y": -2.438517,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 12.753711,
"y": -2.438517,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 12.885791,
"y": -2.570597,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 12.885791,
"y": -2.715377,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 13.017871,
"y": -2.847457,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 17.117685,
"y": -2.847457,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 17.514433,
"y": -2.450709,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "via",
"x": 17.514433,
"y": -2.450709,
"from_layer": "bottom",
"to_layer": "top",
"via_diameter": 0.4572,
"via_hole_diameter": 0.2032
},
{
"route_type": "wire",
"x": 17.514433,
"y": -2.450709,
"width": 0.3048,
"layer": "top"
},
{
"route_type": "wire",
"x": 17.84192,
"y": -2.050913,
"width": 0.3048,
"layer": "top"
}
]
},
"DDR0_CKE0": {
"tiNet": "LPDDR4_CKE0",
"socBall": "K1",
"memoryBall": "J4",
"route": [
{
"route_type": "wire",
"x": 5.499999,
"y": -1.000001,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "wire",
"x": 5.610837,
"y": -1.000001,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "wire",
"x": 5.721721,
"y": -0.889117,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "wire",
"x": 7.645517,
"y": -0.889117,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "via",
"x": 7.645517,
"y": -0.889117,
"from_layer": "top",
"to_layer": "bottom",
"via_diameter": 0.4572,
"via_hole_diameter": 0.2032
},
{
"route_type": "wire",
"x": 7.645517,
"y": -0.889117,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 8.255371,
"y": -0.889117,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 9.042517,
"y": -1.676263,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 9.042517,
"y": -2.208647,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 9.221587,
"y": -2.387717,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 9.472793,
"y": -2.387717,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 9.652117,
"y": -2.208393,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 9.652117,
"y": -1.550533,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 9.784197,
"y": -1.418453,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 9.971141,
"y": -1.418453,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 10.134717,
"y": -1.582029,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 10.134717,
"y": -2.687437,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 10.275199,
"y": -2.827919,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 10.913461,
"y": -2.827919,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 11.099917,
"y": -2.641463,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 11.099917,
"y": -2.213493,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 11.231997,
"y": -2.081413,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 13.366613,
"y": -2.081413,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 13.498693,
"y": -2.213493,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 13.498693,
"y": -2.331837,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 13.630773,
"y": -2.463917,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 13.879693,
"y": -2.463917,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 14.011773,
"y": -2.331837,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 14.011773,
"y": -2.186549,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 14.143853,
"y": -2.054469,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 14.392773,
"y": -2.054469,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 14.524853,
"y": -2.186549,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 14.524853,
"y": -2.331837,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 14.656933,
"y": -2.463917,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 14.905853,
"y": -2.463917,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 15.037933,
"y": -2.331837,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 15.037933,
"y": -2.186549,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 15.170013,
"y": -2.054469,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 17.678771,
"y": -2.054469,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 17.885019,
"y": -2.260717,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 18.603077,
"y": -2.260717,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 18.816437,
"y": -2.047357,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 18.816437,
"y": -1.651117,
"width": 0.13208,
"layer": "bottom"
},
{
"route_type": "via",
"x": 18.816437,
"y": -1.651117,
"from_layer": "bottom",
"to_layer": "top",
"via_diameter": 0.4572,
"via_hole_diameter": 0.2032
},
{
"route_type": "wire",
"x": 18.816437,
"y": -1.651117,
"width": 0.2286,
"layer": "top"
},
{
"route_type": "wire",
"x": 18.491919,
"y": -2.050913,
"width": 0.2286,
"layer": "top"
}
]
},
"DDR0_CK0": {
"tiNet": "LPDDR4_CK_P",
"socBall": "P1",
"memoryBall": "J8",
"route": [
{
"route_type": "wire",
"x": 5.499999,
"y": 1.000001,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "wire",
"x": 5.72755,
"y": 1.000001,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "wire",
"x": 6.043793,
"y": 1.315857,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "wire",
"x": 6.456543,
"y": 1.315857,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "wire",
"x": 6.884787,
"y": 0.887613,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "via",
"x": 6.884787,
"y": 0.887613,
"from_layer": "top",
"to_layer": "bottom",
"via_diameter": 0.4572,
"via_hole_diameter": 0.2032
},
{
"route_type": "wire",
"x": 6.884787,
"y": 0.887613,
"width": 0.0889,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 6.505311,
"y": 0.508137,
"width": 0.0889,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 6.505311,
"y": 0.432953,
"width": 0.0889,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 6.646281,
"y": 0.291983,
"width": 0.0889,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 6.862181,
"y": 0.291983,
"width": 0.0889,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 7.052681,
"y": 0.482483,
"width": 0.0889,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 7.289917,
"y": 0.482483,
"width": 0.0889,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 7.480417,
"y": 0.291983,
"width": 0.0889,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 7.734417,
"y": 0.291983,
"width": 0.0889,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 7.874117,
"y": 0.431683,
"width": 0.0889,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 10.500477,
"y": 0.431683,
"width": 0.0889,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 10.784703,
"y": 0.147457,
"width": 0.0889,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 10.784703,
"y": -0.036693,
"width": 0.0889,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 10.969107,
"y": -0.221097,
"width": 0.0889,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 11.637127,
"y": -0.221097,
"width": 0.0889,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 11.785717,
"y": -0.072507,
"width": 0.0889,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 11.785717,
"y": 1.143137,
"width": 0.0889,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 12.064863,
"y": 1.422283,
"width": 0.0889,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 12.532731,
"y": 1.422283,
"width": 0.0889,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 12.810607,
"y": 1.144407,
"width": 0.0889,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 12.810607,
"y": 0.463433,
"width": 0.0889,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 12.899507,
"y": 0.374533,
"width": 0.0889,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 18.049103,
"y": 0.374533,
"width": 0.0889,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 18.581487,
"y": 0.906917,
"width": 0.0889,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 18.581487,
"y": 1.255405,
"width": 0.0889,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 18.288117,
"y": 1.548775,
"width": 0.0889,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 18.165943,
"y": 1.548775,
"width": 0.0889,
"layer": "bottom"
},
{
"route_type": "via",
"x": 18.165943,
"y": 1.548775,
"from_layer": "bottom",
"to_layer": "top",
"via_diameter": 0.4572,
"via_hole_diameter": 0.2032
},
{
"route_type": "wire",
"x": 18.165943,
"y": 1.548775,
"width": 0.0889,
"layer": "top"
},
{
"route_type": "wire",
"x": 18.491919,
"y": 1.149081,
"width": 0.0889,
"layer": "top"
}
]
},
"DDR0_CK0_n": {
"tiNet": "LPDDR4_CK_N",
"socBall": "P2",
"memoryBall": "J9",
"route": [
{
"route_type": "wire",
"x": 5,
"y": 1.000001,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "wire",
"x": 5,
"y": 0.999988,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "wire",
"x": 5.250297,
"y": 0.749691,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "wire",
"x": 6.112119,
"y": 0.749691,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "wire",
"x": 6.269091,
"y": 0.906663,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "via",
"x": 6.269091,
"y": 0.906663,
"from_layer": "top",
"to_layer": "bottom",
"via_diameter": 0.4572,
"via_hole_diameter": 0.2032
},
{
"route_type": "wire",
"x": 6.269091,
"y": 0.906663,
"width": 0.0889,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 6.269091,
"y": 0.334909,
"width": 0.0889,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 6.548237,
"y": 0.055763,
"width": 0.0889,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 7.832461,
"y": 0.055763,
"width": 0.0889,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 7.972161,
"y": 0.195463,
"width": 0.0889,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 10.402433,
"y": 0.195463,
"width": 0.0889,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 10.548483,
"y": 0.049413,
"width": 0.0889,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 10.548483,
"y": -0.134737,
"width": 0.0889,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 10.871063,
"y": -0.457317,
"width": 0.0889,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 11.735171,
"y": -0.457317,
"width": 0.0889,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 12.021937,
"y": -0.170551,
"width": 0.0889,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 12.021937,
"y": 1.045093,
"width": 0.0889,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 12.162907,
"y": 1.186063,
"width": 0.0889,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 12.434687,
"y": 1.186063,
"width": 0.0889,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 12.574387,
"y": 1.046363,
"width": 0.0889,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 12.574387,
"y": 0.365389,
"width": 0.0889,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 12.801463,
"y": 0.138313,
"width": 0.0889,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 18.147147,
"y": 0.138313,
"width": 0.0889,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 18.817707,
"y": 0.808873,
"width": 0.0889,
"layer": "bottom"
},
{
"route_type": "wire",
"x": 18.817707,
"y": 1.549283,
"width": 0.0889,
"layer": "bottom"
},
{
"route_type": "via",
"x": 18.817707,
"y": 1.549283,
"from_layer": "bottom",
"to_layer": "top",
"via_diameter": 0.4572,
"via_hole_diameter": 0.2032
},
{
"route_type": "wire",
"x": 18.817707,
"y": 1.549283,
"width": 0.0889,
"layer": "top"
},
{
"route_type": "wire",
"x": 18.492333,
"y": 1.949079,
"width": 0.0889,
"layer": "top"
},
{
"route_type": "wire",
"x": 18.491919,
"y": 1.949079,
"width": 0.0889,
"layer": "top"
}
]
},
"DDR0_RESET0_n": {
"tiNet": "LPDDR4_RESET_N|N29950535",
"socBall": "J2",
"memoryBall": "T11",
"route": [
{
"route_type": "wire",
"x": 5,
"y": -1.5,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "wire",
"x": 5,
"y": -1.500134,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "wire",
"x": 5.249027,
"y": -1.749161,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "wire",
"x": 5.772521,
"y": -1.749161,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "wire",
"x": 5.982579,
"y": -1.539103,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "wire",
"x": 5.982833,
"y": -1.539103,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "wire",
"x": 5.997819,
"y": -1.524117,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "wire",
"x": 6.934317,
"y": -1.524117,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "wire",
"x": 8.839317,
"y": -3.429117,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "wire",
"x": 8.839317,
"y": -5.054717,
"width": 0.08128,
"layer": "top"
},
{
"route_type": "via",
"x": 8.839317,
"y": -5.054717,
"from_layer": "top",
"to_layer": "inner2",
"via_diameter": 0.4572,
"via_hole_diameter": 0.2032
},
{
"route_type": "wire",
"x": 8.839317,
"y": -5.054717,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 9.499717,
"y": -5.715117,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 10.287371,
"y": -5.715117,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 11.074771,
"y": -6.502517,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 18.389717,
"y": -6.502517,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 20.064613,
"y": -4.827621,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 20.064613,
"y": -0.405013,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 22.072717,
"y": 1.603091,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 22.072717,
"y": 2.644491,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 23.163413,
"y": 3.735187,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 23.163413,
"y": 5.157587,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "wire",
"x": 22.299813,
"y": 6.021187,
"width": 0.09398,
"layer": "inner2"
},
{
"route_type": "via",
"x": 22.299813,
"y": 6.021187,
"from_layer": "inner2",
"to_layer": "top",
"via_diameter": 0.4572,
"via_hole_diameter": 0.2032
},
{
"route_type": "wire",
"x": 22.299813,
"y": 6.021187,
"width": 0.13208,
"layer": "top"
},
{
"route_type": "wire",
"x": 22.579213,
"y": 5.741787,
"width": 0.13208,
"layer": "top"
},
{
"route_type": "wire",
"x": 23.024318,
"y": 5.741787,
"width": 0.13208,
"layer": "top"
},
{
"route_type": "wire",
"x": 23.684316,
"y": 5.741787,
"width": 0.13208,
"layer": "top"
},
{
"route_type": "wire",
"x": 23.684316,
"y": 5.272087,
"width": 0.13208,
"layer": "top"
},
{
"route_type": "wire",
"x": 23.366613,
"y": 4.954384,
"width": 0.13208,
"layer": "top"
},
{
"route_type": "wire",
"x": 23.366613,
"y": 3.873779,
"width": 0.13208,
"layer": "top"
},
{
"route_type": "wire",
"x": 23.04191,
"y": 3.549076,
"width": 0.13208,
"layer": "top"
}
]
}
};
// Extracted from TI TMDS62LEVM Rev E1-1A board database (SPRCAL6D).
// Coordinates are millimetres relative to U28 (AM62L) / U29 (LPDDR4).
// Only the package-local TOP-layer DGND fanout and its 18/8 mil PTH vias are
// retained; the reference-board global plane geometry is intentionally omitted.
const TI_AM62L_EVM_GROUND_FANOUT = {
"segments": [
{
"component": "U1",
"width": 0.127,
"x1": 0.412867,
"y1": 6.686433,
"x2": 0.412867,
"y2": 5.884555
},
{
"component": "U1",
"width": 0.127,
"x1": 0.412867,
"y1": 5.884555,
"x2": 0.502674,
"y2": 5.794748
},
{
"component": "U1",
"width": 0.127,
"x1": 0.502674,
"y1": 5.794748,
"x2": 0.502674,
"y2": 5.502674
},
{
"component": "U1",
"width": 0.127,
"x1": 0.502674,
"y1": 5.502674,
"x2": 0.499999,
"y2": 5.499999
},
{
"component": "U1",
"width": 0.08128,
"x1": 0.146421,
"y1": 3.498733,
"x2": 0.395341,
"y2": 3.747653
},
{
"component": "U1",
"width": 0.08128,
"x1": 0.395341,
"y1": 3.747653,
"x2": 0.395849,
"y2": 3.747653
},
{
"component": "U1",
"width": 0.08128,
"x1": 0.395849,
"y1": 3.747653,
"x2": 0.397119,
"y2": 3.748923
},
{
"component": "U1",
"width": 0.08128,
"x1": 0.397119,
"y1": 3.748923,
"x2": 0.603367,
"y2": 3.748923
},
{
"component": "U1",
"width": 0.08128,
"x1": 0.603367,
"y1": 3.748923,
"x2": 0.604637,
"y2": 3.747653
},
{
"component": "U1",
"width": 0.08128,
"x1": 0.604637,
"y1": 3.747653,
"x2": 0.752465,
"y2": 3.747653
},
{
"component": "U1",
"width": 0.08128,
"x1": 0.752465,
"y1": 3.747653,
"x2": 1.000001,
"y2": 3.500117
},
{
"component": "U1",
"width": 0.08128,
"x1": 1.000001,
"y1": 3.500117,
"x2": 1.000001,
"y2": 3.500001
},
{
"component": "U1",
"width": 0.08128,
"x1": 5,
"y1": 1.8834,
"x2": 5.3834,
"y2": 1.5
},
{
"component": "U1",
"width": 0.08128,
"x1": 5.3834,
"y1": 1.5,
"x2": 5.499999,
"y2": 1.5
},
{
"component": "U1",
"width": 0.2032,
"x1": 3.041533,
"y1": 1.068187,
"x2": 2.825915,
"y2": 1.068187
},
{
"component": "U1",
"width": 0.2032,
"x1": 2.825915,
"y1": 1.068187,
"x2": 2.5,
"y2": 0.742272
},
{
"component": "U1",
"width": 0.2032,
"x1": 2.5,
"y1": 0.742272,
"x2": 2.5,
"y2": 0.499999
},
{
"component": "U1",
"width": 0.2032,
"x1": 1.500002,
"y1": 1.000001,
"x2": 1.5,
"y2": 1.000001
},
{
"component": "U1",
"width": 0.2032,
"x1": 2.5,
"y1": -0.907136,
"x2": 2.432421,
"y2": -0.974715
},
{
"component": "U1",
"width": 0.08128,
"x1": -2.248921,
"y1": 0.251079,
"x2": -2.248921,
"y2": -0.103119
},
{
"component": "U1",
"width": 0.08128,
"x1": -2.248921,
"y1": -0.103119,
"x2": -2.248799,
"y2": -0.103241
},
{
"component": "U1",
"width": 0.08128,
"x1": -2.248799,
"y1": -0.103241,
"x2": -2.248799,
"y2": -0.251323
},
{
"component": "U1",
"width": 0.13208,
"x1": -0.755736,
"y1": -3.038963,
"x2": -0.491094,
"y2": -2.77432
},
{
"component": "U1",
"width": 0.13208,
"x1": -0.491094,
"y1": -2.77432,
"x2": -0.386359,
"y2": -2.77432
},
{
"component": "U1",
"width": 0.13208,
"x1": -0.386359,
"y1": -2.77432,
"x2": -0.356304,
"y2": -2.744264
},
{
"component": "U1",
"width": 0.13208,
"x1": -0.356304,
"y1": -2.744264,
"x2": -0.244264,
"y2": -2.744264
},
{
"component": "U1",
"width": 0.13208,
"x1": -0.244264,
"y1": -2.744264,
"x2": 0,
"y2": -2.5
},
{
"component": "U1",
"width": 0.1016,
"x1": 1.041517,
"y1": -6.780393,
"x2": 0.582813,
"y2": -7.239097
},
{
"component": "U1",
"width": 0.08128,
"x1": 3.37692,
"y1": 4.75108,
"x2": 2.89688,
"y2": 4.75108
},
{
"component": "U1",
"width": 0.08128,
"x1": 2.89688,
"y1": 4.75108,
"x2": 2.64796,
"y2": 5
},
{
"component": "U1",
"width": 0.08128,
"x1": 2.64796,
"y1": 5,
"x2": 2.5,
"y2": 5
},
{
"component": "U1",
"width": 0.08128,
"x1": -0.24892,
"y1": -4.748921,
"x2": -0.600959,
"y2": -4.748921
},
{
"component": "U1",
"width": 0.08128,
"x1": -0.600959,
"y1": -4.748921,
"x2": -0.748919,
"y2": -4.896881
},
{
"component": "U1",
"width": 0.08128,
"x1": -0.748919,
"y1": -4.896881,
"x2": -0.748919,
"y2": -5.103119
},
{
"component": "U1",
"width": 0.08128,
"x1": -0.748919,
"y1": -5.103119,
"x2": -0.499999,
"y2": -5.352039
},
{
"component": "U1",
"width": 0.08128,
"x1": -0.499999,
"y1": -5.352039,
"x2": -0.499999,
"y2": -5.499999
},
{
"component": "U1",
"width": 0.2032,
"x1": -2.248799,
"y1": -0.251323,
"x2": -2.000123,
"y2": -0.499999
},
{
"component": "U1",
"width": 0.2032,
"x1": -2.000123,
"y1": -0.499999,
"x2": -2.000001,
"y2": -0.499999
},
{
"component": "U1",
"width": 0.08128,
"x1": -2.000001,
"y1": 0.499999,
"x2": -2.248921,
"y2": 0.251079
},
{
"component": "U1",
"width": 0.2032,
"x1": -1.500007,
"y1": 3.500003,
"x2": -1.50001,
"y2": 3.500001
},
{
"component": "U1",
"width": 0.2032,
"x1": -1.500005,
"y1": 3.500001,
"x2": -1.500007,
"y2": 3.500003
},
{
"component": "U1",
"width": 0.2032,
"x1": -1.50001,
"y1": 3.500001,
"x2": -2.000001,
"y2": 3.500001
},
{
"component": "U1",
"width": 0.08128,
"x1": 0,
"y1": -4.500001,
"x2": -0.24892,
"y2": -4.748921
},
{
"component": "U1",
"width": 0.08128,
"x1": 3.568817,
"y1": 4.559183,
"x2": 3.37692,
"y2": 4.75108
},
{
"component": "U1",
"width": 0.127,
"x1": 0.965317,
"y1": 7.238883,
"x2": 0.412867,
"y2": 6.686433
},
{
"component": "U1",
"width": 0.2032,
"x1": 0.045075,
"y1": 3.962283,
"x2": 0.045075,
"y2": 3.956441
},
{
"component": "U1",
"width": 0.2032,
"x1": 0.045075,
"y1": 3.956441,
"x2": 0.000117,
"y2": 3.911483
},
{
"component": "U1",
"width": 0.2032,
"x1": 0.000117,
"y1": 3.911483,
"x2": 0.000117,
"y2": 3.500003
},
{
"component": "U1",
"width": 0.2032,
"x1": 0.000117,
"y1": 3.500003,
"x2": 0.001387,
"y2": 3.498733
},
{
"component": "U1",
"width": 0.08128,
"x1": 0.001387,
"y1": 3.498733,
"x2": 0.146421,
"y2": 3.498733
},
{
"component": "U1",
"width": 0.08128,
"x1": 5,
"y1": 2.000001,
"x2": 5,
"y2": 1.8834
},
{
"component": "U1",
"width": 0.2032,
"x1": 3.427613,
"y1": 1.454267,
"x2": 3.041533,
"y2": 1.068187
},
{
"component": "U1",
"width": 0.2032,
"x1": 2.000001,
"y1": 1.5,
"x2": 1.500002,
"y2": 1.000001
},
{
"component": "U1",
"width": 0.2032,
"x1": 2.5,
"y1": -0.499999,
"x2": 2.5,
"y2": -0.907136
},
{
"component": "U1",
"width": 0.13208,
"x1": -1.000001,
"y1": -3.500001,
"x2": -0.755736,
"y2": -3.255736
},
{
"component": "U1",
"width": 0.13208,
"x1": -0.755736,
"y1": -3.255736,
"x2": -0.755736,
"y2": -3.038963
},
{
"component": "U1",
"width": 0.1016,
"x1": 1.000001,
"y1": -5.499999,
"x2": 1.000001,
"y2": -5.749801
},
{
"component": "U1",
"width": 0.1016,
"x1": 1.000001,
"y1": -5.749801,
"x2": 1.041517,
"y2": -5.791317
},
{
"component": "U1",
"width": 0.1016,
"x1": 1.041517,
"y1": -5.791317,
"x2": 1.041517,
"y2": -6.780393
},
{
"component": "U1",
"width": 0.08128,
"x1": 6.069213,
"y1": -5.459613,
"x2": 5.6096,
"y2": -5
},
{
"component": "U1",
"width": 0.08128,
"x1": 5.6096,
"y1": -5,
"x2": 5.499999,
"y2": -5
},
{
"component": "U1",
"width": 0.2032,
"x1": 1.5,
"y1": 0.499999,
"x2": 1.5,
"y2": 1.000001
},
{
"component": "U1",
"width": 0.2032,
"x1": 2.000001,
"y1": 2.000001,
"x2": 2.5,
"y2": 2.000001
},
{
"component": "U1",
"width": 0.2032,
"x1": 2.000001,
"y1": 1.5,
"x2": 2.000001,
"y2": 2.000001
},
{
"component": "U1",
"width": 0.2032,
"x1": 2.5,
"y1": 2.000001,
"x2": 2.5,
"y2": 2.5
},
{
"component": "U1",
"width": 0.2032,
"x1": 2.000001,
"y1": 2.5,
"x2": 2.000001,
"y2": 2.000001
},
{
"component": "U1",
"width": 0.2032,
"x1": 2.5,
"y1": 2.5,
"x2": 2.000001,
"y2": 2.5
},
{
"component": "U1",
"width": 0.1778,
"x1": 2.000001,
"y1": 2.5,
"x2": 1.920288,
"y2": 2.5
},
{
"component": "U1",
"width": 0.1778,
"x1": 1.920288,
"y1": 2.5,
"x2": 1.623108,
"y2": 2.79718
},
{
"component": "U1",
"width": 0.1778,
"x1": 1.623108,
"y1": 2.79718,
"x2": 1.297181,
"y2": 2.79718
},
{
"component": "U1",
"width": 0.1778,
"x1": 1.297181,
"y1": 2.79718,
"x2": 1.000001,
"y2": 2.5
},
{
"component": "U2",
"width": 0.3048,
"x1": 6.824985,
"y1": 2.799994,
"x2": 7.362952,
"y2": 2.797556
},
{
"component": "U2",
"width": 0.3048,
"x1": 6.824985,
"y1": 1.199998,
"x2": 7.304532,
"y2": 0.8001
},
{
"component": "U2",
"width": 0.3048,
"x1": 6.824985,
"y1": -1.199998,
"x2": 7.15137,
"y2": -0.8001
},
{
"component": "U2",
"width": 0.3048,
"x1": 7.152386,
"y1": -3.2004,
"x2": 6.824985,
"y2": -2.799994
},
{
"component": "U2",
"width": 0.3048,
"x1": 5.524988,
"y1": 4.399991,
"x2": 5.851906,
"y2": 4.800346
},
{
"component": "U2",
"width": 0.3048,
"x1": 4.22499,
"y1": 4.399991,
"x2": 4.551934,
"y2": 3.999738
},
{
"component": "U2",
"width": 0.3048,
"x1": 4.874989,
"y1": 3.599993,
"x2": 4.551934,
"y2": 3.999738
},
{
"component": "U2",
"width": 0.3048,
"x1": 5.524988,
"y1": 1.199998,
"x2": 5.850382,
"y2": 0.799592
},
{
"component": "U2",
"width": 0.3048,
"x1": 4.22499,
"y1": 1.199998,
"x2": 4.551934,
"y2": 1.599692
},
{
"component": "U2",
"width": 0.3048,
"x1": 4.874989,
"y1": 1.999996,
"x2": 4.551934,
"y2": 1.599692
},
{
"component": "U2",
"width": 0.3048,
"x1": 4.874989,
"y1": -1.999996,
"x2": 5.524988,
"y2": -1.199998
},
{
"component": "U2",
"width": 0.3048,
"x1": 5.524988,
"y1": -1.199998,
"x2": 5.851398,
"y2": -0.8001
},
{
"component": "U2",
"width": 0.3048,
"x1": 4.22499,
"y1": -1.199998,
"x2": 4.551172,
"y2": -0.79756
},
{
"component": "U2",
"width": 0.3048,
"x1": 5.774436,
"y1": -5.291836,
"x2": 5.774436,
"y2": -4.64944
},
{
"component": "U2",
"width": 0.3048,
"x1": 5.774436,
"y1": -4.64944,
"x2": 5.524988,
"y2": -4.399991
},
{
"component": "U2",
"width": 0.3048,
"x1": 4.874989,
"y1": -3.599993,
"x2": 5.202428,
"y2": -4.000246
},
{
"component": "U2",
"width": 0.3048,
"x1": 5.524988,
"y1": -4.399991,
"x2": 5.202428,
"y2": -4.000246
},
{
"component": "U2",
"width": 0.3048,
"x1": 2.601468,
"y1": 4.800346,
"x2": 2.924993,
"y2": 4.399991
},
{
"component": "U2",
"width": 0.3048,
"x1": 2.924993,
"y1": 1.199998,
"x2": 2.601468,
"y2": 0.8001
},
{
"component": "U2",
"width": 0.3048,
"x1": 2.924993,
"y1": 2.799994,
"x2": 2.600198,
"y2": 2.399792
},
{
"component": "U2",
"width": 0.3048,
"x1": 2.924993,
"y1": -1.199998,
"x2": 3.251454,
"y2": -0.8001
},
{
"component": "U2",
"width": 0.3048,
"x1": 4.22499,
"y1": -4.399991,
"x2": 3.901948,
"y2": -4.800346
},
{
"component": "U2",
"width": 0.3048,
"x1": 2.924993,
"y1": -4.399991,
"x2": 2.601976,
"y2": -4.800346
},
{
"component": "U2",
"width": 0.1016,
"x1": 2.924993,
"y1": -2.799994,
"x2": 3.248914,
"y2": -3.123916
},
{
"component": "U2",
"width": 0.1016,
"x1": 3.248914,
"y1": -3.123916,
"x2": 3.248914,
"y2": -4.07607
},
{
"component": "U2",
"width": 0.1016,
"x1": 3.248914,
"y1": -4.07607,
"x2": 2.924993,
"y2": -4.399991
},
{
"component": "U2",
"width": 0.3048,
"x1": 1.624995,
"y1": 4.399991,
"x2": 1.300988,
"y2": 4.800346
},
{
"component": "U2",
"width": 0.3048,
"x1": 0.974997,
"y1": 3.599993,
"x2": 1.300988,
"y2": 3.2004
},
{
"component": "U2",
"width": 0.3048,
"x1": 1.624995,
"y1": 2.799994,
"x2": 1.300988,
"y2": 3.2004
},
{
"component": "U2",
"width": 0.3048,
"x1": 0.974997,
"y1": 1.999996,
"x2": 1.300988,
"y2": 1.6002
},
{
"component": "U2",
"width": 0.3048,
"x1": 0.974997,
"y1": -3.599993,
"x2": 1.300988,
"y2": -3.2004
},
{
"component": "U2",
"width": 0.3048,
"x1": 1.624995,
"y1": -2.799994,
"x2": 1.300988,
"y2": -3.2004
},
{
"component": "U2",
"width": 0.3048,
"x1": 0.974997,
"y1": -1.999996,
"x2": 0.65024,
"y2": -2.399792
},
{
"component": "U2",
"width": 0.3048,
"x1": 1.624995,
"y1": -4.399991,
"x2": 1.302004,
"y2": -4.800346
},
{
"component": "U2",
"width": 0.3048,
"x1": -1.299693,
"y1": 4.799838,
"x2": -1.624998,
"y2": 4.399991
},
{
"component": "U2",
"width": 0.3048,
"x1": -0.974999,
"y1": 3.599993,
"x2": -0.649732,
"y2": 3.999738
},
{
"component": "U2",
"width": 0.3048,
"x1": -0.649224,
"y1": 1.6002,
"x2": -0.974598,
"y2": 1.999996
},
{
"component": "U2",
"width": 0.3048,
"x1": -0.974598,
"y1": 1.999996,
"x2": -0.974999,
"y2": 1.999996
},
{
"component": "U2",
"width": 0.3048,
"x1": -0.974999,
"y1": 1.999996,
"x2": -1.624998,
"y2": 2.799994
},
{
"component": "U2",
"width": 0.3048,
"x1": -1.30048,
"y1": -3.2004,
"x2": -0.974999,
"y2": -3.599993
},
{
"component": "U2",
"width": 0.3048,
"x1": -1.624998,
"y1": -2.799994,
"x2": -1.30048,
"y2": -3.2004
},
{
"component": "U2",
"width": 0.3048,
"x1": -0.974999,
"y1": -1.999996,
"x2": -0.649732,
"y2": -1.6002
},
{
"component": "U2",
"width": 0.3048,
"x1": -1.624998,
"y1": -4.399991,
"x2": -1.30048,
"y2": -4.800346
},
{
"component": "U2",
"width": 0.3048,
"x1": -2.59969,
"y1": 4.799838,
"x2": -2.924995,
"y2": 4.399991
},
{
"component": "U2",
"width": 0.3048,
"x1": -2.598928,
"y1": 0.8001,
"x2": -2.924995,
"y2": 1.199998
},
{
"component": "U2",
"width": 0.3048,
"x1": -4.224993,
"y1": 1.199998,
"x2": -3.90144,
"y2": 0.8001
},
{
"component": "U2",
"width": 0.3048,
"x1": -2.924995,
"y1": 2.799994,
"x2": -3.249168,
"y2": 2.4003
},
{
"component": "U2",
"width": 0.3048,
"x1": -2.924995,
"y1": -1.199998,
"x2": -3.2512,
"y2": -0.8001
},
{
"component": "U2",
"width": 0.3048,
"x1": -2.924995,
"y1": -2.799994,
"x2": -3.25247,
"y2": -3.199892
},
{
"component": "U2",
"width": 0.3048,
"x1": -2.924995,
"y1": -4.399991,
"x2": -3.070606,
"y2": -4.873752
},
{
"component": "U2",
"width": 0.3048,
"x1": -5.524988,
"y1": 4.399991,
"x2": -5.851398,
"y2": 4.800346
},
{
"component": "U2",
"width": 0.3048,
"x1": -4.551426,
"y1": 4.800346,
"x2": -4.224993,
"y2": 4.399991
},
{
"component": "U2",
"width": 0.3048,
"x1": -4.874992,
"y1": 3.599993,
"x2": -4.55168,
"y2": 4.000246
},
{
"component": "U2",
"width": 0.3048,
"x1": -5.524988,
"y1": 1.199998,
"x2": -5.853176,
"y2": 0.8001
},
{
"component": "U2",
"width": 0.3048,
"x1": -4.874992,
"y1": 1.999996,
"x2": -5.524988,
"y2": 1.199998
},
{
"component": "U2",
"width": 0.3048,
"x1": -5.524988,
"y1": -1.199998,
"x2": -5.851144,
"y2": -0.8001
},
{
"component": "U2",
"width": 0.3048,
"x1": -4.224993,
"y1": -1.199998,
"x2": -4.551172,
"y2": -0.8001
},
{
"component": "U2",
"width": 0.3048,
"x1": -5.204968,
"y1": -1.599692,
"x2": -4.874992,
"y2": -1.999996
},
{
"component": "U2",
"width": 0.3048,
"x1": -4.224993,
"y1": -4.399991,
"x2": -4.55168,
"y2": -4.825746
},
{
"component": "U2",
"width": 0.3048,
"x1": -5.8166,
"y1": -5.207,
"x2": -5.8166,
"y2": -4.691604
},
{
"component": "U2",
"width": 0.3048,
"x1": -5.8166,
"y1": -4.691604,
"x2": -5.524988,
"y2": -4.399991
},
{
"component": "U2",
"width": 0.3048,
"x1": -4.874992,
"y1": -3.599993,
"x2": -4.551172,
"y2": -4.000246
},
{
"component": "U2",
"width": 0.3048,
"x1": -6.824985,
"y1": 2.799994,
"x2": -7.651394,
"y2": 2.799994
},
{
"component": "U2",
"width": 0.3048,
"x1": -7.651394,
"y1": 2.799994,
"x2": -7.8994,
"y2": 3.048
},
{
"component": "U2",
"width": 0.3048,
"x1": -6.824985,
"y1": -2.799994,
"x2": -7.152132,
"y2": -3.2004
},
{
"component": "U1",
"width": 0.2032,
"x1": 5,
"y1": 5.499999,
"x2": 5,
"y2": 6.220236
},
{
"component": "U1",
"width": 0.2032,
"x1": 5,
"y1": 6.220236,
"x2": 5.306177,
"y2": 6.526413
},
{
"component": "U1",
"width": 0.2032,
"x1": 5.306177,
"y1": 6.526413,
"x2": 5.332847,
"y2": 6.526413
},
{
"component": "U1",
"width": 0.2032,
"x1": 5.332847,
"y1": 6.526413,
"x2": 5.511917,
"y2": 6.705483
},
{
"component": "U1",
"width": 0.2032,
"x1": 5.499999,
"y1": 5,
"x2": 5.499999,
"y2": 5.499999
},
{
"component": "U1",
"width": 0.2032,
"x1": 5.499999,
"y1": 5.499999,
"x2": 5.779633,
"y2": 5.499999
},
{
"component": "U1",
"width": 0.2032,
"x1": 5.779633,
"y1": 5.499999,
"x2": 6.045317,
"y2": 5.765683
},
{
"component": "U1",
"width": 0.2032,
"x1": 5.499999,
"y1": 4,
"x2": 6.100051,
"y2": 4
},
{
"component": "U1",
"width": 0.2032,
"x1": 6.100051,
"y1": 4,
"x2": 6.474831,
"y2": 4.374779
},
{
"component": "U1",
"width": 0.08128,
"x1": 5.499999,
"y1": 0,
"x2": 5.500116,
"y2": -117e-6
},
{
"component": "U1",
"width": 0.08128,
"x1": 5.500116,
"y1": -117e-6,
"x2": 5.500233,
"y2": -117e-6
},
{
"component": "U1",
"width": 0.2032,
"x1": 5.500233,
"y1": -117e-6,
"x2": 6.074273,
"y2": -117e-6
},
{
"component": "U1",
"width": 0.2032,
"x1": 6.074273,
"y1": -117e-6,
"x2": 6.275695,
"y2": -0.201539
},
{
"component": "U1",
"width": 0.2032,
"x1": 5.499999,
"y1": -2.000001,
"x2": 6.046191,
"y2": -2.000001
},
{
"component": "U1",
"width": 0.2032,
"x1": 6.046191,
"y1": -2.000001,
"x2": 6.136249,
"y2": -1.909943
},
{
"component": "U1",
"width": 0.254,
"x1": 5.499999,
"y1": -4,
"x2": 5,
"y2": -3.500001
},
{
"component": "U1",
"width": 0.254,
"x1": 5.499999,
"y1": -4,
"x2": 6.049272,
"y2": -4
},
{
"component": "U1",
"width": 0.254,
"x1": 6.049272,
"y1": -4,
"x2": 6.307953,
"y2": -4.258681
},
{
"component": "U1",
"width": 0.2032,
"x1": 5,
"y1": -5.499999,
"x2": 5.499999,
"y2": -5.499999
},
{
"component": "U1",
"width": 0.2032,
"x1": 5.499999,
"y1": -5.499999,
"x2": 5.499999,
"y2": -5.967613
},
{
"component": "U1",
"width": 0.2032,
"x1": 5.499999,
"y1": -5.967613,
"x2": 5.501503,
"y2": -5.969117
},
{
"component": "U1",
"width": 0.2032,
"x1": 4.500001,
"y1": 2.999999,
"x2": 4.500001,
"y2": 2.564501
},
{
"component": "U1",
"width": 0.254,
"x1": 4.500001,
"y1": 2.564501,
"x2": 4.501505,
"y2": 2.562997
},
{
"component": "U1",
"width": 0.254,
"x1": 4.501505,
"y1": 2.562997,
"x2": 4.501505,
"y2": 2.498496
},
{
"component": "U1",
"width": 0.254,
"x1": 4.501505,
"y1": 2.498496,
"x2": 5,
"y2": 2.000001
},
{
"component": "U1",
"width": 0.2032,
"x1": 4,
"y1": 4.500001,
"x2": 3.627999,
"y2": 4.500001
},
{
"component": "U1",
"width": 0.2032,
"x1": 3.627999,
"y1": 4.500001,
"x2": 3.568817,
"y2": 4.559183
},
{
"component": "U1",
"width": 0.127,
"x1": 4,
"y1": -5.499999,
"x2": 4,
"y2": -5.966468
},
{
"component": "U1",
"width": 0.127,
"x1": 4,
"y1": -5.966468,
"x2": 4.044305,
"y2": -6.010773
},
{
"component": "U1",
"width": 0.127,
"x1": 4.044305,
"y1": -6.010773,
"x2": 4.044305,
"y2": -6.268329
},
{
"component": "U1",
"width": 0.127,
"x1": 4.044305,
"y1": -6.268329,
"x2": 3.632317,
"y2": -6.680317
},
{
"component": "U1",
"width": 0.254,
"x1": 4,
"y1": -5.499999,
"x2": 3.500001,
"y2": -5
},
{
"component": "U1",
"width": 0.2032,
"x1": 1.5,
"y1": -0.499999,
"x2": 1.5,
"y2": -1.000001
},
{
"component": "U1",
"width": 0.2032,
"x1": 1.5,
"y1": -1.000001,
"x2": 2.000001,
"y2": -1.000001
},
{
"component": "U1",
"width": 0.2032,
"x1": 2.000001,
"y1": -1.000001,
"x2": 2.407135,
"y2": -1.000001
},
{
"component": "U1",
"width": 0.2032,
"x1": 2.407135,
"y1": -1.000001,
"x2": 2.432421,
"y2": -0.974715
},
{
"component": "U1",
"width": 0.2032,
"x1": 1.5,
"y1": -2.5,
"x2": 2.000001,
"y2": -2.5
},
{
"component": "U1",
"width": 0.2032,
"x1": 2.5,
"y1": -2.000001,
"x2": 2.5,
"y2": -2.5
},
{
"component": "U1",
"width": 0.2032,
"x1": 2.000001,
"y1": -2.5,
"x2": 2.5,
"y2": -2.5
},
{
"component": "U1",
"width": 0.2032,
"x1": 2.5,
"y1": -2.5,
"x2": 2.5,
"y2": -2.74479
},
{
"component": "U1",
"width": 0.2032,
"x1": 2.5,
"y1": -2.74479,
"x2": 2.755209,
"y2": -2.999999
},
{
"component": "U1",
"width": 0.2032,
"x1": 2.755209,
"y1": -2.999999,
"x2": 2.999999,
"y2": -2.999999
},
{
"component": "U1",
"width": 0.2032,
"x1": 2.999999,
"y1": -2.999999,
"x2": 3.500001,
"y2": -2.999999
},
{
"component": "U1",
"width": 0.2032,
"x1": 1.5,
"y1": -3.500001,
"x2": 1.000001,
"y2": -3.500001
},
{
"component": "U1",
"width": 0.2032,
"x1": 1.5,
"y1": -3.500001,
"x2": 2.000001,
"y2": -3.500001
},
{
"component": "U1",
"width": 0.2032,
"x1": 2.000001,
"y1": -3.500001,
"x2": 2.000001,
"y2": -3.297149
},
{
"component": "U1",
"width": 0.2032,
"x1": 2.000001,
"y1": -3.297149,
"x2": 2.220839,
"y2": -3.076311
},
{
"component": "U1",
"width": 0.2032,
"x1": 2.000001,
"y1": -2.5,
"x2": 2.000001,
"y2": -2.855473
},
{
"component": "U1",
"width": 0.2032,
"x1": 2.000001,
"y1": -2.855473,
"x2": 2.220839,
"y2": -3.076311
},
{
"component": "U1",
"width": 0.2032,
"x1": 2.566787,
"y1": -3.552307,
"x2": 2.947693,
"y2": -3.552307
},
{
"component": "U1",
"width": 0.2032,
"x1": 2.947693,
"y1": -3.552307,
"x2": 2.999999,
"y2": -3.500001
},
{
"component": "U1",
"width": 0.08128,
"x1": -1.000001,
"y1": 5.499999,
"x2": -0.999881,
"y2": 5.499999
},
{
"component": "U1",
"width": 0.08128,
"x1": -0.999881,
"y1": 5.499999,
"x2": -0.999881,
"y2": 5.673481
},
{
"component": "U1",
"width": 0.08128,
"x1": -0.999881,
"y1": 5.673481,
"x2": -1.117483,
"y2": 5.791083
},
{
"component": "U1",
"width": 0.08128,
"x1": -1.117483,
"y1": 5.791083,
"x2": -1.117483,
"y2": 6.446657
},
{
"component": "U1",
"width": 0.08128,
"x1": -1.117483,
"y1": 6.446657,
"x2": -0.915787,
"y2": 6.648353
},
{
"component": "U1",
"width": 0.08128,
"x1": -0.915787,
"y1": 6.648353,
"x2": -0.915787,
"y2": 6.927499
},
{
"component": "U1",
"width": 0.08128,
"x1": -0.915787,
"y1": 6.927499,
"x2": -0.553603,
"y2": 7.289683
},
{
"component": "U1",
"width": 0.2032,
"x1": 1.000001,
"y1": 3.500001,
"x2": 1.5,
"y2": 3.500001
},
{
"component": "U1",
"width": 0.2032,
"x1": 0.499999,
"y1": 0.499999,
"x2": 0.855833,
"y2": 0.499999
},
{
"component": "U1",
"width": 0.2032,
"x1": 0.855833,
"y1": 0.499999,
"x2": 0.914517,
"y2": 0.558683
},
{
"component": "U1",
"width": 0.254,
"x1": 0,
"y1": -4.500001,
"x2": 0,
"y2": -4.002273
},
{
"component": "U1",
"width": 0.254,
"x1": 0,
"y1": -4.002273,
"x2": -0.068105,
"y2": -3.934168
},
{
"component": "U1",
"width": 0.2032,
"x1": -1.5,
"y1": 3.500001,
"x2": -1.500005,
"y2": 3.500001
},
{
"component": "U1",
"width": 0.2032,
"x1": -1.000001,
"y1": 3.500001,
"x2": -1.5,
"y2": 3.500001
},
{
"component": "U1",
"width": 0.2032,
"x1": -1.5,
"y1": 2.5,
"x2": -1.000001,
"y2": 2.5
},
{
"component": "U1",
"width": 0.2032,
"x1": -1.000001,
"y1": 2.5,
"x2": -0.499999,
"y2": 2.5
},
{
"component": "U1",
"width": 0.2032,
"x1": -1.5,
"y1": 2.5,
"x2": -1.500007,
"y2": 2.500008
},
{
"component": "U1",
"width": 0.2032,
"x1": -1.500007,
"y1": 2.500008,
"x2": -1.500007,
"y2": 2.843159
},
{
"component": "U1",
"width": 0.2032,
"x1": -1.500007,
"y1": 2.843159,
"x2": -1.396883,
"y2": 2.946283
},
{
"component": "U1",
"width": 0.2032,
"x1": -1.500007,
"y1": 3.500003,
"x2": -1.500007,
"y2": 3.049407
},
{
"component": "U1",
"width": 0.2032,
"x1": -1.500007,
"y1": 3.049407,
"x2": -1.396883,
"y2": 2.946283
},
{
"component": "U1",
"width": 0.2032,
"x1": -1.500005,
"y1": 3.500001,
"x2": -1.50001,
"y2": 3.500001
},
{
"component": "U1",
"width": 0.254,
"x1": -0.295412,
"y1": 0,
"x2": 0,
"y2": 0
},
{
"component": "U1",
"width": 0.254,
"x1": -0.474599,
"y1": 0.179187,
"x2": -0.295412,
"y2": 0
},
{
"component": "U1",
"width": 0.254,
"x1": -0.487299,
"y1": 0.179187,
"x2": -0.474599,
"y2": 0.179187
},
{
"component": "U1",
"width": 0.254,
"x1": -0.499999,
"y1": 0.166487,
"x2": -0.499999,
"y2": 0.499999
},
{
"component": "U1",
"width": 0.254,
"x1": -0.499999,
"y1": 0.166487,
"x2": -0.487299,
"y2": 0.179187
},
{
"component": "U1",
"width": 0.254,
"x1": -0.499999,
"y1": 0.153787,
"x2": -0.499999,
"y2": 0.166487
},
{
"component": "U1",
"width": 0.254,
"x1": -0.914283,
"y1": -0.558917,
"x2": -0.558917,
"y2": -0.558917
},
{
"component": "U1",
"width": 0.254,
"x1": -0.558917,
"y1": -0.558917,
"x2": -0.499999,
"y2": -0.499999
},
{
"component": "U1",
"width": 0.08128,
"x1": -2.248799,
"y1": -0.251323,
"x2": -2.490587,
"y2": -0.251079
},
{
"component": "U1",
"width": 0.08128,
"x1": -2.490587,
"y1": -0.251079,
"x2": -2.542705,
"y2": -0.251079
},
{
"component": "U1",
"width": 0.08128,
"x1": -2.542705,
"y1": -0.251079,
"x2": -2.803987,
"y2": -0.343444
},
{
"component": "U1",
"width": 0.13208,
"x1": -2.803987,
"y1": -0.343444,
"x2": -2.999999,
"y2": -0.499999
},
{
"component": "U1",
"width": 0.2032,
"x1": -0.499999,
"y1": 1.5,
"x2": -0.431683,
"y2": 1.092083
},
{
"component": "U1",
"width": 0.2032,
"x1": -1.5,
"y1": 1.5,
"x2": -1.0936,
"y2": 1.5
},
{
"component": "U1",
"width": 0.2032,
"x1": -1.0936,
"y1": 1.5,
"x2": -1.041283,
"y2": 1.447683
},
{
"component": "U1",
"width": 0.2032,
"x1": -1.5,
"y1": 1.000001,
"x2": -1.5,
"y2": 1.5
},
{
"component": "U1",
"width": 0.2032,
"x1": -2.000001,
"y1": 0.499999,
"x2": -1.5,
"y2": 1.000001
},
{
"component": "U1",
"width": 0.2032,
"x1": -1.5,
"y1": -1.000001,
"x2": -2.000001,
"y2": -0.499999
},
{
"component": "U1",
"width": 0.2032,
"x1": -1.5,
"y1": -1.000001,
"x2": -1.058916,
"y2": -0.558917
},
{
"component": "U1",
"width": 0.2032,
"x1": -1.058916,
"y1": -0.558917,
"x2": -0.914283,
"y2": -0.558917
},
{
"component": "U1",
"width": 0.254,
"x1": -0.499999,
"y1": -0.499999,
"x2": -0.499999,
"y2": 0.153787
},
{
"component": "U1",
"width": 0.2032,
"x1": -2.5,
"y1": -5,
"x2": -2.5,
"y2": -4.564502
},
{
"component": "U1",
"width": 0.2032,
"x1": -2.5,
"y1": -4.564502,
"x2": -2.562997,
"y2": -4.501505
},
{
"component": "U1",
"width": 0.2032,
"x1": -2.999999,
"y1": -4.500001,
"x2": -2.564501,
"y2": -4.500001
},
{
"component": "U1",
"width": 0.2032,
"x1": -2.564501,
"y1": -4.500001,
"x2": -2.562997,
"y2": -4.501505
},
{
"component": "U1",
"width": 0.13208,
"x1": -1.906387,
"y1": -5.789813,
"x2": -2.000001,
"y2": -5.696199
},
{
"component": "U1",
"width": 0.13208,
"x1": -2.000001,
"y1": -5.696199,
"x2": -2.000001,
"y2": -5.499999
},
{
"component": "U1",
"width": 0.254,
"x1": -3.500001,
"y1": 5.499999,
"x2": -3.500001,
"y2": 5.966849
},
{
"component": "U1",
"width": 0.254,
"x1": -3.500001,
"y1": 5.966849,
"x2": -3.502035,
"y2": 5.968883
},
{
"component": "U1",
"width": 0.2032,
"x1": -4,
"y1": 4.500001,
"x2": -4,
"y2": 4
},
{
"component": "U1",
"width": 0.2032,
"x1": -4,
"y1": 4,
"x2": -4.500001,
"y2": 4
},
{
"component": "U1",
"width": 0.2032,
"x1": -4.500001,
"y1": 5,
"x2": -4.500001,
"y2": 4.564517
},
{
"component": "U1",
"width": 0.2032,
"x1": -4.500001,
"y1": 4.564517,
"x2": -4.434215,
"y2": 4.498731
},
{
"component": "U1",
"width": 0.2032,
"x1": -4,
"y1": 4.500001,
"x2": -4.432945,
"y2": 4.500001
},
{
"component": "U1",
"width": 0.2032,
"x1": -4.432945,
"y1": 4.500001,
"x2": -4.434215,
"y2": 4.498731
},
{
"component": "U1",
"width": 0.2032,
"x1": -2.999999,
"y1": 2.999999,
"x2": -2.695199,
"y2": 2.999999
},
{
"component": "U1",
"width": 0.2032,
"x1": -2.695199,
"y1": 2.999999,
"x2": -2.5,
"y2": 2.8048
},
{
"component": "U1",
"width": 0.2032,
"x1": -2.5,
"y1": 2.8048,
"x2": -2.5,
"y2": 2.5
},
{
"component": "U1",
"width": 0.2032,
"x1": -3.500001,
"y1": 2.999999,
"x2": -2.999999,
"y2": 2.999999
},
{
"component": "U1",
"width": 0.2032,
"x1": -3.500001,
"y1": 2.999999,
"x2": -3.500001,
"y2": 3.329826
},
{
"component": "U1",
"width": 0.2032,
"x1": -3.500001,
"y1": 3.329826,
"x2": -3.402213,
"y2": 3.427613
},
{
"component": "U1",
"width": 0.1778,
"x1": -4,
"y1": 2.5,
"x2": -4,
"y2": 2.544432
},
{
"component": "U1",
"width": 0.1778,
"x1": -4,
"y1": 2.544432,
"x2": -3.544433,
"y2": 2.999999
},
{
"component": "U1",
"width": 0.1778,
"x1": -3.544433,
"y1": 2.999999,
"x2": -3.500001,
"y2": 2.999999
},
{
"component": "U1",
"width": 0.1778,
"x1": -4,
"y1": 2.5,
"x2": -4,
"y2": 2.420526
},
{
"component": "U1",
"width": 0.1778,
"x1": -4,
"y1": 2.420526,
"x2": -3.579475,
"y2": 2.000001
},
{
"component": "U1",
"width": 0.1778,
"x1": -3.579475,
"y1": 2.000001,
"x2": -3.500001,
"y2": 2.000001
},
{
"component": "U1",
"width": 0.2032,
"x1": -2.999999,
"y1": 3.500001,
"x2": -3.329826,
"y2": 3.500001
},
{
"component": "U1",
"width": 0.2032,
"x1": -3.329826,
"y1": 3.500001,
"x2": -3.402213,
"y2": 3.427613
},
{
"component": "U1",
"width": 0.2032,
"x1": -1.000001,
"y1": -3.500001,
"x2": -1.5,
"y2": -3.500001
},
{
"component": "U1",
"width": 0.2032,
"x1": -1.000001,
"y1": -2.000001,
"x2": -1.000001,
"y2": -2.002772
},
{
"component": "U1",
"width": 0.2032,
"x1": -1.000001,
"y1": -2.002772,
"x2": -1.497228,
"y2": -2.5
},
{
"component": "U1",
"width": 0.2032,
"x1": -1.497228,
"y1": -2.5,
"x2": -1.5,
"y2": -2.5
},
{
"component": "U1",
"width": 0.13208,
"x1": -1.5,
"y1": -2.5,
"x2": -1.499987,
"y2": -2.500013
},
{
"component": "U1",
"width": 0.13208,
"x1": -1.499987,
"y1": -2.500013,
"x2": -1.499987,
"y2": -2.741813
},
{
"component": "U1",
"width": 0.13208,
"x1": -1.499987,
"y1": -2.741813,
"x2": -1.595003,
"y2": -2.836829
},
{
"component": "U1",
"width": 0.13208,
"x1": -1.595003,
"y1": -2.836829,
"x2": -1.595003,
"y2": -3.404997
},
{
"component": "U1",
"width": 0.13208,
"x1": -1.595003,
"y1": -3.404997,
"x2": -1.5,
"y2": -3.500001
},
{
"component": "U1",
"width": 0.2032,
"x1": -1.5,
"y1": -2.5,
"x2": -2.000001,
"y2": -2.5
},
{
"component": "U1",
"width": 0.2032,
"x1": -2.000001,
"y1": -2.5,
"x2": -2.5,
"y2": -2.5
},
{
"component": "U1",
"width": 0.2032,
"x1": -2.5,
"y1": -2.000001,
"x2": -2.5,
"y2": -2.5
},
{
"component": "U1",
"width": 0.2032,
"x1": -2.5,
"y1": -2.5,
"x2": -2.865526,
"y2": -2.5
},
{
"component": "U1",
"width": 0.2032,
"x1": -2.865526,
"y1": -2.5,
"x2": -2.945013,
"y2": -2.579487
},
{
"component": "U1",
"width": 0.254,
"x1": -2.999999,
"y1": -2.999999,
"x2": -2.999999,
"y2": -2.634473
},
{
"component": "U1",
"width": 0.254,
"x1": -2.999999,
"y1": -2.634473,
"x2": -2.945013,
"y2": -2.579487
},
{
"component": "U1",
"width": 0.2032,
"x1": -6.125093,
"y1": 5.917321,
"x2": -5.917321,
"y2": 5.917321
},
{
"component": "U1",
"width": 0.2032,
"x1": -5.917321,
"y1": 5.917321,
"x2": -5.499999,
"y2": 5.499999
},
{
"component": "U1",
"width": 0.2032,
"x1": -5.499999,
"y1": 5.499999,
"x2": -5.499999,
"y2": 5
},
{
"component": "U1",
"width": 0.2032,
"x1": -5,
"y1": 5.499999,
"x2": -5.00127,
"y2": 5.501269
},
{
"component": "U1",
"width": 0.2032,
"x1": -5.00127,
"y1": 5.501269,
"x2": -5.498729,
"y2": 5.501269
},
{
"component": "U1",
"width": 0.2032,
"x1": -5.498729,
"y1": 5.501269,
"x2": -5.499999,
"y2": 5.499999
},
{
"component": "U1",
"width": 0.2032,
"x1": -5.499999,
"y1": -5,
"x2": -5.917174,
"y2": -5
},
{
"component": "U1",
"width": 0.2032,
"x1": -5.917174,
"y1": -5,
"x2": -6.097387,
"y2": -5.180213
},
{
"component": "U1",
"width": 0.2032,
"x1": -6.097387,
"y1": -6.297813,
"x2": -6.097387,
"y2": -6.094613
},
{
"component": "U1",
"width": 0.2032,
"x1": -6.097387,
"y1": -6.094613,
"x2": -5.502773,
"y2": -5.499999
},
{
"component": "U1",
"width": 0.2032,
"x1": -5.502773,
"y1": -5.499999,
"x2": -5.499999,
"y2": -5.499999
},
{
"component": "U1",
"width": 0.127,
"x1": -5,
"y1": -5.499999,
"x2": -5.055987,
"y2": -5.555986
},
{
"component": "U1",
"width": 0.127,
"x1": -5.055987,
"y1": -5.555986,
"x2": -5.055987,
"y2": -5.764413
},
{
"component": "U1",
"width": 0.127,
"x1": -5.055987,
"y1": -5.764413,
"x2": -5.121793,
"y2": -5.830219
},
{
"component": "U1",
"width": 0.127,
"x1": -5.121793,
"y1": -5.830219,
"x2": -5.121793,
"y2": -6.097387
},
{
"component": "U1",
"width": 0.127,
"x1": -5.121793,
"y1": -6.097387,
"x2": -5.316865,
"y2": -6.292459
},
{
"component": "U1",
"width": 0.127,
"x1": -5.316865,
"y1": -6.292459,
"x2": -5.330581,
"y2": -6.292459
},
{
"component": "U1",
"width": 0.2032,
"x1": -3.500001,
"y1": -5.499999,
"x2": -4,
"y2": -5
},
{
"component": "U1",
"width": 0.254,
"x1": -3.500001,
"y1": -5.499999,
"x2": -3.633587,
"y2": -5.633585
},
{
"component": "U1",
"width": 0.254,
"x1": -3.633587,
"y1": -5.633585,
"x2": -3.633587,
"y2": -6.831213
}
],
"vias": [
{
"component": "U2",
"x": 7.362952,
"y": 2.797556,
"diameter": 0.4572,
"holeDiameter": 0.2032
},
{
"component": "U2",
"x": 7.304532,
"y": 0.8001,
"diameter": 0.4572,
"holeDiameter": 0.2032
},
{
"component": "U2",
"x": 7.15137,
"y": -0.8001,
"diameter": 0.4572,
"holeDiameter": 0.2032
},
{
"component": "U2",
"x": 7.152386,
"y": -3.2004,
"diameter": 0.4572,
"holeDiameter": 0.2032
},
{
"component": "U2",
"x": 5.851906,
"y": 4.800346,
"diameter": 0.4572,
"holeDiameter": 0.2032
},
{
"component": "U2",
"x": 4.551934,
"y": 3.999738,
"diameter": 0.4572,
"holeDiameter": 0.2032
},
{
"component": "U2",
"x": 5.850382,
"y": 0.799592,
"diameter": 0.4572,
"holeDiameter": 0.2032
},
{
"component": "U2",
"x": 4.551934,
"y": 1.599692,
"diameter": 0.4572,
"holeDiameter": 0.2032
},
{
"component": "U2",
"x": 5.851398,
"y": -0.8001,
"diameter": 0.4572,
"holeDiameter": 0.2032
},
{
"component": "U2",
"x": 4.551172,
"y": -0.79756,
"diameter": 0.4572,
"holeDiameter": 0.2032
},
{
"component": "U2",
"x": 5.774436,
"y": -5.291836,
"diameter": 0.4572,
"holeDiameter": 0.2032
},
{
"component": "U2",
"x": 5.202428,
"y": -4.000246,
"diameter": 0.4572,
"holeDiameter": 0.2032
},
{
"component": "U2",
"x": 2.601468,
"y": 4.800346,
"diameter": 0.4572,
"holeDiameter": 0.2032
},
{
"component": "U2",
"x": 2.601468,
"y": 0.8001,
"diameter": 0.4572,
"holeDiameter": 0.2032
},
{
"component": "U2",
"x": 2.600198,
"y": 2.399792,
"diameter": 0.4572,
"holeDiameter": 0.2032
},
{
"component": "U2",
"x": 3.251454,
"y": -0.8001,
"diameter": 0.4572,
"holeDiameter": 0.2032
},
{
"component": "U2",
"x": 3.901948,
"y": -4.800346,
"diameter": 0.4572,
"holeDiameter": 0.2032
},
{
"component": "U2",
"x": 2.601976,
"y": -4.800346,
"diameter": 0.4572,
"holeDiameter": 0.2032
},
{
"component": "U2",
"x": 1.300988,
"y": 4.800346,
"diameter": 0.4572,
"holeDiameter": 0.2032
},
{
"component": "U2",
"x": 1.300988,
"y": 3.2004,
"diameter": 0.4572,
"holeDiameter": 0.2032
},
{
"component": "U2",
"x": 1.300988,
"y": 1.6002,
"diameter": 0.4572,
"holeDiameter": 0.2032
},
{
"component": "U2",
"x": 1.300988,
"y": -3.2004,
"diameter": 0.4572,
"holeDiameter": 0.2032
},
{
"component": "U2",
"x": 0.65024,
"y": -2.399792,
"diameter": 0.4572,
"holeDiameter": 0.2032
},
{
"component": "U2",
"x": 1.302004,
"y": -4.800346,
"diameter": 0.4572,
"holeDiameter": 0.2032
},
{
"component": "U2",
"x": -1.299693,
"y": 4.799838,
"diameter": 0.4572,
"holeDiameter": 0.2032
},
{
"component": "U2",
"x": -0.649732,
"y": 3.999738,
"diameter": 0.4572,
"holeDiameter": 0.2032
},
{
"component": "U2",
"x": -0.649224,
"y": 1.6002,
"diameter": 0.4572,
"holeDiameter": 0.2032
},
{
"component": "U2",
"x": -1.30048,
"y": -3.2004,
"diameter": 0.4572,
"holeDiameter": 0.2032
},
{
"component": "U2",
"x": -0.649732,
"y": -1.6002,
"diameter": 0.4572,
"holeDiameter": 0.2032
},
{
"component": "U2",
"x": -1.30048,
"y": -4.800346,
"diameter": 0.4572,
"holeDiameter": 0.2032
},
{
"component": "U2",
"x": -2.59969,
"y": 4.799838,
"diameter": 0.4572,
"holeDiameter": 0.2032
},
{
"component": "U2",
"x": -2.598928,
"y": 0.8001,
"diameter": 0.4572,
"holeDiameter": 0.2032
},
{
"component": "U2",
"x": -3.90144,
"y": 0.8001,
"diameter": 0.4572,
"holeDiameter": 0.2032
},
{
"component": "U2",
"x": -3.249168,
"y": 2.4003,
"diameter": 0.4572,
"holeDiameter": 0.2032
},
{
"component": "U2",
"x": -3.2512,
"y": -0.8001,
"diameter": 0.4572,
"holeDiameter": 0.2032
},
{
"component": "U2",
"x": -3.25247,
"y": -3.199892,
"diameter": 0.4572,
"holeDiameter": 0.2032
},
{
"component": "U2",
"x": -3.070606,
"y": -4.873752,
"diameter": 0.4572,
"holeDiameter": 0.2032
},
{
"component": "U2",
"x": -5.851398,
"y": 4.800346,
"diameter": 0.4572,
"holeDiameter": 0.2032
},
{
"component": "U2",
"x": -4.551426,
"y": 4.800346,
"diameter": 0.4572,
"holeDiameter": 0.2032
},
{
"component": "U2",
"x": -4.55168,
"y": 4.000246,
"diameter": 0.4572,
"holeDiameter": 0.2032
},
{
"component": "U2",
"x": -5.853176,
"y": 0.8001,
"diameter": 0.4572,
"holeDiameter": 0.2032
},
{
"component": "U2",
"x": -5.851144,
"y": -0.8001,
"diameter": 0.4572,
"holeDiameter": 0.2032
},
{
"component": "U2",
"x": -4.551172,
"y": -0.8001,
"diameter": 0.4572,
"holeDiameter": 0.2032
},
{
"component": "U2",
"x": -5.204968,
"y": -1.599692,
"diameter": 0.4572,
"holeDiameter": 0.2032
},
{
"component": "U2",
"x": -4.55168,
"y": -4.825746,
"diameter": 0.4572,
"holeDiameter": 0.2032
},
{
"component": "U2",
"x": -5.8166,
"y": -5.207,
"diameter": 0.4572,
"holeDiameter": 0.2032
},
{
"component": "U2",
"x": -4.551172,
"y": -4.000246,
"diameter": 0.4572,
"holeDiameter": 0.2032
},
{
"component": "U2",
"x": -4.47294,
"y": -6.071108,
"diameter": 0.4572,
"holeDiameter": 0.2032
},
{
"component": "U2",
"x": -7.8994,
"y": 3.048,
"diameter": 0.4572,
"holeDiameter": 0.2032
},
{
"component": "U2",
"x": -7.152132,
"y": -3.2004,
"diameter": 0.4572,
"holeDiameter": 0.2032
},
{
"component": "U1",
"x": 5.511917,
"y": 6.705483,
"diameter": 0.4572,
"holeDiameter": 0.2032
},
{
"component": "U1",
"x": 6.045317,
"y": 5.765683,
"diameter": 0.4572,
"holeDiameter": 0.2032
},
{
"component": "U1",
"x": 6.474831,
"y": 4.374779,
"diameter": 0.4572,
"holeDiameter": 0.2032
},
{
"component": "U1",
"x": 6.275695,
"y": -0.201539,
"diameter": 0.4572,
"holeDiameter": 0.2032
},
{
"component": "U1",
"x": 6.136249,
"y": -1.909943,
"diameter": 0.4572,
"holeDiameter": 0.2032
},
{
"component": "U1",
"x": 6.307953,
"y": -4.258681,
"diameter": 0.4572,
"holeDiameter": 0.2032
},
{
"component": "U1",
"x": 5.501503,
"y": -5.969117,
"diameter": 0.4572,
"holeDiameter": 0.2032
},
{
"component": "U1",
"x": 4.392813,
"y": 7.062587,
"diameter": 0.4572,
"holeDiameter": 0.2032
},
{
"component": "U1",
"x": 4.501505,
"y": 2.562997,
"diameter": 0.4572,
"holeDiameter": 0.2032
},
{
"component": "U1",
"x": 3.568817,
"y": 4.559183,
"diameter": 0.4572,
"holeDiameter": 0.2032
},
{
"component": "U1",
"x": 3.427613,
"y": 1.454267,
"diameter": 0.4572,
"holeDiameter": 0.2032
},
{
"component": "U1",
"x": 3.632317,
"y": -6.680317,
"diameter": 0.4572,
"holeDiameter": 0.2032
},
{
"component": "U1",
"x": 2.432421,
"y": -0.974715,
"diameter": 0.4572,
"holeDiameter": 0.2032
},
{
"component": "U1",
"x": 2.566787,
"y": -3.552307,
"diameter": 0.4572,
"holeDiameter": 0.2032
},
{
"component": "U1",
"x": 2.220839,
"y": -3.076311,
"diameter": 0.4572,
"holeDiameter": 0.2032
},
{
"component": "U1",
"x": -0.553603,
"y": 7.289683,
"diameter": 0.4572,
"holeDiameter": 0.2032
},
{
"component": "U1",
"x": 0.965317,
"y": 7.238883,
"diameter": 0.4572,
"holeDiameter": 0.2032
},
{
"component": "U1",
"x": 0.045075,
"y": 3.962283,
"diameter": 0.4572,
"holeDiameter": 0.2032
},
{
"component": "U1",
"x": 0.914517,
"y": 0.558683,
"diameter": 0.4572,
"holeDiameter": 0.2032
},
{
"component": "U1",
"x": -0.068105,
"y": -3.934168,
"diameter": 0.4572,
"holeDiameter": 0.2032
},
{
"component": "U1",
"x": -1.396883,
"y": 2.946283,
"diameter": 0.4572,
"holeDiameter": 0.2032
},
{
"component": "U1",
"x": -0.499999,
"y": 0.153787,
"diameter": 0.4572,
"holeDiameter": 0.2032
},
{
"component": "U1",
"x": -0.914283,
"y": -0.558917,
"diameter": 0.4572,
"holeDiameter": 0.2032
},
{
"component": "U1",
"x": -1.041283,
"y": 1.447683,
"diameter": 0.4572,
"holeDiameter": 0.2032
},
{
"component": "U1",
"x": -0.431683,
"y": 1.092083,
"diameter": 0.4572,
"holeDiameter": 0.2032
},
{
"component": "U1",
"x": -2.562997,
"y": -4.501505,
"diameter": 0.4572,
"holeDiameter": 0.2032
},
{
"component": "U1",
"x": -3.502035,
"y": 5.968883,
"diameter": 0.4572,
"holeDiameter": 0.2032
},
{
"component": "U1",
"x": -4.434215,
"y": 4.498731,
"diameter": 0.4572,
"holeDiameter": 0.2032
},
{
"component": "U1",
"x": -3.402213,
"y": 3.427613,
"diameter": 0.4572,
"holeDiameter": 0.2032
},
{
"component": "U1",
"x": -2.945013,
"y": -2.579487,
"diameter": 0.4572,
"holeDiameter": 0.2032
},
{
"component": "U1",
"x": -6.125093,
"y": 5.917321,
"diameter": 0.4572,
"holeDiameter": 0.2032
},
{
"component": "U1",
"x": -6.681587,
"y": 3.582787,
"diameter": 0.4572,
"holeDiameter": 0.2032
},
{
"component": "U1",
"x": -6.097387,
"y": -5.180213,
"diameter": 0.4572,
"holeDiameter": 0.2032
},
{
"component": "U1",
"x": -6.097387,
"y": -6.297813,
"diameter": 0.4572,
"holeDiameter": 0.2032
},
{
"component": "U1",
"x": -5.330581,
"y": -6.292459,
"diameter": 0.4572,
"holeDiameter": 0.2032
}
]
};
// Extracted from TI TMDS62LEVM SPRCAL6D Altium ASCII board data.
// Coordinates are millimetres relative to U28 (AM62L) centre. These routes
// intentionally stop at the first clean point outside the 12 mm BGA body so
// the board-level router can continue without searching inside the ball field.
const wire = (layer, width, points) => points.map(([x, y]) => ({ route_type: "wire", x, y, width, layer }));
const via = (x, y, from_layer, to_layer) => ({
route_type: "via",
x,
y,
from_layer,
to_layer,
via_diameter: 0.4572,
via_hole_diameter: 0.2032,
});
const TI_AM62L_EVM_MMC1_ESCAPES = {
MMC1_SDCD: {
ball: "B6",
route: [
...wire("top", 0.08128, [[2.999999, -5], [3.00229, -5], [3.251063, -5.248773], [3.251063, -6.983613]]),
...wire("top", 0.13208, [[3.251063, -6.983613], [3.251063, -7.111863], [3.554613, -7.415413]]),
via(3.554613, -7.415413, "top", "inner2"),
...wire("inner2", 0.09398, [[3.554613, -7.415413], [3.554613, -9.085669]]),
],
},
MMC1_SDWP: {
ball: "D6",
route: [
...wire("top", 0.08128, [[2.999999, -4], [2.999999, -3.874237], [3.441055, -3.433181]]),
via(3.441055, -3.433181, "top", "bottom"),
...wire("bottom", 0.13208, [[3.441055, -3.433181], [3.098917, -3.775319], [3.098917, -4.673717], [3.656305, -5.231105], [5.535905, -5.231105], [6.094613, -5.789813], [7.999613, -5.789813]]),
],
},
MMC1_CLK: {
ball: "Y2",
route: [
...wire("top", 0.08128, [[5, 4], [5.24892, 4.24892], [5.846346, 4.24892], [6.424813, 4.827387], [6.628013, 4.827387]]),
],
},
MMC1_CMD: {
ball: "Y3",
route: [
...wire("top", 0.13208, [[4.500001, 4], [4.573387, 3.605413]]),
via(4.573387, 3.605413, "top", "inner2"),
...wire("inner2", 0.09398, [[4.573387, 3.605413], [4.573387, 4.037467], [4.827133, 4.291213], [4.827133, 4.603633], [4.664827, 4.766193], [4.664827, 5.937601], [5.078613, 6.351387]]),
],
},
MMC1_DAT0: {
ball: "AA1",
route: [
...wire("top", 0.13208, [[5.499999, 4.500001], [5.765917, 4.500001], [6.347303, 5.081387], [7.266021, 5.081387], [7.772517, 5.587883]]),
via(7.772517, 5.587883, "top", "inner2"),
...wire("inner2", 0.09398, [[7.772517, 5.587883], [8.074309, 5.587883]]),
],
},
MMC1_DAT1: {
ball: "Y4",
route: [
...wire("top", 0.13208, [[4, 4], [4.450197, 4.447423]]),
via(4.450197, 4.447423, "top", "inner2"),
...wire("inner2", 0.09398, [[4.450197, 4.447423], [4.450197, 6.078571], [4.824613, 6.452987]]),
],
},
MMC1_DAT2: {
ball: "AA2",
route: [
...wire("top", 0.08128, [[5, 4.500001], [5.249682, 4.749683], [5.638663, 4.749683], [5.81659, 4.92761]]),
...wire("top", 0.13208, [[5.81659, 4.92761], [6.461623, 5.572643], [7.101703, 5.572643]]),
via(7.101703, 5.572643, "top", "inner2"),
...wire("inner2", 0.09398, [[7.101703, 5.572643], [7.252566, 5.572643]]),
],
},
MMC1_DAT3: {
ball: "AB2",
route: [
...wire("top", 0.08128, [[5, 5], [5.249027, 5.248793], [5.249027, 5.858393], [5.485247, 6.094613]]),
via(5.485247, 6.094613, "top", "inner2"),
...wire("inner2", 0.09398, [[5.485247, 6.094613], [6.018413, 6.627779]]),
],
},
};
const getLayerZ = (layer, layerCount) => {
if (layer === "top")
return 0;
if (layer === "bottom")
return layerCount - 1;
return Number(layer.slice(5));
};
const getLayerName = (z, layerCount) => {
if (z === 0)
return "top";
if (z === layerCount - 1)
return "bottom";
return `inner${z}`;
};
const getLayersBetween = (fromLayer, toLayer, layerCount) => {
const fromZ = getLayerZ(fromLayer, layerCount);
const toZ = getLayerZ(toLayer, layerCount);
const minZ = Math.min(fromZ, toZ);
const maxZ = Math.max(fromZ, toZ);
return Array.from({ length: maxZ - minZ + 1 }, (_, index) => getLayerName(minZ + index, layerCount));
};
/** Materialize committed copper as geometric obstacles for Pipeline1. */
const getTraceObstacles = (traces, layerCount) => {
const obstacles = [];
for (const [traceIndex, trace] of traces.entries()) {
const connectedTo = [
trace.pcb_trace_id,
trace.connection_name,
...(trace.connectsTo ?? []),
].filter((id) => Boolean(id));
for (const [pointIndex, point] of trace.route.entries()) {
if (point.route_type !== "via")
continue;
obstacles.push({
obstacleId: `committed_${traceIndex}_${pointIndex}_via`,
type: "rect",
layers: getLayersBetween(point.from_layer, point.to_layer, layerCount),
center: { x: point.x, y: point.y },
width: point.via_diameter ?? 0.4572,
height: point.via_diameter ?? 0.4572,
connectedTo,
});
}
for (let pointIndex = 0; pointIndex < trace.route.length - 1; pointIndex++) {
const start = trace.route[pointIndex];
const end = trace.route[pointIndex + 1];
if (start.route_type !== "wire" ||
end.route_type !== "wire" ||
start.layer !== end.layer)
continue;
const dx = end.x - start.x;
const dy = end.y - start.y;
const length = Math.hypot(dx, dy);
if (length <= 0.001)
continue;
obstacles.push({
obstacleId: `committed_${traceIndex}_${pointIndex}_wire`,
type: "rect",
layers: [start.layer],
center: { x: (start.x + end.x) / 2, y: (start.y + end.y) / 2 },
width: length,
height: Math.max(start.width, 0.001),
ccwRotationDegrees: (Math.atan2(dy, dx) * 180) / Math.PI,
connectedTo,
});
}
}
return obstacles;
};
const isPointInsideObstacle = (point, obstacle, layer, margin) => {
if (!obstacle.layers?.includes(layer) || !obstacle.center)
return false;
const angle = -((obstacle.ccwRotationDegrees ?? 0) * Math.PI) / 180;
const dx = point.x - obstacle.center.x;
const dy = point.y - obstacle.center.y;
const localX = dx * Math.cos(angle) - dy * Math.sin(angle);
const localY = dx * Math.sin(angle) + dy * Math.cos(angle);
return (Math.abs(localX) <= (obstacle.width ?? 0) / 2 + margin &&
Math.abs(localY) <= (obstacle.height ?? 0) / 2 + margin);
};
class MinHeap {
entries = [];
push(value, priority) {
this.entries.push({ value, priority });
let index = this.entries.length - 1;
while (index > 0) {
const parent = Math.floor((index - 1) / 2);
if (this.entries[parent].priority <= priority)
break;
this.entries[index] = this.entries[parent];
index = parent;
}
this.entries[index] = { value, priority };
}
pop() {
if (this.entries.length === 0)
return undefined;
const first = this.entries[0].value;
const last = this.entries.pop();
if (!last || this.entries.length === 0)
return first;
let index = 0;
while (true) {
const left = index * 2 + 1;
const right = left + 1;
if (left >= this.entries.length)
break;
const child = right < this.entries.length &&
this.entries[right].priority < this.entries[left].priority
? right
: left;
if (this.entries[child].priority >= last.priority)
break;
this.entries[index] = this.entries[child];
index = child;
}
this.entries[index] = last;
return first;
}
get size() {
return this.entries.length;
}
}
const simplifyGridPath = (points) => {
if (points.length < 3)
return points;
const result = [points[0]];
for (let index = 1; index < points.length - 1; index++) {
const previous = result[result.length - 1];
const current = points[index];
const next = points[index + 1];
const firstDx = Math.sign(current.x - previous.x);
const firstDy = Math.sign(current.y - previous.y);
const nextDx = Math.sign(next.x - current.x);
const nextDy = Math.sign(next.y - current.y);
if (firstDx !== nextDx || firstDy !== nextDy)
result.push(current);
}
result.push(points[points.length - 1]);
return result;
};
const findSignalLayerPath = (input, start, end, obstacles, layer = "inner5") => {
const step = 0.25;
const bounds = input.bounds;
const minX = bounds.minX + 0.75;
const minY = bounds.minY + 0.75;
const maxIx = Math.floor((bounds.maxX - 0.75 - minX) / step);
const maxIy = Math.floor((bounds.maxY - 0.75 - minY) / step);
const toGrid = (point) => ({
ix: Math.round((point.x - minX) / step),
iy: Math.round((point.y - minY) / step),
});
const toPoint = ({ ix, iy }) => ({
x: minX + ix * step,
y: minY + iy * step,
});
const startGrid = toGrid(start);
const endGrid = toGrid(end);
const key = (ix, iy) => `${ix}:${iy}`;
const startKey = key(startGrid.ix, startGrid.iy);
const endKey = key(endGrid.ix, endGrid.iy);
const blockedCache = new Map();
const isBlocked = (ix, iy) => {
const cellKey = key(ix, iy);
if (cellKey === startKey || cellKey === endKey)
return false;
const cached = blockedCache.get(cellKey);
if (cached !== undefined)
return cached;
const point = toPoint({ ix, iy });
const blocked = obstacles.some((obstacle) => isPointInsideObstacle(point, obstacle, layer, 0.13));
blockedCache.set(cellKey, blocked);
return blocked;
};
const open = new MinHeap();
const cost = new Map([[startKey, 0]]);
const previous = new Map();
open.push(startGrid, 0);
const directions = [
[1, 0], [-1, 0], [0, 1], [0, -1],
[1, 1], [1, -1], [-1, 1], [-1, -1],
];
let iterations = 0;
while (open.size > 0 && iterations++ < 250_000) {
const current = open.pop();
const currentKey = key(current.ix, current.iy);
if (currentKey === endKey)
break;
for (const [dx, dy] of directions) {
const ix = current.ix + dx;
const iy = current.iy + dy;
if (ix < 0 || iy < 0 || ix > maxIx || iy > maxIy || isBlocked(ix, iy)) {
continue;
}
const nextKey = key(ix, iy);
const nextCost = (cost.get(currentKey) ?? Infinity) + (dx !== 0 && dy !== 0 ? Math.SQRT2 : 1);
if (nextCost >= (cost.get(nextKey) ?? Infinity))
continue;
cost.set(nextKey, nextCost);
previous.set(nextKey, currentKey);
const heuristic = Math.hypot(endGrid.ix - ix, endGrid.iy - iy);
open.push({ ix, iy }, nextCost + heuristic);
}
}
if (!previous.has(endKey) && startKey !== endKey) {
throw new Error(`Custom ${layer} grid router found no collision-free path`);
}
const gridPath = [endKey];
while (gridPath[gridPath.length - 1] !== startKey) {
const parent = previous.get(gridPath[gridPath.length - 1]);
if (!parent)
throw new Error(`Custom ${layer} path reconstruction failed`);
gridPath.push(parent);
}
return simplifyGridPath(gridPath.reverse().map((cellKey) => {
const [ix, iy] = cellKey.split(":").map(Number);
return toPoint({ ix, iy });
}));
};
const CLASS_PRIORITY = {
ddr: 0,
clock: 1,
sd: 2,
"reset-control": 3,
"usb-power": 4,
power: 5,
ground: 6,
general: 7,
};
const connectionSearchText = (connection) => [
connection.name,
connection.rootConnectionName,
connection.netConnectionName,
connection.__netConnectionName,
...(connection.mergedConnectionNames ?? []),
...(connection.__rootConnectionNames ?? []),
]
.filter(Boolean)
.join(" ")
.toUpperCase();
const classifyAm62lConnection = (connection) => {
const text = connectionSearchText(connection);
if (/DDR0_|LPDDR|VDD_DDR/.test(text))
return "ddr";
if (/OSC_|XRCGB|_CK0|_DQS/.test(text))
return "clock";
if (/SD_PWR/.test(text))
return "reset-control";
if (/SD_3V3|SD_IO|SD_LOADSW|CAP_VDDS_MMC1/.test(text))
return "power";
if (/SD_|MMC1/.test(text))
return "sd";
if (/USB_|VBUS|TUSB|EFUSE|PROTECTED_5V|AON_3V3/.test(text)) {
return "usb-power";
}
if (/POR|RESET|BOOTMODE|PMIC_|WAKEUP|UART|I2C/.test(text)) {
return "reset-control";
}
if (/GND|VSS/.test(text))
return "ground";
if (/VDD|VDDA|CAP_|3V3|1V8|0V75|_SW|_LX/.test(text))
return "power";
return "general";
};
const getBounds = (connection) => {
const points = connection.pointsToConnect;
return {
minX: Math.min(...points.map((point) => point.x)),
maxX: Math.max(...points.map((point) => point.x)),
minY: Math.min(...points.map((point) => point.y)),
maxY: Math.max(...points.map((point) => point.y)),
};
};
const boundsOverlap = (first, second) => first.minX <= second.maxX &&
first.maxX >= second.minX &&
first.minY <= second.maxY &&
first.maxY >= second.minY;
const manhattanSpan = (connection) => {
const bounds = getBounds(connection);
return bounds.maxX - bounds.minX + bounds.maxY - bounds.minY;
};
/**
* Estimate route contention before invoking the geometric solver. Connections
* whose endpoint envelopes overlap many other envelopes are routed first so
* later, easier nets can flow around the committed critical paths.
*/
const conflictScore = (connection, allConnections) => {
const bounds = getBounds(connection);
let score = 0;
for (const candidate of allConnections) {
if (candidate === connection)
continue;
if (boundsOverlap(bounds, getBounds(candidate)))
score += 1;
}
return score;
};
const orderAm62lConnections = (connections) => {
const scoreByConnection = new Map(connections.map((connection) => [
connection,
conflictScore(connection, connections),
]));
return [...connections].sort((first, second) => {
const firstSpan = manhattanSpan(first);
const secondSpan = manhattanSpan(second);
const firstIsLocal = firstSpan <= 8;
const secondIsLocal = secondSpan <= 8;
if (firstIsLocal !== secondIsLocal)
return firstIsLocal ? -1 : 1;
if (firstIsLocal && secondIsLocal) {
const localSpanDelta = firstSpan - secondSpan;
if (Math.abs(localSpanDelta) > 1e-9)
return localSpanDelta;
}
const classDelta = CLASS_PRIORITY[classifyAm62lConnection(first)] -
CLASS_PRIORITY[classifyAm62lConnection(second)];
if (classDelta !== 0)
return classDelta;
const conflictDelta = (scoreByConnection.get(second) ?? 0) -
(scoreByConnection.get(first) ?? 0);
if (conflictDelta !== 0)
return conflictDelta;
const spanDelta = secondSpan - firstSpan;
if (Math.abs(spanDelta) > 1e-9)
return spanDelta;
return first.name.localeCompare(second.name);
});
};
/**
* Convert a multi-terminal electrical net into a deterministic minimum-span
* tree of two-point routing branches. This preserves one logical net name,
* while avoiding the capacity solver's expensive all-terminals-at-once search.
*/
const expandConnectionsIntoMinimumSpanBranches = (connections) => {
const expanded = [];
for (const connection of connections) {
const points = connection.pointsToConnect;
if (points.length <= 2) {
expanded.push({
...connection,
__originalConnectionName: connection.name,
__originalPointCount: points.length,
mergedConnectionNames: [
connection.name,
...(connection.mergedConnectionNames ?? []),
],
});
continue;
}
const edges = [];
const inTree = new Set([0]);
while (inTree.size < points.length) {
let best;
for (const from of inTree) {
for (let to = 0; to < points.length; to++) {
if (inTree.has(to))
continue;
const layerPenalty = points[from].layer === points[to].layer ? 0 : 2;
const cost = Math.abs(points[from].x - points[to].x) +
Math.abs(points[from].y - points[to].y) +
layerPenalty;
if (!best ||
cost < best.cost - 1e-9 ||
(Math.abs(cost - best.cost) < 1e-9 &&
`${from}:${to}` < `${best.from}:${best.to}`))
best = { from, to, cost };
}
}
if (!best)
throw new Error(`Could not branch net ${connection.name}`);
edges.push([best.from, best.to]);
inTree.add(best.to);
}
const branchNames = edges.map((_, index) => `${connection.name}__branch_${index + 1}`);
for (const [index, [from, to]] of edges.entries()) {
expanded.push({
...connection,
name: branchNames[index],
rootConnectionName: connection.rootConnectionName ?? connection.name,
__originalConnectionName: connection.name,
__originalPointCount: points.length,
mergedConnectionNames: [
connection.name,
...branchNames,
...(connection.mergedConnectionNames ?? []),
],
pointsToConnect: [points[from], points[to]],
});
}
}
return expanded;
};
const distance = (first, second) => Math.hypot(first.x - second.x, first.y - second.y);
const getComponentCenterForPort = (input, point) => {
if (!point.pointId)
return undefined;
const obstacles = (input.obstacles ?? []);
const portObstacle = obstacles.find((obstacle) => obstacle.center &&
distance(obstacle.center, point) < 0.03 &&
obstacle.connectedTo?.includes(point.pointId));
if (!portObstacle?.componentId)
return undefined;
const componentObstacles = obstacles.filter((obstacle) => obstacle.componentId === portObstacle.componentId && obstacle.center);
// The AM62L package contributes hundreds of ball obstacles. This guard keeps
// the coordinate matcher from treating a peripheral IC as the SoC.
if (componentObstacles.length < 300)
return undefined;
const xs = componentObstacles.map((obstacle) => obstacle.center.x);
const ys = componentObstacles.map((obstacle) => obstacle.center.y);
return {
x: (Math.min(...xs) + Math.max(...xs)) / 2,
y: (Math.min(...ys) + Math.max(...ys)) / 2,
};
};
const prepareTiMmc1Escapes = (input) => {
const escapeTraces = [];
const connections = input.connections.map((connection) => {
let match;
const points = connection.pointsToConnect;
for (const [pointIndex, point] of points.entries()) {
const center = getComponentCenterForPort(input, point);
if (!center)
continue;
for (const [signal, escape] of Object.entries(TI_AM62L_EVM_MMC1_ESCAPES)) {
const start = escape.route.find((candidate) => candidate.route_type === "wire");
if (!start)
continue;
if (distance(point, { x: center.x + start.x, y: center.y + start.y }) <
0.03) {
match = { pointIndex, center, signal, escape };
break;
}
}
if (match)
break;
}
if (!match)
return connection;
const alignedRoute = match.escape.route.map((point) => ({
...point,
x: point.x + match.center.x,
y: point.y + match.center.y,
}));
const finalWire = [...alignedRoute]
.reverse()
.find((point) => point.route_type === "wire");
if (!finalWire || finalWire.route_type !== "wire") {
throw new Error(`TI ${match.signal} escape has no wire exit`);
}
const originalPoint = points[match.pointIndex];
const syntheticPointId = `ti_mmc1_escape:${match.signal}:${connection.name}:${originalPoint.pointId}`;
const transformedPoints = [...points];
transformedPoints[match.pointIndex] = {
x: finalWire.x,
y: finalWire.y,
layer: finalWire.layer,
pointId: syntheticPointId,
};
const connectedTo = [
connection.name,
connection.rootConnectionName,
connection.netConnectionName,
connection.__netConnectionName,
originalPoint.pointId,
originalPoint.pcb_port_id,
syntheticPointId,
].filter((id) => Boolean(id));
const firstWire = alignedRoute.find((point) => point.route_type === "wire");
const lastWire = [...alignedRoute]
.reverse()
.find((point) => point.route_type === "wire");
if (firstWire?.route_type === "wire" && originalPoint.pcb_port_id) {
firstWire.start_pcb_port_id =
originalPoint.pcb_port_id;
}
if (lastWire?.route_type === "wire") {
lastWire.end_pcb_port_id =
syntheticPointId;
}
escapeTraces.push({
type: "pcb_trace",
pcb_trace_id: `ti_mmc1_escape_${match.signal}_${connection.name}`,
connection_name: connection.name,
connectsTo: connectedTo,
route: alignedRoute,
});
return { ...connection, pointsToConnect: transformedPoints };
});
return {
input: { ...input, connections: connections },
escapeTraces,
};
};
/**
* Dense BGAs are escaped before the global route. Keep every pad as a copper
* obstacle, but do not ask Pipeline 7 to build a second component-local mesh
* around hundreds of pads and then merge it across the fixed fanout copper.
*/
const useGlobalTopologyForDenseComponents = (input) => {
const obstacleCountByComponent = new Map();
for (const obstacle of input.obstacles) {
if (!obstacle.componentId)
continue;
obstacleCountByComponent.set(obstacle.componentId, (obstacleCountByComponent.get(obstacle.componentId) ?? 0) + 1);
}
const denseComponentIds = new Set([...obstacleCountByComponent.entries()]
.filter(([, obstacleCount]) => obstacleCount >= 64)
.map(([componentId]) => componentId));
return {
...input,
obstacles: input.obstacles.map((obstacle) => {
if (!obstacle.componentId || !denseComponentIds.has(obstacle.componentId)) {
return obstacle;
}
const globalObstacle = { ...obstacle };
delete globalObstacle.componentId;
return globalObstacle;
}),
};
};
const prepareSdInner5Trunks = (input, connections, initialTraces) => {
const remaining = [];
const trunkConnections = [];
for (const connection of connections) {
const points = connection.pointsToConnect;
const hasTiEscape = points.some((point) => point.pointId?.startsWith("ti_mmc1_escape:"));
if (hasTiEscape && points.length === 2 && manhattanSpan(connection) > 8) {
trunkConnections.push(connection);
}
else {
remaining.push(connection);
}
}
trunkConnections.sort((first, second) => first.name.localeCompare(second.name));
const traces = [...initialTraces];
for (const connection of trunkConnections) {
const points = connection.pointsToConnect;
const start = points.find((point) => point.pointId?.startsWith("ti_mmc1_escape:"));
const end = points.find((point) => point !== start);
const startAccess = { x: start.x, y: start.y };
const endAccess = { x: end.x, y: end.y + (end.y >= 0 ? -1 : 1) };
const logicalName = connection.__originalConnectionName ?? connection.name;
const committed = [
...(input.traces ?? []),
...traces,
].filter((trace) => trace.connection_name !== logicalName);
const obstacles = [
...(input.obstacles ?? []),
...getTraceObstacles(committed, input.layerCount),
];
let signalLayer = "inner5";
let gridPath;
try {
gridPath = findSignalLayerPath(input, startAccess, endAccess, obstacles, signalLayer);
}
catch {
signalLayer = "inner2";
try {
gridPath = findSignalLayerPath(input, startAccess, endAccess, obstacles, signalLayer);
}
catch (caught) {
const message = caught instanceof Error ? caught.message : String(caught);
throw new Error(`${connection.name}: ${message}`);
}
}
const route = [
{
route_type: "wire",
x: start.x,
y: start.y,
width: 0.09398,
layer: start.layer,
},
];
if (start.layer !== signalLayer) {
route.push({
route_type: "via",
x: startAccess.x,
y: startAccess.y,
from_layer: "top",
to_layer: "bottom",
via_diameter: 0.4572,
via_hole_diameter: 0.2032,
});
}
route.push(...gridPath.map((point) => ({
route_type: "wire",
x: point.x,
y: point.y,
width: 0.09398,
layer: signalLayer,
})));
if (end.layer !== signalLayer) {
route.push({
route_type: "via",
x: endAccess.x,
y: endAccess.y,
from_layer: "top",
to_layer: "bottom",
via_diameter: 0.4572,
via_hole_diameter: 0.2032,
});
}
route.push({
route_type: "wire",
x: endAccess.x,
y: endAccess.y,
width: 0.08128,
layer: end.layer,
}, {
route_type: "wire",
x: end.x,
y: end.y,
width: 0.08128,
layer: end.layer,
});
traces.push({
type: "pcb_trace",
pcb_trace_id: `custom_sd_trunk_${connection.name}`,
connection_name: logicalName,
connectsTo: [
connection.name,
logicalName,
...(connection.mergedConnectionNames ?? []),
...points.flatMap((point) => [point.pointId, point.pcb_port_id]),
].filter((id) => Boolean(id)),
route,
});
}
return { connections: remaining, traces };
};
const getPortComponentGeometry = (input, point) => {
const pointIds = [point.pointId, point.pcb_port_id].filter((id) => Boolean(id));
const obstacles = (input.obstacles ?? []);
const portObstacle = obstacles.find((obstacle) => obstacle.center &&
distance(obstacle.center, point) < 0.04 &&
obstacle.connectedTo?.some((id) => pointIds.includes(id))) ?? obstacles.find(
// Generated multi-terminal power branches do not always retain the
// original pcb_port id. Coordinate matching is still unambiguous at the
// package pad centre and prevents the PTH fallback from becoming
// via-in-pad when that metadata is absent.
(obstacle) => obstacle.componentId &&
obstacle.center &&
distance(obstacle.center, point) < 0.04);
if (!portObstacle?.componentId)
return undefined;
const componentObstacles = obstacles.filter((obstacle) => obstacle.componentId === portObstacle.componentId && obstacle.center);
if (componentObstacles.length === 0)
return undefined;
const minX = Math.min(...componentObstacles.map((obstacle) => obstacle.center.x - (obstacle.width ?? 0) / 2));
const maxX = Math.max(...componentObstacles.map((obstacle) => obstacle.center.x + (obstacle.width ?? 0) / 2));
const minY = Math.min(...componentObstacles.map((obstacle) => obstacle.center.y - (obstacle.height ?? 0) / 2));
const maxY = Math.max(...componentObstacles.map((obstacle) => obstacle.center.y + (obstacle.height ?? 0) / 2));
return {
componentId: portObstacle.componentId,
center: { x: (minX + maxX) / 2, y: (minY + maxY) / 2 },
obstacleCount: componentObstacles.length,
};
};
const getDogboneAccessPoint = (input, point, otherPoint, obstacles, requireAllLayerPth = false) => {
const geometry = getPortComponentGeometry(input, point);
if (!geometry)
return { x: point.x, y: point.y };
const rawDirection = {
x: point.x - geometry.center.x,
y: point.y - geometry.center.y,
};
const fallbackDirection = {
x: point.x - otherPoint.x,
y: point.y - otherPoint.y,
};
const magnitude = Math.hypot(rawDirection.x, rawDirection.y);
const fallbackMagnitude = Math.hypot(fallbackDirection.x, fallbackDirection.y);
const direction = magnitude > 0.05
? { x: rawDirection.x / magnitude, y: rawDirection.y / magnitude }
: fallbackMagnitude > 0.05
? {
x: fallbackDirection.x / fallbackMagnitude,
y: fallbackDirection.y / fallbackMagnitude,
}
: { x: 1, y: 0 };
const ownIds = [point.pointId, point.pcb_port_id].filter((id) => Boolean(id));
let leastConflictingCandidate;
const angularStep = 10;
const angleOffsets = Array.from({ length: Math.ceil(360 / angularStep) }, (_, index) => {
if (index === 0)
return 0;
const magnitude = Math.ceil(index / 2) * angularStep;
return index % 2 === 1 ? magnitude : -magnitude;
});
// A 0.4572 mm PTH plus the 0.08128 mm manufacturing clearance needs about
// 0.31 mm of radial keepout. Inner AM62L balls can require a surface escape
// all the way beyond the package edge before a through-via can be placed.
for (const distanceFromPad of [
0.6, 0.8, 1, 1.25, 1.5, 2, 2.5, 3, 4, 5, 6, 7, 8, 10, 12, 15,
]) {
for (const angleOffset of angleOffsets) {
const angle = (angleOffset * Math.PI) / 180;
const rotated = {
x: direction.x * Math.cos(angle) - direction.y * Math.sin(angle),
y: direction.x * Math.sin(angle) + direction.y * Math.cos(angle),
};
const candidate = {
x: point.x + rotated.x * distanceFromPad,
y: point.y + rotated.y * distanceFromPad,
};
const blockerCount = obstacles.reduce((count, obstacle) => {
if (obstacle.connectedTo?.some((id) => ownIds.includes(id))) {
return count;
}
const blocked = requireAllLayerPth
? (obstacle.layers ?? []).some((layer) => isPointInsideObstacle(candidate, obstacle, layer, 0.31))
: isPointInsideObstacle(candidate, obstacle, point.layer, 0.13);
return count + (blocked ? 1 : 0);
}, 0);
if (blockerCount === 0)
return candidate;
if (requireAllLayerPth &&
(!leastConflictingCandidate ||
blockerCount < leastConflictingCandidate.blockerCount)) {
leastConflictingCandidate = { point: candidate, blockerCount };
}
}
}
if (!requireAllLayerPth) {
return {
x: point.x + direction.x,
y: point.y + direction.y,
};
}
// Preserve a complete routed artifact for DRC/visual review even when the
// current placement has no fabrication-legal PTH site. The normal DRC pass
// will report the chosen least-conflicting location; it is never treated as
// a clean route.
if (leastConflictingCandidate)
return leastConflictingCandidate.point;
throw new Error(`No PTH candidate generated near (${point.x}, ${point.y})`);
};
/**
* Complete deterministic point-to-point peripheral branches. SD leaves one
* short branch to Pipeline 7; USB power leaves its longest branches so shared
* capacity planning remains focused on the distribution paths that need it.
*/
const prepareCustomBranches = (input, connections, initialTraces, phase) => {
// Pipeline 7's final short SD branch is nondeterministic on this dense
// placement and can exhaust iterations. Route the complete SD set through
// the same committed-copper-aware deterministic pathfinder.
const pipelineConnections = [];
const customConnections = phase === "power"
? [...connections].sort((first, second) => {
const firstHasBottom = first.pointsToConnect.some((point) => point.layer === "bottom");
const secondHasBottom = second.pointsToConnect.some((point) => point.layer === "bottom");
if (firstHasBottom !== secondHasBottom)
return firstHasBottom ? -1 : 1;
return (manhattanSpan(first) - manhattanSpan(second) ||
first.name.localeCompare(second.name));
})
: connections;
const traces = [...initialTraces];
for (const connection of customConnections) {
const points = connection.pointsToConnect;
if (points.length <= 1)
continue;
if (points.length !== 2) {
throw new Error(`Custom ${phase} branch ${connection.name} must have exactly two endpoints`);
}
const [start, end] = points;
const logicalName = connection.__originalConnectionName ?? connection.name;
const committed = [
...(input.traces ?? []),
...traces,
].filter((trace) => trace.connection_name !== logicalName);
const obstacles = [
...(input.obstacles ?? []),
...getTraceObstacles(committed, input.layerCount),
];
const hasDenseBgaEndpoint = phase === "power" &&
[start, end].some((point) => (getPortComponentGeometry(input, point)?.obstacleCount ?? 0) >= 64);
const surfaceSpanLimit = hasDenseBgaEndpoint ? 15 : Number.POSITIVE_INFINITY;
const localSurfaceLayer = start.layer === end.layer &&
(start.layer === "top" || start.layer === "bottom") &&
manhattanSpan(connection) <= surfaceSpanLimit
? start.layer
: undefined;
const requiresAllLayerPth = phase === "power" && !localSurfaceLayer;
const startAccess = getDogboneAccessPoint(input, start, end, obstacles, requiresAllLayerPth);
const endAccess = getDogboneAccessPoint(input, end, start, obstacles, requiresAllLayerPth);
let selected;
let lastError;
const candidateLayers = [];
if (localSurfaceLayer)
candidateLayers.push(localSurfaceLayer);
// The two central layers are the split power-distribution pair. Power
// branches enter them through PTH drops; signal phases retain inner2 and
// inner5 as their preferred global-routing layers.
if (phase === "power") {
candidateLayers.push("inner3", "inner4", "bottom", "top", "inner5", "inner2");
}
else {
candidateLayers.push("inner5", "inner2", "top", "bottom");
}
const isUsbPowerDistribution = phase === "usb-power" && (connection.__originalPointCount ?? 0) >= 8;
if (isUsbPowerDistribution)
candidateLayers.push("inner3");
if (!hasDenseBgaEndpoint) {
for (const signalLayer of candidateLayers) {
try {
selected = {
signalLayer,
gridPath: findSignalLayerPath(input, startAccess, endAccess, obstacles, signalLayer),
};
break;
}
catch (caught) {
lastError = caught;
}
}
}
// Backside decouplers sit directly below the SoC/LPDDR supply clusters, and
// a few inner BGA rail balls are enclosed by the provisional PTH ground
// fanout. Only after every collision-aware layer search fails, place that
// branch on one of the split power layers. Short backside branches stay on
// the capacitor side; longer trapped branches are deterministically spread
// across inner3/inner4 instead of aborting the entire completed phase set.
if (!selected && phase === "power") {
const isLocalBacksideBranch = manhattanSpan(connection) <= 4;
const railHash = [...logicalName].reduce((hash, character) => (hash * 33 + character.charCodeAt(0)) >>> 0, 5381);
const signalLayer = isLocalBacksideBranch
? start.layer === "bottom" || end.layer === "bottom"
? "bottom"
: "inner4"
: railHash % 2 === 0
? "inner3"
: "inner4";
const elbow = railHash % 2 === 0
? { x: endAccess.x, y: startAccess.y }
: { x: startAccess.x, y: endAccess.y };
selected = {
signalLayer,
gridPath: [
startAccess,
elbow,
endAccess,
],
};
}
if (!selected) {
const message = lastError instanceof Error ? lastError.message : String(lastError);
throw new Error(`${connection.name}: ${message}`);
}
const { signalLayer, gridPath } = selected;
const nominalWidth = Math.max(connection.nominalTraceWidth ?? 0.08128, isUsbPowerDistribution ? 0.3 : 0, phase === "power"
? (connection.__originalPointCount ?? 0) >= 8
? 0.25
: 0.15
: 0, 0.08128);
const route = [
{
route_type: "wire",
x: start.x,
y: start.y,
width: nominalWidth,
layer: start.layer,
},
{
route_type: "wire",
x: startAccess.x,
y: startAccess.y,
width: nominalWidth,
layer: start.layer,
},
];
if (start.layer !== signalLayer) {
route.push({
route_type: "via",
x: startAccess.x,
y: startAccess.y,
from_layer: "top",
to_layer: "bottom",
via_diameter: 0.4572,
via_hole_diameter: 0.2032,
});
}
route.push(...gridPath.map((point) => ({
route_type: "wire",
x: point.x,
y: point.y,
width: Math.max(nominalWidth, 0.09398),
layer: signalLayer,
})));
if (end.layer !== signalLayer) {
route.push({
route_type: "via",
x: endAccess.x,
y: endAccess.y,
from_layer: "top",
to_layer: "bottom",
via_diameter: 0.4572,
via_hole_diameter: 0.2032,
});
}
route.push({
route_type: "wire",
x: endAccess.x,
y: endAccess.y,
width: nominalWidth,
layer: end.layer,
}, {
route_type: "wire",
x: end.x,
y: end.y,
width: nominalWidth,
layer: end.layer,
});
const firstWire = route.find((point) => point.route_type === "wire");
const lastWire = [...route]
.reverse()
.find((point) => point.route_type === "wire");
if (firstWire?.route_type === "wire" && start.pcb_port_id) {
firstWire
.start_pcb_port_id = start.pcb_port_id;
}
if (lastWire?.route_type === "wire" && end.pcb_port_id) {
lastWire
.end_pcb_port_id = end.pcb_port_id;
}
traces.push({
type: "pcb_trace",
pcb_trace_id: `custom_${phase}_branch_${connection.name}`,
connection_name: logicalName,
connectsTo: [
connection.name,
logicalName,
...(connection.mergedConnectionNames ?? []),
...points.flatMap((point) => [point.pointId, point.pcb_port_id]),
].filter((id) => Boolean(id)),
route,
});
}
return {
connections: pipelineConnections,
traces,
};
};
/**
* Replays TI's shared package-local DGND breakout for U1/U2, then converts
* every remaining peripheral ground pad into a small independent plane-drop
* connection. This avoids presenting one 291-terminal hyper-net to the global
* router and preserves TI's 18/8 mil PTH convention for the two BGAs.
*/
const prepareTiGroundPlaneFanout = (input, options = {}) => {
const { denseBga = true, peripheral = true } = options;
const groundConnection = input.connections.find((connection) => connection.pointsToConnect.length >= 200);
if (!groundConnection)
return { input, traces: [] };
const obstacles = (input.obstacles ?? []);
const groups = new Map();
for (const obstacle of obstacles) {
if (!obstacle.componentId || !obstacle.center)
continue;
const members = groups.get(obstacle.componentId) ?? [];
members.push(obstacle);
groups.set(obstacle.componentId, members);
}
const denseComponents = [...groups.entries()]
.filter(([, members]) => members.length >= 150)
.map(([componentId, members]) => {
const xs = members.map((member) => member.center.x);
const ys = members.map((member) => member.center.y);
return {
componentId,
obstacleCount: members.length,
center: {
x: (Math.min(...xs) + Math.max(...xs)) / 2,
y: (Math.min(...ys) + Math.max(...ys)) / 2,
},
};
})
.sort((first, second) => second.obstacleCount - first.obstacleCount);
const componentCenters = {
U1: denseComponents[0]?.center ?? { x: 2, y: 1 },
U2: denseComponents[1]?.center ?? { x: 22.117, y: 0.949 },
};
const planeAnchor = `${groundConnection.name}:inner1-ground-plane`;
const fanoutTraces = [];
if (denseBga) {
for (const [segmentIndex, segment] of TI_AM62L_EVM_GROUND_FANOUT.segments.entries()) {
const center = componentCenters[segment.component];
fanoutTraces.push({
type: "pcb_trace",
pcb_trace_id: `ti_ground_segment_${segmentIndex + 1}`,
connection_name: groundConnection.name,
connectsTo: [groundConnection.name, planeAnchor],
route: [
{
route_type: "wire",
x: center.x + segment.x1,
y: center.y + segment.y1,
width: segment.width,
layer: "top",
},
{
route_type: "wire",
x: center.x + segment.x2,
y: center.y + segment.y2,
width: segment.width,
layer: "top",
},
],
});
}
for (const [viaIndex, via] of TI_AM62L_EVM_GROUND_FANOUT.vias.entries()) {
const center = componentCenters[via.component];
const x = center.x + via.x;
const y = center.y + via.y;
fanoutTraces.push({
type: "pcb_trace",
pcb_trace_id: `ti_ground_via_${viaIndex + 1}`,
connection_name: groundConnection.name,
connectsTo: [groundConnection.name, planeAnchor],
route: [
{
route_type: "wire",
x,
y,
width: 0.127,
layer: "top",
},
{
route_type: "via",
x,
y,
from_layer: "top",
to_layer: "bottom",
via_diameter: via.diameter,
via_hole_diameter: via.holeDiameter,
},
{
route_type: "wire",
x,
y,
width: 0.127,
layer: "inner1",
},
],
});
}
}
const committedObstacles = [
...obstacles,
...getTraceObstacles([...(input.traces ?? []), ...fanoutTraces], input.layerCount),
];
if (peripheral)
for (const [pointIndex, point] of groundConnection.pointsToConnect.entries()) {
const geometry = getPortComponentGeometry(input, point);
if ((geometry?.obstacleCount ?? 0) >= 150)
continue;
const access = getDogboneAccessPoint(input, point, point, committedObstacles, true);
const syntheticPointId = `${groundConnection.name}:plane-drop:${pointIndex + 1}`;
const width = Math.max(groundConnection.nominalTraceWidth ?? 0.08128, 0.2);
const route = [
{
route_type: "wire",
x: point.x,
y: point.y,
width,
layer: point.layer,
},
{
route_type: "wire",
x: access.x,
y: access.y,
width,
layer: point.layer,
},
{
route_type: "via",
x: access.x,
y: access.y,
from_layer: "top",
to_layer: "bottom",
via_diameter: 0.4572,
via_hole_diameter: 0.2032,
},
{
route_type: "wire",
x: access.x,
y: access.y,
width,
layer: "inner1",
},
];
const firstWire = route[0];
if (firstWire.route_type === "wire" && point.pcb_port_id) {
firstWire
.start_pcb_port_id = point.pcb_port_id;
}
fanoutTraces.push({
type: "pcb_trace",
pcb_trace_id: `ground_plane_drop_${pointIndex + 1}`,
connection_name: groundConnection.name,
connectsTo: [
groundConnection.name,
planeAnchor,
point.pointId,
point.pcb_port_id,
syntheticPointId,
].filter((id) => Boolean(id)),
route,
});
}
return {
input: {
...input,
connections: input.connections.filter((connection) => connection !== groundConnection),
traces: [
...(input.traces ?? []),
...fanoutTraces,
],
},
traces: fanoutTraces,
};
};
const getWireEndpoint = (route, fromStart) => {
const ordered = fromStart ? route : [...route].reverse();
const point = ordered.find((candidate) => candidate.route_type === "wire");
if (!point || point.route_type !== "wire") {
throw new Error("TI EVM DDR route has no wire endpoint");
}
return point;
};
const reverseTiRoute = (route) => [...route].reverse().map((point) => point.route_type === "via"
? {
...point,
from_layer: point.to_layer,
to_layer: point.from_layer,
}
: point);
const findTiSignal = (connection) => {
const text = connectionSearchText(connection);
for (const signal of Object.keys(TI_AM62L_EVM_DDR_ROUTES).sort((first, second) => second.length - first.length)) {
if (text.includes(signal.toUpperCase()))
return signal;
}
if (text.includes("DDR_LINK_RESET0_N"))
return "DDR0_RESET0_n";
const points = connection.pointsToConnect;
if (points.length !== 2)
return undefined;
const actualForward = {
x: points[1].x - points[0].x,
y: points[1].y - points[0].y,
};
const actualReverse = { x: -actualForward.x, y: -actualForward.y };
const candidates = Object.entries(TI_AM62L_EVM_DDR_ROUTES)
.map(([signal, reference]) => {
const start = getWireEndpoint(reference.route, true);
const end = getWireEndpoint(reference.route, false);
const expected = { x: end.x - start.x, y: end.y - start.y };
return {
signal,
error: Math.min(distance(actualForward, expected), distance(actualReverse, expected)),
};
})
.sort((first, second) => first.error - second.error);
return candidates[0]?.error < 0.03 ? candidates[0].signal : undefined;
};
/**
* Replays TI's released TMDS62LEVM U28-to-U29 escape topology after aligning
* it to this board's two package endpoints. This is deterministic: every DDR
* net has its own released path, PTH-via positions, layer changes, and width.
*/
class TiEvmDdrAutorouter {
input;
isRouting = false;
handlers = {
complete: [],
error: [],
progress: [],
};
traces = [];
constructor(input) {
this.input = input;
}
solve() {
const traces = [];
const seenSignals = new Set();
for (const connection of this.input.connections) {
const signal = findTiSignal(connection);
if (!signal) {
throw new Error(`TI DDR phase received an unclassified connection: ${connection.name}`);
}
if (seenSignals.has(signal)) {
throw new Error(`TI DDR phase received duplicate connection ${signal}`);
}
seenSignals.add(signal);
const reference = TI_AM62L_EVM_DDR_ROUTES[signal];
const points = connection.pointsToConnect;
if (points.length !== 2) {
throw new Error(`${signal} must be point-to-point; got ${points.length} endpoints`);
}
const referenceStart = getWireEndpoint(reference.route, true);
const referenceEnd = getWireEndpoint(reference.route, false);
const directError = distance({
x: points[1].x - points[0].x,
y: points[1].y - points[0].y,
}, {
x: referenceEnd.x - referenceStart.x,
y: referenceEnd.y - referenceStart.y,
});
const reverseError = distance({
x: points[0].x - points[1].x,
y: points[0].y - points[1].y,
}, {
x: referenceEnd.x - referenceStart.x,
y: referenceEnd.y - referenceStart.y,
});
const reversed = reverseError < directError;
const actualStart = reversed ? points[1] : points[0];
const actualEnd = reversed ? points[0] : points[1];
const alignedRoute = reversed
? reverseTiRoute(reference.route)
: [...reference.route];
const alignedStart = getWireEndpoint(alignedRoute, true);
const alignedEnd = getWireEndpoint(alignedRoute, false);
const offset = {
x: actualStart.x - alignedStart.x,
y: actualStart.y - alignedStart.y,
};
const endpointError = distance(actualEnd, {
x: alignedEnd.x + offset.x,
y: alignedEnd.y + offset.y,
});
if (endpointError > 0.03) {
throw new Error(`${signal} placement differs from TI EVM topology by ${endpointError.toFixed(3)}mm; ` +
"keep U1/U2 orientation and spacing aligned to the reference");
}
traces.push({
type: "pcb_trace",
pcb_trace_id: connection.name,
connection_name: connection.name,
connectsTo: points
.map((point) => point.pointId)
.filter((pointId) => Boolean(pointId)),
route: alignedRoute.map((point) => point.route_type === "via"
? {
...point,
x: point.x + offset.x,
y: point.y + offset.y,
// TI specifies conventional PTH escape vias. The trace may
// connect on inner2, but the drilled/plated barrel spans the
// complete eight-layer stack rather than stopping there.
from_layer: "top",
to_layer: "bottom",
}
: {
...point,
x: point.x + offset.x,
y: point.y + offset.y,
}),
});
}
if (traces.length !== Object.keys(TI_AM62L_EVM_DDR_ROUTES).length) {
throw new Error(`TI DDR phase routed ${traces.length}/` +
`${Object.keys(TI_AM62L_EVM_DDR_ROUTES).length} released DDR nets`);
}
this.traces = traces;
return traces;
}
start() {
if (this.isRouting)
return;
this.isRouting = true;
queueMicrotask(() => {
try {
const traces = this.solve();
this.isRouting = false;
for (const handler of this.handlers.progress) {
handler({
type: "progress",
steps: traces.length,
progress: 1,
phase: "ddr:ti-vca-reference",
});
}
for (const handler of this.handlers.complete) {
handler({ type: "complete", traces });
}
}
catch (caught) {
this.isRouting = false;
const error = caught instanceof Error ? caught : new Error(String(caught));
for (const handler of this.handlers.error)
handler({ type: "error", error });
}
});
}
stop() {
this.isRouting = false;
}
on(event, callback) {
this.handlers[event].push(callback);
}
solveSync() {
return this.solve();
}
getOutputSimpleRouteJson() {
if (this.traces.length === 0)
return undefined;
return {
...this.input,
traces: [...(this.input.traces ?? []), ...this.traces],
};
}
}
class Am62lClassifiedAutorouter {
input;
phase;
effort;
isRouting = false;
timer;
solver;
handlers = {
complete: [],
error: [],
progress: [],
};
steps = 0;
routedTraces;
connectionBatches;
batchIndex = 0;
constructor(input, phase, effort, initialTraces = []) {
this.input = input;
this.phase = phase;
this.effort = effort;
this.routedTraces = [...initialTraces];
const batchSize = this.phase === "usb-power" ? 1 : Infinity;
this.connectionBatches = [];
for (let startIndex = 0; startIndex < this.input.connections.length; startIndex += batchSize) {
this.connectionBatches.push(this.input.connections.slice(startIndex, startIndex + batchSize));
}
this.startPipelineBatch();
}
startPipelineBatch() {
const connections = this.connectionBatches[this.batchIndex];
if (!connections || connections.length === 0) {
this.solver = undefined;
return;
}
this.solver = new capacityAutorouter.AutoroutingPipelineSolver7_MultiGraph({
...this.input,
connections,
buses: [
...(this.input.buses ?? []),
{
busId: `am62l_${this.phase}_batch_${this.batchIndex}`,
name: `${this.phase} signal-layer reservation`,
connectionNames: connections.map((connection) => connection.name),
allowedLayers: ["top", "inner2", "inner5", "bottom"],
},
],
traces: [
...(this.input.traces ?? []),
...this.routedTraces,
],
}, {
// Custom escape/trunk copper has already reduced the search space.
// Pipeline 7 negotiates each shared phase/batch against committed
// copper, avoiding an expensive mesh rebuild for every single net.
effort: Math.min(this.effort, 1),
});
}
acceptPipelineOutput() {
if (!this.solver)
return;
const output = this.solver.getOutputSimpleRouteJson();
const existingTraceIds = new Set([
...(this.input.traces ?? []).map((trace) => trace.pcb_trace_id),
...this.routedTraces.map((trace) => trace.pcb_trace_id),
]);
const activeConnections = this.connectionBatches[this.batchIndex];
const activeEndpointAliases = activeConnections.map((connection) => connection.pointsToConnect.map((point) => [point.pointId, point.pcb_port_id].filter((id) => Boolean(id))));
const generatedTraces = (output.traces ?? [])
.filter((trace) => {
if (existingTraceIds.has(trace.pcb_trace_id))
return false;
const connectedIds = new Set(trace.connectsTo ?? []);
return activeEndpointAliases.some((connectionEndpoints) => connectionEndpoints.every((endpointAliases) => endpointAliases.some((id) => connectedIds.has(id))));
});
if (generatedTraces.length === 0) {
throw new Error(`Pipeline 7 batch ${this.batchIndex + 1} during ${this.phase} ` +
"emitted no new traces");
}
this.routedTraces.push(...generatedTraces.map((trace, traceIndex) => ({
...trace,
pcb_trace_id: `${trace.pcb_trace_id}_pipeline7_${this.phase}_` +
`${this.batchIndex}_${traceIndex}`,
connectsTo: [
trace.connection_name,
...(trace.connectsTo ?? []),
].filter((id) => Boolean(id)),
})));
this.batchIndex += 1;
this.solver = undefined;
this.startPipelineBatch();
}
emitError(caught) {
const error = caught instanceof Error ? caught : new Error(String(caught));
for (const handler of this.handlers.error) {
handler({ type: "error", error });
}
}
async runChunk() {
if (!this.isRouting)
return;
try {
if (!this.solver) {
this.isRouting = false;
for (const handler of this.handlers.complete) {
handler({ type: "complete", traces: this.routedTraces });
}
return;
}
const startedAt = performance.now();
while (performance.now() - startedAt < 150 &&
!this.solver.solved &&
!this.solver.failed) {
const asyncSolver = this.solver;
if (typeof asyncSolver.stepAsync === "function") {
await asyncSolver.stepAsync();
}
else {
this.solver.step();
}
}
this.steps += 1;
if (this.solver.failed) {
this.isRouting = false;
this.emitError(this.solver.error ??
`Pipeline 7 failed during ${this.phase}`);
return;
}
if (this.solver.solved) {
this.acceptPipelineOutput();
this.timer = setTimeout(() => void this.runChunk(), 0);
return;
}
for (const handler of this.handlers.progress) {
const batchProgress = this.solver.progress ?? 0;
handler({
type: "progress",
steps: this.steps,
progress: (this.batchIndex + batchProgress) /
Math.max(this.connectionBatches.length, 1),
phase: `${this.phase}:pipeline7:batch-${this.batchIndex + 1}/` +
`${this.connectionBatches.length}:` +
`${this.connectionBatches[this.batchIndex]?.length ?? 0}-branches:` +
this.solver.getCurrentPhase(),
debugGraphics: this.solver.preview?.(),
});
}
this.timer = setTimeout(() => void this.runChunk(), 0);
}
catch (error) {
this.isRouting = false;
this.emitError(error);
}
}
start() {
if (this.isRouting)
return;
this.isRouting = true;
void this.runChunk();
}
stop() {
this.isRouting = false;
this.solver?.stop?.();
if (this.timer)
clearTimeout(this.timer);
this.timer = undefined;
}
on(event, callback) {
this.handlers[event].push(callback);
}
solveSync() {
while (this.solver) {
this.solver.solve();
if (this.solver.failed) {
throw new Error(this.solver.error ?? `Pipeline 7 failed during ${this.phase}`);
}
this.acceptPipelineOutput();
}
return this.routedTraces;
}
getOutputSimpleRouteJson() {
if (this.solver || this.batchIndex < this.connectionBatches.length) {
return undefined;
}
return {
...this.input,
traces: [...(this.input.traces ?? []), ...this.routedTraces],
};
}
}
/**
* Final selective reroute pass. Pipeline 9 treats the already released TI DDR
* geometry as immutable preloaded copper and rebuilds every selected
* non-DDR connection around it. The joint-preload repair and generic length
* matcher are deliberately omitted: the former is allowed to move the fixed
* DDR copper, while the latter has no usable non-DDR timing groups and adds
* minutes without improving DRC.
*/
class Am62lPipeline9RerouteAutorouter {
input;
fixedPhaseTraces;
isRouting = false;
timer;
solver;
inputConnectionNames;
handlers = {
complete: [],
error: [],
progress: [],
};
steps = 0;
constructor(input, effort, fixedPhaseTraces = []) {
this.input = input;
this.fixedPhaseTraces = fixedPhaseTraces;
this.inputConnectionNames = new Set(input.connections.flatMap((connection) => {
const extended = connection;
return [
connection.name,
connection.rootConnectionName,
connection.netConnectionName,
extended.__netConnectionName,
...(connection.mergedConnectionNames ?? []),
...(extended.__rootConnectionNames ?? []),
];
}).filter((name) => Boolean(name)));
this.solver = new capacityAutorouter.AutoroutingPipelineSolver9_PreloadedTraceGraph(input, {
effort: Math.max(1, effort),
});
this.solver.pipelineDef = this.solver.pipelineDef.filter((step) => step.solverName !== "pipeline9JointDrcRepairSolver" &&
step.solverName !== "lengthMatchingPostProcessingSolver");
}
getSelectedOutputTraces() {
return this.solver.getOutputSimplifiedPcbTraces().filter((trace) => {
const aliases = [
trace.connection_name,
trace.pcb_trace_id,
...(trace.connectsTo ?? []),
];
return aliases.some((alias) => alias ? this.inputConnectionNames.has(alias) : false);
});
}
emitError(caught) {
const error = caught instanceof Error ? caught : new Error(String(caught));
for (const handler of this.handlers.error) {
handler({ type: "error", error });
}
}
async runChunk() {
if (!this.isRouting)
return;
try {
const startedAt = performance.now();
while (performance.now() - startedAt < 150 &&
!this.solver.solved &&
!this.solver.failed) {
const asyncSolver = this.solver;
if (typeof asyncSolver.stepAsync === "function") {
await asyncSolver.stepAsync();
}
else {
this.solver.step();
}
}
this.steps += 1;
if (this.solver.failed) {
this.isRouting = false;
this.emitError(this.solver.error ?? "Pipeline 9 final reroute failed");
return;
}
if (this.solver.solved) {
this.isRouting = false;
const traces = [
...this.fixedPhaseTraces,
...this.getSelectedOutputTraces(),
];
for (const handler of this.handlers.complete) {
handler({ type: "complete", traces });
}
return;
}
for (const handler of this.handlers.progress) {
handler({
type: "progress",
steps: this.steps,
progress: this.solver.progress ?? 0,
phase: `mixed:pipeline9:${this.solver.getCurrentPhase()}`,
debugGraphics: this.solver.preview?.(),
});
}
this.timer = setTimeout(() => void this.runChunk(), 0);
}
catch (caught) {
this.isRouting = false;
this.emitError(caught);
}
}
start() {
if (this.isRouting)
return;
this.isRouting = true;
void this.runChunk();
}
stop() {
this.isRouting = false;
if (this.timer)
clearTimeout(this.timer);
this.timer = undefined;
}
on(event, callback) {
this.handlers[event].push(callback);
}
solveSync() {
this.solver.solve();
if (this.solver.failed) {
throw new Error(this.solver.error ?? "Pipeline 9 final reroute failed");
}
return [...this.fixedPhaseTraces, ...this.getSelectedOutputTraces()];
}
getOutputSimpleRouteJson() {
if (!this.solver.solved)
return undefined;
return {
...this.input,
traces: [
...(this.input.traces ?? []),
...this.getSelectedOutputTraces(),
],
};
}
}
const createAm62lClassifiedAutorouter = ({ phase, effort = 2, }) => async (simpleRouteJson) => {
if (phase === "ddr")
return new TiEvmDdrAutorouter(simpleRouteJson);
if (phase === "power") {
const denseGroundPrepared = prepareTiGroundPlaneFanout(simpleRouteJson, {
denseBga: true,
peripheral: false,
});
const routingInput = {
...denseGroundPrepared.input,
// The TI/peripheral ground fanout is emitted by this phase. Keep it
// out of the preloaded list to avoid duplicating the same trace IDs in
// the transformed phase output, while still passing it as committed
// copper to the branch planner below.
traces: simpleRouteJson.traces,
};
const globalTopologyInput = useGlobalTopologyForDenseComponents(routingInput);
const branchedConnections = expandConnectionsIntoMinimumSpanBranches(globalTopologyInput.connections);
const customPrepared = prepareCustomBranches(globalTopologyInput, branchedConnections, denseGroundPrepared.traces, "power");
const peripheralGroundPrepared = prepareTiGroundPlaneFanout({
...simpleRouteJson,
traces: [
...(simpleRouteJson.traces ?? []),
...customPrepared.traces,
],
}, { denseBga: false, peripheral: true });
const preparedInput = {
...globalTopologyInput,
connections: orderAm62lConnections(customPrepared.connections),
};
return new Am62lClassifiedAutorouter(preparedInput, phase, effort, [...customPrepared.traces, ...peripheralGroundPrepared.traces]);
}
if (phase === "sd") {
const preparedEscapes = prepareTiMmc1Escapes(simpleRouteJson);
const globalTopologyInput = useGlobalTopologyForDenseComponents(preparedEscapes.input);
const branchedConnections = expandConnectionsIntoMinimumSpanBranches(globalTopologyInput.connections);
const branchNamesByLogical = new Map();
for (const connection of branchedConnections) {
const logical = connection.__originalConnectionName ?? connection.name;
const branchNames = branchNamesByLogical.get(logical) ?? [];
branchNames.push(connection.name);
branchNamesByLogical.set(logical, branchNames);
}
const escapeTraces = preparedEscapes.escapeTraces.map((trace) => ({
...trace,
connectsTo: [
...(trace.connectsTo ?? []),
...(branchNamesByLogical.get(trace.connection_name ?? "") ?? []),
],
}));
const trunkPrepared = prepareSdInner5Trunks(globalTopologyInput, branchedConnections, escapeTraces);
const customPrepared = prepareCustomBranches(globalTopologyInput, trunkPrepared.connections, trunkPrepared.traces, "sd");
const preparedInput = {
...globalTopologyInput,
connections: orderAm62lConnections(customPrepared.connections),
};
return new Am62lClassifiedAutorouter(preparedInput, phase, effort, customPrepared.traces);
}
if (phase === "reset-control" ||
phase === "usb-power") {
const globalTopologyInput = useGlobalTopologyForDenseComponents(simpleRouteJson);
const branchedConnections = expandConnectionsIntoMinimumSpanBranches(globalTopologyInput.connections);
const customPrepared = prepareCustomBranches(globalTopologyInput, branchedConnections, [], phase);
const preparedInput = {
...globalTopologyInput,
connections: orderAm62lConnections(customPrepared.connections),
};
return new Am62lClassifiedAutorouter(preparedInput, phase, effort, customPrepared.traces);
}
return new Am62lPipeline9RerouteAutorouter(simpleRouteJson, effort);
};
/** Adapts the synchronous fixed-target BGA solver to Core's autorouter API. */
class FixedTargetBgaFanoutAutorouter {
input;
isRouting = false;
stopped = false;
outputSimpleRouteJson;
listeners = {
complete: [],
error: [],
progress: [],
};
constructor(input) {
this.input = input;
}
solve() {
const solver = new bgaFanoutSolver.FixedTargetBgaFanoutSolver(this.input);
solver.solve();
if (solver.failed || !solver.solved) {
throw new Error(solver.error ?? "Fixed-target BGA fanout failed");
}
const output = solver.getOutput();
this.outputSimpleRouteJson = output.outputSimpleRouteJson;
return output.traces;
}
start() {
if (this.isRouting) {
throw new Error("Fixed-target BGA fanout is already running");
}
this.isRouting = true;
this.stopped = false;
queueMicrotask(() => {
if (this.stopped)
return;
try {
const traces = this.solve();
if (this.stopped)
return;
this.isRouting = false;
for (const listener of this.listeners.progress) {
listener({
type: "progress",
steps: traces.length,
progress: 1,
phase: "fixed-target-bga-fanout",
});
}
for (const listener of this.listeners.complete) {
listener({ type: "complete", traces });
}
}
catch (error) {
this.isRouting = false;
const normalizedError = error instanceof Error ? error : new Error(String(error));
for (const listener of this.listeners.error) {
listener({ type: "error", error: normalizedError });
}
}
});
}
stop() {
this.stopped = true;
this.isRouting = false;
}
on(event, callback) {
this.listeners[event].push(callback);
}
solveSync() {
return this.solve();
}
getOutputSimpleRouteJson() {
return this.outputSimpleRouteJson;
}
}
const createFixedTargetBgaFanoutAutorouter = async (input) => new FixedTargetBgaFanoutAutorouter(input);
const GRM155R71C104KA88D = (props) => {
return (jsxRuntime.jsx("capacitor", { capacitance: "100nF", symbol: undefined, supplierPartNumbers: {
"jlcpcb": [
"C71629"
]
}, manufacturerPartNumber: "GRM155R71C104KA88D", footprint: jsxRuntime.jsxs("footprint", { children: [jsxRuntime.jsx("smtpad", { portHints: ["pin2"], pcbX: "0.420116mm", pcbY: "0mm", width: "0.499999mm", height: "0.540004mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin1"], pcbX: "-0.420116mm", pcbY: "0mm", width: "0.499999mm", height: "0.540004mm", shape: "rect" }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -0.721385400000031, "y": 0.49753519999990203 }, { "x": -0.22138640000002852, "y": 0.49753519999990203 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -0.8738108000000011, "y": -0.34724340000002485 }, { "x": -0.8738108000000011, "y": 0.3451606000000993 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -0.22138640000002852, "y": -0.4996433999999681 }, { "x": -0.721385400000031, "y": -0.4996433999999681 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 0.7213853999999174, "y": -0.4975097999999889 }, { "x": 0.22138639999991483, "y": -0.4975097999999889 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 0.22138639999991483, "y": 0.49961800000005496 }, { "x": 0.7213853999999174, "y": 0.49961800000005496 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 0.8738108000000011, "y": 0.34726880000005167 }, { "x": 0.8738108000000011, "y": -0.3451606000000993 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 0.7213853999999174, "y": 0.4996433999998544 }, { "x": 0.829148473452733, "y": 0.4550064734527268 }, { "x": 0.8737853999998606, "y": 0.34724340000002485 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 0.8737853999998606, "y": -0.3451606000000993 }, { "x": 0.829148473452733, "y": -0.4529236734526876 }, { "x": 0.7213853999999174, "y": -0.49756059999992885 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -0.721385400000031, "y": -0.4996433999997407 }, { "x": -0.829148473452733, "y": -0.45500647345261314 }, { "x": -0.8737853999999743, "y": -0.34724340000002485 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -0.8737853999999743, "y": 0.3451606000000993 }, { "x": -0.829148473452733, "y": 0.45292367345280127 }, { "x": -0.721385400000031, "y": 0.49756060000004254 }] }), jsxRuntime.jsx("silkscreentext", { text: "{NAME}", pcbX: "0.0127mm", pcbY: "1.508mm", anchorAlignment: "center", fontSize: "1mm" }), jsxRuntime.jsx("courtyardoutline", { outline: [{ "x": -1.1136000000000195, "y": 0.7580000000000382 }, { "x": 1.1389999999998963, "y": 0.7580000000000382 }, { "x": 1.1389999999998963, "y": -0.7326000000000477 }, { "x": -1.1136000000000195, "y": -0.7326000000000477 }, { "x": -1.1136000000000195, "y": 0.7580000000000382 }] })] }), cadModel: {
objUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C71629.obj?uuid=32fe2cf9314f444ca2785a33c2db7189",
stepUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C71629.step?uuid=32fe2cf9314f444ca2785a33c2db7189",
pcbRotationOffset: 0,
modelOriginPosition: { x: 0, y: -12700000070253736e-21, z: -0.25 },
}, ...props }));
};
const CL05A105KP5NNNC = (props) => {
return (jsxRuntime.jsx("capacitor", { capacitance: "1uF", symbol: undefined, supplierPartNumbers: {
"jlcpcb": [
"C14445"
]
}, manufacturerPartNumber: "CL05A105KP5NNNC", footprint: jsxRuntime.jsxs("footprint", { children: [jsxRuntime.jsx("smtpad", { portHints: ["pin2"], pcbX: "0.420116mm", pcbY: "0mm", width: "0.499999mm", height: "0.540004mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin1"], pcbX: "-0.420116mm", pcbY: "0mm", width: "0.499999mm", height: "0.540004mm", shape: "rect" }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -0.721385400000031, "y": 0.49753519999990203 }, { "x": -0.22138640000002852, "y": 0.49753519999990203 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -0.8738108000000011, "y": -0.34724340000002485 }, { "x": -0.8738108000000011, "y": 0.3451606000000993 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -0.22138640000002852, "y": -0.4996433999999681 }, { "x": -0.721385400000031, "y": -0.4996433999999681 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 0.7213853999999174, "y": -0.4975097999999889 }, { "x": 0.22138639999991483, "y": -0.4975097999999889 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 0.22138639999991483, "y": 0.49961800000005496 }, { "x": 0.7213853999999174, "y": 0.49961800000005496 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 0.8738108000000011, "y": 0.34726880000005167 }, { "x": 0.8738108000000011, "y": -0.3451606000000993 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 0.7213853999999174, "y": 0.4996433999998544 }, { "x": 0.829148473452733, "y": 0.4550064734527268 }, { "x": 0.8737853999998606, "y": 0.34724340000002485 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 0.8737853999998606, "y": -0.3451606000000993 }, { "x": 0.829148473452733, "y": -0.4529236734526876 }, { "x": 0.7213853999999174, "y": -0.49756059999992885 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -0.721385400000031, "y": -0.4996433999997407 }, { "x": -0.829148473452733, "y": -0.45500647345261314 }, { "x": -0.8737853999999743, "y": -0.34724340000002485 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -0.8737853999999743, "y": 0.3451606000000993 }, { "x": -0.829148473452733, "y": 0.45292367345280127 }, { "x": -0.721385400000031, "y": 0.49756060000004254 }] }), jsxRuntime.jsx("silkscreentext", { text: "{NAME}", pcbX: "0.0127mm", pcbY: "1.508mm", anchorAlignment: "center", fontSize: "1mm" }), jsxRuntime.jsx("courtyardoutline", { outline: [{ "x": -1.1136000000000195, "y": 0.7580000000000382 }, { "x": 1.1389999999998963, "y": 0.7580000000000382 }, { "x": 1.1389999999998963, "y": -0.7326000000000477 }, { "x": -1.1136000000000195, "y": -0.7326000000000477 }, { "x": -1.1136000000000195, "y": 0.7580000000000382 }] })] }), cadModel: {
objUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C14445.obj?uuid=32fe2cf9314f444ca2785a33c2db7189",
stepUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C14445.step?uuid=32fe2cf9314f444ca2785a33c2db7189",
pcbRotationOffset: 0,
modelOriginPosition: { x: 0, y: -12700000070253736e-21, z: -0.25 },
}, ...props }));
};
/** Exact JLC C318541 copper with a compact 0201 assembly courtyard. */
const CL03A105KQ3CSNC = (props) => (jsxRuntime.jsx("capacitor", { capacitance: "1uF", supplierPartNumbers: { jlcpcb: ["C318541"] }, manufacturerPartNumber: "CL03A105KQ3CSNC", footprint: jsxRuntime.jsxs("footprint", { children: [jsxRuntime.jsx("smtpad", { portHints: ["pin2"], pcbX: "0.27432mm", pcbY: "0mm", width: "0.368427mm", height: "0.3240024mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin1"], pcbX: "-0.27432mm", pcbY: "0mm", width: "0.368427mm", height: "0.3240024mm", shape: "rect" }), jsxRuntime.jsx("courtyardoutline", { outline: [
{ x: -0.55, y: -0.35 },
{ x: 0.55, y: -0.35 },
{ x: 0.55, y: 0.35 },
{ x: -0.55, y: 0.35 },
] })] }), cadModel: {
objUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C318541.obj?uuid=c3e75c3d90204c70b153866ab54c789f",
stepUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C318541.step?uuid=c3e75c3d90204c70b153866ab54c789f",
pcbRotationOffset: 0,
modelOriginPosition: { x: 0, y: -12700000070253736e-21, z: -0.15 },
}, ...props }));
/** Exact JLC C18164586 copper with a compact 0201 assembly courtyard. */
const TCC0201X7R104K160ZT = (props) => (jsxRuntime.jsx("capacitor", { capacitance: "100nF", supplierPartNumbers: { jlcpcb: ["C18164586"] }, manufacturerPartNumber: "TCC0201X7R104K160ZT", footprint: jsxRuntime.jsxs("footprint", { children: [jsxRuntime.jsx("smtpad", { portHints: ["pin2"], pcbX: "0.27432mm", pcbY: "0mm", width: "0.368427mm", height: "0.3240024mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin1"], pcbX: "-0.27432mm", pcbY: "0mm", width: "0.368427mm", height: "0.3240024mm", shape: "rect" }), jsxRuntime.jsx("courtyardoutline", { outline: [
{ x: -0.55, y: -0.35 },
{ x: 0.55, y: -0.35 },
{ x: 0.55, y: 0.35 },
{ x: -0.55, y: 0.35 },
] })] }), cadModel: {
objUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C18164586.obj?uuid=c3e75c3d90204c70b153866ab54c789f",
stepUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C18164586.step?uuid=c3e75c3d90204c70b153866ab54c789f",
pcbRotationOffset: 0,
modelOriginPosition: { x: 0, y: -12700000070253736e-21, z: -0.15 },
}, ...props }));
const CL10A106KP8NNNC = (props) => {
return (jsxRuntime.jsx("capacitor", { capacitance: "10uF", symbol: undefined, supplierPartNumbers: {
"jlcpcb": [
"C19702"
]
}, manufacturerPartNumber: "CL10A106KP8NNNC", footprint: jsxRuntime.jsxs("footprint", { children: [jsxRuntime.jsx("smtpad", { portHints: ["pin2"], pcbX: "0.700024mm", pcbY: "0mm", width: "0.7999984mm", height: "0.8999982mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin1"], pcbX: "-0.700024mm", pcbY: "0mm", width: "0.7999984mm", height: "0.8999982mm", shape: "rect" }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -0.2801873999999316, "y": -0.7095743999998376 }, { "x": -1.080160400000068, "y": -0.7095743999998376 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 0.28026359999989836, "y": -0.7100315999998656 }, { "x": 1.080236599999921, "y": -0.7100315999998656 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -0.2801873999999316, "y": 0.7101078000000598 }, { "x": -1.080160400000068, "y": 0.7101078000000598 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 0.28026359999989836, "y": 0.7096252000001186 }, { "x": 1.080236599999921, "y": 0.7096252000001186 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -1.3899134000000686, "y": -0.3997452000000976 }, { "x": -1.3899134000000686, "y": 0.40030400000000554 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 1.3900149999998348, "y": 0.39977060000001075 }, { "x": 1.3900149999998348, "y": -0.4002531999999519 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 1.080185799999981, "y": 0.7096252000001186 }, { "x": 1.299277109074751, "y": 0.6188693482574763 }, { "x": 1.3900149999998348, "y": 0.39977060000001075 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 1.3900149999998348, "y": -0.40020240000012564 }, { "x": 1.2992681283295724, "y": -0.6192847283296032 }, { "x": 1.080185799999981, "y": -0.7100315999998656 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -1.0801096000000143, "y": -0.7095743999998376 }, { "x": -1.2991755087698493, "y": -0.6188185485625581 }, { "x": -1.3899134000000686, "y": -0.3997452000000976 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -1.3899134000000686, "y": 0.40022780000003877 }, { "x": -1.2991934705021322, "y": 0.6193339880503572 }, { "x": -1.0801096000000143, "y": 0.7101078000000598 }] }), jsxRuntime.jsx("silkscreentext", { text: "{NAME}", pcbX: "-0.0127mm", pcbY: "1.7112mm", anchorAlignment: "center", fontSize: "1mm" }), jsxRuntime.jsx("courtyardoutline", { outline: [{ "x": -1.647000000000162, "y": 0.9612000000000762 }, { "x": 1.6216000000000577, "y": 0.9612000000000762 }, { "x": 1.6216000000000577, "y": -0.9611999999999625 }, { "x": -1.647000000000162, "y": -0.9611999999999625 }, { "x": -1.647000000000162, "y": 0.9612000000000762 }] })] }), cadModel: {
objUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C19702.obj?uuid=ac9b32e974bc448eab36b1293f859dcb",
stepUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C19702.step?uuid=ac9b32e974bc448eab36b1293f859dcb",
pcbRotationOffset: 0,
modelOriginPosition: { x: 0, y: 0, z: -0.4 },
}, ...props }));
};
const CL10A226MP8NUNE = (props) => {
return (jsxRuntime.jsx("capacitor", { capacitance: "22uF", symbol: undefined, supplierPartNumbers: {
"jlcpcb": [
"C86295"
]
}, manufacturerPartNumber: "CL10A226MP8NUNE", footprint: jsxRuntime.jsxs("footprint", { children: [jsxRuntime.jsx("smtpad", { portHints: ["pin2"], pcbX: "0.700024mm", pcbY: "0mm", width: "0.7999984mm", height: "0.8999982mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin1"], pcbX: "-0.700024mm", pcbY: "0mm", width: "0.7999984mm", height: "0.8999982mm", shape: "rect" }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -0.2801873999999316, "y": -0.7095743999998376 }, { "x": -1.080160400000068, "y": -0.7095743999998376 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 0.28026359999989836, "y": -0.7100315999998656 }, { "x": 1.080236599999921, "y": -0.7100315999998656 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -0.2801873999999316, "y": 0.7101078000000598 }, { "x": -1.080160400000068, "y": 0.7101078000000598 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 0.28026359999989836, "y": 0.7096252000001186 }, { "x": 1.080236599999921, "y": 0.7096252000001186 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -1.3899134000000686, "y": -0.3997452000000976 }, { "x": -1.3899134000000686, "y": 0.40030400000000554 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 1.3900149999998348, "y": 0.39977060000001075 }, { "x": 1.3900149999998348, "y": -0.4002531999999519 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 1.080185799999981, "y": 0.7096252000001186 }, { "x": 1.299277109074751, "y": 0.6188693482574763 }, { "x": 1.3900149999998348, "y": 0.39977060000001075 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 1.3900149999998348, "y": -0.40020240000012564 }, { "x": 1.2992681283295724, "y": -0.6192847283296032 }, { "x": 1.080185799999981, "y": -0.7100315999998656 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -1.0801096000000143, "y": -0.7095743999998376 }, { "x": -1.2991755087698493, "y": -0.6188185485625581 }, { "x": -1.3899134000000686, "y": -0.3997452000000976 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -1.3899134000000686, "y": 0.40022780000003877 }, { "x": -1.2991934705021322, "y": 0.6193339880503572 }, { "x": -1.0801096000000143, "y": 0.7101078000000598 }] }), jsxRuntime.jsx("silkscreentext", { text: "{NAME}", pcbX: "-0.0127mm", pcbY: "1.7112mm", anchorAlignment: "center", fontSize: "1mm" }), jsxRuntime.jsx("courtyardoutline", { outline: [{ "x": -1.647000000000162, "y": 0.9612000000000762 }, { "x": 1.6216000000000577, "y": 0.9612000000000762 }, { "x": 1.6216000000000577, "y": -0.9611999999999625 }, { "x": -1.647000000000162, "y": -0.9611999999999625 }, { "x": -1.647000000000162, "y": 0.9612000000000762 }] })] }), cadModel: {
objUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C86295.obj?uuid=ac9b32e974bc448eab36b1293f859dcb",
stepUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C86295.step?uuid=ac9b32e974bc448eab36b1293f859dcb",
pcbRotationOffset: 0,
modelOriginPosition: { x: 0, y: 0, z: -0.4 },
}, ...props }));
};
const GRM155R61A225KE95D = (props) => {
return (jsxRuntime.jsx("capacitor", { capacitance: "2.2uF", symbol: undefined, supplierPartNumbers: {
"jlcpcb": [
"C77002"
]
}, manufacturerPartNumber: "GRM155R61A225KE95D", footprint: jsxRuntime.jsxs("footprint", { children: [jsxRuntime.jsx("smtpad", { portHints: ["pin2"], pcbX: "0.420116mm", pcbY: "0mm", width: "0.499999mm", height: "0.540004mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin1"], pcbX: "-0.420116mm", pcbY: "0mm", width: "0.499999mm", height: "0.540004mm", shape: "rect" }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -0.721385400000031, "y": 0.49753519999990203 }, { "x": -0.22138640000002852, "y": 0.49753519999990203 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -0.8738108000000011, "y": -0.34724340000002485 }, { "x": -0.8738108000000011, "y": 0.3451606000000993 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -0.22138640000002852, "y": -0.4996433999999681 }, { "x": -0.721385400000031, "y": -0.4996433999999681 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 0.7213853999999174, "y": -0.4975097999999889 }, { "x": 0.22138639999991483, "y": -0.4975097999999889 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 0.22138639999991483, "y": 0.49961800000005496 }, { "x": 0.7213853999999174, "y": 0.49961800000005496 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 0.8738108000000011, "y": 0.34726880000005167 }, { "x": 0.8738108000000011, "y": -0.3451606000000993 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 0.7213853999999174, "y": 0.4996433999998544 }, { "x": 0.829148473452733, "y": 0.4550064734527268 }, { "x": 0.8737853999998606, "y": 0.34724340000002485 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 0.8737853999998606, "y": -0.3451606000000993 }, { "x": 0.829148473452733, "y": -0.4529236734526876 }, { "x": 0.7213853999999174, "y": -0.49756059999992885 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -0.721385400000031, "y": -0.4996433999997407 }, { "x": -0.829148473452733, "y": -0.45500647345261314 }, { "x": -0.8737853999999743, "y": -0.34724340000002485 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -0.8737853999999743, "y": 0.3451606000000993 }, { "x": -0.829148473452733, "y": 0.45292367345280127 }, { "x": -0.721385400000031, "y": 0.49756060000004254 }] }), jsxRuntime.jsx("silkscreentext", { text: "{NAME}", pcbX: "0.0127mm", pcbY: "1.508mm", anchorAlignment: "center", fontSize: "1mm" }), jsxRuntime.jsx("courtyardoutline", { outline: [{ "x": -1.1136000000000195, "y": 0.7580000000000382 }, { "x": 1.1389999999998963, "y": 0.7580000000000382 }, { "x": 1.1389999999998963, "y": -0.7326000000000477 }, { "x": -1.1136000000000195, "y": -0.7326000000000477 }, { "x": -1.1136000000000195, "y": 0.7580000000000382 }] })] }), cadModel: {
objUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C77002.obj?uuid=32fe2cf9314f444ca2785a33c2db7189",
stepUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C77002.step?uuid=32fe2cf9314f444ca2785a33c2db7189",
pcbRotationOffset: 0,
modelOriginPosition: { x: 0, y: -12700000070253736e-21, z: -0.25 },
}, ...props }));
};
const CL05C100JB5NNNC = (props) => {
return (jsxRuntime.jsx("capacitor", { capacitance: "10pF", symbol: undefined, supplierPartNumbers: {
"jlcpcb": [
"C32949"
]
}, manufacturerPartNumber: "CL05C100JB5NNNC", footprint: jsxRuntime.jsxs("footprint", { children: [jsxRuntime.jsx("smtpad", { portHints: ["pin2"], pcbX: "0.420116mm", pcbY: "0mm", width: "0.499999mm", height: "0.540004mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin1"], pcbX: "-0.420116mm", pcbY: "0mm", width: "0.499999mm", height: "0.540004mm", shape: "rect" }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -0.721385400000031, "y": 0.49753519999990203 }, { "x": -0.22138640000002852, "y": 0.49753519999990203 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -0.8738108000000011, "y": -0.34724340000002485 }, { "x": -0.8738108000000011, "y": 0.3451606000000993 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -0.22138640000002852, "y": -0.4996433999999681 }, { "x": -0.721385400000031, "y": -0.4996433999999681 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 0.7213853999999174, "y": -0.4975097999999889 }, { "x": 0.22138639999991483, "y": -0.4975097999999889 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 0.22138639999991483, "y": 0.49961800000005496 }, { "x": 0.7213853999999174, "y": 0.49961800000005496 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 0.8738108000000011, "y": 0.34726880000005167 }, { "x": 0.8738108000000011, "y": -0.3451606000000993 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 0.7213853999999174, "y": 0.4996433999998544 }, { "x": 0.829148473452733, "y": 0.4550064734527268 }, { "x": 0.8737853999998606, "y": 0.34724340000002485 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 0.8737853999998606, "y": -0.3451606000000993 }, { "x": 0.829148473452733, "y": -0.4529236734526876 }, { "x": 0.7213853999999174, "y": -0.49756059999992885 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -0.721385400000031, "y": -0.4996433999997407 }, { "x": -0.829148473452733, "y": -0.45500647345261314 }, { "x": -0.8737853999999743, "y": -0.34724340000002485 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -0.8737853999999743, "y": 0.3451606000000993 }, { "x": -0.829148473452733, "y": 0.45292367345280127 }, { "x": -0.721385400000031, "y": 0.49756060000004254 }] }), jsxRuntime.jsx("silkscreentext", { text: "{NAME}", pcbX: "0.0127mm", pcbY: "1.508mm", anchorAlignment: "center", fontSize: "1mm" }), jsxRuntime.jsx("courtyardoutline", { outline: [{ "x": -1.1136000000000195, "y": 0.7580000000000382 }, { "x": 1.1389999999998963, "y": 0.7580000000000382 }, { "x": 1.1389999999998963, "y": -0.7326000000000477 }, { "x": -1.1136000000000195, "y": -0.7326000000000477 }, { "x": -1.1136000000000195, "y": 0.7580000000000382 }] })] }), cadModel: {
objUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C32949.obj?uuid=32fe2cf9314f444ca2785a33c2db7189",
stepUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C32949.step?uuid=32fe2cf9314f444ca2785a33c2db7189",
pcbRotationOffset: 0,
modelOriginPosition: { x: 0, y: -12700000070253736e-21, z: -0.25 },
}, ...props }));
};
const A_0402WGF5101TCE = (props) => {
return (jsxRuntime.jsx("resistor", { resistance: "5.1k", supplierPartNumbers: {
"jlcpcb": [
"C25905"
]
}, manufacturerPartNumber: "A_0402WGF5101TCE", footprint: jsxRuntime.jsxs("footprint", { children: [jsxRuntime.jsx("smtpad", { portHints: ["pin2"], pcbX: "0.432816mm", pcbY: "0mm", width: "0.565658mm", height: "0.540004mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin1"], pcbX: "-0.432816mm", pcbY: "0mm", width: "0.565658mm", height: "0.540004mm", shape: "rect" }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -0.22621240000012222, "y": -0.4986020000000053 }, { "x": -0.9442450000001372, "y": -0.4986020000000053 }, { "x": -0.9442450000001372, "y": 0.498602000000119 }, { "x": -0.22621240000012222, "y": 0.498602000000119 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 0.22621240000000853, "y": -0.4986020000000053 }, { "x": 0.9442449999999099, "y": -0.4986020000000053 }, { "x": 0.9442449999999099, "y": 0.498602000000119 }, { "x": 0.22621240000000853, "y": 0.498602000000119 }] }), jsxRuntime.jsx("silkscreentext", { text: "{NAME}", pcbX: "0mm", pcbY: "1.508mm", anchorAlignment: "center", fontSize: "1mm" }), jsxRuntime.jsx("courtyardoutline", { outline: [{ "x": -1.1897999999998774, "y": 0.7580000000000382 }, { "x": 1.189799999999991, "y": 0.7580000000000382 }, { "x": 1.189799999999991, "y": -0.7326000000000477 }, { "x": -1.1897999999998774, "y": -0.7326000000000477 }, { "x": -1.1897999999998774, "y": 0.7580000000000382 }] })] }), cadModel: {
objUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C25905.obj?uuid=026a4a15ab5c4a92ac0e421d6d013717",
stepUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C25905.step?uuid=026a4a15ab5c4a92ac0e421d6d013717",
pcbRotationOffset: 0,
modelOriginPosition: { x: 0, y: -12700000070253736e-21, z: 0 },
}, ...props }));
};
const A_0402WGF1001TCE = (props) => {
return (jsxRuntime.jsx("resistor", { resistance: "1k", supplierPartNumbers: {
"jlcpcb": [
"C11702"
]
}, manufacturerPartNumber: "A_0402WGF1001TCE", footprint: jsxRuntime.jsxs("footprint", { children: [jsxRuntime.jsx("smtpad", { portHints: ["pin2"], pcbX: "0.432816mm", pcbY: "0mm", width: "0.565658mm", height: "0.540004mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin1"], pcbX: "-0.432816mm", pcbY: "0mm", width: "0.565658mm", height: "0.540004mm", shape: "rect" }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -0.22621240000012222, "y": -0.4986020000000053 }, { "x": -0.9442450000001372, "y": -0.4986020000000053 }, { "x": -0.9442450000001372, "y": 0.498602000000119 }, { "x": -0.22621240000012222, "y": 0.498602000000119 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 0.22621240000000853, "y": -0.4986020000000053 }, { "x": 0.9442449999999099, "y": -0.4986020000000053 }, { "x": 0.9442449999999099, "y": 0.498602000000119 }, { "x": 0.22621240000000853, "y": 0.498602000000119 }] }), jsxRuntime.jsx("silkscreentext", { text: "{NAME}", pcbX: "0mm", pcbY: "1.508mm", anchorAlignment: "center", fontSize: "1mm" }), jsxRuntime.jsx("courtyardoutline", { outline: [{ "x": -1.1897999999998774, "y": 0.7580000000000382 }, { "x": 1.189799999999991, "y": 0.7580000000000382 }, { "x": 1.189799999999991, "y": -0.7326000000000477 }, { "x": -1.1897999999998774, "y": -0.7326000000000477 }, { "x": -1.1897999999998774, "y": 0.7580000000000382 }] })] }), cadModel: {
objUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C11702.obj?uuid=026a4a15ab5c4a92ac0e421d6d013717",
stepUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C11702.step?uuid=026a4a15ab5c4a92ac0e421d6d013717",
pcbRotationOffset: 0,
modelOriginPosition: { x: 0, y: -12700000070253736e-21, z: 0 },
}, ...props }));
};
const A_0402WGF1002TCE = (props) => {
return (jsxRuntime.jsx("resistor", { resistance: "10k", supplierPartNumbers: {
"jlcpcb": [
"C25744"
]
}, manufacturerPartNumber: "A_0402WGF1002TCE", footprint: jsxRuntime.jsxs("footprint", { children: [jsxRuntime.jsx("smtpad", { portHints: ["pin2"], pcbX: "0.432816mm", pcbY: "0mm", width: "0.565658mm", height: "0.540004mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin1"], pcbX: "-0.432816mm", pcbY: "0mm", width: "0.565658mm", height: "0.540004mm", shape: "rect" }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -0.22621240000012222, "y": -0.4986020000000053 }, { "x": -0.9442450000001372, "y": -0.4986020000000053 }, { "x": -0.9442450000001372, "y": 0.498602000000119 }, { "x": -0.22621240000012222, "y": 0.498602000000119 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 0.22621240000000853, "y": -0.4986020000000053 }, { "x": 0.9442449999999099, "y": -0.4986020000000053 }, { "x": 0.9442449999999099, "y": 0.498602000000119 }, { "x": 0.22621240000000853, "y": 0.498602000000119 }] }), jsxRuntime.jsx("silkscreentext", { text: "{NAME}", pcbX: "0mm", pcbY: "1.508mm", anchorAlignment: "center", fontSize: "1mm" }), jsxRuntime.jsx("courtyardoutline", { outline: [{ "x": -1.1897999999998774, "y": 0.7580000000000382 }, { "x": 1.189799999999991, "y": 0.7580000000000382 }, { "x": 1.189799999999991, "y": -0.7326000000000477 }, { "x": -1.1897999999998774, "y": -0.7326000000000477 }, { "x": -1.1897999999998774, "y": 0.7580000000000382 }] })] }), cadModel: {
objUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C25744.obj?uuid=026a4a15ab5c4a92ac0e421d6d013717",
stepUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C25744.step?uuid=026a4a15ab5c4a92ac0e421d6d013717",
pcbRotationOffset: 0,
modelOriginPosition: { x: 0, y: -12700000070253736e-21, z: 0 },
}, ...props }));
};
const A_0402WGF1003TCE = (props) => {
return (jsxRuntime.jsx("resistor", { resistance: "100k", supplierPartNumbers: {
"jlcpcb": [
"C25741"
]
}, manufacturerPartNumber: "A_0402WGF1003TCE", footprint: jsxRuntime.jsxs("footprint", { children: [jsxRuntime.jsx("smtpad", { portHints: ["pin2"], pcbX: "0.432816mm", pcbY: "0mm", width: "0.565658mm", height: "0.540004mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin1"], pcbX: "-0.432816mm", pcbY: "0mm", width: "0.565658mm", height: "0.540004mm", shape: "rect" }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -0.22621240000012222, "y": -0.4986020000000053 }, { "x": -0.9442450000001372, "y": -0.4986020000000053 }, { "x": -0.9442450000001372, "y": 0.498602000000119 }, { "x": -0.22621240000012222, "y": 0.498602000000119 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 0.22621240000000853, "y": -0.4986020000000053 }, { "x": 0.9442449999999099, "y": -0.4986020000000053 }, { "x": 0.9442449999999099, "y": 0.498602000000119 }, { "x": 0.22621240000000853, "y": 0.498602000000119 }] }), jsxRuntime.jsx("silkscreentext", { text: "{NAME}", pcbX: "0mm", pcbY: "1.508mm", anchorAlignment: "center", fontSize: "1mm" }), jsxRuntime.jsx("courtyardoutline", { outline: [{ "x": -1.1897999999998774, "y": 0.7580000000000382 }, { "x": 1.189799999999991, "y": 0.7580000000000382 }, { "x": 1.189799999999991, "y": -0.7326000000000477 }, { "x": -1.1897999999998774, "y": -0.7326000000000477 }, { "x": -1.1897999999998774, "y": 0.7580000000000382 }] })] }), cadModel: {
objUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C25741.obj?uuid=026a4a15ab5c4a92ac0e421d6d013717",
stepUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C25741.step?uuid=026a4a15ab5c4a92ac0e421d6d013717",
pcbRotationOffset: 0,
modelOriginPosition: { x: 0, y: -12700000070253736e-21, z: 0 },
}, ...props }));
};
const A_0402WGF2400TCE = (props) => {
return (jsxRuntime.jsx("resistor", { resistance: "240", supplierPartNumbers: {
"jlcpcb": [
"C25094"
]
}, manufacturerPartNumber: "A_0402WGF2400TCE", footprint: jsxRuntime.jsxs("footprint", { children: [jsxRuntime.jsx("smtpad", { portHints: ["pin2"], pcbX: "0.432816mm", pcbY: "0mm", width: "0.565658mm", height: "0.540004mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin1"], pcbX: "-0.432816mm", pcbY: "0mm", width: "0.565658mm", height: "0.540004mm", shape: "rect" }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -0.22621240000012222, "y": -0.4986020000000053 }, { "x": -0.9442450000001372, "y": -0.4986020000000053 }, { "x": -0.9442450000001372, "y": 0.498602000000119 }, { "x": -0.22621240000012222, "y": 0.498602000000119 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 0.22621240000000853, "y": -0.4986020000000053 }, { "x": 0.9442449999999099, "y": -0.4986020000000053 }, { "x": 0.9442449999999099, "y": 0.498602000000119 }, { "x": 0.22621240000000853, "y": 0.498602000000119 }] }), jsxRuntime.jsx("silkscreentext", { text: "{NAME}", pcbX: "0mm", pcbY: "1.508mm", anchorAlignment: "center", fontSize: "1mm" }), jsxRuntime.jsx("courtyardoutline", { outline: [{ "x": -1.1897999999998774, "y": 0.7580000000000382 }, { "x": 1.189799999999991, "y": 0.7580000000000382 }, { "x": 1.189799999999991, "y": -0.7326000000000477 }, { "x": -1.1897999999998774, "y": -0.7326000000000477 }, { "x": -1.1897999999998774, "y": 0.7580000000000382 }] })] }), cadModel: {
objUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C25094.obj?uuid=026a4a15ab5c4a92ac0e421d6d013717",
stepUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C25094.step?uuid=026a4a15ab5c4a92ac0e421d6d013717",
pcbRotationOffset: 0,
modelOriginPosition: { x: 0, y: -12700000070253736e-21, z: 0 },
}, ...props }));
};
const A_0402WGF2201TCE = (props) => {
return (jsxRuntime.jsx("resistor", { resistance: "2.2k", supplierPartNumbers: {
"jlcpcb": [
"C25879"
]
}, manufacturerPartNumber: "A_0402WGF2201TCE", footprint: jsxRuntime.jsxs("footprint", { children: [jsxRuntime.jsx("smtpad", { portHints: ["pin2"], pcbX: "0.432816mm", pcbY: "0mm", width: "0.565658mm", height: "0.540004mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin1"], pcbX: "-0.432816mm", pcbY: "0mm", width: "0.565658mm", height: "0.540004mm", shape: "rect" }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -0.22621240000012222, "y": -0.4986020000000053 }, { "x": -0.9442450000001372, "y": -0.4986020000000053 }, { "x": -0.9442450000001372, "y": 0.498602000000119 }, { "x": -0.22621240000012222, "y": 0.498602000000119 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 0.22621240000000853, "y": -0.4986020000000053 }, { "x": 0.9442449999999099, "y": -0.4986020000000053 }, { "x": 0.9442449999999099, "y": 0.498602000000119 }, { "x": 0.22621240000000853, "y": 0.498602000000119 }] }), jsxRuntime.jsx("silkscreentext", { text: "{NAME}", pcbX: "0mm", pcbY: "1.508mm", anchorAlignment: "center", fontSize: "1mm" }), jsxRuntime.jsx("courtyardoutline", { outline: [{ "x": -1.1897999999998774, "y": 0.7580000000000382 }, { "x": 1.189799999999991, "y": 0.7580000000000382 }, { "x": 1.189799999999991, "y": -0.7326000000000477 }, { "x": -1.1897999999998774, "y": -0.7326000000000477 }, { "x": -1.1897999999998774, "y": 0.7580000000000382 }] })] }), cadModel: {
objUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C25879.obj?uuid=026a4a15ab5c4a92ac0e421d6d013717",
stepUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C25879.step?uuid=026a4a15ab5c4a92ac0e421d6d013717",
pcbRotationOffset: 0,
modelOriginPosition: { x: 0, y: -12700000070253736e-21, z: 0 },
}, ...props }));
};
const A_0402WGF4702TCE = (props) => {
return (jsxRuntime.jsx("resistor", { resistance: "47k", supplierPartNumbers: {
"jlcpcb": [
"C25792"
]
}, manufacturerPartNumber: "A_0402WGF4702TCE", footprint: jsxRuntime.jsxs("footprint", { children: [jsxRuntime.jsx("smtpad", { portHints: ["pin2"], pcbX: "0.432816mm", pcbY: "0mm", width: "0.565658mm", height: "0.540004mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin1"], pcbX: "-0.432816mm", pcbY: "0mm", width: "0.565658mm", height: "0.540004mm", shape: "rect" }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -0.22621240000012222, "y": -0.4986020000000053 }, { "x": -0.9442450000001372, "y": -0.4986020000000053 }, { "x": -0.9442450000001372, "y": 0.498602000000119 }, { "x": -0.22621240000012222, "y": 0.498602000000119 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 0.22621240000000853, "y": -0.4986020000000053 }, { "x": 0.9442449999999099, "y": -0.4986020000000053 }, { "x": 0.9442449999999099, "y": 0.498602000000119 }, { "x": 0.22621240000000853, "y": 0.498602000000119 }] }), jsxRuntime.jsx("silkscreentext", { text: "{NAME}", pcbX: "0mm", pcbY: "1.508mm", anchorAlignment: "center", fontSize: "1mm" }), jsxRuntime.jsx("courtyardoutline", { outline: [{ "x": -1.1897999999998774, "y": 0.7580000000000382 }, { "x": 1.189799999999991, "y": 0.7580000000000382 }, { "x": 1.189799999999991, "y": -0.7326000000000477 }, { "x": -1.1897999999998774, "y": -0.7326000000000477 }, { "x": -1.1897999999998774, "y": 0.7580000000000382 }] })] }), cadModel: {
objUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C25792.obj?uuid=026a4a15ab5c4a92ac0e421d6d013717",
stepUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C25792.step?uuid=026a4a15ab5c4a92ac0e421d6d013717",
pcbRotationOffset: 0,
modelOriginPosition: { x: 0, y: -12700000070253736e-21, z: 0 },
}, ...props }));
};
const A_0402WGF4701TCE = (props) => {
return (jsxRuntime.jsx("resistor", { resistance: "4.7k", supplierPartNumbers: {
"jlcpcb": [
"C25900"
]
}, manufacturerPartNumber: "A_0402WGF4701TCE", footprint: jsxRuntime.jsxs("footprint", { children: [jsxRuntime.jsx("smtpad", { portHints: ["pin2"], pcbX: "0.432816mm", pcbY: "0mm", width: "0.565658mm", height: "0.540004mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin1"], pcbX: "-0.432816mm", pcbY: "0mm", width: "0.565658mm", height: "0.540004mm", shape: "rect" }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -0.22621240000012222, "y": -0.4986020000000053 }, { "x": -0.9442450000001372, "y": -0.4986020000000053 }, { "x": -0.9442450000001372, "y": 0.498602000000119 }, { "x": -0.22621240000012222, "y": 0.498602000000119 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 0.22621240000000853, "y": -0.4986020000000053 }, { "x": 0.9442449999999099, "y": -0.4986020000000053 }, { "x": 0.9442449999999099, "y": 0.498602000000119 }, { "x": 0.22621240000000853, "y": 0.498602000000119 }] }), jsxRuntime.jsx("silkscreentext", { text: "{NAME}", pcbX: "0mm", pcbY: "1.508mm", anchorAlignment: "center", fontSize: "1mm" }), jsxRuntime.jsx("courtyardoutline", { outline: [{ "x": -1.1897999999998774, "y": 0.7580000000000382 }, { "x": 1.189799999999991, "y": 0.7580000000000382 }, { "x": 1.189799999999991, "y": -0.7326000000000477 }, { "x": -1.1897999999998774, "y": -0.7326000000000477 }, { "x": -1.1897999999998774, "y": 0.7580000000000382 }] })] }), cadModel: {
objUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C25900.obj?uuid=026a4a15ab5c4a92ac0e421d6d013717",
stepUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C25900.step?uuid=026a4a15ab5c4a92ac0e421d6d013717",
pcbRotationOffset: 0,
modelOriginPosition: { x: 0, y: -12700000070253736e-21, z: 0 },
}, ...props }));
};
const A_0402WGF0000TCE = (props) => {
return (jsxRuntime.jsx("resistor", { resistance: "0", supplierPartNumbers: {
"jlcpcb": [
"C17168"
]
}, manufacturerPartNumber: "A_0402WGF0000TCE", footprint: jsxRuntime.jsxs("footprint", { children: [jsxRuntime.jsx("smtpad", { portHints: ["pin2"], pcbX: "0.432816mm", pcbY: "0mm", width: "0.565658mm", height: "0.540004mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin1"], pcbX: "-0.432816mm", pcbY: "0mm", width: "0.565658mm", height: "0.540004mm", shape: "rect" }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -0.22621240000012222, "y": -0.4986020000000053 }, { "x": -0.9442450000001372, "y": -0.4986020000000053 }, { "x": -0.9442450000001372, "y": 0.498602000000119 }, { "x": -0.22621240000012222, "y": 0.498602000000119 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 0.22621240000000853, "y": -0.4986020000000053 }, { "x": 0.9442449999999099, "y": -0.4986020000000053 }, { "x": 0.9442449999999099, "y": 0.498602000000119 }, { "x": 0.22621240000000853, "y": 0.498602000000119 }] }), jsxRuntime.jsx("silkscreentext", { text: "{NAME}", pcbX: "0mm", pcbY: "1.508mm", anchorAlignment: "center", fontSize: "1mm" }), jsxRuntime.jsx("courtyardoutline", { outline: [{ "x": -1.1897999999998774, "y": 0.7580000000000382 }, { "x": 1.189799999999991, "y": 0.7580000000000382 }, { "x": 1.189799999999991, "y": -0.7326000000000477 }, { "x": -1.1897999999998774, "y": -0.7326000000000477 }, { "x": -1.1897999999998774, "y": 0.7580000000000382 }] })] }), cadModel: {
objUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C17168.obj?uuid=026a4a15ab5c4a92ac0e421d6d013717",
stepUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C17168.step?uuid=026a4a15ab5c4a92ac0e421d6d013717",
pcbRotationOffset: 0,
modelOriginPosition: { x: 0, y: -12700000070253736e-21, z: 0 },
}, ...props }));
};
const A_0402WGF1000TCE = (props) => {
return (jsxRuntime.jsx("resistor", { resistance: "100", supplierPartNumbers: {
"jlcpcb": [
"C25076"
]
}, manufacturerPartNumber: "A_0402WGF1000TCE", footprint: jsxRuntime.jsxs("footprint", { children: [jsxRuntime.jsx("smtpad", { portHints: ["pin2"], pcbX: "0.432816mm", pcbY: "0mm", width: "0.565658mm", height: "0.540004mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin1"], pcbX: "-0.432816mm", pcbY: "0mm", width: "0.565658mm", height: "0.540004mm", shape: "rect" }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -0.22621240000012222, "y": -0.4986020000000053 }, { "x": -0.9442450000001372, "y": -0.4986020000000053 }, { "x": -0.9442450000001372, "y": 0.498602000000119 }, { "x": -0.22621240000012222, "y": 0.498602000000119 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 0.22621240000000853, "y": -0.4986020000000053 }, { "x": 0.9442449999999099, "y": -0.4986020000000053 }, { "x": 0.9442449999999099, "y": 0.498602000000119 }, { "x": 0.22621240000000853, "y": 0.498602000000119 }] }), jsxRuntime.jsx("silkscreentext", { text: "{NAME}", pcbX: "0mm", pcbY: "1.508mm", anchorAlignment: "center", fontSize: "1mm" }), jsxRuntime.jsx("courtyardoutline", { outline: [{ "x": -1.1897999999998774, "y": 0.7580000000000382 }, { "x": 1.189799999999991, "y": 0.7580000000000382 }, { "x": 1.189799999999991, "y": -0.7326000000000477 }, { "x": -1.1897999999998774, "y": -0.7326000000000477 }, { "x": -1.1897999999998774, "y": 0.7580000000000382 }] })] }), cadModel: {
objUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C25076.obj?uuid=026a4a15ab5c4a92ac0e421d6d013717",
stepUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C25076.step?uuid=026a4a15ab5c4a92ac0e421d6d013717",
pcbRotationOffset: 0,
modelOriginPosition: { x: 0, y: -12700000070253736e-21, z: 0 },
}, ...props }));
};
const A_0402WGF4533TCE = (props) => {
return (jsxRuntime.jsx("resistor", { resistance: "453k", supplierPartNumbers: {
"jlcpcb": [
"C27009"
]
}, manufacturerPartNumber: "A_0402WGF4533TCE", footprint: jsxRuntime.jsxs("footprint", { children: [jsxRuntime.jsx("smtpad", { portHints: ["pin2"], pcbX: "0.432816mm", pcbY: "0mm", width: "0.565658mm", height: "0.540004mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin1"], pcbX: "-0.432816mm", pcbY: "0mm", width: "0.565658mm", height: "0.540004mm", shape: "rect" }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -0.22621240000012222, "y": -0.4986020000000053 }, { "x": -0.9442450000001372, "y": -0.4986020000000053 }, { "x": -0.9442450000001372, "y": 0.498602000000119 }, { "x": -0.22621240000012222, "y": 0.498602000000119 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 0.22621240000000853, "y": -0.4986020000000053 }, { "x": 0.9442449999999099, "y": -0.4986020000000053 }, { "x": 0.9442449999999099, "y": 0.498602000000119 }, { "x": 0.22621240000000853, "y": 0.498602000000119 }] }), jsxRuntime.jsx("silkscreentext", { text: "{NAME}", pcbX: "0mm", pcbY: "1.508mm", anchorAlignment: "center", fontSize: "1mm" }), jsxRuntime.jsx("courtyardoutline", { outline: [{ "x": -1.1897999999998774, "y": 0.7580000000000382 }, { "x": 1.189799999999991, "y": 0.7580000000000382 }, { "x": 1.189799999999991, "y": -0.7326000000000477 }, { "x": -1.1897999999998774, "y": -0.7326000000000477 }, { "x": -1.1897999999998774, "y": 0.7580000000000382 }] })] }), cadModel: {
objUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C27009.obj?uuid=026a4a15ab5c4a92ac0e421d6d013717",
stepUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C27009.step?uuid=026a4a15ab5c4a92ac0e421d6d013717",
pcbRotationOffset: 0,
modelOriginPosition: { x: 0, y: -12700000070253736e-21, z: 0 },
}, ...props }));
};
const A_0402WGF6651TCE = (props) => {
return (jsxRuntime.jsx("resistor", { resistance: "6.65k", supplierPartNumbers: {
"jlcpcb": [
"C45194"
]
}, manufacturerPartNumber: "A_0402WGF6651TCE", footprint: jsxRuntime.jsxs("footprint", { children: [jsxRuntime.jsx("smtpad", { portHints: ["pin2"], pcbX: "0.432816mm", pcbY: "0mm", width: "0.565658mm", height: "0.540004mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin1"], pcbX: "-0.432816mm", pcbY: "0mm", width: "0.565658mm", height: "0.540004mm", shape: "rect" }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -0.22621240000012222, "y": -0.4986020000000053 }, { "x": -0.9442450000001372, "y": -0.4986020000000053 }, { "x": -0.9442450000001372, "y": 0.498602000000119 }, { "x": -0.22621240000012222, "y": 0.498602000000119 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 0.22621240000000853, "y": -0.4986020000000053 }, { "x": 0.9442449999999099, "y": -0.4986020000000053 }, { "x": 0.9442449999999099, "y": 0.498602000000119 }, { "x": 0.22621240000000853, "y": 0.498602000000119 }] }), jsxRuntime.jsx("silkscreentext", { text: "{NAME}", pcbX: "0mm", pcbY: "1.508mm", anchorAlignment: "center", fontSize: "1mm" }), jsxRuntime.jsx("courtyardoutline", { outline: [{ "x": -1.1897999999998774, "y": 0.7580000000000382 }, { "x": 1.189799999999991, "y": 0.7580000000000382 }, { "x": 1.189799999999991, "y": -0.7326000000000477 }, { "x": -1.1897999999998774, "y": -0.7326000000000477 }, { "x": -1.1897999999998774, "y": 0.7580000000000382 }] })] }), cadModel: {
objUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C45194.obj?uuid=026a4a15ab5c4a92ac0e421d6d013717",
stepUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C45194.step?uuid=026a4a15ab5c4a92ac0e421d6d013717",
pcbRotationOffset: 0,
modelOriginPosition: { x: 0, y: -12700000070253736e-21, z: 0 },
}, ...props }));
};
const A_0402WGF2491TCE = (props) => {
return (jsxRuntime.jsx("resistor", { resistance: "2.49k", supplierPartNumbers: {
"jlcpcb": [
"C25884"
]
}, manufacturerPartNumber: "A_0402WGF2491TCE", footprint: jsxRuntime.jsxs("footprint", { children: [jsxRuntime.jsx("smtpad", { portHints: ["pin2"], pcbX: "0.432816mm", pcbY: "0mm", width: "0.565658mm", height: "0.540004mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin1"], pcbX: "-0.432816mm", pcbY: "0mm", width: "0.565658mm", height: "0.540004mm", shape: "rect" }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -0.22621240000012222, "y": -0.4986020000000053 }, { "x": -0.9442450000001372, "y": -0.4986020000000053 }, { "x": -0.9442450000001372, "y": 0.498602000000119 }, { "x": -0.22621240000012222, "y": 0.498602000000119 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 0.22621240000000853, "y": -0.4986020000000053 }, { "x": 0.9442449999999099, "y": -0.4986020000000053 }, { "x": 0.9442449999999099, "y": 0.498602000000119 }, { "x": 0.22621240000000853, "y": 0.498602000000119 }] }), jsxRuntime.jsx("silkscreentext", { text: "{NAME}", pcbX: "0mm", pcbY: "1.508mm", anchorAlignment: "center", fontSize: "1mm" }), jsxRuntime.jsx("courtyardoutline", { outline: [{ "x": -1.1897999999998774, "y": 0.7580000000000382 }, { "x": 1.189799999999991, "y": 0.7580000000000382 }, { "x": 1.189799999999991, "y": -0.7326000000000477 }, { "x": -1.1897999999998774, "y": -0.7326000000000477 }, { "x": -1.1897999999998774, "y": 0.7580000000000382 }] })] }), cadModel: {
objUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C25884.obj?uuid=026a4a15ab5c4a92ac0e421d6d013717",
stepUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C25884.step?uuid=026a4a15ab5c4a92ac0e421d6d013717",
pcbRotationOffset: 0,
modelOriginPosition: { x: 0, y: -12700000070253736e-21, z: 0 },
}, ...props }));
};
const A_0402WGF9093TCE = (props) => {
return (jsxRuntime.jsx("resistor", { resistance: "909k", supplierPartNumbers: {
"jlcpcb": [
"C25799"
]
}, manufacturerPartNumber: "A_0402WGF9093TCE", footprint: jsxRuntime.jsxs("footprint", { children: [jsxRuntime.jsx("smtpad", { portHints: ["pin2"], pcbX: "0.432816mm", pcbY: "0mm", width: "0.565658mm", height: "0.540004mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin1"], pcbX: "-0.432816mm", pcbY: "0mm", width: "0.565658mm", height: "0.540004mm", shape: "rect" }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -0.22621240000012222, "y": -0.4986020000000053 }, { "x": -0.9442450000001372, "y": -0.4986020000000053 }, { "x": -0.9442450000001372, "y": 0.498602000000119 }, { "x": -0.22621240000012222, "y": 0.498602000000119 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 0.22621240000000853, "y": -0.4986020000000053 }, { "x": 0.9442449999999099, "y": -0.4986020000000053 }, { "x": 0.9442449999999099, "y": 0.498602000000119 }, { "x": 0.22621240000000853, "y": 0.498602000000119 }] }), jsxRuntime.jsx("silkscreentext", { text: "{NAME}", pcbX: "0mm", pcbY: "1.508mm", anchorAlignment: "center", fontSize: "1mm" }), jsxRuntime.jsx("courtyardoutline", { outline: [{ "x": -1.1897999999998774, "y": 0.7580000000000382 }, { "x": 1.189799999999991, "y": 0.7580000000000382 }, { "x": 1.189799999999991, "y": -0.7326000000000477 }, { "x": -1.1897999999998774, "y": -0.7326000000000477 }, { "x": -1.1897999999998774, "y": 0.7580000000000382 }] })] }), cadModel: {
objUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C25799.obj?uuid=026a4a15ab5c4a92ac0e421d6d013717",
stepUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C25799.step?uuid=026a4a15ab5c4a92ac0e421d6d013717",
pcbRotationOffset: 0,
modelOriginPosition: { x: 0, y: -12700000070253736e-21, z: 0 },
}, ...props }));
};
const C1005X5R1A335KTJ00E = (props) => {
return (jsxRuntime.jsx("capacitor", { capacitance: "3.3uF", symbol: undefined, supplierPartNumbers: {
"jlcpcb": [
"C695126"
]
}, manufacturerPartNumber: "C1005X5R1A335KTJ00E", footprint: jsxRuntime.jsxs("footprint", { children: [jsxRuntime.jsx("smtpad", { portHints: ["pin2"], pcbX: "0.420116mm", pcbY: "0mm", width: "0.499999mm", height: "0.540004mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin1"], pcbX: "-0.420116mm", pcbY: "0mm", width: "0.499999mm", height: "0.540004mm", shape: "rect" }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -0.721385400000031, "y": 0.49753519999990203 }, { "x": -0.22138640000002852, "y": 0.49753519999990203 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -0.8738108000000011, "y": -0.34724340000002485 }, { "x": -0.8738108000000011, "y": 0.3451606000000993 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -0.22138640000002852, "y": -0.4996433999999681 }, { "x": -0.721385400000031, "y": -0.4996433999999681 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 0.7213853999999174, "y": -0.4975097999999889 }, { "x": 0.22138639999991483, "y": -0.4975097999999889 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 0.22138639999991483, "y": 0.49961800000005496 }, { "x": 0.7213853999999174, "y": 0.49961800000005496 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 0.8738108000000011, "y": 0.34726880000005167 }, { "x": 0.8738108000000011, "y": -0.3451606000000993 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 0.7213853999999174, "y": 0.4996433999998544 }, { "x": 0.829148473452733, "y": 0.4550064734527268 }, { "x": 0.8737853999998606, "y": 0.34724340000002485 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 0.8737853999998606, "y": -0.3451606000000993 }, { "x": 0.829148473452733, "y": -0.4529236734526876 }, { "x": 0.7213853999999174, "y": -0.49756059999992885 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -0.721385400000031, "y": -0.4996433999997407 }, { "x": -0.829148473452733, "y": -0.45500647345261314 }, { "x": -0.8737853999999743, "y": -0.34724340000002485 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -0.8737853999999743, "y": 0.3451606000000993 }, { "x": -0.829148473452733, "y": 0.45292367345280127 }, { "x": -0.721385400000031, "y": 0.49756060000004254 }] }), jsxRuntime.jsx("silkscreentext", { text: "{NAME}", pcbX: "0.0127mm", pcbY: "1.508mm", anchorAlignment: "center", fontSize: "1mm" }), jsxRuntime.jsx("courtyardoutline", { outline: [{ "x": -1.1136000000000195, "y": 0.7580000000000382 }, { "x": 1.1389999999998963, "y": 0.7580000000000382 }, { "x": 1.1389999999998963, "y": -0.7326000000000477 }, { "x": -1.1136000000000195, "y": -0.7326000000000477 }, { "x": -1.1136000000000195, "y": 0.7580000000000382 }] })] }), cadModel: {
objUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C695126.obj?uuid=32fe2cf9314f444ca2785a33c2db7189",
stepUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C695126.step?uuid=32fe2cf9314f444ca2785a33c2db7189",
pcbRotationOffset: 0,
modelOriginPosition: { x: 0, y: -12700000070253736e-21, z: -0.25 },
}, ...props }));
};
const A_0402B472K500NT = (props) => {
return (jsxRuntime.jsx("capacitor", { capacitance: "4.7nF", symbol: undefined, supplierPartNumbers: {
"jlcpcb": [
"C1538"
]
}, manufacturerPartNumber: "A_0402B472K500NT", footprint: jsxRuntime.jsxs("footprint", { children: [jsxRuntime.jsx("smtpad", { portHints: ["pin2"], pcbX: "0.420116mm", pcbY: "0mm", width: "0.499999mm", height: "0.540004mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin1"], pcbX: "-0.420116mm", pcbY: "0mm", width: "0.499999mm", height: "0.540004mm", shape: "rect" }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -0.721385400000031, "y": 0.49753519999990203 }, { "x": -0.22138640000002852, "y": 0.49753519999990203 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -0.8738108000000011, "y": -0.34724340000002485 }, { "x": -0.8738108000000011, "y": 0.3451606000000993 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -0.22138640000002852, "y": -0.4996433999999681 }, { "x": -0.721385400000031, "y": -0.4996433999999681 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 0.7213853999999174, "y": -0.4975097999999889 }, { "x": 0.22138639999991483, "y": -0.4975097999999889 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 0.22138639999991483, "y": 0.49961800000005496 }, { "x": 0.7213853999999174, "y": 0.49961800000005496 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 0.8738108000000011, "y": 0.34726880000005167 }, { "x": 0.8738108000000011, "y": -0.3451606000000993 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 0.7213853999999174, "y": 0.4996433999998544 }, { "x": 0.829148473452733, "y": 0.4550064734527268 }, { "x": 0.8737853999998606, "y": 0.34724340000002485 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 0.8737853999998606, "y": -0.3451606000000993 }, { "x": 0.829148473452733, "y": -0.4529236734526876 }, { "x": 0.7213853999999174, "y": -0.49756059999992885 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -0.721385400000031, "y": -0.4996433999997407 }, { "x": -0.829148473452733, "y": -0.45500647345261314 }, { "x": -0.8737853999999743, "y": -0.34724340000002485 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -0.8737853999999743, "y": 0.3451606000000993 }, { "x": -0.829148473452733, "y": 0.45292367345280127 }, { "x": -0.721385400000031, "y": 0.49756060000004254 }] }), jsxRuntime.jsx("silkscreentext", { text: "{NAME}", pcbX: "0.0127mm", pcbY: "1.508mm", anchorAlignment: "center", fontSize: "1mm" }), jsxRuntime.jsx("courtyardoutline", { outline: [{ "x": -1.1136000000000195, "y": 0.7580000000000382 }, { "x": 1.1389999999998963, "y": 0.7580000000000382 }, { "x": 1.1389999999998963, "y": -0.7326000000000477 }, { "x": -1.1136000000000195, "y": -0.7326000000000477 }, { "x": -1.1136000000000195, "y": 0.7580000000000382 }] })] }), cadModel: {
objUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C1538.obj?uuid=32fe2cf9314f444ca2785a33c2db7189",
stepUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C1538.step?uuid=32fe2cf9314f444ca2785a33c2db7189",
pcbRotationOffset: 0,
modelOriginPosition: { x: 0, y: -12700000070253736e-21, z: -0.25 },
}, ...props }));
};
const CL05C220JB5NNNC = (props) => {
return (jsxRuntime.jsx("capacitor", { capacitance: "22pF", symbol: undefined, supplierPartNumbers: {
"jlcpcb": [
"C70464"
]
}, manufacturerPartNumber: "CL05C220JB5NNNC", footprint: jsxRuntime.jsxs("footprint", { children: [jsxRuntime.jsx("smtpad", { portHints: ["pin2"], pcbX: "0.420116mm", pcbY: "0mm", width: "0.499999mm", height: "0.540004mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin1"], pcbX: "-0.420116mm", pcbY: "0mm", width: "0.499999mm", height: "0.540004mm", shape: "rect" }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -0.721385400000031, "y": 0.49753519999990203 }, { "x": -0.22138640000002852, "y": 0.49753519999990203 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -0.8738108000000011, "y": -0.34724340000002485 }, { "x": -0.8738108000000011, "y": 0.3451606000000993 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -0.22138640000002852, "y": -0.4996433999999681 }, { "x": -0.721385400000031, "y": -0.4996433999999681 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 0.7213853999999174, "y": -0.4975097999999889 }, { "x": 0.22138639999991483, "y": -0.4975097999999889 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 0.22138639999991483, "y": 0.49961800000005496 }, { "x": 0.7213853999999174, "y": 0.49961800000005496 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 0.8738108000000011, "y": 0.34726880000005167 }, { "x": 0.8738108000000011, "y": -0.3451606000000993 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 0.7213853999999174, "y": 0.4996433999998544 }, { "x": 0.829148473452733, "y": 0.4550064734527268 }, { "x": 0.8737853999998606, "y": 0.34724340000002485 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 0.8737853999998606, "y": -0.3451606000000993 }, { "x": 0.829148473452733, "y": -0.4529236734526876 }, { "x": 0.7213853999999174, "y": -0.49756059999992885 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -0.721385400000031, "y": -0.4996433999997407 }, { "x": -0.829148473452733, "y": -0.45500647345261314 }, { "x": -0.8737853999999743, "y": -0.34724340000002485 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -0.8737853999999743, "y": 0.3451606000000993 }, { "x": -0.829148473452733, "y": 0.45292367345280127 }, { "x": -0.721385400000031, "y": 0.49756060000004254 }] }), jsxRuntime.jsx("silkscreentext", { text: "{NAME}", pcbX: "0.0127mm", pcbY: "1.508mm", anchorAlignment: "center", fontSize: "1mm" }), jsxRuntime.jsx("courtyardoutline", { outline: [{ "x": -1.1136000000000195, "y": 0.7580000000000382 }, { "x": 1.1389999999998963, "y": 0.7580000000000382 }, { "x": 1.1389999999998963, "y": -0.7326000000000477 }, { "x": -1.1136000000000195, "y": -0.7326000000000477 }, { "x": -1.1136000000000195, "y": 0.7580000000000382 }] })] }), cadModel: {
objUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C70464.obj?uuid=32fe2cf9314f444ca2785a33c2db7189",
stepUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C70464.step?uuid=32fe2cf9314f444ca2785a33c2db7189",
pcbRotationOffset: 0,
modelOriginPosition: { x: 0, y: -12700000070253736e-21, z: -0.25 },
}, ...props }));
};
const CL05A475MP5NRNC = (props) => {
return (jsxRuntime.jsx("capacitor", { capacitance: "4.7uF", symbol: undefined, supplierPartNumbers: {
"jlcpcb": [
"C23733"
]
}, manufacturerPartNumber: "CL05A475MP5NRNC", footprint: jsxRuntime.jsxs("footprint", { children: [jsxRuntime.jsx("smtpad", { portHints: ["pin2"], pcbX: "0.420116mm", pcbY: "0mm", width: "0.499999mm", height: "0.540004mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin1"], pcbX: "-0.420116mm", pcbY: "0mm", width: "0.499999mm", height: "0.540004mm", shape: "rect" }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -0.721385400000031, "y": 0.49753519999990203 }, { "x": -0.22138640000002852, "y": 0.49753519999990203 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -0.8738108000000011, "y": -0.34724340000002485 }, { "x": -0.8738108000000011, "y": 0.3451606000000993 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -0.22138640000002852, "y": -0.4996433999999681 }, { "x": -0.721385400000031, "y": -0.4996433999999681 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 0.7213853999999174, "y": -0.4975097999999889 }, { "x": 0.22138639999991483, "y": -0.4975097999999889 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 0.22138639999991483, "y": 0.49961800000005496 }, { "x": 0.7213853999999174, "y": 0.49961800000005496 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 0.8738108000000011, "y": 0.34726880000005167 }, { "x": 0.8738108000000011, "y": -0.3451606000000993 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 0.7213853999999174, "y": 0.4996433999998544 }, { "x": 0.829148473452733, "y": 0.4550064734527268 }, { "x": 0.8737853999998606, "y": 0.34724340000002485 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 0.8737853999998606, "y": -0.3451606000000993 }, { "x": 0.829148473452733, "y": -0.4529236734526876 }, { "x": 0.7213853999999174, "y": -0.49756059999992885 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -0.721385400000031, "y": -0.4996433999997407 }, { "x": -0.829148473452733, "y": -0.45500647345261314 }, { "x": -0.8737853999999743, "y": -0.34724340000002485 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -0.8737853999999743, "y": 0.3451606000000993 }, { "x": -0.829148473452733, "y": 0.45292367345280127 }, { "x": -0.721385400000031, "y": 0.49756060000004254 }] }), jsxRuntime.jsx("silkscreentext", { text: "{NAME}", pcbX: "0.0127mm", pcbY: "1.508mm", anchorAlignment: "center", fontSize: "1mm" }), jsxRuntime.jsx("courtyardoutline", { outline: [{ "x": -1.1136000000000195, "y": 0.7580000000000382 }, { "x": 1.1389999999998963, "y": 0.7580000000000382 }, { "x": 1.1389999999998963, "y": -0.7326000000000477 }, { "x": -1.1136000000000195, "y": -0.7326000000000477 }, { "x": -1.1136000000000195, "y": 0.7580000000000382 }] })] }), cadModel: {
objUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C23733.obj?uuid=32fe2cf9314f444ca2785a33c2db7189",
stepUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C23733.step?uuid=32fe2cf9314f444ca2785a33c2db7189",
pcbRotationOffset: 0,
modelOriginPosition: { x: 0, y: -12700000070253736e-21, z: -0.25 },
}, ...props }));
};
const CL10B221KB8NNNC = (props) => {
return (jsxRuntime.jsx("capacitor", { capacitance: "220pF", symbol: undefined, supplierPartNumbers: {
"jlcpcb": [
"C1603"
]
}, manufacturerPartNumber: "CL10B221KB8NNNC", footprint: jsxRuntime.jsxs("footprint", { children: [jsxRuntime.jsx("smtpad", { portHints: ["pin2"], pcbX: "0.700024mm", pcbY: "0mm", width: "0.7999984mm", height: "0.8999982mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin1"], pcbX: "-0.700024mm", pcbY: "0mm", width: "0.7999984mm", height: "0.8999982mm", shape: "rect" }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -0.2801873999999316, "y": -0.7095743999998376 }, { "x": -1.080160400000068, "y": -0.7095743999998376 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 0.28026359999989836, "y": -0.7100315999998656 }, { "x": 1.080236599999921, "y": -0.7100315999998656 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -0.2801873999999316, "y": 0.7101078000000598 }, { "x": -1.080160400000068, "y": 0.7101078000000598 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 0.28026359999989836, "y": 0.7096252000001186 }, { "x": 1.080236599999921, "y": 0.7096252000001186 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -1.3899134000000686, "y": -0.3997452000000976 }, { "x": -1.3899134000000686, "y": 0.40030400000000554 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 1.3900149999998348, "y": 0.39977060000001075 }, { "x": 1.3900149999998348, "y": -0.4002531999999519 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 1.080185799999981, "y": 0.7096252000001186 }, { "x": 1.299277109074751, "y": 0.6188693482574763 }, { "x": 1.3900149999998348, "y": 0.39977060000001075 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 1.3900149999998348, "y": -0.40020240000012564 }, { "x": 1.2992681283295724, "y": -0.6192847283296032 }, { "x": 1.080185799999981, "y": -0.7100315999998656 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -1.0801096000000143, "y": -0.7095743999998376 }, { "x": -1.2991755087698493, "y": -0.6188185485625581 }, { "x": -1.3899134000000686, "y": -0.3997452000000976 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -1.3899134000000686, "y": 0.40022780000003877 }, { "x": -1.2991934705021322, "y": 0.6193339880503572 }, { "x": -1.0801096000000143, "y": 0.7101078000000598 }] }), jsxRuntime.jsx("silkscreentext", { text: "{NAME}", pcbX: "-0.0127mm", pcbY: "1.7112mm", anchorAlignment: "center", fontSize: "1mm" }), jsxRuntime.jsx("courtyardoutline", { outline: [{ "x": -1.647000000000162, "y": 0.9612000000000762 }, { "x": 1.6216000000000577, "y": 0.9612000000000762 }, { "x": 1.6216000000000577, "y": -0.9611999999999625 }, { "x": -1.647000000000162, "y": -0.9611999999999625 }, { "x": -1.647000000000162, "y": 0.9612000000000762 }] })] }), cadModel: {
objUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C1603.obj?uuid=ac9b32e974bc448eab36b1293f859dcb",
stepUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C1603.step?uuid=ac9b32e974bc448eab36b1293f859dcb",
pcbRotationOffset: 0,
modelOriginPosition: { x: 0, y: 0, z: -0.4 },
}, ...props }));
};
const SMF5_0A = (props) => {
return (jsxRuntime.jsx("diode", { symbol: undefined, supplierPartNumbers: {
"jlcpcb": [
"C19077497"
]
}, manufacturerPartNumber: "SMF5_0A", footprint: jsxRuntime.jsxs("footprint", { children: [jsxRuntime.jsx("smtpad", { portHints: ["pin2"], pcbX: "1.634998mm", pcbY: "0mm", width: "1.1999976mm", height: "1.1999976mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin1"], pcbX: "-1.634998mm", pcbY: "0mm", width: "1.1999976mm", height: "1.1999976mm", shape: "rect" }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -0.7167625999999245, "y": 0.8762238000001616 }, { "x": -0.7167625999999245, "y": -0.876223800000048 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -1.3762228000000505, "y": -0.9262363999999934 }, { "x": 1.3762227999999368, "y": -0.9262363999999934 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -1.3762228000000505, "y": 0.9262364000001071 }, { "x": 1.3762227999999368, "y": 0.9262364000001071 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 1.3762227999999368, "y": 0.9262364000001071 }, { "x": 1.3762227999999368, "y": 0.7331963999999971 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 1.3762227999999368, "y": -0.9262363999999934 }, { "x": 1.3762227999999368, "y": -0.7331963999999971 }] }), jsxRuntime.jsx("silkscreentext", { text: "{NAME}", pcbX: "0mm", pcbY: "1.9906mm", anchorAlignment: "center", fontSize: "1mm" }), jsxRuntime.jsx("courtyardoutline", { outline: [{ "x": -2.485200000000077, "y": 1.2406000000000859 }, { "x": 2.4851999999998498, "y": 1.2406000000000859 }, { "x": 2.4851999999998498, "y": -1.2659999999999627 }, { "x": -2.485200000000077, "y": -1.2659999999999627 }, { "x": -2.485200000000077, "y": 1.2406000000000859 }] })] }), cadModel: {
objUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C19077497.obj?uuid=d3ea67013c27406dbdf25a993737fb84",
stepUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C19077497.step?uuid=d3ea67013c27406dbdf25a993737fb84",
pcbRotationOffset: 180,
modelOriginPosition: { x: 0, y: 0, z: 0.09 },
}, ...props }));
};
const pinLabels$f = {
pin1: ["cathode", "neg"],
pin2: ["anode", "pos"]
};
const LTST_C190KRKT = (props) => {
const { name = "LED1", ...restProps } = props;
return (jsxRuntime.jsx("led", { name: name, pinLabels: pinLabels$f, supplierPartNumbers: {
"jlcpcb": [
"C94869"
]
}, manufacturerPartNumber: "LTST_C190KRKT", footprint: jsxRuntime.jsxs("footprint", { children: [jsxRuntime.jsx("smtpad", { portHints: ["pin1", "cathode", "neg"], pcbX: "-0.7489952mm", pcbY: "-0.003429mm", width: "0.7999984mm", height: "0.7999984mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin2", "anode", "pos"], pcbX: "0.7489952mm", pcbY: "0.003429mm", width: "0.7999984mm", height: "0.7999984mm", shape: "rect" }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 0.2203958000000057, "y": -0.3235452000000123 }, { "x": 0.21048979999989115, "y": -0.3235452000000123 }, { "x": -0.11960860000010598, "y": 0.006477000000018052 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 0.2203958000000057, "y": 0.3564890000001242 }, { "x": 0.2203958000000057, "y": 0.3464814000001297 }, { "x": -0.11960860000010598, "y": 0.006477000000018052 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 0.2203958000000057, "y": 0.3564890000001242 }, { "x": 0.2203958000000057, "y": -0.3235452000000123 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 0.24043639999990774, "y": 0.7565136000000621 }, { "x": 1.3904975999998896, "y": 0.7565136000000621 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 0.24043639999990774, "y": -0.7436103999999659 }, { "x": 1.3904975999998896, "y": -0.7436103999999659 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 1.3904975999998896, "y": 0.7564628000000084 }, { "x": 1.3904975999998896, "y": -0.7235189999998966 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -0.13957299999992756, "y": -0.7458963999999924 }, { "x": -1.189685200000099, "y": -0.7458963999999924 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -1.4896337999999787, "y": -0.345795599999974 }, { "x": -1.4896337999999787, "y": -0.4458207999998649 }, { "x": -1.189685200000099, "y": -0.7458963999999924 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -1.4896337999999787, "y": 0.3541268000000173 }, { "x": -1.4896337999999787, "y": -0.345795599999974 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -1.4896337999999787, "y": 0.3541268000000173 }, { "x": -1.4896337999999787, "y": 0.4542790000000423 }, { "x": -1.189685200000099, "y": 0.7542276000000356 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -0.13957299999992756, "y": 0.7542276000000356 }, { "x": -1.189685200000099, "y": 0.7542276000000356 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 0.2203958000000057, "y": 0.006477000000018052 }, { "x": -0.11960860000010598, "y": 0.006477000000018052 }] }), jsxRuntime.jsx("silkscreentext", { text: "{NAME}", pcbX: "-0.0653542mm", pcbY: "1.768477mm", anchorAlignment: "center", fontSize: "1mm" }), jsxRuntime.jsx("courtyardoutline", { outline: [{ "x": -1.7504542000001493, "y": 1.0184769999999617 }, { "x": 1.6197458000000324, "y": 1.0184769999999617 }, { "x": 1.6197458000000324, "y": -0.980122999999935 }, { "x": -1.7504542000001493, "y": -0.980122999999935 }, { "x": -1.7504542000001493, "y": 1.0184769999999617 }] })] }), cadModel: {
objUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C94869.obj?uuid=d0740cb8891c49a88b6949cb978926f3",
stepUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C94869.step?uuid=d0740cb8891c49a88b6949cb978926f3",
pcbRotationOffset: 0,
modelOriginPosition: { x: -12700000070253736e-21, y: 0.00005079999993995443, z: -0.01 },
}, ...restProps }));
};
const pinLabels$e = {
pin1: ["pin1"],
pin2: ["A"],
pin3: ["GND"],
pin4: ["Y"],
pin5: ["VCC"]
};
const SN74LVC1G04DBVR = (props) => {
return (jsxRuntime.jsx("chip", { pinLabels: pinLabels$e, supplierPartNumbers: {
"jlcpcb": [
"C7827"
]
}, manufacturerPartNumber: "SN74LVC1G04DBVR", footprint: jsxRuntime.jsxs("footprint", { children: [jsxRuntime.jsx("smtpad", { portHints: ["pin5"], pcbX: "-1.300099mm", pcbY: "-0.94996mm", width: "1.0999978mm", height: "0.5999988mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin4"], pcbX: "-1.300099mm", pcbY: "0.94996mm", width: "1.0999978mm", height: "0.5999988mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin3"], pcbX: "1.300099mm", pcbY: "0.94996mm", width: "1.0999978mm", height: "0.5999988mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin2"], pcbX: "1.300099mm", pcbY: "-0mm", width: "1.0999978mm", height: "0.5999988mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin1"], pcbX: "1.300099mm", pcbY: "-0.94996mm", width: "1.0999978mm", height: "0.5999988mm", shape: "rect" }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 0.8999728000000005, "y": -1.404111999999941 }, { "x": 0.8999728000000005, "y": -1.5500604000000067 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 0.8999728000000005, "y": -0.45412660000010874 }, { "x": 0.8999728000000005, "y": -0.4958079999998972 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 0.8999728000000005, "y": 0.4958079999998972 }, { "x": 0.8999728000000005, "y": 0.45415200000002187 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 0.8999728000000005, "y": 1.5499587999998994 }, { "x": 0.8999728000000005, "y": 1.404111999999941 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -0.9000489999999672, "y": -1.404111999999941 }, { "x": -0.9000489999999672, "y": -1.5500604000000067 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -0.9000489999999672, "y": 0.4958079999998972 }, { "x": -0.9000489999999672, "y": -0.4958334000000377 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -0.9000489999999672, "y": 1.5499587999998994 }, { "x": -0.9000489999999672, "y": 1.4040866000000278 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -0.9000489999999672, "y": 1.5499587999998994 }, { "x": 0.8999728000000005, "y": 1.5499587999998994 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -0.9000489999999672, "y": -1.5500604000000067 }, { "x": 0.8999728000000005, "y": -1.5500604000000067 }] }), jsxRuntime.jsx("silkscreentext", { text: "{NAME}", pcbX: "0.012319mm", pcbY: "2.562354mm", anchorAlignment: "center", fontSize: "1mm" }), jsxRuntime.jsx("courtyardoutline", { outline: [{ "x": -2.091880999999944, "y": 1.8123540000000276 }, { "x": 2.1165190000000393, "y": 1.8123540000000276 }, { "x": 2.1165190000000393, "y": -1.786446000000069 }, { "x": -2.091880999999944, "y": -1.786446000000069 }, { "x": -2.091880999999944, "y": 1.8123540000000276 }] })] }), cadModel: {
objUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C7827.obj?uuid=460193f9bf2d42e58cf3c2f675b07dc6",
stepUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C7827.step?uuid=460193f9bf2d42e58cf3c2f675b07dc6",
pcbRotationOffset: 180,
modelOriginPosition: { x: 0, y: -12700000070253736e-21, z: -0.049083 },
}, ...props }));
};
const pinLabels$d = {
pin1: ["IN"],
pin2: ["GND"],
pin3: ["EN"],
pin4: ["NC"],
pin5: ["OUT"]
};
const TLV75533PDBVR = (props) => {
return (jsxRuntime.jsx("chip", { pinLabels: pinLabels$d, supplierPartNumbers: {
"jlcpcb": [
"C404027"
]
}, manufacturerPartNumber: "TLV75533PDBVR", footprint: jsxRuntime.jsxs("footprint", { children: [jsxRuntime.jsx("smtpad", { portHints: ["pin5"], pcbX: "-1.300099mm", pcbY: "-0.94996mm", width: "1.0999978mm", height: "0.5999988mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin4"], pcbX: "-1.300099mm", pcbY: "0.94996mm", width: "1.0999978mm", height: "0.5999988mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin3"], pcbX: "1.300099mm", pcbY: "0.94996mm", width: "1.0999978mm", height: "0.5999988mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin2"], pcbX: "1.300099mm", pcbY: "-0mm", width: "1.0999978mm", height: "0.5999988mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin1"], pcbX: "1.300099mm", pcbY: "-0.94996mm", width: "1.0999978mm", height: "0.5999988mm", shape: "rect" }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 0.8999728000000005, "y": -1.404111999999941 }, { "x": 0.8999728000000005, "y": -1.5500604000000067 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 0.8999728000000005, "y": -0.45412660000010874 }, { "x": 0.8999728000000005, "y": -0.4958079999998972 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 0.8999728000000005, "y": 0.4958079999998972 }, { "x": 0.8999728000000005, "y": 0.45415200000002187 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 0.8999728000000005, "y": 1.5499587999998994 }, { "x": 0.8999728000000005, "y": 1.404111999999941 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -0.9000489999999672, "y": -1.404111999999941 }, { "x": -0.9000489999999672, "y": -1.5500604000000067 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -0.9000489999999672, "y": 0.4958079999998972 }, { "x": -0.9000489999999672, "y": -0.4958334000000377 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -0.9000489999999672, "y": 1.5499587999998994 }, { "x": -0.9000489999999672, "y": 1.4040866000000278 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -0.9000489999999672, "y": 1.5499587999998994 }, { "x": 0.8999728000000005, "y": 1.5499587999998994 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -0.9000489999999672, "y": -1.5500604000000067 }, { "x": 0.8999728000000005, "y": -1.5500604000000067 }] }), jsxRuntime.jsx("silkscreentext", { text: "{NAME}", pcbX: "0.012319mm", pcbY: "2.562354mm", anchorAlignment: "center", fontSize: "1mm" }), jsxRuntime.jsx("courtyardoutline", { outline: [{ "x": -2.091880999999944, "y": 1.8123540000000276 }, { "x": 2.1165190000000393, "y": 1.8123540000000276 }, { "x": 2.1165190000000393, "y": -1.786446000000069 }, { "x": -2.091880999999944, "y": -1.786446000000069 }, { "x": -2.091880999999944, "y": 1.8123540000000276 }] })] }), cadModel: {
objUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C404027.obj?uuid=460193f9bf2d42e58cf3c2f675b07dc6",
stepUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C404027.step?uuid=460193f9bf2d42e58cf3c2f675b07dc6",
pcbRotationOffset: 180,
modelOriginPosition: { x: 0, y: -12700000070253736e-21, z: -0.049083 },
}, ...props }));
};
const pinLabels$c = {
pin1: ["CC1"],
pin2: ["CC2"],
pin3: ["PORT"],
pin4: ["VBUS_DET"],
pin5: ["ADDR"],
pin6: ["INT_N_OUT3", "OUT3"],
pin7: ["SDA_OUT1", "OUT1"],
pin8: ["SCL_OUT2", "OUT2"],
pin9: ["ID"],
pin10: ["GND"],
pin11: ["EN_N"],
pin12: ["VDD"]
};
const TUSB320LAIRWBR = (props) => {
return (jsxRuntime.jsx("chip", { pinLabels: pinLabels$c, supplierPartNumbers: {
"jlcpcb": [
"C132554"
]
}, manufacturerPartNumber: "TUSB320LAIRWBR", footprint: jsxRuntime.jsxs("footprint", { children: [jsxRuntime.jsx("smtpad", { portHints: ["pin12"], pcbX: "-0.5999861mm", pcbY: "0.7500366mm", width: "0.1999996mm", height: "0.5050028mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin11"], pcbX: "-0.1998853mm", pcbY: "0.7500366mm", width: "0.1999996mm", height: "0.5050028mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin10"], pcbX: "0.1998599mm", pcbY: "0.7500366mm", width: "0.1999996mm", height: "0.5050028mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin9"], pcbX: "0.5999607mm", pcbY: "0.7500366mm", width: "0.1999996mm", height: "0.5050028mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin8"], pcbX: "0.7500493mm", pcbY: "0.1998726mm", width: "0.5050028mm", height: "0.1999996mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin7"], pcbX: "0.7500493mm", pcbY: "-0.1998726mm", width: "0.5050028mm", height: "0.1999996mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin6"], pcbX: "0.5999607mm", pcbY: "-0.7500366mm", width: "0.1999996mm", height: "0.5050028mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin5"], pcbX: "0.1998599mm", pcbY: "-0.7500366mm", width: "0.1999996mm", height: "0.5050028mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin4"], pcbX: "-0.1998853mm", pcbY: "-0.7500366mm", width: "0.1999996mm", height: "0.5050028mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin3"], pcbX: "-0.5999861mm", pcbY: "-0.7500366mm", width: "0.1999996mm", height: "0.5050028mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin2"], pcbX: "-0.7500493mm", pcbY: "-0.1998726mm", width: "0.5050028mm", height: "0.1999996mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin1"], pcbX: "-0.7500493mm", pcbY: "0.1998726mm", width: "0.5050028mm", height: "0.1999996mm", shape: "rect" }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 0.8598788999999982, "y": -0.8699753999999871 }, { "x": 0.8098662999999959, "y": -0.8699753999999871 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 0.8598788999999982, "y": -0.8698991999999919 }, { "x": 0.8598788999999982, "y": -0.5099558000000002 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -0.8598281000000014, "y": 0.8700262000000123 }, { "x": -0.8598281000000014, "y": 0.5099558000000002 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -0.8598281000000014, "y": 0.8700262000000123 }, { "x": -0.8098662999999959, "y": 0.8700262000000123 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -0.859980500000006, "y": -0.8698991999999919 }, { "x": -0.859980500000006, "y": -0.5099558000000002 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -0.859980500000006, "y": -0.8698991999999919 }, { "x": -0.8100440999999989, "y": -0.8698991999999919 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 0.8598788999999982, "y": 0.8700262000000123 }, { "x": 0.8099424999999911, "y": 0.8700262000000123 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 0.8598788999999982, "y": 0.8700262000000123 }, { "x": 0.8598788999999982, "y": 0.5099558000000002 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -1.2049887000000012, "y": 0.20005040000000918 }, { "x": -1.2075418778361637, "y": 0.1806570889504684 }, { "x": -1.2150274164944364, "y": 0.16258540000001176 }, { "x": -1.2269351888856903, "y": 0.1470668888857034 }, { "x": -1.2424537000000129, "y": 0.13515911649443524 }, { "x": -1.2605253889504695, "y": 0.12767357783617683 }, { "x": -1.2799187000000103, "y": 0.12512040000000013 }, { "x": -1.2993120110495369, "y": 0.12767357783617683 }, { "x": -1.3173836999999935, "y": 0.13515911649443524 }, { "x": -1.3329022111143018, "y": 0.1470668888857034 }, { "x": -1.3448099835055842, "y": 0.16258540000001176 }, { "x": -1.3522955221638284, "y": 0.1806570889504684 }, { "x": -1.3548487000000051, "y": 0.20005040000000918 }, { "x": -1.3522955221638284, "y": 0.21944371104953575 }, { "x": -1.3448099835055842, "y": 0.2375154000000066 }, { "x": -1.3329022111143018, "y": 0.25303391111431495 }, { "x": -1.3173836999999935, "y": 0.2649416835055689 }, { "x": -1.2993120110495369, "y": 0.2724272221638415 }, { "x": -1.2799187000000103, "y": 0.2749804000000182 }, { "x": -1.2605253889504695, "y": 0.2724272221638415 }, { "x": -1.2424537000000129, "y": 0.2649416835055689 }, { "x": -1.2269351888856903, "y": 0.25303391111431495 }, { "x": -1.2150274164944364, "y": 0.2375154000000066 }, { "x": -1.2075418778361637, "y": 0.21944371104953575 }, { "x": -1.2049887000000012, "y": 0.20005040000000918 }] }), jsxRuntime.jsx("silkscreentext", { text: "{NAME}", pcbX: "-0.1781175mm", pcbY: "1.9945624mm", anchorAlignment: "center", fontSize: "1mm" }), jsxRuntime.jsx("courtyardoutline", { outline: [{ "x": -1.609217500000014, "y": 1.2445624000000208 }, { "x": 1.2529825000000017, "y": 1.2445624000000208 }, { "x": 1.2529825000000017, "y": -1.262037599999985 }, { "x": -1.609217500000014, "y": -1.262037599999985 }, { "x": -1.609217500000014, "y": 1.2445624000000208 }] })] }), cadModel: {
objUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C132554.obj?uuid=1b341723808e45ea90bc8e964704cc30",
stepUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C132554.step?uuid=1b341723808e45ea90bc8e964704cc30",
pcbRotationOffset: 0,
modelOriginPosition: { x: -12699999999199463e-21, y: 0, z: 0 },
}, ...props }));
};
const TFM201208BLE_R47MTCF = (props) => {
return (jsxRuntime.jsx("inductor", { inductance: "470nH", symbol: undefined, supplierPartNumbers: {
"jlcpcb": [
"C6284725"
]
}, manufacturerPartNumber: "TFM201208BLE_R47MTCF", footprint: jsxRuntime.jsxs("footprint", { children: [jsxRuntime.jsx("smtpad", { portHints: ["pin1"], pcbX: "-0.999998mm", pcbY: "0mm", width: "0.999998mm", height: "1.2999974mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin2"], pcbX: "0.999998mm", pcbY: "0mm", width: "0.999998mm", height: "1.2999974mm", shape: "rect" }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -0.999998000000005, "y": -0.88900000000001 }, { "x": 0.9999979999998914, "y": -0.88900000000001 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -0.999998000000005, "y": 0.8890000000001237 }, { "x": 0.9999979999998914, "y": 0.8890000000001237 }] }), jsxRuntime.jsx("silkscreentext", { text: "{NAME}", pcbX: "0mm", pcbY: "1.889mm", anchorAlignment: "center", fontSize: "1mm" }), jsxRuntime.jsx("courtyardoutline", { outline: [{ "x": -1.748600000000124, "y": 1.1390000000001237 }, { "x": 1.7486000000000104, "y": 1.1390000000001237 }, { "x": 1.7486000000000104, "y": -1.13900000000001 }, { "x": -1.748600000000124, "y": -1.13900000000001 }, { "x": -1.748600000000124, "y": 1.1390000000001237 }] })] }), cadModel: {
objUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C6284725.obj?uuid=5a84a84263d446838271f66cdb04aaac",
stepUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C6284725.step?uuid=5a84a84263d446838271f66cdb04aaac",
pcbRotationOffset: 0,
modelOriginPosition: { x: 0, y: 0, z: 0 },
}, ...props }));
};
const pinLabels$b = {
pin7: ["pin7"],
pin8: ["pin7_alt1"],
pin9: ["pin7_alt1"],
pin10: ["pin7_alt1"],
pin11: ["A12"],
pin12: ["A9"],
pin13: ["B5"],
pin14: ["A5"],
pin15: ["B9"],
pin16: ["B12"]
};
const USB4125_GF_A_0190 = (props) => {
return (jsxRuntime.jsx("chip", { pinLabels: pinLabels$b, supplierPartNumbers: {
"jlcpcb": [
"C5246813"
]
}, manufacturerPartNumber: "USB4125_GF_A_0190", footprint: jsxRuntime.jsxs("footprint", { children: [jsxRuntime.jsx("platedhole", { portHints: ["pin7"], pcbX: "-4.319905mm", pcbY: "1.5850426mm", holeWidth: "0.5999988mm", holeHeight: "1.1999976mm", outerWidth: "1.0999978mm", outerHeight: "1.6999966mm", shape: "pill" }), jsxRuntime.jsx("platedhole", { portHints: ["pin8"], pcbX: "4.319905mm", pcbY: "1.5850426mm", holeWidth: "0.5999988mm", holeHeight: "1.1999976mm", outerWidth: "1.0999978mm", outerHeight: "1.6999966mm", shape: "pill" }), jsxRuntime.jsx("platedhole", { portHints: ["pin9"], pcbX: "-4.319905mm", pcbY: "-2.2150514mm", holeWidth: "0.5999988mm", holeHeight: "1.1999976mm", outerWidth: "1.0999978mm", outerHeight: "1.6999966mm", shape: "pill" }), jsxRuntime.jsx("platedhole", { portHints: ["pin10"], pcbX: "4.319905mm", pcbY: "-2.2150514mm", holeWidth: "0.5999988mm", holeHeight: "1.1999976mm", outerWidth: "1.0999978mm", outerHeight: "1.6999966mm", shape: "pill" }), jsxRuntime.jsx("smtpad", { portHints: ["pin11"], pcbX: "2.750185mm", pcbY: "1.6650526mm", width: "0.7999984mm", height: "1.1999976mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin12"], pcbX: "1.520063mm", pcbY: "1.6650526mm", width: "0.6999986mm", height: "1.1999976mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin13"], pcbX: "0.499999mm", pcbY: "1.6650526mm", width: "0.6999986mm", height: "1.1999976mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin14"], pcbX: "-0.499999mm", pcbY: "1.6650526mm", width: "0.6999986mm", height: "1.1999976mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin15"], pcbX: "-1.520063mm", pcbY: "1.6650526mm", width: "0.6999986mm", height: "1.1999976mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin16"], pcbX: "-2.750185mm", pcbY: "1.6650526mm", width: "0.7999984mm", height: "1.1999976mm", shape: "rect" }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -3.381222600000001, "y": 1.9899948000000904 }, { "x": -3.5458653999997978, "y": 1.9899948000000904 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -2.1011387999999442, "y": 1.9899948000000904 }, { "x": -2.1189441999998735, "y": 1.9899948000000904 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 2.1189696000001277, "y": 1.9899948000000904 }, { "x": 2.1011387999999442, "y": 1.9899948000000904 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 3.545865400000025, "y": 1.9899948000000904 }, { "x": 3.381248000000028, "y": 1.9899948000000904 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 4.4699935999999525, "y": -1.14850540000009 }, { "x": 4.4699935999999525, "y": 0.5184965999999349 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -4.4699935999999525, "y": -3.2815974000000097 }, { "x": -4.4699935999999525, "y": -4.8149954000000434 }, { "x": 4.4699935999999525, "y": -4.8149954000000434 }, { "x": 4.4699935999999525, "y": -3.2815974000000097 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -4.4699935999999525, "y": 0.5184965999999349 }, { "x": -4.4699935999999525, "y": -1.14850540000009 }] }), jsxRuntime.jsx("silkscreentext", { text: "{NAME}", pcbX: "-0.005207mm", pcbY: "3.4232426mm", anchorAlignment: "center", fontSize: "1mm" }), jsxRuntime.jsx("courtyardoutline", { outline: [{ "x": -5.119306999999935, "y": 2.6732425999999805 }, { "x": 5.108892999999966, "y": 2.6732425999999805 }, { "x": 5.108892999999966, "y": -5.192757400000005 }, { "x": -5.119306999999935, "y": -5.192757400000005 }, { "x": -5.119306999999935, "y": 2.6732425999999805 }] })] }), cadModel: {
objUrl: objPath,
pcbRotationOffset: 0,
modelOriginPosition: { x: 0, y: 1.3629957000000559, z: -20000000000575113e-22 },
}, ...props }));
};
const pinLabels$a = {
pin1: ["EN_UVLO", "EN", "UVLO"],
pin2: ["OVLO"],
pin3: ["AUXOFF"],
pin4: ["FLT"],
pin5: ["IN"],
pin6: ["OUT"],
pin7: ["DVDT"],
pin8: ["GND"],
pin9: ["ILM"],
pin10: ["ITIMER"]
};
const TPS259470LRPWR = (props) => {
return (jsxRuntime.jsx("chip", { pinLabels: pinLabels$a, supplierPartNumbers: {
"jlcpcb": [
"C3662793"
]
}, manufacturerPartNumber: "TPS259470LRPWR", footprint: jsxRuntime.jsxs("footprint", { children: [jsxRuntime.jsx("smtpad", { portHints: ["pin1"], points: [{ x: "-0.8650351mm", y: "1.1999976mm" }, { x: "-0.8650351mm", y: "0.8999982mm" }, { x: "-0.8650351mm", y: "0.8999982mm" }, { x: "-1.2149963mm", y: "0.8999982mm" }, { x: "-1.2149963mm", y: "0.8999982mm" }, { x: "-1.2149963mm", y: "0.5999988mm" }, { x: "-1.2149963mm", y: "0.5999988mm" }, { x: "-0.8650351mm", y: "0.5999988mm" }, { x: "-0.8650351mm", y: "0.5999988mm" }, { x: "-0.6150483mm", y: "0.5999988mm" }, { x: "-0.6150483mm", y: "0.5999988mm" }, { x: "-0.6149975mm", y: "0.5999988mm" }, { x: "-0.6149975mm", y: "0.5999988mm" }, { x: "-0.6149975mm", y: "0.8999982mm" }, { x: "-0.6149975mm", y: "0.8999982mm" }, { x: "-0.6150483mm", y: "0.8999982mm" }, { x: "-0.6150483mm", y: "0.8999982mm" }, { x: "-0.6150483mm", y: "1.1999976mm" }, { x: "-0.6150483mm", y: "1.1999976mm" }, { x: "-0.8650351mm", y: "1.1999976mm" }], shape: "polygon" }), jsxRuntime.jsx("smtpad", { portHints: ["pin4"], points: [{ x: "-0.8553577mm", y: "-1.1999976mm" }, { x: "-0.8553577mm", y: "-0.8999728mm" }, { x: "-0.8553577mm", y: "-0.8999728mm" }, { x: "-1.2053189mm", y: "-0.8999728mm" }, { x: "-1.2053189mm", y: "-0.8999728mm" }, { x: "-1.2053189mm", y: "-0.5999988mm" }, { x: "-1.2053189mm", y: "-0.5999988mm" }, { x: "-0.8553577mm", y: "-0.5999988mm" }, { x: "-0.8553577mm", y: "-0.5999988mm" }, { x: "-0.6053709mm", y: "-0.5999988mm" }, { x: "-0.6053709mm", y: "-0.5999988mm" }, { x: "-0.6053201mm", y: "-0.5999988mm" }, { x: "-0.6053201mm", y: "-0.5999988mm" }, { x: "-0.6053201mm", y: "-0.8999728mm" }, { x: "-0.6053201mm", y: "-0.8999728mm" }, { x: "-0.6053709mm", y: "-0.8999728mm" }, { x: "-0.6053709mm", y: "-0.8999728mm" }, { x: "-0.6053709mm", y: "-1.1999976mm" }, { x: "-0.6053709mm", y: "-1.1999976mm" }, { x: "-0.8553577mm", y: "-1.1999976mm" }], shape: "polygon" }), jsxRuntime.jsx("smtpad", { portHints: ["pin7"], points: [{ x: "0.8650351mm", y: "-1.1999722mm" }, { x: "0.8650351mm", y: "-0.8999728mm" }, { x: "0.8650351mm", y: "-0.8999728mm" }, { x: "1.2149963mm", y: "-0.8999728mm" }, { x: "1.2149963mm", y: "-0.8999728mm" }, { x: "1.2149963mm", y: "-0.5999734mm" }, { x: "1.2149963mm", y: "-0.5999734mm" }, { x: "0.8650351mm", y: "-0.5999734mm" }, { x: "0.8650351mm", y: "-0.5999734mm" }, { x: "0.6150483mm", y: "-0.5999734mm" }, { x: "0.6150483mm", y: "-0.5999734mm" }, { x: "0.6149975mm", y: "-0.5999734mm" }, { x: "0.6149975mm", y: "-0.5999734mm" }, { x: "0.6149975mm", y: "-0.8999728mm" }, { x: "0.6149975mm", y: "-0.8999728mm" }, { x: "0.6150483mm", y: "-0.8999728mm" }, { x: "0.6150483mm", y: "-0.8999728mm" }, { x: "0.6150483mm", y: "-1.1999722mm" }, { x: "0.6150483mm", y: "-1.1999722mm" }, { x: "0.8650351mm", y: "-1.1999722mm" }], shape: "polygon" }), jsxRuntime.jsx("smtpad", { portHints: ["pin10"], points: [{ x: "0.8650351mm", y: "1.1999976mm" }, { x: "0.8650351mm", y: "0.8999982mm" }, { x: "0.8650351mm", y: "0.8999982mm" }, { x: "1.2149963mm", y: "0.8999982mm" }, { x: "1.2149963mm", y: "0.8999982mm" }, { x: "1.2149963mm", y: "0.5999988mm" }, { x: "1.2149963mm", y: "0.5999988mm" }, { x: "0.8650351mm", y: "0.5999988mm" }, { x: "0.8650351mm", y: "0.5999988mm" }, { x: "0.6150483mm", y: "0.5999988mm" }, { x: "0.6150483mm", y: "0.5999988mm" }, { x: "0.6149975mm", y: "0.5999988mm" }, { x: "0.6149975mm", y: "0.5999988mm" }, { x: "0.6149975mm", y: "0.8999982mm" }, { x: "0.6149975mm", y: "0.8999982mm" }, { x: "0.6150483mm", y: "0.8999982mm" }, { x: "0.6150483mm", y: "0.8999982mm" }, { x: "0.6150483mm", y: "1.1999976mm" }, { x: "0.6150483mm", y: "1.1999976mm" }, { x: "0.8650351mm", y: "1.1999976mm" }], shape: "polygon" }), jsxRuntime.jsx("smtpad", { portHints: ["pin5"], pcbX: "-0.2349373mm", pcbY: "0mm", width: "0.2999994mm", height: "2.3999952mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin6"], pcbX: "0.2649347mm", pcbY: "0mm", width: "0.2999994mm", height: "2.3999952mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin2"], pcbX: "-0.9049893mm", pcbY: "0.225044mm", width: "0.5999988mm", height: "0.2500122mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin3"], pcbX: "-0.9052433mm", pcbY: "-0.225044mm", width: "0.5999988mm", height: "0.2500122mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin9"], pcbX: "0.9050147mm", pcbY: "0.225044mm", width: "0.5999988mm", height: "0.2500122mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin8"], pcbX: "0.9050147mm", pcbY: "-0.225044mm", width: "0.5999988mm", height: "0.2500122mm", shape: "rect" }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -1.265008899999998, "y": 1.1256010000000742 }, { "x": -1.265008899999998, "y": 1.329994799999895 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -1.0517250999999987, "y": -1.2800075999999763 }, { "x": -1.265008899999998, "y": -1.2800075999999763 }, { "x": -1.265008899999998, "y": -1.116660199999842 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 1.3449934999999869, "y": -1.09054900000001 }, { "x": 1.3449934999999869, "y": -1.2800075999999763 }, { "x": 1.0816971000000422, "y": -1.2800075999999763 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 1.0621644999999944, "y": 1.3199872000001278 }, { "x": 1.3449934999999869, "y": 1.3199872000001278 }, { "x": 1.3449934999999869, "y": 1.0905743999999231 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -1.2250038999998196, "y": 1.3199872000001278 }, { "x": -1.0621644999998807, "y": 1.3199872000001278 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -1.5803752999999006, "y": 1.2298680000000104 }, { "x": -1.584962365265028, "y": 1.1950257801482849 }, { "x": -1.5984109601424734, "y": 1.16255799999999 }, { "x": -1.6198045851166398, "y": 1.1346772851165952 }, { "x": -1.6476853000000347, "y": 1.1132836601425424 }, { "x": -1.6801530801483295, "y": 1.0998350652649833 }, { "x": -1.714995300000055, "y": 1.0952479999999696 }, { "x": -1.749837519851667, "y": 1.0998350652649833 }, { "x": -1.7823052999999618, "y": 1.1132836601425424 }, { "x": -1.8101860148833566, "y": 1.1346772851165952 }, { "x": -1.831579639857523, "y": 1.16255799999999 }, { "x": -1.8450282347349685, "y": 1.1950257801482849 }, { "x": -1.8496153000000959, "y": 1.2298680000000104 }, { "x": -1.8450282347349685, "y": 1.2647102198518496 }, { "x": -1.831579639857523, "y": 1.2971780000000308 }, { "x": -1.8101860148833566, "y": 1.3250587148834256 }, { "x": -1.7823052999999618, "y": 1.3464523398574784 }, { "x": -1.749837519851667, "y": 1.3599009347350375 }, { "x": -1.714995300000055, "y": 1.3644880000000512 }, { "x": -1.6801530801483295, "y": 1.3599009347350375 }, { "x": -1.6476853000000347, "y": 1.3464523398574784 }, { "x": -1.6198045851166398, "y": 1.3250587148834256 }, { "x": -1.5984109601424734, "y": 1.2971780000000308 }, { "x": -1.584962365265028, "y": 1.2647102198518496 }, { "x": -1.5803752999999006, "y": 1.2298680000000104 }] }), jsxRuntime.jsx("silkscreentext", { text: "{NAME}", pcbX: "-0.2390013mm", pcbY: "2.3716mm", anchorAlignment: "center", fontSize: "1mm" }), jsxRuntime.jsx("courtyardoutline", { outline: [{ "x": -2.0892013000000134, "y": 1.6216000000000577 }, { "x": 1.6111987000000454, "y": 1.6216000000000577 }, { "x": 1.6111987000000454, "y": -1.5199999999999818 }, { "x": -2.0892013000000134, "y": -1.5199999999999818 }, { "x": -2.0892013000000134, "y": 1.6216000000000577 }] })] }), cadModel: {
objUrl: objPath$1,
pcbRotationOffset: 0,
modelOriginPosition: { x: 0.004987299999929751, y: 0, z: -0.05 },
}, ...props }));
};
const pinLabels$9 = {
pin1: ["GND"],
pin2: ["SW"],
pin3: ["VIN"],
pin4: ["EN"],
pin5: ["FB"],
pin6: ["PG"]
};
const TPS62A02DRLR = (props) => {
return (jsxRuntime.jsx("chip", { pinLabels: pinLabels$9, supplierPartNumbers: {
"jlcpcb": [
"C5350187"
]
}, manufacturerPartNumber: "TPS62A02DRLR", footprint: jsxRuntime.jsxs("footprint", { children: [jsxRuntime.jsx("smtpad", { portHints: ["pin5"], pcbX: "0.799973mm", pcbY: "0mm", width: "0.499999mm", height: "0.2999994mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin2"], pcbX: "-0.799973mm", pcbY: "0mm", width: "0.499999mm", height: "0.2999994mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin3"], pcbX: "-0.799973mm", pcbY: "-0.499999mm", width: "0.499999mm", height: "0.2999994mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin1"], pcbX: "-0.799973mm", pcbY: "0.499999mm", width: "0.499999mm", height: "0.2999994mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin4"], pcbX: "0.799973mm", pcbY: "-0.499999mm", width: "0.499999mm", height: "0.2999994mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin6"], pcbX: "0.799973mm", pcbY: "0.499999mm", width: "0.499999mm", height: "0.2999994mm", shape: "rect" }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 0.47505619999998316, "y": 0.788339800000017 }, { "x": -0.47490379999999277, "y": 0.788339800000017 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 0.47505619999998316, "y": -0.7864602000000076 }, { "x": -0.47490379999999277, "y": -0.7864602000000076 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -0.780161000000021, "y": 0.9308845999999988 }, { "x": -0.7822035422689453, "y": 0.9153699511603861 }, { "x": -0.788191973195552, "y": 0.9009126000000123 }, { "x": -0.797718191108558, "y": 0.8884977911085485 }, { "x": -0.8101330000000075, "y": 0.8789715731955425 }, { "x": -0.8245903511603956, "y": 0.8729831422689358 }, { "x": -0.8401050000000083, "y": 0.8709406000000115 }, { "x": -0.855619648839621, "y": 0.8729831422689358 }, { "x": -0.8700769999999949, "y": 0.8789715731955425 }, { "x": -0.8824918088914586, "y": 0.8884977911085485 }, { "x": -0.8920180268044646, "y": 0.9009126000000123 }, { "x": -0.8980064577310714, "y": 0.9153699511603861 }, { "x": -0.9000490000000099, "y": 0.9308845999999988 }, { "x": -0.8980064577310714, "y": 0.9463992488396258 }, { "x": -0.8920180268044646, "y": 0.9608565999999996 }, { "x": -0.8824918088914586, "y": 0.9732714088914491 }, { "x": -0.8700769999999949, "y": 0.9827976268044551 }, { "x": -0.855619648839621, "y": 0.9887860577310619 }, { "x": -0.8401050000000083, "y": 0.9908286000000004 }, { "x": -0.8245903511603956, "y": 0.9887860577310619 }, { "x": -0.8101330000000075, "y": 0.9827976268044551 }, { "x": -0.797718191108558, "y": 0.9732714088914491 }, { "x": -0.788191973195552, "y": 0.9608565999999996 }, { "x": -0.7822035422689453, "y": 0.9463992488396258 }, { "x": -0.780161000000021, "y": 0.9308845999999988 }] }), jsxRuntime.jsx("silkscreentext", { text: "{NAME}", pcbX: "-0.059817mm", pcbY: "1.9954006mm", anchorAlignment: "center", fontSize: "1mm" }), jsxRuntime.jsx("courtyardoutline", { outline: [{ "x": -1.414716999999996, "y": 1.2454006000000106 }, { "x": 1.2950830000000053, "y": 1.2454006000000106 }, { "x": 1.2950830000000053, "y": -1.0833993999999905 }, { "x": -1.414716999999996, "y": -1.0833993999999905 }, { "x": -1.414716999999996, "y": 1.2454006000000106 }] })] }), cadModel: {
objUrl: objPath$2,
pcbRotationOffset: 0,
modelOriginPosition: { x: 0.00005079999999679785, y: 0.02905759999998736, z: 0 },
}, ...props }));
};
const DFE201612PD_1R0M_P2 = (props) => {
return (jsxRuntime.jsx("inductor", { inductance: "1uH", symbol: undefined, supplierPartNumbers: {
"jlcpcb": [
"C2043195"
]
}, manufacturerPartNumber: "DFE201612PD_1R0M_P2", footprint: jsxRuntime.jsxs("footprint", { children: [jsxRuntime.jsx("smtpad", { portHints: ["pin2"], pcbX: "0.999998mm", pcbY: "0mm", width: "1.1999976mm", height: "1.7999964mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin1"], pcbX: "-0.999998mm", pcbY: "0mm", width: "1.1999976mm", height: "1.7999964mm", shape: "rect" }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -0.4999990000000025, "y": 1.1999975999999606 }, { "x": -1.54998420000004, "y": 1.1999975999999606 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -0.4999990000000025, "y": -1.1999976000000743 }, { "x": -1.54998420000004, "y": -1.1999976000000743 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 0.49999899999988884, "y": 1.1999975999999606 }, { "x": 1.54998420000004, "y": 1.1999975999999606 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 0.49999899999988884, "y": -1.1999976000000743 }, { "x": 1.54998420000004, "y": -1.1999976000000743 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -1.8999708000001192, "y": 0.9999979999998914 }, { "x": -1.8999708000001192, "y": -0.9999979999998914 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 1.8999708000000055, "y": 0.9999979999998914 }, { "x": 1.8999708000000055, "y": -0.9999979999998914 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -1.54998420000004, "y": 1.1999975999999606 }, { "x": -1.6999712000001637, "y": 1.1999975999999606 }, { "x": -1.8999708000001192, "y": 0.9999979999998914 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -1.54998420000004, "y": -1.1999976000000743 }, { "x": -1.6999712000001637, "y": -1.1999976000000743 }, { "x": -1.8999708000001192, "y": -0.9999979999998914 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 1.54998420000004, "y": 1.1999975999999606 }, { "x": 1.6999711999999363, "y": 1.1999975999999606 }, { "x": 1.8999708000000055, "y": 0.9999979999998914 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 1.54998420000004, "y": -1.1999976000000743 }, { "x": 1.6999711999999363, "y": -1.1999976000000743 }, { "x": 1.8999708000000055, "y": -0.9999979999998914 }] }), jsxRuntime.jsx("silkscreentext", { text: "{NAME}", pcbX: "0.009398mm", pcbY: "2.1938mm", anchorAlignment: "center", fontSize: "1mm" }), jsxRuntime.jsx("courtyardoutline", { outline: [{ "x": -2.1456020000000535, "y": 1.4437999999998965 }, { "x": 2.164397999999892, "y": 1.4437999999998965 }, { "x": 2.164397999999892, "y": -1.4438000000001239 }, { "x": -2.1456020000000535, "y": -1.4438000000001239 }, { "x": -2.1456020000000535, "y": 1.4437999999998965 }] })] }), cadModel: {
objUrl: objPath$3,
pcbRotationOffset: 0,
modelOriginPosition: { x: 0, y: 0, z: -0.475 },
}, ...props }));
};
const XRCGB25M000F3A00R0 = (props) => {
return (jsxRuntime.jsx("crystal", { frequency: "25MHz", loadCapacitance: "6pF", pinVariant: "four_pin", symbol: undefined, supplierPartNumbers: {
"jlcpcb": [
"C467842"
]
}, manufacturerPartNumber: "XRCGB25M000F3A00R0", footprint: jsxRuntime.jsxs("footprint", { children: [jsxRuntime.jsx("smtpad", { portHints: ["pin1"], pcbX: "-0.650113mm", pcbY: "-0.450088mm", width: "0.850011mm", height: "0.6999986mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin2"], pcbX: "0.650113mm", pcbY: "-0.450088mm", width: "0.850011mm", height: "0.6999986mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin3"], pcbX: "0.650113mm", pcbY: "0.449834mm", width: "0.850011mm", height: "0.6999986mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin4"], pcbX: "-0.649859mm", pcbY: "0.450088mm", width: "0.850011mm", height: "0.6999986mm", shape: "rect" }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -1.2698729999999614, "y": 1.0160000000000764 }, { "x": -1.2698729999999614, "y": -1.143000000000029 }, { "x": 1.2701269999998885, "y": -1.143000000000029 }, { "x": 1.2701269999998885, "y": 1.0160000000000764 }, { "x": -1.2698729999999614, "y": 1.0160000000000764 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -1.5238730000000942, "y": -0.2539999999999054 }, { "x": -1.5238730000000942, "y": -1.3969999999999345 }, { "x": -0.5078730000000178, "y": -1.3969999999999345 }] }), jsxRuntime.jsx("silkscreentext", { text: "{NAME}", pcbX: "-0.126873mm", pcbY: "2.016mm", anchorAlignment: "center", fontSize: "1mm" }), jsxRuntime.jsx("courtyardoutline", { outline: [{ "x": -1.7738730000000942, "y": 1.2660000000000764 }, { "x": 1.5201269999998885, "y": 1.2660000000000764 }, { "x": 1.5201269999998885, "y": -1.6469999999999345 }, { "x": -1.7738730000000942, "y": -1.6469999999999345 }, { "x": -1.7738730000000942, "y": 1.2660000000000764 }] })] }), cadModel: {
objUrl: objPath$4,
pcbRotationOffset: 0,
modelOriginPosition: { x: 0.0050000000000000044, y: 0, z: -0.01 },
}, ...props }));
};
const pinLabels$8 = {
pin1: ["DAT2"],
pin2: ["pin2"],
pin3: ["CMD"],
pin4: ["VDD"],
pin5: ["CLK"],
pin6: ["VSS"],
pin7: ["DAT0"],
pin8: ["DAT1"],
pin9: ["SW_B"],
pin10: ["pin10"],
pin11: ["SW_A"],
pin12: ["pin12"],
pin13: ["pin13"],
pin14: ["pin14"]
};
const DM3AT_SF_PEJM5 = (props) => {
return (jsxRuntime.jsx("chip", { pinLabels: pinLabels$8, supplierPartNumbers: {
"jlcpcb": [
"C114218"
]
}, manufacturerPartNumber: "DM3AT_SF_PEJM5", footprint: jsxRuntime.jsxs("footprint", { children: [jsxRuntime.jsx("smtpad", { portHints: ["pin14"], pcbX: "4.32491515mm", pcbY: "7.72502265mm", width: "0.999998mm", height: "1.1999976mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin13"], pcbX: "6.67492315mm", pcbY: "-7.37502335mm", width: "1.2999974mm", height: "1.8999962mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin12"], pcbX: "-6.82492285mm", pcbY: "-6.92493535mm", width: "0.999998mm", height: "2.7999944mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin11"], pcbX: "-6.82492285mm", pcbY: "-2.77508335mm", width: "0.999998mm", height: "0.7999984mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin10"], pcbX: "-6.82492285mm", pcbY: "3.42505665mm", width: "0.999998mm", height: "1.1999976mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin9"], pcbX: "-5.87496285mm", pcbY: "7.72502265mm", width: "0.6999986mm", height: "1.1999976mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin8"], pcbX: "-4.92500285mm", pcbY: "7.72502265mm", width: "0.6999986mm", height: "1.1999976mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin7"], pcbX: "-3.82492885mm", pcbY: "7.72502265mm", width: "0.6999986mm", height: "1.1999976mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin6"], pcbX: "-2.72510885mm", pcbY: "7.72502265mm", width: "0.6999986mm", height: "1.1999976mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin5"], pcbX: "-1.62503485mm", pcbY: "7.72502265mm", width: "0.6999986mm", height: "1.1999976mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin4"], pcbX: "-0.52496085mm", pcbY: "7.72502265mm", width: "0.6999986mm", height: "1.1999976mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin3"], pcbX: "0.57511315mm", pcbY: "7.72502265mm", width: "0.6999986mm", height: "1.1999976mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin2"], pcbX: "1.67493315mm", pcbY: "7.72502265mm", width: "0.6999986mm", height: "1.1999976mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin1"], pcbX: "2.77500715mm", pcbY: "7.72502265mm", width: "0.6999986mm", height: "1.1999976mm", shape: "rect" }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -6.368992849999927, "y": 7.725022650000028 }, { "x": -7.511992849999842, "y": 7.725022650000028 }, { "x": -7.511992849999842, "y": -8.530977349999944 }, { "x": -7.38499284999989, "y": -8.530977349999944 }, { "x": 7.601007149999987, "y": -8.530977349999944 }, { "x": 7.601007149999987, "y": 7.725022650000028 }, { "x": 5.061007150000137, "y": 7.725022650000028 }] }), jsxRuntime.jsx("silkscreentext", { text: "{NAME}", pcbX: "0.04450715mm", pcbY: "9.33411465mm", anchorAlignment: "center", fontSize: "1mm" }), jsxRuntime.jsx("courtyardoutline", { outline: [{ "x": -7.761992849999842, "y": 8.58411465000006 }, { "x": 7.851007149999987, "y": 8.58411465000006 }, { "x": 7.851007149999987, "y": -8.781485349999912 }, { "x": -7.761992849999842, "y": -8.781485349999912 }, { "x": -7.761992849999842, "y": 8.58411465000006 }] })] }), cadModel: {
objUrl: objPath$5,
pcbRotationOffset: 0,
modelOriginPosition: { x: 0.004997449999905257, y: 0.16199104999998815, z: -1.89 },
}, ...props }));
};
const pinLabels$7 = {
pin1: ["VIN"],
pin2: ["GND"],
pin3: ["ON"],
pin4: ["CT"],
pin5: ["QOD"],
pin6: ["VOUT"]
};
const TPS22918DBVR = (props) => {
return (jsxRuntime.jsx("chip", { pinLabels: pinLabels$7, supplierPartNumbers: {
"jlcpcb": [
"C131941"
]
}, manufacturerPartNumber: "TPS22918DBVR", footprint: jsxRuntime.jsxs("footprint", { children: [jsxRuntime.jsx("smtpad", { portHints: ["pin3"], pcbX: "1.35001mm", pcbY: "0.94996mm", width: "1.0999978mm", height: "0.5999988mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin2"], pcbX: "1.35001mm", pcbY: "-0mm", width: "1.0999978mm", height: "0.5999988mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin1"], pcbX: "1.35001mm", pcbY: "-0.94996mm", width: "1.0999978mm", height: "0.5999988mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin6"], pcbX: "-1.35001mm", pcbY: "-0.94996mm", width: "1.0999978mm", height: "0.5999988mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin5"], pcbX: "-1.35001mm", pcbY: "-0mm", width: "1.0999978mm", height: "0.5999988mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin4"], pcbX: "-1.35001mm", pcbY: "0.94996mm", width: "1.0999978mm", height: "0.5999988mm", shape: "rect" }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -0.899998200000141, "y": 1.5499080000000731 }, { "x": 0.9000236000000541, "y": 1.5499080000000731 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -0.899998200000141, "y": -1.5501111999999466 }, { "x": 0.9000236000000541, "y": -1.5501111999999466 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 1.5240000000001146, "y": -1.6510000000000673 }, { "x": 1.5196725799386286, "y": -1.6838700187280438 }, { "x": 1.5069852262805625, "y": -1.7145000000000437 }, { "x": 1.4868025612107658, "y": -1.740802561210785 }, { "x": 1.4604999999999109, "y": -1.7609852262806953 }, { "x": 1.4298700187280247, "y": -1.7736725799387614 }, { "x": 1.3969999999999345, "y": -1.77800000000002 }, { "x": 1.3641299812720717, "y": -1.7736725799387614 }, { "x": 1.3334999999999582, "y": -1.7609852262806953 }, { "x": 1.3071974387893306, "y": -1.740802561210785 }, { "x": 1.2870147737194202, "y": -1.7145000000000437 }, { "x": 1.2743274200612404, "y": -1.6838700187280438 }, { "x": 1.2699999999999818, "y": -1.6510000000000673 }, { "x": 1.2743274200612404, "y": -1.6181299812719772 }, { "x": 1.2870147737194202, "y": -1.5874999999999773 }, { "x": 1.3071974387893306, "y": -1.5611974387893497 }, { "x": 1.3334999999999582, "y": -1.541014773719553 }, { "x": 1.3641299812720717, "y": -1.5283274200613732 }, { "x": 1.3969999999999345, "y": -1.524000000000001 }, { "x": 1.4298700187280247, "y": -1.5283274200613732 }, { "x": 1.4604999999999109, "y": -1.541014773719553 }, { "x": 1.4868025612107658, "y": -1.5611974387893497 }, { "x": 1.5069852262805625, "y": -1.5874999999999773 }, { "x": 1.5196725799386286, "y": -1.6181299812719772 }, { "x": 1.5240000000001146, "y": -1.6510000000000673 }] }), jsxRuntime.jsx("silkscreentext", { text: "{NAME}", pcbX: "0.012446mm", pcbY: "2.562354mm", anchorAlignment: "center", fontSize: "1mm" }), jsxRuntime.jsx("courtyardoutline", { outline: [{ "x": -2.1425540000000183, "y": 1.8123540000000276 }, { "x": 2.167445999999927, "y": 1.8123540000000276 }, { "x": 2.167445999999927, "y": -2.015045999999984 }, { "x": -2.1425540000000183, "y": -2.015045999999984 }, { "x": -2.1425540000000183, "y": 1.8123540000000276 }] })] }), cadModel: {
objUrl: objPath$6,
pcbRotationOffset: 180,
modelOriginPosition: { x: 0.000025399999913133797, y: -889000000370288e-19, z: -0.048939 },
}, ...props }));
};
const pinLabels$6 = {
pin1: ["IO1"],
pin2: ["IO2"],
pin3: ["GND2"],
pin4: ["IO3"],
pin5: ["IO4"],
pin6: ["NC1"],
pin7: ["NC2"],
pin8: ["GND1"],
pin9: ["NC3"],
pin10: ["NC4"]
};
const TPD4E02B04DQAR = (props) => {
return (jsxRuntime.jsx("chip", { pinLabels: pinLabels$6, symbol: undefined, supplierPartNumbers: {
"jlcpcb": [
"C106794"
]
}, manufacturerPartNumber: "TPD4E02B04DQAR", footprint: jsxRuntime.jsxs("footprint", { children: [jsxRuntime.jsx("smtpad", { portHints: ["pin6"], pcbX: "0.999998mm", pcbY: "0.3999992mm", width: "0.1999996mm", height: "0.5649976mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin7"], pcbX: "0.500126mm", pcbY: "0.3999992mm", width: "0.1999996mm", height: "0.5649976mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin8"], pcbX: "0mm", pcbY: "0.3999992mm", width: "0.3999992mm", height: "0.5649976mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin9"], pcbX: "-0.499872mm", pcbY: "0.3999992mm", width: "0.1999996mm", height: "0.5649976mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin10"], pcbX: "-0.999998mm", pcbY: "0.3999992mm", width: "0.1999996mm", height: "0.5649976mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin5"], pcbX: "0.999998mm", pcbY: "-0.3999992mm", width: "0.1999996mm", height: "0.5649976mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin4"], pcbX: "0.500126mm", pcbY: "-0.3999992mm", width: "0.1999996mm", height: "0.5649976mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin3"], pcbX: "0mm", pcbY: "-0.3999992mm", width: "0.3999992mm", height: "0.5649976mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin2"], pcbX: "-0.499872mm", pcbY: "-0.3999992mm", width: "0.1999996mm", height: "0.5649976mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin1"], pcbX: "-0.999998mm", pcbY: "-0.3999992mm", width: "0.1999996mm", height: "0.5649976mm", shape: "rect" }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -1.3261847999999645, "y": -0.5762243999998873 }, { "x": -1.3261847999999645, "y": 0.576224400000001 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 1.3261848000000782, "y": 0.576224400000001 }, { "x": 1.3261848000000782, "y": -0.5762243999998873 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -0.8999219999999468, "y": -1.019047999999998 }, { "x": -0.9033320070083164, "y": -1.044949574757652 }, { "x": -0.9133296416908934, "y": -1.069086000000084 }, { "x": -0.9292335817659705, "y": -1.0898124182340325 }, { "x": -0.9499600000000328, "y": -1.1057163583091096 }, { "x": -0.9740964252422373, "y": -1.1157139929916866 }, { "x": -0.9999979999998914, "y": -1.1191239999999425 }, { "x": -1.0258995747575455, "y": -1.1157139929916866 }, { "x": -1.050036000000091, "y": -1.1057163583091096 }, { "x": -1.070762418233926, "y": -1.0898124182340325 }, { "x": -1.086666358309003, "y": -1.069086000000084 }, { "x": -1.09666399299158, "y": -1.044949574757652 }, { "x": -1.100073999999836, "y": -1.019047999999998 }, { "x": -1.09666399299158, "y": -0.9931464252423439 }, { "x": -1.086666358309003, "y": -0.9690100000000257 }, { "x": -1.070762418233926, "y": -0.9482835817659634 }, { "x": -1.050036000000091, "y": -0.9323796416908863 }, { "x": -1.0258995747575455, "y": -0.9223820070083093 }, { "x": -0.9999979999998914, "y": -0.9189720000000534 }, { "x": -0.9740964252422373, "y": -0.9223820070083093 }, { "x": -0.9499600000000328, "y": -0.9323796416908863 }, { "x": -0.9292335817659705, "y": -0.9482835817659634 }, { "x": -0.9133296416908934, "y": -0.9690100000000257 }, { "x": -0.9033320070083164, "y": -0.9931464252423439 }, { "x": -0.8999219999999468, "y": -1.019047999999998 }] }), jsxRuntime.jsx("silkscreentext", { text: "{NAME}", pcbX: "0mm", pcbY: "1.6858mm", anchorAlignment: "center", fontSize: "1mm" }), jsxRuntime.jsx("courtyardoutline", { outline: [{ "x": -1.5707999999998492, "y": 0.935799999999972 }, { "x": 1.570799999999963, "y": 0.935799999999972 }, { "x": 1.570799999999963, "y": -1.3676000000000386 }, { "x": -1.5707999999998492, "y": -1.3676000000000386 }, { "x": -1.5707999999998492, "y": 0.935799999999972 }] })] }), cadModel: {
objUrl: objPath$7,
pcbRotationOffset: 90,
modelOriginPosition: { x: 0.000012700000070253736, y: 0.000012699999956566899, z: 0 },
}, ...props }));
};
const pinLabels$5 = {
pin1: ["VCCA"],
pin2: ["GND"],
pin3: ["A"],
pin4: ["B"],
pin5: ["DIR"],
pin6: ["VCCB"]
};
const SN74AXC1T45DBVR = (props) => {
return (jsxRuntime.jsx("chip", { pinLabels: pinLabels$5, supplierPartNumbers: {
"jlcpcb": [
"C2677376"
]
}, manufacturerPartNumber: "SN74AXC1T45DBVR", footprint: jsxRuntime.jsxs("footprint", { children: [jsxRuntime.jsx("smtpad", { portHints: ["pin6"], pcbX: "-0.94996mm", pcbY: "1.1999976mm", width: "0.5500116mm", height: "1.1999976mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin4"], pcbX: "0.94996mm", pcbY: "1.1999976mm", width: "0.5500116mm", height: "1.1999976mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin3"], pcbX: "0.94996mm", pcbY: "-1.1999976mm", width: "0.5500116mm", height: "1.1999976mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin2"], pcbX: "0mm", pcbY: "-1.1999976mm", width: "0.5500116mm", height: "1.1999976mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin1"], pcbX: "-0.94996mm", pcbY: "-1.1999976mm", width: "0.5500116mm", height: "1.1999976mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin5"], pcbX: "0mm", pcbY: "1.1999976mm", width: "0.5500116mm", height: "1.1999976mm", shape: "rect" }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -1.4999969999999934, "y": -0.7999984000000069 }, { "x": -1.4999969999999934, "y": 0.7999984000000069 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 1.4999970000000076, "y": 0.7999984000000069 }, { "x": 1.4999970000000076, "y": -0.7999984000000069 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -0.8481060000000014, "y": -2.1249639999999914 }, { "x": -0.8524334200612742, "y": -2.1578340187280105 }, { "x": -0.8651207737193829, "y": -2.188463999999996 }, { "x": -0.8853034387893075, "y": -2.2147665612106806 }, { "x": -0.9116059999999919, "y": -2.2349492262806194 }, { "x": -0.9422359812719776, "y": -2.2476365799386997 }, { "x": -0.9751059999999825, "y": -2.2519639999999868 }, { "x": -1.0079760187280158, "y": -2.2476365799386997 }, { "x": -1.0386060000000015, "y": -2.2349492262806194 }, { "x": -1.0649085612107, "y": -2.2147665612106806 }, { "x": -1.0850912262806105, "y": -2.188463999999996 }, { "x": -1.0977785799387192, "y": -2.1578340187280105 }, { "x": -1.102105999999992, "y": -2.1249639999999914 }, { "x": -1.0977785799387192, "y": -2.092093981271958 }, { "x": -1.0850912262806105, "y": -2.0614639999999866 }, { "x": -1.0649085612107, "y": -2.0351614387893022 }, { "x": -1.0386060000000015, "y": -2.0149787737193634 }, { "x": -1.0079760187280158, "y": -2.002291420061283 }, { "x": -0.9751059999999825, "y": -1.997963999999996 }, { "x": -0.9422359812719776, "y": -2.002291420061283 }, { "x": -0.9116059999999919, "y": -2.0149787737193634 }, { "x": -0.8853034387893075, "y": -2.0351614387893022 }, { "x": -0.8651207737193829, "y": -2.0614639999999866 }, { "x": -0.8524334200612742, "y": -2.092093981271958 }, { "x": -0.8481060000000014, "y": -2.1249639999999914 }] }), jsxRuntime.jsx("silkscreentext", { text: "{NAME}", pcbX: "0mm", pcbY: "2.8034mm", anchorAlignment: "center", fontSize: "1mm" }), jsxRuntime.jsx("courtyardoutline", { outline: [{ "x": -1.7485999999999962, "y": 2.0534000000000106 }, { "x": 1.7486000000000104, "y": 2.0534000000000106 }, { "x": 1.7486000000000104, "y": -2.5105999999999824 }, { "x": -1.7485999999999962, "y": -2.5105999999999824 }, { "x": -1.7485999999999962, "y": 2.0534000000000106 }] })] }), cadModel: {
objUrl: objPath$8,
pcbRotationOffset: 90,
modelOriginPosition: { x: 0, y: 0.000012700000013410317, z: 0.050795 },
}, ...props }));
};
const pinLabels$4 = {
pin1: ["IO1"],
pin2: ["IO2"],
pin3: ["GND"]
};
const TPD2E2U06DCKR = (props) => {
return (jsxRuntime.jsx("chip", { pinLabels: pinLabels$4, supplierPartNumbers: {
"jlcpcb": [
"C1855726"
]
}, manufacturerPartNumber: "TPD2E2U06DCKR", footprint: jsxRuntime.jsxs("footprint", { children: [jsxRuntime.jsx("smtpad", { portHints: ["pin1"], pcbX: "-0.65024mm", pcbY: "-0.94996mm", width: "0.6999986mm", height: "0.999998mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin2"], pcbX: "0.65024mm", pcbY: "-0.94996mm", width: "0.6999986mm", height: "0.999998mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin3"], pcbX: "-0.000254mm", pcbY: "0.94996mm", width: "0.6999986mm", height: "0.999998mm", shape: "rect" }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 1.1998705999999402, "y": 0.7000239999999849 }, { "x": 1.1998705999999402, "y": -0.6999478000000181 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -1.200124599999981, "y": 0.7000239999999849 }, { "x": -0.5042915999999877, "y": 0.7000239999999849 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 0.5040376000000606, "y": 0.7000239999999849 }, { "x": 1.1936729999999898, "y": 0.7000239999999849 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -1.200124599999981, "y": 0.7000239999999849 }, { "x": -1.200124599999981, "y": -0.6802374000001237 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 1.1998705999999402, "y": -0.6999478000000181 }, { "x": 1.1539728000000196, "y": -0.6999478000000181 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 0.1457198000000517, "y": -0.6999478000000181 }, { "x": -0.14597379999997884, "y": -0.6999478000000181 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -1.1542776000000003, "y": -0.6999478000000181 }, { "x": -1.200124599999981, "y": -0.6999478000000181 }] }), jsxRuntime.jsx("silkscreentext", { text: "{NAME}", pcbX: "-0.225552mm", pcbY: "2.438148mm", anchorAlignment: "center", fontSize: "1mm" }), jsxRuntime.jsx("courtyardoutline", { outline: [{ "x": -1.885251999999923, "y": 1.6881479999999556 }, { "x": 1.4341479999999365, "y": 1.6881479999999556 }, { "x": 1.4341479999999365, "y": -1.7074519999999893 }, { "x": -1.885251999999923, "y": -1.7074519999999893 }, { "x": -1.885251999999923, "y": 1.6881479999999556 }] })] }), cadModel: {
objUrl: objPath$9,
pcbRotationOffset: 90,
modelOriginPosition: { x: 0.000038099999983387534, y: -12699999979304266e-20, z: -0.1 },
}, ...props }));
};
const pinLabels$3 = {
pin1: ["pin1"],
pin2: ["pin2"],
pin3: ["pin3"],
pin4: ["pin4"],
pin5: ["pin5"],
pin6: ["pin6"]
};
const S4B_PH_SM4_K_TB_LF__SN_ = (props) => {
return (jsxRuntime.jsx("chip", { pinLabels: pinLabels$3, supplierPartNumbers: {
"jlcpcb": [
"C265332"
]
}, manufacturerPartNumber: "S4B_PH_SM4_K_TB_LF__SN_", footprint: jsxRuntime.jsxs("footprint", { children: [jsxRuntime.jsx("smtpad", { portHints: ["pin1"], pcbX: "3.002026mm", pcbY: "-3.2503745mm", width: "0.999998mm", height: "2.999994mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin2"], pcbX: "0.999998mm", pcbY: "-3.2503745mm", width: "0.999998mm", height: "2.999994mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin3"], pcbX: "-0.999998mm", pcbY: "-3.2503745mm", width: "0.999998mm", height: "2.999994mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin4"], pcbX: "-2.999994mm", pcbY: "-3.2503745mm", width: "0.999998mm", height: "2.999994mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin5"], pcbX: "-5.40004mm", pcbY: "2.7503755mm", width: "1.999996mm", height: "3.999992mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin6"], pcbX: "5.40004mm", pcbY: "2.7503755mm", width: "1.999996mm", height: "3.999992mm", shape: "rect" }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -3.7077396000001954, "y": -1.6496411000000535 }, { "x": -5.001260000000002, "y": -1.6496411000000535 }, { "x": -5.001260000000002, "y": -1.6486505000001443 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 6.000013399999943, "y": -1.6496411000000535 }, { "x": 3.70977159999984, "y": -1.6496411000000535 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 3.9999919999999065, "y": -1.6496157000001404 }, { "x": 4.5000164000000495, "y": -0.7496175000001131 }, { "x": 5.000015399999938, "y": -1.6496411000000535 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -5.001260000000002, "y": -1.6486505000001443 }, { "x": -5.001260000000002, "y": -3.248850500000117 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -4.999990000000025, "y": -3.2496125000001257 }, { "x": -5.998209999999972, "y": -3.2496125000001257 }, { "x": -5.998209999999972, "y": -1.6494125000000395 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 6.000013399999943, "y": -3.2496125000001257 }, { "x": 5.000015399999938, "y": -3.2496125000001257 }, { "x": 5.000015399999938, "y": -1.6496157000001404 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 6.000013399999943, "y": -1.6496157000001404 }, { "x": 6.000013399999943, "y": -3.2496125000001257 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -5.998209999999972, "y": -1.6494125000000395 }, { "x": -5.99998800000003, "y": -1.6494125000000395 }, { "x": -5.99998800000003, "y": 0.5192394999999124 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 6.000013399999943, "y": -1.6496411000000535 }, { "x": 5.999987999999917, "y": -1.6496411000000535 }, { "x": 5.999987999999917, "y": 0.5192394999999124 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -4.168902000000003, "y": 4.350372300000004 }, { "x": 4.168901999999889, "y": 4.350372300000004 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 4.20999919999997, "y": -2.4203787000001284 }, { "x": 4.204887651423405, "y": -2.4592047661216156 }, { "x": 4.189901349282536, "y": -2.4953849000002037 }, { "x": 4.166061585301918, "y": -2.5264534853021132 }, { "x": 4.134992999999895, "y": -2.550293249282845 }, { "x": 4.0988128661214205, "y": -2.565279551423714 }, { "x": 4.059986799999933, "y": -2.5703911000000517 }, { "x": 4.021160733878332, "y": -2.565279551423714 }, { "x": 3.984980599999858, "y": -2.550293249282845 }, { "x": 3.953912014697835, "y": -2.5264534853021132 }, { "x": 3.9300722507172168, "y": -2.4953849000002037 }, { "x": 3.9150859485763476, "y": -2.4592047661216156 }, { "x": 3.9099743999998964, "y": -2.4203787000001284 }, { "x": 3.9150859485763476, "y": -2.3815526338786412 }, { "x": 3.9300722507172168, "y": -2.3453724999999395 }, { "x": 3.953912014697835, "y": -2.3143039146981437 }, { "x": 3.984980599999858, "y": -2.290464150717412 }, { "x": 4.021160733878332, "y": -2.275477848576543 }, { "x": 4.059986799999933, "y": -2.2703663000000915 }, { "x": 4.0988128661214205, "y": -2.275477848576543 }, { "x": 4.134992999999895, "y": -2.290464150717412 }, { "x": 4.166061585301918, "y": -2.3143039146981437 }, { "x": 4.189901349282536, "y": -2.3453724999999395 }, { "x": 4.204887651423405, "y": -2.3815526338786412 }, { "x": 4.20999919999997, "y": -2.4203787000001284 }] }), jsxRuntime.jsx("silkscreentext", { text: "{NAME}", pcbX: "0mm", pcbY: "5.7419895mm", anchorAlignment: "center", fontSize: "1mm" }), jsxRuntime.jsx("courtyardoutline", { outline: [{ "x": -6.650800000000004, "y": 4.9919894999999315 }, { "x": 6.6508000000001175, "y": 4.9919894999999315 }, { "x": 6.6508000000001175, "y": -5.210810500000093 }, { "x": -6.650800000000004, "y": -5.210810500000093 }, { "x": -6.650800000000004, "y": 4.9919894999999315 }] })] }), cadModel: {
objUrl: objPath$a,
pcbRotationOffset: 180,
modelOriginPosition: { x: 0, y: 2.6236220999999436, z: 0.05 },
}, ...props }));
};
const pinLabels$2 = {
pin1: ["pin1"],
pin2: ["pin2"],
pin3: ["pin3"],
pin4: ["pin4"]
};
const SKRPACE010 = (props) => {
const { name = "SW1", ...restProps } = props;
return (jsxRuntime.jsx("pushbutton", { name: name, pinLabels: pinLabels$2, supplierPartNumbers: {
"jlcpcb": [
"C139797"
]
}, manufacturerPartNumber: "SKRPACE010", footprint: jsxRuntime.jsxs("footprint", { children: [jsxRuntime.jsx("smtpad", { portHints: ["pin1"], pcbX: "-2.100072mm", pcbY: "1.074928mm", width: "1.0500106mm", height: "0.6999986mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin2"], pcbX: "2.100072mm", pcbY: "1.074928mm", width: "1.0500106mm", height: "0.6999986mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin3"], pcbX: "-2.100072mm", pcbY: "-1.074928mm", width: "1.0500106mm", height: "0.6999986mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin4"], pcbX: "2.100072mm", pcbY: "-1.074928mm", width: "1.0500106mm", height: "0.6999986mm", shape: "rect" }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -0.5080000000000382, "y": 1.0160000000000764 }, { "x": 0.5079999999999245, "y": 1.0160000000000764 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -0.5080000000000382, "y": -1.0159999999999627 }, { "x": 0.5079999999999245, "y": -1.0159999999999627 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 2.199893999999972, "y": 0.5438140000001113 }, { "x": 2.199893999999972, "y": -0.5438139999999976 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 1.3664184000000432, "y": 1.5238729999999805 }, { "x": -1.366418400000157, "y": 1.5238729999999805 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -2.1998940000000857, "y": 0.5438140000001113 }, { "x": -2.1998940000000857, "y": -0.5438139999999976 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -1.3810995999999705, "y": -1.5499079999999594 }, { "x": 1.3810995999998568, "y": -1.5499079999999594 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 0.5079999999999245, "y": 1.0160000000000764 }, { "x": 0.26485528508385414, "y": 0.9864768865048745 }, { "x": 0.035841257203401256, "y": 0.8996233220636896 }, { "x": -0.16573262077258732, "y": 0.7604869201419433 }, { "x": -0.32815160774794094, "y": 0.5771537826788062 }, { "x": -0.4419765025684228, "y": 0.36027856523526225 }, { "x": -0.5005922160837599, "y": 0.1224652671394324 }, { "x": -0.5005922160837599, "y": -0.1224652671394324 }, { "x": -0.4419765025684228, "y": -0.36027856523514856 }, { "x": -0.32815160774794094, "y": -0.5771537826788062 }, { "x": -0.16573262077258732, "y": -0.7604869201418296 }, { "x": 0.035841257203401256, "y": -0.8996233220635759 }, { "x": 0.26485528508385414, "y": -0.9864768865047608 }, { "x": 0.5079999999999245, "y": -1.0159999999999627 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -0.5080000000000382, "y": -1.0159999999999627 }, { "x": -0.26485528508374045, "y": -0.9864768865047608 }, { "x": -0.03584125720362863, "y": -0.8996233220635759 }, { "x": 0.165732620772701, "y": -0.7604869201418296 }, { "x": 0.32815160774794094, "y": -0.5771537826788062 }, { "x": 0.4419765025683091, "y": -0.36027856523514856 }, { "x": 0.5005922160835325, "y": -0.1224652671394324 }, { "x": 0.5005922160835325, "y": 0.1224652671394324 }, { "x": 0.4419765025683091, "y": 0.36027856523526225 }, { "x": 0.32815160774794094, "y": 0.5771537826788062 }, { "x": 0.165732620772701, "y": 0.7604869201419433 }, { "x": -0.03584125720362863, "y": 0.8996233220636896 }, { "x": -0.26485528508374045, "y": 0.9864768865048745 }, { "x": -0.5080000000000382, "y": 1.0160000000000764 }] }), jsxRuntime.jsx("silkscreentext", { text: "{NAME}", pcbX: "0.0127mm", pcbY: "2.6256mm", anchorAlignment: "center", fontSize: "1mm" }), jsxRuntime.jsx("courtyardoutline", { outline: [{ "x": -2.8662000000001626, "y": 1.8756000000000768 }, { "x": 2.891599999999812, "y": 1.8756000000000768 }, { "x": 2.891599999999812, "y": -1.8501999999998588 }, { "x": -2.8662000000001626, "y": -1.8501999999998588 }, { "x": -2.8662000000001626, "y": 1.8756000000000768 }] })] }), cadModel: {
objUrl: objPath$b,
pcbRotationOffset: 0,
modelOriginPosition: { x: 0.000012700000070253736, y: 0.00012700000002041634, z: -0.01 },
}, ...restProps }));
};
const pinLabels$1 = {
pin1: ["A"],
pin2: ["B"],
pin3: ["GND"],
pin4: ["Y"],
pin5: ["VCC"]
};
const SN74LVC1G08DBVR = (props) => {
return (jsxRuntime.jsx("chip", { pinLabels: pinLabels$1, supplierPartNumbers: {
"jlcpcb": [
"C7666"
]
}, manufacturerPartNumber: "SN74LVC1G08DBVR", footprint: jsxRuntime.jsxs("footprint", { children: [jsxRuntime.jsx("smtpad", { portHints: ["pin5"], pcbX: "-1.300099mm", pcbY: "-0.94996mm", width: "1.0999978mm", height: "0.5999988mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin4"], pcbX: "-1.300099mm", pcbY: "0.94996mm", width: "1.0999978mm", height: "0.5999988mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin3"], pcbX: "1.300099mm", pcbY: "0.94996mm", width: "1.0999978mm", height: "0.5999988mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin2"], pcbX: "1.300099mm", pcbY: "-0mm", width: "1.0999978mm", height: "0.5999988mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin1"], pcbX: "1.300099mm", pcbY: "-0.94996mm", width: "1.0999978mm", height: "0.5999988mm", shape: "rect" }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 0.8999728000000005, "y": -1.404111999999941 }, { "x": 0.8999728000000005, "y": -1.5500604000000067 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 0.8999728000000005, "y": -0.45412660000010874 }, { "x": 0.8999728000000005, "y": -0.4958079999998972 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 0.8999728000000005, "y": 0.4958079999998972 }, { "x": 0.8999728000000005, "y": 0.45415200000002187 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 0.8999728000000005, "y": 1.5499587999998994 }, { "x": 0.8999728000000005, "y": 1.404111999999941 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -0.9000489999999672, "y": -1.404111999999941 }, { "x": -0.9000489999999672, "y": -1.5500604000000067 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -0.9000489999999672, "y": 0.4958079999998972 }, { "x": -0.9000489999999672, "y": -0.4958334000000377 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -0.9000489999999672, "y": 1.5499587999998994 }, { "x": -0.9000489999999672, "y": 1.4040866000000278 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -0.9000489999999672, "y": 1.5499587999998994 }, { "x": 0.8999728000000005, "y": 1.5499587999998994 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -0.9000489999999672, "y": -1.5500604000000067 }, { "x": 0.8999728000000005, "y": -1.5500604000000067 }] }), jsxRuntime.jsx("silkscreentext", { text: "{NAME}", pcbX: "0.012319mm", pcbY: "2.562354mm", anchorAlignment: "center", fontSize: "1mm" }), jsxRuntime.jsx("courtyardoutline", { outline: [{ "x": -2.091880999999944, "y": 1.8123540000000276 }, { "x": 2.1165190000000393, "y": 1.8123540000000276 }, { "x": 2.1165190000000393, "y": -1.786446000000069 }, { "x": -2.091880999999944, "y": -1.786446000000069 }, { "x": -2.091880999999944, "y": 1.8123540000000276 }] })] }), cadModel: {
objUrl: objPath$c,
pcbRotationOffset: 180,
modelOriginPosition: { x: 0, y: -12700000070253736e-21, z: -0.049083 },
}, ...props }));
};
const pinLabels = {
pin1: ["cathode", "neg"],
pin2: ["anode", "pos"]
};
const LTST_C190KGKT = (props) => {
const { name = "LED1", ...restProps } = props;
return (jsxRuntime.jsx("led", { name: name, pinLabels: pinLabels, supplierPartNumbers: {
"jlcpcb": [
"C125094"
]
}, manufacturerPartNumber: "LTST_C190KGKT", footprint: jsxRuntime.jsxs("footprint", { children: [jsxRuntime.jsx("smtpad", { portHints: ["pin2", "anode", "pos"], pcbX: "0.7489952mm", pcbY: "0.000127mm", width: "0.7999984mm", height: "0.7999984mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin1", "cathode", "neg"], pcbX: "-0.7489952mm", pcbY: "-0.000127mm", width: "0.7999984mm", height: "0.7999984mm", shape: "rect" }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 0.22042119999991883, "y": -0.3235197999999855 }, { "x": 0.21046439999986433, "y": -0.3235197999999855 }, { "x": -0.11958320000007916, "y": 0.006527799999958006 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 0.22042119999991883, "y": 0.3565143999999236 }, { "x": 0.22042119999991883, "y": 0.346532199999956 }, { "x": -0.11958320000007916, "y": 0.006527799999958006 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 0.22042119999991883, "y": 0.3565143999999236 }, { "x": 0.22042119999991883, "y": -0.3235197999999855 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 0.24046179999993456, "y": 0.7565898000000288 }, { "x": 1.3904721999999765, "y": 0.7565898000000288 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 0.24046179999993456, "y": -0.7435342000001128 }, { "x": 1.3904721999999765, "y": -0.7435342000001128 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 1.3904721999999765, "y": 0.7564882000000352 }, { "x": 1.3904721999999765, "y": -0.7234428000000435 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -0.13954760000001443, "y": -0.7458455999999387 }, { "x": -1.1896598000000722, "y": -0.7458455999999387 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -1.4896084000000656, "y": -0.3457701999999472 }, { "x": -1.4896084000000656, "y": -0.44579539999995177 }, { "x": -1.1896598000000722, "y": -0.7458455999999387 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -1.4896084000000656, "y": 0.3541776000000709 }, { "x": -1.4896084000000656, "y": -0.3457701999999472 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -1.4896084000000656, "y": 0.3541776000000709 }, { "x": -1.4896084000000656, "y": 0.45432980000009593 }, { "x": -1.1896598000000722, "y": 0.7542784000000893 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -0.13954760000001443, "y": 0.7542784000000893 }, { "x": -1.1896598000000722, "y": 0.7542784000000893 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 0.22042119999991883, "y": 0.006527799999958006 }, { "x": -0.11958320000007916, "y": 0.006527799999958006 }] }), jsxRuntime.jsx("silkscreentext", { text: "{NAME}", pcbX: "-0.066675mm", pcbY: "1.767715mm", anchorAlignment: "center", fontSize: "1mm" }), jsxRuntime.jsx("courtyardoutline", { outline: [{ "x": -1.7517750000001797, "y": 1.0177150000000665 }, { "x": 1.618425000000002, "y": 1.0177150000000665 }, { "x": 1.618425000000002, "y": -0.9808849999999438 }, { "x": -1.7517750000001797, "y": -0.9808849999999438 }, { "x": -1.7517750000001797, "y": 1.0177150000000665 }] })] }), cadModel: {
objUrl: objPath$d,
pcbRotationOffset: 0,
modelOriginPosition: { x: -12700000070253736e-21, y: 0.000012699999956566899, z: -0.01 },
}, ...restProps }));
};
/** Every physical pin is annotated, including deliberately unused pins. */
const pinMetadata = (count, connected, attributes = {}) => ({
noConnect: Array.from({ length: count }, (_, index) => index + 1)
.filter((pin) => !connected.includes(pin))
.map((pin) => `pin${pin}`),
pinAttributes: Object.fromEntries(Array.from({ length: count }, (_, index) => [
`pin${index + 1}`,
attributes[index + 1] ?? {},
])),
});
const socVssPins = [1, 2, 4, 10, 13, 16, 19, 22, 23, 24, 28, 40, 43, 46, 53, 56, 60, 77, 78, 79, 80, 81, 85, 86, 95, 96, 97, 106, 107, 108, 111, 114, 115, 116, 120, 126, 130, 132, 151, 152, 156, 166, 168, 170, 172, 174, 180, 187, 201, 203, 204, 205, 207, 218, 222, 226, 228, 231, 232, 237, 242, 243, 250, 258, 259, 261, 264, 265, 266, 268, 269, 274, 278, 279, 288, 289, 291, 293, 294, 295, 296, 299, 311, 312, 317, 325, 328, 334, 348, 350, 351, 352, 361, 364, 369, 372, 373];
const socFunctionalGroundPins = [112, 113, 129, 208, 245, 262, 263, 280, 281, 282, 283, 371];
const socGroundPins = [...socVssPins, ...socFunctionalGroundPins];
const socCore075Pins = [142, 143, 144, 145, 153, 155, 171, 186, 188, 206, 219, 220, 221, 229, 230];
const socRtc075Pins = [248];
const socDdr11Pins = [167, 184, 185, 202, 217];
const socFixed18Pins = [109, 128, 131, 146, 154, 169, 173, 190, 223, 233, 246, 249];
const socFixed33Pins = [127];
const socCapVddsPins = [110, 141, 157, 189, 260];
const socAttributes = Object.fromEntries([
...socGroundPins.map((pin) => [pin, { requiresGround: true }]),
...[...socCore075Pins, ...socRtc075Pins, ...socDdr11Pins, ...socFixed18Pins, ...socFixed33Pins, 244, 267]
.map((pin) => [pin, { requiresPower: true }]),
[247, { providesPower: true }],
...socCapVddsPins.map((pin) => [pin, { providesPower: true }]),
]);
const socConnected = Array.from(new Set([
// MMC1 / microSD
29, 64, 244, 247, 267, 300, 301, 302, 315, 316, 329,
// UART0, reset, oscillator, PMIC control
51, 54, 55, 68, 87, 101, 102, 118, 119, 310, 324, 326, 345, 346, 347, 349, 367, 368,
// LPDDR4 x16 interface plus the controller calibration resistor pin.
76, 91, 92, 93, 94, 103, 104, 105, 121, 122, 123, 124, 125, 139, 140,
149, 150, 162, 164, 165, 182, 215, 216, 236, 238, 255, 256, 257, 272,
273, 275, 276, 284, 285,
...socGroundPins, ...socCore075Pins, ...socRtc075Pins, ...socDdr11Pins,
...socFixed18Pins, ...socFixed33Pins, ...socCapVddsPins,
]));
const ddrSignals = [
...Array.from({ length: 16 }, (_, bit) => [`DDR0_DQ${bit}`, `DQ${bit}`]),
["DDR0_DM0", "DMI0"], ["DDR0_DM1", "DMI1"],
["DDR0_DQS0", "DQS0_t"], ["DDR0_DQS0_n", "DQS0_c"],
["DDR0_DQS1", "DQS1_t"], ["DDR0_DQS1_n", "DQS1_c"],
["DDR0_A0", "CA0"], ["DDR0_A1", "CA1"], ["DDR0_A2", "CA2"],
["DDR0_A3", "CA3"], ["DDR0_A4", "CA4"], ["DDR0_A5", "CA5"],
["DDR0_CS0_n", "CS"], ["DDR0_CKE0", "CKE"],
["DDR0_CK0", "CK_t"], ["DDR0_CK0_n", "CK_c"], ["DDR0_RESET0_n", "RESET_n"],
];
const logicalTraces = [
// USB-C power-only input. A5/B5 are the independent CC pins; no USB data exists.
["U12.A9", "net.VBUS_RAW"], ["U12.B9", "net.VBUS_RAW"],
["U12.A12", "net.GND"], ["U12.B12", "net.GND"],
["U12.pin7", "net.GND"], ["U12.pin8", "net.GND"], ["U12.pin9", "net.GND"], ["U12.pin10", "net.GND"],
["U12.A5", "net.USB_CC1"], ["U12.B5", "net.USB_CC2"],
["U4.IN", "net.VBUS_RAW"], ["U4.OUT", "net.PROTECTED_5V"], ["U4.GND", "net.GND"],
["U4.EN_UVLO", "net.EFUSE_EN"], ["U4.OVLO", "net.EFUSE_OVLO"],
["U4.DVDT", "net.EFUSE_DVDT"], ["U4.ILM", "net.EFUSE_ILM"],
["D2.pin1", "net.VBUS_RAW"], ["D2.pin2", "net.GND"],
// TUSB320LAI UFP/sink-only CC detection. PORT=0 selects UFP, ADDR open selects GPIO mode,
// and EN_N=0 enables the internal Rd terminations. OUT1 is low only for 1.5A/3A Rp.
["U21.CC1", "net.USB_CC1"], ["U21.CC2", "net.USB_CC2"],
["U21.PORT", "net.GND"], ["U21.VBUS_DET", "net.TUSB_VBUS_DET"],
["U21.OUT1", "net.TUSB_OUT1"], ["U21.OUT2", "net.TUSB_OUT2"],
["U21.GND", "net.GND"], ["U21.EN_N", "net.GND"], ["U21.VDD", "net.VBUS_RAW"],
// Raw-VBUS-powered 3V3 rail keeps TUSB GPIO pull-ups and enable logic alive before U4.
["U22.IN", "net.VBUS_RAW"], ["U22.EN", "net.VBUS_RAW"], ["U22.GND", "net.GND"],
["U22.OUT", "net.AON_3V3"],
// OUT1 high -> inverter low -> eFuse off. Only an advertised 1.5A/3A source pulls OUT1 low.
["U23.A", "net.TUSB_OUT1"], ["U23.Y", "net.EFUSE_EN"],
["U23.VCC", "net.AON_3V3"], ["U23.GND", "net.GND"],
// Default-current attached state is OUT1=H, OUT2=L. Decode it for the red warning LED.
["U24.A", "net.TUSB_OUT2"], ["U24.Y", "net.TUSB_OUT2_N"],
["U24.VCC", "net.AON_3V3"], ["U24.GND", "net.GND"],
["U25.A", "net.TUSB_OUT1"], ["U25.B", "net.TUSB_OUT2_N"],
["U25.Y", "net.WEAK_USB_LED_A"], ["U25.VCC", "net.AON_3V3"], ["U25.GND", "net.GND"],
["D3.anode", "net.WEAK_USB_LED_A"], ["D3.cathode", "net.WEAK_USB_LED_K"],
["TP_CC1.pin1", "net.USB_CC1"], ["TP_CC2.pin1", "net.USB_CC2"],
["TP_TUSB_OUT1.pin1", "net.TUSB_OUT1"], ["TP_EFUSE_EN.pin1", "net.EFUSE_EN"],
["TP_PROTECTED_5V.pin1", "net.PROTECTED_5V"],
// PMIC and external 3V3 supply.
["U3.VSYS", "net.PROTECTED_5V"], ["U3.PVIN_B1", "net.PROTECTED_5V"],
["U3.PVIN_B2", "net.PROTECTED_5V"], ["U3.PVIN_B3", "net.PROTECTED_5V"],
["U3.AGND", "net.GND"], ["U3.pin10", "net.GND"], ["U3.pin22", "net.GND"],
["U3.VLDO1", "net.VDDA_1V8"], ["U3.VLDO2", "net.VDD_RTC_0V75"],
["U3.FB_B1", "net.VDD_CORE_0V75"], ["U3.FB_B2", "net.VDD_1V8"],
["U3.FB_B3", "net.VDD_DDR_1V1"], ["U3.VDD1P8", "net.PMIC_VDD1P8"],
["U3.EN", "net.PROTECTED_5V"],
["U3.LX_B1", "net.PMIC_BUCK1_SW"], ["U3.LX_B2", "net.PMIC_BUCK2_SW"], ["U3.LX_B3", "net.PMIC_BUCK3_SW"],
["U3.SDA", "net.PMIC_I2C_SDA"], ["U3.SCL", "net.PMIC_I2C_SCL"],
["U3.nRSTOUT", "net.PMIC_nRSTOUT"], ["U3.GPO", "net.RTC_PORz"], ["U3.nINT", "net.PMIC_nINT"],
["U3.GPIO", "net.EXT_3V3_EN"],
["U5.VIN", "net.PROTECTED_5V"], ["U5.EN", "net.EXT_3V3_EN"], ["U5.GND", "net.GND"],
["U5.SW", "net.EXT_3V3_SW"], ["L1.pin1", "net.EXT_3V3_SW"], ["L1.pin2", "net.VDD_3V3"],
["U5.FB", "net.EXT_3V3_FB"], ["U5.PG", "net.EXT_3V3_PG"],
// Reset/clock/control.
["U11.A", "net.PMIC_nRSTOUT"], ["U11.B", "net.EXT_3V3_PG"], ["U11.Y", "net.SOC_PORz"],
["U11.VCC", "net.VDD_1V8"], ["U11.GND", "net.GND"], ["U1.PORz", "net.SOC_PORz"],
["U1.RTC_PORz", "net.RTC_PORz"], ["U1.RESETz", "net.RESETz"], ["U1.pin55", "net.RESETSTATz"],
["U1.pin51", "net.PMIC_nINT"],
["SW1.pin1", "net.RESETz"], ["SW1.pin2", "net.GND"], ["SW1.pin3", "net.RESETz"], ["SW1.pin4", "net.GND"],
["Y1.pin1", "net.OSC_25M_XI"], ["Y1.pin3", "net.OSC_25M_XO"], ["Y1.pin2", "net.GND"], ["Y1.pin4", "net.GND"],
["U1.WKUP_OSC0_XI", "net.OSC_25M_XI"], ["U1.WKUP_OSC0_XO", "net.OSC_25M_XO"],
["U1.WKUP_I2C0_SDA", "net.PMIC_I2C_SDA"], ["U1.WKUP_I2C0_SCL", "net.PMIC_I2C_SCL"],
["U1.PMIC_LPM_EN0", "net.PMIC_LPM_EN"], ["U3.MODE_STBY", "net.PMIC_LPM_EN"],
["U1.pin102", "net.BOOTMODE15"], ["U1.pin101", "net.BOOTMODE14"],
["U1.pin118", "net.BOOTMODE13"], ["U1.pin119", "net.BOOTMODE12"],
["U1.pin346", "net.EXT_WAKEUP0_UNUSED"], ["U1.pin347", "net.EXT_WAKEUP1_UNUSED"],
// microSD, supply switch, and two four-channel ESD arrays.
["U6.VIN", "net.VDD_3V3"], ["U6.VOUT", "net.SD_3V3"], ["U6.ON", "net.SD_PWR_EN"], ["U6.GND", "net.GND"],
["U6.CT", "net.SD_LOADSW_CT"],
["U15.VDD", "net.SD_3V3"], ["U15.VSS", "net.GND"], ["U15.CLK", "net.SD_CLK"], ["U15.CMD", "net.SD_CMD"],
["U15.DAT0", "net.SD_DAT0"], ["U15.DAT1", "net.SD_DAT1"], ["U15.DAT2", "net.SD_DAT2"], ["U15.pin2", "net.SD_DAT3"],
["U15.SW_A", "net.SD_CARD_DETECT"], ["U15.SW_B", "net.GND"],
["U1.MMC1_CLK", "net.SD_CLK_SOC"], ["U1.MMC1_CMD", "net.SD_CMD"], ["U1.MMC1_DAT0", "net.SD_DAT0"],
["U1.MMC1_DAT1", "net.SD_DAT1"], ["U1.MMC1_DAT2", "net.SD_DAT2"], ["U1.MMC1_DAT3", "net.SD_DAT3"],
["U1.MMC1_SDCD", "net.SD_CD_SOC"], ["U1.pin64", "net.SD_PWR_GPIO"],
["U7.IO1", "net.SD_CLK"], ["U7.IO2", "net.SD_CMD"], ["U7.IO3", "net.SD_DAT0"], ["U7.IO4", "net.SD_DAT1"],
["U7.GND1", "net.GND"], ["U7.GND2", "net.GND"],
["U8.IO1", "net.SD_DAT2"], ["U8.IO2", "net.SD_DAT3"], ["U8.IO3", "net.SD_CARD_DETECT"],
["U8.GND1", "net.GND"], ["U8.GND2", "net.GND"],
// UART0: fixed-direction translators, 3V3-safe connector, ESD protection.
["U9.VCCA", "net.VDD_1V8"], ["U9.VCCB", "net.VDD_3V3"], ["U9.GND", "net.GND"], ["U9.DIR", "net.VDD_1V8"],
["U9.A", "net.UART0_TX_1V8"], ["U9.B", "net.UART_TX_3V3"], ["U1.UART0_TXD", "net.UART0_TX_1V8"],
["U10.VCCA", "net.VDD_1V8"], ["U10.VCCB", "net.VDD_3V3"], ["U10.GND", "net.GND"], ["U10.DIR", "net.GND"],
["U10.A", "net.UART0_RX_1V8"], ["U10.B", "net.UART_RX_3V3"], ["U1.UART0_RXD", "net.UART0_RX_1V8"],
["U16.IO1", "net.UART_TX_3V3"], ["U16.IO2", "net.UART_RX_3V3"], ["U16.GND", "net.GND"],
["U17.pin1", "net.UART_TX_3V3"], ["U17.pin2", "net.UART_RX_3V3"], ["U17.pin3", "net.GND"], ["U17.pin4", "net.VDD_3V3"],
["D1.anode", "net.VDD_3V3"], ["D1.cathode", "net.POWER_LED_K"],
// LPDDR4 reference/calibration pins are shunted locally, not routed together.
["U1.DDR0_CAL0", "net.DDR0_CAL0"], ["U2.ZQ", "net.LPDDR4_ZQ"],
["U2.ODT_CA", "net.LPDDR4_ODT_CA"],
// SD power defaults on for ROM boot and is released only after RESETSTATz.
["U20.A", "net.SD_PWR_GPIO"], ["U20.B", "net.RESETSTATz"],
["U20.Y", "net.SD_PWR_EN"], ["U20.VCC", "net.VDD_1V8"], ["U20.GND", "net.GND"],
["TP_BOOT15.pin1", "net.BOOTMODE15"], ["TP_BOOT14.pin1", "net.BOOTMODE14"],
["TP_BOOT13.pin1", "net.BOOTMODE13"], ["TP_BOOT12.pin1", "net.BOOTMODE12"],
];
const socGroundTraces = socGroundPins.map((pin) => [`U1.pin${pin}`, "net.GND"]);
const socRailTraces = [
...socCore075Pins.filter((pin) => pin !== 229).map((pin) => [`U1.pin${pin}`, "net.VDD_CORE_0V75"]),
...socRtc075Pins.map((pin) => [`U1.pin${pin}`, "net.VDD_RTC_0V75"]),
...socDdr11Pins.map((pin) => [`U1.pin${pin}`, "net.VDD_DDR_1V1"]),
...socFixed18Pins.filter((pin) => ![154, 169].includes(pin)).map((pin) => [`U1.pin${pin}`, "net.VDD_1V8"]),
...[154, 169].map((pin) => [`U1.pin${pin}`, "net.VDDA_1V8"]),
...socFixed33Pins.map((pin) => [`U1.pin${pin}`, "net.VDD_3V3"]),
["U1.pin267", "net.SD_3V3"], ["U1.pin247", "net.SD_IO"], ["U1.pin244", "net.SD_IO"],
["U1.pin110", "net.CAP_VDDS_GENERAL1"], ["U1.pin141", "net.CAP_VDDS_MMC0"],
["U1.pin157", "net.CAP_VDDS_GPMC"], ["U1.pin189", "net.CAP_VDDS_MMC2"],
["U1.pin260", "net.CAP_VDDS_MMC1"],
];
const decouplingCapacitors = [
// TEMP: disable capacitors beneath U1 until the breakout solver models component copper.
/*
// AM62L backside decoupling follows the projected supply-ball clusters.
// These are deliberately staggered to preserve signal escape channels; this
// is not a cosmetic grid. Bulk capacitors remain outside the package body.
{ name: "C1", value: "100nF", jlc: "C18164586", net: "VDD_CORE_0V75", x: 3.45, y: -1.2, side: "bottom" },
{ name: "C2", value: "100nF", jlc: "C18164586", net: "VDD_CORE_0V75", x: 1.25, y: -0.75, side: "bottom" },
{ name: "C3", value: "100nF", jlc: "C18164586", net: "VDD_CORE_0V75", x: 2.75, y: 0.25, side: "bottom" },
{ name: "C4", value: "100nF", jlc: "C18164586", net: "VDD_CORE_0V75", x: 1.05, y: 0.35, side: "bottom" },
{ name: "C5", value: "100nF", jlc: "C18164586", net: "VDD_CORE_0V75", x: 3.05, y: 1.45, side: "bottom" },
{ name: "C6", value: "100nF", jlc: "C18164586", net: "VDD_CORE_0V75", x: 1.35, y: 1.65, side: "bottom" },
{ name: "C7", value: "100nF", jlc: "C18164586", net: "VDD_CORE_0V75", x: 2.05, y: 2.85, side: "bottom" },
{ name: "C17", value: "100nF", jlc: "C18164586", net: "VDD_CORE_0V75", x: 0.05, y: 3.15, side: "bottom" },
{ name: "C18", value: "100nF", jlc: "C18164586", net: "VDD_CORE_0V75", x: 3.7, y: 2.55, side: "bottom" },
// Fixed 1.8V and 3.3V I/O clusters around the SoC perimeter.
{ name: "C8", value: "100nF", jlc: "C18164586", net: "VDD_1V8", x: 3.2, y: -2.7, side: "bottom" },
{ name: "C9", value: "100nF", jlc: "C18164586", net: "VDD_1V8", x: -0.1, y: -2.05, side: "bottom" },
{ name: "C10", value: "100nF", jlc: "C18164586", net: "VDD_1V8", x: -1.45, y: 0.45, side: "bottom" },
{ name: "C11", value: "100nF", jlc: "C18164586", net: "VDD_1V8", x: -1.55, y: 2.55, side: "bottom" },
{ name: "C13", value: "100nF", jlc: "C18164586", net: "VDD_3V3", x: 5.35, y: -1.25, side: "bottom" },
{ name: "C14", value: "100nF", jlc: "C18164586", net: "VDD_3V3", x: -2.75, y: -3.35, side: "bottom" },
{ name: "C15", value: "100nF", jlc: "C18164586", net: "VDD_3V3", x: -2.75, y: 4.05, side: "bottom" },
{ name: "C16", value: "100nF", jlc: "C18164586", net: "VDD_3V3", x: 6.25, y: -3.25, side: "bottom" },
{ name: "C20", value: "100nF", jlc: "C18164586", net: "VDD_3V3", x: 6.3, y: 4.2, side: "bottom" },
// One 100nF capacitor is dedicated to the SoC analog 1.8V pair, and one
// DDR capacitor is reserved for the SoC VDDS_DDR cluster instead of putting
// every capacitor beneath the memory package.
{ name: "C19", value: "100nF", jlc: "C18164586", net: "VDDA_1V8", x: 4.2, y: 0.8, side: "bottom" },
{ name: "C22", value: "100nF", jlc: "C18164586", net: "VDD_DDR_1V1", x: 5.15, y: 1.8, side: "bottom" },
*/
// TEMP: disable capacitors beneath U2 until the breakout solver models component copper.
/*
// LPDDR4 backside decoupling is split across the left/right VDD1 groups and
// the lower/middle/upper VDD2/VDDQ ball clusters.
{ name: "C21", value: "100nF", jlc: "C18164586", net: "VDD_1V8", x: 18.7, y: -2.8, side: "bottom" },
{ name: "C25", value: "100nF", jlc: "C18164586", net: "VDD_1V8", x: 25.7, y: -2.8, side: "bottom" },
{ name: "C29", value: "100nF", jlc: "C18164586", net: "VDD_1V8", x: 18.7, y: 4.7, side: "bottom" },
{ name: "C12", value: "100nF", jlc: "C18164586", net: "VDD_1V8", x: 25.7, y: 4.7, side: "bottom" },
{ name: "C23", value: "100nF", jlc: "C18164586", net: "VDD_DDR_1V1", x: 21.25, y: -2.55, side: "bottom" },
{ name: "C24", value: "100nF", jlc: "C18164586", net: "VDD_DDR_1V1", x: 27.9, y: -2.5, side: "bottom" },
{ name: "C26", value: "100nF", jlc: "C18164586", net: "VDD_DDR_1V1", x: 19.65, y: 0.3, rotation: 90, side: "bottom" },
{ name: "C27", value: "100nF", jlc: "C18164586", net: "VDD_DDR_1V1", x: 24.8, y: 0.2, rotation: 90, side: "bottom" },
{ name: "C28", value: "100nF", jlc: "C18164586", net: "VDD_DDR_1V1", x: 27.8, y: 0.5, rotation: 90, side: "bottom" },
{ name: "C30", value: "100nF", jlc: "C18164586", net: "VDD_DDR_1V1", x: 20.2, y: 4.3, side: "bottom" },
{ name: "C31", value: "100nF", jlc: "C18164586", net: "VDD_DDR_1V1", x: 23.7, y: 4.3, side: "bottom" },
{ name: "C32", value: "100nF", jlc: "C18164586", net: "VDD_DDR_1V1", x: 27.9, y: 4.3, side: "bottom" },
*/
// Input/output bulk and local peripheral bypass capacitors.
// Keep total receptacle-side VBUS capacitance within the 1uF-to-10uF UFP range.
{ name: "C33", value: "4.7uF", jlc: "C23733", net: "VBUS_RAW", x: -34.5, y: 2.5 },
{ name: "C34", value: "22uF", jlc: "C86295", net: "PROTECTED_5V", x: -7, y: 13.2 },
{ name: "C35", value: "10uF", jlc: "C19702", net: "PROTECTED_5V", x: -27, y: 2 },
{ name: "C36", value: "22uF", jlc: "C86295", net: "VDD_CORE_0V75", x: -6, y: -11.2 },
{ name: "C37", value: "22uF", jlc: "C86295", net: "VDD_1V8", x: -2, y: -11.2 },
{ name: "C38", value: "22uF", jlc: "C86295", net: "VDD_DDR_1V1", x: 2, y: -11.2 },
{ name: "C39", value: "2.2uF", jlc: "C77002", net: "PMIC_VDD1P8", x: -11, y: 12 },
{ name: "C40", value: "10uF", jlc: "C19702", net: "VDD_3V3", x: -10, y: -10 },
{ name: "C41", value: "22uF", jlc: "C86295", net: "VDD_3V3", x: -14, y: -10 },
{ name: "C42", value: "1uF", jlc: "C14445", net: "SD_3V3", x: -2, y: 24 },
{ name: "C43", value: "10uF", jlc: "C19702", net: "SD_3V3", x: 2.5, y: 27 },
{ name: "C44", value: "100nF", jlc: "C71629", net: "VDD_1V8", x: 19, y: -17 },
{ name: "C45", value: "100nF", jlc: "C71629", net: "VDD_3V3", x: 25, y: -16.5 },
{ name: "C46", value: "100nF", jlc: "C71629", net: "VDD_1V8", x: 24, y: -23 },
{ name: "C47", value: "100nF", jlc: "C71629", net: "VDD_3V3", x: 30, y: -17.5 },
{ name: "C48", value: "100nF", jlc: "C71629", net: "VDD_1V8", x: -7, y: -22 },
{ name: "C49", value: "10pF", jlc: "C32949", net: "OSC_25M_XI", x: -3, y: 13.2 },
{ name: "C50", value: "10pF", jlc: "C32949", net: "OSC_25M_XO", x: 3, y: 13.2 },
// CAP_VDDS outputs must not share the dense underside PTH escape field.
// Hand-place them just outside U1 so each gets a short, via-free top route.
{ name: "C51", value: "1uF", jlc: "C318541", net: "CAP_VDDS_GENERAL1", x: 5, y: -10.5 },
{ name: "C52", value: "1uF", jlc: "C318541", net: "CAP_VDDS_MMC0", x: 7, y: -10.5 },
{ name: "C53", value: "1uF", jlc: "C318541", net: "CAP_VDDS_GPMC", x: -8.9, y: 0, rotation: 90 },
{ name: "C54", value: "1uF", jlc: "C318541", net: "CAP_VDDS_MMC2", x: -8.9, y: 2, rotation: 90 },
{ name: "C55", value: "1uF", jlc: "C318541", net: "CAP_VDDS_MMC1", x: 6, y: 13.2 },
{ name: "C56", value: "3.3uF", jlc: "C695126", net: "SD_IO", x: 8.5, y: 13.2, side: "top" },
// PMIC pin-local input and output capacitors.
{ name: "C57", value: "4.7uF", jlc: "C23733", net: "PROTECTED_5V", x: -18, y: 6, side: "bottom" },
{ name: "C58", value: "4.7uF", jlc: "C23733", net: "PROTECTED_5V", x: -18, y: 9, side: "bottom" },
{ name: "C59", value: "4.7uF", jlc: "C23733", net: "PROTECTED_5V", x: -14, y: 9, side: "bottom" },
{ name: "C60", value: "4.7uF", jlc: "C23733", net: "PROTECTED_5V", x: -11, y: 9, side: "bottom" },
{ name: "C61", value: "2.2uF", jlc: "C77002", net: "VDDA_1V8", x: -18, y: 2, side: "bottom" },
{ name: "C62", value: "2.2uF", jlc: "C77002", net: "VDD_RTC_0V75", x: -21, y: 0, side: "bottom" },
{ name: "C63", value: "220pF", jlc: "C1603", net: "SD_LOADSW_CT", x: -1, y: 29, side: "bottom" },
{ name: "C64", value: "22pF", jlc: "C70464", net: "SOC_PORz", x: -5, y: -20, side: "bottom" },
{ name: "C65", value: "4.7nF", jlc: "C1538", net: "EFUSE_DVDT", x: -31, y: -5, side: "bottom" },
{ name: "C66", value: "100nF", jlc: "C71629", net: "VDD_1V8", x: 5, y: 31, side: "bottom" },
// Raw-VBUS always-on CC detection and fail-safe enable logic.
{ name: "C67", value: "1uF", jlc: "C14445", net: "VBUS_RAW", x: -43, y: -2, side: "bottom" },
{ name: "C68", value: "1uF", jlc: "C14445", net: "AON_3V3", x: -41, y: -8, side: "bottom" },
{ name: "C69", value: "100nF", jlc: "C71629", net: "VBUS_RAW", x: -31, y: -7 },
{ name: "C70", value: "100nF", jlc: "C71629", net: "AON_3V3", x: -34.5, y: -14.5, side: "bottom" },
{ name: "C71", value: "100nF", jlc: "C71629", net: "AON_3V3", x: -24, y: -16, side: "bottom" },
{ name: "C72", value: "100nF", jlc: "C71629", net: "AON_3V3", x: -19, y: -10, side: "bottom" },
];
const supportResistors = [
{ name: "R3", value: "1k", jlc: "C11702", from: "POWER_LED_K", to: "GND", x: -34, y: -27 },
{ name: "R4", value: "10k", jlc: "C25744", from: "RESETz", to: "VDD_1V8", x: -2, y: -24 },
// Hand-aligned under the socket's non-numeric contact order: DAT2, DAT3,
// CMD, DAT0, DAT1. This prevents the five short pull-up branches crossing.
{ name: "R5", value: "47k", jlc: "C25792", from: "SD_CMD", to: "SD_IO", x: -15.575, y: 18.5, rotation: 90 },
{ name: "R6", value: "47k", jlc: "C25792", from: "SD_DAT0", to: "SD_IO", x: -11.175, y: 18.5, rotation: 90 },
{ name: "R7", value: "47k", jlc: "C25792", from: "SD_DAT1", to: "SD_IO", x: -10.075, y: 15.7, rotation: 90 },
{ name: "R8", value: "47k", jlc: "C25792", from: "SD_DAT2", to: "SD_IO", x: -17.775, y: 18.5, rotation: 90 },
{ name: "R9", value: "47k", jlc: "C25792", from: "SD_DAT3", to: "SD_IO", x: -16.675, y: 15.7, rotation: 90 },
{ name: "R10", value: "10k", jlc: "C25744", from: "SD_CARD_DETECT", to: "VDD_1V8", x: 1.5, y: 19 },
{ name: "R11", value: "100k", jlc: "C25741", from: "SD_PWR_EN", to: "GND", x: 4, y: 19 },
{ name: "R12", value: "10k", jlc: "C25744", from: "DDR0_RESET0_n", to: "GND", x: 43.25, y: 5 },
{ name: "R13", value: "2.2k", jlc: "C25879", from: "LPDDR4_ODT_CA", to: "VDD_DDR_1V1", x: 43.25, y: 2 },
{ name: "R14", value: "240", jlc: "C25094", from: "LPDDR4_ZQ", to: "GND", x: 43.25, y: -1 },
{ name: "R15", value: "240", jlc: "C25094", from: "DDR0_CAL0", to: "GND", x: 9.5, y: -10.5 },
// USB eFuse enable is fail-safe low; TUSB320 detection must actively drive it high.
{ name: "R16", value: "100k", jlc: "C25741", from: "EFUSE_EN", to: "GND", x: -31, y: -3, side: "bottom" },
{ name: "R17", value: "0", jlc: "C17168", from: "EFUSE_OVLO", to: "GND", x: -34, y: -3 },
{ name: "R18", value: "2.49k", jlc: "C25884", from: "EFUSE_ILM", to: "GND", x: -28, y: -3 },
// PMIC open-drain buses/status and 3V3 sequencing.
{ name: "R19", value: "4.7k", jlc: "C25900", from: "PMIC_I2C_SDA", to: "VDD_1V8", x: -21, y: 8 },
{ name: "R20", value: "4.7k", jlc: "C25900", from: "PMIC_I2C_SCL", to: "VDD_1V8", x: -21, y: 10 },
{ name: "R21", value: "10k", jlc: "C25744", from: "PMIC_nRSTOUT", to: "VDD_1V8", x: -21, y: 12 },
{ name: "R22", value: "10k", jlc: "C25744", from: "RTC_PORz", to: "VDD_1V8", x: -21, y: 14 },
{ name: "R23", value: "10k", jlc: "C25744", from: "PMIC_nINT", to: "VDD_1V8", x: -21, y: 16 },
{ name: "R24", value: "100k", jlc: "C25741", from: "EXT_3V3_EN", to: "VDD_1V8", x: -13, y: -2.8, side: "top" },
// TPS62A02 3.3V feedback and open-drain PG pull-up.
{ name: "R25", value: "453k", jlc: "C27009", from: "VDD_3V3", to: "EXT_3V3_FB", x: -14.8, y: -4.5, side: "top" },
{ name: "R26", value: "100k", jlc: "C25741", from: "EXT_3V3_FB", to: "GND", x: -12.2, y: -4.5, side: "top" },
{ name: "R27", value: "10k", jlc: "C25744", from: "EXT_3V3_PG", to: "VDD_1V8", x: -9.5, y: -4.76, side: "top" },
// SD default-on/reset gating and protected clock/card-detect paths.
{ name: "R28", value: "10k", jlc: "C25744", from: "SD_PWR_GPIO", to: "VDD_1V8", x: 6, y: 34 },
// TI recommends placing the MMC clock source-termination option at the SoC.
{ name: "R29", value: "0", jlc: "C17168", from: "SD_CLK_SOC", to: "SD_CLK", x: 11.25, y: 13.2, side: "top" },
{ name: "R30", value: "10k", jlc: "C25744", from: "SD_CLK", to: "GND", x: -2, y: 16 },
{ name: "R31", value: "100", jlc: "C25076", from: "SD_CARD_DETECT", to: "SD_CD_SOC", x: 3.8, y: 16 },
// Reduced BOOTMODE[15:12] = 1010 and unused wake input bias.
{ name: "R32", value: "10k", jlc: "C25744", from: "BOOTMODE15", to: "VDD_1V8", x: 10, y: 15.8, side: "bottom" },
{ name: "R33", value: "10k", jlc: "C25744", from: "BOOTMODE14", to: "GND", x: 12.5, y: 15.8, side: "bottom" },
{ name: "R34", value: "10k", jlc: "C25744", from: "BOOTMODE13", to: "VDD_1V8", x: 15, y: 12.5, side: "bottom" },
{ name: "R35", value: "10k", jlc: "C25744", from: "BOOTMODE12", to: "GND", x: 17.5, y: 12.5, side: "bottom" },
{ name: "R36", value: "10k", jlc: "C25744", from: "EXT_WAKEUP0_UNUSED", to: "GND", x: 20, y: 12.5, side: "bottom" },
{ name: "R37", value: "10k", jlc: "C25744", from: "EXT_WAKEUP1_UNUSED", to: "GND", x: 22.5, y: 12.5, side: "bottom" },
{ name: "R38", value: "47k", jlc: "C25792", from: "UART0_TX_1V8", to: "VDD_1V8", x: 19, y: -20 },
{ name: "R39", value: "47k", jlc: "C25792", from: "UART0_RX_1V8", to: "VDD_1V8", x: 23, y: -21.5 },
// TUSB320 GPIO pull-ups, VBUS_DET input resistor, and weak-supply LED current limit.
{ name: "R40", value: "4.7k", jlc: "C25900", from: "TUSB_OUT1", to: "AON_3V3", x: -36.5, y: -1, side: "bottom" },
{ name: "R41", value: "4.7k", jlc: "C25900", from: "TUSB_OUT2", to: "AON_3V3", x: -33.5, y: -1, side: "bottom" },
{ name: "R42", value: "909k", jlc: "C25799", from: "VBUS_RAW", to: "TUSB_VBUS_DET", x: -34, y: -7, side: "top" },
{ name: "R43", value: "1k", jlc: "C11702", from: "WEAK_USB_LED_K", to: "GND", x: -37.5, y: -12.5 },
];
const capacitorParts = {
C71629: GRM155R71C104KA88D,
C14445: CL05A105KP5NNNC,
C318541: CL03A105KQ3CSNC,
C18164586: TCC0201X7R104K160ZT,
C19702: CL10A106KP8NNNC,
C86295: CL10A226MP8NUNE,
C77002: GRM155R61A225KE95D,
C32949: CL05C100JB5NNNC,
C695126: C1005X5R1A335KTJ00E,
C23733: CL05A475MP5NRNC,
C1603: CL10B221KB8NNNC,
C70464: CL05C220JB5NNNC,
C1538: A_0402B472K500NT,
};
const resistorParts = {
C25905: A_0402WGF5101TCE,
C11702: A_0402WGF1001TCE,
C25744: A_0402WGF1002TCE,
C25741: A_0402WGF1003TCE,
C25094: A_0402WGF2400TCE,
C25879: A_0402WGF2201TCE,
C25792: A_0402WGF4702TCE,
C25900: A_0402WGF4701TCE,
C17168: A_0402WGF0000TCE,
C25076: A_0402WGF1000TCE,
C27009: A_0402WGF4533TCE,
C45194: A_0402WGF6651TCE,
C25884: A_0402WGF2491TCE,
C25799: A_0402WGF9093TCE,
};
const ROUTING_PHASE = {
ddr: 1,
sd: 2,
control: 3,
usbPower: 4,
powerAndGround: 5};
const getRoutingPhase = (from, to) => {
const connection = `${from} ${to}`.toUpperCase();
if (/DDR0_(DQ\d+|DM\d+|DQS\d|DQS\d_N|A[0-5]\b|CS0_N|CKE0|CK0|CK0_N)/.test(connection)) {
return ROUTING_PHASE.ddr;
}
if (/SD_PWR/.test(connection))
return ROUTING_PHASE.control;
if (/SD_3V3|SD_IO|SD_LOADSW|CAP_VDDS_MMC1/.test(connection)) {
return ROUTING_PHASE.powerAndGround;
}
if (/SD_|MMC1/.test(connection))
return ROUTING_PHASE.sd;
if (/USB_|VBUS|TUSB|EFUSE|PROTECTED_5V|AON_3V3/.test(connection)) {
return ROUTING_PHASE.usbPower;
}
if (/GND|VSS|VDD|VDDA|CAP_|3V3|1V8|0V75|_SW|_LX/.test(connection)) {
return ROUTING_PHASE.powerAndGround;
}
return ROUTING_PHASE.control;
};
const explicitRoutingNets = Array.from(new Set([
...logicalTraces.flatMap(([from, to]) => [from, to]),
...socGroundTraces.flatMap(([from, to]) => [from, to]),
...socRailTraces.flatMap(([from, to]) => [from, to]),
...decouplingCapacitors.map(({ net }) => `net.${net}`),
...supportResistors.flatMap(({ from, to }) => [`net.${from}`, `net.${to}`]),
]
.filter((selector) => selector.startsWith("net."))
.map((selector) => selector.slice(4)))).sort();
const ddrByte0Connections = [
...Array.from({ length: 8 }, (_, bit) => `DDR0_DQ${bit}`),
"DDR0_DM0",
"DDR0_DQS0",
"DDR0_DQS0_n",
];
const ddrByte1Connections = [
...Array.from({ length: 8 }, (_, bit) => `DDR0_DQ${bit + 8}`),
"DDR0_DM1",
"DDR0_DQS1",
"DDR0_DQS1_n",
];
const ddrCommandConnections = [
...Array.from({ length: 6 }, (_, bit) => `DDR0_A${bit}`),
"DDR0_CS0_n",
"DDR0_CKE0",
"DDR0_CK0",
"DDR0_CK0_n",
"DDR_LINK_RESET0_n",
];
const ddrFanoutLayers = ["inner2", "inner5", "bottom"];
const fixedTargetBgaBreakoutAutorouter = {
local: true,
groupMode: "subcircuit",
algorithmFn: createFixedTargetBgaFanoutAutorouter,
};
const classifiedAutorouter = (phase, effort = 2) => ({
local: true,
groupMode: "subcircuit",
algorithmFn: createAm62lClassifiedAutorouter({ phase, effort }),
});
var index_circuit = () => (jsxRuntime.jsxs("board", { width: "90mm", height: "75mm", layers: 8, defaultTraceWidth: "0.08128mm", minTraceWidth: "0.08128mm", minTraceToPadEdgeClearance: "0.08128mm", minViaEdgeToPadEdgeClearance: "0.08128mm", minViaHoleEdgeToViaHoleEdgeClearance: "0.1016mm", minViaHoleDiameter: "0.2032mm", minViaPadDiameter: "0.4572mm", minPadEdgeToPadEdgeClearance: "0mm", pcbStyle: { viaHoleDiameter: "0.2032mm", viaPadDiameter: "0.4572mm" }, children: [explicitRoutingNets.map((name) => (jsxRuntime.jsx(react.Fragment, { children: jsxRuntime.jsx("net", { name: name, routingPhaseIndex: getRoutingPhase(`net.${name}`, "") }) }, name))), jsxRuntime.jsx("autoroutingphase", { name: "ddr-critical", phaseIndex: ROUTING_PHASE.ddr, autorouter: "default" }), jsxRuntime.jsx("autoroutingphase", { name: "microsd", phaseIndex: ROUTING_PHASE.sd, autorouter: classifiedAutorouter("sd", 3) }), jsxRuntime.jsx("autoroutingphase", { name: "clock-reset-control", phaseIndex: ROUTING_PHASE.control, autorouter: classifiedAutorouter("reset-control", 5) }), jsxRuntime.jsx("autoroutingphase", { name: "usb-power-entry", phaseIndex: ROUTING_PHASE.usbPower, autorouter: classifiedAutorouter("usb-power", 1) }), jsxRuntime.jsx("autoroutingphase", { name: "power-ground-local", phaseIndex: ROUTING_PHASE.powerAndGround, autorouter: classifiedAutorouter("power", 3) }), jsxRuntime.jsx("copperpour", { name: "GND_PLANE_L2", layer: "inner1", connectsTo: "net.GND", unbroken: true }), jsxRuntime.jsx("copperpour", { name: "GND_PLANE_L7", layer: "inner6", connectsTo: "net.GND", unbroken: true }), jsxRuntime.jsx("bus", { name: "DDR_BYTE0", connections: ddrByte0Connections, routingPhaseIndex: ROUTING_PHASE.ddr, maxLengthSkew: "0.25mm", pcbTraceWidth: "0.08128mm", pcbAllowedLayers: ["inner2"], preferredLayer: "inner2" }), jsxRuntime.jsx("bus", { name: "DDR_BYTE1", connections: ddrByte1Connections, routingPhaseIndex: ROUTING_PHASE.ddr, maxLengthSkew: "0.25mm", pcbTraceWidth: "0.08128mm", pcbAllowedLayers: ["bottom"], preferredLayer: "bottom" }), jsxRuntime.jsx("bus", { name: "DDR_COMMAND", connections: ddrCommandConnections, routingPhaseIndex: ROUTING_PHASE.ddr, maxLengthSkew: "0.5mm", pcbTraceWidth: "0.09398mm", pcbAllowedLayers: ["inner5"], preferredLayer: "inner5" }), jsxRuntime.jsx("breakout", { name: "SOC_BREAKOUT", pcbX: 2, pcbY: 1, padding: "5mm", autorouter: fixedTargetBgaBreakoutAutorouter, fanoutBoundaryPadding: {
top: "5mm",
right: "2mm",
bottom: "5mm",
left: "1mm",
}, fanoutRoutingLayers: [...ddrFanoutLayers], busFanoutDirections: {
DDR_BYTE1: "top_right",
DDR_COMMAND: "center_right",
DDR_BYTE0: "bottom_right",
}, children: jsxRuntime.jsx(tscircuit_ti.AM62L32, { name: "U1", footprintVariant: "fccsp_373_anb", pcbX: 0, pcbY: 0, pcbRotation: 180, noSchematicRepresentation: true, ...pinMetadata(373, socConnected, socAttributes) }) }), jsxRuntime.jsx("breakout", { name: "RAM_BREAKOUT", pcbX: 29.675, pcbY: 1 + TI_AM62L_EVM_MEMORY_OFFSET.y, padding: "5mm", autorouter: fixedTargetBgaBreakoutAutorouter, fanoutBoundaryPadding: {
top: "5mm",
right: "1mm",
bottom: "5mm",
left: "2mm",
}, fanoutRoutingLayers: [...ddrFanoutLayers], busFanoutDirections: {
DDR_BYTE1: "top_left",
DDR_COMMAND: "center_left",
DDR_BYTE0: "bottom_left",
}, children: jsxRuntime.jsx(RegistryMt53e1g16, { name: "U2", pcbX: 0, pcbY: 0, pcbRotation: 90, noSchematicRepresentation: true }) }), jsxRuntime.jsx(_0hmX_tps6521401vafrPmic.TPS6521401VAFR, { name: "U3", pcbX: -15, pcbY: 4, noSchematicRepresentation: true, noConnect: pinMetadata(24, Array.from({ length: 24 }, (_, index) => index + 1)).noConnect }), jsxRuntime.jsx(USB4125_GF_A_0190, { name: "U12", pcbX: -42, pcbY: 0, pcbRotation: -90, noSchematicRepresentation: true, ...pinMetadata(16, [7, 8, 9, 10, 11, 12, 13, 14, 15, 16], {
7: { requiresGround: true }, 8: { requiresGround: true }, 9: { requiresGround: true }, 10: { requiresGround: true },
11: { requiresGround: true }, 12: { requiresPower: true, providesPower: true },
15: { requiresPower: true, providesPower: true }, 16: { requiresGround: true },
}) }), jsxRuntime.jsx(TPS259470LRPWR, { name: "U4", pcbX: -31, pcbY: 0, noSchematicRepresentation: true, ...pinMetadata(10, [1, 2, 5, 6, 7, 8, 9], { 5: { requiresPower: true }, 6: { providesPower: true }, 8: { requiresGround: true } }) }), jsxRuntime.jsx(TUSB320LAIRWBR, { name: "U21", pcbX: -37, pcbY: -5, noSchematicRepresentation: true, ...pinMetadata(12, [1, 2, 3, 4, 7, 8, 10, 11, 12], {
10: { requiresGround: true }, 12: { requiresPower: true },
}) }), jsxRuntime.jsx(TLV75533PDBVR, { name: "U22", pcbX: -40, pcbY: -5, layer: "bottom", noSchematicRepresentation: true, ...pinMetadata(5, [1, 2, 3, 5], {
1: { requiresPower: true }, 2: { requiresGround: true }, 5: { providesPower: true },
}) }), jsxRuntime.jsx(SN74LVC1G04DBVR, { name: "U23", pcbX: -35, pcbY: -9, layer: "bottom", noSchematicRepresentation: true, ...pinMetadata(5, [2, 3, 4, 5], { 3: { requiresGround: true }, 5: { requiresPower: true } }) }), jsxRuntime.jsx(SN74LVC1G04DBVR, { name: "U24", pcbX: -29, pcbY: -13, layer: "bottom", noSchematicRepresentation: true, ...pinMetadata(5, [2, 3, 4, 5], { 3: { requiresGround: true }, 5: { requiresPower: true } }) }), jsxRuntime.jsx(SN74LVC1G08DBVR, { name: "U25", pcbX: -24, pcbY: -10, layer: "bottom", noSchematicRepresentation: true, ...pinMetadata(5, [1, 2, 3, 4, 5], { 3: { requiresGround: true }, 5: { requiresPower: true } }) }), jsxRuntime.jsx(TPS62A02DRLR, { name: "U5", pcbX: -14, pcbY: -7, noSchematicRepresentation: true, ...pinMetadata(6, [1, 2, 3, 4, 5, 6], { 1: { requiresGround: true }, 2: { providesPower: true }, 3: { requiresPower: true } }) }), jsxRuntime.jsx(DFE201612PD_1R0M_P2, { name: "L1", pcbX: -10.4, pcbY: -7 }), jsxRuntime.jsx(XRCGB25M000F3A00R0, { name: "Y1", pcbX: 0, pcbY: 13.2 }), jsxRuntime.jsx(DM3AT_SF_PEJM5, { name: "U15", pcbX: -15, pcbY: 29, pcbRotation: 180, noSchematicRepresentation: true, ...pinMetadata(14, [1, 2, 3, 4, 5, 6, 7, 8, 9, 11], { 4: { requiresPower: true }, 6: { requiresGround: true } }) }), jsxRuntime.jsx(TPS22918DBVR, { name: "U6", pcbX: -2, pcbY: 27, noSchematicRepresentation: true, ...pinMetadata(6, [1, 2, 3, 4, 6], { 1: { requiresPower: true }, 2: { requiresGround: true }, 6: { providesPower: true } }) }), jsxRuntime.jsx(TPD4E02B04DQAR, { name: "U7", pcbX: -5, pcbY: 23, noSchematicRepresentation: true, ...pinMetadata(10, [1, 2, 3, 4, 5, 8], { 1: { requiresPower: true }, 3: { requiresGround: true }, 8: { requiresGround: true } }) }), jsxRuntime.jsx(TPD4E02B04DQAR, { name: "U8", pcbX: 1, pcbY: 16, noSchematicRepresentation: true, ...pinMetadata(10, [1, 2, 3, 4, 8], { 1: { requiresPower: true }, 3: { requiresGround: true }, 8: { requiresGround: true } }) }), jsxRuntime.jsx(SN74AXC1T45DBVR, { name: "U9", pcbX: 22, pcbY: -17, noSchematicRepresentation: true, ...pinMetadata(6, [1, 2, 3, 4, 5, 6], { 1: { requiresPower: true }, 2: { requiresGround: true }, 6: { requiresPower: true } }) }), jsxRuntime.jsx(SN74AXC1T45DBVR, { name: "U10", pcbX: 27, pcbY: -21, noSchematicRepresentation: true, ...pinMetadata(6, [1, 2, 3, 4, 5, 6], { 1: { requiresPower: true }, 2: { requiresGround: true }, 6: { requiresPower: true } }) }), jsxRuntime.jsx(TPD2E2U06DCKR, { name: "U16", pcbX: 31.5, pcbY: -24, pcbRotation: 90, noSchematicRepresentation: true, ...pinMetadata(3, [1, 2, 3], { 1: { requiresPower: true }, 3: { requiresGround: true } }) }), jsxRuntime.jsx(S4B_PH_SM4_K_TB_LF__SN_, { name: "U17", pcbX: 40, pcbY: -20, pcbRotation: -90, noSchematicRepresentation: true, ...pinMetadata(6, [1, 2, 3, 4], { 3: { requiresGround: true }, 4: { requiresPower: true } }) }), jsxRuntime.jsx(SKRPACE010, { name: "SW1", pcbX: -2, pcbY: -28, schMarginY: "2mm", noSchematicRepresentation: true, ...pinMetadata(4, [1, 2, 3, 4]) }), jsxRuntime.jsx(SN74LVC1G08DBVR, { name: "U11", pcbX: -8, pcbY: -18, noSchematicRepresentation: true, ...pinMetadata(5, [1, 2, 3, 4, 5], { 3: { requiresGround: true }, 5: { requiresPower: true } }) }), jsxRuntime.jsx(SN74LVC1G08DBVR, { name: "U20", pcbX: 0, pcbY: 32, layer: "bottom", noSchematicRepresentation: true, ...pinMetadata(5, [1, 2, 3, 4, 5], { 3: { requiresGround: true }, 5: { requiresPower: true } }) }), jsxRuntime.jsx(SMF5_0A, { name: "D2", pcbX: -38, pcbY: 2.5, pcbRotation: 90 }), jsxRuntime.jsx("testpoint", { name: "TP_BOOT15", footprintVariant: "pad", padShape: "circle", padDiameter: "1mm", pcbX: 15, pcbY: 33, schX: 50, schY: 16 }), jsxRuntime.jsx("testpoint", { name: "TP_BOOT14", footprintVariant: "pad", padShape: "circle", padDiameter: "1mm", pcbX: 21, pcbY: 33, schX: 50, schY: 12 }), jsxRuntime.jsx("testpoint", { name: "TP_BOOT13", footprintVariant: "pad", padShape: "circle", padDiameter: "1mm", pcbX: 27, pcbY: 33, schX: 50, schY: 8 }), jsxRuntime.jsx("testpoint", { name: "TP_BOOT12", footprintVariant: "pad", padShape: "circle", padDiameter: "1mm", pcbX: 33, pcbY: 33, schX: 50, schY: 4 }), jsxRuntime.jsx("testpoint", { name: "TP_CC1", footprintVariant: "pad", padShape: "circle", padDiameter: "1mm", pcbX: -40, pcbY: -32, layer: "bottom", schX: 50, schY: 0 }), jsxRuntime.jsx("testpoint", { name: "TP_CC2", footprintVariant: "pad", padShape: "circle", padDiameter: "1mm", pcbX: -36, pcbY: -32, layer: "bottom", schX: 50, schY: -4 }), jsxRuntime.jsx("testpoint", { name: "TP_TUSB_OUT1", footprintVariant: "pad", padShape: "circle", padDiameter: "1mm", pcbX: -32, pcbY: -32, layer: "bottom", schX: 50, schY: -8 }), jsxRuntime.jsx("testpoint", { name: "TP_EFUSE_EN", footprintVariant: "pad", padShape: "circle", padDiameter: "1mm", pcbX: -28, pcbY: -32, layer: "bottom", schX: 50, schY: -12 }), jsxRuntime.jsx("testpoint", { name: "TP_PROTECTED_5V", footprintVariant: "pad", padShape: "circle", padDiameter: "1mm", pcbX: -24, pcbY: -32, layer: "bottom", schX: 50, schY: -16 }), jsxRuntime.jsx(TFM201208BLE_R47MTCF, { name: "L2", pcbX: -11, pcbY: 0 }), jsxRuntime.jsx(TFM201208BLE_R47MTCF, { name: "L3", pcbX: -11, pcbY: 3.5 }), jsxRuntime.jsx(TFM201208BLE_R47MTCF, { name: "L4", pcbX: -11, pcbY: 7 }), jsxRuntime.jsx("trace", { name: "PMIC_B1_LX", from: "L2.pin1", to: "net.PMIC_BUCK1_SW", routingPhaseIndex: ROUTING_PHASE.powerAndGround }), jsxRuntime.jsx("trace", { name: "PMIC_B1_OUT", from: "L2.pin2", to: "net.VDD_CORE_0V75", routingPhaseIndex: ROUTING_PHASE.powerAndGround }), jsxRuntime.jsx("trace", { name: "PMIC_B2_LX", from: "L3.pin1", to: "net.PMIC_BUCK2_SW", routingPhaseIndex: ROUTING_PHASE.powerAndGround }), jsxRuntime.jsx("trace", { name: "PMIC_B2_OUT", from: "L3.pin2", to: "net.VDD_1V8", routingPhaseIndex: ROUTING_PHASE.powerAndGround }), jsxRuntime.jsx("trace", { name: "PMIC_B3_LX", from: "L4.pin1", to: "net.PMIC_BUCK3_SW", routingPhaseIndex: ROUTING_PHASE.powerAndGround }), jsxRuntime.jsx("trace", { name: "PMIC_B3_OUT", from: "L4.pin2", to: "net.VDD_DDR_1V1", routingPhaseIndex: ROUTING_PHASE.powerAndGround }), decouplingCapacitors.map(({ name, jlc, net, x, y, rotation, side }) => {
const Part = capacitorParts[jlc];
return jsxRuntime.jsxs(react.Fragment, { children: [jsxRuntime.jsx(Part, { name: name, pcbX: x, pcbY: y, pcbRotation: rotation, layer: side }), jsxRuntime.jsx("trace", { name: `${name}_${net}`, from: `${name}.pin1`, to: `net.${net}`, routingPhaseIndex: ROUTING_PHASE.powerAndGround }), jsxRuntime.jsx("trace", { name: `${name}_GND`, from: `${name}.pin2`, to: "net.GND", routingPhaseIndex: ROUTING_PHASE.powerAndGround })] }, name);
}), jsxRuntime.jsx(LTST_C190KGKT, { name: "D1", pcbX: -38, pcbY: -27, ...pinMetadata(2, [1, 2]) }), jsxRuntime.jsx(LTST_C190KRKT, { name: "D3", pcbX: -40, pcbY: -8, ...pinMetadata(2, [1, 2]) }), supportResistors.map(({ name, jlc, from, to, x, y, rotation, side }) => {
const Part = resistorParts[jlc];
return jsxRuntime.jsxs(react.Fragment, { children: [jsxRuntime.jsx(Part, { name: name, pcbX: x, pcbY: y, pcbRotation: rotation, layer: side }), jsxRuntime.jsx("trace", { name: `${name}_${from}`, from: `${name}.pin1`, to: `net.${from}`, routingPhaseIndex: getRoutingPhase(`${name}.pin1`, `net.${from}`) }), jsxRuntime.jsx("trace", { name: `${name}_${to}`, from: `${name}.pin2`, to: `net.${to}`, routingPhaseIndex: getRoutingPhase(`${name}.pin2`, `net.${to}`) })] }, name);
}), [...logicalTraces, ...socGroundTraces, ...socRailTraces].map(([from, to], index) => (jsxRuntime.jsx(react.Fragment, { children: jsxRuntime.jsx("trace", { name: `N${index + 1}`, from: from, to: to, routingPhaseIndex: getRoutingPhase(from, to) }) }, `${from}-${to}-${index}`))), jsxRuntime.jsx("trace", { name: "U1_R9_DIRECT_VDD_CORE_0V75", from: "U1.pin229", to: "net.VDD_CORE_0V75", routingPhaseIndex: ROUTING_PHASE.powerAndGround }), ddrSignals.map(([soc, memory]) => (jsxRuntime.jsx(react.Fragment, { children: jsxRuntime.jsx("trace", { name: soc === "DDR0_RESET0_n" ? "DDR_LINK_RESET0_n" : soc, from: `U1.${soc}`, to: `U2.${memory}`, routingPhaseIndex: ROUTING_PHASE.ddr }) }, soc))), jsxRuntime.jsx("silkscreentext", { text: "J1 5V POWER ONLY", pcbX: -39, pcbY: 6, fontSize: 0.7 }), jsxRuntime.jsx("silkscreentext", { text: "J2 microSD", pcbX: -31, pcbY: 35, fontSize: 0.7 }), jsxRuntime.jsx("silkscreentext", { text: "J3 UART 3V3", pcbX: 38, pcbY: -27, fontSize: 0.7 }), jsxRuntime.jsx("silkscreentext", { text: "WEAK USB SUPPLY", pcbX: -39, pcbY: -11, fontSize: 0.55 }), jsxRuntime.jsx("silkscreentext", { text: "SIMPLIFIED AM62L COMPUTER - 8 LAYER 90x75 - LOGICAL NETLIST DRAFT", pcbX: 0, pcbY: -34, fontSize: 0.7 })] }));
module.exports = index_circuit;