0hmX/am3352-ddr-track-a-local-dfm-wip-20261007
Experimental RJ45-corrected board with isolated PG indication. 1005/1005 source joins pass; 15 expanded-guard physical errors, sourcing and qualification gates remain. Not fabrication-ready.
- Version
- 0.0.14
- License
- unset
- Stars
- 0
layout/DdrRoutes.tsx
import { ddrRoutes } from "../data/ddr-routes"
/** Native manual paths keep the checked DDR buses independent of other nets. */
export function DdrRoutes() {
return <>
{ddrRoutes.map(route => {
const first=route.points[0], last=route.points.at(-1)!
return <trace key={route.name} name={route.name} from={route.from} to={route.to} width={0.1}
pcbPath={route.layer === "top" ? [route.from, ...route.points.map(([x,y])=>({x,y})), route.to] : [route.from,
{x:first[0],y:first[1],via:true,fromLayer:"top",toLayer:route.layer},
...route.points.map(([x,y])=>({x,y})),
{x:last[0],y:last[1],via:true,fromLayer:route.layer,toLayer:"top"},route.to]} />
})}
{[{from:".U1 > .A1",name:"DDR_GND_CPU",x:-6.8,y:-6.8},
{from:".U3 > .B1",name:"DDR_GND_RAM",x:-3.199892,y:-21.800239}].flatMap(p=>[
<via key={p.name} name={p.name} pcbX={p.x} pcbY={p.y} fromLayer="top" toLayer="inner1"
holeDiameter={0.15} outerDiameter={0.3} connectsTo="net.GND" />,
<trace key={`${p.name}_lead`} from={p.from} to={`.${p.name} > .top`}
connectsTo={[p.from,`.${p.name} > .top`,"net.GND"]} width={0.15}
pcbPath={[p.from,`.${p.name} > .top`]} />,
])}
<via name="DDR_GND_STITCH" pcbX={12} pcbY={-17} fromLayer="inner1" toLayer="inner6"
holeDiameter={0.15} outerDiameter={0.3} connectsTo="net.GND" />
{[{from:".U1 > .H5",name:"DDR_PWR_CPU",x:-1.2,y:-3.6},
{from:".U3 > .B2",name:"DDR_PWR_RAM",x:-2.400046,y:-21.800239}].flatMap(p=>[
<via key={p.name} name={p.name} pcbX={p.x} pcbY={p.y} fromLayer="top" toLayer="inner5"
holeDiameter={0.15} outerDiameter={0.3} connectsTo="net.DDR_1V5" />,
<trace key={`${p.name}_lead`} from={p.from} to={`.${p.name} > .top`}
connectsTo={[p.from,`.${p.name} > .top`,"net.DDR_1V5"]} width={0.15}
pcbPath={[p.from,`.${p.name} > .top`]} />,
])}
{(["inner1","inner3","inner6"] as const).map(layer=><copperpour key={layer} name={`DDR_GND_${layer}`}
layer={layer} connectsTo="net.GND" unbroken clearance={0.2} coveredWithSolderMask
outline={[{x:-27.7,y:26.2},{x:69.7,y:26.2},{x:69.7,y:-38.7},{x:-27.7,y:-38.7}]} />)}
<copperpour name="DDR_1V5_inner5" layer="inner5" connectsTo="net.DDR_1V5" unbroken clearance={0.2} coveredWithSolderMask
outline={[{x:-27.7,y:26.2},{x:69.7,y:26.2},{x:69.7,y:-38.7},{x:-27.7,y:-38.7}]} />
</>
}