mirror of https://github.com/openXC7/prjxray.git
Handle new grid format and merge with segment info.
Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
This commit is contained in:
parent
cd129ba84e
commit
c38cac8b69
|
|
@ -12,3 +12,11 @@ python3 create_node_tree.py \
|
|||
python3 reduce_site_types.py --output_dir output
|
||||
python3 generate_grid.py --root_dir specimen_001/ --output_dir output \
|
||||
--ignored_wires ${XRAY_DATABASE}_ignored_wires.txt
|
||||
|
||||
BASE_TILEGRID=../../database/${XRAY_DATABASE}/tilegrid.json
|
||||
if [ -f $BASE_TILEGRID ]; then
|
||||
mv output/tilegrid.json output/tilegrid_full.json.tmp
|
||||
python3 ../../utils/merge_tilegrid.py \
|
||||
--base_grid $BASE_TILEGRID \
|
||||
--overlay_grid output/tilegrid_full.json.tmp \
|
||||
--output_grid output/tilegrid.json
|
||||
|
|
|
|||
|
|
@ -489,10 +489,7 @@ def connect_wires(tiles, tileconn, wire_map):
|
|||
def generate_tilegrid(pool, tiles):
|
||||
wire_map = {}
|
||||
|
||||
grid = {
|
||||
'segments': {},
|
||||
'tiles': {},
|
||||
}
|
||||
grid = {}
|
||||
|
||||
num_tiles = 0
|
||||
for tile_type in tiles:
|
||||
|
|
@ -522,7 +519,7 @@ def generate_tilegrid(pool, tiles):
|
|||
}
|
||||
|
||||
del tile[tilename]['wires']
|
||||
grid['tiles'].update(tile)
|
||||
grid.update(tile)
|
||||
|
||||
idx += 1
|
||||
bar.update(idx)
|
||||
|
|
@ -544,7 +541,7 @@ def generate_tileconn(pool, node_tree, nodes, wire_map, grid):
|
|||
raw_node_data.append(node)
|
||||
process_node(
|
||||
tileconn, key_history, node, wire_map, node_tree,
|
||||
grid['tiles'])
|
||||
grid)
|
||||
bar.update(idx + 1)
|
||||
|
||||
tileconn = flatten_tile_conn(tileconn)
|
||||
|
|
@ -629,7 +626,7 @@ def main():
|
|||
print(
|
||||
"{} Connecting wires to verify tileconn".format(
|
||||
datetime.datetime.now()))
|
||||
wire_nodes = connect_wires(grid['tiles'], tileconn, wire_map)
|
||||
wire_nodes = connect_wires(grid, tileconn, wire_map)
|
||||
with open(wire_nodes_file, 'wb') as f:
|
||||
pickle.dump(wire_nodes, f)
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,37 @@
|
|||
import json
|
||||
import argparse
|
||||
|
||||
def main():
|
||||
parser = argparse.ArgumentParser()
|
||||
|
||||
parser.add_argument('--base_grid', required=True)
|
||||
parser.add_argument('--output_grid', required=True)
|
||||
parser.add_argument('--overlay_grid', required=True)
|
||||
parser.add_argument('--old_format', action='store_true')
|
||||
|
||||
args = parser.parse_args()
|
||||
|
||||
with open(args.base_grid) as f:
|
||||
base_grid = json.load(f)
|
||||
|
||||
with open(args.overlay_grid) as f:
|
||||
overlay_grid = json.load(f)
|
||||
|
||||
if args.old_format:
|
||||
overlay_grid = overlay_grid['tiles']
|
||||
|
||||
for tile in overlay_grid:
|
||||
if tile in base_grid:
|
||||
for k in overlay_grid[tile]:
|
||||
if k in base_grid[tile]:
|
||||
assert base_grid[tile][k] == overlay_grid[tile][k], (k, base_grid[tile][k], overlay_grid[tile][k])
|
||||
else:
|
||||
base_grid[tile][k] = overlay_grid[tile][k]
|
||||
else:
|
||||
base_grid[tile] = overlay_grid[tile]
|
||||
|
||||
with open(args.output_grid, 'w') as f:
|
||||
json.dump(base_grid, f, indent=2)
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
Loading…
Reference in New Issue