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 /__w/skywater130/skywater130/.venv/lib/python3.11/site-packages/kfactory/layout.py:852, in KCLayout.cell.<locals>.decorator_autocell.<locals>.wrapper_autocell(*args, **kwargs)
    849     return output_cell_type(base=cell.base)
    851 with self.thread_lock:
--> 852     cell_ = wrapped_cell(**params)
    853     if cell_.destroyed():
    854         # If any cell has been destroyed, we should clean up the cache.
    855         # Delete all the KCell entrances in the cache which have
    856         # `destroyed() == True`
    857         deleted_cell_hashes: list[_HashedTuple] = [
    858             _hash_item
    859             for _hash_item, _cell_item in cache_.items()
    860             if _cell_item.destroyed()
    861         ]

File /__w/skywater130/skywater130/.venv/lib/python3.11/site-packages/cachetools/_decorators.py:94, in _cached_locked.<locals>.wrapper(*args, **kwargs)
     92     except KeyError:
     93         pass  # key not found
---> 94 v = func(*args, **kwargs)
     95 with lock:
     96     try:
     97         # in case of a race, prefer the item already in the cache

File /__w/skywater130/skywater130/.venv/lib/python3.11/site-packages/kfactory/layout.py:702, in KCLayout.cell.<locals>.decorator_autocell.<locals>.wrapper_autocell.<locals>.wrapped_cell(**params)
    700 else:
    701     name_ = None
--> 702 cell = f(**params)  # type: ignore[call-arg]
    704 logger.debug("Constructed {}", name_ or cell.name)
    706 if cell.locked:
    707     # If the cell is locked, it comes from a cache (most likely)
    708     # and should be copied first

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 /__w/skywater130/skywater130/.venv/lib/python3.11/site-packages/gdsfactory/read/import_gds.py:30, in import_gds(gdspath, cellname, post_process, rename_duplicated_cells)
     28 options = kf.utilities.load_layout_options()
     29 options.warn_level = 0
---> 30 temp_kcl.read(gdspath, options=options)
     31 cellname = cellname or temp_kcl.layout.top_cell().name
     32 kcell = temp_kcl[cellname]

File /__w/skywater130/skywater130/.venv/lib/python3.11/site-packages/kfactory/layout.py:1361, in KCLayout.read(self, filename, options, register_cells, test_merge, update_kcl_meta_data, meta_format)
   1359     register_cells = meta_format == config.meta_format
   1360 layout_b = kdb.Layout()
-> 1361 layout_b.read(str(filename), options)
   1362 if (
   1363     self.cells() > 0
   1364     and test_merge
   (...)
   1368     )
   1369 ):
   1370     self.set_meta_data()

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 /__w/skywater130/skywater130/.venv/lib/python3.11/site-packages/kfactory/layout.py:852, in KCLayout.cell.<locals>.decorator_autocell.<locals>.wrapper_autocell(*args, **kwargs)
    849     return output_cell_type(base=cell.base)
    851 with self.thread_lock:
--> 852     cell_ = wrapped_cell(**params)
    853     if cell_.destroyed():
    854         # If any cell has been destroyed, we should clean up the cache.
    855         # Delete all the KCell entrances in the cache which have
    856         # `destroyed() == True`
    857         deleted_cell_hashes: list[_HashedTuple] = [
    858             _hash_item
    859             for _hash_item, _cell_item in cache_.items()
    860             if _cell_item.destroyed()
    861         ]

File /__w/skywater130/skywater130/.venv/lib/python3.11/site-packages/cachetools/_decorators.py:94, in _cached_locked.<locals>.wrapper(*args, **kwargs)
     92     except KeyError:
     93         pass  # key not found
---> 94 v = func(*args, **kwargs)
     95 with lock:
     96     try:
     97         # in case of a race, prefer the item already in the cache

