0hmX/am62l-lpddr4-breakout-repro
This code defines React components that instantiate circuits representing dedicated DDR address control and byte0 data lines.
- Version
- 1.0.11
- License
- unset
- Stars
- 0
two-ball-repro.circuit.tsx
import { MT53E1G16D1ZW, ballMap } from "@tsci/0hmX.mt53e1g16d1zw-footprint"
import { AM62L32 } from "@tsci/tscircuit.ti"
// Exactly two connected BGA balls: AM62L W1 and LPDDR4 B9.
const usedSocPins = new Set([284])
const socNoConnect = Array.from({ length: 373 }, (_, index) => index + 1)
.filter((pin) => !usedSocPins.has(pin))
.map((pin) => `pin${pin}`)
const usedMemorySignals = new Set(["DQ15"])
const memoryNoConnect = ballMap
.map(({ signal }, index) => ({ signal, selector: `pin${index + 1}` }))
.filter(({ signal }) => !usedMemorySignals.has(signal))
.map(({ selector }) => selector)
const SIGNAL_LAYERS = [
"top",
"inner1",
"inner2",
"inner3",
"inner4",
"inner5",
"inner6",
"bottom",
] as const
export default () => (
<board
name="AM62L_LPDDR4_TWO_BALL_REPRO"
width="45mm"
height="25mm"
layers={8}
defaultTraceWidth="0.08128mm"
minTraceWidth="0.08128mm"
minTraceToPadEdgeClearance="0.05mm"
minViaEdgeToPadEdgeClearance="0.08128mm"
minViaHoleEdgeToViaHoleEdgeClearance="0.1016mm"
minViaHoleDiameter="0.2032mm"
minViaPadDiameter="0.4572mm"
pcbStyle={{ viaHoleDiameter: "0.2032mm", viaPadDiameter: "0.4572mm" }}
autorouterEffortLevel="10x"
>
<breakout
name="SOC_BREAKOUT"
pcbX={-10}
pcbY={0}
padding="1mm"
fanoutRoutingLayers={[...SIGNAL_LAYERS]}
>
<AM62L32
name="U1"
footprintVariant="fccsp_373_anb"
pcbX={0}
pcbY={0}
pcbRotation={180}
noSchematicRepresentation
noConnect={socNoConnect as any}
/>
</breakout>
<breakout
name="RAM_BREAKOUT"
pcbX={10.116917}
pcbY={-0.050917}
padding="1mm"
fanoutRoutingLayers={[...SIGNAL_LAYERS]}
>
<MT53E1G16D1ZW
name="U2"
pcbX={0}
pcbY={0}
pcbRotation={90}
noSchematicRepresentation
noConnect={memoryNoConnect as any}
/>
</breakout>
<trace name="DQ15" from="U1.DDR0_DQ15" to="U2.DQ15" />
</board>
)