Added GF180MCU support. Corrected the foundry_install script to handle the
check for a GDS file having a top level (vs. being a library) inside the
Tcl script. Updated the reference library commit numbers for sky130 and
gf180mcu. Added missing entries for the xschem, precheck, and klayout
third-party libraries to the nodeinfo.json file for sky130. Corrected
the script used by "make reference", which was still expecting the original
keyword "distribution" instead of "reference".
diff --git a/common/foundry_install.py b/common/foundry_install.py
index 250635c..99123b4 100755
--- a/common/foundry_install.py
+++ b/common/foundry_install.py
@@ -2225,17 +2225,25 @@
print('ext2spice cthresh 0.1', file=ofile)
if os.path.isfile(allgdslibname):
- print('select top cell', file=ofile)
- print('set glist [cellname list children]', file=ofile)
- print('foreach cell $glist {', file=ofile)
+ # Do not depend absolutely on the library having a top
+ # level cell, but query for it from inside magic
+ print('if {[cellname list exists ' + allgdslibname + ']} {',
+ file=ofile)
+ print(' select top cell', file=ofile)
+ print(' set glist [cellname list children]', file=ofile)
+ print('} else {', file=ofile)
+ print(' set glist [cellname list top]', file=ofile)
+ print('}', file=ofile)
else:
- print('foreach cell [cellname list top] {', file=ofile)
+ print('set glist [cellname list top]', file=ofile)
+ print('foreach cell $glist {', file=ofile)
print(' load $cell', file=ofile)
print(' puts stdout "Extracting cell $cell"', file=ofile)
print(' extract all', file=ofile)
print(' ext2spice', file=ofile)
print('}', file=ofile)
+
print('puts stdout "Done."', file=ofile)
print('quit -noprompt', file=ofile)
diff --git a/common/save_commit_refs.py b/common/save_commit_refs.py
index 3987db1..c226313 100755
--- a/common/save_commit_refs.py
+++ b/common/save_commit_refs.py
@@ -12,7 +12,7 @@
# section is fixed and is not modified by replacement like the
# rest of the JSON file. It is the duty of the PDK developer to
# update the references section periodically by running "make
-# distribution".
+# reference".
#
#--------------------------------------------------------------------
# Usage:
@@ -41,7 +41,7 @@
# contents.
#
# Example:
-# sky130.json has an entry in "distribution":
+# sky130.json has an entry in "reference":
# "magic": "fe2eb6d3906ed15ade0e7a51daea80dd4e3846e2"
# reflecting the git commit number of the program "magic" at
# the time the developer last ran save_commit_refs.py.
@@ -49,7 +49,7 @@
# "magic": "MAGIC_COMMIT"
# If save_commit_refs.py is called as:
# save_commit_refs.py sky130.json -DMAGIC_COMMIT=abcdef
-# then the line in "distribution" will be changed to:
+# then the line in "reference" will be changed to:
# "magic": "abcdef"
#
#--------------------------------------------------------------------
@@ -92,7 +92,7 @@
newline = line
if indist == False:
- if '"distribution":' in line:
+ if '"reference":' in line:
indist = True
else:
# Find values matching keywords