File /__w/skywater130/skywater130/.venv/lib/python3.11/site-packages/kfactory/layout.py:702, in KCLayout.cell.<locals>.decorator_autocell.<locals>.wrapper_autocell.<locals>.wrapped_cell(**params)
    700 else:
    701     name_ = None
--> 702 cell = f(**params)  # type: ignore[call-arg]
    704 logger.debug("Constructed {}", name_ or cell.name)
    706 if cell.locked:
    707     # If the cell is locked, it comes from a cache (most likely)
    708     # and should be copied first

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 /__w/skywater130/skywater130/.venv/lib/python3.11/site-packages/gdsfactory/read/import_gds.py:30, in import_gds(gdspath, cellname, post_process, rename_duplicated_cells)
     28 options = kf.utilities.load_layout_options()
     29 options.warn_level = 0
---> 30 temp_kcl.read(gdspath, options=options)
     31 cellname = cellname or temp_kcl.layout.top_cell().name
     32 kcell = temp_kcl[cellname]

File /__w/skywater130/skywater130/.venv/lib/python3.11/site-packages/kfactory/layout.py:1361, in KCLayout.read(self, filename, options, register_cells, test_merge, update_kcl_meta_data, meta_format)
   1359     register_cells = meta_format == config.meta_format
   1360 layout_b = kdb.Layout()
-> 1361 layout_b.read(str(filename), options)
   1362 if (
   1363     self.cells() > 0
   1364     and test_merge
   (...)
   1368     )
   1369 ):
   1370     self.set_meta_data()

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 /__w/skywater130/skywater130/.venv/lib/python3.11/site-packages/kfactory/layout.py:852, in KCLayout.cell.<locals>.decorator_autocell.<locals>.wrapper_autocell(*args, **kwargs)
    849     return output_cell_type(base=cell.base)
    851 with self.thread_lock:
--> 852     cell_ = wrapped_cell(**params)
    853     if cell_.destroyed():
    854         # If any cell has been destroyed, we should clean up the cache.
    855         # Delete all the KCell entrances in the cache which have
    856         # `destroyed() == True`
    857         deleted_cell_hashes: list[_HashedTuple] = [
    858             _hash_item
    859             for _hash_item, _cell_item in cache_.items()
    860             if _cell_item.destroyed()
    861         ]

File /__w/skywater130/skywater130/.venv/lib/python3.11/site-packages/cachetools/_decorators.py:94, in _cached_locked.<locals>.wrapper(*args, **kwargs)
     92     except KeyError:
     93         pass  # key not found
---> 94 v = func(*args, **kwargs)
     95 with lock:
     96     try:
     97         # in case of a race, prefer the item already in the cache

File /__w/skywater130/skywater130/.venv/lib/python3.11/site-packages/kfactory/layout.py:702, in KCLayout.cell.<locals>.decorator_autocell.<locals>.wrapper_autocell.<locals>.wrapped_cell(**params)
    700 else:
    701     name_ = None
--> 702 cell = f(**params)  # type: ignore[call-arg]
    704 logger.debug("Constructed {}", name_ or cell.name)
    706 if cell.locked:
    707     # If the cell is locked, it comes from a cache (most likely)
    708     # and should be copied first

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 /__w/skywater130/skywater130/.venv/lib/python3.11/site-packages/gdsfactory/read/import_gds.py:30, in import_gds(gdspath, cellname, post_process, rename_duplicated_cells)
     28 options = kf.utilities.load_layout_options()
     29 options.warn_level = 0
---> 30 temp_kcl.read(gdspath, options=options)
     31 cellname = cellname or temp_kcl.layout.top_cell().name
     32 kcell = temp_kcl[cellname]

File /__w/skywater130/skywater130/.venv/lib/python3.11/site-packages/kfactory/layout.py:1361, in KCLayout.read(self, filename, options, register_cells, test_merge, update_kcl_meta_data, meta_format)
   1359     register_cells = meta_format == config.meta_format
   1360 layout_b = kdb.Layout()
