mirror of https://github.com/openXC7/prjxray.git
57 lines
1.6 KiB
Python
Executable File
57 lines
1.6 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
# -*- coding: utf-8 -*-
|
|
#
|
|
# Copyright (C) 2017-2020 The Project X-Ray Authors.
|
|
#
|
|
# Use of this source code is governed by a ISC-style
|
|
# license that can be found in the LICENSE file or at
|
|
# https://opensource.org/licenses/ISC
|
|
#
|
|
# SPDX-License-Identifier: ISC
|
|
|
|
import os, sys, json
|
|
|
|
|
|
def main(argv):
|
|
if len(argv) != 3:
|
|
print("Usage example: python3 %s HCLK_R HCLK_SW6E3" % sys.argv[0])
|
|
sys.exit(1)
|
|
|
|
with open("%s/%s/tileconn.json" % (os.getenv("XRAY_DATABASE_DIR"),
|
|
os.getenv("XRAY_DATABASE")), "r") as f:
|
|
tileconn = json.load(f)
|
|
|
|
outdata = list()
|
|
max_tiletype_len = 1
|
|
|
|
for entry in tileconn:
|
|
if entry["tile_types"][0] == sys.argv[1]:
|
|
this_idx, other_idx = 0, 1
|
|
delta_x, delta_y = entry["grid_deltas"]
|
|
elif entry["tile_types"][1] == sys.argv[1]:
|
|
this_idx, other_idx = 1, 0
|
|
delta_x, delta_y = -entry["grid_deltas"][0], -entry["grid_deltas"][
|
|
1]
|
|
else:
|
|
continue
|
|
|
|
for wire_pair in entry["wire_pairs"]:
|
|
if wire_pair[this_idx] != sys.argv[2]:
|
|
continue
|
|
|
|
outdata.append(
|
|
(
|
|
delta_x, delta_y, entry["tile_types"][other_idx],
|
|
wire_pair[other_idx]))
|
|
max_tiletype_len = max(
|
|
max_tiletype_len, len(entry["tile_types"][other_idx]))
|
|
|
|
for entry in outdata:
|
|
print(
|
|
"%3d %3d %-*s %s" %
|
|
(entry[0], entry[1], max_tiletype_len, entry[2], entry[3]))
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main(sys.argv)
|