Hi! I am using RapidWright to perform Single Event Upset (SEU) fault injections on a partial bitstream. My workflow involves reading the bitstream using the configuration array model (configureArray()), injecting faults by flipping a specific bit, and then writing the modified bitstream back using writeBitstream(out_file).
However, I have noticed an unexpected behavior: after writing the modified partial bitstream, its file size increases noticeably. Given that the modification involves only a single bit flip, I would not anticipate such an increase in the bitstream size.
This issue does not occur when working with a full bitstream—the file size remains unchanged after similar modifications.
Code Snippet Used:
bs = Bitstream.readBitstream(input_bitstream)
configArray = bs.configureArray()
// Inject faults into configArray here...
bs.updatePacketsFromConfigArray()
bs.writeBitstream(out_file)
Expected Behavior: The bitstream file size should remain essentially unchanged, given the minimal nature of the modification (a single bit flip).
Query: Could anyone clarify why the partial bitstream file size increases significantly after minor bit-level modifications using RapidWright's configuration model, while the full bitstream does not exhibit this issue.
Thanks in advance for your assistance!