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
9,961 Views
Registered: ‎01-21-2016

Reprogram FPGA usign internal signal (autoreset)

Jump to solution

Hello all,

I have a Nexys4 DDR and I want to reprogram it, as it's done with "PROG" button. My bitstream (.bin) is stored in QSPI.

Reprogram usign Vivado is not a solution because I'm doing a fault injection campaign and it is going to be reprogrammed several times.

As example I would like to connect the IPROG/Program_B signal to be triggered when something happens like the output of my circuit is "1", or using a switch.

How can I do that? Is there other solution? I've read documentation about multiboot but I don't want to load two bitstreams, only one and reprogram the FPGA with it when I want. I suppose that using the Program_b signal is the way to go but I don't know how I can use it.

Some code, tutorial or documentation would be appreciated.

Thank you

0 Kudos
1 Solution

Accepted Solutions
18,523 Views
Registered: ‎01-21-2016

Re: Reprogram FPGA usign internal signal (autoreset)

Jump to solution

Thank you all for your answer.

While I'm developing a way to reprogram the FPGA using Multiboot but with only one bitsteam as pointed here, I'm using a temporally solution I've seen in diligent forums.

 

For anyone in my situation, the solution is to take a wire, connect it to the PROG button on the FPGA and to a PMOD output. Inside Vivado, you have to connect the reprogram signal of your circuit (in my case SEM IP) to the PMOD pin like this

 

set_property -dict { PACKAGE_PIN C17   IOSTANDARD LVCMOS33 } [get_ports reprogram_signal]; #IO_L20N_T3_A19_15 Sch=ja[1]

Be aware that the ouput must be inverted in order to work:

reprogram_signal <= NOT reprogram_signal_active

explanation.jpg

View solution in original post

0 Kudos
4 Replies
Teacher drjohnsmith
Teacher
9,949 Views
Registered: ‎07-09-2009

Re: Reprogram FPGA usign internal signal (autoreset)

Jump to solution

partial re configuratoin could be what your looking for,

 

have a search 

<== If this was helpful, please feel free to give Kudos, and close if it answers your question ==>
0 Kudos
Community Manager
Community Manager
9,941 Views
Registered: ‎07-23-2012

Re: Reprogram FPGA usign internal signal (autoreset)

Jump to solution
As you are aware of multiboot concept, what you can do is instantiate ICAP in your design and you can specify the next boot address to the same address where your image lies. Once you assert IPROG through ICAP state machine code, you can initiate reboot and configure FPGA with the same image.
-----------------------------------------------------------------------------------------------
Please mark the post as "Accept as solution" if the information provided answers your query/resolves your issue.

Give Kudos to a post which you think is helpful.
Guide avrumw
Guide
9,925 Views
Registered: ‎01-23-2009

Re: Reprogram FPGA usign internal signal (autoreset)

Jump to solution

Take a look at this post - it seems to be asking the same question...

 

Avrum

18,524 Views
Registered: ‎01-21-2016

Re: Reprogram FPGA usign internal signal (autoreset)

Jump to solution

Thank you all for your answer.

While I'm developing a way to reprogram the FPGA using Multiboot but with only one bitsteam as pointed here, I'm using a temporally solution I've seen in diligent forums.

 

For anyone in my situation, the solution is to take a wire, connect it to the PROG button on the FPGA and to a PMOD output. Inside Vivado, you have to connect the reprogram signal of your circuit (in my case SEM IP) to the PMOD pin like this

 

set_property -dict { PACKAGE_PIN C17   IOSTANDARD LVCMOS33 } [get_ports reprogram_signal]; #IO_L20N_T3_A19_15 Sch=ja[1]

Be aware that the ouput must be inverted in order to work:

reprogram_signal <= NOT reprogram_signal_active

explanation.jpg

View solution in original post

0 Kudos