Updated version to go with merge of pull request #137 from Marwan Abbas.
diff --git a/VERSION b/VERSION index 45dd586..2a8d962 100644 --- a/VERSION +++ b/VERSION
@@ -1 +1 @@ -1.0.191 +1.0.192
diff --git a/sky130/custom/scripts/check_density.py b/sky130/custom/scripts/check_density.py index bd10471..f439355 100755 --- a/sky130/custom/scripts/check_density.py +++ b/sky130/custom/scripts/check_density.py
@@ -173,6 +173,11 @@ # Need to know what fraction of a full tile is the last row and column print('set xfrac [expr {($xtiles * $stepsizex - $fullwidth + 0.0) / $stepsizex}]', file=ofile) print('set yfrac [expr {($ytiles * $stepsizey - $fullheight + 0.0) / $stepsizey}]', file=ofile) + + # If the last row/column fraction is zero, then set to 1 + print('if {$xfrac == 0.0} {set xfrac 1.0}', file=ofile) + print('if {$yfrac == 0.0} {set yfrac 1.0}', file=ofile) + print('puts stdout "XFRAC: $xfrac"', file=ofile) print('puts stdout "YFRAC: $yfrac"', file=ofile) @@ -224,6 +229,7 @@ print('set endtime [orig_clock format [orig_clock seconds] -format "%D %T"]', file=ofile) print('puts stdout "Ended: $endtime"', file=ofile) + print('quit -noprompt', file=ofile) print('', file=ofile) @@ -336,6 +342,10 @@ print('Failed to read XTILES or YTILES from output.') sys.exit(1) + if xtiles < 10 or ytiles < 10: + print('Layout is < 700um x 700um; cannot run density checks.') + sys.exit(1) + total_tiles = (ytiles - 9) * (xtiles - 9) print('') @@ -346,8 +356,13 @@ sideadjust = 90.0 + (10.0 * xfrac) topadjust = 90.0 + (10.0 * yfrac) + corneradjust = 81.0 + (9.0 * xfrac) + (9.0 * yfrac) + (xfrac * yfrac) + print('Side adjustment = ' + str(sideadjust)) + print('Top adjustment = ' + str(topadjust)) + print('Corner adjustment = ' + str(corneradjust)) + print('') print('FOM Density:') for y in range(0, ytiles - 9):