03-24-2018 02:17 PM
in the course of my (extremely protracted) master thesis, I'm dealing with partial reconfiguration.
When I had a closer look on partial bitstreams, i noticed that the same frames are written twice with different data and I'm very eager to know the reason for that.
My best guess would be that the first write operation "blanks" parts of the partition, so that no logic elements drive the same (interconnect) signals. If I remember correctly, there is a statement in the configuration user guide, that there is a global signal that puts the interconnect into high-z state, but this can't be used for partial reconfiguration. Are these assumptions correct?
I'm not sure if anybody can answer the above questions, but what interests me even more is if I can just remove the first write operation from the bitstream and thus reduce its size. It doesn't make sense to me that this first write operation is in there unintentionally, but could the removal cause any electrical problems or even damage the FPGA?
Thank you very much,
03-25-2018 02:40 PM
After some research, I found the following statement in UG909, p.96:
"Advisories had been given for prior versions of Vivado software recommending the use of blanking bitstreams for 7 series and Zynq devices to avoid potential glitching conditions. Starting with Vivado 2016.1, these rare glitching scenarios are automatically avoided by embedding specific blanking events in each partial bitstream. Blanking bitstreams, while still available to remove logic from a Reconfigurable Partition, are no longer required to avoid any potential glitch events."
This pretty much answers my first two questions. But what still remains is the question, if removing these blanking frames could cause damage to the device?
When I download a partial bitstream, that was created with Vivado 2017.4 (so it includes the embedded blanking events), the states of registers within the partition changes and also signals that are routed outside of the partition are glitching. That is also why it is recommended to use decoupling at the partition's boundaries.
But which kind of glitches are then avoided by the embedded blanking? Glitches to Block-RAMs? And what about distributed RAMs?
Questions over questions :D
03-26-2018 08:21 PM