diff --git a/.gitignore b/.gitignore index 26901dd..8a9a069 100644 --- a/.gitignore +++ b/.gitignore @@ -126,3 +126,6 @@ output_files_*/ *.qsf.bak *.md.bak *.md.bak.gz + +# regenerated iostd summary codec (content-free; produce via iostd_codec_mine.py --analyze) +results/iostd_codec.json diff --git a/docs/mined_codec_data.md b/docs/mined_codec_data.md new file mode 100644 index 0000000..a36f1de --- /dev/null +++ b/docs/mined_codec_data.md @@ -0,0 +1,43 @@ + +# Mined codec data (device-general) + +Notes on two mined result files under `results/` — facts about the EP4CE silicon +(no target design in them), produced with this repo's tooling. + +## `results/rcf_wire_cells.json` — routing wire → CRAM cells (102 wires) +Maps a named routing wire to the exact CRAM `[offset, bitpos]` cells that encode it, +across **five** switch classes — `C4:` (24), `C16:` (4), `R4:` (38), `R24:` (4), +`LOCAL_INTERCONNECT:` (32) — e.g. + +```json +"R24:X9Y12S0I23": [[225382, 3], [225786, 3]], +"LOCAL_INTERCONNECT:X13Y10S0I30": [[100508, 4], [100929, 4], [101773, 4]] +``` + +Produced by RCF back-annotation: compile pair designs that force a known route, +capture the exact wires Quartus used (`quartus_cdb --back_annotate=routing`) and the +CRAM diff, then signature-correlate wire ↔ cell. Solid positive data — a direct +contribution to the routing codec. **Note:** the producing miner is *not* included +here (it's coupled to the larger mining pipeline); the method above is the +reproduction recipe, and the `.json` stands on its own as consumable data. + +## `results/iostd_specimens.jsonl` — raw IOB electrical specimens (a documented dead end) +25 raw `full_diff` specimens (per record: `{pin, label, cells}`) from building the +same buffer with a matrix of IOB settings (I/O standard / drive / slew / pull / +registered) on three anchor pins in different banks. Feed them to +`fuzz/iostd_codec_mine.py --analyze` to reproduce the (weak) codec. + +**Honest negative — read before using.** The intended product was a per-setting +*position-invariant* electrical codec (variant-vs-ref diff cancels routing → only the +electrical bits remain, intersected across pins). It did **not** pan out: each setting +moves ~26–122 cells per pin, but the cross-pin invariant intersection is 0–3 cells +with pairwise Jaccard ~0.02–0.16 — and even those 1–3 cells are largely a +normalisation artifact (min-offset anchoring forces `[0,0]` into every non-empty +setting). `drive_max`/`slew_fast`/`fast_oreg` are no-ops (default LVTTL is already +max-drive/default-slew; a combinational buffer has no output register). So the +electrical bits are not cleanly position-invariant under min-offset normalisation. +The **raw specimens are committed on purpose** so the dead end is *re-analyzable* — +try a better alignment (per-bank, or anchoring to the IOB base rather than the delta +min) without re-spending the Quartus time. The regenerated summary +(`results/iostd_codec.json`) is intentionally not committed — it's content-free; run +`--analyze` to produce it. diff --git a/fuzz/config.py b/fuzz/config.py index 94dc5a9..b092c25 100644 --- a/fuzz/config.py +++ b/fuzz/config.py @@ -6,7 +6,7 @@ # --- Paths --- QUARTUS_BIN = os.path.expanduser("~/intelFPGA_lite/21.1/quartus/bin") PROJECT_ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) -WORK_DIR = os.path.join(PROJECT_ROOT, "work") +WORK_DIR = os.environ.get("FUZZ_WORK_DIR") or os.path.join(PROJECT_ROOT, "work") RESULTS_DIR = os.path.join(PROJECT_ROOT, "results") RBF_DIR = os.path.join(RESULTS_DIR, "rbf") TEMPLATE_DIR = os.path.join(PROJECT_ROOT, "templates") diff --git a/fuzz/dense_fill.py b/fuzz/dense_fill.py new file mode 100644 index 0000000..c9e0bec --- /dev/null +++ b/fuzz/dense_fill.py @@ -0,0 +1,144 @@ +# SPDX-License-Identifier: GPL-3.0-or-later +"""Dense-fill route-forcing payload: saturate one LAB column with a snake chain. + +The two-LUT pair (plan_d_prime_factory.compile_edge) forces ONE wire per +Quartus compile → only ~3-5 new bits, because a single wire's cells are mostly +shared infra already explained. This module instead packs a whole LAB column +with a chain of pinned LUT cells, each fed by the previous one, so a SINGLE +compile forces dozens-to-hundreds of distinct wires — every cell's inbound +LOCAL_INTERCONNECT mux + the routing feeding it lands in the target column, +exactly where the hard-to-reach "dark" routing bits live. + +Why a chain (not independent pairs): each cell drives the next (real fanout) +and the last drives a registered output, so `dont_touch` can't fold anything +away and we need only ONE input pin + one clock for the whole column. Snake +ordering (row by row, N alternating direction) keeps consecutive cells +physically adjacent so the forced hops are short, well-defined C4/LOCAL routes. + +Cells cycle through all four input ports so different LI-mux inputs get +exercised across the column in one shot. +""" +from __future__ import annotations + +from config import LAB_Y + +PORTS = ("dataa", "datab", "datac", "datad") + + +def snake_placements(x: int, ns=(0, 8, 16, 24), rows=None, pattern="row"): + """Return an ordered [(x, y, n), ...] visiting every cell of column x. + + The chain wires consecutive entries together, so the VISITATION ORDER + determines which physical routing wires get forced. This is the ONE + diversity knob that matters — validated 2026-07-20: port rotation and LUT + mask add ~0 new bits (routing cells don't depend on LUT pin or truth + table), but a different traversal order adds ~75 new routing bits/compile + because it forces a different set of C4/LOCAL hops. + + Patterns (all cover the same cell set, different consecutive-pair profile): + row — Y outer, N inner (short N-steps then row jumps) + col — N outer, Y inner (row-steps then N jumps; longer C4) + rowstr2 — rows in stride-2 order (0,2,4,.. then 1,3,..) → 2-row C4 hops + colstr2 — cols/N traversal, rows stride-2 inner + diag — diagonal walk (both Y and N advance each step) + """ + rows = list(rows) if rows is not None else list(LAB_Y) + ns = list(ns) + + def boustro(seq, i): + return seq if (i % 2 == 0) else list(reversed(seq)) + + out = [] + if pattern == "row": + for i, y in enumerate(rows): + for n in boustro(ns, i): + out.append((x, y, n)) + elif pattern == "col": + for i, n in enumerate(ns): + for y in boustro(rows, i): + out.append((x, y, n)) + elif pattern == "rowstr2": + order = rows[0::2] + rows[1::2] + for i, y in enumerate(order): + for n in boustro(ns, i): + out.append((x, y, n)) + elif pattern == "colstr2": + order = rows[0::2] + rows[1::2] + for i, n in enumerate(ns): + for y in boustro(order, i): + out.append((x, y, n)) + elif pattern == "diag": + cells = [(y, n) for y in rows for n in ns] + cells.sort(key=lambda yn: (rows.index(yn[0]) + ns.index(yn[1]), + ns.index(yn[1]))) + out = [(x, y, n) for (y, n) in cells] + elif pattern.startswith("perm"): + # Deterministic pseudo-random traversal: chains physically DISTANT + # cells, so the forced hops span long distances -> exercises long + # lines (C16/R24) and multi-span C4/R4 that adjacency patterns never + # touch. Seed from the suffix (perm1, perm2, ...); no RNG needed. + seed = int(pattern[4:] or "1") + cells = [(x, y, n) for y in rows for n in ns] + k = len(cells) + # LCG-style index permutation with a seed-dependent odd stride + stride = (2 * ((seed * 2654435761) % (k // 2)) + 1) + order = sorted(range(k), key=lambda i: ((i * stride + seed * 40503) % k)) + out = [cells[i] for i in order] + else: + raise ValueError(f"unknown pattern {pattern!r}") + return out + + +def gen_column_fill(placements, name: str = "fuzz_top", mask: int = 0x8888, + port_offset: int = 0): + """Build a chained-LUT Verilog module + placement dict for one column. + + placements: ordered [(x, y, n), ...]; consecutive entries are chained. + mask: LUT truth-table — different masks set different LUT SRAM cells, so + sweeping it covers the LUT-SRAM dark bits a single mask misses. + port_offset: rotates which input port each cell uses. Cell i drives + PORTS[(i+port_offset)%4]; sweeping offset 0..3 makes every LE receive + its signal on every port across passes → covers all four inbound + LOCAL_INTERCONNECT mux groups per LE (a big share of routing dark bits). + Returns (verilog_str, placement_map) mapping cell name -> LCCOMB_X_Y_N. + """ + k = len(placements) + if k < 2: + raise ValueError("need >=2 placements for a chain") + + lines = [] + placement = {} + for i, (x, y, n) in enumerate(placements): + inst = f"cell_{i}" + placement[inst] = f"LCCOMB_X{x}_Y{y}_N{n}" + port = PORTS[(i + port_offset) % 4] + # cell 0 is driven by top-level pin A; cell i>0 by the previous combout + src = "A" if i == 0 else f"w{i-1}" + pin_ports = [] + for p in PORTS: + sig = src if p == port else "1'b0" + pin_ports.append(f" .{p}({sig})") + pin_ports_str = ",\n".join(pin_ports) + lines.append(f""" wire w{i}; + cycloneive_lcell_comb #( + .lut_mask(16'h{mask:04X}), + .sum_lutc_input("datac"), + .dont_touch("on") + ) {inst} ( +{pin_ports_str}, + .combout(w{i}) + );""") + + body = "\n".join(lines) + verilog = f"""module {name}( + input wire CLK, + input wire A, + output reg Q +); +{body} + + always @(posedge CLK) + Q <= w{k-1}; +endmodule +""" + return verilog, placement diff --git a/fuzz/iostd_codec_mine.py b/fuzz/iostd_codec_mine.py new file mode 100644 index 0000000..5efe906 --- /dev/null +++ b/fuzz/iostd_codec_mine.py @@ -0,0 +1,231 @@ +# SPDX-License-Identifier: GPL-3.0-or-later +"""Mine the IOB I/O-standard / drive / slew CRAM codec (Cyclone IV, Quartus). + +Which CRAM cells encode a pin's electrical settings (I/O standard, drive strength, +slew, weak pull-up, registered-IOB)? Isolate them by building the SAME pin with a +matrix of IOB settings and diffing each variant against a fixed REFERENCE build on +that pin -> because the pin + route are identical, the routing cancels and only the +electrical bits remain. Repeating on several anchor pins in different banks and +intersecting the (base-normalised) deltas keeps the position-invariant core. + + python3 iostd_codec_mine.py --pilot # reference + a few variants, ONE pin + python3 iostd_codec_mine.py --mine # full matrix on 3 anchor pins (3 banks) + python3 iostd_codec_mine.py --analyze # (re)build the codec from existing specimens + +RESULT on EP4CE10F17C8 (honest negative, so you don't repeat the dead end): each +I/O-standard change moves ~26-122 CRAM cells per pin, but the cross-pin invariant +intersection is SMALL — lvcmos33=3, io25=1, drive_min=2, pullup=2 cells; drive_max / +slew / fast_oreg came out as no-ops (0 cells) because the shipped default (3.3-V +LVTTL) is already max-drive/default-slew and a combinational buffer has no output +register. WORSE: the min-offset normalisation below trivially maps each pin's lowest +changed cell to [0,0], so [0,0] appears "invariant" in every non-empty setting — the +1-3 "invariant" cells are largely that anchor artifact, and pairwise Jaccard +~0.02-0.16 means the true cross-pin overlap is ~zero. So the electrical bits are NOT +cleanly position-invariant under this normalisation; the per-pin deltas are +placement-noise-dominated. The value here is the METHOD (variant-vs-ref diff cancels +routing) + this documented dead end. The raw specimens are shipped +(results/iostd_specimens.jsonl) so a better alignment (per-bank, or anchoring to the +IOB base rather than the delta min) can be retried WITHOUT re-mining. + +Depends on `quartus_grind` (memory-safe compile scheduler), `fuzz/compile.py` +(`compile_and_export`), and a zero `baseline.rbf` (`python3 fuzz/runner.py +baseline`). Memory-safe, resumable. Device is `config.DEVICE` (EP4CE6F17C8); the +shipped specimens were mined on its CE10 sibling (same die, same F17 256-ball +package). Anchor pins are F17 — change them for another package. +""" +from __future__ import annotations +import json, os, shutil, sys, time +from pathlib import Path +from collections import defaultdict + +sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) +import quartus_grind as G # memory-safe compile scheduler +from compile import compile_and_export # noqa: E402 +from config import DEVICE, RBF_DIR, RESULTS_DIR, WORK_DIR # noqa: E402 + +G.setup_quartus_env() +WORK = Path(WORK_DIR) / "iostd" # honors $FUZZ_WORK_DIR (see config.py) +WORK.mkdir(parents=True, exist_ok=True) + +_BASE = None +def _base(): + """Lazy zero baseline (`fuzz/runner.py baseline`) — only --mine needs it, so + --analyze runs on the shipped specimens without it present.""" + global _BASE + if _BASE is None: + _BASE = (Path(RBF_DIR) / "baseline.rbf").read_bytes() + return _BASE + +SPEC = Path(RESULTS_DIR) / "iostd_specimens.jsonl" # raw variant-vs-ref specimens (shipped) +CODEC = Path(RESULTS_DIR) / "iostd_codec.json" # regenerated summary (NOT shipped — content-free) + +# buffer design: OUT = IN. We vary the OUT pin's IOB electrical settings; the input +# anchor + route are held fixed so they cancel in the variant-vs-ref diff. +VERILOG = "module fuzz_top(input K, output LED);\n assign LED = K;\nendmodule\n" +IN_ANCHOR = "E15" # a plain input ball, proven to build (F17) +# 3 OUT anchors in different regions/banks so the cross-pin intersection actually +# tests position-invariance rather than one edge (all valid F17 output balls): +OUT_PIN_A = "G15" +OUT_PIN_B = "C15" +OUT_PIN_C = "L6" +OUT_PINS = [OUT_PIN_A, OUT_PIN_B, OUT_PIN_C] + +# label -> extra QSF assignment lines on the OUT pin (LED). "ref" = default = base. +VARIANTS = { + "ref": [], + "lvcmos33": ['set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to LED'], + "io25": ['set_instance_assignment -name IO_STANDARD "2.5 V" -to LED'], + "io18": ['set_instance_assignment -name IO_STANDARD "1.8 V" -to LED'], + "drive_min": ['set_instance_assignment -name CURRENT_STRENGTH_NEW "MINIMUM CURRENT" -to LED'], + "drive_max": ['set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to LED'], + "slew_fast": ['set_instance_assignment -name SLEW_RATE 2 -to LED'], + "pullup": ['set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to LED'], + "fast_oreg": ['set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to LED'], +} +PILOT = ["ref", "lvcmos33", "io25", "drive_min", "drive_max", "pullup"] + + +def qsf(out_pin, extra): + base = G.block_qsf(DEVICE, "fuzz_top", {"K": IN_ANCHOR, "LED": out_pin}) + return base + "\n" + "\n".join(extra) + ("\n" if extra else "") + + +def full_diff(rbf: bytes): + """All changed cells vs the zero baseline over the full config (IOB config lives + in the header band, so we do NOT restrict to the LAB data band).""" + b = _base(); n = len(b) + cells = set() + for off in range(32, n - 59): + v = rbf[off] ^ b[off] + if v: + for bp in range(8): + if (v >> bp) & 1: + cells.add((off, bp)) + return cells + + +def build(tag, out_pin, extra): + proj = WORK / tag + shutil.rmtree(proj, ignore_errors=True) + out = str(WORK / f"{tag}.rbf") + try: + rbf, _el, err = compile_and_export(tag, VERILOG, qsf(out_pin, extra), + rbf_output=out, work_dir=str(WORK)) + if rbf and os.path.getsize(rbf) == len(_base()): + return full_diff(Path(rbf).read_bytes()), "ok" + return None, (err or "fail")[:80] + except Exception as e: + return None, f"exc:{type(e).__name__}" + finally: + shutil.rmtree(proj, ignore_errors=True) + try: os.unlink(out) + except OSError: pass + + +def run(labels, pins): + done = {} + if SPEC.exists(): + for ln in open(SPEC): + ln = ln.strip() + if ln: + s = json.loads(ln); done[s["tag"]] = s + for pin in pins: + for lab in labels: + tag = f"iostd_{pin}_{lab}" + if tag in done: + print(f" {tag}: cached ({len(done[tag]['cells'])} cells)"); continue + if G.STOP["flag"]: return + t0 = time.time() + res, transient = G.guarded_compile(lambda: build(tag, pin, VARIANTS[lab])) + if transient: + if G.STOP["flag"]: return + continue + cells, status = res if isinstance(res, tuple) else (None, "fail") + if cells is not None: + rec = {"tag": tag, "pin": pin, "label": lab, + "cells": [list(c) for c in sorted(cells)]} + with open(SPEC, "a") as f: + f.write(json.dumps(rec) + "\n"); f.flush(); os.fsync(f.fileno()) + done[tag] = rec + print(f" {tag}: {status} ({len(cells) if cells else 0} cells) " + f"[{time.time()-t0:.0f}s]", flush=True) + for _ in range(G.MemCfg.cooldown_s): + if G.STOP["flag"]: return + time.sleep(1) + + +def _is_crc(off): + # per-frame CRC bytes live at frame offsets 208/209 (RBF has a 32B preamble); + # they differ between any two builds -> pure noise, drop them. + return (off - 32) % 210 >= 208 + + +def analyze(pins): + """variant - ref per pin -> the setting's cells; intersect the (base-normalised) + deltas across pins -> position-invariant codec bits. CRC bytes dropped.""" + specs = {} + for ln in open(SPEC): + ln = ln.strip() + if ln: + s = json.loads(ln) + specs[s["tag"]] = set((o, bp) for o, bp in map(tuple, s["cells"]) if not _is_crc(o)) + print("\n=== per-setting delta vs ref (route cancels; electrical bits remain) ===") + per_setting = defaultdict(list) + for pin in pins: + ref = specs.get(f"iostd_{pin}_ref") + if ref is None: + print(f" {pin}: no ref build"); continue + for lab in VARIANTS: + if lab == "ref": continue + v = specs.get(f"iostd_{pin}_{lab}") + if v is None: continue + delta = v ^ ref # symmetric diff = the setting's cells + per_setting[lab].append((pin, delta)) + print(f" {pin} {lab:10s}: {len(delta)} delta cells") + print("\n=== position-invariant codec (intersection across pins, base-normalised) ===") + codec = {} + for lab, lst in per_setting.items(): + if len(lst) < 2: + codec[lab] = {"n_pins": 1, "delta_example": len(lst[0][1]) if lst else 0} + print(f" {lab:10s}: {codec[lab]['delta_example']} cells (1 pin only)") + continue + norm = [] + for pin, delta in lst: + if not delta: norm.append(set()); continue + b = min(o for o, _ in delta) + norm.append(set((o - b, bp) for o, bp in delta)) + inv = set.intersection(*norm) if norm else set() + jac = [] + for i in range(len(norm)): + for j in range(i + 1, len(norm)): + u = norm[i] | norm[j] + jac.append(round(len(norm[i] & norm[j]) / len(u), 2) if u else 1.0) + codec[lab] = {"n_pins": len(lst), "invariant_cells": sorted(map(list, inv)), + "per_pin_sizes": [len(d) for _, d in lst], "pairwise_jaccard": jac} + print(f" {lab:10s}: {len(inv)} invariant cells across {len(lst)} pins " + f"(sizes {codec[lab]['per_pin_sizes']}, pairwise-J {jac})") + json.dump(codec, open(CODEC, "w"), indent=1) + print(f"\nwrote {CODEC.name}") + + +def main(): + import argparse, signal + ap = argparse.ArgumentParser(description=__doc__) + ap.add_argument("--pilot", action="store_true") + ap.add_argument("--mine", action="store_true") + ap.add_argument("--analyze", action="store_true") + a = ap.parse_args() + signal.signal(signal.SIGINT, G._sigint) + signal.signal(signal.SIGTERM, G._sigint) + if a.pilot: + run(PILOT, [OUT_PIN_A]); analyze([OUT_PIN_A]) + if a.mine: + run(list(VARIANTS), OUT_PINS); analyze(OUT_PINS) + if a.analyze: + analyze(OUT_PINS) + if not (a.pilot or a.mine or a.analyze): + ap.print_help() + + +if __name__ == "__main__": + main() diff --git a/fuzz/quartus_grind.py b/fuzz/quartus_grind.py new file mode 100644 index 0000000..b8197b2 --- /dev/null +++ b/fuzz/quartus_grind.py @@ -0,0 +1,212 @@ +# SPDX-License-Identifier: GPL-3.0-or-later +"""Memory-safe Quartus compile scheduler — general fuzzing infrastructure. + +Running hundreds/thousands of Quartus flows to mine CRAM bits will OOM and hang a +small box: one `quartus_map`+`quartus_fit`+`quartus_asm` flow peaks ~1.5 GiB, and +launching a compile into low memory swap-thrashes the whole machine to a halt. +This module is the guard rail — the piece that let a 3.8 GiB box grind 500+ +compiles unattended overnight without a single OOM: + + * `guarded_compile(thunk)` runs ONE compile under two watchdogs — it won't START + unless there's enough free RAM (`MemCfg.start_mb`), and it KILLS the flow if + free RAM crosses a danger floor (`MemCfg.critical_mb`) or a wall-clock cap + (`MemCfg.max_wall_s`) mid-compile, so the box always survives. + * `kill_quartus()` SIGKILLs only the Quartus flow, via /proc (no fork — safe + under memory pressure) and matching the executable name exactly (won't kill + `vim quartus_fit.rpt`). + * `block_qsf(...)` builds a minimal, known-good QSF for a single-design probe. + * `_atomic(path, obj)` is a crash-safe JSON writer (tmp+rename) that tolerates a + transient drvfs/9p/AV-lock hiccup instead of dying mid multi-day run. + * SIGINT/SIGTERM set `STOP["flag"]`; long loops poll it to checkpoint & exit. + +Usage: + import quartus_grind as G, signal + signal.signal(signal.SIGINT, G._sigint) + signal.signal(signal.SIGTERM, G._sigint) + G.setup_quartus_env() # optional PATH/env setup + rbf, transient = G.guarded_compile(lambda: my_compile(tag, verilog, qsf)) + if transient: # STOP or watchdog-abort -> do NOT retire the job (resume later) + ... + +Tune the thresholds for your box via `MemCfg` (defaults suit ~3.8 GiB). This is +device-agnostic; the shipped `block_qsf` defaults target Cyclone IV E but take the +device string as an argument. +""" +from __future__ import annotations +import json, os, re, signal, threading, time +from pathlib import Path + +# SIGINT/SIGTERM cooperative-stop flag (poll STOP["flag"] in long loops). +STOP = {"flag": False} + + +def _sigint(sig, frm): + STOP["flag"] = True + print("\n[!] stop requested — checkpointing then exiting", flush=True) + + +def setup_quartus_env(rootdir: str | None = None): + """Put Quartus on PATH and set QUARTUS_ROOTDIR. `rootdir` defaults to + $QUARTUS_ROOTDIR, else ~/intelFPGA_lite/21.1/quartus. LC_ALL=C avoids + locale-dependent report parsing.""" + root = rootdir or os.environ.get("QUARTUS_ROOTDIR") \ + or os.path.expanduser("~/intelFPGA_lite/21.1/quartus") + os.environ["QUARTUS_ROOTDIR"] = root + os.environ["PATH"] = root + "/bin:" + os.environ.get("PATH", "") + os.environ.setdefault("LC_ALL", "C") + return root + + +# ---------------------------------------------------------------------- +# persistence — crash-safe atomic JSON write +# ---------------------------------------------------------------------- +def _atomic(path, obj): + """tmp+rename atomic write. A transient drvfs/9p/AV-lock hiccup must NOT kill a + multi-day run, so on OSError we warn and carry on rather than raise.""" + path = Path(path) + try: + tmp = path.with_suffix(path.suffix + ".tmp") + tmp.write_text(json.dumps(obj)) + os.replace(tmp, path) + except OSError as e: + print(f" [io] persist {path.name} failed: {e} (continuing)", flush=True) + + +# ---------------------------------------------------------------------- +# minimal single-design QSF +# ---------------------------------------------------------------------- +def block_qsf(device, top, pins, loc_node=None, loc=None): + """A minimal known-good QSF for a one-design probe. `pins` = {signal: PIN_ball}. + Optional (loc_node, loc) pins a hierarchical node to a chip location.""" + L = [ + 'set_global_assignment -name FAMILY "Cyclone IV E"', + f'set_global_assignment -name DEVICE {device}', + f'set_global_assignment -name TOP_LEVEL_ENTITY {top}', + 'set_global_assignment -name VERILOG_FILE fuzz_top.v', + 'set_global_assignment -name PROJECT_OUTPUT_DIRECTORY output_files', + 'set_global_assignment -name STRATIX_DEVICE_IO_STANDARD "3.3-V LVTTL"', + 'set_global_assignment -name SEED 1', + ] + for sig, pin in pins.items(): + L.append(f'set_location_assignment PIN_{pin} -to {sig}') + if loc_node and loc: + L.append(f'set_location_assignment {loc} -to "{loc_node}"') + return "\n".join(L) + "\n" + + +# ---------------------------------------------------------------------- +# MEMORY SAFETY — one Quartus flow peaks ~1.5 GiB. Launching into low memory +# OOM/swap-thrashes and HANGS the box. Two guards: (1) don't START a compile +# unless there's enough free RAM; (2) if free RAM crosses a danger floor DURING +# a compile, kill Quartus so the compile fails but the box survives. +# ---------------------------------------------------------------------- +def mem_available_mb(): + """Free RAM in MB, or -1 if unreadable (never 0 — 0 would make the gate wait + forever).""" + try: + with open("/proc/meminfo") as f: + for line in f: + if line.startswith("MemAvailable:"): + return int(line.split()[1]) // 1024 + except Exception: + return -1 + return -1 + + +_QTOOL_RE = re.compile(r"^quartus_(map|fit|asm|cpf|sh|sta|cdb)$") + + +def kill_quartus(): + """SIGKILL our Quartus flow via /proc (no fork — safe under memory pressure), + matching only the executable name (not an arg substring, so it can't kill + `vim quartus_fit.rpt`). Never raises.""" + me = os.getpid() + try: + pids = [p for p in os.listdir("/proc") if p.isdigit()] + except OSError: + return + for p in pids: + if int(p) == me: + continue + try: + with open(f"/proc/{p}/cmdline", "rb") as f: + argv0 = f.read().split(b"\0", 1)[0].decode("utf8", "replace") + except OSError: + continue + if _QTOOL_RE.match(argv0.rsplit("/", 1)[-1]): + try: + os.kill(int(p), signal.SIGKILL) + except (ProcessLookupError, PermissionError): + pass + + +class MemCfg: + start_mb = 2200 # need this much free to START a compile + critical_mb = 350 # abort a running compile if free drops below this + cooldown_s = 8 # settle time between compiles + poll_s = 3 + max_wall_s = 900 # hard wall-clock cap per compile (kills a hung Quartus) + + +def wait_for_memory(): + """Block until free RAM >= MemCfg.start_mb (or STOP). Returns True if clear to + compile, False only if STOP was requested. If meminfo is unreadable we proceed + (better than deadlocking forever).""" + warned = False + while not STOP["flag"]: + m = mem_available_mb() + if m < 0: + print(" [mem] cannot read /proc/meminfo — proceeding cautiously", flush=True) + return True + if m >= MemCfg.start_mb: + return True + if not warned: + print(f" [mem] waiting: {m}MB free (< {MemCfg.start_mb}MB) — holding compile", + flush=True) + warned = True + time.sleep(5) + return False + + +def guarded_compile(thunk): + """Run one compile `thunk` under the memory + wall-clock watchdog. + Returns (result_or_None, transient); transient=True means we stopped or + watchdog-aborted (env issue) and the job must NOT be retired — resume it later. + `thunk`'s own return value is passed through as the result on success.""" + if not wait_for_memory(): + return None, True # STOP during wait -> transient + result = {} + + def run(): + try: + result["rbf"] = thunk() + except Exception as e: + result["err"] = e + + th = threading.Thread(target=run, daemon=True) + th.start() + t0 = time.time() + aborted = False + while th.is_alive(): + th.join(MemCfg.poll_s) + if not th.is_alive(): + break + m = mem_available_mb() + over = (time.time() - t0) > MemCfg.max_wall_s + if (0 <= m < MemCfg.critical_mb) or over or STOP["flag"]: + why = "STOP" if STOP["flag"] else ("timeout" if over else f"{m}MB") + print(f" [mem] aborting compile ({why})", flush=True) + aborted = True + # keep killing until the compile thread dies — one shot can miss the + # next Quartus stage started right after the kill snapshot. + for _ in range(10): + kill_quartus() + th.join(3) + if not th.is_alive(): + break + break + if "err" in result: + print(f" [compile-exc] {result['err']!r}", flush=True) + if aborted: + return None, True + return result.get("rbf"), False diff --git a/results/iostd_specimens.jsonl b/results/iostd_specimens.jsonl new file mode 100644 index 0000000..bbfdc4a --- /dev/null +++ b/results/iostd_specimens.jsonl @@ -0,0 +1,25 @@ +{"tag": "iostd_G15_ref", "pin": "G15", "label": "ref", "cells": [[42, 0], [43, 0], [44, 0], [50, 0], [51, 0], [73, 0], [73, 2], [73, 3], [73, 6], [74, 0], [74, 6], [74, 7], [862, 4], [863, 4], [864, 4], [865, 4], [866, 4], [867, 4], [868, 4], [869, 4], [878, 4], [879, 4], [880, 4], [881, 4], [1014, 4], [1015, 4], [1016, 4], [1017, 4], [1018, 4], [1019, 4], [1020, 4], [1021, 4], [1030, 4], [1031, 4], [1032, 4], [1033, 4], [1074, 0], [1074, 1], [1074, 2], [1074, 6], [1074, 7], [1075, 0], [1075, 1], [1075, 2], [1075, 6], [1075, 7], [1076, 0], [1076, 1], [1076, 2], [1076, 6], [1076, 7], [1077, 0], [1077, 1], [1077, 2], [1077, 6], [1077, 7], [1078, 0], [1078, 1], [1078, 2], [1078, 3], [1078, 7], [1079, 0], [1079, 1], [1079, 2], [1079, 3], [1079, 7], [1080, 0], [1080, 1], [1080, 2], [1080, 3], [1080, 7], [1081, 0], [1081, 1], [1081, 2], [1081, 3], [1081, 7], [1178, 4], [1179, 4], [1180, 4], [1181, 4], [1182, 4], [1183, 4], [1184, 4], [1185, 4], [1194, 4], [1195, 4], [1196, 4], [1197, 4], [1914, 3], [1914, 6], [1915, 3], [1915, 6], [1916, 3], [1916, 6], [1917, 3], [1917, 6], [1918, 2], [1918, 6], [1918, 7], [1919, 2], [1919, 6], [1919, 7], [1920, 2], [1920, 6], [1920, 7], [1921, 2], [1921, 6], [1921, 7], [361617, 2], [361650, 0], [361650, 4], [361650, 5], [361650, 7], [361651, 0], [361651, 6], [361651, 7], [361826, 2], [361860, 0], [361861, 2], [361861, 4], [361861, 5], [361861, 6], [361878, 3], [361950, 2], [362070, 0], [362070, 2], [362070, 5], [362070, 6], [362070, 7], [362071, 0], [362071, 3], [362071, 6], [362087, 3], [362280, 1], [362280, 3], [362280, 4], [362280, 5], [362280, 7], [362281, 3], [362281, 6], [362581, 2], [362700, 2], [362700, 6], [362701, 2], [364723, 2], [364800, 1], [364800, 2], [364801, 0], [364801, 2], [364801, 7], [365142, 2], [365220, 0], [365220, 2], [365221, 1], [366203, 2], [366270, 0], [366270, 4], [366270, 6], [366271, 4], [366271, 5]]} +{"tag": "iostd_G15_lvcmos33", "pin": "G15", "label": "lvcmos33", "cells": [[41, 0], [42, 0], [44, 0], [46, 0], [47, 0], [48, 0], [49, 0], [73, 0], [73, 1], [73, 2], [73, 3], [73, 4], [73, 6], [74, 2], [74, 3], [74, 4], [74, 5], [74, 6], [862, 4], [863, 4], [864, 4], [865, 4], [866, 4], [867, 4], [868, 4], [869, 4], [878, 4], [879, 4], [880, 4], [881, 4], [1014, 4], [1015, 4], [1016, 4], [1017, 4], [1018, 4], [1019, 4], [1020, 4], [1021, 4], [1030, 4], [1031, 4], [1032, 4], [1033, 4], [1074, 0], [1074, 1], [1074, 2], [1074, 6], [1074, 7], [1075, 0], [1075, 1], [1075, 2], [1075, 6], [1075, 7], [1076, 0], [1076, 1], [1076, 2], [1076, 6], [1076, 7], [1077, 0], [1077, 1], [1077, 2], [1077, 6], [1077, 7], [1078, 0], [1078, 1], [1078, 2], [1078, 3], [1078, 7], [1079, 0], [1079, 1], [1079, 2], [1079, 3], [1079, 7], [1080, 0], [1080, 1], [1080, 2], [1080, 3], [1080, 7], [1081, 0], [1081, 1], [1081, 2], [1081, 3], [1081, 7], [1178, 4], [1179, 4], [1180, 4], [1181, 4], [1182, 4], [1183, 4], [1184, 4], [1185, 4], [1194, 4], [1195, 4], [1196, 4], [1197, 4], [1914, 3], [1914, 6], [1915, 3], [1915, 6], [1916, 3], [1916, 6], [1917, 3], [1917, 6], [1918, 2], [1918, 6], [1918, 7], [1919, 2], [1919, 6], [1919, 7], [1920, 2], [1920, 6], [1920, 7], [1921, 2], [1921, 6], [1921, 7], [3798, 5], [3799, 5], [3800, 5], [3801, 5], [3802, 5], [3803, 5], [3804, 5], [3805, 5], [3810, 5], [3811, 5], [3812, 5], [3813, 5], [3814, 5], [3815, 5], [3816, 5], [3817, 5], [3838, 5], [3839, 5], [3840, 5], [3841, 5], [4434, 0], [4434, 1], [4434, 3], [4434, 6], [4434, 7], [4435, 0], [4435, 1], [4435, 3], [4435, 6], [4435, 7], [4436, 0], [4436, 1], [4436, 3], [4436, 6], [4436, 7], [4437, 0], [4437, 1], [4437, 3], [4437, 6], [4437, 7], [4438, 1], [4438, 3], [4438, 5], [4438, 6], [4439, 1], [4439, 3], [4439, 5], [4439, 6], [4440, 1], [4440, 3], [4440, 5], [4440, 6], [4441, 1], [4441, 3], [4441, 5], [4441, 6], [361617, 2], [361650, 0], [361650, 4], [361650, 5], [361650, 7], [361651, 0], [361651, 6], [361651, 7], [361826, 2], [361860, 0], [361861, 2], [361861, 4], [361861, 5], [361861, 6], [361878, 3], [361950, 2], [362070, 0], [362070, 2], [362070, 5], [362070, 6], [362070, 7], [362071, 0], [362071, 3], [362071, 6], [362087, 3], [362280, 1], [362280, 3], [362280, 4], [362280, 5], [362280, 7], [362281, 3], [362281, 6], [362581, 2], [362700, 2], [362700, 6], [362701, 2], [364723, 2], [364800, 1], [364800, 2], [364801, 0], [364801, 2], [364801, 7], [365142, 2], [365220, 0], [365220, 2], [365221, 1], [366203, 2], [366270, 0], [366270, 4], [366270, 6], [366271, 4], [366271, 5]]} +{"tag": "iostd_G15_io25", "pin": "G15", "label": "io25", "cells": [[43, 0], [44, 0], [48, 0], [49, 0], [73, 3], [73, 6], [73, 7], [74, 0], [74, 2], [74, 3], [74, 4], [74, 5], [862, 4], [863, 4], [864, 4], [865, 4], [866, 4], [867, 4], [868, 4], [869, 4], [878, 4], [879, 4], [880, 4], [881, 4], [1014, 4], [1015, 4], [1016, 4], [1017, 4], [1018, 4], [1019, 4], [1020, 4], [1021, 4], [1030, 4], [1031, 4], [1032, 4], [1033, 4], [1074, 0], [1074, 1], [1074, 2], [1074, 6], [1074, 7], [1075, 0], [1075, 1], [1075, 2], [1075, 6], [1075, 7], [1076, 0], [1076, 1], [1076, 2], [1076, 6], [1076, 7], [1077, 0], [1077, 1], [1077, 2], [1077, 6], [1077, 7], [1078, 0], [1078, 1], [1078, 2], [1078, 3], [1078, 7], [1079, 0], [1079, 1], [1079, 2], [1079, 3], [1079, 7], [1080, 0], [1080, 1], [1080, 2], [1080, 3], [1080, 7], [1081, 0], [1081, 1], [1081, 2], [1081, 3], [1081, 7], [1178, 4], [1179, 4], [1180, 4], [1181, 4], [1182, 4], [1183, 4], [1184, 4], [1185, 4], [1194, 4], [1195, 4], [1196, 4], [1197, 4], [1914, 3], [1914, 6], [1915, 3], [1915, 6], [1916, 3], [1916, 6], [1917, 3], [1917, 6], [1918, 2], [1918, 6], [1918, 7], [1919, 2], [1919, 6], [1919, 7], [1920, 2], [1920, 6], [1920, 7], [1921, 2], [1921, 6], [1921, 7], [3478, 5], [3479, 5], [3480, 5], [3481, 5], [3482, 5], [3483, 5], [3484, 5], [3485, 5], [3486, 5], [3487, 5], [3488, 5], [3489, 5], [3490, 5], [3491, 5], [3492, 5], [3493, 5], [3494, 5], [3495, 5], [3496, 5], [3497, 5], [3502, 5], [3503, 5], [3504, 5], [3505, 5], [3518, 5], [3519, 5], [3520, 5], [3521, 5], [3530, 5], [3531, 5], [3532, 5], [3533, 5], [3534, 5], [3535, 5], [3536, 5], [3537, 5], [3594, 3], [3595, 3], [3596, 3], [3597, 3], [3598, 2], [3598, 3], [3598, 5], [3598, 7], [3599, 2], [3599, 3], [3599, 5], [3599, 7], [3600, 2], [3600, 3], [3600, 5], [3600, 7], [3601, 2], [3601, 3], [3601, 5], [3601, 7], [3794, 5], [3795, 5], [3796, 5], [3797, 5], [3798, 5], [3799, 5], [3800, 5], [3801, 5], [3810, 5], [3811, 5], [3812, 5], [3813, 5], [3814, 5], [3815, 5], [3816, 5], [3817, 5], [3818, 5], [3819, 5], [3820, 5], [3821, 5], [3830, 5], [3831, 5], [3832, 5], [3833, 5], [3838, 5], [3839, 5], [3840, 5], [3841, 5], [3850, 5], [3851, 5], [3852, 5], [3853, 5], [4434, 0], [4434, 1], [4434, 2], [4434, 3], [4434, 5], [4434, 6], [4435, 0], [4435, 1], [4435, 2], [4435, 3], [4435, 5], [4435, 6], [4436, 0], [4436, 1], [4436, 2], [4436, 3], [4436, 5], [4436, 6], [4437, 0], [4437, 1], [4437, 2], [4437, 3], [4437, 5], [4437, 6], [4438, 0], [4438, 7], [4439, 0], [4439, 7], [4440, 0], [4440, 7], [4441, 0], [4441, 7], [361617, 2], [361650, 0], [361650, 4], [361650, 5], [361650, 7], [361651, 0], [361651, 6], [361651, 7], [361826, 2], [361860, 0], [361861, 2], [361861, 4], [361861, 5], [361861, 6], [361878, 3], [361950, 2], [362070, 0], [362070, 2], [362070, 5], [362070, 6], [362070, 7], [362071, 0], [362071, 3], [362071, 6], [362087, 3], [362280, 1], [362280, 3], [362280, 4], [362280, 5], [362280, 7], [362281, 3], [362281, 6], [362581, 2], [362700, 2], [362700, 6], [362701, 2], [364723, 2], [364800, 1], [364800, 2], [364801, 0], [364801, 2], [364801, 7], [365142, 2], [365220, 0], [365220, 2], [365221, 1], [366203, 2], [366270, 0], [366270, 4], [366270, 6], [366271, 4], [366271, 5]]} +{"tag": "iostd_G15_drive_min", "pin": "G15", "label": "drive_min", "cells": [[42, 0], [43, 0], [44, 0], [46, 0], [47, 0], [49, 0], [73, 0], [73, 1], [73, 3], [74, 0], [74, 3], [74, 4], [74, 5], [74, 6], [862, 4], [863, 4], [864, 4], [865, 4], [866, 4], [867, 4], [868, 4], [869, 4], [878, 4], [879, 4], [880, 4], [881, 4], [1014, 4], [1015, 4], [1016, 4], [1017, 4], [1018, 4], [1019, 4], [1020, 4], [1021, 4], [1030, 4], [1031, 4], [1032, 4], [1033, 4], [1074, 0], [1074, 1], [1074, 2], [1074, 6], [1074, 7], [1075, 0], [1075, 1], [1075, 2], [1075, 6], [1075, 7], [1076, 0], [1076, 1], [1076, 2], [1076, 6], [1076, 7], [1077, 0], [1077, 1], [1077, 2], [1077, 6], [1077, 7], [1078, 0], [1078, 1], [1078, 2], [1078, 3], [1078, 7], [1079, 0], [1079, 1], [1079, 2], [1079, 3], [1079, 7], [1080, 0], [1080, 1], [1080, 2], [1080, 3], [1080, 7], [1081, 0], [1081, 1], [1081, 2], [1081, 3], [1081, 7], [1178, 4], [1179, 4], [1180, 4], [1181, 4], [1182, 4], [1183, 4], [1184, 4], [1185, 4], [1194, 4], [1195, 4], [1196, 4], [1197, 4], [1914, 3], [1914, 6], [1915, 3], [1915, 6], [1916, 3], [1916, 6], [1917, 3], [1917, 6], [1918, 2], [1918, 6], [1918, 7], [1919, 2], [1919, 6], [1919, 7], [1920, 2], [1920, 6], [1920, 7], [1921, 2], [1921, 6], [1921, 7], [3798, 5], [3799, 5], [3800, 5], [3801, 5], [3802, 5], [3803, 5], [3804, 5], [3805, 5], [3806, 5], [3807, 5], [3808, 5], [3809, 5], [3814, 5], [3815, 5], [3816, 5], [3817, 5], [3838, 5], [3839, 5], [3840, 5], [3841, 5], [3846, 5], [3847, 5], [3848, 5], [3849, 5], [4434, 3], [4434, 5], [4435, 3], [4435, 5], [4436, 3], [4436, 5], [4437, 3], [4437, 5], [4438, 0], [4438, 5], [4438, 6], [4438, 7], [4439, 0], [4439, 5], [4439, 6], [4439, 7], [4440, 0], [4440, 5], [4440, 6], [4440, 7], [4441, 0], [4441, 5], [4441, 6], [4441, 7], [361617, 2], [361650, 0], [361650, 4], [361650, 5], [361650, 7], [361651, 0], [361651, 6], [361651, 7], [361826, 2], [361860, 0], [361861, 2], [361861, 4], [361861, 5], [361861, 6], [361878, 3], [361950, 2], [362070, 0], [362070, 2], [362070, 5], [362070, 6], [362070, 7], [362071, 0], [362071, 3], [362071, 6], [362087, 3], [362280, 1], [362280, 3], [362280, 4], [362280, 5], [362280, 7], [362281, 3], [362281, 6], [362581, 2], [362700, 2], [362700, 6], [362701, 2], [364723, 2], [364800, 1], [364800, 2], [364801, 0], [364801, 2], [364801, 7], [365142, 2], [365220, 0], [365220, 2], [365221, 1], [366203, 2], [366270, 0], [366270, 4], [366270, 6], [366271, 4], [366271, 5]]} +{"tag": "iostd_G15_drive_max", "pin": "G15", "label": "drive_max", "cells": [[42, 0], [43, 0], [44, 0], [50, 0], [51, 0], [73, 0], [73, 2], [73, 3], [73, 6], [74, 0], [74, 6], [74, 7], [862, 4], [863, 4], [864, 4], [865, 4], [866, 4], [867, 4], [868, 4], [869, 4], [878, 4], [879, 4], [880, 4], [881, 4], [1014, 4], [1015, 4], [1016, 4], [1017, 4], [1018, 4], [1019, 4], [1020, 4], [1021, 4], [1030, 4], [1031, 4], [1032, 4], [1033, 4], [1074, 0], [1074, 1], [1074, 2], [1074, 6], [1074, 7], [1075, 0], [1075, 1], [1075, 2], [1075, 6], [1075, 7], [1076, 0], [1076, 1], [1076, 2], [1076, 6], [1076, 7], [1077, 0], [1077, 1], [1077, 2], [1077, 6], [1077, 7], [1078, 0], [1078, 1], [1078, 2], [1078, 3], [1078, 7], [1079, 0], [1079, 1], [1079, 2], [1079, 3], [1079, 7], [1080, 0], [1080, 1], [1080, 2], [1080, 3], [1080, 7], [1081, 0], [1081, 1], [1081, 2], [1081, 3], [1081, 7], [1178, 4], [1179, 4], [1180, 4], [1181, 4], [1182, 4], [1183, 4], [1184, 4], [1185, 4], [1194, 4], [1195, 4], [1196, 4], [1197, 4], [1914, 3], [1914, 6], [1915, 3], [1915, 6], [1916, 3], [1916, 6], [1917, 3], [1917, 6], [1918, 2], [1918, 6], [1918, 7], [1919, 2], [1919, 6], [1919, 7], [1920, 2], [1920, 6], [1920, 7], [1921, 2], [1921, 6], [1921, 7], [361617, 2], [361650, 0], [361650, 4], [361650, 5], [361650, 7], [361651, 0], [361651, 6], [361651, 7], [361826, 2], [361860, 0], [361861, 2], [361861, 4], [361861, 5], [361861, 6], [361878, 3], [361950, 2], [362070, 0], [362070, 2], [362070, 5], [362070, 6], [362070, 7], [362071, 0], [362071, 3], [362071, 6], [362087, 3], [362280, 1], [362280, 3], [362280, 4], [362280, 5], [362280, 7], [362281, 3], [362281, 6], [362581, 2], [362700, 2], [362700, 6], [362701, 2], [364723, 2], [364800, 1], [364800, 2], [364801, 0], [364801, 2], [364801, 7], [365142, 2], [365220, 0], [365220, 2], [365221, 1], [366203, 2], [366270, 0], [366270, 4], [366270, 6], [366271, 4], [366271, 5]]} +{"tag": "iostd_G15_pullup", "pin": "G15", "label": "pullup", "cells": [[41, 0], [43, 0], [44, 0], [50, 0], [51, 0], [73, 0], [73, 2], [73, 3], [73, 4], [73, 6], [73, 7], [74, 0], [74, 2], [74, 3], [74, 5], [74, 7], [862, 4], [863, 4], [864, 4], [865, 4], [866, 4], [867, 4], [868, 4], [869, 4], [878, 4], [879, 4], [880, 4], [881, 4], [1014, 4], [1015, 4], [1016, 4], [1017, 4], [1018, 4], [1019, 4], [1020, 4], [1021, 4], [1030, 4], [1031, 4], [1032, 4], [1033, 4], [1074, 0], [1074, 1], [1074, 2], [1074, 6], [1074, 7], [1075, 0], [1075, 1], [1075, 2], [1075, 6], [1075, 7], [1076, 0], [1076, 1], [1076, 2], [1076, 6], [1076, 7], [1077, 0], [1077, 1], [1077, 2], [1077, 6], [1077, 7], [1078, 0], [1078, 1], [1078, 2], [1078, 3], [1078, 7], [1079, 0], [1079, 1], [1079, 2], [1079, 3], [1079, 7], [1080, 0], [1080, 1], [1080, 2], [1080, 3], [1080, 7], [1081, 0], [1081, 1], [1081, 2], [1081, 3], [1081, 7], [1178, 4], [1179, 4], [1180, 4], [1181, 4], [1182, 4], [1183, 4], [1184, 4], [1185, 4], [1194, 4], [1195, 4], [1196, 4], [1197, 4], [1914, 3], [1914, 6], [1915, 3], [1915, 6], [1916, 3], [1916, 6], [1917, 3], [1917, 6], [1918, 2], [1918, 6], [1918, 7], [1919, 2], [1919, 6], [1919, 7], [1920, 2], [1920, 6], [1920, 7], [1921, 2], [1921, 6], [1921, 7], [3778, 5], [3779, 5], [3780, 5], [3781, 5], [4434, 1], [4434, 7], [4435, 1], [4435, 7], [4436, 1], [4436, 7], [4437, 1], [4437, 7], [4438, 0], [4438, 3], [4438, 7], [4439, 0], [4439, 3], [4439, 7], [4440, 0], [4440, 3], [4440, 7], [4441, 0], [4441, 3], [4441, 7], [361617, 2], [361650, 0], [361650, 4], [361650, 5], [361650, 7], [361651, 0], [361651, 6], [361651, 7], [361826, 2], [361860, 0], [361861, 2], [361861, 4], [361861, 5], [361861, 6], [361878, 3], [361950, 2], [362070, 0], [362070, 2], [362070, 5], [362070, 6], [362070, 7], [362071, 0], [362071, 3], [362071, 6], [362087, 3], [362280, 1], [362280, 3], [362280, 4], [362280, 5], [362280, 7], [362281, 3], [362281, 6], [362581, 2], [362700, 2], [362700, 6], [362701, 2], [364723, 2], [364800, 1], [364800, 2], [364801, 0], [364801, 2], [364801, 7], [365142, 2], [365220, 0], [365220, 2], [365221, 1], [366203, 2], [366270, 0], [366270, 4], [366270, 6], [366271, 4], [366271, 5]]} +{"tag": "iostd_G15_slew_fast", "pin": "G15", "label": "slew_fast", "cells": [[42, 0], [43, 0], [44, 0], [50, 0], [51, 0], [73, 0], [73, 2], [73, 3], [73, 6], [74, 0], [74, 6], [74, 7], [862, 4], [863, 4], [864, 4], [865, 4], [866, 4], [867, 4], [868, 4], [869, 4], [878, 4], [879, 4], [880, 4], [881, 4], [1014, 4], [1015, 4], [1016, 4], [1017, 4], [1018, 4], [1019, 4], [1020, 4], [1021, 4], [1030, 4], [1031, 4], [1032, 4], [1033, 4], [1074, 0], [1074, 1], [1074, 2], [1074, 6], [1074, 7], [1075, 0], [1075, 1], [1075, 2], [1075, 6], [1075, 7], [1076, 0], [1076, 1], [1076, 2], [1076, 6], [1076, 7], [1077, 0], [1077, 1], [1077, 2], [1077, 6], [1077, 7], [1078, 0], [1078, 1], [1078, 2], [1078, 3], [1078, 7], [1079, 0], [1079, 1], [1079, 2], [1079, 3], [1079, 7], [1080, 0], [1080, 1], [1080, 2], [1080, 3], [1080, 7], [1081, 0], [1081, 1], [1081, 2], [1081, 3], [1081, 7], [1178, 4], [1179, 4], [1180, 4], [1181, 4], [1182, 4], [1183, 4], [1184, 4], [1185, 4], [1194, 4], [1195, 4], [1196, 4], [1197, 4], [1914, 3], [1914, 6], [1915, 3], [1915, 6], [1916, 3], [1916, 6], [1917, 3], [1917, 6], [1918, 2], [1918, 6], [1918, 7], [1919, 2], [1919, 6], [1919, 7], [1920, 2], [1920, 6], [1920, 7], [1921, 2], [1921, 6], [1921, 7], [361617, 2], [361650, 0], [361650, 4], [361650, 5], [361650, 7], [361651, 0], [361651, 6], [361651, 7], [361826, 2], [361860, 0], [361861, 2], [361861, 4], [361861, 5], [361861, 6], [361878, 3], [361950, 2], [362070, 0], [362070, 2], [362070, 5], [362070, 6], [362070, 7], [362071, 0], [362071, 3], [362071, 6], [362087, 3], [362280, 1], [362280, 3], [362280, 4], [362280, 5], [362280, 7], [362281, 3], [362281, 6], [362581, 2], [362700, 2], [362700, 6], [362701, 2], [364723, 2], [364800, 1], [364800, 2], [364801, 0], [364801, 2], [364801, 7], [365142, 2], [365220, 0], [365220, 2], [365221, 1], [366203, 2], [366270, 0], [366270, 4], [366270, 6], [366271, 4], [366271, 5]]} +{"tag": "iostd_G15_fast_oreg", "pin": "G15", "label": "fast_oreg", "cells": [[42, 0], [43, 0], [44, 0], [50, 0], [51, 0], [73, 0], [73, 2], [73, 3], [73, 6], [74, 0], [74, 6], [74, 7], [862, 4], [863, 4], [864, 4], [865, 4], [866, 4], [867, 4], [868, 4], [869, 4], [878, 4], [879, 4], [880, 4], [881, 4], [1014, 4], [1015, 4], [1016, 4], [1017, 4], [1018, 4], [1019, 4], [1020, 4], [1021, 4], [1030, 4], [1031, 4], [1032, 4], [1033, 4], [1074, 0], [1074, 1], [1074, 2], [1074, 6], [1074, 7], [1075, 0], [1075, 1], [1075, 2], [1075, 6], [1075, 7], [1076, 0], [1076, 1], [1076, 2], [1076, 6], [1076, 7], [1077, 0], [1077, 1], [1077, 2], [1077, 6], [1077, 7], [1078, 0], [1078, 1], [1078, 2], [1078, 3], [1078, 7], [1079, 0], [1079, 1], [1079, 2], [1079, 3], [1079, 7], [1080, 0], [1080, 1], [1080, 2], [1080, 3], [1080, 7], [1081, 0], [1081, 1], [1081, 2], [1081, 3], [1081, 7], [1178, 4], [1179, 4], [1180, 4], [1181, 4], [1182, 4], [1183, 4], [1184, 4], [1185, 4], [1194, 4], [1195, 4], [1196, 4], [1197, 4], [1914, 3], [1914, 6], [1915, 3], [1915, 6], [1916, 3], [1916, 6], [1917, 3], [1917, 6], [1918, 2], [1918, 6], [1918, 7], [1919, 2], [1919, 6], [1919, 7], [1920, 2], [1920, 6], [1920, 7], [1921, 2], [1921, 6], [1921, 7], [361617, 2], [361650, 0], [361650, 4], [361650, 5], [361650, 7], [361651, 0], [361651, 6], [361651, 7], [361826, 2], [361860, 0], [361861, 2], [361861, 4], [361861, 5], [361861, 6], [361878, 3], [361950, 2], [362070, 0], [362070, 2], [362070, 5], [362070, 6], [362070, 7], [362071, 0], [362071, 3], [362071, 6], [362087, 3], [362280, 1], [362280, 3], [362280, 4], [362280, 5], [362280, 7], [362281, 3], [362281, 6], [362581, 2], [362700, 2], [362700, 6], [362701, 2], [364723, 2], [364800, 1], [364800, 2], [364801, 0], [364801, 2], [364801, 7], [365142, 2], [365220, 0], [365220, 2], [365221, 1], [366203, 2], [366270, 0], [366270, 4], [366270, 6], [366271, 4], [366271, 5]]} +{"tag": "iostd_C15_ref", "pin": "C15", "label": "ref", "cells": [[41, 0], [45, 0], [46, 0], [48, 0], [73, 3], [73, 5], [73, 7], [74, 0], [74, 1], [74, 2], [74, 4], [74, 6], [862, 4], [863, 4], [864, 4], [865, 4], [866, 4], [867, 4], [868, 4], [869, 4], [878, 4], [879, 4], [880, 4], [881, 4], [1014, 4], [1015, 4], [1016, 4], [1017, 4], [1018, 4], [1019, 4], [1020, 4], [1021, 4], [1030, 4], [1031, 4], [1032, 4], [1033, 4], [1074, 0], [1074, 1], [1074, 2], [1074, 6], [1074, 7], [1075, 0], [1075, 1], [1075, 2], [1075, 6], [1075, 7], [1076, 0], [1076, 1], [1076, 2], [1076, 6], [1076, 7], [1077, 0], [1077, 1], [1077, 2], [1077, 6], [1077, 7], [1078, 0], [1078, 1], [1078, 2], [1078, 3], [1078, 7], [1079, 0], [1079, 1], [1079, 2], [1079, 3], [1079, 7], [1080, 0], [1080, 1], [1080, 2], [1080, 3], [1080, 7], [1081, 0], [1081, 1], [1081, 2], [1081, 3], [1081, 7], [1178, 4], [1179, 4], [1180, 4], [1181, 4], [1182, 4], [1183, 4], [1184, 4], [1185, 4], [1194, 4], [1195, 4], [1196, 4], [1197, 4], [1914, 3], [1914, 6], [1915, 3], [1915, 6], [1916, 3], [1916, 6], [1917, 3], [1917, 6], [1918, 2], [1918, 6], [1918, 7], [1919, 2], [1919, 6], [1919, 7], [1920, 2], [1920, 6], [1920, 7], [1921, 2], [1921, 6], [1921, 7], [2190, 5], [2191, 5], [2192, 5], [2193, 5], [2222, 5], [2223, 5], [2224, 5], [2225, 5], [2226, 5], [2227, 5], [2228, 5], [2229, 5], [2234, 5], [2235, 5], [2236, 5], [2237, 5], [2254, 5], [2255, 5], [2256, 5], [2257, 5], [2262, 5], [2263, 5], [2264, 5], [2265, 5], [2274, 5], [2275, 5], [2276, 5], [2277, 5], [2294, 5], [2295, 5], [2296, 5], [2297, 5], [2298, 5], [2299, 5], [2300, 5], [2301, 5], [2302, 5], [2303, 5], [2304, 5], [2305, 5], [2754, 0], [2754, 1], [2754, 3], [2754, 6], [2755, 0], [2755, 1], [2755, 3], [2755, 6], [2756, 0], [2756, 1], [2756, 3], [2756, 6], [2757, 0], [2757, 1], [2757, 3], [2757, 6], [2758, 1], [2758, 3], [2758, 6], [2758, 7], [2759, 1], [2759, 3], [2759, 6], [2759, 7], [2760, 1], [2760, 3], [2760, 6], [2760, 7], [2761, 1], [2761, 3], [2761, 6], [2761, 7], [3734, 5], [3735, 5], [3736, 5], [3737, 5], [3766, 5], [3767, 5], [3768, 5], [3769, 5], [3770, 5], [3771, 5], [3772, 5], [3773, 5], [3778, 5], [3779, 5], [3780, 5], [3781, 5], [3798, 5], [3799, 5], [3800, 5], [3801, 5], [3806, 5], [3807, 5], [3808, 5], [3809, 5], [3818, 5], [3819, 5], [3820, 5], [3821, 5], [3838, 5], [3839, 5], [3840, 5], [3841, 5], [3842, 5], [3843, 5], [3844, 5], [3845, 5], [3846, 5], [3847, 5], [3848, 5], [3849, 5], [4434, 5], [4434, 7], [4435, 5], [4435, 7], [4436, 5], [4436, 7], [4437, 5], [4437, 7], [4438, 0], [4438, 4], [4438, 5], [4438, 6], [4439, 0], [4439, 4], [4439, 5], [4439, 6], [4440, 0], [4440, 4], [4440, 5], [4440, 6], [4441, 0], [4441, 4], [4441, 5], [4441, 6], [361915, 2], [362048, 4], [362070, 1], [362070, 2], [362070, 3], [362070, 5], [362070, 7], [362071, 1], [362071, 3], [362071, 6], [362125, 2], [362259, 4], [362280, 0], [362280, 2], [362280, 3], [362280, 5], [362280, 7], [362281, 1], [362281, 2], [362281, 4], [362281, 6], [362281, 7], [363247, 1], [363330, 0], [363330, 1], [363330, 2], [363330, 5], [363330, 6], [363331, 2], [363331, 3], [363331, 4], [363331, 5], [363331, 6], [363331, 7], [363458, 1], [363540, 0], [363540, 4], [363540, 6], [363541, 1], [363541, 2], [363541, 5], [363541, 7], [363923, 1], [363960, 0], [363960, 1], [363960, 3], [363960, 4], [363960, 5], [363961, 5], [363961, 6], [365993, 2], [366031, 1], [366060, 0], [366060, 4], [366060, 6], [366060, 7], [366061, 0], [366061, 1], [366061, 4], [366061, 5], [366203, 2], [366270, 0], [366270, 4], [366270, 6], [366271, 4], [366271, 5]]} +{"tag": "iostd_C15_lvcmos33", "pin": "C15", "label": "lvcmos33", "cells": [[41, 0], [42, 0], [43, 0], [46, 0], [47, 0], [48, 0], [73, 0], [73, 1], [73, 6], [73, 7], [74, 3], [74, 4], [74, 5], [74, 7], [862, 4], [863, 4], [864, 4], [865, 4], [866, 4], [867, 4], [868, 4], [869, 4], [878, 4], [879, 4], [880, 4], [881, 4], [1014, 4], [1015, 4], [1016, 4], [1017, 4], [1018, 4], [1019, 4], [1020, 4], [1021, 4], [1030, 4], [1031, 4], [1032, 4], [1033, 4], [1074, 0], [1074, 1], [1074, 2], [1074, 6], [1074, 7], [1075, 0], [1075, 1], [1075, 2], [1075, 6], [1075, 7], [1076, 0], [1076, 1], [1076, 2], [1076, 6], [1076, 7], [1077, 0], [1077, 1], [1077, 2], [1077, 6], [1077, 7], [1078, 0], [1078, 1], [1078, 2], [1078, 3], [1078, 7], [1079, 0], [1079, 1], [1079, 2], [1079, 3], [1079, 7], [1080, 0], [1080, 1], [1080, 2], [1080, 3], [1080, 7], [1081, 0], [1081, 1], [1081, 2], [1081, 3], [1081, 7], [1178, 4], [1179, 4], [1180, 4], [1181, 4], [1182, 4], [1183, 4], [1184, 4], [1185, 4], [1194, 4], [1195, 4], [1196, 4], [1197, 4], [1914, 3], [1914, 6], [1915, 3], [1915, 6], [1916, 3], [1916, 6], [1917, 3], [1917, 6], [1918, 2], [1918, 6], [1918, 7], [1919, 2], [1919, 6], [1919, 7], [1920, 2], [1920, 6], [1920, 7], [1921, 2], [1921, 6], [1921, 7], [2190, 5], [2191, 5], [2192, 5], [2193, 5], [2222, 5], [2223, 5], [2224, 5], [2225, 5], [2226, 5], [2227, 5], [2228, 5], [2229, 5], [2234, 5], [2235, 5], [2236, 5], [2237, 5], [2258, 5], [2259, 5], [2260, 5], [2261, 5], [2262, 5], [2263, 5], [2264, 5], [2265, 5], [2266, 5], [2267, 5], [2268, 5], [2269, 5], [2270, 5], [2271, 5], [2272, 5], [2273, 5], [2274, 5], [2275, 5], [2276, 5], [2277, 5], [2298, 5], [2299, 5], [2300, 5], [2301, 5], [2302, 5], [2303, 5], [2304, 5], [2305, 5], [2754, 0], [2754, 1], [2754, 3], [2754, 5], [2754, 6], [2754, 7], [2755, 0], [2755, 1], [2755, 3], [2755, 5], [2755, 6], [2755, 7], [2756, 0], [2756, 1], [2756, 3], [2756, 5], [2756, 6], [2756, 7], [2757, 0], [2757, 1], [2757, 3], [2757, 5], [2757, 6], [2757, 7], [2758, 1], [2758, 2], [2758, 3], [2758, 4], [2758, 5], [2758, 6], [2758, 7], [2759, 1], [2759, 2], [2759, 3], [2759, 4], [2759, 5], [2759, 6], [2759, 7], [2760, 1], [2760, 2], [2760, 3], [2760, 4], [2760, 5], [2760, 6], [2760, 7], [2761, 1], [2761, 2], [2761, 3], [2761, 4], [2761, 5], [2761, 6], [2761, 7], [3734, 5], [3735, 5], [3736, 5], [3737, 5], [3766, 5], [3767, 5], [3768, 5], [3769, 5], [3770, 5], [3771, 5], [3772, 5], [3773, 5], [3778, 5], [3779, 5], [3780, 5], [3781, 5], [3798, 5], [3799, 5], [3800, 5], [3801, 5], [3806, 5], [3807, 5], [3808, 5], [3809, 5], [3818, 5], [3819, 5], [3820, 5], [3821, 5], [3838, 5], [3839, 5], [3840, 5], [3841, 5], [3842, 5], [3843, 5], [3844, 5], [3845, 5], [3846, 5], [3847, 5], [3848, 5], [3849, 5], [4434, 5], [4434, 7], [4435, 5], [4435, 7], [4436, 5], [4436, 7], [4437, 5], [4437, 7], [4438, 0], [4438, 4], [4438, 5], [4438, 6], [4439, 0], [4439, 4], [4439, 5], [4439, 6], [4440, 0], [4440, 4], [4440, 5], [4440, 6], [4441, 0], [4441, 4], [4441, 5], [4441, 6], [361915, 2], [362048, 4], [362070, 1], [362070, 2], [362070, 3], [362070, 5], [362070, 7], [362071, 1], [362071, 3], [362071, 6], [362125, 2], [362259, 4], [362280, 0], [362280, 2], [362280, 3], [362280, 5], [362280, 7], [362281, 1], [362281, 2], [362281, 4], [362281, 6], [362281, 7], [363247, 1], [363330, 0], [363330, 1], [363330, 2], [363330, 5], [363330, 6], [363331, 2], [363331, 3], [363331, 4], [363331, 5], [363331, 6], [363331, 7], [363458, 1], [363540, 0], [363540, 4], [363540, 6], [363541, 1], [363541, 2], [363541, 5], [363541, 7], [363923, 1], [363960, 0], [363960, 1], [363960, 3], [363960, 4], [363960, 5], [363961, 5], [363961, 6], [365993, 2], [366031, 1], [366060, 0], [366060, 4], [366060, 6], [366060, 7], [366061, 0], [366061, 1], [366061, 4], [366061, 5], [366203, 2], [366270, 0], [366270, 4], [366270, 6], [366271, 4], [366271, 5]]} +{"tag": "iostd_C15_io25", "pin": "C15", "label": "io25", "cells": [[41, 0], [44, 0], [48, 0], [73, 0], [73, 2], [73, 4], [73, 7], [74, 2], [74, 4], [74, 6], [862, 4], [863, 4], [864, 4], [865, 4], [866, 4], [867, 4], [868, 4], [869, 4], [878, 4], [879, 4], [880, 4], [881, 4], [1014, 4], [1015, 4], [1016, 4], [1017, 4], [1018, 4], [1019, 4], [1020, 4], [1021, 4], [1030, 4], [1031, 4], [1032, 4], [1033, 4], [1074, 0], [1074, 1], [1074, 2], [1074, 6], [1074, 7], [1075, 0], [1075, 1], [1075, 2], [1075, 6], [1075, 7], [1076, 0], [1076, 1], [1076, 2], [1076, 6], [1076, 7], [1077, 0], [1077, 1], [1077, 2], [1077, 6], [1077, 7], [1078, 0], [1078, 1], [1078, 2], [1078, 3], [1078, 7], [1079, 0], [1079, 1], [1079, 2], [1079, 3], [1079, 7], [1080, 0], [1080, 1], [1080, 2], [1080, 3], [1080, 7], [1081, 0], [1081, 1], [1081, 2], [1081, 3], [1081, 7], [1178, 4], [1179, 4], [1180, 4], [1181, 4], [1182, 4], [1183, 4], [1184, 4], [1185, 4], [1194, 4], [1195, 4], [1196, 4], [1197, 4], [1914, 3], [1914, 6], [1915, 3], [1915, 6], [1916, 3], [1916, 6], [1917, 3], [1917, 6], [1918, 2], [1918, 6], [1918, 7], [1919, 2], [1919, 6], [1919, 7], [1920, 2], [1920, 6], [1920, 7], [1921, 2], [1921, 6], [1921, 7], [2190, 5], [2191, 5], [2192, 5], [2193, 5], [2222, 5], [2223, 5], [2224, 5], [2225, 5], [2226, 5], [2227, 5], [2228, 5], [2229, 5], [2234, 5], [2235, 5], [2236, 5], [2237, 5], [2250, 5], [2251, 5], [2252, 5], [2253, 5], [2262, 5], [2263, 5], [2264, 5], [2265, 5], [2266, 5], [2267, 5], [2268, 5], [2269, 5], [2270, 5], [2271, 5], [2272, 5], [2273, 5], [2286, 5], [2287, 5], [2288, 5], [2289, 5], [2298, 5], [2299, 5], [2300, 5], [2301, 5], [2302, 5], [2303, 5], [2304, 5], [2305, 5], [2306, 5], [2307, 5], [2308, 5], [2309, 5], [2754, 2], [2754, 4], [2754, 6], [2754, 7], [2755, 2], [2755, 4], [2755, 6], [2755, 7], [2756, 2], [2756, 4], [2756, 6], [2756, 7], [2757, 2], [2757, 4], [2757, 6], [2757, 7], [2758, 0], [2758, 1], [2758, 2], [2758, 3], [2758, 5], [2758, 6], [2759, 0], [2759, 1], [2759, 2], [2759, 3], [2759, 5], [2759, 6], [2760, 0], [2760, 1], [2760, 2], [2760, 3], [2760, 5], [2760, 6], [2761, 0], [2761, 1], [2761, 2], [2761, 3], [2761, 5], [2761, 6], [3478, 5], [3479, 5], [3480, 5], [3481, 5], [3482, 5], [3483, 5], [3484, 5], [3485, 5], [3486, 5], [3487, 5], [3488, 5], [3489, 5], [3490, 5], [3491, 5], [3492, 5], [3493, 5], [3494, 5], [3495, 5], [3496, 5], [3497, 5], [3502, 5], [3503, 5], [3504, 5], [3505, 5], [3518, 5], [3519, 5], [3520, 5], [3521, 5], [3530, 5], [3531, 5], [3532, 5], [3533, 5], [3534, 5], [3535, 5], [3536, 5], [3537, 5], [3594, 3], [3595, 3], [3596, 3], [3597, 3], [3598, 2], [3598, 3], [3598, 5], [3598, 7], [3599, 2], [3599, 3], [3599, 5], [3599, 7], [3600, 2], [3600, 3], [3600, 5], [3600, 7], [3601, 2], [3601, 3], [3601, 5], [3601, 7], [3734, 5], [3735, 5], [3736, 5], [3737, 5], [3766, 5], [3767, 5], [3768, 5], [3769, 5], [3770, 5], [3771, 5], [3772, 5], [3773, 5], [3778, 5], [3779, 5], [3780, 5], [3781, 5], [3798, 5], [3799, 5], [3800, 5], [3801, 5], [3806, 5], [3807, 5], [3808, 5], [3809, 5], [3818, 5], [3819, 5], [3820, 5], [3821, 5], [3838, 5], [3839, 5], [3840, 5], [3841, 5], [3842, 5], [3843, 5], [3844, 5], [3845, 5], [3846, 5], [3847, 5], [3848, 5], [3849, 5], [4434, 5], [4434, 7], [4435, 5], [4435, 7], [4436, 5], [4436, 7], [4437, 5], [4437, 7], [4438, 0], [4438, 4], [4438, 5], [4438, 6], [4439, 0], [4439, 4], [4439, 5], [4439, 6], [4440, 0], [4440, 4], [4440, 5], [4440, 6], [4441, 0], [4441, 4], [4441, 5], [4441, 6], [361915, 2], [362048, 4], [362070, 1], [362070, 2], [362070, 3], [362070, 5], [362070, 7], [362071, 1], [362071, 3], [362071, 6], [362125, 2], [362259, 4], [362280, 0], [362280, 2], [362280, 3], [362280, 5], [362280, 7], [362281, 1], [362281, 2], [362281, 4], [362281, 6], [362281, 7], [363247, 1], [363330, 0], [363330, 1], [363330, 2], [363330, 5], [363330, 6], [363331, 2], [363331, 3], [363331, 4], [363331, 5], [363331, 6], [363331, 7], [363458, 1], [363540, 0], [363540, 4], [363540, 6], [363541, 1], [363541, 2], [363541, 5], [363541, 7], [363923, 1], [363960, 0], [363960, 1], [363960, 3], [363960, 4], [363960, 5], [363961, 5], [363961, 6], [365993, 2], [366031, 1], [366060, 0], [366060, 4], [366060, 6], [366060, 7], [366061, 0], [366061, 1], [366061, 4], [366061, 5], [366203, 2], [366270, 0], [366270, 4], [366270, 6], [366271, 4], [366271, 5]]} +{"tag": "iostd_C15_drive_min", "pin": "C15", "label": "drive_min", "cells": [[41, 0], [42, 0], [43, 0], [44, 0], [46, 0], [48, 0], [73, 0], [73, 1], [73, 3], [73, 4], [73, 5], [73, 6], [73, 7], [74, 1], [74, 2], [74, 6], [862, 4], [863, 4], [864, 4], [865, 4], [866, 4], [867, 4], [868, 4], [869, 4], [878, 4], [879, 4], [880, 4], [881, 4], [1014, 4], [1015, 4], [1016, 4], [1017, 4], [1018, 4], [1019, 4], [1020, 4], [1021, 4], [1030, 4], [1031, 4], [1032, 4], [1033, 4], [1074, 0], [1074, 1], [1074, 2], [1074, 6], [1074, 7], [1075, 0], [1075, 1], [1075, 2], [1075, 6], [1075, 7], [1076, 0], [1076, 1], [1076, 2], [1076, 6], [1076, 7], [1077, 0], [1077, 1], [1077, 2], [1077, 6], [1077, 7], [1078, 0], [1078, 1], [1078, 2], [1078, 3], [1078, 7], [1079, 0], [1079, 1], [1079, 2], [1079, 3], [1079, 7], [1080, 0], [1080, 1], [1080, 2], [1080, 3], [1080, 7], [1081, 0], [1081, 1], [1081, 2], [1081, 3], [1081, 7], [1178, 4], [1179, 4], [1180, 4], [1181, 4], [1182, 4], [1183, 4], [1184, 4], [1185, 4], [1194, 4], [1195, 4], [1196, 4], [1197, 4], [1914, 3], [1914, 6], [1915, 3], [1915, 6], [1916, 3], [1916, 6], [1917, 3], [1917, 6], [1918, 2], [1918, 6], [1918, 7], [1919, 2], [1919, 6], [1919, 7], [1920, 2], [1920, 6], [1920, 7], [1921, 2], [1921, 6], [1921, 7], [2190, 5], [2191, 5], [2192, 5], [2193, 5], [2222, 5], [2223, 5], [2224, 5], [2225, 5], [2226, 5], [2227, 5], [2228, 5], [2229, 5], [2234, 5], [2235, 5], [2236, 5], [2237, 5], [2258, 5], [2259, 5], [2260, 5], [2261, 5], [2270, 5], [2271, 5], [2272, 5], [2273, 5], [2274, 5], [2275, 5], [2276, 5], [2277, 5], [2298, 5], [2299, 5], [2300, 5], [2301, 5], [2754, 1], [2754, 2], [2754, 4], [2754, 7], [2755, 1], [2755, 2], [2755, 4], [2755, 7], [2756, 1], [2756, 2], [2756, 4], [2756, 7], [2757, 1], [2757, 2], [2757, 4], [2757, 7], [2758, 1], [2758, 3], [2758, 6], [2758, 7], [2759, 1], [2759, 3], [2759, 6], [2759, 7], [2760, 1], [2760, 3], [2760, 6], [2760, 7], [2761, 1], [2761, 3], [2761, 6], [2761, 7], [3734, 5], [3735, 5], [3736, 5], [3737, 5], [3766, 5], [3767, 5], [3768, 5], [3769, 5], [3770, 5], [3771, 5], [3772, 5], [3773, 5], [3778, 5], [3779, 5], [3780, 5], [3781, 5], [3798, 5], [3799, 5], [3800, 5], [3801, 5], [3806, 5], [3807, 5], [3808, 5], [3809, 5], [3818, 5], [3819, 5], [3820, 5], [3821, 5], [3838, 5], [3839, 5], [3840, 5], [3841, 5], [3842, 5], [3843, 5], [3844, 5], [3845, 5], [3846, 5], [3847, 5], [3848, 5], [3849, 5], [4434, 5], [4434, 7], [4435, 5], [4435, 7], [4436, 5], [4436, 7], [4437, 5], [4437, 7], [4438, 0], [4438, 4], [4438, 5], [4438, 6], [4439, 0], [4439, 4], [4439, 5], [4439, 6], [4440, 0], [4440, 4], [4440, 5], [4440, 6], [4441, 0], [4441, 4], [4441, 5], [4441, 6], [361915, 2], [362048, 4], [362070, 1], [362070, 2], [362070, 3], [362070, 5], [362070, 7], [362071, 1], [362071, 3], [362071, 6], [362125, 2], [362259, 4], [362280, 0], [362280, 2], [362280, 3], [362280, 5], [362280, 7], [362281, 1], [362281, 2], [362281, 4], [362281, 6], [362281, 7], [363247, 1], [363330, 0], [363330, 1], [363330, 2], [363330, 5], [363330, 6], [363331, 2], [363331, 3], [363331, 4], [363331, 5], [363331, 6], [363331, 7], [363458, 1], [363540, 0], [363540, 4], [363540, 6], [363541, 1], [363541, 2], [363541, 5], [363541, 7], [363923, 1], [363960, 0], [363960, 1], [363960, 3], [363960, 4], [363960, 5], [363961, 5], [363961, 6], [365993, 2], [366031, 1], [366060, 0], [366060, 4], [366060, 6], [366060, 7], [366061, 0], [366061, 1], [366061, 4], [366061, 5], [366203, 2], [366270, 0], [366270, 4], [366270, 6], [366271, 4], [366271, 5]]} +{"tag": "iostd_C15_drive_max", "pin": "C15", "label": "drive_max", "cells": [[41, 0], [45, 0], [46, 0], [48, 0], [73, 3], [73, 5], [73, 7], [74, 0], [74, 1], [74, 2], [74, 4], [74, 6], [862, 4], [863, 4], [864, 4], [865, 4], [866, 4], [867, 4], [868, 4], [869, 4], [878, 4], [879, 4], [880, 4], [881, 4], [1014, 4], [1015, 4], [1016, 4], [1017, 4], [1018, 4], [1019, 4], [1020, 4], [1021, 4], [1030, 4], [1031, 4], [1032, 4], [1033, 4], [1074, 0], [1074, 1], [1074, 2], [1074, 6], [1074, 7], [1075, 0], [1075, 1], [1075, 2], [1075, 6], [1075, 7], [1076, 0], [1076, 1], [1076, 2], [1076, 6], [1076, 7], [1077, 0], [1077, 1], [1077, 2], [1077, 6], [1077, 7], [1078, 0], [1078, 1], [1078, 2], [1078, 3], [1078, 7], [1079, 0], [1079, 1], [1079, 2], [1079, 3], [1079, 7], [1080, 0], [1080, 1], [1080, 2], [1080, 3], [1080, 7], [1081, 0], [1081, 1], [1081, 2], [1081, 3], [1081, 7], [1178, 4], [1179, 4], [1180, 4], [1181, 4], [1182, 4], [1183, 4], [1184, 4], [1185, 4], [1194, 4], [1195, 4], [1196, 4], [1197, 4], [1914, 3], [1914, 6], [1915, 3], [1915, 6], [1916, 3], [1916, 6], [1917, 3], [1917, 6], [1918, 2], [1918, 6], [1918, 7], [1919, 2], [1919, 6], [1919, 7], [1920, 2], [1920, 6], [1920, 7], [1921, 2], [1921, 6], [1921, 7], [2190, 5], [2191, 5], [2192, 5], [2193, 5], [2222, 5], [2223, 5], [2224, 5], [2225, 5], [2226, 5], [2227, 5], [2228, 5], [2229, 5], [2234, 5], [2235, 5], [2236, 5], [2237, 5], [2254, 5], [2255, 5], [2256, 5], [2257, 5], [2262, 5], [2263, 5], [2264, 5], [2265, 5], [2274, 5], [2275, 5], [2276, 5], [2277, 5], [2294, 5], [2295, 5], [2296, 5], [2297, 5], [2298, 5], [2299, 5], [2300, 5], [2301, 5], [2302, 5], [2303, 5], [2304, 5], [2305, 5], [2754, 0], [2754, 1], [2754, 3], [2754, 6], [2755, 0], [2755, 1], [2755, 3], [2755, 6], [2756, 0], [2756, 1], [2756, 3], [2756, 6], [2757, 0], [2757, 1], [2757, 3], [2757, 6], [2758, 1], [2758, 3], [2758, 6], [2758, 7], [2759, 1], [2759, 3], [2759, 6], [2759, 7], [2760, 1], [2760, 3], [2760, 6], [2760, 7], [2761, 1], [2761, 3], [2761, 6], [2761, 7], [3734, 5], [3735, 5], [3736, 5], [3737, 5], [3766, 5], [3767, 5], [3768, 5], [3769, 5], [3770, 5], [3771, 5], [3772, 5], [3773, 5], [3778, 5], [3779, 5], [3780, 5], [3781, 5], [3798, 5], [3799, 5], [3800, 5], [3801, 5], [3806, 5], [3807, 5], [3808, 5], [3809, 5], [3818, 5], [3819, 5], [3820, 5], [3821, 5], [3838, 5], [3839, 5], [3840, 5], [3841, 5], [3842, 5], [3843, 5], [3844, 5], [3845, 5], [3846, 5], [3847, 5], [3848, 5], [3849, 5], [4434, 5], [4434, 7], [4435, 5], [4435, 7], [4436, 5], [4436, 7], [4437, 5], [4437, 7], [4438, 0], [4438, 4], [4438, 5], [4438, 6], [4439, 0], [4439, 4], [4439, 5], [4439, 6], [4440, 0], [4440, 4], [4440, 5], [4440, 6], [4441, 0], [4441, 4], [4441, 5], [4441, 6], [361915, 2], [362048, 4], [362070, 1], [362070, 2], [362070, 3], [362070, 5], [362070, 7], [362071, 1], [362071, 3], [362071, 6], [362125, 2], [362259, 4], [362280, 0], [362280, 2], [362280, 3], [362280, 5], [362280, 7], [362281, 1], [362281, 2], [362281, 4], [362281, 6], [362281, 7], [363247, 1], [363330, 0], [363330, 1], [363330, 2], [363330, 5], [363330, 6], [363331, 2], [363331, 3], [363331, 4], [363331, 5], [363331, 6], [363331, 7], [363458, 1], [363540, 0], [363540, 4], [363540, 6], [363541, 1], [363541, 2], [363541, 5], [363541, 7], [363923, 1], [363960, 0], [363960, 1], [363960, 3], [363960, 4], [363960, 5], [363961, 5], [363961, 6], [365993, 2], [366031, 1], [366060, 0], [366060, 4], [366060, 6], [366060, 7], [366061, 0], [366061, 1], [366061, 4], [366061, 5], [366203, 2], [366270, 0], [366270, 4], [366270, 6], [366271, 4], [366271, 5]]} +{"tag": "iostd_C15_slew_fast", "pin": "C15", "label": "slew_fast", "cells": [[41, 0], [45, 0], [46, 0], [48, 0], [73, 3], [73, 5], [73, 7], [74, 0], [74, 1], [74, 2], [74, 4], [74, 6], [862, 4], [863, 4], [864, 4], [865, 4], [866, 4], [867, 4], [868, 4], [869, 4], [878, 4], [879, 4], [880, 4], [881, 4], [1014, 4], [1015, 4], [1016, 4], [1017, 4], [1018, 4], [1019, 4], [1020, 4], [1021, 4], [1030, 4], [1031, 4], [1032, 4], [1033, 4], [1074, 0], [1074, 1], [1074, 2], [1074, 6], [1074, 7], [1075, 0], [1075, 1], [1075, 2], [1075, 6], [1075, 7], [1076, 0], [1076, 1], [1076, 2], [1076, 6], [1076, 7], [1077, 0], [1077, 1], [1077, 2], [1077, 6], [1077, 7], [1078, 0], [1078, 1], [1078, 2], [1078, 3], [1078, 7], [1079, 0], [1079, 1], [1079, 2], [1079, 3], [1079, 7], [1080, 0], [1080, 1], [1080, 2], [1080, 3], [1080, 7], [1081, 0], [1081, 1], [1081, 2], [1081, 3], [1081, 7], [1178, 4], [1179, 4], [1180, 4], [1181, 4], [1182, 4], [1183, 4], [1184, 4], [1185, 4], [1194, 4], [1195, 4], [1196, 4], [1197, 4], [1914, 3], [1914, 6], [1915, 3], [1915, 6], [1916, 3], [1916, 6], [1917, 3], [1917, 6], [1918, 2], [1918, 6], [1918, 7], [1919, 2], [1919, 6], [1919, 7], [1920, 2], [1920, 6], [1920, 7], [1921, 2], [1921, 6], [1921, 7], [2190, 5], [2191, 5], [2192, 5], [2193, 5], [2222, 5], [2223, 5], [2224, 5], [2225, 5], [2226, 5], [2227, 5], [2228, 5], [2229, 5], [2234, 5], [2235, 5], [2236, 5], [2237, 5], [2254, 5], [2255, 5], [2256, 5], [2257, 5], [2262, 5], [2263, 5], [2264, 5], [2265, 5], [2274, 5], [2275, 5], [2276, 5], [2277, 5], [2294, 5], [2295, 5], [2296, 5], [2297, 5], [2298, 5], [2299, 5], [2300, 5], [2301, 5], [2302, 5], [2303, 5], [2304, 5], [2305, 5], [2754, 0], [2754, 1], [2754, 3], [2754, 6], [2755, 0], [2755, 1], [2755, 3], [2755, 6], [2756, 0], [2756, 1], [2756, 3], [2756, 6], [2757, 0], [2757, 1], [2757, 3], [2757, 6], [2758, 1], [2758, 3], [2758, 6], [2758, 7], [2759, 1], [2759, 3], [2759, 6], [2759, 7], [2760, 1], [2760, 3], [2760, 6], [2760, 7], [2761, 1], [2761, 3], [2761, 6], [2761, 7], [3734, 5], [3735, 5], [3736, 5], [3737, 5], [3766, 5], [3767, 5], [3768, 5], [3769, 5], [3770, 5], [3771, 5], [3772, 5], [3773, 5], [3778, 5], [3779, 5], [3780, 5], [3781, 5], [3798, 5], [3799, 5], [3800, 5], [3801, 5], [3806, 5], [3807, 5], [3808, 5], [3809, 5], [3818, 5], [3819, 5], [3820, 5], [3821, 5], [3838, 5], [3839, 5], [3840, 5], [3841, 5], [3842, 5], [3843, 5], [3844, 5], [3845, 5], [3846, 5], [3847, 5], [3848, 5], [3849, 5], [4434, 5], [4434, 7], [4435, 5], [4435, 7], [4436, 5], [4436, 7], [4437, 5], [4437, 7], [4438, 0], [4438, 4], [4438, 5], [4438, 6], [4439, 0], [4439, 4], [4439, 5], [4439, 6], [4440, 0], [4440, 4], [4440, 5], [4440, 6], [4441, 0], [4441, 4], [4441, 5], [4441, 6], [361915, 2], [362048, 4], [362070, 1], [362070, 2], [362070, 3], [362070, 5], [362070, 7], [362071, 1], [362071, 3], [362071, 6], [362125, 2], [362259, 4], [362280, 0], [362280, 2], [362280, 3], [362280, 5], [362280, 7], [362281, 1], [362281, 2], [362281, 4], [362281, 6], [362281, 7], [363247, 1], [363330, 0], [363330, 1], [363330, 2], [363330, 5], [363330, 6], [363331, 2], [363331, 3], [363331, 4], [363331, 5], [363331, 6], [363331, 7], [363458, 1], [363540, 0], [363540, 4], [363540, 6], [363541, 1], [363541, 2], [363541, 5], [363541, 7], [363923, 1], [363960, 0], [363960, 1], [363960, 3], [363960, 4], [363960, 5], [363961, 5], [363961, 6], [365993, 2], [366031, 1], [366060, 0], [366060, 4], [366060, 6], [366060, 7], [366061, 0], [366061, 1], [366061, 4], [366061, 5], [366203, 2], [366270, 0], [366270, 4], [366270, 6], [366271, 4], [366271, 5]]} +{"tag": "iostd_C15_pullup", "pin": "C15", "label": "pullup", "cells": [[41, 0], [48, 0], [73, 0], [73, 2], [73, 4], [73, 6], [74, 0], [74, 2], [74, 4], [74, 6], [862, 4], [863, 4], [864, 4], [865, 4], [866, 4], [867, 4], [868, 4], [869, 4], [878, 4], [879, 4], [880, 4], [881, 4], [1014, 4], [1015, 4], [1016, 4], [1017, 4], [1018, 4], [1019, 4], [1020, 4], [1021, 4], [1030, 4], [1031, 4], [1032, 4], [1033, 4], [1074, 0], [1074, 1], [1074, 2], [1074, 6], [1074, 7], [1075, 0], [1075, 1], [1075, 2], [1075, 6], [1075, 7], [1076, 0], [1076, 1], [1076, 2], [1076, 6], [1076, 7], [1077, 0], [1077, 1], [1077, 2], [1077, 6], [1077, 7], [1078, 0], [1078, 1], [1078, 2], [1078, 3], [1078, 7], [1079, 0], [1079, 1], [1079, 2], [1079, 3], [1079, 7], [1080, 0], [1080, 1], [1080, 2], [1080, 3], [1080, 7], [1081, 0], [1081, 1], [1081, 2], [1081, 3], [1081, 7], [1178, 4], [1179, 4], [1180, 4], [1181, 4], [1182, 4], [1183, 4], [1184, 4], [1185, 4], [1194, 4], [1195, 4], [1196, 4], [1197, 4], [1914, 3], [1914, 6], [1915, 3], [1915, 6], [1916, 3], [1916, 6], [1917, 3], [1917, 6], [1918, 2], [1918, 6], [1918, 7], [1919, 2], [1919, 6], [1919, 7], [1920, 2], [1920, 6], [1920, 7], [1921, 2], [1921, 6], [1921, 7], [2190, 5], [2191, 5], [2192, 5], [2193, 5], [2222, 5], [2223, 5], [2224, 5], [2225, 5], [2226, 5], [2227, 5], [2228, 5], [2229, 5], [2254, 5], [2255, 5], [2256, 5], [2257, 5], [2262, 5], [2263, 5], [2264, 5], [2265, 5], [2274, 5], [2275, 5], [2276, 5], [2277, 5], [2294, 5], [2295, 5], [2296, 5], [2297, 5], [2298, 5], [2299, 5], [2300, 5], [2301, 5], [2302, 5], [2303, 5], [2304, 5], [2305, 5], [2754, 6], [2755, 6], [2756, 6], [2757, 6], [2758, 1], [2758, 3], [2758, 5], [2758, 7], [2759, 1], [2759, 3], [2759, 5], [2759, 7], [2760, 1], [2760, 3], [2760, 5], [2760, 7], [2761, 1], [2761, 3], [2761, 5], [2761, 7], [3734, 5], [3735, 5], [3736, 5], [3737, 5], [3766, 5], [3767, 5], [3768, 5], [3769, 5], [3770, 5], [3771, 5], [3772, 5], [3773, 5], [3778, 5], [3779, 5], [3780, 5], [3781, 5], [3798, 5], [3799, 5], [3800, 5], [3801, 5], [3806, 5], [3807, 5], [3808, 5], [3809, 5], [3818, 5], [3819, 5], [3820, 5], [3821, 5], [3838, 5], [3839, 5], [3840, 5], [3841, 5], [3842, 5], [3843, 5], [3844, 5], [3845, 5], [3846, 5], [3847, 5], [3848, 5], [3849, 5], [4434, 5], [4434, 7], [4435, 5], [4435, 7], [4436, 5], [4436, 7], [4437, 5], [4437, 7], [4438, 0], [4438, 4], [4438, 5], [4438, 6], [4439, 0], [4439, 4], [4439, 5], [4439, 6], [4440, 0], [4440, 4], [4440, 5], [4440, 6], [4441, 0], [4441, 4], [4441, 5], [4441, 6], [361915, 2], [362048, 4], [362070, 1], [362070, 2], [362070, 3], [362070, 5], [362070, 7], [362071, 1], [362071, 3], [362071, 6], [362125, 2], [362259, 4], [362280, 0], [362280, 2], [362280, 3], [362280, 5], [362280, 7], [362281, 1], [362281, 2], [362281, 4], [362281, 6], [362281, 7], [363247, 1], [363330, 0], [363330, 1], [363330, 2], [363330, 5], [363330, 6], [363331, 2], [363331, 3], [363331, 4], [363331, 5], [363331, 6], [363331, 7], [363458, 1], [363540, 0], [363540, 4], [363540, 6], [363541, 1], [363541, 2], [363541, 5], [363541, 7], [363923, 1], [363960, 0], [363960, 1], [363960, 3], [363960, 4], [363960, 5], [363961, 5], [363961, 6], [365993, 2], [366031, 1], [366060, 0], [366060, 4], [366060, 6], [366060, 7], [366061, 0], [366061, 1], [366061, 4], [366061, 5], [366203, 2], [366270, 0], [366270, 4], [366270, 6], [366271, 4], [366271, 5]]} +{"tag": "iostd_C15_fast_oreg", "pin": "C15", "label": "fast_oreg", "cells": [[41, 0], [45, 0], [46, 0], [48, 0], [73, 3], [73, 5], [73, 7], [74, 0], [74, 1], [74, 2], [74, 4], [74, 6], [862, 4], [863, 4], [864, 4], [865, 4], [866, 4], [867, 4], [868, 4], [869, 4], [878, 4], [879, 4], [880, 4], [881, 4], [1014, 4], [1015, 4], [1016, 4], [1017, 4], [1018, 4], [1019, 4], [1020, 4], [1021, 4], [1030, 4], [1031, 4], [1032, 4], [1033, 4], [1074, 0], [1074, 1], [1074, 2], [1074, 6], [1074, 7], [1075, 0], [1075, 1], [1075, 2], [1075, 6], [1075, 7], [1076, 0], [1076, 1], [1076, 2], [1076, 6], [1076, 7], [1077, 0], [1077, 1], [1077, 2], [1077, 6], [1077, 7], [1078, 0], [1078, 1], [1078, 2], [1078, 3], [1078, 7], [1079, 0], [1079, 1], [1079, 2], [1079, 3], [1079, 7], [1080, 0], [1080, 1], [1080, 2], [1080, 3], [1080, 7], [1081, 0], [1081, 1], [1081, 2], [1081, 3], [1081, 7], [1178, 4], [1179, 4], [1180, 4], [1181, 4], [1182, 4], [1183, 4], [1184, 4], [1185, 4], [1194, 4], [1195, 4], [1196, 4], [1197, 4], [1914, 3], [1914, 6], [1915, 3], [1915, 6], [1916, 3], [1916, 6], [1917, 3], [1917, 6], [1918, 2], [1918, 6], [1918, 7], [1919, 2], [1919, 6], [1919, 7], [1920, 2], [1920, 6], [1920, 7], [1921, 2], [1921, 6], [1921, 7], [2190, 5], [2191, 5], [2192, 5], [2193, 5], [2222, 5], [2223, 5], [2224, 5], [2225, 5], [2226, 5], [2227, 5], [2228, 5], [2229, 5], [2234, 5], [2235, 5], [2236, 5], [2237, 5], [2254, 5], [2255, 5], [2256, 5], [2257, 5], [2262, 5], [2263, 5], [2264, 5], [2265, 5], [2274, 5], [2275, 5], [2276, 5], [2277, 5], [2294, 5], [2295, 5], [2296, 5], [2297, 5], [2298, 5], [2299, 5], [2300, 5], [2301, 5], [2302, 5], [2303, 5], [2304, 5], [2305, 5], [2754, 0], [2754, 1], [2754, 3], [2754, 6], [2755, 0], [2755, 1], [2755, 3], [2755, 6], [2756, 0], [2756, 1], [2756, 3], [2756, 6], [2757, 0], [2757, 1], [2757, 3], [2757, 6], [2758, 1], [2758, 3], [2758, 6], [2758, 7], [2759, 1], [2759, 3], [2759, 6], [2759, 7], [2760, 1], [2760, 3], [2760, 6], [2760, 7], [2761, 1], [2761, 3], [2761, 6], [2761, 7], [3734, 5], [3735, 5], [3736, 5], [3737, 5], [3766, 5], [3767, 5], [3768, 5], [3769, 5], [3770, 5], [3771, 5], [3772, 5], [3773, 5], [3778, 5], [3779, 5], [3780, 5], [3781, 5], [3798, 5], [3799, 5], [3800, 5], [3801, 5], [3806, 5], [3807, 5], [3808, 5], [3809, 5], [3818, 5], [3819, 5], [3820, 5], [3821, 5], [3838, 5], [3839, 5], [3840, 5], [3841, 5], [3842, 5], [3843, 5], [3844, 5], [3845, 5], [3846, 5], [3847, 5], [3848, 5], [3849, 5], [4434, 5], [4434, 7], [4435, 5], [4435, 7], [4436, 5], [4436, 7], [4437, 5], [4437, 7], [4438, 0], [4438, 4], [4438, 5], [4438, 6], [4439, 0], [4439, 4], [4439, 5], [4439, 6], [4440, 0], [4440, 4], [4440, 5], [4440, 6], [4441, 0], [4441, 4], [4441, 5], [4441, 6], [361915, 2], [362048, 4], [362070, 1], [362070, 2], [362070, 3], [362070, 5], [362070, 7], [362071, 1], [362071, 3], [362071, 6], [362125, 2], [362259, 4], [362280, 0], [362280, 2], [362280, 3], [362280, 5], [362280, 7], [362281, 1], [362281, 2], [362281, 4], [362281, 6], [362281, 7], [363247, 1], [363330, 0], [363330, 1], [363330, 2], [363330, 5], [363330, 6], [363331, 2], [363331, 3], [363331, 4], [363331, 5], [363331, 6], [363331, 7], [363458, 1], [363540, 0], [363540, 4], [363540, 6], [363541, 1], [363541, 2], [363541, 5], [363541, 7], [363923, 1], [363960, 0], [363960, 1], [363960, 3], [363960, 4], [363960, 5], [363961, 5], [363961, 6], [365993, 2], [366031, 1], [366060, 0], [366060, 4], [366060, 6], [366060, 7], [366061, 0], [366061, 1], [366061, 4], [366061, 5], [366203, 2], [366270, 0], [366270, 4], [366270, 6], [366271, 4], [366271, 5]]} +{"tag": "iostd_L6_ref", "pin": "L6", "label": "ref", "cells": [[41, 0], [44, 0], [45, 0], [49, 0], [73, 0], [73, 1], [73, 2], [73, 3], [73, 4], [73, 7], [74, 3], [74, 4], [74, 5], [74, 7], [862, 4], [863, 4], [864, 4], [865, 4], [866, 4], [867, 4], [868, 4], [869, 4], [878, 4], [879, 4], [880, 4], [881, 4], [1014, 4], [1015, 4], [1016, 4], [1017, 4], [1018, 4], [1019, 4], [1020, 4], [1021, 4], [1030, 4], [1031, 4], [1032, 4], [1033, 4], [1074, 0], [1074, 1], [1074, 2], [1074, 6], [1074, 7], [1075, 0], [1075, 1], [1075, 2], [1075, 6], [1075, 7], [1076, 0], [1076, 1], [1076, 2], [1076, 6], [1076, 7], [1077, 0], [1077, 1], [1077, 2], [1077, 6], [1077, 7], [1078, 0], [1078, 1], [1078, 2], [1078, 3], [1078, 7], [1079, 0], [1079, 1], [1079, 2], [1079, 3], [1079, 7], [1080, 0], [1080, 1], [1080, 2], [1080, 3], [1080, 7], [1081, 0], [1081, 1], [1081, 2], [1081, 3], [1081, 7], [1178, 4], [1179, 4], [1180, 4], [1181, 4], [1182, 4], [1183, 4], [1184, 4], [1185, 4], [1194, 4], [1195, 4], [1196, 4], [1197, 4], [1914, 3], [1914, 6], [1915, 3], [1915, 6], [1916, 3], [1916, 6], [1917, 3], [1917, 6], [1918, 2], [1918, 6], [1918, 7], [1919, 2], [1919, 6], [1919, 7], [1920, 2], [1920, 6], [1920, 7], [1921, 2], [1921, 6], [1921, 7], [3734, 5], [3735, 5], [3736, 5], [3737, 5], [3766, 5], [3767, 5], [3768, 5], [3769, 5], [3770, 5], [3771, 5], [3772, 5], [3773, 5], [3778, 5], [3779, 5], [3780, 5], [3781, 5], [3798, 5], [3799, 5], [3800, 5], [3801, 5], [3806, 5], [3807, 5], [3808, 5], [3809, 5], [3818, 5], [3819, 5], [3820, 5], [3821, 5], [3838, 5], [3839, 5], [3840, 5], [3841, 5], [3842, 5], [3843, 5], [3844, 5], [3845, 5], [3846, 5], [3847, 5], [3848, 5], [3849, 5], [4434, 5], [4434, 7], [4435, 5], [4435, 7], [4436, 5], [4436, 7], [4437, 5], [4437, 7], [4438, 0], [4438, 4], [4438, 5], [4438, 6], [4439, 0], [4439, 4], [4439, 5], [4439, 6], [4440, 0], [4440, 4], [4440, 5], [4440, 6], [4441, 0], [4441, 4], [4441, 5], [4441, 6], [4658, 1], [4659, 1], [4660, 1], [4661, 1], [4690, 1], [4691, 1], [4692, 1], [4693, 1], [4694, 1], [4695, 1], [4696, 1], [4697, 1], [4702, 1], [4703, 1], [4704, 1], [4705, 1], [4722, 1], [4723, 1], [4724, 1], [4725, 1], [4730, 1], [4731, 1], [4732, 1], [4733, 1], [4742, 1], [4743, 1], [4744, 1], [4745, 1], [4762, 1], [4763, 1], [4764, 1], [4765, 1], [4766, 1], [4767, 1], [4768, 1], [4769, 1], [4770, 1], [4771, 1], [4772, 1], [4773, 1], [5274, 0], [5274, 1], [5274, 2], [5274, 3], [5274, 5], [5275, 0], [5275, 1], [5275, 2], [5275, 3], [5275, 5], [5276, 0], [5276, 1], [5276, 2], [5276, 3], [5276, 5], [5277, 0], [5277, 1], [5277, 2], [5277, 3], [5277, 5], [5278, 0], [5278, 2], [5278, 6], [5279, 0], [5279, 2], [5279, 6], [5280, 0], [5280, 2], [5280, 6], [5281, 0], [5281, 2], [5281, 6], [7185, 4], [7380, 1], [7380, 2], [7380, 5], [7380, 6], [7380, 7], [7381, 2], [7381, 3], [7381, 5], [7381, 7], [8018, 4], [8220, 0], [8220, 1], [8220, 2], [8220, 3], [8220, 4], [8220, 7], [8221, 1], [8221, 5], [8221, 7], [8648, 4], [8850, 0], [8850, 1], [8850, 2], [8850, 3], [8850, 4], [8850, 7], [8851, 1], [8851, 5], [8851, 7], [11142, 5], [11160, 0], [11160, 1], [11160, 3], [11161, 1], [11161, 3], [11161, 6], [11161, 7], [11352, 5], [11370, 0], [11370, 1], [11370, 3], [11371, 1], [11371, 3], [11371, 6], [11371, 7], [12399, 6], [12420, 1], [12420, 2], [12420, 3], [12420, 6], [12421, 2], [12421, 6], [12421, 7], [13029, 6], [13050, 1], [13050, 2], [13050, 3], [13050, 6], [13051, 2], [13051, 6], [13051, 7], [218200, 6], [218209, 4], [218220, 1], [218220, 3], [218220, 4], [218220, 6], [218221, 0], [218221, 1], [218221, 2], [218221, 3], [218847, 6], [218848, 4], [218850, 2], [218850, 3], [218851, 2], [218851, 4], [362892, 4], [362910, 2], [362911, 0], [362911, 2], [362911, 6], [362911, 7], [365993, 2], [366060, 0], [366060, 4], [366060, 6], [366061, 4], [366061, 5], [366203, 2], [366270, 0], [366270, 4], [366270, 6], [366271, 4], [366271, 5]]} +{"tag": "iostd_L6_lvcmos33", "pin": "L6", "label": "lvcmos33", "cells": [[43, 0], [45, 0], [46, 0], [47, 0], [49, 0], [73, 0], [73, 3], [73, 4], [73, 6], [74, 3], [74, 4], [74, 5], [862, 4], [863, 4], [864, 4], [865, 4], [866, 4], [867, 4], [868, 4], [869, 4], [878, 4], [879, 4], [880, 4], [881, 4], [1014, 4], [1015, 4], [1016, 4], [1017, 4], [1018, 4], [1019, 4], [1020, 4], [1021, 4], [1030, 4], [1031, 4], [1032, 4], [1033, 4], [1074, 0], [1074, 1], [1074, 2], [1074, 6], [1074, 7], [1075, 0], [1075, 1], [1075, 2], [1075, 6], [1075, 7], [1076, 0], [1076, 1], [1076, 2], [1076, 6], [1076, 7], [1077, 0], [1077, 1], [1077, 2], [1077, 6], [1077, 7], [1078, 0], [1078, 1], [1078, 2], [1078, 3], [1078, 7], [1079, 0], [1079, 1], [1079, 2], [1079, 3], [1079, 7], [1080, 0], [1080, 1], [1080, 2], [1080, 3], [1080, 7], [1081, 0], [1081, 1], [1081, 2], [1081, 3], [1081, 7], [1178, 4], [1179, 4], [1180, 4], [1181, 4], [1182, 4], [1183, 4], [1184, 4], [1185, 4], [1194, 4], [1195, 4], [1196, 4], [1197, 4], [1914, 3], [1914, 6], [1915, 3], [1915, 6], [1916, 3], [1916, 6], [1917, 3], [1917, 6], [1918, 2], [1918, 6], [1918, 7], [1919, 2], [1919, 6], [1919, 7], [1920, 2], [1920, 6], [1920, 7], [1921, 2], [1921, 6], [1921, 7], [3734, 5], [3735, 5], [3736, 5], [3737, 5], [3766, 5], [3767, 5], [3768, 5], [3769, 5], [3770, 5], [3771, 5], [3772, 5], [3773, 5], [3778, 5], [3779, 5], [3780, 5], [3781, 5], [3798, 5], [3799, 5], [3800, 5], [3801, 5], [3806, 5], [3807, 5], [3808, 5], [3809, 5], [3818, 5], [3819, 5], [3820, 5], [3821, 5], [3838, 5], [3839, 5], [3840, 5], [3841, 5], [3842, 5], [3843, 5], [3844, 5], [3845, 5], [3846, 5], [3847, 5], [3848, 5], [3849, 5], [4434, 5], [4434, 7], [4435, 5], [4435, 7], [4436, 5], [4436, 7], [4437, 5], [4437, 7], [4438, 0], [4438, 4], [4438, 5], [4438, 6], [4439, 0], [4439, 4], [4439, 5], [4439, 6], [4440, 0], [4440, 4], [4440, 5], [4440, 6], [4441, 0], [4441, 4], [4441, 5], [4441, 6], [4658, 1], [4659, 1], [4660, 1], [4661, 1], [4690, 1], [4691, 1], [4692, 1], [4693, 1], [4694, 1], [4695, 1], [4696, 1], [4697, 1], [4702, 1], [4703, 1], [4704, 1], [4705, 1], [4726, 1], [4727, 1], [4728, 1], [4729, 1], [4730, 1], [4731, 1], [4732, 1], [4733, 1], [4734, 1], [4735, 1], [4736, 1], [4737, 1], [4738, 1], [4739, 1], [4740, 1], [4741, 1], [4742, 1], [4743, 1], [4744, 1], [4745, 1], [4766, 1], [4767, 1], [4768, 1], [4769, 1], [4770, 1], [4771, 1], [4772, 1], [4773, 1], [5274, 0], [5274, 2], [5274, 3], [5274, 6], [5274, 7], [5275, 0], [5275, 2], [5275, 3], [5275, 6], [5275, 7], [5276, 0], [5276, 2], [5276, 3], [5276, 6], [5276, 7], [5277, 0], [5277, 2], [5277, 3], [5277, 6], [5277, 7], [5278, 0], [5278, 1], [5278, 3], [5278, 7], [5279, 0], [5279, 1], [5279, 3], [5279, 7], [5280, 0], [5280, 1], [5280, 3], [5280, 7], [5281, 0], [5281, 1], [5281, 3], [5281, 7], [7185, 4], [7380, 1], [7380, 2], [7380, 5], [7380, 6], [7380, 7], [7381, 2], [7381, 3], [7381, 5], [7381, 7], [8018, 4], [8220, 0], [8220, 1], [8220, 2], [8220, 3], [8220, 4], [8220, 7], [8221, 1], [8221, 5], [8221, 7], [8648, 4], [8850, 0], [8850, 1], [8850, 2], [8850, 3], [8850, 4], [8850, 7], [8851, 1], [8851, 5], [8851, 7], [11142, 5], [11160, 0], [11160, 1], [11160, 3], [11161, 1], [11161, 3], [11161, 6], [11161, 7], [11352, 5], [11370, 0], [11370, 1], [11370, 3], [11371, 1], [11371, 3], [11371, 6], [11371, 7], [12399, 6], [12420, 1], [12420, 2], [12420, 3], [12420, 6], [12421, 2], [12421, 6], [12421, 7], [13029, 6], [13050, 1], [13050, 2], [13050, 3], [13050, 6], [13051, 2], [13051, 6], [13051, 7], [218200, 6], [218209, 4], [218220, 1], [218220, 3], [218220, 4], [218220, 6], [218221, 0], [218221, 1], [218221, 2], [218221, 3], [218847, 6], [218848, 4], [218850, 2], [218850, 3], [218851, 2], [218851, 4], [362892, 4], [362910, 2], [362911, 0], [362911, 2], [362911, 6], [362911, 7], [365993, 2], [366060, 0], [366060, 4], [366060, 6], [366061, 4], [366061, 5], [366203, 2], [366270, 0], [366270, 4], [366270, 6], [366271, 4], [366271, 5]]} +{"tag": "iostd_L6_io25", "pin": "L6", "label": "io25", "cells": [[41, 0], [43, 0], [45, 0], [46, 0], [47, 0], [48, 0], [49, 0], [73, 2], [73, 3], [74, 0], [74, 2], [74, 3], [74, 5], [74, 6], [862, 4], [863, 4], [864, 4], [865, 4], [866, 4], [867, 4], [868, 4], [869, 4], [878, 4], [879, 4], [880, 4], [881, 4], [1014, 4], [1015, 4], [1016, 4], [1017, 4], [1018, 4], [1019, 4], [1020, 4], [1021, 4], [1030, 4], [1031, 4], [1032, 4], [1033, 4], [1074, 0], [1074, 1], [1074, 2], [1074, 6], [1074, 7], [1075, 0], [1075, 1], [1075, 2], [1075, 6], [1075, 7], [1076, 0], [1076, 1], [1076, 2], [1076, 6], [1076, 7], [1077, 0], [1077, 1], [1077, 2], [1077, 6], [1077, 7], [1078, 0], [1078, 1], [1078, 2], [1078, 3], [1078, 7], [1079, 0], [1079, 1], [1079, 2], [1079, 3], [1079, 7], [1080, 0], [1080, 1], [1080, 2], [1080, 3], [1080, 7], [1081, 0], [1081, 1], [1081, 2], [1081, 3], [1081, 7], [1178, 4], [1179, 4], [1180, 4], [1181, 4], [1182, 4], [1183, 4], [1184, 4], [1185, 4], [1194, 4], [1195, 4], [1196, 4], [1197, 4], [1914, 3], [1914, 6], [1915, 3], [1915, 6], [1916, 3], [1916, 6], [1917, 3], [1917, 6], [1918, 2], [1918, 6], [1918, 7], [1919, 2], [1919, 6], [1919, 7], [1920, 2], [1920, 6], [1920, 7], [1921, 2], [1921, 6], [1921, 7], [3734, 5], [3735, 5], [3736, 5], [3737, 5], [3766, 5], [3767, 5], [3768, 5], [3769, 5], [3770, 5], [3771, 5], [3772, 5], [3773, 5], [3778, 5], [3779, 5], [3780, 5], [3781, 5], [3798, 5], [3799, 5], [3800, 5], [3801, 5], [3806, 5], [3807, 5], [3808, 5], [3809, 5], [3818, 5], [3819, 5], [3820, 5], [3821, 5], [3838, 5], [3839, 5], [3840, 5], [3841, 5], [3842, 5], [3843, 5], [3844, 5], [3845, 5], [3846, 5], [3847, 5], [3848, 5], [3849, 5], [4434, 5], [4434, 7], [4435, 5], [4435, 7], [4436, 5], [4436, 7], [4437, 5], [4437, 7], [4438, 0], [4438, 4], [4438, 5], [4438, 6], [4439, 0], [4439, 4], [4439, 5], [4439, 6], [4440, 0], [4440, 4], [4440, 5], [4440, 6], [4441, 0], [4441, 4], [4441, 5], [4441, 6], [4658, 1], [4659, 1], [4660, 1], [4661, 1], [4690, 1], [4691, 1], [4692, 1], [4693, 1], [4694, 1], [4695, 1], [4696, 1], [4697, 1], [4702, 1], [4703, 1], [4704, 1], [4705, 1], [4718, 1], [4719, 1], [4720, 1], [4721, 1], [4730, 1], [4731, 1], [4732, 1], [4733, 1], [4734, 1], [4735, 1], [4736, 1], [4737, 1], [4738, 1], [4739, 1], [4740, 1], [4741, 1], [4754, 1], [4755, 1], [4756, 1], [4757, 1], [4766, 1], [4767, 1], [4768, 1], [4769, 1], [4770, 1], [4771, 1], [4772, 1], [4773, 1], [4774, 1], [4775, 1], [4776, 1], [4777, 1], [5274, 1], [5274, 3], [5274, 4], [5275, 1], [5275, 3], [5275, 4], [5276, 1], [5276, 3], [5276, 4], [5277, 1], [5277, 3], [5277, 4], [5278, 2], [5278, 4], [5278, 5], [5279, 2], [5279, 4], [5279, 5], [5280, 2], [5280, 4], [5280, 5], [5281, 2], [5281, 4], [5281, 5], [7185, 4], [7380, 1], [7380, 2], [7380, 5], [7380, 6], [7380, 7], [7381, 2], [7381, 3], [7381, 5], [7381, 7], [8018, 4], [8220, 0], [8220, 1], [8220, 2], [8220, 3], [8220, 4], [8220, 7], [8221, 1], [8221, 5], [8221, 7], [8648, 4], [8850, 0], [8850, 1], [8850, 2], [8850, 3], [8850, 4], [8850, 7], [8851, 1], [8851, 5], [8851, 7], [11142, 5], [11160, 0], [11160, 1], [11160, 3], [11161, 1], [11161, 3], [11161, 6], [11161, 7], [11352, 5], [11370, 0], [11370, 1], [11370, 3], [11371, 1], [11371, 3], [11371, 6], [11371, 7], [12399, 6], [12420, 1], [12420, 2], [12420, 3], [12420, 6], [12421, 2], [12421, 6], [12421, 7], [13029, 6], [13050, 1], [13050, 2], [13050, 3], [13050, 6], [13051, 2], [13051, 6], [13051, 7], [218200, 6], [218209, 4], [218220, 1], [218220, 3], [218220, 4], [218220, 6], [218221, 0], [218221, 1], [218221, 2], [218221, 3], [218847, 6], [218848, 4], [218850, 2], [218850, 3], [218851, 2], [218851, 4], [362892, 4], [362910, 2], [362911, 0], [362911, 2], [362911, 6], [362911, 7], [365993, 2], [366060, 0], [366060, 4], [366060, 6], [366061, 4], [366061, 5], [366203, 2], [366270, 0], [366270, 4], [366270, 6], [366271, 4], [366271, 5]]} +{"tag": "iostd_L6_io18", "pin": "L6", "label": "io18", "cells": [[41, 0], [44, 0], [46, 0], [47, 0], [48, 0], [49, 0], [73, 1], [73, 2], [73, 3], [73, 6], [73, 7], [74, 2], [74, 3], [74, 4], [74, 5], [74, 7], [862, 4], [863, 4], [864, 4], [865, 4], [866, 4], [867, 4], [868, 4], [869, 4], [878, 4], [879, 4], [880, 4], [881, 4], [1014, 4], [1015, 4], [1016, 4], [1017, 4], [1018, 4], [1019, 4], [1020, 4], [1021, 4], [1030, 4], [1031, 4], [1032, 4], [1033, 4], [1074, 0], [1074, 1], [1074, 2], [1074, 6], [1074, 7], [1075, 0], [1075, 1], [1075, 2], [1075, 6], [1075, 7], [1076, 0], [1076, 1], [1076, 2], [1076, 6], [1076, 7], [1077, 0], [1077, 1], [1077, 2], [1077, 6], [1077, 7], [1078, 0], [1078, 1], [1078, 2], [1078, 3], [1078, 7], [1079, 0], [1079, 1], [1079, 2], [1079, 3], [1079, 7], [1080, 0], [1080, 1], [1080, 2], [1080, 3], [1080, 7], [1081, 0], [1081, 1], [1081, 2], [1081, 3], [1081, 7], [1178, 4], [1179, 4], [1180, 4], [1181, 4], [1182, 4], [1183, 4], [1184, 4], [1185, 4], [1194, 4], [1195, 4], [1196, 4], [1197, 4], [1914, 3], [1914, 6], [1915, 3], [1915, 6], [1916, 3], [1916, 6], [1917, 3], [1917, 6], [1918, 2], [1918, 6], [1918, 7], [1919, 2], [1919, 6], [1919, 7], [1920, 2], [1920, 6], [1920, 7], [1921, 2], [1921, 6], [1921, 7], [3734, 5], [3735, 5], [3736, 5], [3737, 5], [3766, 5], [3767, 5], [3768, 5], [3769, 5], [3770, 5], [3771, 5], [3772, 5], [3773, 5], [3778, 5], [3779, 5], [3780, 5], [3781, 5], [3798, 5], [3799, 5], [3800, 5], [3801, 5], [3806, 5], [3807, 5], [3808, 5], [3809, 5], [3818, 5], [3819, 5], [3820, 5], [3821, 5], [3838, 5], [3839, 5], [3840, 5], [3841, 5], [3842, 5], [3843, 5], [3844, 5], [3845, 5], [3846, 5], [3847, 5], [3848, 5], [3849, 5], [4434, 5], [4434, 7], [4435, 5], [4435, 7], [4436, 5], [4436, 7], [4437, 5], [4437, 7], [4438, 0], [4438, 4], [4438, 5], [4438, 6], [4439, 0], [4439, 4], [4439, 5], [4439, 6], [4440, 0], [4440, 4], [4440, 5], [4440, 6], [4441, 0], [4441, 4], [4441, 5], [4441, 6], [4658, 1], [4659, 1], [4660, 1], [4661, 1], [4694, 1], [4695, 1], [4696, 1], [4697, 1], [4702, 1], [4703, 1], [4704, 1], [4705, 1], [4718, 1], [4719, 1], [4720, 1], [4721, 1], [4722, 1], [4723, 1], [4724, 1], [4725, 1], [4730, 1], [4731, 1], [4732, 1], [4733, 1], [4734, 1], [4735, 1], [4736, 1], [4737, 1], [4738, 1], [4739, 1], [4740, 1], [4741, 1], [4754, 1], [4755, 1], [4756, 1], [4757, 1], [4758, 1], [4759, 1], [4760, 1], [4761, 1], [4770, 1], [4771, 1], [4772, 1], [4773, 1], [4774, 1], [4775, 1], [4776, 1], [4777, 1], [5274, 0], [5274, 1], [5274, 5], [5274, 7], [5275, 0], [5275, 1], [5275, 5], [5275, 7], [5276, 0], [5276, 1], [5276, 5], [5276, 7], [5277, 0], [5277, 1], [5277, 5], [5277, 7], [5278, 0], [5278, 1], [5278, 2], [5278, 4], [5278, 6], [5278, 7], [5279, 0], [5279, 1], [5279, 2], [5279, 4], [5279, 6], [5279, 7], [5280, 0], [5280, 1], [5280, 2], [5280, 4], [5280, 6], [5280, 7], [5281, 0], [5281, 1], [5281, 2], [5281, 4], [5281, 6], [5281, 7], [7185, 4], [7380, 1], [7380, 2], [7380, 5], [7380, 6], [7380, 7], [7381, 2], [7381, 3], [7381, 5], [7381, 7], [8018, 4], [8220, 0], [8220, 1], [8220, 2], [8220, 3], [8220, 4], [8220, 7], [8221, 1], [8221, 5], [8221, 7], [8648, 4], [8850, 0], [8850, 1], [8850, 2], [8850, 3], [8850, 4], [8850, 7], [8851, 1], [8851, 5], [8851, 7], [11142, 5], [11160, 0], [11160, 1], [11160, 3], [11161, 1], [11161, 3], [11161, 6], [11161, 7], [11352, 5], [11370, 0], [11370, 1], [11370, 3], [11371, 1], [11371, 3], [11371, 6], [11371, 7], [12399, 6], [12420, 1], [12420, 2], [12420, 3], [12420, 6], [12421, 2], [12421, 6], [12421, 7], [13029, 6], [13050, 1], [13050, 2], [13050, 3], [13050, 6], [13051, 2], [13051, 6], [13051, 7], [218200, 6], [218209, 4], [218220, 1], [218220, 3], [218220, 4], [218220, 6], [218221, 0], [218221, 1], [218221, 2], [218221, 3], [218847, 6], [218848, 4], [218850, 2], [218850, 3], [218851, 2], [218851, 4], [362892, 4], [362910, 2], [362911, 0], [362911, 2], [362911, 6], [362911, 7], [365993, 2], [366060, 0], [366060, 4], [366060, 6], [366061, 4], [366061, 5], [366203, 2], [366270, 0], [366270, 4], [366270, 6], [366271, 4], [366271, 5]]} +{"tag": "iostd_L6_drive_min", "pin": "L6", "label": "drive_min", "cells": [[45, 0], [49, 0], [73, 1], [73, 2], [73, 3], [73, 4], [73, 6], [74, 0], [74, 2], [74, 4], [862, 4], [863, 4], [864, 4], [865, 4], [866, 4], [867, 4], [868, 4], [869, 4], [878, 4], [879, 4], [880, 4], [881, 4], [1014, 4], [1015, 4], [1016, 4], [1017, 4], [1018, 4], [1019, 4], [1020, 4], [1021, 4], [1030, 4], [1031, 4], [1032, 4], [1033, 4], [1074, 0], [1074, 1], [1074, 2], [1074, 6], [1074, 7], [1075, 0], [1075, 1], [1075, 2], [1075, 6], [1075, 7], [1076, 0], [1076, 1], [1076, 2], [1076, 6], [1076, 7], [1077, 0], [1077, 1], [1077, 2], [1077, 6], [1077, 7], [1078, 0], [1078, 1], [1078, 2], [1078, 3], [1078, 7], [1079, 0], [1079, 1], [1079, 2], [1079, 3], [1079, 7], [1080, 0], [1080, 1], [1080, 2], [1080, 3], [1080, 7], [1081, 0], [1081, 1], [1081, 2], [1081, 3], [1081, 7], [1178, 4], [1179, 4], [1180, 4], [1181, 4], [1182, 4], [1183, 4], [1184, 4], [1185, 4], [1194, 4], [1195, 4], [1196, 4], [1197, 4], [1914, 3], [1914, 6], [1915, 3], [1915, 6], [1916, 3], [1916, 6], [1917, 3], [1917, 6], [1918, 2], [1918, 6], [1918, 7], [1919, 2], [1919, 6], [1919, 7], [1920, 2], [1920, 6], [1920, 7], [1921, 2], [1921, 6], [1921, 7], [3734, 5], [3735, 5], [3736, 5], [3737, 5], [3766, 5], [3767, 5], [3768, 5], [3769, 5], [3770, 5], [3771, 5], [3772, 5], [3773, 5], [3778, 5], [3779, 5], [3780, 5], [3781, 5], [3798, 5], [3799, 5], [3800, 5], [3801, 5], [3806, 5], [3807, 5], [3808, 5], [3809, 5], [3818, 5], [3819, 5], [3820, 5], [3821, 5], [3838, 5], [3839, 5], [3840, 5], [3841, 5], [3842, 5], [3843, 5], [3844, 5], [3845, 5], [3846, 5], [3847, 5], [3848, 5], [3849, 5], [4434, 5], [4434, 7], [4435, 5], [4435, 7], [4436, 5], [4436, 7], [4437, 5], [4437, 7], [4438, 0], [4438, 4], [4438, 5], [4438, 6], [4439, 0], [4439, 4], [4439, 5], [4439, 6], [4440, 0], [4440, 4], [4440, 5], [4440, 6], [4441, 0], [4441, 4], [4441, 5], [4441, 6], [4658, 1], [4659, 1], [4660, 1], [4661, 1], [4690, 1], [4691, 1], [4692, 1], [4693, 1], [4694, 1], [4695, 1], [4696, 1], [4697, 1], [4702, 1], [4703, 1], [4704, 1], [4705, 1], [4726, 1], [4727, 1], [4728, 1], [4729, 1], [4738, 1], [4739, 1], [4740, 1], [4741, 1], [4742, 1], [4743, 1], [4744, 1], [4745, 1], [4766, 1], [4767, 1], [4768, 1], [4769, 1], [5274, 0], [5274, 2], [5274, 3], [5274, 5], [5274, 6], [5274, 7], [5275, 0], [5275, 2], [5275, 3], [5275, 5], [5275, 6], [5275, 7], [5276, 0], [5276, 2], [5276, 3], [5276, 5], [5276, 6], [5276, 7], [5277, 0], [5277, 2], [5277, 3], [5277, 5], [5277, 6], [5277, 7], [5278, 3], [5278, 4], [5279, 3], [5279, 4], [5280, 3], [5280, 4], [5281, 3], [5281, 4], [7185, 4], [7380, 1], [7380, 2], [7380, 5], [7380, 6], [7380, 7], [7381, 2], [7381, 3], [7381, 5], [7381, 7], [8018, 4], [8220, 0], [8220, 1], [8220, 2], [8220, 3], [8220, 4], [8220, 7], [8221, 1], [8221, 5], [8221, 7], [8648, 4], [8850, 0], [8850, 1], [8850, 2], [8850, 3], [8850, 4], [8850, 7], [8851, 1], [8851, 5], [8851, 7], [11142, 5], [11160, 0], [11160, 1], [11160, 3], [11161, 1], [11161, 3], [11161, 6], [11161, 7], [11352, 5], [11370, 0], [11370, 1], [11370, 3], [11371, 1], [11371, 3], [11371, 6], [11371, 7], [12399, 6], [12420, 1], [12420, 2], [12420, 3], [12420, 6], [12421, 2], [12421, 6], [12421, 7], [13029, 6], [13050, 1], [13050, 2], [13050, 3], [13050, 6], [13051, 2], [13051, 6], [13051, 7], [218200, 6], [218209, 4], [218220, 1], [218220, 3], [218220, 4], [218220, 6], [218221, 0], [218221, 1], [218221, 2], [218221, 3], [218847, 6], [218848, 4], [218850, 2], [218850, 3], [218851, 2], [218851, 4], [362892, 4], [362910, 2], [362911, 0], [362911, 2], [362911, 6], [362911, 7], [365993, 2], [366060, 0], [366060, 4], [366060, 6], [366061, 4], [366061, 5], [366203, 2], [366270, 0], [366270, 4], [366270, 6], [366271, 4], [366271, 5]]} +{"tag": "iostd_L6_drive_max", "pin": "L6", "label": "drive_max", "cells": [[41, 0], [44, 0], [45, 0], [49, 0], [73, 0], [73, 1], [73, 2], [73, 3], [73, 4], [73, 7], [74, 3], [74, 4], [74, 5], [74, 7], [862, 4], [863, 4], [864, 4], [865, 4], [866, 4], [867, 4], [868, 4], [869, 4], [878, 4], [879, 4], [880, 4], [881, 4], [1014, 4], [1015, 4], [1016, 4], [1017, 4], [1018, 4], [1019, 4], [1020, 4], [1021, 4], [1030, 4], [1031, 4], [1032, 4], [1033, 4], [1074, 0], [1074, 1], [1074, 2], [1074, 6], [1074, 7], [1075, 0], [1075, 1], [1075, 2], [1075, 6], [1075, 7], [1076, 0], [1076, 1], [1076, 2], [1076, 6], [1076, 7], [1077, 0], [1077, 1], [1077, 2], [1077, 6], [1077, 7], [1078, 0], [1078, 1], [1078, 2], [1078, 3], [1078, 7], [1079, 0], [1079, 1], [1079, 2], [1079, 3], [1079, 7], [1080, 0], [1080, 1], [1080, 2], [1080, 3], [1080, 7], [1081, 0], [1081, 1], [1081, 2], [1081, 3], [1081, 7], [1178, 4], [1179, 4], [1180, 4], [1181, 4], [1182, 4], [1183, 4], [1184, 4], [1185, 4], [1194, 4], [1195, 4], [1196, 4], [1197, 4], [1914, 3], [1914, 6], [1915, 3], [1915, 6], [1916, 3], [1916, 6], [1917, 3], [1917, 6], [1918, 2], [1918, 6], [1918, 7], [1919, 2], [1919, 6], [1919, 7], [1920, 2], [1920, 6], [1920, 7], [1921, 2], [1921, 6], [1921, 7], [3734, 5], [3735, 5], [3736, 5], [3737, 5], [3766, 5], [3767, 5], [3768, 5], [3769, 5], [3770, 5], [3771, 5], [3772, 5], [3773, 5], [3778, 5], [3779, 5], [3780, 5], [3781, 5], [3798, 5], [3799, 5], [3800, 5], [3801, 5], [3806, 5], [3807, 5], [3808, 5], [3809, 5], [3818, 5], [3819, 5], [3820, 5], [3821, 5], [3838, 5], [3839, 5], [3840, 5], [3841, 5], [3842, 5], [3843, 5], [3844, 5], [3845, 5], [3846, 5], [3847, 5], [3848, 5], [3849, 5], [4434, 5], [4434, 7], [4435, 5], [4435, 7], [4436, 5], [4436, 7], [4437, 5], [4437, 7], [4438, 0], [4438, 4], [4438, 5], [4438, 6], [4439, 0], [4439, 4], [4439, 5], [4439, 6], [4440, 0], [4440, 4], [4440, 5], [4440, 6], [4441, 0], [4441, 4], [4441, 5], [4441, 6], [4658, 1], [4659, 1], [4660, 1], [4661, 1], [4690, 1], [4691, 1], [4692, 1], [4693, 1], [4694, 1], [4695, 1], [4696, 1], [4697, 1], [4702, 1], [4703, 1], [4704, 1], [4705, 1], [4722, 1], [4723, 1], [4724, 1], [4725, 1], [4730, 1], [4731, 1], [4732, 1], [4733, 1], [4742, 1], [4743, 1], [4744, 1], [4745, 1], [4762, 1], [4763, 1], [4764, 1], [4765, 1], [4766, 1], [4767, 1], [4768, 1], [4769, 1], [4770, 1], [4771, 1], [4772, 1], [4773, 1], [5274, 0], [5274, 1], [5274, 2], [5274, 3], [5274, 5], [5275, 0], [5275, 1], [5275, 2], [5275, 3], [5275, 5], [5276, 0], [5276, 1], [5276, 2], [5276, 3], [5276, 5], [5277, 0], [5277, 1], [5277, 2], [5277, 3], [5277, 5], [5278, 0], [5278, 2], [5278, 6], [5279, 0], [5279, 2], [5279, 6], [5280, 0], [5280, 2], [5280, 6], [5281, 0], [5281, 2], [5281, 6], [7185, 4], [7380, 1], [7380, 2], [7380, 5], [7380, 6], [7380, 7], [7381, 2], [7381, 3], [7381, 5], [7381, 7], [8018, 4], [8220, 0], [8220, 1], [8220, 2], [8220, 3], [8220, 4], [8220, 7], [8221, 1], [8221, 5], [8221, 7], [8648, 4], [8850, 0], [8850, 1], [8850, 2], [8850, 3], [8850, 4], [8850, 7], [8851, 1], [8851, 5], [8851, 7], [11142, 5], [11160, 0], [11160, 1], [11160, 3], [11161, 1], [11161, 3], [11161, 6], [11161, 7], [11352, 5], [11370, 0], [11370, 1], [11370, 3], [11371, 1], [11371, 3], [11371, 6], [11371, 7], [12399, 6], [12420, 1], [12420, 2], [12420, 3], [12420, 6], [12421, 2], [12421, 6], [12421, 7], [13029, 6], [13050, 1], [13050, 2], [13050, 3], [13050, 6], [13051, 2], [13051, 6], [13051, 7], [218200, 6], [218209, 4], [218220, 1], [218220, 3], [218220, 4], [218220, 6], [218221, 0], [218221, 1], [218221, 2], [218221, 3], [218847, 6], [218848, 4], [218850, 2], [218850, 3], [218851, 2], [218851, 4], [362892, 4], [362910, 2], [362911, 0], [362911, 2], [362911, 6], [362911, 7], [365993, 2], [366060, 0], [366060, 4], [366060, 6], [366061, 4], [366061, 5], [366203, 2], [366270, 0], [366270, 4], [366270, 6], [366271, 4], [366271, 5]]} +{"tag": "iostd_L6_slew_fast", "pin": "L6", "label": "slew_fast", "cells": [[41, 0], [44, 0], [45, 0], [49, 0], [73, 0], [73, 1], [73, 2], [73, 3], [73, 4], [73, 7], [74, 3], [74, 4], [74, 5], [74, 7], [862, 4], [863, 4], [864, 4], [865, 4], [866, 4], [867, 4], [868, 4], [869, 4], [878, 4], [879, 4], [880, 4], [881, 4], [1014, 4], [1015, 4], [1016, 4], [1017, 4], [1018, 4], [1019, 4], [1020, 4], [1021, 4], [1030, 4], [1031, 4], [1032, 4], [1033, 4], [1074, 0], [1074, 1], [1074, 2], [1074, 6], [1074, 7], [1075, 0], [1075, 1], [1075, 2], [1075, 6], [1075, 7], [1076, 0], [1076, 1], [1076, 2], [1076, 6], [1076, 7], [1077, 0], [1077, 1], [1077, 2], [1077, 6], [1077, 7], [1078, 0], [1078, 1], [1078, 2], [1078, 3], [1078, 7], [1079, 0], [1079, 1], [1079, 2], [1079, 3], [1079, 7], [1080, 0], [1080, 1], [1080, 2], [1080, 3], [1080, 7], [1081, 0], [1081, 1], [1081, 2], [1081, 3], [1081, 7], [1178, 4], [1179, 4], [1180, 4], [1181, 4], [1182, 4], [1183, 4], [1184, 4], [1185, 4], [1194, 4], [1195, 4], [1196, 4], [1197, 4], [1914, 3], [1914, 6], [1915, 3], [1915, 6], [1916, 3], [1916, 6], [1917, 3], [1917, 6], [1918, 2], [1918, 6], [1918, 7], [1919, 2], [1919, 6], [1919, 7], [1920, 2], [1920, 6], [1920, 7], [1921, 2], [1921, 6], [1921, 7], [3734, 5], [3735, 5], [3736, 5], [3737, 5], [3766, 5], [3767, 5], [3768, 5], [3769, 5], [3770, 5], [3771, 5], [3772, 5], [3773, 5], [3778, 5], [3779, 5], [3780, 5], [3781, 5], [3798, 5], [3799, 5], [3800, 5], [3801, 5], [3806, 5], [3807, 5], [3808, 5], [3809, 5], [3818, 5], [3819, 5], [3820, 5], [3821, 5], [3838, 5], [3839, 5], [3840, 5], [3841, 5], [3842, 5], [3843, 5], [3844, 5], [3845, 5], [3846, 5], [3847, 5], [3848, 5], [3849, 5], [4434, 5], [4434, 7], [4435, 5], [4435, 7], [4436, 5], [4436, 7], [4437, 5], [4437, 7], [4438, 0], [4438, 4], [4438, 5], [4438, 6], [4439, 0], [4439, 4], [4439, 5], [4439, 6], [4440, 0], [4440, 4], [4440, 5], [4440, 6], [4441, 0], [4441, 4], [4441, 5], [4441, 6], [4658, 1], [4659, 1], [4660, 1], [4661, 1], [4690, 1], [4691, 1], [4692, 1], [4693, 1], [4694, 1], [4695, 1], [4696, 1], [4697, 1], [4702, 1], [4703, 1], [4704, 1], [4705, 1], [4722, 1], [4723, 1], [4724, 1], [4725, 1], [4730, 1], [4731, 1], [4732, 1], [4733, 1], [4742, 1], [4743, 1], [4744, 1], [4745, 1], [4762, 1], [4763, 1], [4764, 1], [4765, 1], [4766, 1], [4767, 1], [4768, 1], [4769, 1], [4770, 1], [4771, 1], [4772, 1], [4773, 1], [5274, 0], [5274, 1], [5274, 2], [5274, 3], [5274, 5], [5275, 0], [5275, 1], [5275, 2], [5275, 3], [5275, 5], [5276, 0], [5276, 1], [5276, 2], [5276, 3], [5276, 5], [5277, 0], [5277, 1], [5277, 2], [5277, 3], [5277, 5], [5278, 0], [5278, 2], [5278, 6], [5279, 0], [5279, 2], [5279, 6], [5280, 0], [5280, 2], [5280, 6], [5281, 0], [5281, 2], [5281, 6], [7185, 4], [7380, 1], [7380, 2], [7380, 5], [7380, 6], [7380, 7], [7381, 2], [7381, 3], [7381, 5], [7381, 7], [8018, 4], [8220, 0], [8220, 1], [8220, 2], [8220, 3], [8220, 4], [8220, 7], [8221, 1], [8221, 5], [8221, 7], [8648, 4], [8850, 0], [8850, 1], [8850, 2], [8850, 3], [8850, 4], [8850, 7], [8851, 1], [8851, 5], [8851, 7], [11142, 5], [11160, 0], [11160, 1], [11160, 3], [11161, 1], [11161, 3], [11161, 6], [11161, 7], [11352, 5], [11370, 0], [11370, 1], [11370, 3], [11371, 1], [11371, 3], [11371, 6], [11371, 7], [12399, 6], [12420, 1], [12420, 2], [12420, 3], [12420, 6], [12421, 2], [12421, 6], [12421, 7], [13029, 6], [13050, 1], [13050, 2], [13050, 3], [13050, 6], [13051, 2], [13051, 6], [13051, 7], [218200, 6], [218209, 4], [218220, 1], [218220, 3], [218220, 4], [218220, 6], [218221, 0], [218221, 1], [218221, 2], [218221, 3], [218847, 6], [218848, 4], [218850, 2], [218850, 3], [218851, 2], [218851, 4], [362892, 4], [362910, 2], [362911, 0], [362911, 2], [362911, 6], [362911, 7], [365993, 2], [366060, 0], [366060, 4], [366060, 6], [366061, 4], [366061, 5], [366203, 2], [366270, 0], [366270, 4], [366270, 6], [366271, 4], [366271, 5]]} +{"tag": "iostd_L6_pullup", "pin": "L6", "label": "pullup", "cells": [[41, 0], [46, 0], [47, 0], [49, 0], [73, 1], [73, 3], [73, 4], [73, 6], [74, 2], [74, 6], [862, 4], [863, 4], [864, 4], [865, 4], [866, 4], [867, 4], [868, 4], [869, 4], [878, 4], [879, 4], [880, 4], [881, 4], [1014, 4], [1015, 4], [1016, 4], [1017, 4], [1018, 4], [1019, 4], [1020, 4], [1021, 4], [1030, 4], [1031, 4], [1032, 4], [1033, 4], [1074, 0], [1074, 1], [1074, 2], [1074, 6], [1074, 7], [1075, 0], [1075, 1], [1075, 2], [1075, 6], [1075, 7], [1076, 0], [1076, 1], [1076, 2], [1076, 6], [1076, 7], [1077, 0], [1077, 1], [1077, 2], [1077, 6], [1077, 7], [1078, 0], [1078, 1], [1078, 2], [1078, 3], [1078, 7], [1079, 0], [1079, 1], [1079, 2], [1079, 3], [1079, 7], [1080, 0], [1080, 1], [1080, 2], [1080, 3], [1080, 7], [1081, 0], [1081, 1], [1081, 2], [1081, 3], [1081, 7], [1178, 4], [1179, 4], [1180, 4], [1181, 4], [1182, 4], [1183, 4], [1184, 4], [1185, 4], [1194, 4], [1195, 4], [1196, 4], [1197, 4], [1914, 3], [1914, 6], [1915, 3], [1915, 6], [1916, 3], [1916, 6], [1917, 3], [1917, 6], [1918, 2], [1918, 6], [1918, 7], [1919, 2], [1919, 6], [1919, 7], [1920, 2], [1920, 6], [1920, 7], [1921, 2], [1921, 6], [1921, 7], [3734, 5], [3735, 5], [3736, 5], [3737, 5], [3766, 5], [3767, 5], [3768, 5], [3769, 5], [3770, 5], [3771, 5], [3772, 5], [3773, 5], [3778, 5], [3779, 5], [3780, 5], [3781, 5], [3798, 5], [3799, 5], [3800, 5], [3801, 5], [3806, 5], [3807, 5], [3808, 5], [3809, 5], [3818, 5], [3819, 5], [3820, 5], [3821, 5], [3838, 5], [3839, 5], [3840, 5], [3841, 5], [3842, 5], [3843, 5], [3844, 5], [3845, 5], [3846, 5], [3847, 5], [3848, 5], [3849, 5], [4434, 5], [4434, 7], [4435, 5], [4435, 7], [4436, 5], [4436, 7], [4437, 5], [4437, 7], [4438, 0], [4438, 4], [4438, 5], [4438, 6], [4439, 0], [4439, 4], [4439, 5], [4439, 6], [4440, 0], [4440, 4], [4440, 5], [4440, 6], [4441, 0], [4441, 4], [4441, 5], [4441, 6], [4658, 1], [4659, 1], [4660, 1], [4661, 1], [4690, 1], [4691, 1], [4692, 1], [4693, 1], [4694, 1], [4695, 1], [4696, 1], [4697, 1], [4722, 1], [4723, 1], [4724, 1], [4725, 1], [4730, 1], [4731, 1], [4732, 1], [4733, 1], [4742, 1], [4743, 1], [4744, 1], [4745, 1], [4762, 1], [4763, 1], [4764, 1], [4765, 1], [4766, 1], [4767, 1], [4768, 1], [4769, 1], [4770, 1], [4771, 1], [4772, 1], [4773, 1], [5274, 1], [5274, 2], [5274, 4], [5274, 7], [5275, 1], [5275, 2], [5275, 4], [5275, 7], [5276, 1], [5276, 2], [5276, 4], [5276, 7], [5277, 1], [5277, 2], [5277, 4], [5277, 7], [5278, 0], [5278, 2], [5278, 3], [5278, 4], [5278, 5], [5279, 0], [5279, 2], [5279, 3], [5279, 4], [5279, 5], [5280, 0], [5280, 2], [5280, 3], [5280, 4], [5280, 5], [5281, 0], [5281, 2], [5281, 3], [5281, 4], [5281, 5], [7185, 4], [7380, 1], [7380, 2], [7380, 5], [7380, 6], [7380, 7], [7381, 2], [7381, 3], [7381, 5], [7381, 7], [8018, 4], [8220, 0], [8220, 1], [8220, 2], [8220, 3], [8220, 4], [8220, 7], [8221, 1], [8221, 5], [8221, 7], [8648, 4], [8850, 0], [8850, 1], [8850, 2], [8850, 3], [8850, 4], [8850, 7], [8851, 1], [8851, 5], [8851, 7], [11142, 5], [11160, 0], [11160, 1], [11160, 3], [11161, 1], [11161, 3], [11161, 6], [11161, 7], [11352, 5], [11370, 0], [11370, 1], [11370, 3], [11371, 1], [11371, 3], [11371, 6], [11371, 7], [12399, 6], [12420, 1], [12420, 2], [12420, 3], [12420, 6], [12421, 2], [12421, 6], [12421, 7], [13029, 6], [13050, 1], [13050, 2], [13050, 3], [13050, 6], [13051, 2], [13051, 6], [13051, 7], [218200, 6], [218209, 4], [218220, 1], [218220, 3], [218220, 4], [218220, 6], [218221, 0], [218221, 1], [218221, 2], [218221, 3], [218847, 6], [218848, 4], [218850, 2], [218850, 3], [218851, 2], [218851, 4], [362892, 4], [362910, 2], [362911, 0], [362911, 2], [362911, 6], [362911, 7], [365993, 2], [366060, 0], [366060, 4], [366060, 6], [366061, 4], [366061, 5], [366203, 2], [366270, 0], [366270, 4], [366270, 6], [366271, 4], [366271, 5]]} +{"tag": "iostd_L6_fast_oreg", "pin": "L6", "label": "fast_oreg", "cells": [[41, 0], [44, 0], [45, 0], [49, 0], [73, 0], [73, 1], [73, 2], [73, 3], [73, 4], [73, 7], [74, 3], [74, 4], [74, 5], [74, 7], [862, 4], [863, 4], [864, 4], [865, 4], [866, 4], [867, 4], [868, 4], [869, 4], [878, 4], [879, 4], [880, 4], [881, 4], [1014, 4], [1015, 4], [1016, 4], [1017, 4], [1018, 4], [1019, 4], [1020, 4], [1021, 4], [1030, 4], [1031, 4], [1032, 4], [1033, 4], [1074, 0], [1074, 1], [1074, 2], [1074, 6], [1074, 7], [1075, 0], [1075, 1], [1075, 2], [1075, 6], [1075, 7], [1076, 0], [1076, 1], [1076, 2], [1076, 6], [1076, 7], [1077, 0], [1077, 1], [1077, 2], [1077, 6], [1077, 7], [1078, 0], [1078, 1], [1078, 2], [1078, 3], [1078, 7], [1079, 0], [1079, 1], [1079, 2], [1079, 3], [1079, 7], [1080, 0], [1080, 1], [1080, 2], [1080, 3], [1080, 7], [1081, 0], [1081, 1], [1081, 2], [1081, 3], [1081, 7], [1178, 4], [1179, 4], [1180, 4], [1181, 4], [1182, 4], [1183, 4], [1184, 4], [1185, 4], [1194, 4], [1195, 4], [1196, 4], [1197, 4], [1914, 3], [1914, 6], [1915, 3], [1915, 6], [1916, 3], [1916, 6], [1917, 3], [1917, 6], [1918, 2], [1918, 6], [1918, 7], [1919, 2], [1919, 6], [1919, 7], [1920, 2], [1920, 6], [1920, 7], [1921, 2], [1921, 6], [1921, 7], [3734, 5], [3735, 5], [3736, 5], [3737, 5], [3766, 5], [3767, 5], [3768, 5], [3769, 5], [3770, 5], [3771, 5], [3772, 5], [3773, 5], [3778, 5], [3779, 5], [3780, 5], [3781, 5], [3798, 5], [3799, 5], [3800, 5], [3801, 5], [3806, 5], [3807, 5], [3808, 5], [3809, 5], [3818, 5], [3819, 5], [3820, 5], [3821, 5], [3838, 5], [3839, 5], [3840, 5], [3841, 5], [3842, 5], [3843, 5], [3844, 5], [3845, 5], [3846, 5], [3847, 5], [3848, 5], [3849, 5], [4434, 5], [4434, 7], [4435, 5], [4435, 7], [4436, 5], [4436, 7], [4437, 5], [4437, 7], [4438, 0], [4438, 4], [4438, 5], [4438, 6], [4439, 0], [4439, 4], [4439, 5], [4439, 6], [4440, 0], [4440, 4], [4440, 5], [4440, 6], [4441, 0], [4441, 4], [4441, 5], [4441, 6], [4658, 1], [4659, 1], [4660, 1], [4661, 1], [4690, 1], [4691, 1], [4692, 1], [4693, 1], [4694, 1], [4695, 1], [4696, 1], [4697, 1], [4702, 1], [4703, 1], [4704, 1], [4705, 1], [4722, 1], [4723, 1], [4724, 1], [4725, 1], [4730, 1], [4731, 1], [4732, 1], [4733, 1], [4742, 1], [4743, 1], [4744, 1], [4745, 1], [4762, 1], [4763, 1], [4764, 1], [4765, 1], [4766, 1], [4767, 1], [4768, 1], [4769, 1], [4770, 1], [4771, 1], [4772, 1], [4773, 1], [5274, 0], [5274, 1], [5274, 2], [5274, 3], [5274, 5], [5275, 0], [5275, 1], [5275, 2], [5275, 3], [5275, 5], [5276, 0], [5276, 1], [5276, 2], [5276, 3], [5276, 5], [5277, 0], [5277, 1], [5277, 2], [5277, 3], [5277, 5], [5278, 0], [5278, 2], [5278, 6], [5279, 0], [5279, 2], [5279, 6], [5280, 0], [5280, 2], [5280, 6], [5281, 0], [5281, 2], [5281, 6], [7185, 4], [7380, 1], [7380, 2], [7380, 5], [7380, 6], [7380, 7], [7381, 2], [7381, 3], [7381, 5], [7381, 7], [8018, 4], [8220, 0], [8220, 1], [8220, 2], [8220, 3], [8220, 4], [8220, 7], [8221, 1], [8221, 5], [8221, 7], [8648, 4], [8850, 0], [8850, 1], [8850, 2], [8850, 3], [8850, 4], [8850, 7], [8851, 1], [8851, 5], [8851, 7], [11142, 5], [11160, 0], [11160, 1], [11160, 3], [11161, 1], [11161, 3], [11161, 6], [11161, 7], [11352, 5], [11370, 0], [11370, 1], [11370, 3], [11371, 1], [11371, 3], [11371, 6], [11371, 7], [12399, 6], [12420, 1], [12420, 2], [12420, 3], [12420, 6], [12421, 2], [12421, 6], [12421, 7], [13029, 6], [13050, 1], [13050, 2], [13050, 3], [13050, 6], [13051, 2], [13051, 6], [13051, 7], [218200, 6], [218209, 4], [218220, 1], [218220, 3], [218220, 4], [218220, 6], [218221, 0], [218221, 1], [218221, 2], [218221, 3], [218847, 6], [218848, 4], [218850, 2], [218850, 3], [218851, 2], [218851, 4], [362892, 4], [362910, 2], [362911, 0], [362911, 2], [362911, 6], [362911, 7], [365993, 2], [366060, 0], [366060, 4], [366060, 6], [366061, 4], [366061, 5], [366203, 2], [366270, 0], [366270, 4], [366270, 6], [366271, 4], [366271, 5]]} diff --git a/results/rcf_wire_cells.json b/results/rcf_wire_cells.json new file mode 100644 index 0000000..ec4ba9e --- /dev/null +++ b/results/rcf_wire_cells.json @@ -0,0 +1 @@ +{"C4:X9Y8S0I14": [[79013, 3]], "LOCAL_INTERCONNECT:X13Y10S0I30": [[100508, 4], [100929, 4], [101773, 4]], "R24:X9Y12S0I23": [[225382, 3], [225786, 3]], "R4:X10Y10S0I2": [[78042, 4], [78253, 4]], "C4:X16Y8S0I0": [[184092, 5], [184512, 5]], "R4:X14Y10S0I3": [[107225, 4], [107644, 4]], "C4:X16Y10S0I12": [[184166, 3], [184586, 3]], "LOCAL_INTERCONNECT:X16Y14S0I37": [[177866, 3]], "C4:X21Y8S0I12": [[219516, 3], [219726, 3]], "LOCAL_INTERCONNECT:X1Y11S0I12": [[14218, 4], [18627, 4]], "R4:X2Y11S0I30": [[18416, 4]], "C4:X4Y3S0I15": [[40641, 6]], "LOCAL_INTERCONNECT:X4Y4S0I4": [[40430, 6]], "C4:X10Y6S0I12": [[85813, 4]], "C4:X19Y10S0I12": [[207056, 3], [207476, 3]], "LOCAL_INTERCONNECT:X19Y14S0I31": [[201175, 3]], "LOCAL_INTERCONNECT:X12Y10S0I30": [[93158, 4], [93788, 4], [94423, 4]], "LOCAL_INTERCONNECT:X11Y3S0I16": [[85315, 6], [88048, 6]], "R4:X8Y4S0I31": [[91830, 6], [92251, 6]], "R4:X10Y10S0I17": [[106605, 4], [107024, 4]], "LOCAL_INTERCONNECT:X10Y4S0I0": [[79716, 6], [84966, 6]], "LOCAL_INTERCONNECT:X16Y4S0I36": [[177104, 6], [177786, 6]], "C4:X15Y11S0I2": [[176735, 4], [176806, 3], [177155, 4]], "LOCAL_INTERCONNECT:X16Y14S0I31": [[177225, 3], [178285, 3]], "R4:X14Y10S0I2": [[107233, 4], [107653, 4]], "LOCAL_INTERCONNECT:X22Y12S0I36": [[219670, 4]], "C4:X12Y6S0I12": [[100513, 4]], "LOCAL_INTERCONNECT:X12Y10S0I0": [[94422, 4]], "LOCAL_INTERCONNECT:X11Y3S0I0": [[86996, 6], [91826, 6], [92036, 6]], "C16:X10Y0S0I4": [[84275, 3], [84868, 4]], "C16:X14Y0S0I6": [[113835, 4], [114478, 4]], "C16:X9Y0S0I3": [[77518, 4]], "R24:X9Y12S0I21": [[198098, 3], [198486, 3], [362719, 3]], "R4:X10Y4S0I2": [[78036, 6]], "LOCAL_INTERCONNECT:X16Y4S0I30": [[177997, 6]], "R4:X13Y4S0I0": [[176733, 6], [177363, 6]], "R4:X11Y4S0I1": [[85177, 6], [85597, 6]], "LOCAL_INTERCONNECT:X22Y12S0I15": [[219098, 3]], "LOCAL_INTERCONNECT:X28Y10S0I37": [[318913, 4]], "R4:X12Y10S0I0": [[92528, 4], [92948, 4], [113745, 4]], "LOCAL_INTERCONNECT:X4Y4S0I30": [[34353, 6]], "R4:X14Y4S0I0": [[107432, 6], [184088, 6], [184509, 6]], "C4:X10Y0S0I0": [[85254, 7], [85807, 6], [86227, 6]], "LOCAL_INTERCONNECT:X13Y10S0I31": [[101133, 4]], "R4:X13Y10S0I20": [[182835, 4], [183045, 4]], "R4:X12Y4S0I17": [[175478, 6], [175898, 6]], "R4:X9Y4S0I20": [[79077, 6], [99668, 6]], "LOCAL_INTERCONNECT:X12Y10S0I31": [[93153, 4], [94632, 4]], "R4:X12Y10S0I20": [[93783, 4], [175469, 4], [175888, 4]], "R4:X12Y14S0I17": [[175557, 3]], "C4:X16Y3S0I12": [[184089, 5], [184720, 5]], "C4:X16Y7S0I12": [[184372, 4]], "R4:X10Y4S0I17": [[78453, 6], [79082, 6]], "R4:X13Y4S0I17": [[107018, 6], [182825, 6], [183244, 6]], "LOCAL_INTERCONNECT:X16Y4S0I0": [[182826, 6]], "LOCAL_INTERCONNECT:X22Y12S0I32": [[220986, 3]], "LOCAL_INTERCONNECT:X28Y10S0I17": [[317646, 4]], "R4:X24Y10S0I2": [[317437, 4]], "C4:X12Y10S0I12": [[99252, 4], [99672, 4], [100586, 3], [100795, 3]], "LOCAL_INTERCONNECT:X11Y3S0I31": [[87206, 6]], "R4:X18Y12S0I17": [[218257, 3], [218677, 3]], "R4:X16Y12S0I18": [[205856, 3]], "R4:X19Y12S0I20": [[225608, 3], [226027, 3]], "R4:X25Y10S0I15": [[240942, 4], [318432, 4]], "R4:X12Y12S0I19": [[175414, 3], [175624, 3]], "LOCAL_INTERCONNECT:X19Y14S0I32": [[201176, 3]], "R4:X8Y3S0I33": [[85891, 7], [86520, 7]], "C4:X28Y6S0I12": [[325213, 4], [325633, 4]], "LOCAL_INTERCONNECT:X16Y14S0I30": [[176812, 3], [177441, 3]], "LOCAL_INTERCONNECT:X22Y12S0I37": [[220566, 3]], "R4:X24Y10S0I17": [[316604, 4], [317024, 4]], "R4:X20Y10S0I17": [[233024, 4], [233445, 4]], "LOCAL_INTERCONNECT:X12Y10S0I15": [[94003, 4]], "C16:X25Y0S0I3": [[247441, 3], [248038, 4]], "LOCAL_INTERCONNECT:X4Y4S0I37": [[35407, 6]], "R24:X2Y6S0I0": [[247584, 6], [248247, 6]], "R4:X5Y4S0I1": [[41077, 6], [41497, 6]], "R4:X8Y4S0I0": [[63332, 6], [85808, 6], [86229, 6]], "C4:X4Y5S0I0": [[41709, 6], [42128, 6]], "R4:X9Y4S0I2": [[70473, 6], [70892, 6]], "R24:X6Y4S0I0": [[47585, 6], [47977, 6]], "C4:X16Y7S0I3": [[100468, 4], [100678, 4], [183029, 4], [184005, 5], [184426, 5]], "C4:X24Y7S0I0": [[241561, 5], [241771, 5]], "R4:X22Y6S0I17": [[247652, 5], [248071, 5]], "LOCAL_INTERCONNECT:X4Y4S0I0": [[35616, 6]], "C4:X21Y10S0I13": [[219512, 3], [219931, 3], [220069, 3]], "R4:X20Y14S0I2": [[206426, 3], [206846, 3]], "R4:X20Y10S0I0": [[206558, 4], [206769, 4], [233653, 4], [234072, 4]], "LOCAL_INTERCONNECT:X10Y10S0I31": [[78453, 4], [79083, 4], [79932, 4]], "R4:X9Y10S0I20": [[99255, 4], [99674, 4]], "LOCAL_INTERCONNECT:X13Y10S0I15": [[99884, 4], [100305, 4]], "R4:X13Y10S0I1": [[99883, 4], [100303, 4], [113741, 4]], "C4:X18Y11S0I4": [[199615, 4], [199825, 4], [200106, 3]], "C4:X10Y4S0I0": [[85738, 6], [85948, 6]], "C4:X12Y7S0I2": [[100503, 4], [101062, 5]], "LOCAL_INTERCONNECT:X10Y4S0I14": [[79296, 6], [84483, 6], [84693, 6]], "R4:X11Y4S0I13": [[85323, 6], [85532, 6]], "R4:X15Y4S0I12": [[114521, 6]], "C4:X11Y4S0I0": [[93089, 6], [93508, 6]], "C4:X11Y8S0I0": [[93162, 5], [93792, 5]], "R4:X4Y4S0I30": [[34297, 6], [34507, 6], [62434, 6], [62644, 6]], "C4:X11Y7S0I0": [[92745, 4], [93092, 5], [93512, 5]]} \ No newline at end of file