code wiki / _hdl_build / nx_micron_geom.nx
nx_micron_geom.nx
buildroot/runtime/_hdl_build/nx_micron_geom.nx
about
nx_micron_geom.nx -- SHARED SUB-MICRON PRECISION SUBSTRATE (operator: "i want the printer to be
able to print cpus and other hardware, i want that level of accuracy"). The machine-agnostic
coordinate layer BOTH the FDM printer (0.1mm class) AND the future sovereign litho stepper
(sub-micron, CPU class) inherit. Unit = 1 NANOMETER (1 unit = 1nm). int64 spans +/-9.2e18 nm
= +/-9.2 BILLION meters at nm resolution -- a 256mm bed is 2.56e8 nm, so we have ~10 decimal
orders of headroom; a 5nm transistor gate is 5 units. One number system, plastic bracket to
silicon gate.
Scale-calibration: real stages have a linear scale error (steps/mm slightly off); we correct in
PARTS-PER-MILLION so the SAME planner output drives a coarse or a precision stage accurately.
LAWS: struct-free, integer-only. license_tier: ORIGINAL
dependencies 1 imports · 3 importers
imports: nx_syscalls.nx
imported by: nx_mask_geom.nxnx_metrology.nxnx_precision_test.nx
structs
| none |
consts
| 13 | const MG_NM_PER_UM: i64 = 1000 |
| 14 | const MG_NM_PER_MM: i64 = 1000000 |
functions
| 16 | func mg_um(x_um: i64) -> i64 { return x_um * MG_NM_PER_UM } called by 1: main |
| 17 | func mg_mm(x_mm: i64) -> i64 { return x_mm * MG_NM_PER_MM } called by 1: main |
| 20 | func mg_to_um_floor(nm: i64) -> i64 { return nm / MG_NM_PER_UM } called by 1: main |
| 24 | func mg_scale_ppm(nominal_nm: i64, ppm: i64) -> i64 |
| 31 | func mg_correct(nominal_nm: i64, ppm: i64, offset_nm: i64) -> i64 |
| 37 | func mg_step_resolution_nm(steps_per_mm: i64) -> i64 |
| 44 | func mg_can_address(steps_per_mm: i64, feature_nm: i64) -> i64 |