Problemas con instrucciones en VHDL para hacer un filtro FIR

Estoy realizando un proyecto en el que tengo que implementar un filtro FIR pasabanda con frecuencia de paso de 9 a 15 KHz y con atenuacion de 60 dB en las bandas de corte(1 8 y 16 Khz), bueno cabe mencionar que soy nuevo en este tema por lo que decidi usar la herramienta FDA tool de Matlab, he hecho varias simulaciones y ya tengo el filtro que necesito, ahora el siguiente paso es implementarlo en VHDL para programar la FPGA MACXO2280C de Lattice Semiconductor. Aprovechando las bondades de Matlab he generado automaticaente el codigo VHDL de mi filtro, ahora bien mi problema es que a la hora de querer continuar con el programa ispLever de Lattice para compilar el archivo VHDL y hacer la configuracion necesaria para programar la FPGA tengo problemas de que me dice el compilador que no puede convertir un tipo de dato, el cual es la entrada del filtro digital.
 

Adjuntos

  • filter_859.txt
    17.9 KB · Visitas: 70
Se ve interesante tu filtro
sabes si te marca el error en

delay_pipeline(0) <= filter_in;

o te lo marca afuera del componente?

prueba con

delay_pipeline(0) := filter_in;
 
torresdelamora dijo:
Se ve interesante tu filtro
sabes si te marca el error en

delay_pipeline(0) <= filter_in;

o te lo marca afuera del componente?

prueba con

delay_pipeline(0) := filter_in;

delay_pipeline es SIGNAL por lo tanto la asignacion debe realizarse con <= y no con :=

Lo que esta mal es parte de la logica, toda la información que entra y sale por los pines del FPGA, son bits, por lo tanto el puerto de entrada y salida debe ser un arreglo de bits (que represente el numero real), es por que dice que falla la conversion a std_logic.

Habria que ver si existe una funcion para hacer la conversion.

Un programa asi puede ser sintacticamente correcto, y puede funcionar en un simulador pero al momento de sintetizar obviamente marcara error.
 
Exactamente el problema es que a la hora que se va a sintetizar el circuito es cuando no puede convertir la entrada Real, bueno eso lo acabo de descubrir el dia de ayer, por lo que solo ocupara a Matlab para saber los coeficientes del filtro en caso de que no encuentre alguna funcion para convertir este dato de entrada, alguien tiene algun codigo de cualquier filtro FIR para que me de una idea de como lo debo de implementar?.

Agradecere sus comentarios, hasta pronto
 
Saludos.......
Quisiera saber como es posible pasar codigo hecho en Matlab a VHDL...... pues he hecho una modulacion QPSK en matlab, ya que mi proyecto requiere programar una FPGA para que haga dicha modulacion
gracias
 
Atrás
Arriba