gm/Id LUT¶
gm/Id lookup table for the procedural PTM sizer.
Loads a committed *_gmid.npz (produced by tools/extract_tech.py --gm-id)
and provides bilinear interpolation of the canonical gm/Id quantities over a
(gm/Id, L) grid, plus the inverse used at metric-evaluation time.
The table is the source of truth for device physics in the gm/Id path: it
replaces the square-law gm/gds/vds_sat and the 25·Id
weak-inversion ceiling heuristic with measured BSIM4 behaviour.
- Axes (both per polarity, fields shaped
(n_L, n_gmid)): gm_id_axisuniform gm/Id grid in 1/V (weak → strong inversion)l_axischannel lengths in µm
Fields: id_w (A/µm), gm_gds (V/V), ft (Hz), vdsat (V),
vgs (V, magnitude).
- class circuitgenome.sizer.shared.gmid_lut.GmIdLut(path)[source]¶
Bases:
objectInterpolating gm/Id table for both NMOS and PMOS.
- Parameters:
path (Path | str)
- gm_id_from_idw(dtype, id_w, l_um)[source]¶
Recover gm/Id from a current density
id_w(A/µm) at lengthl.Inverse of
id_per_w():id_wdecreases monotonically with gm/Id, so we invert the per-length curve. Used to read back the operating point from a solved(W, L, Id)for accurate metric evaluation.