Bitstream manipulation

34 views
Skip to first unread message

Gabriel Cobos Tello

unread,
Oct 5, 2021, 8:20:13 AM10/5/21
to RapidWright
Greetings!
Im using rapidwright to manipulate bitstreams for the purpose of fault injection.
To this extend I have done the following:

configArray.updateUserStateBits(mycells3.get(0));

Where mycell3.get(0) is the cell whose properties i have altered.

What I want is to be able to generate a Fault List based on the changes done in the netlist with rapidwright. What I am missing is the ability to find the address and content of the specific frames which have changed. Basically im trying to get a list of FARs and their respective changed bits.

I have tried the following to obtain the frames that could reflect the changes:
Block TargetBlock = configArray.getConfigBlock(mycells3.get(0).getTile());
TargetFrames = TargetBlock.getFrames();

This has given the list of frames in which the changes will be reflected. With this I could iterate and compare with the unchanged bitstream to find out the altered frames. And from this I could obtain the desired faultlist and hence the differential bitstream.

My question is if there is a way to do this with rapidwright methods without having to do all the frame fishing manually. I know i can modify the entire bitstream with rapidwright to reflect the changes, but this isnt what i want. Can rapidwright generate a differential bitstream?

Any help is appreciated.
Best regards,
Gabriel.

RapidWright

unread,
Oct 8, 2021, 6:08:34 PM10/8/21
to RapidWright
Hi Gabriel,

Apologies for the delayed response, Google Groups email notifications have been unreliable as of late.

I think I see what you are asking for and you are correct.  There aren't any APIs that explicitly do what you request.  Perhaps you could file a new issue and we could consider adding some of that functionality.

Thanks,

Chris

Gabriel Cobos Tello

unread,
Oct 11, 2021, 10:58:08 AM10/11/21
to RapidWright
Hi Cris,

I will do as you say then! I think rapidwright has a lot of potential to facilitate fault injection on FPGAs, which can be a great hassel without knowledge of the bitstream configuration.

On that note I have another question if thats alright,  can rapidwirht work with vivado essential bit files? I want to be able to inject faults by flipping essential bits, and was wondering if that would be supported in rapidwright. 

Cheers,
Gabriel.

RapidWright

unread,
Oct 13, 2021, 7:31:52 PM10/13/21
to RapidWright
Hi Gabriel,

I'm not familiar with Vivado essential bit files, so RapidWright probably doesn't support that out of the box.  

Chris

Reply all
Reply to author
Forward
0 new messages