|  | """ Print override delta delay placement model in human readable format. """ | 
|  |  | 
|  | import argparse | 
|  | import capnp | 
|  | import os.path | 
|  |  | 
|  | # Remove magic import hook. | 
|  | capnp.remove_import_hook() | 
|  |  | 
|  |  | 
|  | def main(): | 
|  | parser = argparse.ArgumentParser(description=__doc__) | 
|  | parser.add_argument( | 
|  | '--schema_path', | 
|  | help='Path to override delta delay placement model schema', | 
|  | required=True | 
|  | ) | 
|  | parser.add_argument('--place_delay_matrix', required=True) | 
|  |  | 
|  | args = parser.parse_args() | 
|  |  | 
|  | place_delay_model = capnp.load( | 
|  | os.path.join(args.schema_path, 'place_delay_model.capnp') | 
|  | ) | 
|  |  | 
|  | with open(args.place_delay_matrix, 'rb') as f: | 
|  | delay_model = place_delay_model.VprOverrideDelayModel.read(f) | 
|  |  | 
|  | x_dim = delay_model.delays.dims[0] | 
|  | y_dim = delay_model.delays.dims[1] | 
|  | itr = iter(delay_model.delays.data) | 
|  | for x in range(x_dim): | 
|  | row = [] | 
|  | for y in range(y_dim): | 
|  | value = next(itr) | 
|  | row.append(str(value.value.value)) | 
|  |  | 
|  | print(','.join(row)) | 
|  |  | 
|  |  | 
|  | if __name__ == "__main__": | 
|  | main() |