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