mirror of https://github.com/openXC7/prjxray.git
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>
|
||
|---|---|---|
| .. | ||
| 000-init-db | ||
| 001-part-yaml | ||
| 005-tilegrid | ||
| 007-timing | ||
| 010-clb-lutinit | ||
| 011-clb-ffconfig | ||
| 012-clb-n5ffmux | ||
| 013-clb-ncy0 | ||
| 014-clb-ffsrcemux | ||
| 015-clb-nffmux | ||
| 016-clb-noutmux | ||
| 017-clb-precyinit | ||
| 018-clb-ram | ||
| 019-clb-ndi1mux | ||
| 025-bram-config | ||
| 026-bram-data | ||
| 027-bram36-config | ||
| 028-fifo-config | ||
| 029-bram-fifo-config | ||
| 030-iob | ||
| 030-iob18 | ||
| 031-cmt-mmcm | ||
| 032-cmt-pll | ||
| 033-mon-xadc | ||
| 034-cmt-pll-pips | ||
| 034b-cmt-mmcm-pips | ||
| 035-iob-ilogic | ||
| 035a-iob-idelay | ||
| 035a-iob18-idelay | ||
| 035a-iob18-odelay | ||
| 035b-iob-iserdes | ||
| 036-iob-ologic | ||
| 036-iob18-ologic | ||
| 037-iob-pips | ||
| 037-iob18-pips | ||
| 038-cfg | ||
| 038-cfg-startup | ||
| 039-hclk-config | ||
| 040-clk-hrow-config | ||
| 041-clk-hrow-pips | ||
| 042-clk-bufg-config | ||
| 043-clk-rebuf-pips | ||
| 044-clk-bufg-pips | ||
| 045-hclk-cmt-pips | ||
| 046-clk-bufg-muxed-pips | ||
| 047-hclk-ioi-pips | ||
| 047-hclk-ioi18-pips | ||
| 047a-hclk-idelayctrl-pips | ||
| 048-int-piplist | ||
| 049-int-imux-gfan | ||
| 050-pip-seed | ||
| 051-pip-imuxlout-bypalts | ||
| 052-pip-clkin | ||
| 053-pip-ctrlin | ||
| 054-pip-fan-alt | ||
| 055-pip-gnd | ||
| 056-pip-rem | ||
| 057-pip-bi | ||
| 058-pip-hclk | ||
| 059-pip-byp-bounce | ||
| 060-bram-cascades | ||
| 061-pcie-conf | ||
| 062-pcie-int-pips | ||
| 063-gtp-common-conf | ||
| 063-gtx-common-conf | ||
| 064-gtp-channel-conf | ||
| 064-gtx-channel-conf | ||
| 065-gtp-common-pips | ||
| 065b-gtp-common-pips | ||
| 066-gtp-int-pips | ||
| 071-ppips | ||
| 072-ordered_wires | ||
| 073-get_counts | ||
| 074-dump_all | ||
| 075-pins | ||
| 076-ps7 | ||
| 100-dsp-mskpat | ||
| 101-dsp-pips | ||
| piplist | ||
| .gitignore | ||
| Makefile | ||
| clb.mk | ||
| clb_ext.mk | ||
| fuzzer.mk | ||
| int_create_empty_db.sh | ||
| int_generate.py | ||
| int_loop.mk | ||
| int_loop.sh | ||
| int_loop_check.py | ||
| int_maketodo.py | ||
| pip_list.mk | ||
| pip_loop.mk | ||
| reseg.sh | ||
| run_fuzzer.py | ||