From c65f34bff46c26923650f4e036936ff97ced6eb1 Mon Sep 17 00:00:00 2001 From: soneryal Date: Fri, 24 Feb 2023 13:59:05 -0800 Subject: [PATCH 1/2] minor changes --- align/cmdline.py | 6 +++--- align/compiler/preprocess.py | 2 +- align/main.py | 6 ++++-- align/pnr/main.py | 6 +++--- align/pnr/write_constraint.py | 3 ++- 5 files changed, 13 insertions(+), 10 deletions(-) diff --git a/align/cmdline.py b/align/cmdline.py index 0d16a39529..a3dad11566 100644 --- a/align/cmdline.py +++ b/align/cmdline.py @@ -52,7 +52,7 @@ def __init__(self, *args, **kwargs): parser.add_argument("-n", "--nvariants", type=int, - default=1, + default=4, help='Number of layout candidates to (attempt to) generate') parser.add_argument("-e", "--effort", @@ -102,7 +102,7 @@ def __init__(self, *args, **kwargs): parser.add_argument('--router_mode', type=str, - default='top_down', + default='bottom_up', choices=['top_down','bottom_up','collect_pins','no_op'], help='Router mode') @@ -111,7 +111,7 @@ def __init__(self, *args, **kwargs): help='Run in GUI mode') parser.add_argument('--skipGDS', - action='store_true', + action='store_false', help='Don\'t generate GDS files.') parser.add_argument('--lambda_coeff', diff --git a/align/compiler/preprocess.py b/align/compiler/preprocess.py index 830b6ca341..47d5f18db0 100755 --- a/align/compiler/preprocess.py +++ b/align/compiler/preprocess.py @@ -113,7 +113,7 @@ def remove_dummies(library, dummy_hiers, top): parameters=y.parameters ) ) - logger.info( + logger.debug( f"updating {other_ckt.name} element {other_ckt.elements[-1]}" ) other_ckt.elements.remove(ele) diff --git a/align/main.py b/align/main.py index f6f7b3949d..583947652e 100644 --- a/align/main.py +++ b/align/main.py @@ -4,6 +4,7 @@ import json import sys import http.server +import socket import socketserver import functools @@ -107,8 +108,9 @@ def start_viewer(working_dir, pnr_dir, variant): stderr = sys.stderr Handler = functools.partial(http.server.SimpleHTTPRequestHandler, directory=str(working_dir/'Viewer')) - with socketserver.TCPServer(('localhost', 0), Handler) as httpd: - logger.info(f'Please view layout at http://localhost:{httpd.server_address[1]}/?design={variant}') + host_name = socket.getfqdn() + with socketserver.TCPServer((host_name, 0), Handler) as httpd: + logger.info(f'Please view layout at http://{host_name}:{httpd.server_address[1]}/?design={variant}') logger.info('Please type Ctrl + C to stop viewer and continue') with open(os.devnull, 'w') as fp: sys.stdout = sys.stderr = fp diff --git a/align/pnr/main.py b/align/pnr/main.py index f215b93f2a..b485f3f8ed 100644 --- a/align/pnr/main.py +++ b/align/pnr/main.py @@ -349,7 +349,7 @@ def generate_pnr(topology_dir, primitive_dir, pdk_dir, output_dir, subckt, *, pr toplevel_args_d=toplevel_args_d, results_dir=None, placer_sa_iterations=placer_sa_iterations, placer_ilp_runtime=placer_ilp_runtime) - with open("__placer_dump__.json", "wt") as fp: + with open(working_dir/"__placer_dump__.json", "wt") as fp: json.dump((top_level, leaf_map, [(nm, verilog_d.dict()) for nm, verilog_d in placement_verilog_alternatives.items()],metrics), fp=fp, indent=2) os.chdir(current_working_dir) @@ -369,11 +369,11 @@ def generate_pnr(topology_dir, primitive_dir, pdk_dir, output_dir, subckt, *, pr else: placements_to_run = None - with open("__placements_to_run__.json", "wt") as fp: + with open(working_dir/"__placements_to_run__.json", "wt") as fp: json.dump(placements_to_run, fp=fp, indent=2) elif '3_pnr:route' in steps_to_run: - with open("__placements_to_run__.json", "rt") as fp: + with open(working_dir/"__placements_to_run__.json", "rt") as fp: placements_to_run = json.load(fp) variants = defaultdict(defaultdict) diff --git a/align/pnr/write_constraint.py b/align/pnr/write_constraint.py index dd5219b34c..77d68b7b6d 100644 --- a/align/pnr/write_constraint.py +++ b/align/pnr/write_constraint.py @@ -67,7 +67,8 @@ def map_valid_const(self, all_const, module): del const['instances'] # Exclude constraints not to be exposed to PnR - if const['const_name'] in ['DoNotIdentify', 'GroupBlocks', 'DoNotUseLib', 'ConfigureCompiler', 'SameTemplate', 'PlaceOnBoundary']: + skip_constraints = {'DoNotIdentify', 'GroupBlocks', 'DoNotUseLib', 'ConfigureCompiler', 'SameTemplate', 'PlaceOnBoundary'} + if const['const_name'] in skip_constraints: continue # Exclude constraints that need to be to multiple constraints From 7ea8acbb6b96d928f846a397606d87f486e8824a Mon Sep 17 00:00:00 2001 From: soneryal Date: Thu, 9 Mar 2023 16:58:38 -0800 Subject: [PATCH 2/2] spacing --- align/main.py | 1 + align/pnr/main.py | 1 + 2 files changed, 2 insertions(+) diff --git a/align/main.py b/align/main.py index 583947652e..466e822eae 100644 --- a/align/main.py +++ b/align/main.py @@ -108,6 +108,7 @@ def start_viewer(working_dir, pnr_dir, variant): stderr = sys.stderr Handler = functools.partial(http.server.SimpleHTTPRequestHandler, directory=str(working_dir/'Viewer')) + host_name = socket.getfqdn() with socketserver.TCPServer((host_name, 0), Handler) as httpd: logger.info(f'Please view layout at http://{host_name}:{httpd.server_address[1]}/?design={variant}') diff --git a/align/pnr/main.py b/align/pnr/main.py index 5c4a30eb4d..70c863dce2 100644 --- a/align/pnr/main.py +++ b/align/pnr/main.py @@ -368,6 +368,7 @@ def generate_pnr(topology_dir, primitive_dir, pdk_dir, output_dir, subckt, *, pr metrics=metrics) else: placements_to_run = None + with open(working_dir/"__placements_to_run__.json", "wt") as fp: json.dump(placements_to_run, fp=fp, indent=2)