Restablecer la configuración de FPGA sin reprogramar

Estoy haciendo un experimento en la placa Xilinx VC709. El experimento consiste en quitar y conectar la memoria RAM DDR3 mientras se ejecuta la FPGA. Pero cada vez que vuelvo a conectar la RAM tengo que reprogramar la FPGA. Estoy usando JTAG para programar el FPGA, lo que requiere tiempo para programar. Intenté reiniciar solo el Microblaze que aún no podía detectar la RAM cuando se enchufaba mientras estaba funcionando. ¿Hay alguna otra forma de restablecer la configuración sin tener que reprogramar?

Gracias

Es difícil responder sin conocer los detalles de su sistema: cómo está todo conectado. Pero debe tener algo de memoria de configuración en la que pueda cargar su programa (hace que la reconfiguración sea más rápida después de restablecer el FPGA). Alternativamente, si tiene un núcleo de controlador DDR, debería tener una señal de reinicio que debería confirmarse después de insertar la RAM. Aunque DDR3 realmente no está destinado a ser conectado en caliente.
No. Tienes que reprogramar, es decir reconfigurar. Pero habrá formas de reconfigurar desde una EEPROM integrada o similar (tomando <1 segundo), luego solo tiene que programar eso una vez usando JTAG. Implicará establecer enlaces en los pines de modo de la FPGA y seleccionar la EEPROM en la cadena JTAG. Consulte el manual para conocer el resto de los detalles.
¿Está utilizando RAM intercambiable en caliente? Insertar RAM (o casi cualquier chip) en un circuito alimentado puede causar un bloqueo y eventualmente matar el dispositivo.
No conozco ningún sistema que le permita intercambiar en caliente una memoria DDR tan fácilmente. ¿Estás seguro de que esto es lo que quieres hacer?

Respuestas (2)

Si desenchufa el módulo DDR3 SDRAM, la configuración dentro del módulo se pierde. Después de volver a enchufar la SDRAM DDR3, la RAM debe reiniciarse. Por ejemplo, se debe configurar la latencia CAS deseada y la longitud de ráfaga (¡dentro del módulo!) y restablecer el DCM (del módulo) (si se usa).

Esta configuración la realiza el controlador de memoria, generalmente después del encendido o reinicio. Las placas FPGA de Xilinx, etc. suelen tener un botón CPU_RESET(o similar) para confirmar un reinicio de todo el sistema basado en Microblaze. Si presionar este botón ayuda, también puede activar la señal adjunta por su cuenta para reiniciar el sistema. EDITAR : solo reiniciar el Microblaze no es suficiente, el controlador de memoria también debe reiniciarse.

Simplemente reiniciar el controlador de memoria también podría ser una opción, si la señal de reinicio adecuada está accesible en su diseño. Pero, el estado del sistema operativo/aplicación normalmente se perdería de todos modos.

La FPGA se puede restablecer asignando el conjunto/reinicio global (GSR). Este "pin" es asignado automáticamente después de la configuración por el FSM de configuración y puede ser asignado por el usuario por el STARTUP_*componente.

De la Guía de la biblioteca Virtex HDL:

Este elemento de diseño se usa para interconectar los pines del dispositivo y la lógica con la señal Global Set/Reset (GSR), el enrutamiento dedicado Global Tristate (GTS), las señales de configuración interna o los pines de entrada para SPI PROM si se usa un SPI PROM para configurar el dispositivo. Esta primitiva también se puede usar para especificar un reloj diferente para la secuencia de inicio del dispositivo al final de la configuración del dispositivo y para acceder al reloj de configuración a la lógica interna.