seveibar/am3352-ram-dogbone-and-single-layer-route-test

AM3352BZCZ100 processor connected to a W631GG6MB-12 DDR3 memory chip through a routed, length-matched 16-bit DDR interface with clock/data-strobe pairs and control/address signals.

Version
0.0.9
License
unset
Stars
0

design/safe-meander-criteria.md

# V3: copper spacing and selective meanders

Status: **experimental, not published**. Version 0.0.4 fails this audit. Native
cross-net DRC and simple centerlines did not establish same-net copper clearance.

Hard gates, evaluated before scoring aesthetics:

- Preserve all 47 connections, original component positions and 94 dogbone vias.
- No additional signal-routing vias; one layer per bus.
- 0.10 mm trace width, 0.10 mm cross-net AND nonlocal same-net edge clearance.
- Ordinary routing uses horizontal, vertical and 45-degree diagonals.
- Ordinary corners change heading by at most 45 degrees. Chamfer a 90-degree
  corner with a straight 45-degree segment only when copper clearance permits.
- Curves belong to explicitly generated tuning sections; do not fillet the whole route.
- Meander centerline radius at least 0.12 mm (0.07 mm inner copper radius).
  Four tangent quarter circles join the straight entrance, legs, plateau and exit.
  The minimum footprint is 0.50 mm wide and 0.24 mm high.
- Tessellate curves at no more than 5 degrees per chord. The independent audit
  also rejects unsupported non-octilinear chords longer than 0.06 mm.
- Bus skew at most 0.635 mm, pair skew at most 0.127 mm, measured AFTER shaping.
  Failure to achieve a target is a failure, never a reason to shrink the radius,
  add ratchet teeth, or reinstate elastic tuning.

After all gates pass, rank by unnecessary bends, short straight segments,
meander count and total excess length. A lower aesthetic score cannot compensate
for any failed gate.

## Independent self-spacing audit

`scripts/audit-route-shape.py` checks segment pairs on each continuous signal
route. Only points separated by less than 0.30 mm of path arclength are considered
local. For segment pairs partly inside that neighborhood it minimizes distance
over the remaining parameter domain; it does not skip the entire segment pair.
Consequently subdivision cannot conceal a fold-back or contact. The 0.30 mm
local window permits conventional 45-degree corners and the specified 0.12 mm
curves. Acute returns also fail the angle/radius gates.

Numerical comparison tolerance is 0.0001 mm for same-net center spacing and
0.0005 mm for circumradius. These are numerical tolerances, not relaxed design rules.

## Findings and candidate

The stricter arclength-clipped audit finds self-contact on 6 nets and inadequate
same-net spacing on 20 nets in v0.0.4. Its 5-degree heading increments also hide
undersized curves. Earlier segment-pair exclusions undercounted these defects.

The untuned routes have no self-contact or same-net spacing violations. A local
candidate rebuilt from them with 0.12 mm meanders and clearance-checked straight
chamfers passes the shape gates, but does not yet meet every length target.
Do not publish that candidate as a completed length-matched result.

`routing/safe-meanders.ts` contains the replacement tuning primitive. It is not
wired into the published four-phase pipeline yet; routing must first allocate
sufficient tuning room. The old elastic matcher and whole-route rounder are not
acceptable fallbacks under these criteria.