¿Cómo puedo cargar un archivo de datos en una SRAM externa a través de Quartus?

Estoy trabajando con una placa de inicio Cyclone V GX. Tiene 4mb de SRAM externa. He escrito una interfaz de memoria muy simple para acceder a ella. Eso funciona.

Ahora me gustaría cargar un archivo sin formato (¿hex?) en la SRAM externa de mi placa para que funcione mi FPGA. ¿Hay una manera fácil de lograr esto a través de Quartus II?

editar:

No estoy buscando una forma de programar mi FPGA (cargando un diseño), esto lo tengo claro. Mi FPGA ya tiene cargado el diseño de mi microcontrolador. Ahora quiero cargar un programa (en forma de datos sin procesar) en la SRAM externa de mi placa.

En teoría, una herramienta de programación conectada a la FPGA a través de jtag podría usar la funcionalidad de exploración de límites para mover las E/S de la FPGA y, por lo tanto, escribir en una SRAM externa conectada a ella. En la práctica, eso será terriblemente lento y sería mucho más eficiente cargar un fragmento de diseño en la estructura FPGA que pueda lograr esto de una manera más eficiente, posiblemente usando alguna otra interfaz para traer los datos desde la PC. ¿Ha considerado agregar un puerto SPI o un zócalo de tarjeta SD, o ver si puede agregar datos a la configuración flash y copiarlos desde allí a la RAM?
Publique el número de modelo de su placa de desarrollo.

Respuestas (2)

La aplicación "Panel de control" proporcionada por el fabricante real (Terasic) debería permitirle hacer esto: Placa Cyclone V GX

eso requiere que la FPGA tenga cargado el archivo de diseño del panel de control, ¿no? Necesito tener mi propio diseño FPGA cargado y darle algunos datos para trabajar.
Puede cargar primero el archivo de diseño del panel de control para cargar la SRAM (el propio panel de control utilizará automáticamente las dlls JTAG para hacerlo). Después de programar la SRAM a través del panel de control, puede cargar su diseño FPGA a través de las herramientas habituales de Altera. La SRAM debe ser completamente estática, por lo que no hay problema para hacerlo y el contenido debe conservarse siempre que no desconecte la alimentación de la placa.

No, no es posible acceder a la SRAM del Cyclone V GX Starter Kit directamente desde Quartus II. Desde la página 37 del Manual del usuario , la SRAM solo se conecta a la FPGA. Por lo tanto, la aplicación de usuario en la FPGA deberá ser responsable de escribir los datos deseados en la memoria externa.

Como mencionó Zuofu , el "Panel de control C5G" de Terasic puede acceder a la SRAM por usted, lo que permite el acceso R/W de una sola palabra o hacer R/W a/desde un archivo. Esto utiliza la aplicación de usuario personalizada de Terasic para enviar datos mediante JTAG a un programa Nios II que implementa una interfaz SRAM. Como se mencionó en su comentario posterior, dado que SRAM es completamente estático, puede cargar su archivo HEX usando el Panel de control y luego reprogramar el FPGA usando Quartus II con su propia aplicación. Con la placa encendida continuamente, el contenido de SRAM seguirá estando disponible para que su aplicación acceda.

El truco no funcionará para el LPDDR2 más grande porque, como memoria dinámica, la reprogramación del FPGA dejaría al dispositivo sin un controlador para completar los ciclos de actualización en la memoria. Por lo tanto, esperaría que se produjeran daños en la memoria.

Para incluir este tipo de función en su propia aplicación, tendría que implementar ambos extremos de un sistema de comunicación JTAG para mover datos hacia/desde su computadora y hacia la FPGA para enviarlos a la SRAM.