2nd pass at updating the sky130 installer for sky130_fd_pr.
diff --git a/common/foundry_install.py b/common/foundry_install.py index 6e337f5..40782e0 100755 --- a/common/foundry_install.py +++ b/common/foundry_install.py
@@ -557,7 +557,7 @@ filter_scripts.append(item.split('=')[1]) break - print('Diagnostic: installing ' + option[0] + '.') + print('Diagnostic: installing to ' + option[0] + '.') tooldir = targetdir + '/libs.tech/' + option[0] os.makedirs(tooldir, exist_ok=True) @@ -570,6 +570,8 @@ toolfile = os.path.split(toolname)[1] targname = tooldir + '/' + toolfile + print(' installing from ' + toolfile + ' to ' + targname) + if os.path.isdir(toolname): # Remove any existing directory, and its contents if os.path.isdir(targname): @@ -582,18 +584,21 @@ alltoollist = glob.glob(toolname + '/**', recursive=True) commonpart = os.path.commonpath(alltoollist) for subtoolname in alltoollist: - if os.path.isdir(subtoolname): - continue # Get the path part that is not common between toollist and # alltoollist. subpart = os.path.relpath(subtoolname, commonpart) subtargname = targname + '/' + subpart - os.makedirs(os.path.split(subtargname)[0], exist_ok=True) if os.path.isfile(subtoolname): + os.makedirs(os.path.split(subtargname)[0], exist_ok=True) shutil.copy(subtoolname, subtargname) else: - shutil.copytree(subtoolname, subtargname) + print(' copy tree from ' + subtoolname + ' to ' + subtargname) + # emulate Python3.8 dirs_exist_ok option + try: + shutil.copytree(subtoolname, subtargname) + except FileExistsError: + pass for filter_script in filter_scripts: # Apply filter script to all files in the target directory
diff --git a/sky130/Makefile.in b/sky130/Makefile.in index 9823ce4..d61de44 100644 --- a/sky130/Makefile.in +++ b/sky130/Makefile.in
@@ -353,17 +353,14 @@ vendor-a: # Install device subcircuits from vendor files ${STAGE} -source ${SKYWATER_PATH} -target ${STAGING_PATH}/${SKY130A} \ - -ngspice sky130_fd_pr/latest/models/*.spice \ - -ngspice sky130_fd_pr/latest/models/*/*.spice up 1 \ - -ngspice sky130_fd_pr/latest/models/*/*/*.spice up 2 \ - -ngspice sky130_fd_pr/latest/models/*/*/*/*.spice up 3 \ + -ngspice sky130_fd_pr/latest/models/* filter=custom/scripts/rename.py \ |& tee -a ${SKY130A}_install.log # Install base device library from vendor files ${STAGE} -source ${SKYWATER_PATH} -target ${STAGING_PATH}/${SKY130A} \ -gds %l/latest/cells/*/*.gds compile-only \ -cdl %l/latest/cells/*/*.cdl compile-only \ -lef %l/latest/cells/*/*.magic.lef compile-only \ - -spice %l/latest/cells/*/*.spice compile-only \ + -spice %l/latest/cells/*/*.spice \ -library primitive sky130_fd_pr |& tee -a ${SKY130A}_install.log # Install SkyWater I/O pad library # Purposely ignoring "-lef sky130_fd_io/latest/lef/*.lef" and making our own LEF views
diff --git a/sky130/custom/scripts/rename.py b/sky130/custom/scripts/rename.py new file mode 100755 index 0000000..ebef2ea --- /dev/null +++ b/sky130/custom/scripts/rename.py
@@ -0,0 +1,88 @@ +#!/bin/env python3 +# +# rename --- +# +# This script renames include paths from SPICE files in the models +# (libs.tech/ngspice) directory that point to the original ../cells/ +# directory, to point to the correct location in libs.ref/sky130_fd_pr/spice/ +# +# +# This script is a filter to be run by setting the name of this script as +# the value to "filter=" for the model install in the sky130 Makefile. + +import re +import os +import sys + +def filter(inname, outname): + + # Read input + try: + with open(inname, 'r') as inFile: + spitext = inFile.read() + spilines = spitext.splitlines() + except: + print('rename.py: failed to open ' + fnmIn + ' for reading.', file=sys.stderr) + return 1 + + # Process input with regexp + + fixedlines = [] + modified = False + + for line in spilines: + + # Fix: Replace "../cells/<name>/" with "../../libs.ref/sky130_fd_pr/spice/" + fixedline = re.sub('../cells/[^/]+/', '../../libs.ref/sky130_fd_pr/spice/', line) + + fixedlines.append(fixedline) + if fixedline != line: + modified = True + + # Write output + if outname == None: + for i in fixedlines: + print(i) + else: + # If the output is a symbolic link but no modifications have been made, + # then leave it alone. If it was modified, then remove the symbolic + # link before writing. + if os.path.islink(outname): + if not modified: + return 0 + else: + os.unlink(outname) + try: + with open(outname, 'w') as outFile: + for i in fixedlines: + print(i, file=outFile) + except: + print('rename.py: failed to open ' + outname + ' for writing.', file=sys.stderr) + return 1 + + +if __name__ == '__main__': + + # This script expects to get one or two arguments. One argument is + # mandatory and is the input file. The other argument is optional and + # is the output file. The output file and input file may be the same + # name, in which case the original input is overwritten. + + options = [] + arguments = [] + for item in sys.argv[1:]: + if item.find('-', 0) == 0: + options.append(item[1:]) + else: + arguments.append(item) + + if len(arguments) > 0: + infilename = arguments[0] + + if len(arguments) > 1: + outfilename = arguments[1] + else: + outfilename = None + + result = filter(infilename, outfilename) + sys.exit(result)
diff --git a/sky130/magic/sky130.tcl b/sky130/magic/sky130.tcl index d868da7..a64099f 100644 --- a/sky130/magic/sky130.tcl +++ b/sky130/magic/sky130.tcl
@@ -125,22 +125,20 @@ magic::add_toolkit_separator $layoutframe pdk1 magic::add_toolkit_command $layoutframe "NPN 1.0 x 1.0" \ - "magic::gencell sky130::sky130_fd_pr__npn_05v5_W1p00L1p00" pdk1 + "magic::gencell sky130::sky130_fd_pr__rf_npn_05v5_W1p00L1p00" pdk1 magic::add_toolkit_command $layoutframe "NPN 1.0 x 2.0" \ - "magic::gencell sky130::sky130_fd_pr__npn_05v5_W1p00L2p00" pdk1 - magic::add_toolkit_command $layoutframe "PNP 0.68 x 0.68" \ - "magic::gencell sky130::sky130_fd_pr__pnp_05v5_W0p68L0p68" pdk1 + "magic::gencell sky130::sky130_fd_pr__rf_npn_05v5_W1p00L2p00" pdk1 magic::add_toolkit_command $layoutframe "PNP 3.4 x 3.4" \ "magic::gencell sky130::sky130_fd_pr__pnp_05v5_W3p40L3p40" pdk1 -#ifdef REDISTRIBUTION magic::add_toolkit_separator $layoutframe pdk1 - magic::add_toolkit_command $layoutframe "inductor 01x04" \ - "magic::gencell sky130::sky130_fd_pr__ind_01_04" pdk1 - magic::add_toolkit_command $layoutframe "inductor 02x04" \ - "magic::gencell sky130::sky130_fd_pr__ind_02_04" pdk1 -#endif (REDISTRIBUTION) + magic::add_toolkit_command $layoutframe "inductor 1" \ + "magic::gencell sky130::sky130_fd_pr__rf_test_coil1" pdk1 + magic::add_toolkit_command $layoutframe "inductor 2" \ + "magic::gencell sky130::sky130_fd_pr__rf_test_coil2" pdk1 + magic::add_toolkit_command $layoutframe "inductor 3" \ + "magic::gencell sky130::sky130_fd_pr__rf_test_coil3" pdk1 magic::add_toolkit_separator $layoutframe pdk1 @@ -208,40 +206,14 @@ #endif (MIM) magic::add_toolkit_separator $layoutframe pdk2 - magic::add_toolkit_command $layoutframe "vpp 11.5x11.7 li/m5 shield" \ - "magic::gencell sky130::sky130_fd_pr__cap_vpp_11p5x11p7_lim5_shield" pdk2 - magic::add_toolkit_command $layoutframe "vpp 11.5x11.7 li/m3/m5 shield" \ - "magic::gencell sky130::sky130_fd_pr__cap_vpp_11p5x11p7_m3_lim5_shield" pdk2 - magic::add_toolkit_command $layoutframe "vpp 11.5x11.7 m4 shield" \ - "magic::gencell sky130::sky130_fd_pr__cap_vpp_11p5x11p7_m4_shield" pdk2 - magic::add_toolkit_command $layoutframe "vpp 11.5x11.7 p/m4 shield" \ - "magic::gencell sky130::sky130_fd_pr__cap_vpp_11p5x11p7_pom4_shield" pdk2 - # magic::add_toolkit_command $layoutframe "vpp 11.5x11.7 p/m5 shield" \ - "magic::gencell sky130::sky130_fd_pr__cap_vpp_4p4x4p6_m3_lim5_shield" pdk2 - magic::add_toolkit_command $layoutframe "vpp 6.8x6.1 li/m4 shield" \ - "magic::gencell sky130::sky130_fd_pr__cap_vpp_6p8x6p1_lim4_shield" pdk2 - magic::add_toolkit_command $layoutframe "vpp 6.8x6.1 p/m4 shield" \ - "magic::gencell sky130::sky130_fd_pr__cap_vpp_6p8x6p1_pom4_shield" pdk2 - magic::add_toolkit_command $layoutframe "vpp 8.6x7.9 li/m3/m5 shield" \ - "magic::gencell sky130::sky130_fd_pr__cap_vpp_8p6x7p9_m3_lim5_shield" pdk2 - magic::add_toolkit_command $layoutframe "vpp 11.5x11.7 li/m3 shield" \ - "magic::gencell sky130::sky130_fd_pr__cap_vpp_11p5x11p7_m3_li_shield" pdk2 - magic::add_toolkit_command $layoutframe "vpp 11.5x11.7 m3 shield" \ - "magic::gencell sky130::sky130_fd_pr__cap_vpp_11p5x11p7_m3_shield" pdk2 - # magic::add_toolkit_command $layoutframe "vpp 1.8x1.8 li shield" \ - # "magic::gencell sky130::sky130_fd_pr__cap_vpp_1p8x1p8_li_shield" pdk2 - # magic::add_toolkit_command $layoutframe "vpp 1.8x1.8 m3 shield" \ - # "magic::gencell sky130::sky130_fd_pr__cap_vpp_1p8x1p8_m3_shield" pdk2 - magic::add_toolkit_command $layoutframe "vpp 4.4x4.6 li/m3 shield" \ - "magic::gencell sky130::sky130_fd_pr__cap_vpp_4p4x4p6_m3_li_shield" pdk2 - magic::add_toolkit_command $layoutframe "vpp 4.4x4.6 m3 shield" \ - "magic::gencell sky130::sky130_fd_pr__cap_vpp_4p4x4p6_m3_shield" pdk2 - magic::add_toolkit_command $layoutframe "vpp 8.6x7.9 li/m3 shield" \ - "magic::gencell sky130::sky130_fd_pr__cap_vpp_8p6x7p9_m3_li_shield" pdk2 - magic::add_toolkit_command $layoutframe "vpp 8.6x7.9 m3 shield" \ - "magic::gencell sky130::sky130_fd_pr__cap_vpp_8p6x7p9_m3_shield" pdk2 - magic::add_toolkit_command $layoutframe "vpp 4.4x4.6" \ - "magic::gencell sky130::sky130_fd_pr__cap_vpp_04p4x04p6_l1m1m2_noshield" pdk2 + magic::add_toolkit_command $layoutframe "vpp 11.5x11.7 m1-m4, li/m5 shield" \ + "magic::gencell sky130::sky130_fd_pr__cap_vpp_11p5x11p7_m1m2m3m4_shieldl1m5" pdk2 + magic::add_toolkit_command $layoutframe "vpp 11.5x11.7 m1-m2" \ + "magic::gencell sky130::sky130_fd_pr__cap_vpp_11p5x11p7_m1m2_noshield" pdk2 + magic::add_toolkit_command $layoutframe "vpp 8.6x7.8 m1-m2 l1 shield" \ + "magic::gencell sky130::sky130_fd_pr__cap_vpp_08p6x07p8_m1m2_l1shield" pdk2 + magic::add_toolkit_command $layoutframe "vpp 4.4x4.6 m1-m2 l1 shield" \ + "magic::gencell sky130::sky130_fd_pr__cap_vpp_04p4x04p6_m1m2_l1shield" pdk2 ${layoutframe}.titlebar.mbuttons.drc.toolmenu add command -label "DRC Routing" -command {drc style drc(routing)} @@ -5339,127 +5311,57 @@ # # Bipolar transistors: # -# sky130_fd_pr__npn_05v5_W1p00L1p00 -# sky130_fd_pr__npn_05v5_W1p00L2p00 -# sky130_fd_pr__pnp_05v5_W0p68L0p68 +# sky130_fd_pr__rf_npn_05v5_W1p00L1p00 +# sky130_fd_pr__rf_npn_05v5_W1p00L2p00 # sky130_fd_pr__pnp_05v5_W3p40L3p40 # # Parallel Plate Capacitors: # -# sky130_fd_pr__cap_vpp_11p5x11p7_lim5_shield -# sky130_fd_pr__cap_vpp_11p5x11p7_m3_lim5_shield -# sky130_fd_pr__cap_vpp_11p5x11p7_m4_shield -# sky130_fd_pr__cap_vpp_11p5x11p7_pom4_shield -# sky130_fd_pr__cap_vpp_4p4x4p6_m3_lim5_shield -# sky130_fd_pr__cap_vpp_6p8x6p1_lim4_shield -# sky130_fd_pr__cap_vpp_6p8x6p1_pom4_shield -# sky130_fd_pr__cap_vpp_8p6x7p9_m3_lim5_shield -# sky130_fd_pr__cap_vpp_11p5x11p7_m3_li_shield -# sky130_fd_pr__cap_vpp_11p5x11p7_m3_shield -# sky130_fd_pr__cap_vpp_1p8x1p8_li_shield -# sky130_fd_pr__cap_vpp_1p8x1p8_m3_shield -# sky130_fd_pr__cap_vpp_4p4x4p6_m3_li_shield -# sky130_fd_pr__cap_vpp_4p4x4p6_m3_shield -# sky130_fd_pr__cap_vpp_8p6x7p9_m3_li_shield -# sky130_fd_pr__cap_vpp_8p6x7p9_m3_shield -#ifdef REDISTRIBUTION +# sky130_fd_pr__cap_vpp_11p5x11p7_m1m2m3m4_shieldlim5 +# sky130_fd_pr__cap_vpp_11p5x11p7_m1m2_noshield +# sky130_fd_pr__cap_vpp_08p6x07p8_m1m2_lishield +# sky130_fd_pr__cap_vpp_04p4x04p6_m1m2_lishield # # Inductors: # -# sky130_fd_pr__ind_01_04 -# sky130_fd_pr__ind_02_04 -#endif (REDISTRIBUTION) +# sky130_fd_pr__rf_test_coil1 +# sky130_fd_pr__rf_test_coil2 +# sky130_fd_pr__rf_test_coil3 -proc sky130::sky130_fd_pr__npn_05v5_W1p00L1p00_defaults {} { +proc sky130::sky130_fd_pr__rf_npn_05v5_W1p00L1p00_defaults {} { return {nx 1 ny 1 deltax 0 deltay 0 nocell 1 xstep 7.03 ystep 7.03} } - -proc sky130::sky130_fd_pr__npn_05v5_W1p00L2p00_defaults {} { +proc sky130::sky130_fd_pr__rf_npn_05v5_W1p00L2p00_defaults {} { return {nx 1 ny 1 deltax 0 deltay 0 nocell 1 xstep 7.03 ystep 8.03} } -proc sky130::sky130_fd_pr__pnp_05v5_W0p68L0p68_defaults {} { - return {nx 1 ny 1 deltax 0 deltay 0 nocell 1 xstep 6.44 ystep 6.44} -} - proc sky130::sky130_fd_pr__pnp_05v5_W3p40L3p40_defaults {} { return {nx 1 ny 1 deltax 0 deltay 0 nocell 1 xstep 6.44 ystep 6.44} } -#ifdef REDISTRIBUTION -proc sky130::sky130_fd_pr__ind_02_04_defaults {} { +proc sky130::sky130_fd_pr__rf_test_coil1 {} { return {nx 1 ny 1 deltax 0 deltay 0 nocell 1 xstep 258 ystep 258} } - -proc sky130::sky130_fd_pr__ind_01_04_defaults {} { +proc sky130::sky130_fd_pr__rf_test_coil2 {} { return {nx 1 ny 1 deltax 0 deltay 0 nocell 1 xstep 290 ystep 404} } -#endif (REDISTRIBUTION) +proc sky130::sky130_fd_pr__rf_test_coil3 {} { + return {nx 1 ny 1 deltax 0 deltay 0 nocell 1 xstep 290 ystep 404} +} -proc sky130::sky130_fd_pr__cap_vpp_11p5x11p7_lim5_shield_defaults {} { +proc sky130::sky130_fd_pr__cap_vpp_11p5x11p7_m1m2m3m4_shieldl1m5_defaults {} { return {nx 1 ny 1 deltax 0 deltay 0 nocell 1 xstep 11.08 ystep 11.36} } - -proc sky130::sky130_fd_pr__cap_vpp_11p5x11p7_m3_lim5_shield_defaults {} { +proc sky130::sky130_fd_pr__cap_vpp_11p5x11p7_m1m2_noshield_defaults {} { return {nx 1 ny 1 deltax 0 deltay 0 nocell 1 xstep 11.08 ystep 11.36} } - -proc sky130::sky130_fd_pr__cap_vpp_11p5x11p7_m4_shield_defaults {} { +proc sky130::sky130_fd_pr__cap_vpp_08p6x07p8_m1m2_lishield_defaults {} { return {nx 1 ny 1 deltax 0 deltay 0 nocell 1 xstep 11.08 ystep 11.36} } - -proc sky130::sky130_fd_pr__cap_vpp_11p5x11p7_pom4_shield_defaults {} { +proc sky130::sky130_fd_pr__cap_vpp_04p4x04p6_m1m2_lishield_defaults {} { return {nx 1 ny 1 deltax 0 deltay 0 nocell 1 xstep 11.08 ystep 11.36} } -proc sky130::sky130_fd_pr__cap_vpp_4p4x4p6_m3_lim5_shield_defaults {} { - return {nx 1 ny 1 deltax 0 deltay 0 nocell 1 xstep 4.05 ystep 4.26} -} - -proc sky130::sky130_fd_pr__cap_vpp_6p8x6p1_lim4_shield_defaults {} { - return {nx 1 ny 1 deltax 0 deltay 0 nocell 1 xstep 6.47 ystep 5.76} -} - -proc sky130::sky130_fd_pr__cap_vpp_6p8x6p1_pom4_shield_defaults {} { - return {nx 1 ny 1 deltax 0 deltay 0 nocell 1 xstep 6.47 ystep 5.76} -} - -proc sky130::sky130_fd_pr__cap_vpp_8p6x7p9_m3_lim5_shield_defaults {} { - return {nx 1 ny 1 deltax 0 deltay 0 nocell 1 xstep 8.25 ystep 7.51} -} - -proc sky130::sky130_fd_pr__cap_vpp_11p5x11p7_m3_li_shield_defaults {} { - return {nx 1 ny 1 deltax 0 deltay 0 nocell 1 xstep 11.08 ystep 11.36} -} - -proc sky130::sky130_fd_pr__cap_vpp_11p5x11p7_m3_shield_defaults {} { - return {nx 1 ny 1 deltax 0 deltay 0 nocell 1 xstep 11.08 ystep 11.36} -} - -proc sky130::sky130_fd_pr__cap_vpp_1p8x1p8_li_shield_defaults {} { - return {nx 1 ny 1 deltax 0 deltay 0 nocell 1 xstep 1.77 ystep 1.77} -} - -proc sky130::sky130_fd_pr__cap_vpp_1p8x1p8_m3_shield_defaults {} { - return {nx 1 ny 1 deltax 0 deltay 0 nocell 1 xstep 3.88 ystep 3.88} -} - -proc sky130::sky130_fd_pr__cap_vpp_4p4x4p6_m3_li_shield_defaults {} { - return {nx 1 ny 1 deltax 0 deltay 0 nocell 1 xstep 4.05 ystep 4.26} -} - -proc sky130::sky130_fd_pr__cap_vpp_4p4x4p6_m3_shield_defaults {} { - return {nx 1 ny 1 deltax 0 deltay 0 nocell 1 xstep 4.05 ystep 4.26} -} - -proc sky130::sky130_fd_pr__cap_vpp_8p6x7p9_m3_li_shield_defaults {} { - return {nx 1 ny 1 deltax 0 deltay 0 nocell 1 xstep 8.25 ystep 7.51} -} - -proc sky130::sky130_fd_pr__cap_vpp_8p6x7p9_m3_shield_defaults {} { - return {nx 1 ny 1 deltax 0 deltay 0 nocell 1 xstep 8.25 ystep 7.51} -} - #---------------------------------------------------------------- # Fixed device: Conversion from SPICE netlist parameters to toolkit #---------------------------------------------------------------- @@ -5478,15 +5380,11 @@ #---------------------------------------------------------------- -proc sky130::sky130_fd_pr__npn_05v5_W1p00L1p00_convert {parameters} { +proc sky130::sky130_fd_pr__rf_npn_05v5_W1p00L1p00_convert {parameters} { return [sky130::fixed_convert $parameters] } -proc sky130::sky130_fd_pr__npn_05v5_W1p00L2p00_convert {parameters} { - return [sky130::fixed_convert $parameters] -} - -proc sky130::sky130_fd_pr__pnp_05v5_W0p68L0p68_convert {parameters} { +proc sky130::sky130_fd_pr__rf_npn_05v5_W1p00L2p00_convert {parameters} { return [sky130::fixed_convert $parameters] } @@ -5494,77 +5392,28 @@ return [sky130::fixed_convert $parameters] } -#ifdef REDISTRIBUTION -proc sky130::sky130_fd_pr__ind_01_04_convert {parameters} { +proc sky130::sky130_fd_pr__rf_test_coil1 {parameters} { return [sky130::fixed_convert $parameters] } -proc sky130::sky130_fd_pr__ind_02_04_convert {parameters} { - return [sky130::fixed_convert $parameters] -} -#endif (REDISTRIBUTION) - -proc sky130::sky130_fd_pr__cap_vpp_11p5x11p7_lim5_shield_convert {parameters} { +proc sky130::sky130_fd_pr__rf_test_coil2 {parameters} { return [sky130::fixed_convert $parameters] } -proc sky130::sky130_fd_pr__cap_vpp_11p5x11p7_m3_lim5_shield_convert {parameters} { +proc sky130::sky130_fd_pr__rf_test_coil3 {parameters} { return [sky130::fixed_convert $parameters] } -proc sky130::sky130_fd_pr__cap_vpp_11p5x11p7_m4_shield_convert {parameters} { +proc sky130::sky130_fd_pr__cap_vpp_11p5x11p7_m1m2m3m4_shieldl1m5_convert {parameters} { return [sky130::fixed_convert $parameters] } - -proc sky130::sky130_fd_pr__cap_vpp_11p5x11p7_pom4_shield_convert {parameters} { +proc sky130::sky130_fd_pr__cap_vpp_11p5x11p7_m1m2_noshield_convert {parameters} { return [sky130::fixed_convert $parameters] } - -proc sky130::sky130_fd_pr__cap_vpp_4p4x4p6_m3_lim5_shield_convert {parameters} { +proc sky130::sky130_fd_pr__cap_vpp_08p6x07p8_m1m2_lishield_convert {parameters} { return [sky130::fixed_convert $parameters] } - -proc sky130::sky130_fd_pr__cap_vpp_6p8x6p1_lim4_shield_convert {parameters} { - return [sky130::fixed_convert $parameters] -} - -proc sky130::sky130_fd_pr__cap_vpp_6p8x6p1_pom4_shield_convert {parameters} { - return [sky130::fixed_convert $parameters] -} - -proc sky130::sky130_fd_pr__cap_vpp_8p6x7p9_m3_lim5_shield_convert {parameters} { - return [sky130::fixed_convert $parameters] -} - -proc sky130::sky130_fd_pr__cap_vpp_11p5x11p7_m3_li_shield_convert {parameters} { - return [sky130::fixed_convert $parameters] -} - -proc sky130::sky130_fd_pr__cap_vpp_11p5x11p7_m3_shield_convert {parameters} { - return [sky130::fixed_convert $parameters] -} - -proc sky130::sky130_fd_pr__cap_vpp_1p8x1p8_li_shield_convert {parameters} { - return [sky130::fixed_convert $parameters] -} - -proc sky130::sky130_fd_pr__cap_vpp_1p8x1p8_m3_shield_convert {parameters} { - return [sky130::fixed_convert $parameters] -} - -proc sky130::sky130_fd_pr__cap_vpp_4p4x4p6_m3_li_shield_convert {parameters} { - return [sky130::fixed_convert $parameters] -} - -proc sky130::sky130_fd_pr__cap_vpp_4p4x4p6_m3_shield_convert {parameters} { - return [sky130::fixed_convert $parameters] -} - -proc sky130::sky130_fd_pr__cap_vpp_8p6x7p9_m3_li_shield_convert {parameters} { - return [sky130::fixed_convert $parameters] -} - -proc sky130::sky130_fd_pr__cap_vpp_8p6x7p9_m3_shield_convert {parameters} { +proc sky130::sky130_fd_pr__cap_vpp_04p4x04p6_m1m2_lishield_convert {parameters} { return [sky130::fixed_convert $parameters] } @@ -5611,15 +5460,11 @@ magic::add_entry deltay "Y step (um)" $parameters } -proc sky130::sky130_fd_pr__npn_05v5_W1p00L1p00_dialog {parameters} { +proc sky130::sky130_fd_pr__rf_npn_05v5_W1p00L1p00_dialog {parameters} { sky130::fixed_dialog $parameters } -proc sky130::sky130_fd_pr__npn_05v5_W1p00L2p00_dialog {parameters} { - sky130::fixed_dialog $parameters -} - -proc sky130::sky130_fd_pr__pnp_05v5_W0p68L0p68_dialog {parameters} { +proc sky130::sky130_fd_pr__rf_npn_05v5_W1p00L2p00_dialog {parameters} { sky130::fixed_dialog $parameters } @@ -5627,77 +5472,28 @@ sky130::fixed_dialog $parameters } -#ifdef REDISTRIBUTION -proc sky130::sky130_fd_pr__ind_01_04_dialog {parameters} { +proc sky130::sky130_fd_pr__rf_test_coil1 {parameters} { sky130::fixed_dialog $parameters } -proc sky130::sky130_fd_pr__ind_02_04_dialog {parameters} { - sky130::fixed_dialog $parameters -} -#endif (REDISTRIBUTION) - -proc sky130::sky130_fd_pr__cap_vpp_11p5x11p7_lim5_shield_dialog {parameters} { +proc sky130::sky130_fd_pr__rf_test_coil2 {parameters} { sky130::fixed_dialog $parameters } -proc sky130::sky130_fd_pr__cap_vpp_11p5x11p7_m3_lim5_shield_dialog {parameters} { +proc sky130::sky130_fd_pr__rf_test_coil3 {parameters} { sky130::fixed_dialog $parameters } -proc sky130::sky130_fd_pr__cap_vpp_11p5x11p7_m4_shield_dialog {parameters} { +proc sky130::sky130_fd_pr__cap_vpp_11p5x11p7_m1m2m3m4_shieldl1m5_dialog {parameters} { sky130::fixed_dialog $parameters } - -proc sky130::sky130_fd_pr__cap_vpp_11p5x11p7_pom4_shield_dialog {parameters} { +proc sky130::sky130_fd_pr__cap_vpp_11p5x11p7_m1m2_noshield_dialog {parameters} { sky130::fixed_dialog $parameters } - -proc sky130::sky130_fd_pr__cap_vpp_4p4x4p6_m3_lim5_shield_dialog {parameters} { +proc sky130::sky130_fd_pr__cap_vpp_08p6x07p8_m1m2_lishield_dialog {parameters} { sky130::fixed_dialog $parameters } - -proc sky130::sky130_fd_pr__cap_vpp_6p8x6p1_lim4_shield_dialog {parameters} { - sky130::fixed_dialog $parameters -} - -proc sky130::sky130_fd_pr__cap_vpp_6p8x6p1_pom4_shield_dialog {parameters} { - sky130::fixed_dialog $parameters -} - -proc sky130::sky130_fd_pr__cap_vpp_8p6x7p9_m3_lim5_shield_dialog {parameters} { - sky130::fixed_dialog $parameters -} - -proc sky130::sky130_fd_pr__cap_vpp_11p5x11p7_m3_li_shield_dialog {parameters} { - sky130::fixed_dialog $parameters -} - -proc sky130::sky130_fd_pr__cap_vpp_11p5x11p7_m3_shield_dialog {parameters} { - sky130::fixed_dialog $parameters -} - -proc sky130::sky130_fd_pr__cap_vpp_1p8x1p8_li_shield_dialog {parameters} { - sky130::fixed_dialog $parameters -} - -proc sky130::sky130_fd_pr__cap_vpp_1p8x1p8_m3_shield_dialog {parameters} { - sky130::fixed_dialog $parameters -} - -proc sky130::sky130_fd_pr__cap_vpp_4p4x4p6_m3_li_shield_dialog {parameters} { - sky130::fixed_dialog $parameters -} - -proc sky130::sky130_fd_pr__cap_vpp_4p4x4p6_m3_shield_dialog {parameters} { - sky130::fixed_dialog $parameters -} - -proc sky130::sky130_fd_pr__cap_vpp_8p6x7p9_m3_li_shield_dialog {parameters} { - sky130::fixed_dialog $parameters -} - -proc sky130::sky130_fd_pr__cap_vpp_8p6x7p9_m3_shield_dialog {parameters} { +proc sky130::sky130_fd_pr__cap_vpp_04p4x04p6_m1m2_lishield_dialog {parameters} { sky130::fixed_dialog $parameters } @@ -5739,94 +5535,41 @@ # No additional parameters declared for drawing #---------------------------------------------------------------- -proc sky130::sky130_fd_pr__npn_05v5_W1p00L1p00_draw {parameters} { - return [sky130::fixed_draw sky130_fd_pr__npn_05v5_W1p00L1p00 $parameters] +proc sky130::sky130_fd_pr__rf_npn_05v5_W1p00L1p00_draw {parameters} { + return [sky130::fixed_draw sky130_fd_pr__rf_npn_05v5_W1p00L1p00 $parameters] } -proc sky130::sky130_fd_pr__npn_05v5_W1p00L2p00_draw {parameters} { - return [sky130::fixed_draw sky130_fd_pr__npn_05v5_W1p00L2p00 $parameters] -} - -proc sky130::sky130_fd_pr__pnp_05v5_W0p68L0p68_draw {parameters} { - return [sky130::fixed_draw sky130_fd_pr__pnp_05v5_W0p68L0p68 $parameters] +proc sky130::sky130_fd_pr__rf_npn_05v5_W1p00L2p00_draw {parameters} { + return [sky130::fixed_draw sky130_fd_pr__rf_npn_05v5_W1p00L2p00 $parameters] } proc sky130::sky130_fd_pr__pnp_05v5_W3p40L3p40_draw {parameters} { return [sky130::fixed_draw sky130_fd_pr__pnp_05v5_W3p40L3p40 $parameters] } -#ifdef REDISTRIBUTION -proc sky130::sky130_fd_pr__ind_01_04_draw {parameters} { - return [sky130::fixed_draw sky130_fd_pr__ind_01_04 $parameters] +proc sky130::sky130_fd_pr__rf_test_coil1 {parameters} { + return [sky130::fixed_draw sky130_fd_pr__rf_test_coil1 $parameters] } -proc sky130::sky130_fd_pr__ind_02_04_draw {parameters} { - return [sky130::fixed_draw sky130_fd_pr__ind_02_04 $parameters] -} -#endif (REDISTRIBUTION) - -proc sky130::sky130_fd_pr__cap_vpp_11p5x11p7_lim5_shield_draw {parameters} { - return [sky130::fixed_draw sky130_fd_pr__cap_vpp_11p5x11p7_lim5_shield $parameters] +proc sky130::sky130_fd_pr__rf_test_coil2 {parameters} { + return [sky130::fixed_draw sky130_fd_pr__rf_test_coil2 $parameters] } -proc sky130::sky130_fd_pr__cap_vpp_11p5x11p7_m3_lim5_shield_draw {parameters} { - return [sky130::fixed_draw sky130_fd_pr__cap_vpp_11p5x11p7_m3_lim5_shield $parameters] +proc sky130::sky130_fd_pr__rf_test_coil3 {parameters} { + return [sky130::fixed_draw sky130_fd_pr__rf_test_coil3 $parameters] } -proc sky130::sky130_fd_pr__cap_vpp_11p5x11p7_m4_shield_draw {parameters} { - return [sky130::fixed_draw sky130_fd_pr__cap_vpp_11p5x11p7_m4_shield $parameters] +proc sky130::sky130_fd_pr__cap_vpp_11p5x11p7_m1m2m3m4_shieldl1m5_draw {parameters} { + return [sky130::fixed_draw sky130_fd_pr__cap_vpp_11p5x11p7_m1m2m3m4_shieldl1m5 $parameters] } - -proc sky130::sky130_fd_pr__cap_vpp_11p5x11p7_pom4_shield_draw {parameters} { - return [sky130::fixed_draw sky130_fd_pr__cap_vpp_11p5x11p7_pom4_shield $parameters] +proc sky130::sky130_fd_pr__cap_vpp_11p5x11p7_m1m2_noshield_draw {parameters} { + return [sky130::fixed_draw sky130_fd_pr__cap_vpp_11p5x11p7_m1m2_noshield $parameters] } - -proc sky130::sky130_fd_pr__cap_vpp_4p4x4p6_m3_lim5_shield_draw {parameters} { - return [sky130::fixed_draw sky130_fd_pr__cap_vpp_4p4x4p6_m3_lim5_shield $parameters] +proc sky130::sky130_fd_pr__cap_vpp_08p6x07p8_m1m2_lishield_draw {parameters} { + return [sky130::fixed_draw sky130_fd_pr__cap_vpp_08p6x07p8_m1m2_lishield $parameters] } - -proc sky130::sky130_fd_pr__cap_vpp_6p8x6p1_lim4_shield_draw {parameters} { - return [sky130::fixed_draw sky130_fd_pr__cap_vpp_6p8x6p1_lim4_shield $parameters] -} - -proc sky130::sky130_fd_pr__cap_vpp_6p8x6p1_pom4_shield_draw {parameters} { - return [sky130::fixed_draw sky130_fd_pr__cap_vpp_6p8x6p1_pom4_shield $parameters] -} - -proc sky130::sky130_fd_pr__cap_vpp_8p6x7p9_m3_lim5_shield_draw {parameters} { - return [sky130::fixed_draw sky130_fd_pr__cap_vpp_8p6x7p9_m3_lim5_shield $parameters] -} - -proc sky130::sky130_fd_pr__cap_vpp_11p5x11p7_m3_li_shield_draw {parameters} { - return [sky130::fixed_draw sky130_fd_pr__cap_vpp_11p5x11p7_m3_li_shield $parameters] -} - -proc sky130::sky130_fd_pr__cap_vpp_11p5x11p7_m3_shield_draw {parameters} { - return [sky130::fixed_draw sky130_fd_pr__cap_vpp_11p5x11p7_m3_shield $parameters] -} - -proc sky130::sky130_fd_pr__cap_vpp_1p8x1p8_li_shield_draw {parameters} { - return [sky130::fixed_draw sky130_fd_pr__cap_vpp_1p8x1p8_li_shield $parameters] -} - -proc sky130::sky130_fd_pr__cap_vpp_1p8x1p8_m3_shield_draw {parameters} { - return [sky130::fixed_draw sky130_fd_pr__cap_vpp_1p8x1p8_m3_shield $parameters] -} - -proc sky130::sky130_fd_pr__cap_vpp_4p4x4p6_m3_li_shield_draw {parameters} { - return [sky130::fixed_draw sky130_fd_pr__cap_vpp_4p4x4p6_m3_li_shield $parameters] -} - -proc sky130::sky130_fd_pr__cap_vpp_4p4x4p6_m3_shield_draw {parameters} { - return [sky130::fixed_draw sky130_fd_pr__cap_vpp_4p4x4p6_m3_shield $parameters] -} - -proc sky130::sky130_fd_pr__cap_vpp_8p6x7p9_m3_li_shield_draw {parameters} { - return [sky130::fixed_draw sky130_fd_pr__cap_vpp_8p6x7p9_m3_li_shield $parameters] -} - -proc sky130::sky130_fd_pr__cap_vpp_8p6x7p9_m3_shield_draw {parameters} { - return [sky130::fixed_draw sky130_fd_pr__cap_vpp_8p6x7p9_m3_shield $parameters] +proc sky130::sky130_fd_pr__cap_vpp_04p4x04p6_m1m2_lishield_draw {parameters} { + return [sky130::fixed_draw sky130_fd_pr__cap_vpp_04p4x04p6_m1m2_lishield $parameters] } #---------------------------------------------------------------- @@ -5879,11 +5622,11 @@ #---------------------------------------------------------------- -proc sky130::sky130_fd_pr__npn_05v5_W1p00L1p00_check {parameters} { +proc sky130::sky130_fd_pr__rf_npn_05v5_W1p00L1p00_check {parameters} { return [sky130::fixed_check $parameters] } -proc sky130::sky130_fd_pr__npn_05v5_W1p00L2p00_check {parameters} { +proc sky130::sky130_fd_pr__rf_npn_05v5_W1p00L2p00_check {parameters} { return [sky130::fixed_check $parameters] } @@ -5895,77 +5638,27 @@ return [sky130::fixed_check $parameters] } -#ifdef REDISTRIBUTION -proc sky130::sky130_fd_pr__ind_01_04_check {parameters} { +proc sky130::sky130_fd_pr__rf_test_coil1 {parameters} { return [sky130::fixed_check $parameters] } -proc sky130::sky130_fd_pr__ind_02_04_check {parameters} { - return [sky130::fixed_check $parameters] -} -#endif (REDISTRIBUTION) - -proc sky130::sky130_fd_pr__cap_vpp_11p5x11p7_lim5_shield_check {parameters} { +proc sky130::sky130_fd_pr__rf_test_coil2 {parameters} { return [sky130::fixed_check $parameters] } -proc sky130::sky130_fd_pr__cap_vpp_11p5x11p7_m3_lim5_shield_check {parameters} { +proc sky130::sky130_fd_pr__rf_test_coil3 {parameters} { return [sky130::fixed_check $parameters] } -proc sky130::sky130_fd_pr__cap_vpp_11p5x11p7_m4_shield_check {parameters} { +proc sky130::sky130_fd_pr__cap_vpp_11p5x11p7_m1m2m3m4_shieldl1m5_check {parameters} { return [sky130::fixed_check $parameters] } - -proc sky130::sky130_fd_pr__cap_vpp_11p5x11p7_pom4_shield_check {parameters} { +proc sky130::sky130_fd_pr__cap_vpp_11p5x11p7_m1m2_noshield_check {parameters} { return [sky130::fixed_check $parameters] } - -proc sky130::sky130_fd_pr__cap_vpp_4p4x4p6_m3_lim5_shield_check {parameters} { +proc sky130::sky130_fd_pr__cap_vpp_08p6x07p8_m1m2_lishield_check {parameters} { return [sky130::fixed_check $parameters] } - -proc sky130::sky130_fd_pr__cap_vpp_6p8x6p1_lim4_shield_check {parameters} { +proc sky130::sky130_fd_pr__cap_vpp_04p4x04p6_m1m2_lishield_check {parameters} { return [sky130::fixed_check $parameters] } - -proc sky130::sky130_fd_pr__cap_vpp_6p8x6p1_pom4_shield_check {parameters} { - return [sky130::fixed_check $parameters] -} - -proc sky130::sky130_fd_pr__cap_vpp_8p6x7p9_m3_lim5_shield_check {parameters} { - return [sky130::fixed_check $parameters] -} - -proc sky130::sky130_fd_pr__cap_vpp_11p5x11p7_m3_li_shield_check {parameters} { - return [sky130::fixed_check $parameters] -} - -proc sky130::sky130_fd_pr__cap_vpp_11p5x11p7_m3_shield_check {parameters} { - return [sky130::fixed_check $parameters] -} - -proc sky130::sky130_fd_pr__cap_vpp_1p8x1p8_li_shield_check {parameters} { - return [sky130::fixed_check $parameters] -} - -proc sky130::sky130_fd_pr__cap_vpp_1p8x1p8_m3_shield_check {parameters} { - return [sky130::fixed_check $parameters] -} - -proc sky130::sky130_fd_pr__cap_vpp_4p4x4p6_m3_li_shield_check {parameters} { - return [sky130::fixed_check $parameters] -} - -proc sky130::sky130_fd_pr__cap_vpp_4p4x4p6_m3_shield_check {parameters} { - return [sky130::fixed_check $parameters] -} - -proc sky130::sky130_fd_pr__cap_vpp_8p6x7p9_m3_li_shield_check {parameters} { - return [sky130::fixed_check $parameters] -} - -proc sky130::sky130_fd_pr__cap_vpp_8p6x7p9_m3_shield_check {parameters} { - return [sky130::fixed_check $parameters] -} -