# Reset the configuration of FPGA without reprogramming

I am doing an experiment on Xilinx VC709 board. The experiment involves removing and plugging in the DDR3 RAM while the FPGA is running. But every time I plug back the RAM I have to reprogram the FPGA. I am using JTAG to program the FPGA, which takes time to program. I tried reseting only the Microblaze which still couldn't detect the RAM when plugged back while it's running. Is there any other way that I can reset the configuration without having to reprogram?

Thanks

• It's difficult to answer without knowing details of your system - how is everything wired up. But you should have some configuration memory which you can upload your program to (makes reconfiguration faster after resetting the FPGA). Alternatively if you have a DDR controller core, that should have a reset signal which would need to be asserted after the RAM was inserted. Though DDR3 is really not meant to be hot-plugged. Nov 14, 2015 at 19:19
• No. You have to reprogram, i.e. reconfigure. But there will be ways to reconfigure from an on-board EEPROM or similar (taking < 1 second), then you only have to program that once using JTAG. It'll involve setting links on the FPGA's mode pins, and selecting the EEPROM in the JTAG chain. See manual for the rest of the details. Nov 14, 2015 at 19:27
• Are you using hot swapable RAM? Inserting RAM (or pretty much any chip) in a powerd circuit may cause latch up and eventually kill the device. Nov 15, 2015 at 10:42
• I am not aware of any sustem that allows you to hot-swap a DDR memory that easily. Are you sure this is what you want to do? Nov 16, 2015 at 17:49

This configuration is done by the memory controller, typically after power-up or reset. The FPGA boards from Xilinx etc. typically have a button CPU_RESET (or like) to assert a reset of the whole Microblaze-based system. If pushing this button helps, then you can also trigger the attached signal by your own to restart the system. EDIT: Just restarting the Microblaze is not sufficient, the memory controller must be reset too.
The FPGA can be reset by assigning the global set/reset (GSR). This "pin" is automatically assigned after configuration by the configuration FSM and can be user assigned by the STARTUP_* component.