Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

27/05/2008 #1


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.
02/06/2008 #2


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;
02/06/2008 #3


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.
03/06/2008 #4


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
03/06/2008 #5


mmm entonces prueba haciendo filter_in un bit_vector haciendo algo asi

delay_pipeline(0) <= conv_real(filter_in) ;
03/06/2008 #6


Hijoles, No existe tal funcion, entonces tendrias que convertir a entero y hacer la operacion con un real.

o probar con esta:

delay_pipeline(0) <=real ( conv_integer(filter_in) );



busca en el mathpack que funcion te puede servir:

http://dz.ee.ethz.ch/support/ic/hdl/vhdlsources.en.html
03/06/2008 #7


Y que tal representar el numero como IEEE764 ?
06/06/2008 #8


como es un numero asi?
03/12/2009 #9


Respuesta: Problemas con instrucciones en VHDL para hacer un filtro FIR
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
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.