DRAM en un FPGA - Diseño de sensor de imagen

0

Estoy diseñando la forma más simple de una cámara: un FPGA que interconecta un sensor de imagen y envía los datos adquiridos al dispositivo host a través de USB 3.0. No hay procesamiento en el FPGA, se utiliza para el control del sensor y la adquisición de datos.

Al estudiar varios recursos en línea, observé que normalmente se incluye una DRAM en el diseño para almacenar marcos secuenciales así como resultados de procesamiento intermedios. Al principio, mi plan era implementar:

Sensor de imagen == > FPGA == > DRAM (Adquisición)

DRAM == > FPGA == > USB Controller (Transferir al host)

Como no se realiza el procesamiento de la imagen, me preguntaba si es seguro omitir la DRAM en el diseño para reducir la complejidad del diseño. Por lo tanto, los datos de píxeles irán directamente del FPGA al controlador USB en cada ciclo, e implementarán una pequeña RAM interna como un búfer de píxeles muy pequeño en caso de que haya un bloqueo temporal del controlador USB.

¿Es eso factible o tendré muchas pérdidas de cuadros debido a cuellos de botella por transferencia?

    
pregunta Manos

1 respuesta

1

La memoria RAM tiene una funcionalidad de búfer. De esta manera, puede enviar ráfagas de datos en lugar de intentar sincronizar su flujo de datos entrante y saliente. Dependiendo del protocolo, es posible que tenga una sobrecarga significativa, por lo que desea tener la mayor cantidad de datos posible en un solo marco. Usando un búfer de RAM, puede verificar si los datos se han almacenado y luego construir su marco y la cámara no depende directamente de una conexión USB lista. Técnicamente, puedes omitir la RAM, pero al menos implementaría un fifo-buffer (ringbuffer) en el FPGA.

    
respondido por el Humpawumpa

Lea otras preguntas en las etiquetas