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 }