prjxray/utils
Dr Jonathan Richard Robert Kimmitt a8de0afdb3 virtex7: HP-bank glue codified end-to-end + open-flow validation
The open-flow (Yosys → nextpnr-xilinx → FASM → bitstream) now produces
silicon-functional bits on VC707 xc7vx485tffg1761-2 for:
  - rst_to_led (IBUF↔OBUF passthrough)
  - counter_skewfree (button-clocked 8b counter, general routing)
  - counter_sw_bufr (button → BUFR → 8b counter)
  - counter_bufr  (200 MHz LVDS sysclk → IBUFDS → BUFR → 8b counter)
  - counter_2bufg (2× BUFGCTRL on the same source)
  - vc707_telegraph (125 MHz crystal → IBUFDS_GTE2 → BUFG → UART smoke test)
  - vc707_picosoc  (picorv32 + simpleuart + BRAM @ 125 MHz; UART prints
                    'PicoSoC alive on VC707 @ 125 MHz' on /dev/ttyUSB0)

Highlights of this drop:

utils/fasm2frames.py (+223 net):
  - Bank-glue auto-injection for HP-bank IOB18 — IBUF/OBUF (Y0+Y1) +
    IBUFDS differential pair. Fires off the FASM-level direction
    heuristic (.IN/.IN_ONLY/IBUFDISABLE for IBUF, .DRIVE. for OBUF,
    .IN_DIFF for IBUFDS; .SLEW. is unreliable as a marker — gets emitted
    on default-state IOBs too).
  - INT_L_X32Y49 DCI cascade / bank-active markers when any LIOB18_X81
    Y1 OBUF is present.
  - PUDC_B emission rewritten for HP-bank IOSTANDARDs (10 features
    cover Y0 + Y1 default-state; all 9 historic 'PUDC_B glue' bits
    flow naturally from the existing IOSTANDARD segbits).
  - HCLK_L per-BUFRCLK-channel 'active' marker — currently codified
    for BUFRCLK3 (the channel exercised by counter_sw_bufr).
  - GFAN T-tie root glue — INT_L_X62Y(N+10).GFAN_TIE_ROOT_GLUE when
    INT_L_X62Y(N).GFAN0.GND_WIRE appears (OBUF.T → GND routing).
  - PUDC_B tile excluded from the bank-glue walk (its IN features are
    virtual; injecting OBUF_HP_BANK_GLUE on it produces spurious bits).

utils/utils.tcl (+47):
  - write_pip_txtdata bulk-fetch — replaces per-net foreach pip with
    bulk get_pips + bulk get_property IS_DIRECTIONAL + cached
    dst_wire_to_num_pips. ~4× speed-up on xc7vx485t (per-spec time on
    041-clk-hrow-pips / 045-hclk-cmt-pips drops from ~1.5 h to ~25 min).

utils/mergedb.sh (+15):
  - LIOI / LIOI_TBYTESRC / LIOI_TBYTETERM / LIOB18 / mask_liob18 sed
    rewrites for the L-side IOI/IOB18 tiles on HP-only parts (xc7vx485t
    uses left-side IOB18 too; upstream kintex7 mergedb only knew the
    right side).

11 fuzzers patched for virtex7 readiness:
  - 030-iob18 Makefile: split DB target for virtex7 (HP-only); the BUFR
    HP-bank results come from the actual fuzzer rather than HR-side sed.
  - 037-iob18-pips: L-side mirror tiles (LIOI / LIOI_TBYTESRC /
    LIOI_TBYTETERM) added to segdata glob; *_SING tiles excluded;
    EXCLUDE_RE updated for L-side prefixes.
  - 039-hclk-config: split virtex7 vs kintex7 (HCLK_IOI vs HCLK_IOI3);
    XRAY_IOSTANDARD env var; IOB18M/IOB33M alternation.
  - 047a-hclk-idelayctrl-pips: accepts both HCLK_IOI and HCLK_IOI3.
  - 041, 045, 034, 034b, 043, 044, 046: removed local
    write_pip_txtdata override that shadowed the patched utils.tcl
    bulk-fetch (was re-introducing the slow per-net Tcl path).

README.md (+86):
  - 'Virtex-7 Port Status (virtex7-support branch)' section —
    achievements, goals, work-in-progress, constraints.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-29 10:13:53 +01:00
