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
