Estoy usando el Spartan 3E Starter Kit y necesito almacenar una secuencia de bits de alrededor de 1 MB. Es un flujo de bits constante y lo conoceré en el momento de programar la placa. Necesito poder leer un bit a la vez de esta transmisión. Creo que necesito poner esta secuencia de bits en la memoria flash de la placa, ya que necesito que sea persistente incluso cuando no se le da energía a la placa. ¿Alguna idea de cómo se debe hacer eso?
¿Puede alguien señalarme un tutorial sobre cómo poner estos datos en el flash y cómo leerlos en algún otro módulo que los procese?
Dispositivos Xilinx:
Memoria:
Método 1: Cree ROM en su diseño de FPGA
Debido a que tiene los mismos datos en cada placa, una opción es usar bloques de RAM en el FPGA, configurados como ROM. Para hacer esto, crea una instancia de un bloque de RAM, pero no se conecta a los pines de escritura. Utilice una directiva de síntesis en su código HDL o archivo UCF para especificar el contenido inicial de la RAM. Lea la Guía del usuario de Spartan-3 Generation (Capítulo 4) para ver cómo instanciar la RAM y cómo acceder a los datos de la RAM. Si usa Xilinx ISE, probablemente también haya un "asistente" para generar el bloque de RAM y configurar los contenidos iniciales para usted.
Desafortunadamente, el Spartan-3E que está utilizando tiene solo 350 kbits de RAM en bloque, no 8 Mbits como necesita. Entonces, para que esto funcione, tendrá que elaborar un esquema para comprimir sus datos para que quepan en 350 kbits. Los detalles de cómo hacer esto dependen del tipo de datos que tenga. Si sus datos son especialmente aleatorios, puede que no sea razonable obtener tanta compresión.
Método 2: almacenar datos en la memoria externa
Dices que tienes un flash paralelo de 128 Mbit y un flash SPI de 16 Mbit. Deberá leer las hojas de datos de estas piezas y comprender cómo funcionan. Luego escriba una máquina de estado en su FPGA que pueda acceder a estos dispositivos. Pero este es su trabajo como diseñador de FPGA. Algunos extraños al azar en Internet no van a diseñar su FPGA por usted.
Para almacenar los datos en la memoria flash, inicialmente tiene dos opciones. Primero sería, si está construyendo estas placas en volumen, puede hacer que su taller de ensamblaje de placas programe previamente los dispositivos flash antes de ensamblarlos en las placas. Por lo general, les entrega un archivo de datos en algún formato que soliciten, y le cobran una pequeña tarifa adicional para que los datos se actualicen antes del ensamblaje.
Segunda opción: Lea la hoja de datos del dispositivo flash. Escriba un diseño de FPGA que le permita enviar datos desde alguna otra interfaz disponible en su placa (Ethernet, USB, SPI, I2C, lo que sea) y cárguelo en la memoria flash. En el momento de la fabricación, carga este diseño temporalmente en su FPGA y programa su flash; luego almacena un diseño FPGA de "tiempo de ejecución" diferente en la PROM de configuración integrada, que no tiene la capacidad de modificar el FLASH, y sus usuarios no tendrán la capacidad de estropear los datos.
¿Tiene un procesador suave como microblaze? Puede escribir en el DDR especificando la dirección base y luego escribiendo desde esa dirección en adelante. Creo que podría hacer lo mismo con el flash, aunque deberá consultar los documentos para conocer la sintaxis exacta.
neel mehta
gestión
neel mehta
el fotón
usuario3624
neel mehta
neel mehta