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/audit-ddr-d3-return-transition.ts
/** Physical return-via witness and bounded optional stitching placement; no SI distance threshold. */
import{readFileSync,writeFileSync,mkdirSync}from'node:fs'
import{resolve}from'node:path'
import{objectHash}from'./improve-ddr-a9-power-launches'
import{refreshDdrPlaneContacts}from'./ddr-plane-contact-audit'
import{planDdrGroundAntipads}from'./ddr-ground-plane-antipads'
import{verifyDdrSystemCopper}from'./check-ddr-system-copper'
const closer=process.argv.includes('--closer');const parent=resolve(process.argv[2]??'dist/ddr-twelve-byte0-partial-timing'),out=resolve(process.argv[3]??'dist/ddr-d3-return-transition-audit'),read=(n:string)=>JSON.parse(readFileSync(`${parent}/${n}`,'utf8')),c=read('candidate.circuit.json'),report=read('report.json'),host=read('host-bundle.json'),input=read('routing-input.json'),planes=c.filter((e:any)=>e.type==='pcb_copper_pour'),fresh=refreshDdrPlaneContacts(report.planeAudit,planes,c),d3=host.traces.find((t:any)=>t.source_trace_id==='source_trace_578'),signal=d3.route.find((p:any)=>p.route_type==='via'&&Math.hypot(p.x-1.29,p.y+4.8)<1e-7)
if(!signal||objectHash(c)!==report.candidateCircuitSha256)throw Error('Parent/D3 witness differs')
const ground=fresh.filter((p:any)=>['inner1','inner5'].includes(p.layer));if(ground.length!==2||ground.some((p:any)=>p.source_net_id!=='source_net_346'))throw Error('Unexpected reference identity')
const witnesses=c.filter((v:any)=>v.type==='pcb_via'&&v.source_net_id==='source_net_346'&&['inner1','inner5'].every(l=>v.layers.includes(l))&&ground.every((p:any)=>p.viaContacts.some((w:any)=>w.id===v.pcb_via_id&&w.annulusSamplesInPlane===32))).map((v:any)=>({via:v,distanceMm:Math.hypot(v.x-signal.x,v.y-signal.y),contacts:ground.map((p:any)=>({layer:p.layer,...p.viaContacts.find((w:any)=>w.id===v.pcb_via_id)}))})).sort((a:any,b:any)=>a.distanceMm-b.distanceMm)
mkdirSync(out,{recursive:true});const write=(n:string,v:any)=>writeFileSync(`${out}/${n}`,JSON.stringify(v,null,2)+'\n'),trials:any[]=[],started=Date.now();let accepted:any=null
// Bounded concentric sample family only; .9mm initial radius comes from two .3306mm antipads plus .1524mm web, not an electrical adequacy rule.
for(const radius of(closer?[.65,.75]:[.9,1.1,1.3])){for(const i of(closer?[5,6,9,10]:Array.from({length:16},(_,i)=>i))){if(Date.now()-started>55000)break;const x=signal.x+radius*Math.cos(i*Math.PI/8),y=signal.y+radius*Math.sin(i*Math.PI/8),via={type:'pcb_via',pcb_via_id:'ddr_d3_return_stitch',x,y,outer_diameter:.4572,hole_diameter:.254,from_layer:'top',to_layer:'bottom',layers:['top','inner1','inner2','inner3','inner4','inner5','inner6','inner7','inner8','bottom'],source_net_id:'source_net_346'};try{const power=planes.filter((p:any)=>p.layer==='inner3'),planned=planDdrGroundAntipads(power,[{x,y,net:'foreign-to-power',diameter:.4572}]),next=c.map((e:any)=>e===power[0]?planned.planes[0]:e),trace={type:'pcb_trace',pcb_trace_id:'ddr_d3_return_stitch_physical_probe',source_net_id:'source_net_346',route:[{route_type:'via',x,y,from_layer:'top',to_layer:'bottom',via_diameter:.4572,via_hole_diameter:.254}]},physical=verifyDdrSystemCopper(next,[trace],input.connections,{},50);trials.push({x,y,radius,errors:physical.errors,violations:physical.violations});if(!physical.errors.length&&!physical.violations.length){const newAudit=fresh.map((a:any)=>a.source_net_id==='source_net_346'?{...a,viaContacts:[...a.viaContacts,{id:via.pcb_via_id,x,y,annulusSamplesInPlane:32,total:32}],uniqueViaCount:a.uniqueViaCount+1}:a),candidate=[...next,via];const contacts=refreshDdrPlaneContacts(newAudit,candidate.filter((e:any)=>e.type==='pcb_copper_pour'),candidate);accepted={candidate,via,planned,physical,planeAudit:contacts};break}}catch(e){trials.push({x,y,radius,reason:String(e)})}}if(accepted||Date.now()-started>55000)break}
write('audit.json',{captureHash:report.captureHash,parentDirectory:parent,parentCircuitSha256:objectHash(c),hostTracesSha256:objectHash(host.traces),signalVia:signal,sourceGround:c.find((e:any)=>e.type==='source_net'&&e.source_net_id==='source_net_346'),nearestExplicitSourceOwnedGroundVias:witnesses.slice(0,8),groundPlaneGeometry:planes.filter((p:any)=>p.source_net_id==='source_net_346').map((p:any)=>({id:p.pcb_copper_pour_id,layer:p.layer,sha256:objectHash(p),outerComponents:1,holes:p.brep_shape.inner_rings.length})),trials,elapsedMs:Date.now()-started,legalLocalProbe:accepted?{via:accepted.via,physical:accepted.physical}:null,scope:'Geometric contact evidence only: explicit source net identity, through layers and fresh 32/32 annulus samples on each ground plane. Nearest search conservatively includes explicitly source-owned standalone vias only, not unverified labels/parent aliases. No electrical return-distance pass/fail threshold or SI qualification.'});if(accepted){write('probe.circuit.json',accepted.candidate);write('probe-plane-audit.json',accepted.planeAudit);write('probe-power-antipad.json',accepted.planned)}console.log(JSON.stringify({out,nearest:witnesses[0]?.distanceMm,trials:trials.length,legal:accepted?.via??null,elapsedMs:Date.now()-started}))