TODOPIC

Otros Microcontroladores / Dispositivos programables => Lógica Programable => Mensaje iniciado por: Kid_Bengala en 10 de Marzo de 2006, 13:02:00

Título: Diferencias entre CPLD y FPGA
Publicado por: Kid_Bengala en 10 de Marzo de 2006, 13:02:00
Hola:

Me gustaria si alguien puede explicarme como es una CPLD y una FPGA como para tontos loco jejeje. Porque no se si sera porque estoy dormido o porque pero no em entero de nada.

Se que un CPLD tiene un bloque logico que son matrices de puertas, no??? y luego ls macroceldas que esto ya si que me lio (o son los PLD normales y los CPLD tienen algo mas avanzado??). Me supongo que entre modelos de CPLD seran los bloques logicos (si tienen mas integracion) y que ms cambiaria?.

Y claro, sino entiendo las CPLD como para enteder las FPGA con sistemas a autoruteo (creo haber leido algo), y creo que solo disponen de bloques logicos, no??.

Ahora la pregunta del millon de dolares, que sera porque no entiendo nada de esto. Como elegir entre CPLD o FPGA??. Thanks !

Un saludo.
Título: RE: Diferencias entre CPLD y FPGA
Publicado por: laloavr en 10 de Marzo de 2006, 13:40:00

Mira este link

http://www.fpga4fun.com/index.html
Título: RE: Diferencias entre CPLD y FPGA
Publicado por: Kid_Bengala en 18 de Marzo de 2006, 11:37:00
Hola:

He mirado eso y algo en mis libros y la verdad no se si es que duermo poco (problemas personales que no me dejan dormir) o que soy demasiado tonto. No entiendo muy bien.

- Las FPGA tienen bloques logicos y sistemas verticales y horizontales de ruteo y el CPLD no. ¿estoy en lo cierto?.

- Las FPGA pueden contener mas puertas y asi poder realizar circuitos mas complejos.

- Las FPGA pueden realizar varios procesos a la vez ¿no?.

- Los CPLD pueden tener mas velocidad ¿no?.

La verdad que no entiendo muy bien las diferencias entre unos y otros; y cuando elegir uno u otro, quizas deberia saber mas de electronica digital. ¿Alguna recomendacion para adentrarme en este fascinante mundo?. Es que soy autodidacta. Thanks !!

un saludo.
Título: RE: Diferencias entre CPLD y FPGA
Publicado por: antoniof en 19 de Marzo de 2006, 11:13:00
Las FPGAs son más versátiles y tienen más lógica para hacer circuitos digitales.

Los CPLD son puertas lógicas AND y OR exclusivamente. Las FPGAs además tienen memoria RAM, controladores de reloj, etc, que las hacen mejor para diseñar sistemas embebidos con microprocesador. La contra es que son más caras que los CPLDs

En ambos, se pueden realizar procesos en paralelo y la velocidad depende siempre del diseño del circuito y del dispositivo elegido.

Si vas a empezar en el mundillo, mejor comprate una FPGA. Podrás hacer más cosas que con un CPLD.
Título: RE: Diferencias entre CPLD y FPGA
Publicado por: Kid_Bengala en 20 de Marzo de 2006, 14:15:00
Hola:

La verdad es que tengo dos placas de Xilinx, una de CPLD y otra de FPGA. Claro, estan sin usar por no tener ni idea. Yo creia haber leido que los CPLD tienen bloques logicos y luego macroceldas y las FPGA bloques logicos y sistemas de ruteos mejores; desconocia que tenian ram y demas, vamos que estoy descubriendo que soy mas negao de lo que pensaba Llorando.

La verdad es que me gustaria aprender bien esto y asi poder saber cuando elegir una CPLD de ciertas caracteristicas respecto a otra; asi como con una FPGA lo mismo y entre ambas(CPLD vs FPGA); pero me parece que esto no es lo mio y mejor me dedico a matar el rato limpiando la casa jejeje. Gracias.

un saludoLlorica
Título: Re: Diferencias entre CPLD y FPGA
Publicado por: Kid_Bengala en 17 de Abril de 2006, 17:47:20
hola
Sigo emperrao en aprender las diferencias antes ponerme a aprender a programar vhdl. En esta web http://www.dicom.unican.es/espanol/gilberto/CAP5.html he encontrado esto.

