Updated the sky130.tech file to better handle the HVI-to-LV-nwell
DRC rule, accounting for HVI abutting nwell through the use of
mask hints. Modified the Makefile to include such an HV mask hint
on the high-voltage library level shifter cell, so that it does not
generate (fals positive) DRC errors.
diff --git a/sky130/magic/sky130.tech b/sky130/magic/sky130.tech
index 8a4d9f3..8edca23 100644
--- a/sky130/magic/sky130.tech
+++ b/sky130/magic/sky130.tech
@@ -1633,7 +1633,16 @@
bridge 700 600
# 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.
+
+ templayer drawn_hvi
+ mask-hints HVI
+
templayer allmvdiffnowell *mvndiff,*mvpsd
+ and-not drawn_hvi
+
+ templayer nwell_or_hvi nwell,drawn_hvi
templayer lvnwell nwell
and-not mvnwell
@@ -4145,6 +4154,8 @@
variants (full)
cifspacing allmvdiffnowell lvnwell 825 touching_illegal \
"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)"
variants (fast),(full)
spacing allnfets allpactivenonfet 270 touching_illegal \