Fix: proper IR quirk handling for Xilinx FPGAs #1620
Merged
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.
Detailed description
This fixes potentials issues that one may run into when they have a scan-chain with an Xilinx FPGA on it, as not all Xilinx FPGAs have the 6-bit IR. The documentation such as UG5701 states that the IR is 6-bits as a general rule of thumb, however one must consult the device specific BSDL2 files in order to divine the correct IR length for any given device.
Upon consultation of the BSDL models provided by Xilinx, it is made apparent that the following IR lengths are present: 6, 12, 14, 18, 21, 22, 28, and 38. While the vast majority of the devices are in-fact 6-bit wide IR devices, the chance of encountering a device with one of the other IR lengths is reasonably high.
Rather than individually listing each device ID and it's IR length, effort has been made to reduce the device ID space into the greatest common denominators, which then uses the IR quirks machinery to ensure that the IR length is set correctly.
This should enable more robust handling of scan-chains with Xilinx FPGAs present on them.
Your checklist for this pull request
make PROBE_HOST=native
)make PROBE_HOST=hosted
)Footnotes
https://docs.xilinx.com/v/u/en-US/ug570-ultrascale-configuration ↩
https://www.xilinx.com/support/download/index.html/content/xilinx/en/downloadNav/device-models.html ↩