MATLAB a conversión VHDL

5

Cómo convertir cualquier código MATLAB (archivo .m) a VHDL (código .hdl). Como tengo que usar mi código de procesamiento de imágenes en un kit FPGA. ¿Alguna solución?

  • Método posible: usando el codificador hdl en forma simultánea, convirtiendo el código original en un código matlab incrustado.

  • Áreas de preocupación: procesamiento de imágenes, conversión de .m a .hdl, EMBEDDED MATLAB, ¿cómo obtener un archivo de imagen en el código MATLAB EMBEDDED?

Por favor, da cualquier ejemplo y explica.

    
pregunta Saurav

2 respuestas

8

Mi experiencia de Matlab a HDL (utilizando AccelDSP que luego compró Xilinx) no ha sido tan buena. Uno de mis problemas siempre ha sido que Matlab no ofreció ninguna forma agradable de instanciar un módulo (entidad en términos VHDL, objeto en términos OO) más de una vez si tenía un estado interno. Tuvo que pasar el estado anterior como parámetro y el nuevo estado saldría como resultado. ugh Ahora puede ser que la nueva sintaxis OO de Matlab sea compatible con el codificador HDL, pero apuesto a que no, ya que todas las herramientas HDL parecen limitar dramáticamente las partes del idioma que puedes usar.

Simulink es un asunto ligeramente diferente: si usa el entorno del Generador del Sistema Xilinx, puede usar toda la potencia de Matlab en el lado de la verificación de las cosas, y el extremo FPGA se limita a lo que XSG le proporciona bloques. de los cuales son de muy bajo nivel y eficientes. Descubrí que todo era un poco demasiado bajo y la creación de bloques de IP parametrizables fue un problema, así que volví a VHDL. ¡Echo de menos poder simplemente llamar a imread en cualquier archivo de imagen antiguo desde mi banco de pruebas!

Su área de preocupación con respecto a "recuperar un archivo de imagen" debe sonar las alarmas. Los FPGA casi siempre se utilizan para el procesamiento de imágenes en línea (es decir, tomar una imagen de una cámara en tiempo real). Para hacer esto, deberá comprender cómo funcionan los pines del chip del generador de imágenes (o cualquiera que sea su fuente de datos en tiempo real) y escribir el código para interactuar con ellos.

Como dijo alguien más, si tienes un FPGA grande y rápido, solo estás haciendo unos pocos sistemas, y estás preparado para la curva de aprendizaje (para FPGA hay mucho más que solo presionar el botón de compilación ... a diferencia del software ), entonces ve por ello. De lo contrario, puede usar su Matlab como especificación para alguien experto en la materia.

De hecho, he usado Matlab como especificación y fuente de datos de prueba en el pasado ... desarrolle un algoritmo en Matlab (con los FPGA en mente, pero no la codificación de una forma similar a FPGA). Use esto para crear datos de prueba con resultados dorados (exportados como archivos VHDL). Luego cree un modelo VHDL que se comporte con precisión de bits, igual que el Matlab (como se verifica con los datos de referencia de oro). He encontrado esto mucho más productivo (incluso con solo uno de mí) que usando generadores HDL "mágicos" :)

    
respondido por el Martin Thompson
-2

la conversión de código matlab a vhdl requiere que crees un código de función matlab y un script de archivo de prueba que pruebe la función matlab, o puedes crear un modelo de enlace simultáneo y convertir ese modelo a vhdl o verilog.

aquí hay un tutorial: matlab to vhdl conversion

pero hay situaciones en las que no es fácil convertir el código matlab a vhdl, por ejemplo, si su código matlab contiene funciones exponenciales o de registro, afortunadamente hay otras formas de hacerlo, pero requiere un aprendizaje adicional para hacerlo

    
respondido por el matlabcoder

Lea otras preguntas en las etiquetas