Necesito crear muchos bloques BRAM en mi diseño (Altera). Cada uno tiene un contenido de memoria único, determinado a priori mediante un algoritmo.
Antes, estaba configurando un parámetro para que cada celda BRAM leyera desde un archivo .MIF, pero esto hizo que mi tiempo de compilación durara para siempre.
Otro enfoque que inventé fue permitir la población "dinámica" de la memoria; el controlador del host podría enviar símbolos al FPGA para rellenar sus bloques BRAM. Esto es un poco más complicado de lo que me gustaría.
Esperaba que hubiera una forma de inicializar los BRAM con un literal. Cada bloque tiene solo 1 bit x 256, por lo que el código HDL resultante ni siquiera se vería que horrible.
¿Alguien sabe cómo hacer esto con el BRAM IP de Altera, o quizás incluso el de Xilinx?
ACTUALIZACIÓN 31/08/2016:
Hola, chicos, en realidad encontré una solución casi fácil para la inicialización de BRAM en Altera. En Quartus, hay plantillas integradas de VHDL y Verilog que pueden inferir automáticamente BRAM. Estas plantillas tienen utilidades de inicialización de memoria integradas que el usuario puede modificar para rellenar con los datos que desee (como un vector de bits de un genérico). Consulte esta página de ayuda de Quartus .