ASAP7 cell-name format¶
Verification snapshot for the ASAP7 7.5-track standard-cell library, used as the
reference for openlithohub.data.asap7.resolve_cell_name.
Source: asap7sc7p5t_28/LEF/asap7sc7p5t_28_R_1x_220121a.lef
Verified: 2026-05-22 via direct download (212 MACRO definitions, 373 KB).
Canonical pattern (7.5-track library)¶
FUNC— functional name in caps:INV,NAND2,NOR2,AOI21,AO22,OAI332,XOR2,DFFHQNx,SDFHx,BUFx,MAJx,CKINVDC,ICG, ...DRIVE— drive strength suffix:x1,x2,x4,x10, ..., or fractionalxp33,xp5,xp67,x1p5,x6p67,x9p33. Fractional drives usepfor the decimal separator.FLAVOR— Vt / corner variant:R(regular),L(low-Vt — faster, leakier),SL(super-low-Vt),SRAM(SRAM-bitcell-adjacent variant).
Examples (verified, not guessed)¶
| Function | Cell name |
|---|---|
| Inverter | INVx1_ASAP7_75t_R |
| 2-NAND | NAND2x1_ASAP7_75t_R |
| 2-NOR | NOR2x1_ASAP7_75t_R |
| AOI21 | AOI22xp5_ASAP7_75t_R |
| Buffer | BUFx2_ASAP7_75t_R |
| DFF (Q,~Q) | DFFHQNx1_ASAP7_75t_R |
| DFF (Q) | DFFHQx4_ASAP7_75t_R |
| Scan-DFF | SDFHx2_ASAP7_75t_R |
| Clock-INV | CKINVDCx20_ASAP7_75t_R |
| ICG | ICGx6p67DC_ASAP7_75t_R |
| Filler | FILLERxp5_ASAP7_75t_R |
Five LEF files in LEF/ of the 7.5T submodule¶
| File | Purpose |
|---|---|
asap7sc7p5t_28_R_1x_220121a.lef |
Regular-Vt cells (212 MACROs) |
asap7sc7p5t_28_L_1x_220121a.lef |
Low-Vt cells |
asap7sc7p5t_28_SL_1x_220121a.lef |
Super-low-Vt cells |
asap7sc7p5t_28_SRAM_1x_220121a.lef |
SRAM-bitcell-adjacent cells |
IO_cell/ |
I/O ring / pad cells |
scaled/ |
4× shrunk variants (the file-size-tagged 1x is the un-shrunk reference) |
The 28 in asap7sc7p5t_28_* refers to the 2.8 nm-pitch fin grid (28 fin
half-pitches). The 6T sibling library uses the analogous pattern:
asap7sc6t_26_* (26 = 2.6 nm-pitch, 6-track height).
How Asap7Dataset consumes this¶
When the user passes a plain function name ("INV", "NAND2", "DFFHQ"), the
dataset adapter resolves it transparently:
- Default
flavor="R",drive="x1",track="75"(smallest regular-Vt drive, 7.5-track library). - Compose
f"{func}{drive}_ASAP7_{track}t_{flavor}". - Look up in the GDS by that exact string.
Set Asap7Dataset(..., resolve_shorthand=False) to opt out and require
exact-match canonical names. The 6T variant uses _ASAP7_65t_ instead of
_ASAP7_75t_; pass track="6" to resolve_cell_name to target it.
Out-of-scope here¶
Generating GDS cutouts of individual standard cells (vs. routed blocks) would
require either (a) the cell-library GDS submodule download flow, or (b) an
OpenROAD-driven flow that builds a tiny test design instantiating just those
cells. The current adapter loads the cells directly from the
asap7sc7p5t_27/GDS/ submodule. Cutting the cells from a routed design is a
future enhancement.