diff --git a/fuzzers/074-dump_all/generate_grid.py b/fuzzers/074-dump_all/generate_grid.py index 32f78ec6..bb90476b 100644 --- a/fuzzers/074-dump_all/generate_grid.py +++ b/fuzzers/074-dump_all/generate_grid.py @@ -605,6 +605,13 @@ def main(): tileconn, raw_node_data = generate_tileconn( pool, node_tree, nodes, wire_map, grid) + for data in tileconn: + data['wire_pairs'] = tuple(sorted(data['wire_pairs'])) + + tileconn = tuple( + sorted( + tileconn, key=lambda x: (x['tile_types'], x['grid_deltas']))) + print('{} Writing tileconn'.format(datetime.datetime.now())) with open(tileconn_file, 'w') as f: json.dump(tileconn, f, indent=2, sort_keys=True) diff --git a/fuzzers/074-dump_all/reduce_tile_types.py b/fuzzers/074-dump_all/reduce_tile_types.py index f99b16bc..5b73460d 100644 --- a/fuzzers/074-dump_all/reduce_tile_types.py +++ b/fuzzers/074-dump_all/reduce_tile_types.py @@ -365,6 +365,10 @@ def main(): tile_type, site_types[site_type]['type'])), 'w') as f: json.dump(site_types[site_type], f, indent=2, sort_keys=True) + reduced_tile['sites'] = sorted( + reduced_tile['sites'], + key=lambda site: '{}_{}'.format(site['name'], site['prefix'])) + with open(tile_type_file, 'w') as f: json.dump(reduced_tile, f, indent=2, sort_keys=True) diff --git a/minitests/roi_harness/create_design_json.py b/minitests/roi_harness/create_design_json.py index ac336fa5..0c5e8770 100644 --- a/minitests/roi_harness/create_design_json.py +++ b/minitests/roi_harness/create_design_json.py @@ -11,7 +11,7 @@ from prjxray.util import get_db_root, get_part def set_port_wires(ports, name, pin, wires_outside_roi): for port in ports: if name == port['name']: - port['wires_outside_roi'] = wires_outside_roi + port['wires_outside_roi'] = sorted(wires_outside_roi) assert port['pin'] == pin return @@ -104,8 +104,11 @@ def main(): if not_in_roi: required_features.append(fasm_line) - design_json['required_features'] = fasm.fasm_tuple_to_string( - required_features, canonical=True).split('\n') + design_json['required_features'] = sorted( + fasm.fasm_tuple_to_string(required_features, + canonical=True).split('\n')) + + design_json['ports'].sort(key=lambda x: x['name']) xjson.pprint(sys.stdout, design_json) diff --git a/utils/xjson.py b/utils/xjson.py index 43be703e..03be3ace 100755 --- a/utils/xjson.py +++ b/utils/xjson.py @@ -87,9 +87,9 @@ def sort(data): return new_dict elif isinstance(o, set): - return tuple(sorted(o, key=key)) + return tuple(sorted((rsorter(v) for v in o), key=key)) elif isinstance(o, (tuple, list)): - return tuple(o) + return tuple(rsorter(v) for v in o) else: return o