Merge branch 'zigzag-scan-chain' into mpw7
diff --git a/configure.py b/configure.py index 8dcc6f2..5892284 100755 --- a/configure.py +++ b/configure.py
@@ -238,14 +238,23 @@ with open("openlane/user_project_wrapper/macro.cfg", 'w') as fh: fh.write("scan_controller 80 80 N\n") for row in range(rows): - for col in range(cols): + if(row%2 == 0): + col_order = range(cols) + orientation = 'N' + else: + #reverse odd rows to place instances in a zig zag pattern, shortening the scan chain wires + col_order = range(cols-1, -1, -1) + orientation = 'S' + for col in col_order: # skip the space where the scan controller goes on the first row if row == 0 and col <= 1: continue if num_macros_placed < self.num_projects: macro_instance = self.projects.get_macro_instance(num_macros_placed) - instance = "{} {:<4} {:<4} N\n".format(macro_instance, start_x + col * step_x, start_y + row * step_y) + instance = "{} {:<4} {:<4} {}\n".format( + macro_instance, start_x + col * step_x, start_y + row * step_y, orientation + ) fh.write(instance) num_macros_placed += 1