prjxray/fuzzers/056-pip-rem
Dr Jonathan Richard Robert Kimmitt 39f5de415d Add Virtex-7 (xc7vx485t) family support
Port prjxray to the Virtex-7 family, modelled on Kintex-7, targeting
xc7vx485tffg1761-2 (vc707). Non-breaking for the existing families.

Family registration:
- settings/virtex7.sh, settings/virtex7/devices.yaml
- Makefile: virtex7 in DATABASES/XRAY_PARTS + db-extras-virtex7 targets
- utils/update_parts.py, update_resources.py: virtex7 choice
- CI matrix (Pipeline.yml), Vivado edition (xilinx.sh), README

Architecture adaptations for the HP-bank-only VX part (verified non-breaking):
- update_resources.tcl: fall back to HP banks when no HR banks exist
- XRAY_IOSTANDARD env (default LVCMOS33; LVCMOS18 for virtex7), parameterised
  across the fuzzer generate.tcl files
- fuzzers: enable HP-bank (iob18/ioi18) + IOI/HCLK handling for virtex7;
  GTX skipped (ffg1761 bonds only ~7 of 14 GTX quads)
- 005-tilegrid: HP/HR bank tile handling; iob18_int INT offset 3->2;
  ioi18 AUTO_FRAME; cfg PDRC-2 DRC disable; add_tdb skips unsolved edge tiles;
  per-specimen retry for transient FlexLM SIGSEGV under concurrency
- per-family Vivado version gate (virtex7 -> v2020.1.1)
- XRAY_ROI and XRAY_ROI_GRID tuned to a compact CLBLL+CLBLM region

General fixes:
- tools/bitread.cc: fix use-after-free of the mmap'd bitstream (exposed by the
  larger Virtex-7 bitstream)
- utils/environment.python.sh: add repo root to PYTHONPATH (PEP 660 editable
  install doesn't expose the repo-root utils/ package)

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-24 07:21:23 +01:00
..
Makefile Add licensing header to Makefiles 2020-05-26 07:33:12 -07:00
README.md docs: Fix top level headers and other small clean. 2019-04-03 19:26:28 -07:00
generate.tcl Add Virtex-7 (xc7vx485t) family support 2026-05-24 07:21:23 +01:00
top.v fuzzers: name with tile type 2019-01-07 23:08:45 +01:00

README.md

Fuzzer for the remaining INT PIPs

Run this fuzzer a few times until it produces an empty todo.txt file (make run will run this loop).

This fuzzer occationally fails (depending on some random variables). Just restart it if you encounter this issue. The script behind make run automatically handles errors by re-starting a run if an error occurs.

Solvability

Known issues:

  • INT.CTRL0: goes into CLB's SR. This cannot be routed through

Jenkins build 3 (78fa4bd5, success) for example solved the following types:

  • INT_L.EE4BEG0.LH12
  • INT_L.FAN_ALT1.GFAN1
  • INT_L.FAN_ALT4.BYP_BOUNCE_N3_3
  • INT_L.LH0.EE4END3
  • INT_L.LH0.LV_L9
  • INT_L.LH0.SS6END3
  • INT_L.LVB_L12.WW4END3
  • INT_L.SW6BEG0.LV_L0