code wiki / _hdl_build / nx_maskless.nx
nx_maskless.nx source
↩ module page · 26 lines · 1746 B
1// nx_maskless.nx -- LIB: MASKLESS lithography twin (DMD / projector direct-write, the CMU Hacker Fab approach). Instead
2// of a physical photomask (a mask shop = capital + a bought "vitamin" + slow iteration), a Digital Micromirror Device
3// projects the chip layout BITMAP straight onto the resist. Our sovereign layout (place-and-route -> per-layer bitmap)
4// feeds the DMD directly -> no mask shop, and a design change is just a NEW BITMAP (zero cost) so the fab is instantly
5// reprogrammable -- the researcher can iterate. Models: projected feature = DMD pixel / demagnification, the field of
6// view, field-stitching for larger dies, and the mask-shop cost eliminated. never-brick #26: pure arithmetic. license_tier: ORIGINAL
7import "nx_syscalls.nx"
8
9// projected feature size (nm) = DMD pixel (nm) / optical demagnification.
10func ml_feature_nm(dmd_pixel_nm: i64, demag: i64) -> i64 { if demag <= 0 { return 0 } return dmd_pixel_nm / demag }
11
12// field of view (um) covered in one exposure = DMD pixels across * projected feature (nm) / 1000.
13func ml_field_um(dmd_pixels: i64, feature_nm: i64) -> i64 { return dmd_pixels * feature_nm / 1000 }
14
15// fields needed to cover a die (stitching) = ceil(die/field) per side, squared.
16func ml_fields(die_um: i64, field_um: i64) -> i64 {
17 if field_um <= 0 { return 0 }
18 let per: i64 = (die_um + field_um - 1) / field_um
19 return per * per
20}
21
22// mask-shop cost ELIMINATED = layers * mask cost each (maskless pays this ONCE in DMD hardware, not per design).
23func ml_mask_saved(layers: i64, mask_cost_each: i64) -> i64 { return layers * mask_cost_each }
24
25// cost to change a design layer with maskless = 0 (just a new bitmap; vs a new physical mask).
26func ml_reprogram_cost() -> i64 { return 0 }