UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
Newbie jm1340
Newbie
10,878 Views
Registered: ‎03-05-2015

ICAPE2 partial reconfiguration

Hi,

I'm trying to use partial reconfiguration in my design on an artix 7 chip; I'm trying to use the ICAP, to have it self reconfigure from the SPI, controlled by a FSM.

I'm using the multiboot method as given in the 7 series configuration user guide (ug470 pg139), but I can't get it to work, if I use the address for a full bit file it seems to work, but if I give it the address of a partial bit file it seems to fail as it will reset and load the original configuration after a short time.

Can anyone tell me if the instructions for the ICAP are different for partial reconfiguration than in multiboot, or if there is something else I might be missing?

 

Thanks,

Jack

8 Replies
Observer eneaspuertas
Observer
10,506 Views
Registered: ‎04-24-2015

Re: ICAPE2 partial reconfiguration

Hi,

 

Same problem here, I believe that the problem is related to the IPROG command (0x0000000F). I guess there might be another value to specify the ICAPE2 that it doesn't have to reset the FPGA as the bitfile is just partial.

 

The situation you are watching is just the system trying to boot from another bit file, and as it is partial (different headers, etc..) it fails and loads again the golden image.

 

So, bottom question here.. is there any other IPROG command to specify the load of a partial bitfile?

Observer eneaspuertas
Observer
10,462 Views
Registered: ‎04-24-2015

Re: ICAPE2 partial reconfiguration

It seems that that is the only way to use the ICAP automaticaly..

Now I'm trying to read the bitflile from the flash memory and send the data to the ICAPE2.

I'll post as soon as I get any result.

0 Kudos
Observer eneaspuertas
Observer
10,455 Views
Registered: ‎04-24-2015

Re: ICAPE2 partial reconfiguration

It still doesn't work, but at least now the FPGA doesn't fully restart..

 

I'm generating a MCS file with the static part of the design at the beginning of the flash and several PR modules at concrete addresses (all of them bitfiles). 

 

Once the external trigger launches the FSM (external sw on the KC705 board), it reads the memory from the corresponding addres (for each PR module) and keeps reading (in blocks of 128 by 32 bits) until it reaches the 0x0000000D word.

 

Internally there is a fifo between the ICAPE2 and the flash control modules, so between block writes into the ICAPE2 there are periods where is not enabled (may it be a problem?). The section the module reads is quite bit despite having a small PR module (from 0xAF0000 to 0xB64xxx). Should it be a continous write into the ICAPE2?

 

Reading UG470 page 140, it shows the data sequence to be writen into the ICAPE2 for bitfile load. I've checked the data in the generated MCS file and it doesn't look very similar..

 

:020000040000FA
:10000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00
:10001000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0
:10002000000000BB11220044FFFFFFFFFFFFFFFFA6
:10003000AA9955662000000030022001000000004F
:1000400030020001000000003000800100000000CC
:1000500020000000300080010000000720000000A8
:10006000200000003002600100000000300120018B
:1000700002003FE53001C0010000000030018001B6
:10008000036510933000800100000009200000008B
:100090003000C001000004013000A0010000050193

 

The first two and a half lines doesn't seem to be useful (following UG470 "guide"). Should I start reading from the xFFFFFFFF word before 0xAA995566 word?

 

Note that prior to sending the data to the ICAPE2 I do a bit swaping (byte boundary).

 

I wish someone from Xilinx could bring some light into this problem because the only thing I have achieved until now is PR bitfile generation (usign a nice xilinx UG) and I really need to be able to implement PR form non volatile memories using ICAPE2, which, by the way, doesn't sound that weird.

 

I'll keep digging and hopefully I'll get some results..

0 Kudos
Observer eneaspuertas
Observer
10,411 Views
Registered: ‎04-24-2015

Re: ICAPE2 partial reconfiguration

I think I found the problem.

 

When setting the reset_after_reconfig flag, the DONE signal never got high after loading the bitstream, fact that stalled the FPGA.

 

I've turned off that feature and now the partial bitstreams are working fine. I guess I will have to reset the modules manually after the reconfiguration.

 

It works with multiboot and single mcs files (on single mode, the partial bitfiles are loaded as data, like .elf and .mem files).

 

Regards

Visitor liyingpan
Visitor
5,633 Views
Registered: ‎12-19-2016

Re: ICAPE2 partial reconfiguration

厉害
0 Kudos
3,064 Views
Registered: ‎12-01-2017

Re: ICAPE2 partial reconfiguration

Hi 

 

am trying to switch between two bit files loaded in a single fpga using ICAPE2

 

Do you have any solution for this?

0 Kudos
Xilinx Employee
Xilinx Employee
3,047 Views
Registered: ‎11-17-2008

Re: ICAPE2 partial reconfiguration

Yes we do, it's called Partial Reconfiguration.  Note that these bit files are partial bit files not full design bit files (so only part of the design is reconfigured), and an ICAP loader such as the PR Controller IP is needed.  For more information, please see this page:

https://www.xilinx.com/products/design-tools/vivado/implementation/partial-reconfiguration.html

 

thanks,

david.

0 Kudos
Explorer
Explorer
384 Views
Registered: ‎12-12-2009

Re: ICAPE2 partial reconfiguration

@eneaspuertasSo it is not related to IPROG command, isn't it?

abdullah
0 Kudos