Estoy trabajando en Xilinx virtex 4 FPGA. Quiero almacenar algunos coeficientes de filtro en Block RAM.
Específicamente, tengo muchos conjuntos de filtros, cada conjunto tiene 64 coeficientes, cada coeficiente es de 18 bits. Cada conjunto debe mapearse en un Block RAM distinto.
De la guía del usuario de Virtex 4 (enlace a pdf), dice que un Block RAM almacena 18 Kbits de datos que se pueden configurar en cualquier "relación de aspecto" desde 16Kx1, 8Kx2 hasta 512x36.
Entonces, si programo el Block RAM para que tenga 512 coeficientes, entonces tengo 36 Block RAM distintos a mi disposición.
Mi pregunta es, ¿puedo reducir esta relación de aspecto para programar Block RAM para almacenar 64 coeficientes, en cuyo caso tendré 288 Block RAM distintos a mi disposición (64 x 288 = 18K)?
Si la respuesta es NO, ¿cómo debo almacenar mis coeficientes para usar los recursos mínimos de RAM del bloque?
No, has entendido mal el concepto de "relación de aspecto".
Cada chip tiene un número fijo de bloques de RAM; Puede encontrar este número en la hoja de datos.
Cada uno de esos bloques de RAM tiene 18 000 bits y se puede configurar para acceder a esos bits de varias maneras diferentes, desde 16 000 palabras de 1 bit cada una hasta 512 palabras de 36 bits cada una. En el primer caso, puede leer o escribir un bit a la vez; en este último caso, puede leer o escribir 36 bits a la vez.
Para sus coeficientes de filtro, probablemente querrá configurar el bloque de RAM como 1024 palabras de 18 bits cada una. Podrá tener un filtro para cada bloque de RAM en su dispositivo y estará "desperdiciando" la mayor parte de la capacidad de cada bloque de RAM.
Hay algunos trucos que puede probar para admitir más de un filtro por bloque de RAM:
Si el direccionamiento de todos los filtros se ejecuta en bloque, puede configurar el bloque de RAM como 512 palabras de 36 bits y luego dividir el bus de datos de 36 bits en dos buses de 18 bits, enviando los datos a dos filtros separados. .
Si no necesita la función de puerto dual de las RAM de bloque, puede usar el segundo puerto para alimentar un segundo filtro. Ate la dirección MSB baja en un puerto y alta en el otro.
Si se aplican las dos condiciones anteriores, posiblemente podría usar ambas técnicas juntas para mantener coeficientes para cuatro filtros en cada bloque de RAM.
KharoBangdo
KharoBangdo
david tweed