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>
Set localisation settings to default values to prevent different locale
results from tools.
Example: Non-English speaking countries use a comma as decimal seperators but
Python's float convert only accepts a point.
Signed-off-by: Daniel Schultz <d.schultz@phytec.de>
* Move Python environment values into `utils/environment.python.sh`
* Source the `utils/environment.python.sh` before running Python
scripts.
* Add `DeprecationWarning` suppression for `distutils`
Now the output of `make test-py` returns `30 passed in N.NNs` instead of
the previous `30 passed, 1 warnings in N.NNs`
Signed-off-by: Tim 'mithro' Ansell <me@mith.ro>
This change affects the extra-db target, by adding also the generation
of other part-dependent files, such as tilegrid, tileconn, and others.
Signed-off-by: Alessandro Comodi <acomodi@antmicro.com>
Creates the .db files via make rather than via sourcing settings.sh
allowing pip fuzzers to interact correctly with `make clean`.
Fixes#604.
Signed-off-by: Tim 'mithro' Ansell <me@mith.ro>
This fixes the problem that when sourcing the vivado settings file the
library search path is modified resulting in non-vivado binaries not working
due to being dynamically linked against the vivado libraries instead of the
system ones.
Signed-off-by: Felix Held <felix-github@felixheld.de>
* Use `yapf` from environment if it exists.
* Better way to generate exclude.
* Make TCL formatting work.
Signed-off-by: Tim 'mithro' Ansell <me@mith.ro>
bitread now requires a part YAML file as part of the rewrite to use
libprjxray. Instead of changing every invocation directly, just add the
flag to the existing environment variable as it is needed for all
invocations.
Signed-off-by: Rick Altherr <kc8apf@kc8apf.net>
Signed-off-by: Tim 'mithro' Ansell <mithro@mithis.com>
Since some of the tools need to be found by make and other environments,
build the paths when database/<database>/settings.sh is sourced and
export them into the shell environment.
Signed-off-by: Rick Altherr <kc8apf@kc8apf.net>
Signed-off-by: Tim 'mithro' Ansell <mithro@mithis.com>
Building with CMake makes it a lot easier to bring in other libraries
such as gflags and abseil.
Signed-off-by: Rick Altherr <kc8apf@kc8apf.net>
Signed-off-by: Tim 'mithro' Ansell <mithro@mithis.com>
utils/environment.sh determines its absolute path and then creates
environment variables to each of the prjxray tools. This allows moving
the tools around in the code base without touching every script.
Signed-off-by: Rick Altherr <kc8apf@kc8apf.net>
Signed-off-by: Tim 'mithro' Ansell <mithro@mithis.com>