Added a couple of missing rules to the magic tech file for sky130
regarding the distance of N-diffusion and P-tap to high-voltage
nwell, and for high-voltage N-diffusion to any (high- or low-
voltage) nwell.  In most cases these rules were effectively checked
by other rules, but near deep-nwell edges in particular, the nwell
edge can be too close to diffusion in pwell without being flagged
as an error.
diff --git a/VERSION b/VERSION
index 35ddd16..9b52297 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-1.0.519
+1.0.520
diff --git a/sky130/magic/sky130.tech b/sky130/magic/sky130.tech
index f2b1bfa..be435ab 100644
--- a/sky130/magic/sky130.tech
+++ b/sky130/magic/sky130.tech
@@ -1732,6 +1732,14 @@
  grow-min 840
  bridge	700 600
 
+ # Diffusion spacing to mvnwell.  Note:  mvdiff to any well
+ # (mv or lv) is the same rule and can be checked by regular
+ # edge-based rules.  Only mvwell to lvdiff needs a CIF rule.
+ templayer difftap_near_mvnwell mvnwell
+ grow 430
+ and alldifflv
+
+
  # Simple spacing checks to lvnwell must use CIF-DRC rule
  # Note that HVI may *abut* lvnwell;  this can only be handled
  # with mask-hints layers.
@@ -4369,14 +4377,16 @@
 	"MV Diffusion spacing < %d (diff/tap.15a)"
  spacing alldiffmv *mvnsd,*mvpsd 270 touching_ok \
 	"MV Diffusion to MV tap spacing < %d (diff/tap.3)"
- spacing *mvndiff,mvnfet,mvnfetesd,mvnnfet,nnfet,*mvndiode,*nndiode,mvndiffres,mvvar *mvpsd 370 \
-	touching_ok "MV P-Diffusion to MV N-tap spacing < %d (diff/tap.15b)"
- spacing *mvnsd,*mvpdiff,mvpfet,mvpfetesd,mvvar,*mvpdiode *mvpsd,*psd 760 touching_illegal \
+ spacing *mvndiff,mvnfet,mvnfetesd,mvnnfet,nnfet,*mvndiode,*nndiode,mvndiffres,mvvar \
+	*mvpsd 370 touching_ok \
+	"MV P-Diffusion to MV N-tap spacing < %d (diff/tap.15b)"
+ spacing *mvnsd,*mvpdiff,mvpfet,mvpfetesd,mvvar,*mvpdiode *mvpsd,*psd 760 \
+	touching_illegal \
 	"MV Diffusion in N-well to P-tap spacing < %d (diff/tap.20 + diff/tap.17,19)"
  spacing *ndiff,*ndiode,nfet allnwell 340 touching_illegal \
 	"N-Diffusion spacing to N-well < %d (diff/tap.9)"
- spacing *mvndiff,*mvndiode,mvnfet,mvnnfet,nnfet allnwell 340 touching_illegal \
-	"N-Diffusion spacing to N-well < %d (diff/tap.9)"
+ spacing *mvndiff,*mvndiode,mvnfet,mvnnfet,nnfet allnwell 430 touching_illegal \
+	"N-Diffusion spacing to N-well < %d (diff/tap.24)"
  spacing *psd allnwell 130 touching_illegal \
 	"P-tap spacing to N-well < %d (diff/tap.11)"
  spacing *mvpsd allnwell 130 touching_illegal \
@@ -4399,6 +4409,8 @@
 	"MV diffusion to LV nwell spacing < %d (hvi.5 + nsd/psd.5)"
  cifspacing nwell_or_hvi nwell_or_hvi 700 touching_ok \
 	"HVI to HVI or LV nwell spacing < %d (hvi.5)"
+ cifmaxwidth difftap_near_mvnwell 0 bend_illegal \
+	"Spacing of N-Diffusion or P-tap to MV nwell < 0.43um (diff/tap.18,20)"
 variants (fast),(full)
 
  spacing allnfets allpactivenonfet 270 touching_illegal \