0hmX/am3352
This code suite comprises TypeScript scripts that analyze, verify, and assemble complex DDR memory interface hardware, focusing on physical routing, via and pad placement, electrical clearance, and physical constraints, often involving precise geometric calculations and consistent provenance tracking.
- Version
- 1.0.5
- License
- unset
- Stars
- 0
scripts/assess-ddr-ram0-c1-alternate-landings.ts
/** Read-only candidate ranking for a different RAM0 C1 landing; no data copper is retired. */
import {readFileSync,writeFileSync,mkdirSync} from 'node:fs'
import {resolve} from 'node:path'
import {createHash} from 'node:crypto'
import {sharedViaApproaches} from './plan-ddr-ram-power-via-reuse'
import {verifyDdrSystemCopper,auditDdrTraceJunctions} from './check-ddr-system-copper'
import {auditRouteAngles} from './check-route-angles'
import {auditCompositeHostTopology} from './ddr-composite-routing-context'
const [parentArg='dist/ddr-twenty-one-power58-current',outArg='dist/ddr-ram0-c1-alternate-landings']=process.argv.slice(2),dir=resolve(parentArg),out=resolve(outArg),hash=(v:any)=>createHash('sha256').update(JSON.stringify(v)).digest('hex'),bound:Record<string,string>={},read=(p:string)=>{p=resolve(p);const text=readFileSync(p,'utf8');bound[p]=createHash('sha256').update(text).digest('hex');return JSON.parse(text)}
const parent=read(`${dir}/candidate.circuit.json`),prior=read(`${dir}/report.json`),hosts=read(`${dir}/host-bundle.json`),input=read(`${dir}/routing-input.json`),proposal=read('dist/ddr-ram0-d1-codesign-aligned/power-preflight.json')
if(hash(parent)!==prior.candidateCircuitSha256||proposal.parentCircuitSha256!==hash(parent)||hosts.traces.length!==21||prior.launchQualified!==58)throw Error('Expected exact21/58 parent')
const before=parent.find((e:any)=>e.type==='pcb_trace'&&e.pcb_trace_id==='saved_fanout_pcb_group_3_2'),start=before.route[0],pad=parent.find((e:any)=>e.type==='pcb_smtpad'&&e.pcb_port_id===start.start_pcb_port_id)
if(!pad||Math.hypot(pad.x-start.x,pad.y-start.y)>1e-8)throw Error('C1 source pad not exact')
const changes=proposal.changes.filter((c:any)=>c.before.pcb_trace_id!==before.pcb_trace_id),base=parent.map((e:any)=>{const c=changes.find((c:any)=>c.before.type===e.type&&c.before[`${e.type}_id`]===e[`${e.type}_id`]);if(c&&hash(c.before)!==hash(e))throw Error('Stale coupled witness');return c?.after??e}),fixed=base.filter((e:any)=>e.type!=='pcb_copper_pour'&&!(e.type==='pcb_trace'&&e.pcb_trace_id===before.pcb_trace_id)),attempts:any[]=[]
// Deliberately finite new-site set, not a proof over continuous placement space.
const offsets=[-1,-.8,-.6,-.4,0,.4,.6,.8,1]
for(const dx of offsets)for(const dy of offsets){if((dx===0&&dy===0)||(dx===.4&&dy===-.4))continue;const via={x:pad.x+dx,y:pad.y+dy},routes=sharedViaApproaches(start,via);if(!routes.length)continue
for(let order=0;order<routes.length;order++){
const after={...before,route:[...routes[order]!,{route_type:'via',...via,from_layer:'top',to_layer:'inner3',via_diameter:.4572,via_hole_diameter:.254}],connectsTo:[before.source_trace_id,start.start_pcb_port_id]};delete after.connection_name
const check=verifyDdrSystemCopper(fixed,[after],input.connections,{},50,{reportSameNetContacts:true}),violations=check.violations.map((v:any)=>({layer:v.layer,gapMm:v.gapMm,a:v.aShape,b:v.bShape}));attempts.push({dx,dy,via,order,lengthMm:Math.max(Math.abs(dx),Math.abs(dy))+(Math.SQRT2-1)*Math.min(Math.abs(dx),Math.abs(dy)),errors:check.errors,angles:check.angles.valid,joinedBends:check.joinedBends,violations,clear:!check.errors.length&&!violations.length&&check.angles.valid&&!check.joinedBends.length,...(!check.errors.length&&!violations.length?{after}:{})})
}
}
const ranked=attempts.toSorted((a,b)=>a.violations.length-b.violations.length||a.lengthMm-b.lengthMm)
for(const [p,h]of Object.entries(bound))if(createHash('sha256').update(readFileSync(p)).digest('hex')!==h)throw Error('Input mutated')
mkdirSync(out,{recursive:true});writeFileSync(`${out}/report.json`,JSON.stringify({parentDirectory:dir,parentCircuitSha256:hash(parent),inputFileHashes:bound,sourcePad:pad,coupledChanges:changes,attempts:ranked,accepted:false,clearLaunchCount:ranked.filter(a=>a.clear).length,scope:'Finite distinct C1 landing ranking. Exact E2/D1 swap reserved, all original data geometry and21 hosts retained. All physical signal-layer barrels checked; reference pours deliberately deferred for rail-swap/antipad qualification. No accepted geometry or power-count change.'},null,2));console.log(JSON.stringify({attempts:ranked.length,clear:ranked.filter(a=>a.clear).length,best:ranked.slice(0,6).map(a=>({dx:a.dx,dy:a.dy,length:a.lengthMm,violations:a.violations.length,errors:a.errors}))}))
const best=ranked.find(a=>a.clear)
if(best){
const jointChanges=[...changes,{before,after:best.after}],child=parent.map((e:any)=>jointChanges.find(c=>c.before.type===e.type&&c.before[`${e.type}_id`]===e[`${e.type}_id`])?.after??e),e2=child.find((e:any)=>e.type==='pcb_trace'&&e.pcb_trace_id==='saved_fanout_pcb_group_3_15'),vi=e2.route.findIndex((p:any)=>p.route_type==='via');e2.route=e2.route.slice(0,vi+1);e2.route[vi].to_layer='inner3';e2.connectsTo=[e2.source_trace_id,e2.route[0].start_pcb_port_id];delete e2.connection_name;child.find((e:any)=>e.type==='pcb_via'&&e.pcb_trace_id===e2.pcb_trace_id).to_layer='inner3'
const conductor=child.filter((e:any)=>e.type!=='pcb_copper_pour'),fresh=[...hosts.traces,...jointChanges.filter(c=>c.after.type==='pcb_trace').map(c=>c.after)],physical=verifyDdrSystemCopper(conductor,fresh,input.connections,{},50,{reportSameNetContacts:true}),angles=auditRouteAngles(child.filter((e:any)=>e.type==='pcb_trace')),junctions=auditDdrTraceJunctions(child,input.connections),topology=auditCompositeHostTopology(conductor,hosts.traces,input.connections),replacements=parent.flatMap((before:any,i:number)=>hash(before)===hash(child[i])?[]:[{id:`${before.type}:${before[`${before.type}_id`]}`,before,after:child[i],beforeSha256:hash(before),afterSha256:hash(child[i])}]),manifest={parentDirectory:dir,parentCircuitSha256:hash(parent),candidateCircuitSha256:hash(child),replacements},diagnostic={physical,angles,junctions,topology,allHostsExact:hosts.traces.every((h:any)=>child.some((e:any)=>hash(e)===hash(h))),allDataExact:parent.filter((e:any)=>e.type==='pcb_trace'&&!jointChanges.some(c=>c.before.pcb_trace_id===e.pcb_trace_id)).every((t:any)=>child.some((e:any)=>hash(e)===hash(t)))}
for(const[n,v]of Object.entries({'candidate.circuit.json':child,'original-copper-replacements.json':manifest,'joint-conductor-report.json':{accepted:false,diagnostic,parentCircuitSha256:hash(parent),candidateCircuitSha256:hash(child),scope:'Conductor-only distinct C1 landing with E2/D1 rail swap; all data unchanged. Planes, source-owned annulus contacts, power audit and reference qualification pending.'}}))writeFileSync(`${out}/${n}`,JSON.stringify(v,null,2));console.log(JSON.stringify({jointErrors:physical.errors,jointViolations:physical.violations.length,angles:angles.valid,junctions:junctions.valid,topology:topology.valid,allHostsExact:diagnostic.allHostsExact,allDataExact:diagnostic.allDataExact,replacements:replacements.length}))
}