Removed the "cellname delete \(UNNAMED\)" commands from the
generate_magic.tcl scripts, because this is causing a database
corruption in magic.  This is a "quick fix", as the nature of the
database corruption needs to be investigated.  This fix prevents
apparently unrelated errors in the port indexing in the installed
files in the library mag/ directories.
diff --git a/VERSION b/VERSION
index 9f1a864..3a90b24 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-1.0.57
+1.0.58
diff --git a/common/foundry_install.py b/common/foundry_install.py
index 1ee1503..dca4029 100755
--- a/common/foundry_install.py
+++ b/common/foundry_install.py
@@ -1221,7 +1221,6 @@
                 # .mag files from the database.
 
                 print('Creating magic generation script to generate magic database files.') 
-
                 with open(destlibdir + '/generate_magic.tcl', 'w') as ofile:
                     print('#!/usr/bin/env wish', file=ofile)
                     print('#--------------------------------------------', file=ofile)
@@ -1271,6 +1270,7 @@
 
                             leffiles = os.listdir(lefsrclibdir)
                             leffiles = list(item for item in leffiles if os.path.splitext(item)[1] == '.lef')
+                            print('puts stdout "Annotating cells from LEF"', file=ofile)
                             for leffile in leffiles:
                                 print('lef read ' + lefsrclibdir + '/' + leffile, file=ofile)
                      
@@ -1282,11 +1282,17 @@
                                 netdir = slibdir
 
                             # Find CDL/SPICE file names in the source
+                            # Ignore "sources.txt" if it is in the list.
                             netfiles = os.listdir(netdir)
+                            print('puts stdout "Annotating cells from CDL/SPICE"',
+					file=ofile)
                             for netfile in netfiles:
-                                print('readspice ' + netdir + '/' + netfile, file=ofile)
+                                if os.path.split(netfile)[1] != 'sources.txt':
+                                    print('catch {readspice ' + netdir + '/' + netfile
+						+ '}', file=ofile)
 
-                    print('cellname delete \(UNNAMED\)', file=ofile)
+                    # print('cellname delete \(UNNAMED\)', file=ofile)
+                    print('puts stdout "Writing all magic database files"', file=ofile)
                     print('writeall force', file=ofile)
 
                     leffiles = []
@@ -1436,6 +1442,7 @@
                             print('   load ' + lefmacro, file=ofile)
                             print('   lef write ' + lefmacro + ' -hide', file=ofile)
                             print('}', file=ofile)
+
                     print('puts stdout "Done."', file=ofile)
                     print('quit -noprompt', file=ofile)
 
@@ -1648,7 +1655,7 @@
                     # an error message.
                     if len(lefmacros) > 0:
                         print('load ' + lefmacros[0], file=ofile)
-                        print('cellname delete \(UNNAMED\)', file=ofile)
+                        # print('cellname delete \(UNNAMED\)', file=ofile)
                     else:
                         err_no_macros = True
                     print('writeall force', file=ofile)
@@ -1987,7 +1994,7 @@
                 else:
                     gdslibroot = os.path.split(allgdslibname)[1]
                     print('load ' + os.path.splitext(gdslibroot)[0], file=ofile)
-                print('cellname delete \(UNNAMED\)', file=ofile)
+                # print('cellname delete \(UNNAMED\)', file=ofile)
 
                 print('ext2spice lvs', file=ofile)
 
diff --git a/sky130/magic/sky130.tech b/sky130/magic/sky130.tech
index bc95751..e796d17 100644
--- a/sky130/magic/sky130.tech
+++ b/sky130/magic/sky130.tech
@@ -940,6 +940,7 @@
         grow 185
  	grow 	345
  	shrink 	345
+	and-not hvntm_block
 	calma 125 20
 
 #----------------------------------------------------------------
@@ -966,7 +967,9 @@
 	or alldiffmv,mvvar
 	grow	185
         bloat-all alldiffmv nwell
-	grow-min 600
+	# (HVI min width rule is 0.6 but CNTM min width rule is 0.84um)
+	grow-min 840
+	# grow-min 600
 	bridge	700 600
 
  templayer extendTHKOX	baseTHKOX,CELLRING
@@ -2011,14 +2014,14 @@
  ignore POLYMOD
  ignore LOWTAPDENSITY
 
- layer nwell NWELL,WELLTXT,WELLPIN
- and-not PNPID
+ layer pnp NWELL,WELLTXT,WELLPIN
+ and PNPID
  labels NWELL
  labels WELLTXT text
  labels WELLPIN port
 
- layer pnp NWELL,WELLTXT,WELLPIN
- and PNPID
+ layer nwell NWELL,WELLTXT,WELLPIN
+ and-not PNPID
  labels NWELL
  labels WELLTXT text
  labels WELLPIN port
@@ -2925,16 +2928,16 @@
  or mvpdicbase
  labels CONT
 
- layer locali LI,LITXT,LIPIN
+ layer coreli LI,LITXT,LIPIN
  and-not LIRES,LISHORT
- and-not COREID
+ and COREID
  labels LI
  labels LITXT text
  labels LIPIN port
 
- layer coreli LI,LITXT,LIPIN
+ layer locali LI,LITXT,LIPIN
  and-not LIRES,LISHORT
- and COREID
+ and-not COREID
  labels LI
  labels LITXT text
  labels LIPIN port
@@ -3515,14 +3518,14 @@
  ignore POLYMOD
  ignore LOWTAPDENSITY
 
- layer nwell NWELL,WELLTXT,WELLPIN
- and-not PNPID
+ layer pnp NWELL,WELLTXT,WELLPIN
+ and PNPID
  labels NWELL
  labels WELLTXT port
  labels WELLPIN port
 
- layer pnp NWELL,WELLTXT,WELLPIN
- and PNPID
+ layer nwell NWELL,WELLTXT,WELLPIN
+ and-not PNPID
  labels NWELL
  labels WELLTXT port
  labels WELLPIN port
@@ -4429,16 +4432,16 @@
  or mvpdicbase
  labels CONT
 
- layer locali LI,LITXT,LIPIN
+ layer coreli LI,LITXT,LIPIN
  and-not LIRES,LISHORT
- and-not COREID
+ and COREID
  labels LI
  labels LITXT port
  labels LIPIN port
 
- layer coreli LI,LITXT,LIPIN
+ layer locali LI,LITXT,LIPIN
  and-not LIRES,LISHORT
- and COREID
+ and-not COREID
  labels LI
  labels LITXT port
  labels LIPIN port