cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
herand
Participant
Participant
1,531 Views
Registered: ‎07-24-2017

Partial Reconfiguration by PCAP: bitstream size not an integer of words?

Jump to solution

Hello,

 

I am currently trying to reconfigure a design with partial bitstreams, which are going to be placed on an SD-Card and loaded by a standalone application when needed.I have read XAPP1159 and UG873 and think I figured out the flow almost correctly.

 

My approach is to load them from the SD-Card to the DDR and then use the xdevcfg function XDcfg_Transfer with the proposed wrapper function from another thread in this forum here.

 

However, one parameter of the XDcfg_Transfer function is u32 SrcWordLength, indicating that it expects a integer number of words. 1st question here: Is a WORD is defined as 2 bytes equaling 8 bits? Or do we talk about DWORDs?

I ask this because I remember that generating bitstreams before vivado was done using promgen and at that time I used the parameter -data_width 32.

 

When I examine the byte size of my generated partial bitstreams, by using the tcl command file size file.bit in vivado, I get 470017, which is neither a multiple of 2 bytes nor 4 bytes. But the .bit file is the only one which I can use directly in vivado as a programming bitstream.

I also generated the .bin files with the parameter -bin_file, which gives me file sizes of 469900, which seem to fit both definitions.

Therefore, my 2nd question is: Do I have to use the .bin files as inputs to the PCAP interface? I'd like to ask that before trial-and-error as I'm afraid of tampering my device.

 

3rd question (small one): Can I use that interface to reprogram the whole PL with another static bitstream as well, given that the constraints do not change?

 

Thanks in advance

 

0 Kudos
1 Solution

Accepted Solutions
herand
Participant
Participant
1,781 Views
Registered: ‎07-24-2017

I have found a solution to my problem and it's the typical case of RTFM:

 

On page 98 of UG909 (2016.1) it is clearly stated how to create the .bin files for PCAP reconfiguration, in my example:

 

write_cfgmem -format BIN -interface SMAPx32 -disablebitswap -loadbit "up 0x0 ledr.bit" ledr.bin

It has the same size (469900 bytes) as the one generated by vivado write_bitstream -bin_file command, but differs a bit in content due to the interface and disablebitswap options. Therefore, this file now is a multiple of DWORDs and it works fine.

 

View solution in original post

1 Reply
herand
Participant
Participant
1,782 Views
Registered: ‎07-24-2017

I have found a solution to my problem and it's the typical case of RTFM:

 

On page 98 of UG909 (2016.1) it is clearly stated how to create the .bin files for PCAP reconfiguration, in my example:

 

write_cfgmem -format BIN -interface SMAPx32 -disablebitswap -loadbit "up 0x0 ledr.bit" ledr.bin

It has the same size (469900 bytes) as the one generated by vivado write_bitstream -bin_file command, but differs a bit in content due to the interface and disablebitswap options. Therefore, this file now is a multiple of DWORDs and it works fine.

 

View solution in original post