- En general resulta más rentable utilizar CPLD frente a FPGA cuanto tenemos una lógica relativamente compleja y nos es excesivo el número de operaciones a realizar. El CPLD se aproxima más a un ASIC se pueden implementar operaciones más complejas. En ambos se utilizan celdas ya definidas de forma estándar, pero en las CPLD se trabaja directamente sobre dichas celdas, se realizan sus interconexiones físicamente. Sin embargo en las FPGA lo que hacemos es mapear estas conexiones sobre una memoria, tenemos una memoria externa de configuración que dice que conexiones se deben hacer.

- En general las FPGA son más baratas y de mayor capacidad, pero necesitan más área para hacer lo mismo, y el hecho de que necesiten una memoria EPROM además del propio circuito hace que el interconexionado externo sea más complejo y de peor calidad debido a los retrasos introducidos por las líneas, soldaduras, etc., que puede ser un problema importante.

- Como norma general se utilizará una CPLD para circuitos con pocas puertas, pero una vez que el circuito es mayor nos tendremos que ir a una FPGA. La decisión de construir un ASIC, suele tomarse para largas tiradas del circuito y cuando este está muy probado, no obstante si el circuito es sencillo y no tiene problemas de tiempos puede que sea más rentable dejarle en una FPGA o una CPLD.

Y ahora tengo mas dudas, no entiendo muy bien cuando realizar un circuito en CPLD o cuando hacerlo en FPGA. Dispongo de los dos, pero me gustaria saber cuando se debe utilizar uno y cuando el otro (habra unas cuestiones tecnicas que requeriran uno o otro). Por ejemplo en la FPGA creo que desarrollas el programa y el propio compilador de xilinx te dice el nivel (en porcentaje) de llenado en una FPGA de un modelo y asi en otro. ¿En los CPLD ocurre lo mismo?.

Ya que he visto en la seria X9632 y X9572 de Xilinx es parecida, solo que esta ultima aparte de la velocidad tiene mas Function Blocks, supongo que sera por tener mas puertas y estos bloques son eso, bloques de puertas.

Muchos se pensaran que porque no me dedico a otra cosa o soy tan inutil; pero es me gustaria saber un poco sobre este tema. gracias.

saludos
Título: Re: Diferencias entre CPLD y FPGA
Publicado por: antoniof en 22 de Abril de 2006, 05:04:18
Buenas de nuevo.

La verdad es que las diferencias las estas poniendo tu mismo en el post anterior.
Actualmente, son la gran variedad de CPLDs y FPGAs que hay en el mercado, no es fácil obtener diferencias claras en cuanto a capacidad, bloques hardware que incluyen, etc.

Yo creo que lo mejor que puedes hacer es centrarte en los dos dispositivos que tienes en tu poder, y buscarles las diferencias entre ellos, porque si lo intentas generalizar a todos los dispositivos del mercado, te vas a volver loco.

En principio, los CPLDs sólo tenían puertas lógicas interconectables entre si y las FPGAs además tenían bloques de memoria y registros. Pero esto ha cambiado ya muchisimo. Actualmente las empresas que se dedican a esto, deciden hacer algo, lo codifican en VHDL/Verilog, lo simulan y una vez que lo tienen todo acabado, buscan una FPGA/CPLD en función del tamaño y los requisitos hardware del proyecto para probarlo. Después se fabrica bien en ASIC o bien en FPGA/CPLD (lo que sea más barato en funcion de la cantidad a fabricar).

Otra cosa a aclarar es lo de la memroia volatil de la FPGA. Es cierto que se necesita una EEPROM para guardar la configuración, pero hoy en dia no hay FPGA que se precie que no tenga o bien una EEPROM interna o bien un módulo de comunicación con una EEPROM externa para autoprogramarse al ponerse bajo tension.

Otra cosilla es que tanto las FPGAs como los CPLDs se pueden programar en VHDL, por lo que no tengas reparo en comenzar a 'estudiar' porque lo vas a necesitar de todas formas.

Bueno después de todo el rollo, lo más importante es que te centres en tus dos dispositivos y busques las diferencias entre ellos, para decidirte por uno u otro. De todas formas, si estas empezando, la mayoría de proyectos simples que hagas (contadores, registros de  desplazamiento, etc.) te funcionarán en ambos dispositivos.