Programmable Devices
CPLDs, FPGAs, SoC FPGAs, Configuration, and Transceivers
20640 Discussions

Remote Update Cyclone III from EPCS

Altera_Forum
Honored Contributor II
1,385 Views

I am able to load in an Application configuration from a specified address in the EPCS, but after a certain time the device reconfigures itself with the Factory configuration (at address 0). 

 

I am not using a Nios processor. Reconfiguration is controlled by an external processor and a simple state machine in the FPGA. 

 

It seems that the first time I trigger the device to reconfigure itself with the Application configuration (address 30000) it will immediately reconfigure itself with the Factory configuration. On subsequent times it will keep the Application configuration for about a minute before reconfiguring itself with the Factory configuration. 

 

It seems like it has something to do with the watchdog timer, but I have not enabled it. I have not been successful yet in reading back the status from the Remote Update circuit so I can't tell what caused the reconfiguration. I connected a signal that has a short pulse every millisecond up to the reset_timer line but that made it such that the FPGA would revert back to Factory configuration immediately every time I triggered a reconfiguration with the Application configuration. 

 

Any ideas on what to look for would be appreciated.
0 Kudos
14 Replies
Altera_Forum
Honored Contributor II
489 Views

Watchdog timer would have been my first guess as well. Another thing to check though is if there is a bug in your software (overrunning memory, invalid pointer) and you're accidentally writing to the remote_update core and performing a restart. 

 

Jake
0 Kudos
Altera_Forum
Honored Contributor II
489 Views

One way to check is to get the processor running in application mode, then connect to the processor using the NIOS II debugger. Let the processor remain paused and see if the FPGA still gets reconfigured. 

 

Jake
0 Kudos
Altera_Forum
Honored Contributor II
489 Views

I don't have a Nios processor. 

I use some simple logic in the FPGA and an external processor. 

I know the external processor is not triggering the reconfiguration at random times because I am manually forcing the event by writing to a specific address. I never get an unexpected reconfiguration when running with the Factory image. 

Can you point me to any documentation that shows what the default state of the watchdog is? I am not enabling it, but it really seems like that is what is triggering the reconfiguration. 

Thanks.
0 Kudos
Altera_Forum
Honored Contributor II
489 Views

I added logic to explicitly disable the WDT and it fixed the problem.

0 Kudos
Altera_Forum
Honored Contributor II
489 Views

David, or anyone - I am seeing the exact same behavior in my testing. I'm wondering what you did to disable the WDT. 

 

I have tried tieing reset_timer to a '1' in the VHDL with no success and have tried setting it to a '1' under software control after I see the RSU succeed but that does not work either. 

 

Any thoughts? 

 

Thanks 

Keivn.
0 Kudos
Altera_Forum
Honored Contributor II
489 Views

I have attached the VHDL file I used for configuration. You can search for WDT. Hope this helps.

0 Kudos
Altera_Forum
Honored Contributor II
489 Views

I have written state machines for factory and application images -cyclone3-AS mode-EPCS16. 

Do I need ALTASMI mega function to connect serial device(I2C)? 

I read that there is no need of ALTASMI.But,how the data transfer takes place between I2C and EPCS? 

 

How do I build SOPC?Greatly appreciate if anyone can guide me!
0 Kudos
Altera_Forum
Honored Contributor II
489 Views

Thanks David - I coded up something similar to what you suggested and it is working well now. Funny thing is (I thought) we were doing the same steps in software before and it did not. But thanks again I appreciate your help.  

 

- Kevin.
0 Kudos
Altera_Forum
Honored Contributor II
489 Views

Brunda - Yes, you need the ALTASMI core in your code. The pin mapping is transparent but you need it there to make the connection between your state machine and the ASMI (hard macro) block itself.

0 Kudos
Altera_Forum
Honored Contributor II
489 Views

Thanks very much for your quick reply. 

Following on the same,the image update circuit has the controller logic & update logic. 

The controller logic reads the data from I2C and the update logic writes the image from the controller logic to EPCS. 

Its not fully clear to me how to use I2C with controller logic. 

 

The I2C that i'm using has both slave and master pins. 

Greatly appreciate your inputs.
0 Kudos
Altera_Forum
Honored Contributor II
489 Views

Brunda - without knowing more about your circuit it is difficult to answer you. Is the I2C a part of an SOPC build?

0 Kudos
Altera_Forum
Honored Contributor II
489 Views

Yes,I2C is part of SOPC build. 

 

I2C-->Controller logic to read new image from I2C-->Update logic to write new image into EPCS-->ASMI_PARALLEL-->EPCS
0 Kudos
Altera_Forum
Honored Contributor II
489 Views

I have basically followed AN603 which is AS implementation for STRATIX devices

0 Kudos
Altera_Forum
Honored Contributor II
489 Views

Brunda - I'm a little confused as to which EPCS device you are using, you mentioned Cyclone III AS mode epcs16 which is using a serial device in Active Serial mode and connecting to it using the ASMI parallel interface.  

 

I'm not sure that is the right way to go unless I am not understanding something you are saying.
0 Kudos
Reply