..
openocd Add reset config to allow upload to PS region 2020-05-29 09:54:48 -04:00
test_data Update tests to fabric refactoring 2021-01-12 22:36:58 +01:00
.gitignore Add utils .gitignore 2017-12-20 22:46:39 +01:00
__init__.py setup: include utils directory 2020-05-21 13:42:26 +02:00
addrwidth.py Add licensing header to python scripts 2020-05-26 07:33:12 -07:00
bit2fasm.py riob18: fix IBUF_LOW_PWR_SUPPORTED 2022-12-14 05:15:48 +07:00
blockwidth.py Add licensing header to python scripts 2020-05-26 07:33:12 -07:00
checkdb.py Add licensing header to python scripts 2020-05-26 07:33:12 -07:00
clean_json5.py Add licensing header to python scripts 2020-05-26 07:33:12 -07:00
cleandb.py Add licensing header to python scripts 2020-05-26 07:33:12 -07:00
cmp.py Add licensing header to python scripts 2020-05-26 07:33:12 -07:00
create_environment.py Makefile: Do not dump the environment during db-prepare 2021-03-26 08:28:54 +01:00
create_timing_worksheet_db.py scripts: use open safe file class 2022-03-17 10:04:19 +01:00
dbfixup.py scripts: use open safe file class 2022-03-17 10:04:19 +01:00
diff_db_bits.py Add licensing header to python scripts 2020-05-26 07:33:12 -07:00
diff_db_json.py Add licensing header to python scripts 2020-05-26 07:33:12 -07:00
environment.python.sh Add Virtex-7 (xc7vx485t) family support 2026-05-24 07:21:23 +01:00
environment.sh Add Virtex-7 (xc7vx485t) family support 2026-05-24 07:21:23 +01:00
fasm2frames.py virtex7: HP-bank glue codified end-to-end + open-flow validation 2026-05-29 10:13:53 +01:00
fasm2pips.py Add licensing header to python scripts 2020-05-26 07:33:12 -07:00
fasm_pprint.py Add licensing header to python scripts 2020-05-26 07:33:12 -07:00
find_missing_segbits.py scripts: use open safe file class 2022-03-17 10:04:19 +01:00
genheader.sh Add licensing header to bash scripts 2020-05-26 07:33:12 -07:00
group.py scripts: use open safe file class 2022-03-17 10:04:19 +01:00
groupmask.py scripts: use open safe file class 2022-03-17 10:04:19 +01:00
info_md.py scripts: use open safe file class 2022-03-17 10:04:19 +01:00
make_ports.py scripts: use open safe file class 2022-03-17 10:04:19 +01:00
makesdf.py scripts: use open safe file class 2022-03-17 10:04:19 +01:00
maskmerge.sh Add licensing header to bash scripts 2020-05-26 07:33:12 -07:00
maskview.py scripts: use open safe file class 2022-03-17 10:04:19 +01:00
mergedb.py Added a feature name check to mergedb.py 2020-07-29 16:35:27 +02:00
mergedb.sh virtex7: HP-bank glue codified end-to-end + open-flow validation 2026-05-29 10:13:53 +01:00
parsedb.py scripts: use open safe file class 2022-03-17 10:04:19 +01:00
quick_test.py Add licensing header to python scripts 2020-05-26 07:33:12 -07:00
roi_all.py utils: parallelize all roi parts generation 2022-03-04 11:05:55 +01:00
sdfmerge.py scripts: use open safe file class 2022-03-17 10:04:19 +01:00
segprint.py scripts: use open safe file class 2022-03-17 10:04:19 +01:00
segview.py scripts: use open safe file class 2022-03-17 10:04:19 +01:00
simpleroute.py scripts: use open safe file class 2022-03-17 10:04:19 +01:00
sort_db.py scripts: use open safe file class 2022-03-17 10:04:19 +01:00
sp6_bitstream_analyzer.py scripts: use open safe file class 2022-03-17 10:04:19 +01:00
tcl-reformat.sh Add licensing header to bash scripts 2020-05-26 07:33:12 -07:00
test_fasm2frames.py scripts: use open safe file class 2022-03-17 10:04:19 +01:00
tileconnloops.py scripts: use open safe file class 2022-03-17 10:04:19 +01:00
tileconnwire.py scripts: use open safe file class 2022-03-17 10:04:19 +01:00
tilegrid_report.py Add licensing header to python scripts 2020-05-26 07:33:12 -07:00
top_generate.mk Initial cascade pip fuzzer. 2019-01-30 14:53:05 -08:00
top_generate.sh Add licensing header to bash scripts 2020-05-26 07:33:12 -07:00
update_parts.py Add Virtex-7 (xc7vx485t) family support 2026-05-24 07:21:23 +01:00
update_parts.tcl utils: Add new tools to roi all parts 2021-03-15 17:37:58 +01:00
update_resources.py Add Virtex-7 (xc7vx485t) family support 2026-05-24 07:21:23 +01:00
update_resources.tcl Add Virtex-7 (xc7vx485t) family support 2026-05-24 07:21:23 +01:00
utils.tcl virtex7: HP-bank glue codified end-to-end + open-flow validation 2026-05-29 10:13:53 +01:00
verify_tile_connections.py scripts: use open safe file class 2022-03-17 10:04:19 +01:00
vivado.sh Add licensing header to bash scripts 2020-05-26 07:33:12 -07:00
vtemplate MAKE - Format Trailing Whitespace 2019-10-26 10:04:52 +01:00
write_timing_info.tcl Add license headers to tcl files 2020-05-26 07:33:12 -07:00
xjson.py scripts: use open safe file class 2022-03-17 10:04:19 +01:00
xyaml.py utils: xyaml: Do not use deprecated function 2021-01-12 22:36:58 +01:00