code wiki / _hdl_build / nx_micron_geom.nx

nx_micron_geom.nx

buildroot/runtime/_hdl_build/nx_micron_geom.nx

2447 B49 linesdepth 2pulls 2 transitivereach 6 importersview sourcekind library
docsdependenciesstructsconstsfunctions

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

nx_syscalls.nx nx_micron_geom.nx nx_mask_geom.nx nx_metrology.nx nx_precision_test.nx

imports: nx_syscalls.nx

imported by: nx_mask_geom.nxnx_metrology.nxnx_precision_test.nx

structs

none

consts

13const MG_NM_PER_UM: i64 = 1000
14const MG_NM_PER_MM: i64 = 1000000

functions

16func mg_um(x_um: i64) -> i64 { return x_um * MG_NM_PER_UM }
called by 1: main
17func mg_mm(x_mm: i64) -> i64 { return x_mm * MG_NM_PER_MM }
called by 1: main
20func mg_to_um_floor(nm: i64) -> i64 { return nm / MG_NM_PER_UM }
called by 1: main
24func mg_scale_ppm(nominal_nm: i64, ppm: i64) -> i64
called by 2: mg_correctmain
31func mg_correct(nominal_nm: i64, ppm: i64, offset_nm: i64) -> i64
called by 1: main calls 1: mg_scale_ppm
37func mg_step_resolution_nm(steps_per_mm: i64) -> i64
called by 2: mg_can_addressmain
44func mg_can_address(steps_per_mm: i64, feature_nm: i64) -> i64
called by 1: main calls 1: mg_step_resolution_nm