| #!/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() |
| |