Repository navigation
virtex7: LIOB18 STEPDOWN is bit-free - #34
Conversation
STEPDOWN was a negated-only segbits entry, !00_127, whose bit (frame 0, word 3, bit 31 of the IOB window) lands in the word of the neighbouring INT_L tile, so fasm2frames raises FasmInconsistentBits for any design that routes that INT_L pip and has a STEPDOWN IOB. Drop the two segbits entries and declare the feature bit-free in ppips_liob18.db, as is done for ZINV_D. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Reviewer's guide (collapsed on small PRs)Reviewer's GuideThe PR fixes Virtex-7 FASM assembly failures by modeling LIOB18 STEPDOWN as bit-free: it removes the misleading Flow diagram for the bit-free LIOB18 STEPDOWN fixflowchart LR
A[FASM design with LIOB18 STEPDOWN] --> B[segbits_liob18.db: !00_127]
B --> C[STEPDOWN clears shared INT_L bit]
C --> D[FasmInconsistentBits]
E[ppips_liob18.db: always] --> F[STEPDOWN has no physical bit]
F --> G[FASM assembly succeeds]
G --> H[VC707 design boots]
File-Level Changes
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
|
I checked this against master The bit. In every regular Reproduced. I did not get the clash from
What does not change.
There is no Vivado golden: the 485T is not in our Vivado licence. The bit argument above is from the tilegrid and the segbits only.
Merging, thanks Jonathan. |
Make
LIOB18STEPDOWNbit-free.The problem.
LIOB18.IOB_Y{0,1}.LVCMOS12_LVCMOS15_LVCMOS18_SSTL135_SSTL15.STEPDOWNis!00_127insegbits_liob18.db: a negated-only entry (so segmatch found no distinguishing bit) at frame 0, word 3, bit 31 of the IOB window. On a regularLIOB18row that bit lands in the word of the neighbouringINT_Ltile (the two share the 0x421000 column, which is legitimate), sofasm2framesrefuses any design that routes theINT_Lpip in that word and has a STEPDOWN IOB.Reproduced against this repository's
master(75825f2), with a FASM of the VC707vc707-ocamldesign placed by nextpnr:The change. Remove the two
segbits_liob18.dbentries and declare the feature bit-free in a newppips_liob18.db(always), as is done forZINV_D.RIOB18never carried it. A note is added tovirtex7/FIXES.md.Checked. The same FASM assembles with this change (
convert.py, 20,273,560-byte bitstream), and the resulting design boots on a VC707 through the open flow. I have not run this repository's other checks or the nextpnr gate against it, and I have not checked that nextpnr's writer is happy with a feature that now has no bit: nextpnr writesSTEPDOWNtwice per half on the left tile, which is harmless for a bit-free feature but worth a look.HCLK_IOI.STEPDOWNis also!00_127and may need the same treatment if it collides.Not in this PR. The
LIOB18.IOB_Y0.*.INcorrection and theBRAM_L_X114Y0tilegrid entry that I had on my side are already inmaster, so I have left them out.🤖 Generated with Claude Code
Summary by Sourcery
Fix LIOB18 STEPDOWN bit metadata so designs combining it with affected INT_L routes assemble and operate correctly.
Bug Fixes:
Enhancements:
Documentation: