Microprocesador que controla SRAM a través de un FPGA

Tengo un ARM Cortex 3M (manual de referencia aquí ) conectado a través del FSMC (Controlador de memoria estática flexible) a un Spartan 6 FPGA. A su vez, el Spartan 6 está conectado a unas SRAM externas .

Necesito probar la SRAM en producción. Como yo lo veo, tengo dos opciones:

  1. Escriba un controlador SRAM directamente desde la FPGA (sin involucrar a Cortex).
  2. Dirija los pines de memoria Cortex a través de la FPGA a la memoria.

Al leer las especificaciones de la SRAM, parece que escribir un controlador SRAM para la FPGA es una tarea relativamente difícil. Por lo tanto, me inclino por la opción 2. Sin embargo, me dijeron que puede haber problemas de latencia si ingenuamente conecto el Cortex con la SRAM.

¿Cómo puedo lidiar con esos posibles problemas de latencia? ¿Existen otras dificultades derivadas de la opción 2 que podría estar pasando por alto?

¿Qué hace el FPGA en este circuito si no es el controlador de memoria?
Eventualmente, en el producto final, será (parcialmente) el controlador de memoria. Sin embargo, para las pruebas de producción, el FPGA viene en blanco.
¿Qué tal una hoja de datos para la SRAM? ¿Está diseñado para la prueba de exploración de límites?
@ThePhoton: Aquí hay un enlace a la hoja de datos de SRAM.

Respuestas (1)

Presumiblemente, el FPGA tiene algún propósito para su conexión SRAM, aunque no ha especificado cuál es. Supongo que su mejor apuesta sería tener un medio por el cual Cortex pueda influir suficientemente en cómo el FPGA escribe en SRAM, y averiguar lo suficiente sobre lo que está leyendo, para determinar si SRAM está funcionando correctamente. Por ejemplo, si la FPGA normalmente escribiría la SRAM con datos capturados recibidos de un ADC y los enviaría, después de un retraso, a un DAC, uno podría tener un modo de prueba que en su lugar escribiría datos de un registro de desplazamiento de retroalimentación lineal. , y otro modo de prueba que mezclaría datos leídos de la SRAM en un registro de desplazamiento de retroalimentación lineal con toques ligeramente diferentes. Si uno puede hacer arreglos para que cada modo de prueba se ejecute a través de la SRAM un número controlado de veces,

Gracias por esas ideas. Desafortunadamente, cuando mis pruebas se ejecuten, el FPGA no tendrá ninguna lógica (aparte de mis pruebas).
¿Por qué se conecta la FPGA a la SRAM? (a) si el FPGA en la aplicación final actúa como un controlador de memoria simple porque el ARM por alguna razón no se puede conectar directamente a la SRAM, entonces programe el FPGA de la misma manera en su prueba de producción y deje que el software entre ARM prueba la SRAM. (b) si el FPGA en la aplicación final está haciendo algo más complicado, tal vez leyendo y escribiendo la SRAM mucho más rápido que el chip ARM solo, entonces necesita tener una lógica personalizada en la FPGA que pruebe la SRAM de manera similar. (pero determinista) manera.