Necesito almacenar 1.5Gb / s de datos de video a través de SDRAM, lo que resulta en una combinación de entrada y salida de 3Gb / s.
Este es mi pensamiento hasta ahora:
La longitud de ráfaga de escritura / lectura se establece en máx (16 ciclos de reloj), y CL es de 3 ciclos de reloj, lo que significa que por cada 16 relojes, necesito al menos otro 3. Por lo tanto, 19% de sobrecarga para CL solo entre ráfagas.
Cambiar bancos / filas es otro de 15 ciclos de reloj (RP + WR + RC). El número máximo de escrituras en ráfaga que puedo hacer sin cambiar las filas es de 64 (según la guía de usuario de Xilinx spartan 6 MCB página 17). Esto requiere 77 relojes (64 escrituras de 16 bits * 1.19 para la sobrecarga de CL) y requiere 15 relojes adicionales para la configuración (o 20%) entre filas.
3Gb / s * 1.19 * 1.20 = 4.28 Gb / s.
Estoy considerando la posibilidad de sincronizar un dispositivo LPDDR a 166Mhz, que da 332Mhz para ambos bordes del reloj. Si uso un dispositivo con una longitud de palabra de 16 bits, obtengo 332Mhz * 16 bit = 5.3 Gb/s
, dentro de mi especificación de manera bastante cómoda.
Quizás este dispositivo?
Mi pregunta principal es: ¿Estoy en el camino correcto aquí? Esta es la primera vez que he tenido que diseñar una placa que contenga SDRAM, ¿estos números se ven bien? ¿Hay alguna manera de configurar el chip para minimizar aún más la sobrecarga? ¿Hay algo más que deba considerar? Lo último que quiero es seleccionar un dispositivo, construir el tablero y luego descubrir que mi elección es demasiado pequeña / lenta para mi aplicación.