Estoy trabajando en un proyecto en el que estamos capturando señales de un ADC usando un FPGA Virtex-5 y las muestras se almacenan en una SRAM de 128K x 256 desde donde una PC adquiere las muestras de datos. Creo que el Virtex-5 ofrece una opción para una BRAM y, aunque entiendo que la profundidad no se acerca en nada a la que proporciona la SRAM, me gustaría utilizar la opción BRAM en la Virtex-5 como un búfer para contener la muestras temporalmente hasta que sean adquiridas por la PC. ¿Qué tan difícil sería implementar esto?
Buenas noticias. Esta es una aplicación muy común para las interfaces ADC. En realidad, es muy fácil configurar el bloque de RAM en los dispositivos Xilinx.
Deberá ejecutar el "Generador de memoria de bloque" Coregen de Xilinx, que generará básicamente un módulo VHDL de caja negra que puede crear instancias en su módulo VHDL de nivel superior. En el coregen, puede personalizar su RAM de bloque para que "se vea" como su SRAM externa existente. La única diferencia será que conectará señales en su módulo de nivel superior al nuevo módulo de caja negra que ha instanciado en lugar de a sus pines externos.
No estoy seguro de que pueda obtener un ancho de datos de 256 (¿realmente quiso decir 8?), pero creo que podría obtener una profundidad de 128K en la mayoría de los dispositivos Virtex-5. La hoja de datos que muestra la tabla de recursos de Virtex-5 (cuánta BRAM está disponible) está disponible aquí .
La hoja de datos que explica Block Memory Generator está aquí . Puede explicar la configuración, etc.
Para iniciar el generador de memoria de bloques en ISE 14, haga clic con el botón derecho en la jerarquía del proyecto y seleccione "nueva fuente". Luego seleccione el tipo de fuente como "IP (Core...") Luego seleccione Block Memory Generator como el tipo de IP como se muestra a continuación.
Una vez que se abra el "Generador de memoria de bloques", seleccione las opciones que desee y luego haga clic en configurar. Agregará el núcleo de la caja negra a su proyecto. Tendrá que instanciarlo en su módulo de nivel superior. Por lo general, puede ver la "plantilla de creación de instancias" haciendo clic en el núcleo en la jerarquía del proyecto y seleccionando "Ver plantilla de creación de instancias HDL" en la ventana de procesos.
Las RAM de bloque son muy fáciles de obtener para producir a partir de código HDL, sin necesidad de meterse con Coregen.
Las ventajas de hacerlo sin coregen son:
Consulte el manual de su sintetizador para saber cómo escribir código que inferirá RAM de bloque, y hay algunos ejemplos en las respuestas a esta pregunta.
FarhadA