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

routing/ti-am62l-evm-mmc1-escapes.ts

// 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.

type EscapeWire = {
  route_type: "wire"
  x: number
  y: number
  width: number
  layer: "top" | "inner2" | "bottom"
}

type EscapeVia = {
  route_type: "via"
  x: number
  y: number
  from_layer: "top" | "inner2" | "bottom"
  to_layer: "top" | "inner2" | "bottom"
  via_diameter: number
  via_hole_diameter: number
}

const wire = (
  layer: EscapeWire["layer"],
  width: number,
  points: readonly (readonly [number, number])[],
): EscapeWire[] =>
  points.map(([x, y]) => ({ route_type: "wire", x, y, width, layer }))

const via = (
  x: number,
  y: number,
  from_layer: EscapeVia["from_layer"],
  to_layer: EscapeVia["to_layer"],
): EscapeVia => ({
  route_type: "via",
  x,
  y,
  from_layer,
  to_layer,
  via_diameter: 0.4572,
  via_hole_diameter: 0.2032,
})

export 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]]),
    ],
  },
} as const