prjxray: build openXC7 master 9346969e - #17
Merged
Merged
Conversation
Move prjxray from ef5203e9 (2026-08-18) to openXC7/prjxray master 9346969e (2026-09-11). The delta on the shipped surface (fasm2frames, bit2fasm, xc7frames2bit, bitread, xc7patch, the prjxray python library) is exactly what 0061/0067 analysed and deliberately left out of the 0.9.5 bump so it could get its own bench: - utils/fasm2frames.py (+325): HP-bank glue auto-injection on any LIOB18/RIOB18 tile (IBUF/OBUF/IBUFDS_HP_BANK_GLUE and virtex7 column markers), written for virtex7 whose database carries those segbits. On a database without those keys (our zynq7) the injection collects into a list that is never raised: a silent no-op by design. Also the PUDC_B pullup gains an HP-bank template, and the STEPDOWN walk now resolves fabric/package tile-name mismatches (4f12665b, written against xc7s25csga324-1) -- a mismatch our manifest no longer has: all 128 packaged parts resolve every package_pins.csv tile name against their fabric tilegrid (0 discrepancies, measured against prjxray-db 1768fb35 in the 0.9.5 bench). - prjxray/grid.py: a tile type with its own segbits database now wins over the alias path (virtex7 IOB SING alias metadata is wrong). This is on the assembly hot path of every family, so it is the change the bench's one-factor A/B (old vs new fasm2frames over the same canonical fasm, all 37 manifest parts) exists to measure. - tools/bitread.cc: upstream's own re-implementation of the use-after-free fix we contributed as PR #6 (copy mmap bytes into an owning vector instead of keeping the owners alive). - Inert for what we ship: db.py tilegrid fallback, the opt-in XRAY_ALLOW_MISSING_FEATURES escape, a util.py assert message, and segmaker.py (fuzzers). The remaining new commits are our own PRs #16 and #18 (fuzzers, utils/, docs). The three text anchors of the packer's util.py locking patch (pack/components.py) are present verbatim in 9346969e, so that patch applies unchanged. The chipdb identity does not involve prjxray and stays 8abe12ebcdc89d7b, so the 37 prebuilt bins of the 0.9.5 cycle remain valid for this tree. nix/windows/default.nix only gets the cosmetic prjxray-win version; its sources derive from the native derivation.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Bump prjxray from ef5203e9 to openXC7 master 9346969e, validated on the bench before the push: chipdb identity unchanged (8abe12ebcdc89d7b), L1 37/37 with the release bins, L2 zero metric drift,
one-factor A/B over the 37 parts (frames and .bit byte-identical), HP-bank specimen fails with the same nine missing database keys before and after (the only behavioural change is the opt-in
XRAY_ALLOW_MISSING_FEATURES), windows cross-build and E2E under wine with the mingw python OK.