manejo memorias quartus ll con fpga cyclone ll

hola comunidad un cordial saludo

Con dos compañeros estamos trabajando en la realización de un analizador de espectros en la banda UHF y VHF, con ancho de banda de 20 Mhz basado en la transformada rápida de Fourier (FFT) utilizando el FPGA Cyclone II: EP2C35F672C6, El algoritmo de la FFT lo tenemos ya casi listo, pero tenemos inconvenientes puesto que debemos ingresar a la FFT los datos que provienen de un ADC (board de evaluación de 8 bits 250MSPS 44-TQFP) de Analog Devices, tenemos 1024 entradas en la FFT y solo 8 bits en paralelo que provienen del ADC a una velocidad de 100MSPS, la solución que planteamos es utilizar una memoria FIFO en Quartus II versión 11.0 con la herramienta megawizard que almacenaría 1024 datos y después ingresen al algoritmo matemático, esto se haría cíclicamente para indicar los datos al usuario en tiempo real. El problema que tenemos radica en que no tenemos experiencia en el manejo del software puesto que en la universidad en la que estudiamos no se ha manejado este dispositivo a nivel avanzado, hemos realizado algunas pruebas utlizando PLLs disponibles en los diagramas de bloques y memorias Fifo pero siempre nos salen advertencias, errores o en el momento de la
simulación no nos resulta la respuesta esperada, estaríamos muy agradecidos si ustedes nos podría colaborar con esos convenientes para que el proyecto tenga un buen termino.

analizador de espectros.jpg

Captura.JPG
 
puedes revisar la serie de videos sobre el Diseño Lógico con Quartus II de la Universidad Politecnica de Valencia. Los videos estan disponibles en youtube:


personalmente encuentro mas facil utilizar algun lenguage descriptivo como verilog o VHDL en lugar de diagramas de bloque.
 
muchas gracias carferper:

miramos los vídeos pero no encontramos lo que necesitamos, fueron un fuente valiosa de información sobre el manejo de quartus ll.

Pero nuestra meta principal es almacenar 1024 bits en una memoria, tenemos 8 bits en paralelo que provienen del ADC a una velocidad de 100MSPS, los datos deben ser guardados en un vector para luego ser llamados para la realización de la FFT

Gracias a toda la comunidad si me pueden aportar con alguna idea o información de como realizar este procedimiento.

:)
 
Solo queria dejar mis dos centavos de ayuda:

1. Para el FIFO, hay que determinar primero como va a trabajar, es decir con una sola senal de relog (SCFIFO) o con dos (DCFIFO). En el primer caso, el uso del PLL debe asegurar que las senales esten sincronizadas.

2. El tamano maximo del FIFO depende del tipo de dispositivo que se utiliza y de las funciones que el FPGA realiza, lo que evidentemente tambien pone limites en la velocidad de procesamiento.

3. Hay mucha documentacion de ALTERA para este tipo de aplicaciones, incluyo algunos enlaces que pueden ser de ayuda (aunque probablemente ya la hayan revisado).

http://www.altera.com/literature/ug/ug_fifo.pdf

http://www.altera.com/literature/ug/ug_fifo_partitioner.pdf

http://www.johnloomis.org/ece595c/labs/rs232lab/ug_fifo.pdf

http://www.altera.com/literature/hb/cyc2/cyc2_cii51002.pdf

3. Algunas cosas a tener en cuenta: La velocidad de muestreo del ADC es 100MSPS, el dispositivo elegido es capaz de procesar los datos a esa velocidad? El tamano es 1024 bits, es decir 128 bytes. El dispositivo elegido tiene esa capacidad, considerando que muchos elementos son usados para el proceso FFT?

4. En caso de elegir operar de manera asincrona, es indispensable proveer de senales de control que indiquen cuando el FIFO esta lleno asi como cuando esta vacio (esto puede ser nonecesario si los tiempos son adecuados en el caso sincrono o de relog unico).

Por ultimo te anexo un trabajo FIFO que hice hace algun tiempo, la diferencia es que esta en Verilog y es para la familia Spartan de Xilinx, pero creo que te puede servir de punto inicial. En este, se usa codigo Gray para minimizar errores y se probo con dos frecuencias diferentes de relog: Primero con la escritura de datos mas rapida que la lectura de los mismos (creo que puede este ser tu caso) y segundo lo opuesto. El software que utilice era modelsim de Mentor Graphics y para la sintesis el software ISE de Xilinx. En el archivo pdf hay algunos enlaces interesantes acerca de el diseno de sistemas asincronos.

Saludos
 

Adjuntos

  • FIFO_Verilog.zip
    444.6 KB · Visitas: 20
Todas las memorias disponibles para implementar en la mayoria de los dispositivos FPGA son de tipo RAM. Algunos modelos contienen Flash. No conozco ningun dispositivo que incluya EPROM
 
Atrás
Arriba