blog: two bitstreams, one bit apart - #886
Merged
Merged
Conversation
A proposed row in the Xilinx bitstream database had been unverifiable since December 2024; the pull request carrying it was closed on 2026-08-14 pending a fuzzer that could check it. Two AX7203 bitstreams differing by exactly one bit (frame 0x00401C00, word 50, bit 31) settle one of the eight on silicon: with the bit an LED blinks at 0.75 Hz, without it the counter is frozen. Also covers the BUFR divide ladder measured at four ratios, the two placer defects that had to be fixed before a pad-fed BUFR could clock fabric on an xc7a200t at all, and three ways I got it wrong first -- including a void experiment whose bitstream carried no enable line, and prior art a code search found against my own patch after I had already sent it. openQuestions names what is not proven: one row of eight, both patches OPEN and unreviewed, an LED that cannot separate a divide of 8 from 7, and no independent replication.
github-actions Bot
added a commit
that referenced
this pull request
Sep 1, 2026
blog: two bitstreams, one bit apart (#886) A proposed row in the Xilinx bitstream database had been unverifiable since December 2024; the pull request carrying it was closed on 2026-08-14 pending a fuzzer that could check it. Two AX7203 bitstreams differing by exactly one bit (frame 0x00401C00, word 50, bit 31) settle one of the eight on silicon: with the bit an LED blinks at 0.75 Hz, without it the counter is frozen. Also covers the BUFR divide ladder measured at four ratios, the two placer defects that had to be fixed before a pad-fed BUFR could clock fabric on an xc7a200t at all, and three ways I got it wrong first -- including a void experiment whose bitstream carried no enable line, and prior art a code search found against my own patch after I had already sent it. openQuestions names what is not proven: one row of eight, both patches OPEN and unreviewed, an LED that cannot separate a divide of 8 from 7, and no independent replication.
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.
Adds one post: Two bitstreams, one bit apart.
A proposed row in the Xilinx bitstream database had been unverifiable since
December 2024; openXC7/prjxray-db#1 was closed on 2026-08-14 pending a fuzzer
that could check it. Two AX7203 bitstreams differing by exactly one bit — frame
0x00401C00, word 50, bit 31 — settle one of the eight on silicon.The post also covers the BUFR divide ladder measured at four ratios, the two
placer defects that had to be fixed before a pad-fed BUFR could clock fabric on
an xc7a200t at all, and three ways I got it wrong first.
States named exactly, re-checked against the API before writing: #170 and
#171 are OPEN and unmerged, described as submitted upstream; #149 and #172 OPEN;
prjxray-db#1 CLOSED.
openQuestionscarries the real limits — one row of eight measured, bothpatches unreviewed, an LED that separates a divide of 2/4/8 but not 8 from 7,
the MMCM path still unassemblable, and no independent replication.
Built clean against
main(npm run build:ci, exit 0) and the slug resolves inthe emitted
Blog-*.jschunk.ruis complete, not partial.Branched from
mainin a separate worktree so the unrelated uncommitted work inthe primary checkout was left untouched.