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: 
Observer dylan.campbell
Observer
1,083 Views
Registered: ‎08-31-2018

Artix 7 - Using ICAPE2 to program flash

Jump to solution

Hello all,

 

I'm working on a project where I'm migrating from a Spartan 3 to an Artix 7.  In the Spartan 3 design we have the ability to reprogram the prom(holding the bitstream) after the device is loaded and running by driving the CCLK, CS, MISO, MOSI pins.  When moving to the Artix 7 I found that the CCLK pin is now a dedicated pin and can't be driven directly by logic.  

 

I've heard that it is possible to use the ICAPE2 module to do the programming of the prom but I can't seem to find out exactly how.  I can't even seem to find a definition of the primitive.

 

So my questions are

 

1. Is it possible to have the ICAPE2 module do the programming of the flash?  What I mean here is that I want to receive a bitstream remotely then I want to pass this off to the ICAPE2 module which will then handle the actual programming of the flash.  

 

2.  In xapp 1081 it references a file 'SpiFlashProgrammer.vhd' which it says programs the flash.  I can't seem to find this file in any of the example projects.  Does this file use the ICAPE2 primitive or is it a logic flash programmer?   I ask because I was trying to find an example design using the ICAPE2 for reprogramming.

 

Thank you for any help!

 

Edit: I should mention that I've heard that the STARTUPE2 primitive that lets me control the CCLK with logic.  I've just been instructed to see if we can have the ICAPE2 primitive do all the work of programming the flash.  

0 Kudos
1 Solution

Accepted Solutions
Moderator
Moderator
1,058 Views
Registered: ‎06-05-2013

Re: Artix 7 - Using ICAPE2 to program flash

Jump to solution
Hi @dylan,

You can refer to the Artix 7 Multiboot reference design which has the complete project and details. Yes you can send IPROG command via ICAP and configure the device from the required address of flash.

ICAP primitive details can be found in UG#953 on page#333 https://www.xilinx.com/support/documentation/sw_manuals/xilinx2018_2/ug953-vivado-7series-libraries.pdf

For ICAP and IPROG commands refer to UG#470 on Page#145

Here are the project and documentation details.
https://www.xilinx.com/member/forms/download/design-license.html?cid=389479&filename=xtp226-ac701-multiboot-c-2015-1.pdf

https://www.xilinx.com/member/forms/download/design-license.html?cid=389488&filename=rdf0224-ac701-multiboot-c-2015-1.zip

For more information on SpiFlashProgrammer.vhd check the following AR https://www.xilinx.com/support/answers/69824.html

Hope it helps.

Thanks
Harshit
-------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------

View solution in original post

4 Replies
Moderator
Moderator
1,059 Views
Registered: ‎06-05-2013

Re: Artix 7 - Using ICAPE2 to program flash

Jump to solution
Hi @dylan,

You can refer to the Artix 7 Multiboot reference design which has the complete project and details. Yes you can send IPROG command via ICAP and configure the device from the required address of flash.

ICAP primitive details can be found in UG#953 on page#333 https://www.xilinx.com/support/documentation/sw_manuals/xilinx2018_2/ug953-vivado-7series-libraries.pdf

For ICAP and IPROG commands refer to UG#470 on Page#145

Here are the project and documentation details.
https://www.xilinx.com/member/forms/download/design-license.html?cid=389479&filename=xtp226-ac701-multiboot-c-2015-1.pdf

https://www.xilinx.com/member/forms/download/design-license.html?cid=389488&filename=rdf0224-ac701-multiboot-c-2015-1.zip

For more information on SpiFlashProgrammer.vhd check the following AR https://www.xilinx.com/support/answers/69824.html

Hope it helps.

Thanks
Harshit
-------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------

View solution in original post

Observer dylan.campbell
Observer
1,047 Views
Registered: ‎08-31-2018

Re: Artix 7 - Using ICAPE2 to program flash

Jump to solution

Hi harshit,

 

Thank you very much for the detailed response.  I think those PDFs and projects clear up most of my confusion.  

 

One more quick question for clarification.  From what I read in the sources posted the ICAPE2 module is not capable of re-writing the flash, correct?  I believe it can only read from the flash. So if I want to reprogram the FPGA with a new bitstream I should reprogram the flash with logic and then use the ICAPE2 primitive with the IPROG command to reprogram the FPGA from flash.  Please let me know if anything there was incorrect.  

 

Thank you,

Dylan

 

Edit: added clarification about reprogramming the FPGA.

0 Kudos
Moderator
Moderator
1,041 Views
Registered: ‎06-05-2013

Re: Artix 7 - Using ICAPE2 to program flash

Jump to solution
Yes. Your understanding is correct. You cannot program the flash from ICAPE2. IPROG can be issued to define the desired flash address but flash cannot be programmed via ICAP.

Although you can send a partial bitstream to the device using ICAP, whether encrypted or unencrypted, or can perform readback through the ICAPE2 interface, even if Bitstream Security bitstream encryption is used.

Hope it helps.

Thanks
Harshit
-------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------
Observer dylan.campbell
Observer
1,026 Views
Registered: ‎08-31-2018

Re: Artix 7 - Using ICAPE2 to program flash

Jump to solution

Thank you a bunch harshit!  That completely clears it up.