(1) Modified the model filter script to insert an additional line
into all.spice for Xyce support.
(2) Modified the magic techfile to align the placement of vias and
ReRAM layers when an area contains multiple devices (which is
probably a bad idea but no reason for magic to screw up the
GDS).
(3) Corrected the OpenRCX calibration tables (again) after finding
that the calculation of fractional fringe shielding was
inverted (that error has been fixed in magic).
diff --git a/VERSION b/VERSION
index 3eb733d..9667f83 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-1.0.301
+1.0.302
diff --git a/sky130/custom/scripts/rename_models.py b/sky130/custom/scripts/rename_models.py
index 1cc8960..aaa3490 100755
--- a/sky130/custom/scripts/rename_models.py
+++ b/sky130/custom/scripts/rename_models.py
@@ -30,6 +30,12 @@
print('rename_models.py: failed to open ' + inname + ' for reading.', file=sys.stderr)
return 1
+ # Check specifically for the file "all.spice"
+ allspice = False
+ if os.path.split(inname)[1] == 'all.spice':
+ allspice = True
+ optionrex = re.compile('option scale=', re.IGNORECASE)
+
# Process input with regexp
fixedlines = []
@@ -44,6 +50,14 @@
# breaking ngspice compatibility ('$' comments changed to ';')
fixedline = re.sub('(.*[ \t]+)\$([ \t+].*)', '\g<1>;\g<2>', fixedline)
+ # Add an additional option line for Xyce compatibility. Note that having
+ # both option lines means that both ngspice and Xyce will complain about
+ # one of them, but both will run without issues otherwise.
+ if allspice:
+ omatch = optionrex.match(fixedline)
+ if omatch:
+ fixedlines.append('.options parser scale=1.0u ; for Xyce')
+
fixedlines.append(fixedline)
if fixedline != line:
modified = True
diff --git a/sky130/magic/sky130.tech b/sky130/magic/sky130.tech
index 59658dc..46b84a4 100644
--- a/sky130/magic/sky130.tech
+++ b/sky130/magic/sky130.tech
@@ -1273,7 +1273,7 @@
#ifdef RERAM
#undef RERAM
layer VIA1 reram
- squares-grid 55 150 170
+ squares-grid 55 230 230
calma 68 44
layer RERAM reram
diff --git a/sky130/openlane/rules.openrcx.sky130A.max.magic b/sky130/openlane/rules.openrcx.sky130A.max.magic
index 63ee201..9ce1451 100644
--- a/sky130/openlane/rules.openrcx.sky130A.max.magic
+++ b/sky130/openlane/rules.openrcx.sky130A.max.magic
@@ -491,17 +491,17 @@
Metal 2 OVER 1 UNDER 3
DIST count 12 width 0.14
0.14 0.0013887 0.000143553 0.000523088
-0.28 0.000780276 0.000151583 0.000523088
-0.35 0.000648137 0.000155571 0.000523088
-0.42 0.000556378 0.000159546 0.000523088
-0.49 0.000488509 0.0001635 0.000523088
-0.56 0.000436058 0.000167427 0.000523088
-0.63 0.00039416 0.000171358 0.000523088
-0.7 0.000359778 0.000175327 0.000523088
-0.84 0.000306783 0.000183151 0.000523088
-1.12 0.000237505 0.00019867 0.000523088
-1.4 0.000194001 0.000213982 0.000523088
-1.68 0 0.000393098 0.000523088
+0.28 0.000780276 0.000151528 0.000523088
+0.35 0.000648137 0.000155464 0.000523088
+0.42 0.000556378 0.000159389 0.000523088
+0.49 0.000488509 0.000163295 0.000523088
+0.56 0.000436058 0.000167177 0.000523088
+0.63 0.00039416 0.000171064 0.000523088
+0.7 0.000359778 0.000174991 0.000523088
+0.84 0.000306783 0.00018279 0.000523088
+1.12 0.000237505 0.000198315 0.000523088
+1.4 0.000194001 0.000213632 0.000523088
+1.68 0 0.000392751 0.000523088
END DIST
Metal 2 OVER 1 UNDER 4
@@ -523,8 +523,8 @@
Metal 2 OVER 1 UNDER 5
DIST count 12 width 0.14
0.14 0.00138881 7.33414e-05 0.000523088
-0.28 0.000780379 7.90045e-05 0.000523088
-0.35 -0.000180511 4.04098e-06 0.000523088
+0.28 0.000780379 7.84076e-05 0.000523088
+0.35 0.000648248 7.98382e-05 0.000523088
0.42 0.000556489 8.17709e-05 0.000523088
0.49 0.000488596 8.45177e-05 0.000523088
0.56 0.000436098 8.72582e-05 0.000523088
@@ -533,7 +533,7 @@
0.84 0.00030683 9.81633e-05 0.000523088
1.12 0.000237576 0.000108948 0.000523088
1.4 0.000194111 0.00011958 0.000523088
-1.68 0 -3.22028 0.000523088
+1.68 0 0.000294373 0.000523088
END DIST
Metal 2 OVER 1 UNDER 6
diff --git a/sky130/openlane/rules.openrcx.sky130B.max.magic b/sky130/openlane/rules.openrcx.sky130B.max.magic
index e8c7aa9..2969bca 100644
--- a/sky130/openlane/rules.openrcx.sky130B.max.magic
+++ b/sky130/openlane/rules.openrcx.sky130B.max.magic
@@ -491,17 +491,17 @@
Metal 2 OVER 1 UNDER 3
DIST count 12 width 0.14
0.14 0.0013887 9.59394e-05 0.000523088
-0.28 0.000780276 0.000102193 0.000523088
-0.35 0.000648137 0.000105303 0.000523088
-0.42 0.000556378 0.000108401 0.000523088
-0.49 0.000488509 0.000111482 0.000523088
-0.56 0.000436058 0.000114544 0.000523088
-0.63 0.00039416 0.000117605 0.000523088
-0.7 0.000359778 0.000120697 0.000523088
-0.84 0.000306783 0.000126787 0.000523088
-1.12 0.000237505 0.000138865 0.000523088
-1.4 0.000194001 0.000150781 0.000523088
-1.68 0 0.000326564 0.000523088
+0.28 0.000780276 0.000102138 0.000523088
+0.35 0.000648137 0.000105196 0.000523088
+0.42 0.000556378 0.000108244 0.000523088
+0.49 0.000488509 0.000111277 0.000523088
+0.56 0.000436058 0.000114293 0.000523088
+0.63 0.00039416 0.000117311 0.000523088
+0.7 0.000359778 0.000120361 0.000523088
+0.84 0.000306783 0.000126427 0.000523088
+1.12 0.000237505 0.00013851 0.000523088
+1.4 0.000194001 0.00015043 0.000523088
+1.68 0 0.000326217 0.000523088
END DIST
Metal 2 OVER 1 UNDER 4
@@ -523,8 +523,8 @@
Metal 2 OVER 1 UNDER 5
DIST count 12 width 0.14
0.14 0.00138881 7.09443e-05 0.000523088
-0.28 0.000780379 7.64971e-05 0.000523088
-0.35 -0.000183073 4.04098e-06 0.000523088
+0.28 0.000780379 7.59001e-05 0.000523088
+0.35 0.000648248 7.7277e-05 0.000523088
0.42 0.000556489 7.91543e-05 0.000523088
0.49 0.000488596 8.18471e-05 0.000523088
0.56 0.000436098 8.45333e-05 0.000523088
@@ -533,7 +533,7 @@
0.84 0.00030683 9.52217e-05 0.000523088
1.12 0.000237576 0.000105793 0.000523088
1.4 0.000194111 0.000116214 0.000523088
-1.68 0 -3.22028 0.000523088
+1.68 0 0.000290799 0.000523088
END DIST
Metal 2 OVER 1 UNDER 6
diff --git a/sky130/openlane/rules.openrcx.sky130B.min.magic b/sky130/openlane/rules.openrcx.sky130B.min.magic
index 09386a5..8871bb0 100644
--- a/sky130/openlane/rules.openrcx.sky130B.min.magic
+++ b/sky130/openlane/rules.openrcx.sky130B.min.magic
@@ -491,17 +491,17 @@
Metal 2 OVER 1 UNDER 3
DIST count 12 width 0.14
0.14 0.00135142 7.46106e-05 0.000378788
-0.28 0.00075933 7.93229e-05 0.000378788
-0.35 0.000630737 8.16673e-05 0.000378788
-0.42 0.000541443 8.40016e-05 0.000378788
-0.49 0.000475394 8.63237e-05 0.000378788
-0.56 0.000424352 8.86294e-05 0.000378788
-0.63 0.000383578 9.09359e-05 0.000378788
-0.7 0.00035012 9.3267e-05 0.000378788
-0.84 0.000298546 9.78561e-05 0.000378788
-1.12 0.000231129 0.000106957 0.000378788
-1.4 0.000188793 0.000115934 0.000378788
-1.68 0 0.000284431 0.000378788
+0.28 0.00075933 7.92802e-05 0.000378788
+0.35 0.000630737 8.15841e-05 0.000378788
+0.42 0.000541443 8.38794e-05 0.000378788
+0.49 0.000475394 8.61641e-05 0.000378788
+0.56 0.000424352 8.84342e-05 0.000378788
+0.63 0.000383578 9.07065e-05 0.000378788
+0.7 0.00035012 9.30049e-05 0.000378788
+0.84 0.000298546 9.75749e-05 0.000378788
+1.12 0.000231129 0.00010668 0.000378788
+1.4 0.000188793 0.00011566 0.000378788
+1.68 0 0.00028416 0.000378788
END DIST
Metal 2 OVER 1 UNDER 4
@@ -523,8 +523,8 @@
Metal 2 OVER 1 UNDER 5
DIST count 12 width 0.14
0.14 0.00135153 5.88973e-05 0.000378788
-0.28 0.00075943 6.32663e-05 0.000378788
-0.35 -1.37356e-05 2.64304e-06 0.000378788
+0.28 0.00075943 6.28005e-05 0.000378788
+0.35 0.000630845 6.38924e-05 0.000378788
0.42 0.000541551 6.53766e-05 0.000378788
0.49 0.000475479 6.74944e-05 0.000378788
0.56 0.000424391 6.96077e-05 0.000378788
@@ -533,7 +533,7 @@
0.84 0.000298592 7.80194e-05 0.000378788
1.12 0.000231198 8.6338e-05 0.000378788
1.4 0.0001889 9.45394e-05 0.000378788
-1.68 0 -2.51275 0.000378788
+1.68 0 0.000262504 0.000378788
END DIST
Metal 2 OVER 1 UNDER 6
diff --git a/sky130/openlane/rules.openrcx.sky130B.nom.magic b/sky130/openlane/rules.openrcx.sky130B.nom.magic
index 5373f93..003c73e 100644
--- a/sky130/openlane/rules.openrcx.sky130B.nom.magic
+++ b/sky130/openlane/rules.openrcx.sky130B.nom.magic
@@ -491,17 +491,17 @@
Metal 2 OVER 1 UNDER 3
DIST count 12 width 0.14
0.14 0.000687825 4.80108e-05 0.000450938
-0.28 0.000386472 5.08926e-05 0.000450938
-0.35 0.000321024 5.23287e-05 0.000450938
-0.42 0.000275575 5.3758e-05 0.000450938
-0.49 0.00024196 5.51803e-05 0.000450938
-0.56 0.00021598 5.65935e-05 0.000450938
-0.63 0.000195228 5.80062e-05 0.000450938
-0.7 0.000178199 5.94328e-05 0.000450938
-0.84 0.00015195 6.22447e-05 0.000450938
-1.12 0.000117637 6.78185e-05 0.000450938
-1.4 9.6089e-05 7.33174e-05 0.000450938
-1.68 0 0.000159991 0.000450938
+0.28 0.000386472 5.08693e-05 0.000450938
+0.35 0.000321024 5.22832e-05 0.000450938
+0.42 0.000275575 5.36913e-05 0.000450938
+0.49 0.00024196 5.50933e-05 0.000450938
+0.56 0.00021598 5.6487e-05 0.000450938
+0.63 0.000195228 5.7881e-05 0.000450938
+0.7 0.000178199 5.92897e-05 0.000450938
+0.84 0.00015195 6.20912e-05 0.000450938
+1.12 0.000117637 6.76673e-05 0.000450938
+1.4 9.6089e-05 7.3168e-05 0.000450938
+1.68 0 0.000159843 0.000450938
END DIST
Metal 2 OVER 1 UNDER 4
@@ -523,8 +523,8 @@
Metal 2 OVER 1 UNDER 5
DIST count 12 width 0.14
0.14 0.00068788 3.72471e-05 0.000450938
-0.28 0.000386523 3.99181e-05 0.000450938
-0.35 -2.71665e-05 3.18535e-06 0.000450938
+0.28 0.000386523 3.96637e-05 0.000450938
+0.35 0.000321079 4.04024e-05 0.000450938
0.42 0.00027563 4.13541e-05 0.000450938
0.49 0.000242003 4.26529e-05 0.000450938
0.56 0.000216 4.39504e-05 0.000450938
@@ -533,7 +533,7 @@
0.84 0.000151974 4.91063e-05 0.000450938
1.12 0.000117672 5.42067e-05 0.000450938
1.4 9.61439e-05 5.92343e-05 0.000450938
-1.68 0 -1.37225 0.000450938
+1.68 0 0.000145567 0.000450938
END DIST
Metal 2 OVER 1 UNDER 6