#!/usr/bin/env python3 import re from sys import argv ieren_db = [ ] pinloc_db = [ ] for arg in argv[1:]: pin = re.search(r"_([^.]*)", arg).group(1) with open(arg, "r") as f: tile = [0, 0] iob = [0, 0, 0] ioctrl = [0, 0, 0] for line in f: match = re.match(r"^\.io_tile (\d+) (\d+)", line) if match: tile = [int(match.group(1)), int(match.group(2))] match = re.match(r"^IOB_(\d+)", line) if match: iob = tile + [int(match.group(1))] match = re.match(r"^IoCtrl REN_(\d+)", line) if match: ioctrl = tile + [int(match.group(1))] ieren_db.append(tuple(iob + ioctrl)) pinloc_db.append(tuple(['"' + pin + '"'] + iob)) print() print("# ieren_db") for entry in sorted(ieren_db): print(" (%2d, %2d, %d, %2d, %2d, %d)," % entry) print() print("# pinloc_db") for entry in sorted(pinloc_db, key=lambda n: re.sub(r"[0-9]+", lambda d: "%03d" % int(d.group(0)), n[0])): print(" (%5s, %2d, %2d, %d)," % entry) print()