Escritura y lectura de la ROM FLASH en Nexys 2 Spartan 3-E FPGA

0

Soy un novato en las plataformas VHDL y FPGA. Tengo una placa Nexys-2 Spartan 3E FPGA que se proporciona con una ROM Flash de 16 MB. Quiero precargar las primeras 10-20 ubicaciones de memoria de esta ROM, cada ubicación con unos datos de 16 bits. Una vez que haya terminado con la parte de escritura Deseo leer estas ubicaciones de memoria en mi código VHDL (que es otro archivo * .bit). Revisé el sitio web de Digilent y también revisé algunos manuales de referencia, pero no pude tener la idea de acceder a esta ROM. Sería una excelente ayuda si alguien me puede guiar o ilustrar sobre cómo debo proceder para implementar esto.

    
pregunta user123

1 respuesta

1

No soy propietario de una placa Nexys II, pero si echamos un vistazo rápido a la guía del usuario y al esquema del sitio web de Digilent, puedo ver que todas las señales necesarias para programar el dispositivo de flash ROM están disponibles en los pines Spartan 3E. Esto es lo que hubiera esperado.

Para programar este dispositivo, puedes hacer una de estas dos cosas:

1) La primera opción es un proceso de dos pasos en sí mismo. Primero crea el código VHDL para un programador de Flash, que borra un bloque y escribe sus nuevos datos en la ROM. Necesitará la hoja de datos de la ROM Intel Flash para hacer esto. Luego, asigne los pines ROM en el archivo UCF de acuerdo con la tabla en la guía del usuario de Digilent y cargue este archivo .bit en la plataforma flash. Cuando comience, ejecutará el código del programador flash y escribirá la ROM para usted. Los datos que desea programar están en el VHDL y, por lo tanto, también en el archivo .bit para que el programador pueda acceder a los datos para escribir en flash; o

2) el dispositivo Flash ROM no tiene una interfaz JTAG y, por lo tanto, no forma parte de la cadena JTAG. Sin embargo, con un poco de trabajo, puede usar un archivo BSDL (Lenguaje de descripción de exploración de límites), disponible en Xilinx para FPGA en su tablero, y utilizando OpenJTAG puede voltear bits en el FPGA para programar el dispositivo.

Esta "Programación de exploración de límites" del dispositivo flash es bastante común en la producción, sin embargo, si no tiene un buen programador de exploración de límites, puede ser tedioso hacerlo a mano con los comandos OpenJTAG.

Recomiendo la opción (1), ya que probablemente sea la más rápida de cumplir. Necesitará la hoja de datos de Intel para la ROM StrataFlash y básicamente enviará los comandos a la ROM para realizar un ciclo de borrado y un ciclo de escritura para sus datos.

Para los 20 bytes que desee programar en la ROM, consideraría un programador flash simple de 20 bytes en VHDL.

Sin embargo, para algo más completo, hay una nota de aplicación de Xilinx Programador NOR FLASH para Spartan -3E Starter Kit . Eso es para otra placa, pero puede modificarse fácilmente para su propia placa cambiando las asignaciones de pines. Esa nota presenta un diseño que programa el FPGA con un UART y un MCU Picoblaze para que actúe como un programador de ROM flash con todas las funciones.

    
respondido por el Brian Onn

Lea otras preguntas en las etiquetas