Added full-chip totals to the end of the check_density.py script.
diff --git a/scripts/check_density.py b/scripts/check_density.py
index 129a848..01122b7 100755
--- a/scripts/check_density.py
+++ b/scripts/check_density.py
@@ -341,10 +341,11 @@
base = xtiles * w + x
fomaccum += sum(fomfill[base : base + 10])
- print('Tile (' + str(x) + ', ' + str(y) + '): ' + str(fomaccum / atotal))
- if fomaccum < 33.0:
+ fomaccum /= atotal
+ print('Tile (' + str(x) + ', ' + str(y) + '): ' + str(fomaccum))
+ if fomaccum < 0.33:
print('***Error: FOM Density < 33%')
- elif fomaccum > 57.0:
+ elif fomaccum > 0.57:
print('***Error: FOM Density > 57%')
print('')
@@ -365,7 +366,8 @@
base = xtiles * w + x
polyaccum += sum(polyfill[base : base + 10])
- print('Tile (' + str(x) + ', ' + str(y) + '): ' + str(polyaccum / atotal))
+ polyaccum /= atotal
+ print('Tile (' + str(x) + ', ' + str(y) + '): ' + str(polyaccum))
print('')
print('LI Density:')
@@ -385,10 +387,11 @@
base = xtiles * w + x
liaccum += sum(lifill[base : base + 10])
- print('Tile (' + str(x) + ', ' + str(y) + '): ' + str(liaccum / atotal))
- if liaccum < 35.0:
+ liaccum /= atotal
+ print('Tile (' + str(x) + ', ' + str(y) + '): ' + str(liaccum))
+ if liaccum < 0.35:
print('***Error: LI Density < 35%')
- elif liaccum > 70.0:
+ elif liaccum > 0.70:
print('***Error: LI Density > 70%')
print('')
@@ -409,10 +412,11 @@
base = xtiles * w + x
met1accum += sum(met1fill[base : base + 10])
- print('Tile (' + str(x) + ', ' + str(y) + '): ' + str(met1accum / atotal))
- if met1accum < 35.0:
+ met1accum /= atotal
+ print('Tile (' + str(x) + ', ' + str(y) + '): ' + str(met1accum))
+ if met1accum < 0.35:
print('***Error: MET1 Density < 35%')
- elif met1accum > 70.0:
+ elif met1accum > 0.70:
print('***Error: MET1 Density > 70%')
print('')
@@ -433,10 +437,11 @@
base = xtiles * w + x
met2accum += sum(met2fill[base : base + 10])
- print('Tile (' + str(x) + ', ' + str(y) + '): ' + str(met2accum / atotal))
- if met2accum < 35.0:
+ met2accum /= atotal
+ print('Tile (' + str(x) + ', ' + str(y) + '): ' + str(met2accum))
+ if met2accum < 0.35:
print('***Error: MET2 Density < 35%')
- elif met2accum > 70.0:
+ elif met2accum > 0.70:
print('***Error: MET2 Density > 70%')
print('')
@@ -457,10 +462,11 @@
base = xtiles * w + x
met3accum += sum(met3fill[base : base + 10])
- print('Tile (' + str(x) + ', ' + str(y) + '): ' + str(met3accum / atotal))
- if met3accum < 35.0:
+ met3accum /= atotal
+ print('Tile (' + str(x) + ', ' + str(y) + '): ' + str(met3accum))
+ if met3accum < 0.35:
print('***Error: MET3 Density < 35%')
- elif met3accum > 70.0:
+ elif met3accum > 0.70:
print('***Error: MET3 Density > 70%')
print('')
@@ -481,10 +487,11 @@
base = xtiles * w + x
met4accum += sum(met4fill[base : base + 10])
- print('Tile (' + str(x) + ', ' + str(y) + '): ' + str(met4accum / atotal))
- if met4accum < 35.0:
+ met4accum /= atotal
+ print('Tile (' + str(x) + ', ' + str(y) + '): ' + str(met4accum))
+ if met4accum < 0.35:
print('***Error: MET4 Density < 35%')
- elif met4accum > 70.0:
+ elif met4accum > 0.70:
print('***Error: MET4 Density > 70%')
print('')
@@ -505,11 +512,85 @@
base = xtiles * w + x
met5accum += sum(met5fill[base : base + 10])
- print('Tile (' + str(x) + ', ' + str(y) + '): ' + str(met5accum / atotal))
- if met5accum < 45.0:
+ met5accum /= atotal
+ print('Tile (' + str(x) + ', ' + str(y) + '): ' + str(met5accum))
+ if met5accum < 0.45:
print('***Error: MET5 Density < 45%')
- elif met5accum > 86.0:
- print('***Error: MET5 Density > 80%')
+ elif met5accum > 0.86:
+ print('***Error: MET5 Density > 86%')
+
+ print('')
+ print('Whole-chip density results:')
+
+ atotal = ((xtiles - 1.0) * (ytiles - 1.0)) + ((ytiles - 1.0) * xfrac) + ((xtiles - 1.0) * yfrac) + (xfrac * yfrac)
+
+ print('')
+ print('FOM Density:')
+ fomaccum = sum(fomfill) / atotal
+ print('Tile (' + str(x) + ', ' + str(y) + '): ' + str(fomaccum))
+ if fomaccum < 0.33:
+ print('***Error: FOM Density < 33%')
+ elif fomaccum > 0.57:
+ print('***Error: FOM Density > 57%')
+
+ print('')
+ print('POLY Density:')
+ polyaccum = sum(polyfill) / atotal
+ print('Tile (' + str(x) + ', ' + str(y) + '): ' + str(polyaccum))
+
+ print('')
+ print('LI Density:')
+ liaccum = sum(lifill) / atotal
+ print('Tile (' + str(x) + ', ' + str(y) + '): ' + str(liaccum))
+ if liaccum < 0.35:
+ print('***Error: LI Density < 35%')
+ elif liaccum > 0.70:
+ print('***Error: LI Density > 70%')
+
+ print('')
+ print('MET1 Density:')
+ met1accum = sum(met1fill) / atotal
+ print('Tile (' + str(x) + ', ' + str(y) + '): ' + str(met1accum))
+ if met1accum < 0.35:
+ print('***Error: MET1 Density < 35%')
+ elif met1accum > 0.70:
+ print('***Error: MET1 Density > 70%')
+
+ print('')
+ print('MET2 Density:')
+ met2accum = sum(met2fill) / atotal
+ print('Tile (' + str(x) + ', ' + str(y) + '): ' + str(met2accum))
+ if met2accum < 0.35:
+ print('***Error: MET2 Density < 35%')
+ elif met2accum > 0.70:
+ print('***Error: MET2 Density > 70%')
+
+ print('')
+ print('MET3 Density:')
+ met3accum = sum(met3fill) / atotal
+ print('Tile (' + str(x) + ', ' + str(y) + '): ' + str(met3accum))
+ if met3accum < 0.35:
+ print('***Error: MET3 Density < 35%')
+ elif met3accum > 0.70:
+ print('***Error: MET3 Density > 70%')
+
+ print('')
+ print('MET4 Density:')
+ met4accum = sum(met4fill) / atotal
+ print('Tile (' + str(x) + ', ' + str(y) + '): ' + str(met4accum))
+ if met4accum < 0.35:
+ print('***Error: MET4 Density < 35%')
+ elif met4accum > 0.70:
+ print('***Error: MET4 Density > 70%')
+
+ print('')
+ print('MET5 Density:')
+ met5accum = sum(met5fill) / atotal
+ print('Tile (' + str(x) + ', ' + str(y) + '): ' + str(met5accum))
+ if met5accum < 0.45:
+ print('***Error: MET5 Density < 45%')
+ elif met5accum > 0.86:
+ print('***Error: MET5 Density > 86%')
if not keepmode:
os.remove(magpath + '/check_density.tcl')
@@ -517,4 +598,3 @@
print('')
print('Done!')
sys.exit(0)
-