FPGA, accediendo a los datos en la RAM

0

Estoy usando un Altera Cyclone V DE1-SoC para un proyecto de procesamiento de imágenes y para poder hacer el "procesamiento" en el FPGA, pensé que probablemente necesitaba almacenar primero los datos de la imagen en el FPGA. Así que seguí adelante y convertí una imagen de muestra que quiero usar en un archivo .mif y usé la función multifunción del compilador de memoria (RAM: opción 1-PORT). Elegí el archivo .mif que creé y me aseguré de que la cantidad de palabras y el ancho de bits coincidieran. Todo parece haber funcionado bien hasta ahora, pero ... ¿cómo uso estos datos ahora? El archivo .mif contiene los valores de tono de una imagen en escala de grises de 240x320 y debo revisar estos valores uno por uno para aplicar la detección de bordes de Sobel. Hice esto usando MATLAB sin ninguna función incorporada, así que creo que también podré escribir el código necesario en Verilog, solo necesito acceder a los datos. Soy bastante nuevo en cosas FPGA, así que lo siento si esto tiene una respuesta muy simple.

(Además, si hay métodos que sean más sencillos que inicializar la memoria, sugiéralos. Es posible que esté complicando las cosas de forma innecesaria, pero no estoy seguro).

Cualquier ayuda es apreciada! Gracias de antemano.

    
pregunta Volkan Mutlu

1 respuesta

1

Dos cosas:

  • hay documentos Altera en la RAM incorporada que describen cómo acceder a la RAM, para leer y escribir; en su circuito de procesamiento de imágenes, necesitará una máquina de estado que rastrearía la dirección necesaria para leer, y esperó un tiempo específico para capturar los datos generados por la RAM;
  • parece que actualmente estás codificando los datos en la RAM FPGA (y la RAM se inicializará con esta imagen de datos después de la configuración de FPGA). Si va a desarrollar sus aplicaciones aún más cuando la imagen se pueda cargar "fuera" del FPGA, le recomiendo considerar el uso de RAM de 2 puertos: se usa un puerto para cargar la imagen (y se conecta a una máquina de estado), y se usa otro puerto para procesar la imagen (y conectada a otra máquina de estado).
respondido por el Anonymous

Lea otras preguntas en las etiquetas