Layout#
Layout driven flow#
You can import the PDK and layout any of the standard cells
import gdsfactory as gf
import sky130
import sky130.components as sc
import sky130.tech as st
If you want to see what are the cells available:
dir(sc)
['LAYER',
'PATH',
'__builtins__',
'__cached__',
'__doc__',
'__file__',
'__loader__',
'__name__',
'__package__',
'__spec__',
'add_ports',
'add_ports_m1',
'add_ports_m2',
'cell',
'gdsdir',
'gf',
'import_gds',
'partial',
'sky130_fd_pr__cap_vpp_02p4x04p6_m1m2_noshield',
'sky130_fd_pr__cap_vpp_02p7x06p1_m1m2m3m4_shieldl1_fingercap',
'sky130_fd_pr__cap_vpp_02p7x11p1_m1m2m3m4_shieldl1_fingercap',
'sky130_fd_pr__cap_vpp_02p7x21p1_m1m2m3m4_shieldl1_fingercap',
'sky130_fd_pr__cap_vpp_02p7x41p1_m1m2m3m4_shieldl1_fingercap',
'sky130_fd_pr__cap_vpp_02p9x06p1_m1m2m3m4_shieldl1_fingercap2',
'sky130_fd_pr__cap_vpp_03p9x03p9_m1m2_shieldl1_floatm3',
'sky130_fd_pr__cap_vpp_04p4x04p6_l1m1m2_noshield',
'sky130_fd_pr__cap_vpp_04p4x04p6_l1m1m2_noshield_o2subcell',
'sky130_fd_pr__cap_vpp_04p4x04p6_l1m1m2_shieldpo_floatm3',
'sky130_fd_pr__cap_vpp_04p4x04p6_m1m2_noshield',
'sky130_fd_pr__cap_vpp_04p4x04p6_m1m2_noshield_o2',
'sky130_fd_pr__cap_vpp_04p4x04p6_m1m2_shieldl1',
'sky130_fd_pr__cap_vpp_04p4x04p6_m1m2m3_shieldl1',
'sky130_fd_pr__cap_vpp_04p4x04p6_m1m2m3_shieldl1m5_floatm4',
'sky130_fd_pr__cap_vpp_04p4x04p6_m1m2m3_shieldl1m5_floatm4_top',
'sky130_fd_pr__cap_vpp_05p9x05p9_m1m2m3m4_shieldl1_wafflecap',
'sky130_fd_pr__cap_vpp_06p8x06p1_l1m1m2m3_shieldpom4',
'sky130_fd_pr__cap_vpp_06p8x06p1_l1m1m2m3_shieldpom4_top',
'sky130_fd_pr__cap_vpp_06p8x06p1_m1m2m3_shieldl1m4',
'sky130_fd_pr__cap_vpp_06p8x06p1_m1m2m3_shieldl1m4_top',
'sky130_fd_pr__cap_vpp_08p6x07p8_l1m1m2_noshield',
'sky130_fd_pr__cap_vpp_08p6x07p8_l1m1m2_noshield_o2subcell',
'sky130_fd_pr__cap_vpp_08p6x07p8_l1m1m2_shieldpo_floatm3',
'sky130_fd_pr__cap_vpp_08p6x07p8_m1m2_noshield',
'sky130_fd_pr__cap_vpp_08p6x07p8_m1m2_shieldl1',
'sky130_fd_pr__cap_vpp_08p6x07p8_m1m2m3_shieldl1',
'sky130_fd_pr__cap_vpp_08p6x07p8_m1m2m3_shieldl1m5_floatm4',
'sky130_fd_pr__cap_vpp_08p6x07p8_m1m2m3_shieldl1m5_floatm4_top',
'sky130_fd_pr__cap_vpp_11p3x11p3_m1m2m3m4_shieldl1_wafflecap',
'sky130_fd_pr__cap_vpp_11p3x11p8_l1m1m2m3m4_shieldm5_nhv',
'sky130_fd_pr__cap_vpp_11p3x11p8_l1m1m2m3m4_shieldm5_nhvtop',
'sky130_fd_pr__cap_vpp_11p5x11p7_l1m1m2_noshield',
'sky130_fd_pr__cap_vpp_11p5x11p7_l1m1m2_shieldpom3',
'sky130_fd_pr__cap_vpp_11p5x11p7_l1m1m2m3_shieldm4',
'sky130_fd_pr__cap_vpp_11p5x11p7_l1m1m2m3_shieldm4_top',
'sky130_fd_pr__cap_vpp_11p5x11p7_l1m1m2m3_shieldpom4',
'sky130_fd_pr__cap_vpp_11p5x11p7_l1m1m2m3_shieldpom4_top',
'sky130_fd_pr__cap_vpp_11p5x11p7_l1m1m2m3m4_shieldm5',
'sky130_fd_pr__cap_vpp_11p5x11p7_l1m1m2m3m4_shieldm5_top',
'sky130_fd_pr__cap_vpp_11p5x11p7_l1m1m2m3m4_shieldpom5',
'sky130_fd_pr__cap_vpp_11p5x11p7_l1m1m2m3m4_shieldpom5_top',
'sky130_fd_pr__cap_vpp_11p5x11p7_l1m1m2m3m4_shieldpom5_x',
'sky130_fd_pr__cap_vpp_11p5x11p7_l1m1m2m3m4_shieldpom5_x6',
'sky130_fd_pr__cap_vpp_11p5x11p7_l1m1m2m3m4_shieldpom5_x7',
'sky130_fd_pr__cap_vpp_11p5x11p7_l1m1m2m3m4_shieldpom5_x8',
'sky130_fd_pr__cap_vpp_11p5x11p7_l1m1m2m3m4_shieldpom5_x9',
'sky130_fd_pr__cap_vpp_11p5x11p7_l1m1m2m3m4_shieldpom5_xtop',
'sky130_fd_pr__cap_vpp_11p5x11p7_m1m2_noshield',
'sky130_fd_pr__cap_vpp_11p5x11p7_m1m2_shieldl1',
'sky130_fd_pr__cap_vpp_11p5x11p7_m1m2m3_shieldl1',
'sky130_fd_pr__cap_vpp_11p5x11p7_m1m2m3_shieldl1m5_floatm4',
'sky130_fd_pr__cap_vpp_11p5x11p7_m1m2m3_shieldl1m5_floatm4_top',
'sky130_fd_pr__cap_vpp_11p5x11p7_m1m2m3m4_shieldl1m5',
'sky130_fd_pr__cap_vpp_11p5x11p7_m1m2m3m4_shieldl1m5_top',
'sky130_fd_pr__cap_vpp_11p5x11p7_m1m2m3m4_shieldm5',
'sky130_fd_pr__cap_vpp_11p5x11p7_m1m4_noshield',
'sky130_fd_pr__cap_vpp_11p5x11p7_pol1m1m2m3m4m5_noshield',
'sky130_fd_pr__cap_vpp_11p5x23p1_pol1m1m2m3m4m5_noshield',
'sky130_fd_pr__cap_vpp_22p5x11p7_pol1m1m2m3m4m5_noshield',
'sky130_fd_pr__cap_vpp_22p5x23p1_pol1m1m2m3m4m5_noshield',
'sky130_fd_pr__cap_vpp_33p6x11p7_pol1m1m2m3m4m5_noshield',
'sky130_fd_pr__cap_vpp_33p6x23p1_pol1m1m2m3m4m5_noshield',
'sky130_fd_pr__cap_vpp_44p7x11p7_pol1m1m2m3m4m5_noshield',
'sky130_fd_pr__cap_vpp_44p7x23p1_pol1m1m2m3m4m5_noshield',
'sky130_fd_pr__cap_vpp_55p8x11p7_pol1m1m2m3m4m5_noshield',
'sky130_fd_pr__cap_vpp_55p8x11p7_pol1m1m2m3m4m5_noshield_m5pullin',
'sky130_fd_pr__cap_vpp_55p8x23p1_pol1m1m2m3m4m5_noshield',
'sky130_fd_pr__cap_vpp_55p8x23p1_pol1m1m2m3m4m5_noshield_m5pullin',
'sky130_fd_pr__cap_vpp_55p8x23p1_pol1m1m2m3m4m5_noshield_test',
'sky130_fd_pr__esd_rf_nfet_20v0_hbm_21vW60p00',
'sky130_fd_pr__esd_rf_nfet_20v0_hbm_32vW60p00',
'sky130_fd_pr__esd_rf_nfet_20v0_iec_21vW60p00',
'sky130_fd_pr__esd_rf_nfet_20v0_iec_32vW60p00',
'sky130_fd_pr__rf_aura_blocking',
'sky130_fd_pr__rf_aura_drc_flag_check',
'sky130_fd_pr__rf_aura_lvs_drc',
'sky130_fd_pr__rf_nfet_01v8_aM02W1p65L0p15',
'sky130_fd_pr__rf_nfet_01v8_aM02W1p65L0p18',
'sky130_fd_pr__rf_nfet_01v8_aM02W1p65L0p25',
'sky130_fd_pr__rf_nfet_01v8_aM02W3p00L0p15',
'sky130_fd_pr__rf_nfet_01v8_aM02W3p00L0p18',
'sky130_fd_pr__rf_nfet_01v8_aM02W3p00L0p25',
'sky130_fd_pr__rf_nfet_01v8_aM02W5p00L0p15',
'sky130_fd_pr__rf_nfet_01v8_aM02W5p00L0p18',
'sky130_fd_pr__rf_nfet_01v8_aM02W5p00L0p25',
'sky130_fd_pr__rf_nfet_01v8_aM04W1p65L0p15',
'sky130_fd_pr__rf_nfet_01v8_aM04W1p65L0p18',
'sky130_fd_pr__rf_nfet_01v8_aM04W1p65L0p25',
'sky130_fd_pr__rf_nfet_01v8_aM04W3p00L0p15',
'sky130_fd_pr__rf_nfet_01v8_aM04W3p00L0p18',
'sky130_fd_pr__rf_nfet_01v8_aM04W3p00L0p25',
'sky130_fd_pr__rf_nfet_01v8_aM04W5p00L0p15',
'sky130_fd_pr__rf_nfet_01v8_aM04W5p00L0p18',
'sky130_fd_pr__rf_nfet_01v8_aM04W5p00L0p25',
'sky130_fd_pr__rf_nfet_01v8_bM02W1p65L0p15',
'sky130_fd_pr__rf_nfet_01v8_bM02W1p65L0p18',
'sky130_fd_pr__rf_nfet_01v8_bM02W1p65L0p25',
'sky130_fd_pr__rf_nfet_01v8_bM02W3p00L0p15',
'sky130_fd_pr__rf_nfet_01v8_bM02W3p00L0p18',
'sky130_fd_pr__rf_nfet_01v8_bM02W3p00L0p25',
'sky130_fd_pr__rf_nfet_01v8_bM02W5p00L0p15',
'sky130_fd_pr__rf_nfet_01v8_bM02W5p00L0p18',
'sky130_fd_pr__rf_nfet_01v8_bM02W5p00L0p25',
'sky130_fd_pr__rf_nfet_01v8_bM04W1p65L0p15',
'sky130_fd_pr__rf_nfet_01v8_bM04W1p65L0p18',
'sky130_fd_pr__rf_nfet_01v8_bM04W1p65L0p25',
'sky130_fd_pr__rf_nfet_01v8_bM04W3p00L0p15',
'sky130_fd_pr__rf_nfet_01v8_bM04W3p00L0p18',
'sky130_fd_pr__rf_nfet_01v8_bM04W3p00L0p25',
'sky130_fd_pr__rf_nfet_01v8_bM04W5p00L0p15',
'sky130_fd_pr__rf_nfet_01v8_bM04W5p00L0p18',
'sky130_fd_pr__rf_nfet_01v8_bM04W5p00L0p25',
'sky130_fd_pr__rf_nfet_01v8_hcM04W3p00L0p15',
'sky130_fd_pr__rf_nfet_01v8_hcM04W5p00L0p15',
'sky130_fd_pr__rf_nfet_01v8_lvt_aF02W0p42L0p15',
'sky130_fd_pr__rf_nfet_01v8_lvt_aF02W0p84L0p15',
'sky130_fd_pr__rf_nfet_01v8_lvt_aF02W1p65L0p15',
'sky130_fd_pr__rf_nfet_01v8_lvt_aF02W3p00L0p15',
'sky130_fd_pr__rf_nfet_01v8_lvt_aF04W0p42L0p15',
'sky130_fd_pr__rf_nfet_01v8_lvt_aF04W0p84L0p15',
'sky130_fd_pr__rf_nfet_01v8_lvt_aF04W1p65L0p15',
'sky130_fd_pr__rf_nfet_01v8_lvt_aF04W3p00L0p15',
'sky130_fd_pr__rf_nfet_01v8_lvt_aF06W0p42L0p15',
'sky130_fd_pr__rf_nfet_01v8_lvt_aF06W0p84L0p15',
'sky130_fd_pr__rf_nfet_01v8_lvt_aF06W1p65L0p15',
'sky130_fd_pr__rf_nfet_01v8_lvt_aF06W3p00L0p15',
'sky130_fd_pr__rf_nfet_01v8_lvt_aF08W0p42L0p15',
'sky130_fd_pr__rf_nfet_01v8_lvt_aF08W0p84L0p15',
'sky130_fd_pr__rf_nfet_01v8_lvt_aF08W1p65L0p15',
'sky130_fd_pr__rf_nfet_01v8_lvt_aF08W3p00L0p15',
'sky130_fd_pr__rf_nfet_01v8_lvt_aM02W1p65L0p15',
'sky130_fd_pr__rf_nfet_01v8_lvt_aM02W1p65L0p18',
'sky130_fd_pr__rf_nfet_01v8_lvt_aM02W1p65L0p25',
'sky130_fd_pr__rf_nfet_01v8_lvt_aM02W3p00L0p15',
'sky130_fd_pr__rf_nfet_01v8_lvt_aM02W3p00L0p18',
'sky130_fd_pr__rf_nfet_01v8_lvt_aM02W3p00L0p25',
'sky130_fd_pr__rf_nfet_01v8_lvt_aM02W5p00L0p15',
'sky130_fd_pr__rf_nfet_01v8_lvt_aM02W5p00L0p18',
'sky130_fd_pr__rf_nfet_01v8_lvt_aM02W5p00L0p25',
'sky130_fd_pr__rf_nfet_01v8_lvt_aM04W1p65L0p15',
'sky130_fd_pr__rf_nfet_01v8_lvt_aM04W1p65L0p18',
'sky130_fd_pr__rf_nfet_01v8_lvt_aM04W1p65L0p25',
'sky130_fd_pr__rf_nfet_01v8_lvt_aM04W3p00L0p15',
'sky130_fd_pr__rf_nfet_01v8_lvt_aM04W3p00L0p18',
'sky130_fd_pr__rf_nfet_01v8_lvt_aM04W3p00L0p25',
'sky130_fd_pr__rf_nfet_01v8_lvt_aM04W5p00L0p15',
'sky130_fd_pr__rf_nfet_01v8_lvt_aM04W5p00L0p18',
'sky130_fd_pr__rf_nfet_01v8_lvt_aM04W5p00L0p25',
'sky130_fd_pr__rf_nfet_01v8_lvt_bM02W1p65L0p15',
'sky130_fd_pr__rf_nfet_01v8_lvt_bM02W1p65L0p18',
'sky130_fd_pr__rf_nfet_01v8_lvt_bM02W1p65L0p25',
'sky130_fd_pr__rf_nfet_01v8_lvt_bM02W3p00L0p15',
'sky130_fd_pr__rf_nfet_01v8_lvt_bM02W3p00L0p18',
'sky130_fd_pr__rf_nfet_01v8_lvt_bM02W3p00L0p25',
'sky130_fd_pr__rf_nfet_01v8_lvt_bM02W5p00L0p15',
'sky130_fd_pr__rf_nfet_01v8_lvt_bM02W5p00L0p18',
'sky130_fd_pr__rf_nfet_01v8_lvt_bM02W5p00L0p25',
'sky130_fd_pr__rf_nfet_01v8_lvt_bM04W1p65L0p15',
'sky130_fd_pr__rf_nfet_01v8_lvt_bM04W1p65L0p18',
'sky130_fd_pr__rf_nfet_01v8_lvt_bM04W1p65L0p25',
'sky130_fd_pr__rf_nfet_01v8_lvt_bM04W3p00L0p15',
'sky130_fd_pr__rf_nfet_01v8_lvt_bM04W3p00L0p18',
'sky130_fd_pr__rf_nfet_01v8_lvt_bM04W3p00L0p25',
'sky130_fd_pr__rf_nfet_01v8_lvt_bM04W5p00L0p15',
'sky130_fd_pr__rf_nfet_01v8_lvt_bM04W5p00L0p18',
'sky130_fd_pr__rf_nfet_01v8_lvt_bM04W5p00L0p25',
'sky130_fd_pr__rf_nfet_01v8_lvt_cM02W1p65L0p15',
'sky130_fd_pr__rf_nfet_01v8_lvt_cM02W1p65L0p18',
'sky130_fd_pr__rf_nfet_01v8_lvt_cM02W1p65L0p25',
'sky130_fd_pr__rf_nfet_01v8_lvt_cM02W3p00L0p15',
'sky130_fd_pr__rf_nfet_01v8_lvt_cM02W3p00L0p18',
'sky130_fd_pr__rf_nfet_01v8_lvt_cM02W3p00L0p25',
'sky130_fd_pr__rf_nfet_01v8_lvt_cM02W5p00L0p15',
'sky130_fd_pr__rf_nfet_01v8_lvt_cM02W5p00L0p18',
'sky130_fd_pr__rf_nfet_01v8_lvt_cM02W5p00L0p25',
'sky130_fd_pr__rf_nfet_01v8_lvt_cM04W1p65L0p15',
'sky130_fd_pr__rf_nfet_01v8_lvt_cM04W1p65L0p18',
'sky130_fd_pr__rf_nfet_01v8_lvt_cM04W1p65L0p25',
'sky130_fd_pr__rf_nfet_01v8_lvt_cM04W3p00L0p15',
'sky130_fd_pr__rf_nfet_01v8_lvt_cM04W3p00L0p18',
'sky130_fd_pr__rf_nfet_01v8_lvt_cM04W3p00L0p25',
'sky130_fd_pr__rf_nfet_01v8_lvt_cM04W5p00L0p15',
'sky130_fd_pr__rf_nfet_01v8_lvt_cM04W5p00L0p18',
'sky130_fd_pr__rf_nfet_01v8_lvt_cM04W5p00L0p25',
'sky130_fd_pr__rf_nfet_01v8_mcM04W3p00L0p15',
'sky130_fd_pr__rf_nfet_01v8_mcM04W5p00L0p15',
'sky130_fd_pr__rf_nfet_20v0_aup',
'sky130_fd_pr__rf_nfet_20v0_noptap_iso',
'sky130_fd_pr__rf_nfet_20v0_nvt_aup',
'sky130_fd_pr__rf_nfet_20v0_nvt_noptap_iso',
'sky130_fd_pr__rf_nfet_20v0_nvt_withptap',
'sky130_fd_pr__rf_nfet_20v0_nvt_withptap_iso',
'sky130_fd_pr__rf_nfet_20v0_withptap',
'sky130_fd_pr__rf_nfet_20v0_withptap_iso',
'sky130_fd_pr__rf_nfet_20v0_zvt_withptap',
'sky130_fd_pr__rf_nfet_g5v0d10v5_aM04W3p00L0p50',
'sky130_fd_pr__rf_nfet_g5v0d10v5_aM04W5p00L0p50',
'sky130_fd_pr__rf_nfet_g5v0d10v5_aM04W7p00L0p50',
'sky130_fd_pr__rf_nfet_g5v0d10v5_aM10W3p00L0p50',
'sky130_fd_pr__rf_nfet_g5v0d10v5_aM10W5p00L0p50',
'sky130_fd_pr__rf_nfet_g5v0d10v5_aM10W7p00L0p50',
'sky130_fd_pr__rf_nfet_g5v0d10v5_bM02W3p00L0p50',
'sky130_fd_pr__rf_nfet_g5v0d10v5_bM02W5p00L0p50',
'sky130_fd_pr__rf_nfet_g5v0d10v5_bM04W3p00L0p50',
'sky130_fd_pr__rf_nfet_g5v0d10v5_bM04W5p00L0p50',
'sky130_fd_pr__rf_nfet_g5v0d10v5_bM04W7p00L0p50',
'sky130_fd_pr__rf_nfet_g5v0d10v5_bM10W3p00L0p50',
'sky130_fd_pr__rf_nfet_g5v0d10v5_bM10W5p00L0p50',
'sky130_fd_pr__rf_nfet_g5v0d10v5_bM10W7p00L0p50',
'sky130_fd_pr__rf_npn_05v5_W1p00L1p00',
'sky130_fd_pr__rf_npn_05v5_W1p00L2p00',
'sky130_fd_pr__rf_npn_05v5_W1p00L4p00',
'sky130_fd_pr__rf_npn_05v5_W1p00L8p00',
'sky130_fd_pr__rf_npn_05v5_W2p00L2p00',
'sky130_fd_pr__rf_npn_05v5_W2p00L4p00',
'sky130_fd_pr__rf_npn_05v5_W2p00L8p00',
'sky130_fd_pr__rf_npn_05v5_W5p00L5p00',
'sky130_fd_pr__rf_npn_11v0_W1p00L1p00',
'sky130_fd_pr__rf_pfet_01v8_aF02W0p84L0p15',
'sky130_fd_pr__rf_pfet_01v8_aF02W1p68L0p15',
'sky130_fd_pr__rf_pfet_01v8_aF02W2p00L0p15',
'sky130_fd_pr__rf_pfet_01v8_aF02W3p00L0p15',
'sky130_fd_pr__rf_pfet_01v8_aF02W5p00L0p15',
'sky130_fd_pr__rf_pfet_01v8_aF04W0p84L0p15',
'sky130_fd_pr__rf_pfet_01v8_aF04W1p68L0p15',
'sky130_fd_pr__rf_pfet_01v8_aF04W2p00L0p15',
'sky130_fd_pr__rf_pfet_01v8_aF04W3p00L0p15',
'sky130_fd_pr__rf_pfet_01v8_aF04W5p00L0p15',
'sky130_fd_pr__rf_pfet_01v8_aF06W0p84L0p15',
'sky130_fd_pr__rf_pfet_01v8_aF06W1p68L0p15',
'sky130_fd_pr__rf_pfet_01v8_aF06W2p00L0p15',
'sky130_fd_pr__rf_pfet_01v8_aF06W3p00L0p15',
'sky130_fd_pr__rf_pfet_01v8_aF08W0p84L0p15',
'sky130_fd_pr__rf_pfet_01v8_aF08W1p68L0p15',
'sky130_fd_pr__rf_pfet_01v8_aM02W1p65L0p15',
'sky130_fd_pr__rf_pfet_01v8_aM02W1p65L0p18',
'sky130_fd_pr__rf_pfet_01v8_aM02W1p65L0p25',
'sky130_fd_pr__rf_pfet_01v8_aM02W3p00L0p15',
'sky130_fd_pr__rf_pfet_01v8_aM02W3p00L0p18',
'sky130_fd_pr__rf_pfet_01v8_aM02W3p00L0p25',
'sky130_fd_pr__rf_pfet_01v8_aM02W5p00L0p15',
'sky130_fd_pr__rf_pfet_01v8_aM02W5p00L0p18',
'sky130_fd_pr__rf_pfet_01v8_aM02W5p00L0p25',
'sky130_fd_pr__rf_pfet_01v8_aM04W1p65L0p15',
'sky130_fd_pr__rf_pfet_01v8_aM04W1p65L0p18',
'sky130_fd_pr__rf_pfet_01v8_aM04W1p65L0p25',
'sky130_fd_pr__rf_pfet_01v8_aM04W3p00L0p15',
'sky130_fd_pr__rf_pfet_01v8_aM04W3p00L0p18',
'sky130_fd_pr__rf_pfet_01v8_aM04W3p00L0p25',
'sky130_fd_pr__rf_pfet_01v8_aM04W5p00L0p15',
'sky130_fd_pr__rf_pfet_01v8_aM04W5p00L0p18',
'sky130_fd_pr__rf_pfet_01v8_aM04W5p00L0p25',
'sky130_fd_pr__rf_pfet_01v8_bM02W1p65L0p15',
'sky130_fd_pr__rf_pfet_01v8_bM02W1p65L0p18',
'sky130_fd_pr__rf_pfet_01v8_bM02W1p65L0p25',
'sky130_fd_pr__rf_pfet_01v8_bM02W3p00L0p15',
'sky130_fd_pr__rf_pfet_01v8_bM02W3p00L0p18',
'sky130_fd_pr__rf_pfet_01v8_bM02W3p00L0p25',
'sky130_fd_pr__rf_pfet_01v8_bM02W5p00L0p15',
'sky130_fd_pr__rf_pfet_01v8_bM02W5p00L0p18',
'sky130_fd_pr__rf_pfet_01v8_bM02W5p00L0p25',
'sky130_fd_pr__rf_pfet_01v8_bM04W1p65L0p15',
'sky130_fd_pr__rf_pfet_01v8_bM04W1p65L0p18',
'sky130_fd_pr__rf_pfet_01v8_bM04W1p65L0p25',
'sky130_fd_pr__rf_pfet_01v8_bM04W3p00L0p15',
'sky130_fd_pr__rf_pfet_01v8_bM04W3p00L0p18',
'sky130_fd_pr__rf_pfet_01v8_bM04W3p00L0p25',
'sky130_fd_pr__rf_pfet_01v8_bM04W5p00L0p15',
'sky130_fd_pr__rf_pfet_01v8_bM04W5p00L0p18',
'sky130_fd_pr__rf_pfet_01v8_bM04W5p00L0p25',
'sky130_fd_pr__rf_pfet_01v8_hcM04W3p00L0p15',
'sky130_fd_pr__rf_pfet_01v8_hcM04W5p00L0p15',
'sky130_fd_pr__rf_pfet_01v8_lvt_aM02W3p00L0p35',
'sky130_fd_pr__rf_pfet_01v8_lvt_aM02W3p00L0p50',
'sky130_fd_pr__rf_pfet_01v8_lvt_aM02W5p00L0p35',
'sky130_fd_pr__rf_pfet_01v8_lvt_aM02W5p00L0p50',
'sky130_fd_pr__rf_pfet_01v8_lvt_aM04W3p00L0p35',
'sky130_fd_pr__rf_pfet_01v8_lvt_aM04W3p00L0p50',
'sky130_fd_pr__rf_pfet_01v8_lvt_aM04W5p00L0p35',
'sky130_fd_pr__rf_pfet_01v8_lvt_aM04W5p00L0p50',
'sky130_fd_pr__rf_pfet_01v8_mcM04W3p00L0p15',
'sky130_fd_pr__rf_pfet_01v8_mcM04W5p00L0p15',
'sky130_fd_pr__rf_pfet_01v8_mvt_aF02W0p84L0p15',
'sky130_fd_pr__rf_pfet_20v0_withptap',
'sky130_fd_pr__rf_pnp_05v5_W0p68L0p68',
'sky130_fd_pr__rf_pnp_05v5_W3p40L3p40',
'sky130_fd_pr__rf_test_coil1',
'sky130_fd_pr__rf_test_coil2',
'sky130_fd_pr__rf_test_coil3',
'sky130_fd_sc_hd__a2111o_1',
'sky130_fd_sc_hd__a2111o_2',
'sky130_fd_sc_hd__a2111o_4',
'sky130_fd_sc_hd__a2111oi_0',
'sky130_fd_sc_hd__a2111oi_1',
'sky130_fd_sc_hd__a2111oi_2',
'sky130_fd_sc_hd__a2111oi_4',
'sky130_fd_sc_hd__a211o_1',
'sky130_fd_sc_hd__a211o_2',
'sky130_fd_sc_hd__a211o_4',
'sky130_fd_sc_hd__a211oi_1',
'sky130_fd_sc_hd__a211oi_2',
'sky130_fd_sc_hd__a211oi_4',
'sky130_fd_sc_hd__a21bo_1',
'sky130_fd_sc_hd__a21bo_2',
'sky130_fd_sc_hd__a21bo_4',
'sky130_fd_sc_hd__a21boi_0',
'sky130_fd_sc_hd__a21boi_1',
'sky130_fd_sc_hd__a21boi_2',
'sky130_fd_sc_hd__a21boi_4',
'sky130_fd_sc_hd__a21o_1',
'sky130_fd_sc_hd__a21o_2',
'sky130_fd_sc_hd__a21o_4',
'sky130_fd_sc_hd__a21oi_1',
'sky130_fd_sc_hd__a21oi_2',
'sky130_fd_sc_hd__a21oi_4',
'sky130_fd_sc_hd__a221o_1',
'sky130_fd_sc_hd__a221o_2',
'sky130_fd_sc_hd__a221o_4',
'sky130_fd_sc_hd__a221oi_1',
'sky130_fd_sc_hd__a221oi_2',
'sky130_fd_sc_hd__a221oi_4',
'sky130_fd_sc_hd__a222oi_1',
'sky130_fd_sc_hd__a22o_1',
'sky130_fd_sc_hd__a22o_2',
'sky130_fd_sc_hd__a22o_4',
'sky130_fd_sc_hd__a22oi_1',
'sky130_fd_sc_hd__a22oi_2',
'sky130_fd_sc_hd__a22oi_4',
'sky130_fd_sc_hd__a2bb2o_1',
'sky130_fd_sc_hd__a2bb2o_2',
'sky130_fd_sc_hd__a2bb2o_4',
'sky130_fd_sc_hd__a2bb2oi_1',
'sky130_fd_sc_hd__a2bb2oi_2',
'sky130_fd_sc_hd__a2bb2oi_4',
'sky130_fd_sc_hd__a311o_1',
'sky130_fd_sc_hd__a311o_2',
'sky130_fd_sc_hd__a311o_4',
'sky130_fd_sc_hd__a311oi_1',
'sky130_fd_sc_hd__a311oi_2',
'sky130_fd_sc_hd__a311oi_4',
'sky130_fd_sc_hd__a31o_1',
'sky130_fd_sc_hd__a31o_2',
'sky130_fd_sc_hd__a31o_4',
'sky130_fd_sc_hd__a31oi_1',
'sky130_fd_sc_hd__a31oi_2',
'sky130_fd_sc_hd__a31oi_4',
'sky130_fd_sc_hd__a32o_1',
'sky130_fd_sc_hd__a32o_2',
'sky130_fd_sc_hd__a32o_4',
'sky130_fd_sc_hd__a32oi_1',
'sky130_fd_sc_hd__a32oi_2',
'sky130_fd_sc_hd__a32oi_4',
'sky130_fd_sc_hd__a41o_1',
'sky130_fd_sc_hd__a41o_2',
'sky130_fd_sc_hd__a41o_4',
'sky130_fd_sc_hd__a41oi_1',
'sky130_fd_sc_hd__a41oi_2',
'sky130_fd_sc_hd__a41oi_4',
'sky130_fd_sc_hd__and2_0',
'sky130_fd_sc_hd__and2_1',
'sky130_fd_sc_hd__and2_2',
'sky130_fd_sc_hd__and2_4',
'sky130_fd_sc_hd__and2b_1',
'sky130_fd_sc_hd__and2b_2',
'sky130_fd_sc_hd__and2b_4',
'sky130_fd_sc_hd__and3_1',
'sky130_fd_sc_hd__and3_2',
'sky130_fd_sc_hd__and3_4',
'sky130_fd_sc_hd__and3b_1',
'sky130_fd_sc_hd__and3b_2',
'sky130_fd_sc_hd__and3b_4',
'sky130_fd_sc_hd__and4_1',
'sky130_fd_sc_hd__and4_2',
'sky130_fd_sc_hd__and4_4',
'sky130_fd_sc_hd__and4b_1',
'sky130_fd_sc_hd__and4b_2',
'sky130_fd_sc_hd__and4b_4',
'sky130_fd_sc_hd__and4bb_1',
'sky130_fd_sc_hd__and4bb_2',
'sky130_fd_sc_hd__and4bb_4',
'sky130_fd_sc_hd__buf_1',
'sky130_fd_sc_hd__buf_12',
'sky130_fd_sc_hd__buf_16',
'sky130_fd_sc_hd__buf_2',
'sky130_fd_sc_hd__buf_4',
'sky130_fd_sc_hd__buf_6',
'sky130_fd_sc_hd__buf_8',
'sky130_fd_sc_hd__bufbuf_16',
'sky130_fd_sc_hd__bufbuf_8',
'sky130_fd_sc_hd__bufinv_16',
'sky130_fd_sc_hd__bufinv_8',
'sky130_fd_sc_hd__clkbuf_1',
'sky130_fd_sc_hd__clkbuf_16',
'sky130_fd_sc_hd__clkbuf_2',
'sky130_fd_sc_hd__clkbuf_4',
'sky130_fd_sc_hd__clkbuf_8',
'sky130_fd_sc_hd__clkdlybuf4s15_1',
'sky130_fd_sc_hd__clkdlybuf4s15_2',
'sky130_fd_sc_hd__clkdlybuf4s18_1',
'sky130_fd_sc_hd__clkdlybuf4s18_2',
'sky130_fd_sc_hd__clkdlybuf4s25_1',
'sky130_fd_sc_hd__clkdlybuf4s25_2',
'sky130_fd_sc_hd__clkdlybuf4s50_1',
'sky130_fd_sc_hd__clkdlybuf4s50_2',
'sky130_fd_sc_hd__clkinv_1',
'sky130_fd_sc_hd__clkinv_16',
'sky130_fd_sc_hd__clkinv_2',
'sky130_fd_sc_hd__clkinv_4',
'sky130_fd_sc_hd__clkinv_8',
'sky130_fd_sc_hd__clkinvlp_2',
'sky130_fd_sc_hd__clkinvlp_4',
'sky130_fd_sc_hd__conb_1',
'sky130_fd_sc_hd__decap_12',
'sky130_fd_sc_hd__decap_3',
'sky130_fd_sc_hd__decap_4',
'sky130_fd_sc_hd__decap_6',
'sky130_fd_sc_hd__decap_8',
'sky130_fd_sc_hd__dfbbn_1',
'sky130_fd_sc_hd__dfbbn_2',
'sky130_fd_sc_hd__dfbbp_1',
'sky130_fd_sc_hd__dfrbp_1',
'sky130_fd_sc_hd__dfrbp_2',
'sky130_fd_sc_hd__dfrtn_1',
'sky130_fd_sc_hd__dfrtp_1',
'sky130_fd_sc_hd__dfrtp_2',
'sky130_fd_sc_hd__dfrtp_4',
'sky130_fd_sc_hd__dfsbp_1',
'sky130_fd_sc_hd__dfsbp_2',
'sky130_fd_sc_hd__dfstp_1',
'sky130_fd_sc_hd__dfstp_2',
'sky130_fd_sc_hd__dfstp_4',
'sky130_fd_sc_hd__dfxbp_1',
'sky130_fd_sc_hd__dfxbp_2',
'sky130_fd_sc_hd__dfxtp_1',
'sky130_fd_sc_hd__dfxtp_2',
'sky130_fd_sc_hd__dfxtp_4',
'sky130_fd_sc_hd__diode_2',
'sky130_fd_sc_hd__dlclkp_1',
'sky130_fd_sc_hd__dlclkp_2',
'sky130_fd_sc_hd__dlclkp_4',
'sky130_fd_sc_hd__dlrbn_1',
'sky130_fd_sc_hd__dlrbn_2',
'sky130_fd_sc_hd__dlrbp_1',
'sky130_fd_sc_hd__dlrbp_2',
'sky130_fd_sc_hd__dlrtn_1',
'sky130_fd_sc_hd__dlrtn_2',
'sky130_fd_sc_hd__dlrtn_4',
'sky130_fd_sc_hd__dlrtp_1',
'sky130_fd_sc_hd__dlrtp_2',
'sky130_fd_sc_hd__dlrtp_4',
'sky130_fd_sc_hd__dlxbn_1',
'sky130_fd_sc_hd__dlxbn_2',
'sky130_fd_sc_hd__dlxbp_1',
'sky130_fd_sc_hd__dlxtn_1',
'sky130_fd_sc_hd__dlxtn_2',
'sky130_fd_sc_hd__dlxtn_4',
'sky130_fd_sc_hd__dlxtp_1',
'sky130_fd_sc_hd__dlygate4sd1_1',
'sky130_fd_sc_hd__dlygate4sd2_1',
'sky130_fd_sc_hd__dlygate4sd3_1',
'sky130_fd_sc_hd__dlymetal6s2s_1',
'sky130_fd_sc_hd__dlymetal6s4s_1',
'sky130_fd_sc_hd__dlymetal6s6s_1',
'sky130_fd_sc_hd__ebufn_1',
'sky130_fd_sc_hd__ebufn_2',
'sky130_fd_sc_hd__ebufn_4',
'sky130_fd_sc_hd__ebufn_8',
'sky130_fd_sc_hd__edfxbp_1',
'sky130_fd_sc_hd__edfxtp_1',
'sky130_fd_sc_hd__einvn_0',
'sky130_fd_sc_hd__einvn_1',
'sky130_fd_sc_hd__einvn_2',
'sky130_fd_sc_hd__einvn_4',
'sky130_fd_sc_hd__einvn_8',
'sky130_fd_sc_hd__einvp_1',
'sky130_fd_sc_hd__einvp_2',
'sky130_fd_sc_hd__einvp_4',
'sky130_fd_sc_hd__einvp_8',
'sky130_fd_sc_hd__fa_1',
'sky130_fd_sc_hd__fa_2',
'sky130_fd_sc_hd__fa_4',
'sky130_fd_sc_hd__fah_1',
'sky130_fd_sc_hd__fahcin_1',
'sky130_fd_sc_hd__fahcon_1',
'sky130_fd_sc_hd__fill_1',
'sky130_fd_sc_hd__fill_2',
'sky130_fd_sc_hd__fill_4',
'sky130_fd_sc_hd__fill_8',
'sky130_fd_sc_hd__ha_1',
'sky130_fd_sc_hd__ha_2',
'sky130_fd_sc_hd__ha_4',
'sky130_fd_sc_hd__inv_1',
'sky130_fd_sc_hd__inv_12',
'sky130_fd_sc_hd__inv_16',
'sky130_fd_sc_hd__inv_2',
'sky130_fd_sc_hd__inv_4',
'sky130_fd_sc_hd__inv_6',
'sky130_fd_sc_hd__inv_8',
'sky130_fd_sc_hd__lpflow_bleeder_1',
'sky130_fd_sc_hd__lpflow_clkbufkapwr_1',
'sky130_fd_sc_hd__lpflow_clkbufkapwr_16',
'sky130_fd_sc_hd__lpflow_clkbufkapwr_2',
'sky130_fd_sc_hd__lpflow_clkbufkapwr_4',
'sky130_fd_sc_hd__lpflow_clkbufkapwr_8',
'sky130_fd_sc_hd__lpflow_clkinvkapwr_1',
'sky130_fd_sc_hd__lpflow_clkinvkapwr_16',
'sky130_fd_sc_hd__lpflow_clkinvkapwr_2',
'sky130_fd_sc_hd__lpflow_clkinvkapwr_4',
'sky130_fd_sc_hd__lpflow_clkinvkapwr_8',
'sky130_fd_sc_hd__lpflow_decapkapwr_12',
'sky130_fd_sc_hd__lpflow_decapkapwr_3',
'sky130_fd_sc_hd__lpflow_decapkapwr_4',
'sky130_fd_sc_hd__lpflow_decapkapwr_6',
'sky130_fd_sc_hd__lpflow_decapkapwr_8',
'sky130_fd_sc_hd__lpflow_inputiso0n_1',
'sky130_fd_sc_hd__lpflow_inputiso0p_1',
'sky130_fd_sc_hd__lpflow_inputiso1n_1',
'sky130_fd_sc_hd__lpflow_inputiso1p_1',
'sky130_fd_sc_hd__lpflow_inputisolatch_1',
'sky130_fd_sc_hd__lpflow_isobufsrc_1',
'sky130_fd_sc_hd__lpflow_isobufsrc_16',
'sky130_fd_sc_hd__lpflow_isobufsrc_2',
'sky130_fd_sc_hd__lpflow_isobufsrc_4',
'sky130_fd_sc_hd__lpflow_isobufsrc_8',
'sky130_fd_sc_hd__lpflow_isobufsrckapwr_16',
'sky130_fd_sc_hd__lpflow_lsbuf_lh_hl_isowell_tap_1',
'sky130_fd_sc_hd__lpflow_lsbuf_lh_hl_isowell_tap_2',
'sky130_fd_sc_hd__lpflow_lsbuf_lh_hl_isowell_tap_4',
'sky130_fd_sc_hd__lpflow_lsbuf_lh_isowell_4',
'sky130_fd_sc_hd__lpflow_lsbuf_lh_isowell_tap_1',
'sky130_fd_sc_hd__lpflow_lsbuf_lh_isowell_tap_2',
'sky130_fd_sc_hd__lpflow_lsbuf_lh_isowell_tap_4',
'sky130_fd_sc_hd__macro_sparecell',
'sky130_fd_sc_hd__maj3_1',
'sky130_fd_sc_hd__maj3_2',
'sky130_fd_sc_hd__maj3_4',
'sky130_fd_sc_hd__mux2_1',
'sky130_fd_sc_hd__mux2_2',
'sky130_fd_sc_hd__mux2_4',
'sky130_fd_sc_hd__mux2_8',
'sky130_fd_sc_hd__mux2i_1',
'sky130_fd_sc_hd__mux2i_2',
'sky130_fd_sc_hd__mux2i_4',
'sky130_fd_sc_hd__mux4_1',
'sky130_fd_sc_hd__mux4_2',
'sky130_fd_sc_hd__mux4_4',
'sky130_fd_sc_hd__nand2_1',
'sky130_fd_sc_hd__nand2_2',
'sky130_fd_sc_hd__nand2_4',
'sky130_fd_sc_hd__nand2_8',
'sky130_fd_sc_hd__nand2b_1',
'sky130_fd_sc_hd__nand2b_2',
'sky130_fd_sc_hd__nand2b_4',
'sky130_fd_sc_hd__nand3_1',
'sky130_fd_sc_hd__nand3_2',
'sky130_fd_sc_hd__nand3_4',
'sky130_fd_sc_hd__nand3b_1',
'sky130_fd_sc_hd__nand3b_2',
'sky130_fd_sc_hd__nand3b_4',
'sky130_fd_sc_hd__nand4_1',
'sky130_fd_sc_hd__nand4_2',
'sky130_fd_sc_hd__nand4_4',
'sky130_fd_sc_hd__nand4b_1',
'sky130_fd_sc_hd__nand4b_2',
'sky130_fd_sc_hd__nand4b_4',
'sky130_fd_sc_hd__nand4bb_1',
'sky130_fd_sc_hd__nand4bb_2',
'sky130_fd_sc_hd__nand4bb_4',
'sky130_fd_sc_hd__nor2_1',
'sky130_fd_sc_hd__nor2_2',
'sky130_fd_sc_hd__nor2_4',
'sky130_fd_sc_hd__nor2_8',
'sky130_fd_sc_hd__nor2b_1',
'sky130_fd_sc_hd__nor2b_2',
'sky130_fd_sc_hd__nor2b_4',
'sky130_fd_sc_hd__nor3_1',
'sky130_fd_sc_hd__nor3_2',
'sky130_fd_sc_hd__nor3_4',
'sky130_fd_sc_hd__nor3b_1',
'sky130_fd_sc_hd__nor3b_2',
'sky130_fd_sc_hd__nor3b_4',
'sky130_fd_sc_hd__nor4_1',
'sky130_fd_sc_hd__nor4_2',
'sky130_fd_sc_hd__nor4_4',
'sky130_fd_sc_hd__nor4b_1',
'sky130_fd_sc_hd__nor4b_2',
'sky130_fd_sc_hd__nor4b_4',
'sky130_fd_sc_hd__nor4bb_1',
'sky130_fd_sc_hd__nor4bb_2',
'sky130_fd_sc_hd__nor4bb_4',
'sky130_fd_sc_hd__o2111a_1',
'sky130_fd_sc_hd__o2111a_2',
'sky130_fd_sc_hd__o2111a_4',
'sky130_fd_sc_hd__o2111ai_1',
'sky130_fd_sc_hd__o2111ai_2',
'sky130_fd_sc_hd__o2111ai_4',
'sky130_fd_sc_hd__o211a_1',
'sky130_fd_sc_hd__o211a_2',
'sky130_fd_sc_hd__o211a_4',
'sky130_fd_sc_hd__o211ai_1',
'sky130_fd_sc_hd__o211ai_2',
'sky130_fd_sc_hd__o211ai_4',
'sky130_fd_sc_hd__o21a_1',
'sky130_fd_sc_hd__o21a_2',
'sky130_fd_sc_hd__o21a_4',
'sky130_fd_sc_hd__o21ai_0',
'sky130_fd_sc_hd__o21ai_1',
'sky130_fd_sc_hd__o21ai_2',
'sky130_fd_sc_hd__o21ai_4',
'sky130_fd_sc_hd__o21ba_1',
'sky130_fd_sc_hd__o21ba_2',
'sky130_fd_sc_hd__o21ba_4',
'sky130_fd_sc_hd__o21bai_1',
'sky130_fd_sc_hd__o21bai_2',
'sky130_fd_sc_hd__o21bai_4',
'sky130_fd_sc_hd__o221a_1',
'sky130_fd_sc_hd__o221a_2',
'sky130_fd_sc_hd__o221a_4',
'sky130_fd_sc_hd__o221ai_1',
'sky130_fd_sc_hd__o221ai_2',
'sky130_fd_sc_hd__o221ai_4',
'sky130_fd_sc_hd__o22a_1',
'sky130_fd_sc_hd__o22a_2',
'sky130_fd_sc_hd__o22a_4',
'sky130_fd_sc_hd__o22ai_1',
'sky130_fd_sc_hd__o22ai_2',
'sky130_fd_sc_hd__o22ai_4',
'sky130_fd_sc_hd__o2bb2a_1',
'sky130_fd_sc_hd__o2bb2a_2',
'sky130_fd_sc_hd__o2bb2a_4',
'sky130_fd_sc_hd__o2bb2ai_1',
'sky130_fd_sc_hd__o2bb2ai_2',
'sky130_fd_sc_hd__o2bb2ai_4',
'sky130_fd_sc_hd__o311a_1',
'sky130_fd_sc_hd__o311a_2',
'sky130_fd_sc_hd__o311a_4',
'sky130_fd_sc_hd__o311ai_0',
'sky130_fd_sc_hd__o311ai_1',
'sky130_fd_sc_hd__o311ai_2',
'sky130_fd_sc_hd__o311ai_4',
'sky130_fd_sc_hd__o31a_1',
'sky130_fd_sc_hd__o31a_2',
'sky130_fd_sc_hd__o31a_4',
'sky130_fd_sc_hd__o31ai_1',
'sky130_fd_sc_hd__o31ai_2',
'sky130_fd_sc_hd__o31ai_4',
'sky130_fd_sc_hd__o32a_1',
'sky130_fd_sc_hd__o32a_2',
'sky130_fd_sc_hd__o32a_4',
'sky130_fd_sc_hd__o32ai_1',
'sky130_fd_sc_hd__o32ai_2',
'sky130_fd_sc_hd__o32ai_4',
'sky130_fd_sc_hd__o41a_1',
'sky130_fd_sc_hd__o41a_2',
'sky130_fd_sc_hd__o41a_4',
'sky130_fd_sc_hd__o41ai_1',
'sky130_fd_sc_hd__o41ai_2',
'sky130_fd_sc_hd__o41ai_4',
'sky130_fd_sc_hd__or2_0',
'sky130_fd_sc_hd__or2_1',
'sky130_fd_sc_hd__or2_2',
'sky130_fd_sc_hd__or2_4',
'sky130_fd_sc_hd__or2b_1',
'sky130_fd_sc_hd__or2b_2',
'sky130_fd_sc_hd__or2b_4',
'sky130_fd_sc_hd__or3_1',
'sky130_fd_sc_hd__or3_2',
'sky130_fd_sc_hd__or3_4',
'sky130_fd_sc_hd__or3b_1',
'sky130_fd_sc_hd__or3b_2',
'sky130_fd_sc_hd__or3b_4',
'sky130_fd_sc_hd__or4_1',
'sky130_fd_sc_hd__or4_2',
'sky130_fd_sc_hd__or4_4',
'sky130_fd_sc_hd__or4b_1',
'sky130_fd_sc_hd__or4b_2',
'sky130_fd_sc_hd__or4b_4',
'sky130_fd_sc_hd__or4bb_1',
'sky130_fd_sc_hd__or4bb_2',
'sky130_fd_sc_hd__or4bb_4',
'sky130_fd_sc_hd__probe_p_8',
'sky130_fd_sc_hd__probec_p_8',
'sky130_fd_sc_hd__sdfbbn_1',
'sky130_fd_sc_hd__sdfbbn_2',
'sky130_fd_sc_hd__sdfbbp_1',
'sky130_fd_sc_hd__sdfrbp_1',
'sky130_fd_sc_hd__sdfrbp_2',
'sky130_fd_sc_hd__sdfrtn_1',
'sky130_fd_sc_hd__sdfrtp_1',
'sky130_fd_sc_hd__sdfrtp_2',
'sky130_fd_sc_hd__sdfrtp_4',
'sky130_fd_sc_hd__sdfsbp_1',
'sky130_fd_sc_hd__sdfsbp_2',
'sky130_fd_sc_hd__sdfstp_1',
'sky130_fd_sc_hd__sdfstp_2',
'sky130_fd_sc_hd__sdfstp_4',
'sky130_fd_sc_hd__sdfxbp_1',
'sky130_fd_sc_hd__sdfxbp_2',
'sky130_fd_sc_hd__sdfxtp_1',
'sky130_fd_sc_hd__sdfxtp_2',
'sky130_fd_sc_hd__sdfxtp_4',
'sky130_fd_sc_hd__sdlclkp_1',
'sky130_fd_sc_hd__sdlclkp_2',
'sky130_fd_sc_hd__sdlclkp_4',
'sky130_fd_sc_hd__sedfxbp_1',
'sky130_fd_sc_hd__sedfxbp_2',
'sky130_fd_sc_hd__sedfxtp_1',
'sky130_fd_sc_hd__sedfxtp_2',
'sky130_fd_sc_hd__sedfxtp_4',
'sky130_fd_sc_hd__tap_1',
'sky130_fd_sc_hd__tap_2',
'sky130_fd_sc_hd__tapvgnd2_1',
'sky130_fd_sc_hd__tapvgnd_1',
'sky130_fd_sc_hd__tapvpwrvgnd_1',
'sky130_fd_sc_hd__xnor2_1',
'sky130_fd_sc_hd__xnor2_2',
'sky130_fd_sc_hd__xnor2_4',
'sky130_fd_sc_hd__xnor3_1',
'sky130_fd_sc_hd__xnor3_2',
'sky130_fd_sc_hd__xnor3_4',
'sky130_fd_sc_hd__xor2_1',
'sky130_fd_sc_hd__xor2_2',
'sky130_fd_sc_hd__xor2_4',
'sky130_fd_sc_hd__xor3_1',
'sky130_fd_sc_hd__xor3_2',
'sky130_fd_sc_hd__xor3_4']
Let’s explore the available layers:
You can also verify this is the active PDK on gdsfactory
:
gf.pdk.get_active_pdk().name
'sky130'
Now, let’s explore available symbols for the components:
# dir(sky130)
sky130
<module 'sky130' from '/__w/skywater130/skywater130/sky130/__init__.py'>
Let’s try exploring an example basic nfet
:
c = sc.sky130_fd_pr__rf_nfet_01v8_aM02W1p65L0p15()
c
---------------------------------------------------------------------------
RuntimeError Traceback (most recent call last)
Cell In[6], line 1
----> 1 c = sc.sky130_fd_pr__rf_nfet_01v8_aM02W1p65L0p15()
2 c
File /usr/local/lib/python3.11/site-packages/kfactory/kcell.py:3374, in KCLayout.cell.<locals>.decorator_autocell.<locals>.wrapper_autocell(*args, **kwargs)
3363 raise ValueError(
3364 "The KCell created must be using the same"
3365 " KCLayout object as the @cell decorator. "
(...)
3370 "KCell(kcl=custom_kcl)."
3371 )
3372 return cell
-> 3374 _cell = wrapped_cell(**params)
3376 if info is not None:
3377 _cell.info.update(info)
File /usr/local/lib/python3.11/site-packages/loguru/_logger.py:1277, in Logger.catch.<locals>.Catcher.__call__.<locals>.catch_wrapper(*args, **kwargs)
1275 def catch_wrapper(*args, **kwargs):
1276 with catcher:
-> 1277 return function(*args, **kwargs)
1278 return default
File /usr/local/lib/python3.11/site-packages/cachetools/__init__.py:737, in cached.<locals>.decorator.<locals>.wrapper(*args, **kwargs)
735 except KeyError:
736 pass # key not found
--> 737 v = func(*args, **kwargs)
738 try:
739 cache[k] = v
File /usr/local/lib/python3.11/site-packages/kfactory/kcell.py:3249, in KCLayout.cell.<locals>.decorator_autocell.<locals>.wrapper_autocell.<locals>.wrapped_cell(**params)
3244 return self[c.cell_index()]
3245 logger.debug(
3246 "Constructing {}",
3247 self.future_cell_name,
3248 )
-> 3249 cell = f(**params)
3250 if cell._locked:
3251 # If the cell is locked, it comes from a cache (most likely)
3252 # and should be copied first
3253 cell = cell.dup()
File /__w/skywater130/skywater130/sky130/components.py:5362, in sky130_fd_pr__rf_nfet_01v8_aM02W1p65L0p15()
5350 @cell
5351 def sky130_fd_pr__rf_nfet_01v8_aM02W1p65L0p15() -> gf.Component:
5352 """Returns sky130_fd_pr__rf_nfet_01v8_aM02W1p65L0p15 fixed cell.
5353
5354 .. plot::
(...)
5360 c.plot()
5361 """
-> 5362 return import_gds(
5363 gdsdir
5364 / "src/sky130_fd_pr/cells/rf_nfet_01v8/sky130_fd_pr__rf_nfet_01v8_aM02W1p65L0p15.gds",
5365 cellname="sky130_fd_pr__rf_nfet_01v8_aM02W1p65L0p15",
5366 )
File /usr/local/lib/python3.11/site-packages/gdsfactory/read/import_gds.py:34, in import_gds(gdspath, cellname, post_process, **kwargs)
31 warnings.warn(f"kwargs {k!r} is deprecated and ignored")
33 temp_kcl = KCLayout(name=str(gdspath))
---> 34 temp_kcl.read(gdspath)
35 cellname = cellname or temp_kcl.top_cell().name
36 kcell = temp_kcl[cellname]
File /usr/local/lib/python3.11/site-packages/kfactory/kcell.py:3845, in KCLayout.read(self, filename, options, register_cells, test_merge, update_kcl_meta_data, meta_format)
3843 meta_format = config.meta_format
3844 layout_b = kdb.Layout()
-> 3845 layout_b.read(str(filename), options)
3846 if (
3847 self.cells() > 0
3848 and test_merge
(...)
3852 )
3853 ):
3854 for kcell in self.kcells.values():
RuntimeError: Unable to open file: /__w/skywater130/skywater130/sky130/src/sky130_fd_pr//cells/rf_nfet_01v8/sky130_fd_pr__rf_nfet_01v8_aM02W1p65L0p15.gds (errno=2) in Layout.read
Explore it’s ports:
c.pprint_ports()
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
Cell In[7], line 1
----> 1 c.pprint_ports()
NameError: name 'c' is not defined
We can also explore the digital cells:
c = sc.sky130_fd_sc_hd__a2111o_1()
c
---------------------------------------------------------------------------
RuntimeError Traceback (most recent call last)
Cell In[8], line 1
----> 1 c = sc.sky130_fd_sc_hd__a2111o_1()
2 c
File /usr/local/lib/python3.11/site-packages/kfactory/kcell.py:3374, in KCLayout.cell.<locals>.decorator_autocell.<locals>.wrapper_autocell(*args, **kwargs)
3363 raise ValueError(
3364 "The KCell created must be using the same"
3365 " KCLayout object as the @cell decorator. "
(...)
3370 "KCell(kcl=custom_kcl)."
3371 )
3372 return cell
-> 3374 _cell = wrapped_cell(**params)
3376 if info is not None:
3377 _cell.info.update(info)
File /usr/local/lib/python3.11/site-packages/loguru/_logger.py:1277, in Logger.catch.<locals>.Catcher.__call__.<locals>.catch_wrapper(*args, **kwargs)
1275 def catch_wrapper(*args, **kwargs):
1276 with catcher:
-> 1277 return function(*args, **kwargs)
1278 return default
File /usr/local/lib/python3.11/site-packages/cachetools/__init__.py:737, in cached.<locals>.decorator.<locals>.wrapper(*args, **kwargs)
735 except KeyError:
736 pass # key not found
--> 737 v = func(*args, **kwargs)
738 try:
739 cache[k] = v
File /usr/local/lib/python3.11/site-packages/kfactory/kcell.py:3249, in KCLayout.cell.<locals>.decorator_autocell.<locals>.wrapper_autocell.<locals>.wrapped_cell(**params)
3244 return self[c.cell_index()]
3245 logger.debug(
3246 "Constructing {}",
3247 self.future_cell_name,
3248 )
-> 3249 cell = f(**params)
3250 if cell._locked:
3251 # If the cell is locked, it comes from a cache (most likely)
3252 # and should be copied first
3253 cell = cell.dup()
File /__w/skywater130/skywater130/sky130/components.py:12700, in sky130_fd_sc_hd__a2111o_1()
12688 @cell
12689 def sky130_fd_sc_hd__a2111o_1() -> gf.Component:
12690 """Returns sky130_fd_sc_hd__a2111o_1 fixed cell.
12691
12692 .. plot::
(...)
12698 c.plot()
12699 """
> 12700 return import_gds(
12701 gdsdir / "src/sky130_fd_sc_hd/cells/a2111o/sky130_fd_sc_hd__a2111o_1.gds",
12702 cellname="sky130_fd_sc_hd__a2111o_1",
12703 )
File /usr/local/lib/python3.11/site-packages/gdsfactory/read/import_gds.py:34, in import_gds(gdspath, cellname, post_process, **kwargs)
31 warnings.warn(f"kwargs {k!r} is deprecated and ignored")
33 temp_kcl = KCLayout(name=str(gdspath))
---> 34 temp_kcl.read(gdspath)
35 cellname = cellname or temp_kcl.top_cell().name
36 kcell = temp_kcl[cellname]
File /usr/local/lib/python3.11/site-packages/kfactory/kcell.py:3845, in KCLayout.read(self, filename, options, register_cells, test_merge, update_kcl_meta_data, meta_format)
3843 meta_format = config.meta_format
3844 layout_b = kdb.Layout()
-> 3845 layout_b.read(str(filename), options)
3846 if (
3847 self.cells() > 0
3848 and test_merge
(...)
3852 )
3853 ):
3854 for kcell in self.kcells.values():
RuntimeError: Unable to open file: /__w/skywater130/skywater130/sky130/src/sky130_fd_sc_hd//cells/a2111o/sky130_fd_sc_hd__a2111o_1.gds (errno=2) in Layout.read
scene = c.to_3d()
scene.show()
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
Cell In[9], line 1
----> 1 scene = c.to_3d()
2 scene.show()
NameError: name 'c' is not defined
TODO: add Parametric cells natively into gdsfactory sky130
pdk.
c = gf.Component()
g1 = c << sc.sky130_fd_sc_hd__a2111o_1()
g2 = c << sc.sky130_fd_sc_hd__a311oi_4()
g2.dmove((15, 10))
c
---------------------------------------------------------------------------
RuntimeError Traceback (most recent call last)
Cell In[10], line 2
1 c = gf.Component()
----> 2 g1 = c << sc.sky130_fd_sc_hd__a2111o_1()
3 g2 = c << sc.sky130_fd_sc_hd__a311oi_4()
4 g2.dmove((15, 10))
File /usr/local/lib/python3.11/site-packages/kfactory/kcell.py:3374, in KCLayout.cell.<locals>.decorator_autocell.<locals>.wrapper_autocell(*args, **kwargs)
3363 raise ValueError(
3364 "The KCell created must be using the same"
3365 " KCLayout object as the @cell decorator. "
(...)
3370 "KCell(kcl=custom_kcl)."
3371 )
3372 return cell
-> 3374 _cell = wrapped_cell(**params)
3376 if info is not None:
3377 _cell.info.update(info)
File /usr/local/lib/python3.11/site-packages/loguru/_logger.py:1277, in Logger.catch.<locals>.Catcher.__call__.<locals>.catch_wrapper(*args, **kwargs)
1275 def catch_wrapper(*args, **kwargs):
1276 with catcher:
-> 1277 return function(*args, **kwargs)
1278 return default
File /usr/local/lib/python3.11/site-packages/cachetools/__init__.py:737, in cached.<locals>.decorator.<locals>.wrapper(*args, **kwargs)
735 except KeyError:
736 pass # key not found
--> 737 v = func(*args, **kwargs)
738 try:
739 cache[k] = v
File /usr/local/lib/python3.11/site-packages/kfactory/kcell.py:3249, in KCLayout.cell.<locals>.decorator_autocell.<locals>.wrapper_autocell.<locals>.wrapped_cell(**params)
3244 return self[c.cell_index()]
3245 logger.debug(
3246 "Constructing {}",
3247 self.future_cell_name,
3248 )
-> 3249 cell = f(**params)
3250 if cell._locked:
3251 # If the cell is locked, it comes from a cache (most likely)
3252 # and should be copied first
3253 cell = cell.dup()
File /__w/skywater130/skywater130/sky130/components.py:12700, in sky130_fd_sc_hd__a2111o_1()
12688 @cell
12689 def sky130_fd_sc_hd__a2111o_1() -> gf.Component:
12690 """Returns sky130_fd_sc_hd__a2111o_1 fixed cell.
12691
12692 .. plot::
(...)
12698 c.plot()
12699 """
> 12700 return import_gds(
12701 gdsdir / "src/sky130_fd_sc_hd/cells/a2111o/sky130_fd_sc_hd__a2111o_1.gds",
12702 cellname="sky130_fd_sc_hd__a2111o_1",
12703 )
File /usr/local/lib/python3.11/site-packages/gdsfactory/read/import_gds.py:34, in import_gds(gdspath, cellname, post_process, **kwargs)
31 warnings.warn(f"kwargs {k!r} is deprecated and ignored")
33 temp_kcl = KCLayout(name=str(gdspath))
---> 34 temp_kcl.read(gdspath)
35 cellname = cellname or temp_kcl.top_cell().name
36 kcell = temp_kcl[cellname]
File /usr/local/lib/python3.11/site-packages/kfactory/kcell.py:3845, in KCLayout.read(self, filename, options, register_cells, test_merge, update_kcl_meta_data, meta_format)
3843 meta_format = config.meta_format
3844 layout_b = kdb.Layout()
-> 3845 layout_b.read(str(filename), options)
3846 if (
3847 self.cells() > 0
3848 and test_merge
(...)
3852 )
3853 ):
3854 for kcell in self.kcells.values():
RuntimeError: Unable to open file: /__w/skywater130/skywater130/sky130/src/sky130_fd_sc_hd//cells/a2111o/sky130_fd_sc_hd__a2111o_1.gds (errno=2) in Layout.read
c = gf.Component()
g1 = c << sc.sky130_fd_sc_hd__a2111o_1()
g2 = c << sc.sky130_fd_sc_hd__a311oi_4()
g2.dmove((15, 10))
route = gf.routing.route_single_electrical(
c, g1.ports["VPWR"], g2.ports["VPWR"], cross_section=st.xs_metal1
)
c
---------------------------------------------------------------------------
RuntimeError Traceback (most recent call last)
Cell In[11], line 2
1 c = gf.Component()
----> 2 g1 = c << sc.sky130_fd_sc_hd__a2111o_1()
3 g2 = c << sc.sky130_fd_sc_hd__a311oi_4()
4 g2.dmove((15, 10))
File /usr/local/lib/python3.11/site-packages/kfactory/kcell.py:3374, in KCLayout.cell.<locals>.decorator_autocell.<locals>.wrapper_autocell(*args, **kwargs)
3363 raise ValueError(
3364 "The KCell created must be using the same"
3365 " KCLayout object as the @cell decorator. "
(...)
3370 "KCell(kcl=custom_kcl)."
3371 )
3372 return cell
-> 3374 _cell = wrapped_cell(**params)
3376 if info is not None:
3377 _cell.info.update(info)
File /usr/local/lib/python3.11/site-packages/loguru/_logger.py:1277, in Logger.catch.<locals>.Catcher.__call__.<locals>.catch_wrapper(*args, **kwargs)
1275 def catch_wrapper(*args, **kwargs):
1276 with catcher:
-> 1277 return function(*args, **kwargs)
1278 return default
File /usr/local/lib/python3.11/site-packages/cachetools/__init__.py:737, in cached.<locals>.decorator.<locals>.wrapper(*args, **kwargs)
735 except KeyError:
736 pass # key not found
--> 737 v = func(*args, **kwargs)
738 try:
739 cache[k] = v
File /usr/local/lib/python3.11/site-packages/kfactory/kcell.py:3249, in KCLayout.cell.<locals>.decorator_autocell.<locals>.wrapper_autocell.<locals>.wrapped_cell(**params)
3244 return self[c.cell_index()]
3245 logger.debug(
3246 "Constructing {}",
3247 self.future_cell_name,
3248 )
-> 3249 cell = f(**params)
3250 if cell._locked:
3251 # If the cell is locked, it comes from a cache (most likely)
3252 # and should be copied first
3253 cell = cell.dup()
File /__w/skywater130/skywater130/sky130/components.py:12700, in sky130_fd_sc_hd__a2111o_1()
12688 @cell
12689 def sky130_fd_sc_hd__a2111o_1() -> gf.Component:
12690 """Returns sky130_fd_sc_hd__a2111o_1 fixed cell.
12691
12692 .. plot::
(...)
12698 c.plot()
12699 """
> 12700 return import_gds(
12701 gdsdir / "src/sky130_fd_sc_hd/cells/a2111o/sky130_fd_sc_hd__a2111o_1.gds",
12702 cellname="sky130_fd_sc_hd__a2111o_1",
12703 )
File /usr/local/lib/python3.11/site-packages/gdsfactory/read/import_gds.py:34, in import_gds(gdspath, cellname, post_process, **kwargs)
31 warnings.warn(f"kwargs {k!r} is deprecated and ignored")
33 temp_kcl = KCLayout(name=str(gdspath))
---> 34 temp_kcl.read(gdspath)
35 cellname = cellname or temp_kcl.top_cell().name
36 kcell = temp_kcl[cellname]
File /usr/local/lib/python3.11/site-packages/kfactory/kcell.py:3845, in KCLayout.read(self, filename, options, register_cells, test_merge, update_kcl_meta_data, meta_format)
3843 meta_format = config.meta_format
3844 layout_b = kdb.Layout()
-> 3845 layout_b.read(str(filename), options)
3846 if (
3847 self.cells() > 0
3848 and test_merge
(...)
3852 )
3853 ):
3854 for kcell in self.kcells.values():
RuntimeError: Unable to open file: /__w/skywater130/skywater130/sky130/src/sky130_fd_sc_hd//cells/a2111o/sky130_fd_sc_hd__a2111o_1.gds (errno=2) in Layout.read
scene = c.to_3d()
scene.show()
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
Cell In[12], line 1
----> 1 scene = c.to_3d()
2 scene.show()
File /usr/local/lib/python3.11/site-packages/gdsfactory/component.py:927, in ComponentBase.to_3d(self, layer_views, layer_stack, exclude_layers)
914 """Return Component 3D trimesh Scene.
915
916 Args:
(...)
923
924 """
925 from gdsfactory.export.to_3d import to_3d
--> 927 return to_3d(
928 self,
929 layer_views=layer_views,
930 layer_stack=layer_stack,
931 exclude_layers=exclude_layers,
932 )
File /usr/local/lib/python3.11/site-packages/gdsfactory/export/to_3d.py:89, in to_3d(component, layer_views, layer_stack, exclude_layers)
87 scene.add_geometry(mesh)
88 if not has_polygons:
---> 89 raise ValueError(
90 f"{component.name!r} does not have polygons defined in the "
91 f"layer_stack or layer_views for the active Pdk {get_active_pdk().name!r}"
92 )
93 return scene
ValueError: 'Unnamed_1' does not have polygons defined in the layer_stack or layer_views for the active Pdk 'sky130'
Spice simulations#
You can use hdl21 for running simulations.