-> 1361 layout_b.read(str(filename), options)
   1362 if (
   1363     self.cells() > 0
   1364     and test_merge
   (...)
   1368     )
   1369 ):
   1370     self.set_meta_data()

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 /__w/skywater130/skywater130/.venv/lib/python3.11/site-packages/kfactory/layout.py:852, in KCLayout.cell.<locals>.decorator_autocell.<locals>.wrapper_autocell(*args, **kwargs)
    849     return output_cell_type(base=cell.base)
    851 with self.thread_lock:
--> 852     cell_ = wrapped_cell(**params)
    853     if cell_.destroyed():
    854         # If any cell has been destroyed, we should clean up the cache.
    855         # Delete all the KCell entrances in the cache which have
    856         # `destroyed() == True`
    857         deleted_cell_hashes: list[_HashedTuple] = [
    858             _hash_item
    859             for _hash_item, _cell_item in cache_.items()
    860             if _cell_item.destroyed()
    861         ]

File /__w/skywater130/skywater130/.venv/lib/python3.11/site-packages/cachetools/_decorators.py:94, in _cached_locked.<locals>.wrapper(*args, **kwargs)
     92     except KeyError:
     93         pass  # key not found
---> 94 v = func(*args, **kwargs)
     95 with lock:
     96     try:
     97         # in case of a race, prefer the item already in the cache

File /__w/skywater130/skywater130/.venv/lib/python3.11/site-packages/kfactory/layout.py:702, in KCLayout.cell.<locals>.decorator_autocell.<locals>.wrapper_autocell.<locals>.wrapped_cell(**params)
    700 else:
    701     name_ = None
--> 702 cell = f(**params)  # type: ignore[call-arg]
    704 logger.debug("Constructed {}", name_ or cell.name)
    706 if cell.locked:
    707     # If the cell is locked, it comes from a cache (most likely)
    708     # and should be copied first

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 /__w/skywater130/skywater130/.venv/lib/python3.11/site-packages/gdsfactory/read/import_gds.py:30, in import_gds(gdspath, cellname, post_process, rename_duplicated_cells)
     28 options = kf.utilities.load_layout_options()
     29 options.warn_level = 0
---> 30 temp_kcl.read(gdspath, options=options)
     31 cellname = cellname or temp_kcl.layout.top_cell().name
     32 kcell = temp_kcl[cellname]

File /__w/skywater130/skywater130/.venv/lib/python3.11/site-packages/kfactory/layout.py:1361, in KCLayout.read(self, filename, options, register_cells, test_merge, update_kcl_meta_data, meta_format)
   1359     register_cells = meta_format == config.meta_format
   1360 layout_b = kdb.Layout()
-> 1361 layout_b.read(str(filename), options)
   1362 if (
   1363     self.cells() > 0
   1364     and test_merge
   (...)
   1368     )
   1369 ):
   1370     self.set_meta_data()

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 /__w/skywater130/skywater130/.venv/lib/python3.11/site-packages/gdsfactory/component.py:815, in Component.to_3d(self, layer_views, layer_stack, exclude_layers)
    802 """Return Component 3D trimesh Scene.
    803 
    804 Args:
   (...)
    811 
    812 """
    813 from gdsfactory.export.to_3d import to_3d
--> 815 return to_3d(
    816     self,
    817     layer_views=layer_views,
    818     layer_stack=layer_stack,
    819     exclude_layers=exclude_layers,
    820 )

File /__w/skywater130/skywater130/.venv/lib/python3.11/site-packages/gdsfactory/export/to_3d.py:94, in to_3d(component, layer_views, layer_stack, exclude_layers)
     92             scene.add_geometry(mesh)
     93 if not has_polygons:
---> 94     raise ValueError(
     95         f"{component.name!r} does not have polygons defined in the "
     96         f"layer_stack or layer_views for the active Pdk {get_active_pdk().name!r}"
     97     )
     98 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.