# FPGA vs Microcontrolador, ¿cual es mejor?



## FantasticalTale

Se que para muchos de ustedes esta pregunta les parecerá totalmente absurda
y que es como si quisiera comparar una manzana con un chocolate¡¡¡¡ pero espero que se tomen 
la molestia de responderme..

Se muchas de las diferencias entre los dispositivos, porque he utilizado los dos para hacer practicas. Pero debido a que mis prácticas son muy sencillas (contadores, pwm, compuertas, corrimientos blah blah blah¡¡¡) no conozco todavia el POTENCIAL de ambos asi que me gustaria saber, que tanto es uno mejor que el otro y porqué, ventajas y desventajas entre ellos, en pocas palabras... cuál es el mejor. Hasta ahora puedo hacer lo mismo con los dos ya que las prácticas que me dejan en las dos materias son muy similares (de hecho iguales¡¡). 

Espero que me entiendan lo que quiero decir y que me lo digan con sus propias palabras asi que si es posible para uds traten de no mandarme enlaces a wikipedia que ya me lo sé de memoria jejejejejje

de antemano muchas gracias por tomarse la molestia
y saludos a todos¡¡


----------



## Chico3001

Segun lo que he visto un microcontrolador es bueno para aplicaciones de baja a mediana velocidad (hasta unos 70 - 100 MHz) y un FPGA es bueno para velocidades mayores... y esto es debido a su capacidad de configuracion, en ciertos casos he visto que los ocupan como coprocesador matematico de los mismos DSPs para poder hacer ecuaciones matematicas de manera casi instantanea

Otras aplicaciones es en donde se requieren multiples interfaces digitales o con muchos I/Os p.ej circuitos con multiples interfaces seriales y paralelas operando al mismo tiempo, o de alta velocidad de transmision de datos como PCI Gigabit Ethernet o pantallas LCDs de tamaños medianos a grandes

En cambio los Microcontroladores son buenos para aplicaciones menos intensas en transmision pero mas intensas en control de procesos, maquinarias y robots que requieren secuencias preestablecidas y decision de que accion tomar para el siguiente paso


----------



## Meta

Hola:

He leído que son muy complejos de programar.

Adiós.


----------



## Chico3001

No son complejos de programar, el modo de programacion es muy distinto a un lenguaje de programacion como estamos acostumbrados... y por eso se siente complejo

Pero en realidad se trata de declarar ecuaciones logicas usando entradas y salidas.. y listo.. el compilador hace el resto


----------



## Meta

Se ha hablado que son muy complejos de programar por eso no está tan difundido. Lo están haciendo mejor, más pequeño y posibilidad de ser más fácil con los años.

Dices que no, ellos dicen que si.


----------



## Elvic

saludos 

según eso y lo poco que he escuchado sobre el tema, de lo que puedes o no puedes hacer, con un dispositivo u otro...

Es, que en el FPGA, puedes programar hasta un micro-controlador de baja gama, bueno eso también depende, del conocimiento y Dominio de estos dispositivos, con los que se cuente..

Es decir  que  con un FPGA provee recursos "casi ilimitados" para procesos digitales,
y el micro controlador, aunque se aplica mucho mas en la practica es un poco mas limitado...

yo podría decir, que todo lo que no puedas realizar con un micro-controlador  lo podrías, hacer con un FPGA y esta seria la diferencia mas notable... 


PD: no mal interpretar la palabra "limitado" no encontré otra par expresar las diferencias...


----------



## FantasticalTale

No creo que sean más dificiles de programar creo que como son muy diferentes en su arquitectura, comportamiento y su lenguaje de programacion el hecho de saber programar bien un micro no te ayudará mucho entender el FPGA. Personalmente encuentro mas dificil al microcontrolador, por todo eso de sus instrucciones, registros, bancos de memoria, etc creo que son más cosas que hay que entenderle para programarlo bien que el FPGA ya que en este ultimo solo es como quieres que se comporte el hardware con compuertas y todo eso (al menos eso creo).

En cuanto a la velocidad, no sabia que un FPGA es más rapido que el micro... supongo que eso le da una gran ventaja. ¿habrá algo más que no sepa? me gustaria saber más ojalá que participen .

en fin muchas gracias por sus respuestas tan inmediatas
saludoss


----------



## Meta

Si programas el FPGA a C normal que no te parezca tan difícil, si en en ASM ya dirás. Cuando lo pruebas, ya nos contará como es. Por ahora es difícil acceso a conseguir esos FPGA que se están poniendo ahora de moda.


----------



## Elvic

saludos

para programar los FPGA se utilizan lenguajes de alto nivel, como se C, son lenguajes llamados HDL 

y es muy común el VHDL
uno de ellos es el active HDL, aunque supongo que la licencia de este software es mucho muy costosa  

como dato estos dispositivos pueden ejecutar instrucciones en paralelo .

suerT


----------



## Meta

¿Quién de aquí se atreve a comprarse un FPGA y un grabador?

No conozco a nadie y por algo es.

Ojalá venga alguien y nos muestren fotos del FPGA y proyectos.

Me meteré con los FPGA cuando saquen libros en español el que ahcen con los pic que hay de sobra y entre ellos el  mejor para novatos es el www.16f84a.org y otros más aquí.

Ni en Atmel está en español. Eso si, si FPGA se pone fuerte, saldrá de todo ya que se habla muy bien de ellos.


----------



## fernandob

yo hace años fui a una presentacion de elko , una "trilogia" lo llamaban.
presentacion de micros de philips (que nunca llegaron) , texas (que algo hay ) y motorola que al parecer hubo una pelea marital y se cambiaron el nombre    

creo que fue en esa que mencionaron lo de las FPGA y similares, yo quede asi   
una de las cosas que mencionaron es que una de las empresas que fabrica estos bichos hizo un soft para que no sea ningun problema la micracion de la electronica dconvencional hacia estos bichos.
vos pones tu diagrama clasico con compuertas , contadores y demas, a lo antiguo, como lo venias fabricando usando 7 chips TTL por dal un ejemplo.
y el programa te hace todo, no necesitas saber programar nada.

otra cosa claro es queien empieza de cero, o el ingeniero que quier econocer de verdad a estos bichos y sacarles el jugo , ahi si no solo es saber programar sino que manejar en la cabeza como si fueses un director de concierto todos los recursos disponibles ........lo mismo pasa con los micros.

un saludo


----------



## FantasticalTale

Eso si es lo malo, que no hay mucho acerca de los FPGA en español y por eso hay mucha gente que no sabe mucho acerca de ellos. Yo lo poco que he visto ha sido en la escuela pero no he encontrado ningún tutorial o algunas practicas para FPGA por internet, es por eso que quisiera saber que tanto se puede lograr con un FPGA.

Otra desventaja muy grande que le veo es que si compras un kit con FPGA, es solamente para ese, no podrás programar ningun otro chip. En cambio para los micros existen muchos programadores y kits que se encargan de programar varios tipos de microcontroladores las veces que sean. creo que nada mas por eso me inclinaria más a comprar un kit para micro que un FPGA ya que no puedo comprarme los dos t.t


----------



## Meta

Cuando cambie las cosas a mejor y se resuelvan. A lo mejor habrá algo de tutoriales.


----------



## Chico3001

Meta dijo:
			
		

> ¿Quién de aquí se atreve a comprarse un FPGA y un grabador?



Yo tengo 2 de marca Altera... y la verdad no son mas caros que un PICStart plus o un ICE PIC (alrededor de 150 usd) pero desafortunadamente no he tenido tiempo de aprender la programacion en forma.... para mi mala suerte he tenido que aplicar el dicho de "Mas vale malo por conocido que bueno por conocer" y generalmente me voy por lo mas facil y rapido que conozco y eso han sido los microcontroladores... 

Pero si he asistido a cursos de FPGAs y puedo decir que cada uno tiene ventajas y desventajas... un FPGA es mas potente y rapido, pero requiere de mas programacion y estudio de la electronica... un Micro es mas rapido y facil de implementar... pero no siempre es la mejor opcion

Hay casos muy claros donde no hay manera posible implementar un microprocesador... y una que se me ocurre es en la adquisicion de datos de alta velocidad... como pondrian un microcontrolador a hacer muestreo de un convertidor AD de 2, 100 o incluso 2000 Mega muestras por segundo? (Msps), solo el FPGA tiene la capacidad de adquirir y procesar esa cantidad de datos...


----------



## torresdelamora

yo tengo mi fpga, y no me arrepiento de haberla comprado. 

recomiendo que se consigan el suyo para que esten al tanto en la electronica.

para programar en hdl algunas cosas en la forma de pensar cambian porque no toda instruccion es sintetizable a compuertas que si se podia hacer en otro tipo de lenguaje como c.

el que diga que es complejo programarlas es porque no las ha programado, al principio cuesta como todo, a quien lo le costo empezar a programar los micros ?  pero si ya manejabas un lenguaje como c o basic,  ya no te cuesta tanto aprender.

Saludos


----------



## Meta

Por ahora los FPGA no valen la pena par hacer cosa que hacemos nosotros con PIC. Si acaso satélites o robots para el espacio, Luna y Marte. Cosas de esa si lo utilizan y micros de Intel (No el de los PC) y otras marcas.

Mientras haya PIC, poco veo que le importe los FPGA a la gente.

Todavía sigo son ver quién tiene eso o al menos proyectos de algo para verlo.


----------



## torresdelamora

si tu lo dices....


----------



## pic-man

Meta dijo:
			
		

> Mientras haya PIC, poco veo que le importe los FPGA a la gente.


Lo que pasa es que los microcontroladores no se usan para lo mismo que los FPGA. De seguro la mayoría de las empresas que desarrollan hardware (procesadores, chips gráficos, incluso microcontroladores PIC) hacen sus desarrollos en FPGA y después ya que están probados y depurados pasan esos desarrollos de un FPGA a un circuito final.

Los FPGA se usan y mucho, pero no se usan para lo mismo que un microcontrolador.


----------



## Meta

pic-man dijo:
			
		

> Meta dijo:
> 
> 
> 
> 
> Mientras haya PIC, poco veo que le importe los FPGA a la gente.
> 
> 
> 
> Lo que pasa es que los microcontroladores no se usan para lo mismo que los FPGA. De seguro la mayoría de las empresas que desarrollan hardware (procesadores, chips gráficos, incluso microcontroladores PIC) hacen sus desarrollos en FPGA y después ya que están probados y depurados pasan esos desarrollos de un FPGA a un circuito final.
> 
> Los FPGA se usan y mucho, pero no se usan para lo mismo que un microcontrolador.
Hacer clic para expandir...


Entonces ahí está el motivo,a la gente no le interesa mucho salvo a empresas.


----------



## FantasticalTale

Bueno, personalmente creo que los microcontroladores se utilizan más debido a que las aplicaciones que hacemos comunmente no son tan elaboradas y muy a menudo son para prácticas que dejan en la escuela. Creo que el usar un FPGA para este tipo de proyectos no seria lo más recomendable ya que es como querer matar a un pato con una bomba o un cañon cuando se tiene una escopeta (horrible mi analogía¡¡¡¡ pero espero que me entiendan)

Estuve checando y encontré que puedes hacer con los FPGAs sistemas de alto desempeño para Visión por Computadora, procesamiento de datos e imágenes. Sin duda llega al nivel de los DSPs. He pensado que cuando las aplicaciones requieren procesos matemáticos a un nivel medio-avanzado o una logica de programación un tanto complicada estos dispositivos ayudan mucho

aqui esta el link para los interesados
http://ccc.inaoep.mx/fpgacentral/         en el apartado laboratorio/areas de investigación

saludos¡¡


----------



## torresdelamora

Yo de lo que me han comentado y visto es que le dejan lo pesado al FPGA pero se lleva bien con los micros, dejandole a los micros las tareas sencillas. y asi combinan ambos en un mismo circuito.


pero para cosas de la escuela, probablemente poco le interese a un estudiante, por el momento..

Saludos


----------



## tiopepe123

Todo lo contrario, una fpga RAM es ideal para la escuela, ya que permite ver desde simple logica hasta la fabrcacion de una CPU de 4 bits.

Yo estudio la serie MAX7000 de altera y se podian hacer cosas muy potentes.
Ademas era reprogramable via RS232.


----------



## Meta

FantasticalTale dijo:
			
		

> Bueno, personalmente creo que los microcontroladores se utilizan más debido a que las aplicaciones que hacemos comunmente no son tan elaboradas y muy a menudo son para prácticas que dejan en la escuela. Creo que el usar un FPGA para este tipo de proyectos no seria lo más recomendable ya que es como querer matar a un pato con una bomba o un cañon cuando se tiene una escopeta (horrible mi analogía¡¡¡¡ pero espero que me entiendan)
> 
> *Se entiende bien. Si quieres un litro de agua, comprarás una botella de 1 litro para ella. ¿Por qué vas a comprar una botella de 16 Litro de agua si en ella solo utiliza 1 Litro?*
> 
> Estuve checando y encontré que puedes hacer con los FPGAs sistemas de alto desempeño para Visión por Computadora, procesamiento de datos e imágenes. Sin duda llega al nivel de los DSPs. He pensado que cuando las aplicaciones requieren procesos matemáticos a un nivel medio-avanzado o una logica de programación un tanto complicada estos dispositivos ayudan mucho
> 
> *Para eso están los dsPIC.*
> 
> aqui esta el link para los interesados
> http://ccc.inaoep.mx/fpgacentral/         en el apartado laboratorio/areas de investigación
> 
> saludos¡¡


----------



## marcopedraza

Hola, soy algo nuevo en este foro, pero llevo unos 4 años usando FPGA´s,  dos de manera profesional, y la verdad es que me gustan mucho pero no creo que se pueda hacer una comparación uno a uno con un micro, es como decimos aqui en México, "Acorde el sapo es la pedrada"  Dependiendo el tipo de aplicación que utilices determina el tipo de tecnología que necesitas. 

  Yo uso los FPGA's para la distribución de video en pantallas de led's gigantes, en algunas aplicaciones necesito 15 o 20 salidas seriales que se comporten independientemente eso es imposible de hacer con un PIC. 

   Asi mismo en algunas otras aplicaciones utilizar un FPGA es exagerado, por ejemplo leer una información serial, o un PWM o muchos de los proyectos que se tienen en este foro, claro que se pueden implementar en un FPGA pero es el equivalente de utilizar un Camion de 40 toneladas para comprar la despensa semanal. 

  Personalmente creo que utilizarlos en la universidad o para aprender sistemas digitales es mucho más didáctico que utilizar un micro o compuertas solamente, porque dentro del FPGA se pueden implementar todo y a la larga tener una mejor compresión de todo lo que realmente ocurre dentro un PIC, por ejemplo puedes implementar la arquitectura del 8051 y hacer todo un sistema mínimo embebido sin necesidad de estar peleando con cables. Te recomiendo visitar www.opencores.org ahí vienen muchos proyectos realizados. 

   El VHDL es un lenguaje basado en un estandar del IEEE  por lo que al utilizarlo puedes implementar tu diseño practicamente en cualquier FPGA independientemente del fabricante. 

Saludos


----------



## Meta

Hola:

Gracias por el enlace http://www.opencores.org/
La verdad es que hasta con el PIC32 de 32bits es mucho para nosotros y eso que he oído que tienen los PIC de 64 Bits hechos pero no  los vende los muy zorrines.
Así que si un PIC32 www.mypic32.com ya es mucho, me imagino un FPGA.
Buena, explicación.

Un cordial saludo.


----------



## eidtech

Desde mi punto de vista:

FPGA: Modelado y Prototipado en tarjetas de desarrollo.

Microcontrolador: Producto Final.

Desde mi punto de vista, el poder de los FPGA reside en el modelado y prototipado de circuitos en tarjetas de desarrollo, es decir soy Atmel y quiero diseñar un nuevo microcontrolador, pues bien lo que voy a hacer es que lo voy a modelar en un lenguaje de descripción, luego ese modelo lo paso a un FPGA y hago una verificación y validación del modelo, cuando este modelo se encuentre listo, lo mando a producción y me olvido del FPGA. Hoy en dia las fabricas de circuitos integrados, aceptan tu modelo en VHDL y de ahi te producen un chip.

Cosa que no sucede con un microcontrolador, donde es para que desarrolles una aplicación final.

Ahora bien, los FPGA han adoptado otras areas, como son computo de alta velocidad o alta demanda, aplicaciones con muchas I/O.

Pero es un hecho que es dificil realizar un producto final con un FPGA, ya que estamos hablando de circuitos con bastantes puertos de entrada/salida, lo cual te da una densidad muy grande, es dificil de soldar (si es que tiene pines y no es un BGA), ademas si trabajan a frecuencias de varios cientos de Mhz, deberas tener un PCB listo para tal tarea. En tu producto final no vas a incluir una tarjeta de desarrollo de 100 u 200 USD, por que si no el precio se te eleva bastante, comparando esto con poner un microcontrolador de algunos dolares. Si no tienes de otra, pues ahi si.. utiliza un FPGA, pero antes pudieras ver por un ARM o un DSP.


----------



## Meta

Si quieres más que un PIC de 8 Bits, mejor utilizar uno de 16 Bits o 32, e incluso el futuro 64 bits.

Mucho pastel le veo a los FPGA hoy en día, para nosotros no hace falta, solo a empresas y hobbistas muy entusiastas al tema por curiosidad, no por necesidad.


----------



## Chico3001

Meta dijo:
			
		

> Si quieres más que un PIC de 8 Bits, mejor utilizar uno de 16 Bits o 32, e incluso el futuro 64 bits.
> 
> Mucho pastel le veo a los FPGA hoy en día, para nosotros no hace falta, solo a empresas y hobbistas muy entusiastas al tema por curiosidad, no por necesidad.



No coincido contigo, si miramos en retrospectiva cuando la electronica estaba en pañales y ofrecieras una computadora como la conocemos hoy, todos te dirian... "Y para que?" sin embargo el mundo actual no puede vivir sin ellas... 

Por lo mismo los FPGAs van a ser cada vez mas utilizados, los micros se estan quedando cortos en algunas aplicaciones y por eso los fabricantes van sacando versiones mas grandes y potentes, pero solo un FPGA tiene la caracteristica de ser 100% actualizable solo con cambiar el codigo, y por eso los quiero estudiar.... hoy son un excelente complemento para algunas aplicaciones con micros y son muy buenos para aplicaciones grandes, pero mañana van a ser aun mas necesarios que los mismos micros... por que el mercado pide cada vez aplicaciones mas avanzadas


----------



## Meta

Chico3001 dijo:
			
		

> Meta dijo:
> 
> 
> 
> 
> Si quieres más que un PIC de 8 Bits, mejor utilizar uno de 16 Bits o 32, e incluso el futuro 64 bits.
> 
> Mucho pastel le veo a los FPGA hoy en día, para nosotros no hace falta, solo a empresas y hobbistas muy entusiastas al tema por curiosidad, no por necesidad.
> 
> 
> 
> 
> No coincido contigo, si miramos en retrospectiva cuando la electronica estaba en pañales y ofrecieras una computadora como la conocemos hoy, todos te dirian... "Y para que?" sin embargo el mundo actual no puede vivir sin ellas...
> 
> *Viendo tu punto de vista, me apunto. Tienes razón.*
> 
> Por lo mismo los FPGAs van a ser cada vez mas utilizados, los micros se estan quedando cortos en algunas aplicaciones y por eso los fabricantes van sacando versiones mas grandes y potentes, pero solo un FPGA tiene la caracteristica de ser 100% actualizable solo con cambiar el codigo, y por eso los quiero estudiar.... hoy son un excelente complemento para algunas aplicaciones con micros y son muy buenos para aplicaciones grandes, pero mañana van a ser aun mas necesarios que los mismos micros... por que el mercado pide cada vez aplicaciones mas avanzadas
Hacer clic para expandir...


----------



## FantasticalTale

Wow me meti a la página http://www.opencores.org/ que ofrecio marcopedraza.... sin palabras, algunos son proyectos muy avanzados a muchos ni les entiendo, como me gustaría que hubiera mas tutoriales para programar en hdl... bueno mas información al respecto, para aprender. Alguien sabe en donde puedo encontrar este tipo de información? con lo que ví en la escuela no fue suficiente¡¡¡

Y otra pregunta, los ASIC son chips diseñados para un solo fin, ¿no? me refiero a que si el programador hace su codigo lo lleva a que le hagan el CI ¿y ya no se puede volver programar?

Muy buen dia¡¡


----------



## Chico3001

FantasticalTale dijo:
			
		

> Y otra pregunta, los ASIC son chips diseñados para un solo fin, ¿no? me refiero a que si el programador hace su codigo lo lleva a que le hagan el CI ¿y ya no se puede volver programar?



Efectivamente, de echo muchos no son programados, son fabricados segun las especificaciones del cliente, pero hablar de ASICs es hablar de palabras mayores... de entrada ningun fabricante va a soltar información a menos que seas una compañia con capacidad de soltar varios millones de dolares...


----------



## Rafita-Man

pues la verdad es que estoy muy pero muy en desacuerdo con muchos de ustedes...
solo quiero recordarles que el tema principal del debate es ¿que es mejor: "microcontroladores" ó "FPGA's"?
... y la verdad es que ¡¡¡hasta la pregunta ofende!... por supuesto que los FPGA's son mucho mejores, y en especial los de la serie 9.2 i de Xilinx.
el único "inconveniente" que algunos de ustedes le ven a éstos dispositivos es que son "dificiles" de programar (no se si reírme o llorar)... pero por supuesto que no es dificil.
Como se atreven a decir que los microcontroladores son mejores... mas bien la cuestion es que muchos de los de aqui no saben realmente las ilimitaciones de la electrónica; deberían cambiar el título, en lugar de ¿"microcontroladores" ó "FPGA's"? deberian realmente preguntarse ¿yo mismo soy bueno ó no para la electrónica?... sólo les recuerdo que los deficientes no son los dispositivos (por caros, por improgramables ó por poco populares) más bien los deficientes son algunos de ustedes (sobretodo meta) que no estan preparados para la tecnología...
... alguna vez conocí un profe sabio. Cuando él iva a revisar las prácticas a sus alumnos, éstos le decían:
- ¡¡¡ se lo juro que ahorita estaba funcionando!, sólo que creo que tiene un falso
él contestaba:
- los falsos son ustedes...
no se les olvide amigos del chat, saludos


----------



## locobeatles

Rafita-Man dijo:
			
		

> pues la verdad es que estoy muy pero muy en desacuerdo con muchos de ustedes...
> solo quiero recordarles que el tema principal del debate es ¿que es mejor: "microcontroladores" ó "FPGA's"?
> ... y la verdad es que ¡¡¡hasta la pregunta ofende!... por supuesto que los FPGA's son mucho mejores, y en especial los de la serie 9.2 i de Xilinx.
> el único "inconveniente" que algunos de ustedes le ven a éstos dispositivos es que son "dificiles" de programar (no se si reírme o llorar)... pero por supuesto que no es dificil.
> Como se atreven a decir que los microcontroladores son mejores... mas bien la cuestion es que muchos de los de aqui no saben realmente las ilimitaciones de la electrónica; deberían cambiar el título, en lugar de ¿"microcontroladores" ó "FPGA's"? deberian realmente preguntarse ¿yo mismo soy bueno ó no para la electrónica?... sólo les recuerdo que los deficientes no son los dispositivos (por caros, por improgramables ó por poco populares) más bien los deficientes son algunos de ustedes (sobretodo meta) que no estan preparados para la tecnología...
> ... alguna vez conocí un profe sabio. Cuando él iva a revisar las prácticas a sus alumnos, éstos le decían:
> - ¡¡¡ se lo juro que ahorita estaba funcionando!, sólo que creo que tiene un falso
> él contestaba:
> - los falsos son ustedes...
> no se les olvide amigos del chat, saludos



que fanático sonastes.

ni uno ni lo otro, los FPGAs son mejores en su área y los microcontroladores en la suya.


----------



## Elvic

locobeatles dijo:
			
		

> ni uno ni lo otro, los FPGAs son mejores en su área y los microcontroladores en la suya.



de verdad apoyo este comentario, no es por nada, pero creo que diste en la respuesta adecuada sin la necesidad de comenzar una discusión.

saludos todos los del "FORO"


----------



## Chico3001

Elvic dijo:
			
		

> locobeatles dijo:
> 
> 
> 
> 
> ni uno ni lo otro, los FPGAs son mejores en su área y los microcontroladores en la suya.
> 
> 
> 
> 
> de verdad apoyo este comentario, no es por nada, pero creo que diste en la respuesta adecuada sin la necesidad de comenzar una discusión.
> 
> saludos todos los del "FORO"
Hacer clic para expandir...


Yo tambien estoy de acuerdo..


----------



## eidtech

Chico3001 dijo:
			
		

> Elvic dijo:
> 
> 
> 
> 
> 
> 
> 
> locobeatles dijo:
> 
> 
> 
> 
> ni uno ni lo otro, los FPGAs son mejores en su área y los microcontroladores en la suya.
> 
> 
> 
> 
> de verdad apoyo este comentario, no es por nada, pero creo que diste en la respuesta adecuada sin la necesidad de comenzar una discusión.
> 
> saludos todos los del "FORO"
> 
> Hacer clic para expandir...
> 
> 
> Yo tambien estoy de acuerdo..
Hacer clic para expandir...


Uno mas!

Por algo existen ambos... y seguiran existiendo!

Hace tiempo me llegaba un journal de Atmel donde anunciaban el desarrollo de un circuito electronico que en su interior contenia: Un DSP, Un FPGA y un ARM... No se si tal dispositivo se desarrollo y salio a la venta o aun siga como producto a futuro, pero es obvio que cada tipo de dispositivo tiene sus aplicaciones especificas, y que uno no reemplaza al otro.


----------



## eidtech

Rafita-Man dijo:
			
		

> por supuesto que los FPGA's son mucho mejores, y en especial los de la serie 9.2 i de Xilinx.



Por cierto compañero no conozco estos FPGAs, espero los presentes a la comunidad.

Lo unico 9.2i de Xilinx es su Webpack (entorno de desarrollo para FPGA), que por cierto ya estamos por lo menos en 10.1

Recuerda que los FPGA de Xilinx son los: Spartan II, Spartan III, Virtex4, Virtex5 y recientemente Virtex6.


Es como decir que las mejores PCs son las que traen microprocesador de la marca Windows... juar juar...


----------



## Angegardien

los fpga son mucho mejores que un uC, mas veloces, procesamiento paralelo, interfaz USB, puedes generar video con relativa facilidad y la programacion no es tan complicada, ni en alto nivel (usando vhdl en toda su gloria) ni en bajo, a nivel de compuertas logicas.  Lo q pasa es q la mayoria de las aplicaciones son lo suficientemente "pequeñas" como para funcionar con un microcontrolador y por eso no es necesario usar un arreglo de compuertas.


----------



## macraig

Esta discucion no tiene sentido. No es cuestion de si es mejor un FPGA o un uC. Los dos son complementarios. Una FPGA permite implementar un circuito en HARDWARE mediante instrucciones HDL. Es en realidad un circuito que cambia su configuracion sin necesidad de soldar o desoldar componentes. Solo cargas otra configuracion y ya se tiene un circuito completamente nuevo.

De ahi viene su rapidez. Es obvio que es mas rapido un contador en hardware q uno programado en un uC, por ejemplo.

Una fpga permite construir sistemas complejos, procesamiento de senales, codecs y encoders, cosas que si se hacen en un uC serian muy lentas.

Un uC es util, sin embargo hay cosas que son mejor hacer en hardware. Una FPGA permite cambiar el hardware con cambiar el "programa" escrito en HDL.

Por cierto, HDL viene de Hardware Description Language. Es una forma de describir un circuito como si se trataran instrucciones en un programa. 

Salu2.


----------



## f_point

Muy ciertamente cada uno (FPGA y Microcontrolador) se acomoda mejor a ciertas condiciones de diseño, y en esa medida cada uno es superior en cuanto a economía, poder y conveniencia según las situaciones y necesidades.

Yo aprendí hace poco a utilizar los FPGA, y debo acotar que quedé asombrado de la versatilidad y poder que representan. Hace poco incluso me embarqué a diseñar un procesador dentro de un FPGA, mismo que recién terminé y para el cual estoy escribiendo un assembler. Por lo mismo, puedo afirmar sin duda que el potencial de un FPGA es, por mucho, muy superior (tecnológicamente hablando) que el de un microcontrolador; Y siendo que es viable implementar un microcontrolador dentro de un FPGA, básicamente todos los problemas que pueden ser resueltos por un microcontrolador, podrían ser resueltos por un FPGA sin mayor problema. Sin embargo, como dicen por ahi, para qué usar un misil intercontinental con sistema de navegación satelital para matar una cucaracha, si con un zapato puedes hacer lo mismo.

Creo que todo eso ya lo dijeron anteriormente los amigos del foro, asi que me uno a su opinión.

Saludos.


----------



## cristian_elect

Depende de los microcontrolador que los comparen la familia cortex son micros muy bien dotados.
Y su precios son bajos.


----------



## TESLA BOY

A mi parecer la razon principal de usar micrcontroladores es debido a que la mayoria de los aparatos donde son empleados no requieren de una mayor complejidad de control. Y aunque los precios de uno y de otro en algunos casos pudiera llegar a considerarse ser el mismo, lo cierto es que los microcontroladores son y seguiran siendo mas utilizados tanto en la industria, como en electronica de recreacion o electronica para el hogar. Por otra parte un FPGA es en si mismo una maravilla pero este tipo de controladores estan mas enfocados a lo que podriamos llamar manejo y procesamiento de información, puesto que pueden manejar operaciones mas grandes en un tiempo considerablemente corto, es ahi donde estriba su "poder". Asemejandose mas a un uP el FPGA y tal como el querido PIC-MAN afirma para las empresas resulta ser mas economico y versatil probar el Hardware a desarrollar en un FPGA esto debido a como ya mencionaron su velocidad de respuesta, su capacidad en memoria y la versatilidad para poder ser grabado y borrado (Esto en algunos casos por encima de 1M de veces). Y desde un punto de vista practico no veo por que desperdiciar las capacidades de un FPGA en el desarrollo de un proyecto o producto donde un PIC es mas que suficiente.


----------



## Romyggar

Primero, NO a las respuestas agresivas como la que dió Rafita-Man

Segundo, no creo que los uC sean mejores ni tampoco las FPGA's, yo tuve poca experiencia con las fpga's de mi universidad y comparando ambos dispositivos digo que creo que los uC tiene sus ventajas y desventajas frente a las FPGA's ... 

Volviendo al hilo... uno es mejor que otro con respecto a que? ésa sería la pregunta correcta (eso pienso)... bueno aquí vá una analogía sobre las fpga´s y los uC's:

El cerebro humano, un procesador orgánico que maneja billones de sensores de todo tipo (presión, temperatura, químios, ópticos, sonoros, de equilibrio, etc etc) de forma paralela y ultra rápida y no podría hacerlo si funcionara secuencialmente como un uC; entonces por ahora el cerebro sería similar a una fpga.

Pero el cerebro no solo es procesamiento de "petabytes" de carbono(¿Bytes orgánicos?), en éste órgano también se realizan procesos cognitivos que permiten darle un uso adecuado y creativo a esa cantidad monumental de datos. Dichos procesos no se pueden hacer en paralelo... es decir la parte pensante del cerebro no funciona en paralelo. 

NOSOTROS no pensamos en paralelo, es decir no podemos realizar demasiadas al mismo tiempo.. tratamos de simular ese paralelismo usando interrupciones (si! INTERRUPCIONES)..  un uC es exactamente eso (bueno parcialmente) un uC funciona similar a un cerbero... todo es secuencial y funciona por interrupciones...

Claro una FPGA puede emular a un uC pero la analogía es partiendo desde el punto de vista de las características sobresalientes de cada dispositivo. Una FPGA es muy "específica" para realizar una tarea, claro, cualquier tarea la realiza exageradamente más rápido que un uC  pero no es fácil reacomodar la programación de la fpga para realizar otra tarea (tareas) diferentes... es como tratar de ver con la nariz... 

En cambio los micros, que son más "flexibles" (y lentos),  son fáciles de acomodar y efectivamente puede tomar esa cantidad de datos, moldearlos y reemplazar los ojos por la nariz (los ciegos reemplazan los ojos por los oídos y el tacto)...(se sacrifica velocidad por flexibilidad)

para no alargar la cosa... hay tareas que no requieren tales velocidades y flujo de datos tan elevado... ¿ o no es cierto que para identificar un objeto basta con abrir los ojos y "pensar"? no es necesario hacer el barrido de los conos y bastones (células sensitivas de los ojos) y convertir esa información a señales eléctricas y enviarlas en paralelo al cerebro... (esto lo harían las fpga's), simplemente basta con abrir los ojos y ya tenemos video en altísma pero altísima definición y simplemente el "micro" (nosotros) compara con lo que haya en memoria para saber que es lo que estan percibiendo las fpgas "ojos"

 - la fpga solo se encarga de ver (oler, oír)
-  el micro compara, analiza, aprende(bueno aprende parcialmente o tendríamos cientos de T-1000 en las calles!), y puede utilizar otras fpga´s (oidos o tacto) para "triangular"(determinar) la respuesta correcta

Conclusión: los micros y las fpga´s van de la mano.:
=>Para procesamiento y almacenamiento a altas velocidades y en paralelo: FPGA  
=>Para toda de decisiones y procesos Lógicos dinámicos que casi siempre son secuenciales: Microcontroladores

PD: es solo una opinión, yo no tengo la última palabra... 
PD2: ojalá los procesadores de los computadores fueran fpga's
PD3: ya sé que se puede implementar un procesador con fpga's.. pero entonces ya no sería una fpga sino un procesador...¿cierto?


----------



## f_point

Bueno, si un FPGA se porta como microcontrolador, no le veo porqué deberia dejar de ser FPGA, porque despues de todo, la mona aunque de seda se vista, mona se queda. Jejeje 

Un punto de gran atractivo de un FPGA es el de poder montar sistemas completos en un solo chip (SoC). Se puede, por ejemplo, montar un procesador asi como la cantidad exacta de perifericos que se necesitan, ni uno mas ni uno menos, creando un sistema verdaderamente a la medida. Necesitas mas canales de PWM? no hay problema, solo montas mas perifericos de PWM! Al CPU le vendria bien una nueva instruccion? bueno, podemos modificar la unidad de control del mismo para implementarla!

He sabido que otra aplicacion muy buena de los FPGAs esta en la capacidad de montar mas de un solo procesador en un mismo chip, para procesamiento masivo de datos. Una de estas areas de aplicacion es la criptografia, donde algunos algoritmos pueden solo ser rotos a fuerza bruta, y si se tiene por ejemplo 128 procesadores a 100MHz trabajando en conjunto, puede ser un ataque efectivo contra estos algoritmos.

Por otra parte, es de mi saber que los FPGAs son tambien muy apropiados para los procesos secuenciales, utilizando las técnicas de codificacion adecuadas, tales como el desarrollo de FSMs (tipo moore o mealey), incluso es posible crear secuencias relativamente complejas. Tan asi es, que un procesador dentro de un FPGA es en si un sistema secuencial, el cual ejecuta en orden las actividades: tomar una instruccion, decodificarla, tomar argumentos, procesar la instruccion y guardar resultados.

Para mi que la ventaja o desventaja de FPGA vs microcontrolador no es tecnológica, sino de caracter de precio/costos, tiempo de desarrollo, y conveniencia. Por eso mismo los microcontroladores tienden a ser utilizados en muchas areas, porque tienen todas esas ventajas: baratos, rapido desarrollo (faciles de programar) y convenientes (disponibilidad de herramientas, variedad de lenguajes de programacion, amplificadora gama de librerias y aplicaciones, etc).

Saludos.


----------



## Romyggar

Hoy estuve leyendo mucho sobre fpgas... y leí algunas cosas que mencionaste.... estoy de acuerdo contigo f_point y bueno, el ganador tecnológicamente hablando es: FPGA!... 

PD; el premio de consolación por ser bastante barato es para el uC
PD2: pienso que para las tareas "simples" (como prender un led) en donde no necesitemos procesadores a 100MHz un PIC o AVR (etc) es más que suficiente


----------



## jorge.a.q.r

Hola, yo llevo poco tiempo trabajando con fpga's y se los recomiendo para los que quieran utilizar la electronica digital a su maxima expresion. Con los lenguajes de descripcion de hardware se puede realizar cualquier sistema ya sea VHDL o Verilog.
 Y la ventaja que he notado, es que puedes personalizar tu unidad de procesamiento. Si requieres un microprocesador solo lo montas agregando los ip cores o modulos que necesites(usart,pwm usb, ethernet,contadores,memorias,IIC,Spi, etc. o crear tus modulos y agregarlos a tu CPU. Por ejemplo yo les recomiendo Xilinx , con una tarjeta spartan 3, pueden programarlo en Vhdl -verilog  o descargarle un soft core Micoblaze, que es un microprocesador risc de 32bits y el picoblaze de 8bits y programarlas en C con el SDK de xilinx. Puedes combinar HDL y C.


----------



## eltronico

yo solo digo que con una fpga se puede hacer un microcontrolador, al reves no


----------



## foso

no son lo mismo, un micro es muchisimo mas potente, y vale menos, debido a su comercialización, además los encontras desde cero pesos hasta lo que quieras. Parte de la ingeniería es aplicar lo mas económico, siempre que funcione, claro.
saludos che


----------



## jpernesto666

Hola,soy nuevo en el foro,según lo que yo entiendo es que un FPGA nos sirve como herramienta para diseñar dispositivos digitales,como diseñar microprocesadores,microcontroladores,etc;en cambio el microcontrolador ps ya está de sobra decir sus aplicaciones no?,esa es la diferencia,ninguno gana ya que no están orientados a un uso en común,obviamente el FPGA tiene unos recursos mucho mayores,pero esto es por que es una herramienta para diseño,no directamente para ser implementado como solución a una necesidad,saludos.


----------



## electropsychedelic

Hola a todos,

Soy nuevo en todo el tema de la electronica, que siempre me ha apasionado por asi decirlo, y ahora tengo la oportunidad de conseguir herramientas, material, etc, que me permita de forma autodidacta aprender y divertirme un poco ya que para mi seria otro de mis tantos hobbies.

Como he empezado por el tema de conocimientos basicos (aunque hoy logre despues de mucho sudor conectar un switch a un motor y una pila 9V y crear un mini-ventilador, cosa tonta para el 99% de ustedes pero para mi fue todo un logro ) y no tan basicos (ya que siempre me gusta tragar mucho conocimiento para tener un panorama general amplio), he mirado algunas cosas de la Spartan 3 y Arduino etc.

Si alguno(s) de ustedes seria tan amable de colaborarme dandome una luz, les agradeceria su valioso tiempo 

Basicamente ya entendi que un microcontrolador es una especie de CPU como las conocemos hoy en dia (arquitectura Intel, PowerPC etc) pero a muy muy reducida escala, que me permite realizar ciertas cosas "avanzadas" en un circuito.
Entiendo lo que es un programador de PICs (es mas, ya ordene uno ) y adelantandome un poco en base al libro guia que compre (trata sobre el 16F84A, que ya compre por cierto) veo que hay un entrenador para realizar algunos proyectos. Desde mi punto de vista el entrenador no es mas que un circuito con algunos componentes en el, organizado de cierta forma que permita a las personas novatas como yo, iniciarse en este mundo sin tanto problema. Luego lo que supongo es que cada circuito que haga en adelante por mi propia cuenta podria servir como "entrenador" con una funcion especifica.

Ahora, entiendo que el DSPic es como un Pic comun (series 16F, 18F etc) pero mas avanzado y permite el manejo de mas instrucciones o algo asi por el estilo y mas calculos.

Entiendo que el Arduino vendria siendo una especie de entrenador como el del libro, solo que en vez de un PIC usa otro microcontrolador de la empresa Armtel o algo asi (no Microchip que son los que crearon la arquitectura del 16F, 18F etc).

Ahora, donde me confundo un poco (si es que la retahila anterior es coherente, de lo cual no estoy totalmente seguro) es en lo que es una FPGA, ya que he visto comparaciones entre esta arquitectura y la de microcontroladores.
Hay algun ejemplo "facil" de lo que vendria siendo la FPGA? Es como quien dice una motherboard Intel x86 con un Pentium I dentro por asi decirlo o que?
O es simplemente otro tipo de arquitectura que no existe mas que en kits de desarrollo pero no en produccion en masa al consumidor?
La Spartan 3 por lo que veo es como un "entrenador" de FPGA?

Y la ASIC como se compara?

Muchas gracias por su tiempo 

Postdata:
Siento mucho si esta no es la seccion apropiada, la verdad es que la de "Diseño digital" no tiene un area general.


----------



## Chico3001

Bueno... la verdad no es tan complicado.... 

Como bien dijiste un microcontrolador es una computadora reducida lo mas posible a un solo chip, de estos hay varias marcas, modelos y arquitecturas diferentes: Microchip, Atmel, Freescale, Intel, Risc, Cisc, x86, Von Newman, Harvard modificada solo por nombrar algunas variantes

Ahora un FPGA o un CPLD solo contienen electronica digital "sin conectar"... es decir puedes verlo como un juego de lego donde te dan las piezas y armas lo que necesites... desde un circuito combinacional clasico hasta un Procesador Intel Core i7, siempre y cuando el numero de compuertas lo permita... y tengas el tiempo para programar la arquitectura , al ser compuertas sin conectar te permite mayor flexibilidad, velocidad y los puedes reconfigurar aun teniendo tu aplicacion terminada y corriendo, pero por otro lado son mas complejos de programar y en la mayoria de los casos se deben programar 2 veces, la primera para lograr la configuracion adecuada y la segunda para cargar el programa en forma dentro de la configuracion que acabas de programar

Un ASIC es la maxima expresion de flexibilidad.... un FPGA o un CPLD tienen el inconveniente de que solo contienen electronica digital en su interior... si necesitas soporte analogico necesitas añadirlo externamente... en cambio un ASIC contiene absolutamente todo lo que necesites sea digital o analogico... sin embargo es el mas complicado y caro de usar, ya que son diseñados a la medida en la fabrica de circuitos y solo se usan en corridas extremadamente elevadas... (encima de varios miles de integrados)


----------



## Meta

Da igual sea mejor o peor un microcntrolador a un FPGA. ¿Lo vas ha usar realmente?


----------



## electropsychedelic

Chico3001, muchísimas gracias por la explicación tan excelente! Ni mandada a hacer 
Era justo lo que necesitaba ya que para ciertas cosas admito que sin una analogía no me entran en la cabeza ni a palo...
Creo que ahora la tengo más clara, ya con el panorama no tan nubloso seguiré investigando un poco más sobre FPGAs y luego que me llegue el quemador de PIC y que haya realizado algunos circuitos entraré de lleno con el 16F84A.

Meta, sí, en un futuro pienso usarlo, una vez sienta que tengo un conocimiento avanzado sobre PICs. La verdad es que la parte de programación et. al. es mi fuerte ya que soy proficiente en esta; la electrónica es el mundo en el que apenas me adentro, pero entonces la idea es conseguir el starter kit de la Spartan 3E o 3N que no son tan caros, solo que toca mandarlos a pedir de USA, ya que me parece interesante creo que cambiar un poco la perspectiva sobre la programación tradicional secuencial, ya que creo si no estoy mal que las FPGAs manejan otros terminos como el paralelismo en ejecución de la misma instrucción en diferentes procesadores simultáneamente etc, no sé si esto sea lo mismo que multithreading (no creo) pero con el tiempo me daré cuenta.

Bueno en todo caso muchas gracias, ya había perdido un poco la esperanza en los sistemas de foros ya que siempre tiendo a hacer preguntas de media página que nadie ni se toma la molestia de leer


----------



## eidtech

electropsychedelic dijo:


> ya que me parece interesante creo que cambiar un poco la perspectiva sobre la programación tradicional secuencial, ya que creo si no estoy mal que las FPGAs manejan otros terminos como el paralelismo en ejecución de la misma instrucción en diferentes procesadores simultáneamente etc, no sé si esto sea lo mismo que multithreading (no creo) pero con el tiempo me daré cuenta.



Todas las instrucciones que generes en lenguaje de descripción de hardware (VHDL o Verilog - los más comunes para FPGAs) serán sintetizadas a componentes lógicos (e.g. compuertas, flip-flops). Si hay dos o mas instrucciones que se sintetizan y entre ellas no existen dependencias de datos, entonces se ejecutaran en paralelo.

En un FPGA no existen multiples procesadores (por lo menos de inicio), pero como te comento anteriormente toda instrucción es sintetizada en componentes lógicos (los cuales posee el FPGA). 

Solo quisiera agregar que un procesador lo que hace es ejecutar un programa, este está compuesto por instrucciones, existen diversos tipos de instrucciones - para cada una de ellas hay que hacer cosas en especifico {leer la instrucciones, decodificarla, traer los operandos, realizar la operación, etc} -, las instrucciones se ejecutan junto con sus operandos, y se obtiene el resultado, el cual puede moverse entre diferentes partes del procesador/memoria/perifericos.

Ya cuando estes mas adentrado en este mundo, verás que es posible sintetizar microprocesadores completos dentro de un FPGA (ya sea uno o varios).

Esto no tiene mucho que ver con multithreading, ya que este se refiere a la ejecución de diferentes hilos en un solo procesador, el concepto pudiese en algún momento parecerse pero en realidad difieren por mucho, pero esto ya es otro tema.


----------



## electropsychedelic

Muchisimas gracias eidtech por el _insight_.
Creo que entonces FPGA en el tema tratado es comparable con una arquitectura multi-core como el Core Duo etc.
Y aqui es donde me surge la inquietud si algo similar a las FPGAs existe en la actualidad para el "consumidor" y se trata por ejemplo de una board con un Core II Quad encima o algo por el estilo. Creo que seguire averiguando.


----------



## electrodan

No entendiste. El procesador es un circuito "genérico", que no varía. Solo se limita a seguir instrucciones. El FPGA crea hardware dedicado a la tarea.


----------



## electropsychedelic

Ohhh tenes razon... no habia entendido.
No obstante creo que con un poco mas de investigacion ya la ire cogiendo.

Por ejemplo me encontre este video para _dummies _
http://www.youtube.com/watch?v=L2wsockKwPQ

Y me parecio una introduccion bastante didactica y entendible  Creo que con plastilina si me entra el conocimiento al cerebro


----------



## eidtech

electrodan dijo:


> No entendiste. El procesador es un circuito "genérico", que no varía. Solo se limita a seguir instrucciones. El FPGA crea hardware dedicado a la tarea.



excelente explicación!!


en cuanto a la duda de electropsychedelic, en www.embeddedarm.com hay unas computadoras embebidas excelentes, estan basadas en un procesador ARM y además traen un FPGA, lo cual es bastante util para determinadas aplicaciones.


----------



## Meta

No te preocupes lo del FPGA, cuando sean polupar encontrrarás libros de sobra. Ahora no lo son.


----------



## jpernesto666

electropsychedelic dijo:


> Muchisimas gracias eidtech por el _insight_.
> Creo que entonces FPGA en el tema tratado es comparable con una arquitectura multi-core como el Core Duo etc.
> Y aqui es donde me surge la inquietud si algo similar a las FPGAs existe en la actualidad para el "consumidor" y se trata por ejemplo de una board con un Core II Quad encima o algo por el estilo. Creo que seguire averiguando.



 Tómatelo con calma chavo,todavía no aprendes a gatear y ya quieres correr ,empieza con los PIC de 8 bits,despues migra a los AVR de 8 bits,despues podrás empezar con los dsPIC de 16 bits y despues con los PIC32 que casi nadie los ha usado y con ellos nos basta para hacer muchas cosas (como host USB y uso de pantallas táctiles de color,tratamiento con uso de librerias con funciones DSP),el FPGA se usa cuando quieres hacer un trabajo que definitivamente exige mucho y la electrónica que tienes a tu alcance no llena esos requisitos,si quieres leer libros de FPGA registrate en gigapedia y busca libros del tema,están en inglés,pero eso no es problema,o sí?,bueno,para empezar con los PIC te recomiendo el 16F628A,es mas barato y tiene mejores prestaciones que el 16F84A.


----------



## Meta

Ahora es el 16F88 el sustituto directo del 16F84, antes me lo  imaginaba, ahora las empresas ya lo confirma. También porque hay gente que usa el C al pobre 16F84, con el 16F88 no se quedan atrás.

Lo curioso que el 16F84A vale lo mismo que el 16F88, (4.50 €).

En cuanto los PIC32, leí un libro en Inglés sobre estos PIC, no sabía que fuera tan fácil de programar sobre todo si viene del 18F. Muy potente estos PIC de 32 bits.


----------



## electropsychedelic

jpernesto666 dijo:


> Tómatelo con calma chavo,todavía no aprendes a gatear y ya quieres correr  {...}


Jajaja bueno lo que pasa es que tal vez tenemos formas distintas de pensar. A mi me gusta investigar a fondo sobre todo todo todo para no luego no leer por ejemplo en una pagina de robotica sobre la construccion de algo sencillo con un servo y que mencionen FPGA y yo "Que???? Que sera eso???? " 
Igual por ahi estuve leyendo un trabajo de investigacion realizado en una universidad en mi pais donde trataba de la Spartan 3 y la programacion de unos super computadores que poseia la universidad y me parecio interesante y entendible.



jpernesto666 dijo:


> {...} bueno,para empezar con los PIC te recomiendo el 16F628A,es mas barato y tiene mejores prestaciones que el 16F84A.


Bueno la verdad es que voy a usar el 16F84A porque me compre este libro.
Pero me parece intersante y coincidencial que menciones el 628A ya que por error del vendedor que me envio el programador de PIC tengo en mi poder 2 de esa referencia asi que los tendre almacenados y dentro de un tieeeempo que domine el 84A tendre en cuenta tu comentario y lo usare.

Ah y por cierto las FPGAs me han parecido sumamente interesantes, por ejemplo este tipo de Altera da un ejemplo de un sistema embebido en una FPGA de ellos y me parece que es muy sencillo de realizar, claro que se trata del BeMicro que es como algo de principiante total, imagino que aqui de ustedes los que tienen FPGAs de Altera tendran algo mas potente como el Cyclone III.

http://www.youtube.com/watch?v=xlKoDRCziIg


----------



## Meta

También compré ese libro www.pic16f84a.org, muy bueno para empezar. Lo que tengo que hacer es que ya compré el 16F88 que no me ha llegado aún, pasar ciertas librerías del LCD, RS232, retardos al PIC16F88 que ya presentaré aquí cuando lo acabe y el la web oficial del libro, soy _*An gel*_ *Aca y mo* que ves en la Web si te fijas bien en la izquierda.

Mejor estar actualizado también con el 16F628A ya que se usa bastante, pero no lo pasaré para ella, hay más gente que lo pueda hacer si le interesa.

Lo del FPGA es más bien para algo específico, los PIC son para cosas generalez. Veo que está muy potente los FPGA y carossssssssss. A ver si rebajan y hacen un libro.


----------



## electropsychedelic

Uffff que bacano. Por lo visto entonces es recomendable el libro, que bueno, que tal que alguien me dijera "Ahhhh la embarraste ese libro no sirve de a mucho o no es recomendado" jejeje...
Y me da confianza porque se ve que sos alguien que sabes bastante, y por cierto _offtopic _me parece interesante ese monitor del puerto serial que explicas en codeproject.


----------



## Meta

Hey:

No se como encontraste el código en codeproject jejejeje, es más bien para los que no saben inglés, en realidad ya que hablamos español - castellano, hay un manual sobre ello aquí.

El libro es extremadamente recomendable ya que se basa en ASM y el famoso y popular 16F84, lo conocerás afondo, después el paso será el que quiera ya que en el fondo es el mismo.

Ojalá sean baratos los FPGA y que saquen libros en español alguien o casi todo el mundo usen FPGA como empezó el PIC-16F84.


----------



## jpernesto666

Je,ok,si lo entiendo,eso de ser curioso es un requisito indispensable para los electrónicos jaja,yo también un tiempo tube mucho esa curiosidad delos FPGA,son muy interesantes,le quería pedir uno a los reyes magos pero creo que no podrán,jeje,miren este video que nos muestra un poco de la potencia de una Spartan:

http://www.youtube.com/watch?v=y5P0CVK0l80

Generar señal de video,audio y controlar perifericos al mismo tiempo!,tiene un gran potencial,cosa que tal ves nunca lograríamos con un PIC,tal vez un PIC32,no sé,no he podido trabajar con estos micros.

y como decían,el F88 es una buena opción ya que ademas trae modulo ADC,pero si tienen el libro del F84 (que fué con el que yo aprendí ensamblador también),pues si estaría bien usar el F84 para evitar confuciones,ya verás que despues migrar de PIC a PIC solo es cuestión de checar el datasheet y configurar unos cuantos registros.


----------



## Meta

Con un PIC32 hace esas cosas del vídeo, con sus límites, claro. Un ARM hay hasta en portátiles.

Si eso haré, pasar del F84 al F88, cada vez se ve que es el sustituto directo. Antes no se sabía si es el 16F628A o el 16F88, me lo imaginaba que sería con el F88 ya que algunos prefieren programar en C, en este caso está bien ya que no se preocupa ni en la RAM, ni Flash ni nada, cosa que en C se nota mucho. Aunque les duela algunos F88 ya me han dicho en locales que es el sustituto directo, no vendes más el 16F84A, si empezamos a ver que dejan este PIC, mala suerte para los que compramos el libro www.pic16f84a.org, voy a pasar de F84 a F88 algunos proyectos como este.


----------



## jpernesto666

Meta dijo:


> Aunque les duela algunos F88 ya me han dicho en locales que es el sustituto directo, no vendes más el 16F84A, si empezamos a ver que dejan este PIC, mala suerte para los que compramos el libro



Si,tienes razón,acá en México tambien está desapareciendo un poco ya que como mencionas actualmente ya su único valor es el educativo por que muchos libros lo usan para el curso introductorio,para ese proyecto que mencionas que quieres migrar del 84 al 88 sería casi lo mismo,lo único que tendrás que cambiar es definir al inicio del programa todos tus pines de I/O como digitales (desactivar ADC y comparadores) y calibrar bien el reloj interno (si es que lo usaras) ya que tiene diferentes velocidades y listo.


----------



## Meta

La verdad es que si, ya el 16F84 se usa con fines más de aprendizaje personal y universidades e insitutos que para hacer proyectos. En realidad se sigue haciendo proyectos con el 16F84A algunos los novatos.

*migrar del 84 al 88 sería casi lo mismo,lo único que tendrás que cambiar es definir al inicio del programa todos tus pines de I/O como digitales (desactivar ADC y comparadores) y calibrar bien el reloj interno (si es que lo usaras) ya que tiene diferentes velocidades y listo.*

Pues eso es lo que voy a intentar, ya que el circuito hecho físicamente lo haré con oscilador externo, a parte que tiene más precisión. Lo que tengo que aprender es cambiar de analógico a digitales las  I/O para que no me den problemas y la majadería del *__CONFIG    _CP_OFF &  _WDT_OFF & _PWRTE_ON & _XT_OSC* a ver como las soluciono que son diferentes.


----------



## eidtech

jpernesto666 dijo:


> Tómatelo con calma chavo,todavía no aprendes a gatear y ya quieres correr ,



El tema de los FPGAs puede cubrir desde aspectos muy sencillos hasta aspectos muy complejos, ya que las unicas bases que necesitas son de electrónica digital.

Incluso cuando fuí a la Universidad, los FPGAs los veiamos desde cuarto semestre, mientras que los micros hasta sexto/septimo.

Te recomendaria algunos libros de VHDL, como el Roth, los de Peter J. Ashenden, y algunos otros, que si estas interesado pudiese enlistar.


----------



## dynamco

Con una FPGA uno puede configurarla para trabajar como un sistema por ejemplo de procesamiento digital , un microprocesador y por lo tanto como un microcontrolador ,esto es mediante herramientas de descripcion de hardware tales como ABEL o VHDL , ademas es mucho mas rapido que un microntrolador porque puede trabajar a mayores frecuencias


----------



## Fhrozen

Bueno, bueno, tratando de comparar FPGA y uC, hay diferencias abismales, por ejemplo el precio y la aplicacion, no vas a poner a hacer un cambio de leds a un fpga cuando lo puedes hacer con un pic, 
Los pic como dicen son para operaciones de control de baja o media gama. Los FPGAs han pasado a otro punto. Sirven para el diseño de nuevos sistemas empleando la nueva tendencia llamada HPRC en el cual ya no se programa el FGPa en HDL sino empleando lenguaje de nivel alto como C(ref impulseC ). Actualmente los FPGA tienden al diseño de sistemas computacionales mas complejos y no simplemente a pruebas de compuertas como se hacian en cursos de electronica(yo tambien hice XD). 

Bueno eso es algo q rescato, mi tesis tuvo basado en HPRC(Computacion reconfigurable de alta performacia) y ps tuve q traducir un monton xq no hay naa en internet

Bueno Saludos


----------



## pedrow

Hola a todos¡¡¡ Me inicio con este tema en este foro

Respecto al tema, solo soy conocedor por ahora de las ventajas ilimitadas de los fpga¡¡
Yo estoy estudiando sistemas concurrentes y embebidos(picoblaze) translados a la spartan 3¡¡ Se puede decir, que el gran potencial de los fpga, es su concurrencia, poder hacer multiples acciones en un mismo instante a una velocidad mucho mayor que con los microprocesadores, por ejemplo, para sistemas de adquisicion de imagenes y procesarlas en tiempo real, la velocidad de los fpga es altisima comparado con los demas sistemas tardicionales secuenciales.

Ademas, si bien se puede realizar todo concurrentemente, se puede embeber un microprocesador o varios en los fpga y combinarlo a su vez, con la concurrencia de elementos electronicos sintetizados en ellos, como memorias, etc.

Un saludo a todos


----------



## neec

Creo que hay un problema de perspectiva, ya que ni uno ni otro es mejor, cada uno tiene su lugar diferentes aplicaciones, por ejemplo no se va a colocar un cpld o fpga para solo encender un led en una aplicacion industrial, aqui es donde reside la ingenieria, ya que la solucion tiene que ser conforme al problema, evaluando tanto la parte economica como la parte tecnica.
Un error frecuente es casarse con una marca particular de microcontrolador ya que hay personas que todo lo quieren solucionar con pic`s siendo que existe una gran infinidad de marcas de microcontroladores que esperan ser explotadas, sin irnos lejos tenemos a los AVR, los micros de Freescale, el MSP430 de texas instrument, los micros de Cypres que por cierto tienen muchos perifericos muy interesantes, y no hay prexto de la información ya que existe en internet, buscando he encontrado los esquemas para fabricar los programadores de las marcas antes mencionadas asi como sus  respectivos  IDE. Respecto a los CPLD y FPGA tambien hay mucha información incluso acabo de terminar un programador que estoy a punto de checar, la forma de programacion de estos dispositivos no es complicada, ya que incluso se puede con diagramas esquematicos, y en el caso del VHDL el problema es que es un poco abstracto y tal vez no estamos acostumbrados, pero practicando se hace mas sencillo, en cuanto a la informacion existe un libro en español que tiene un tutorial muy interesante para el manejo de los FPGA de xilinx, el titulo es el siguiente "Dispositivos Lógicos Programables (PLD) - Diseño Práctico De Aplicaciones " del los autores "GARCIA, José, PÉREZ, Emilio"


----------



## Meta

Cierto una cosa, hay muchos microcontroladores a elegir. Pues la gente se casa con uno porque quiere dominarlo. Si tienes planes de dominar 20 marcas diferentes serás siempre un aprendiz casi sin aprender, si eliges de 1 a 3 tipos de microcontroladores serás mastro. 

En resumen: Mucho de aprendíz, poco de maestro.


----------



## neec

La especialización en un area especifica es un arma de doble filo, ya que bien podemos pretender ser un maestro en algo, lo cual es algo muy benefico, sin embargo eso involucra que no estamos preparados para un cambio drastico lo cual nos puede dar resultados catastroficos.
No pretendo que se conozcan todas las marcas que existen, mas bien la idea es reconocer los errores y aciertos que tienen diferentes arquitecturas y marcas, por ejemplo un pic nunca va a ser tan rapido como un AVR, o por ejemplo no vamos a utilizar un pic en un ambiente altamente ruidozo (electricamente hablando) ya que lo mas seguro es que provoque errores, o utilizar un microcontrolador en una aplicacion donde se requiera procesamiento paralelo a altas velocidades, unicamente se trata de buscar la solucion mas adecuada para un problema.


----------



## Meta

Por un lado me refiero ser maestro del PIC un 75% y el 25% con el AVR por poner un ejemplo. 

En temas de ruidos, se usará el mejor microcontrolador para estos temas.


----------



## savad

Todo depende del projecto y claro del presupuesto que tengas
1  Para hobbie   trata los PICS
2. Para algo mas profesional mi favorito es el de Texas Instruments Stellaris EKK-LM3S9B96  . . . el kit lo estubo dando gratis la revista Circuit cellar  . . . Tiene todo lo que quieras implementar para la industria en un paquetito de 1.5 x 1.5 cm
3. Pero si quieres algo muy rapido o usar glue-logic entonces ve  el libro "Fundamentals of Digital design with VHDL" de stephen Brown & Zvonko Vranesic  lo puedes bajar como yo lo hice del web
4. Claro si quires uno mas avanzadito   ve el VHDL cookbook  tambien facil de bajar por el web
5. Para herramientas nada como Altium designer  . . pero es caro  quiza puedas obtener algo en el web  . . . pero con software no se los recomiendo ya que he encontrado varios Trojanos incorporados en el software que no los tracea ningun programa antivirus y solo te das cuenta cuando tus firewalls empiezan a bloquear . . si es que tubiste la precausion de instruir correctamente tu firewall.  Pero para empesar los software gratis de Altera, Xilins, etc.  Aqui en el foro hay un link para MAX+plusII  que hace un buen trabajo para projectos pequeños y es gratis . . Trabaja muy bien en mi Win98SE que tengo en na portatil bien vieja y para sintesis lo corro en una XP-pro SP3 sin ningun problema.

Bueno no tengas miedo en experimentar con ellos .. y los libros los puedes leer en menos de 30 dias  o 90 si no tienes mucho conocimiento, pero puedes estar haciendo tus primeros circuitos en 2 horas si tambien bajas el Software Max+PlusII


----------



## pedrow

Pues ya se puede decir que he practicado un poco, al final he podico realizar un controlador de potencia boost a traves de la fpga(Un pwr que puede variar tanto el ciclo de trabajo como la frecuencia), haciendo un a/d con ayuda de la velocidad del reloj, todo ello, manejado a traves de un teclado y salida por la vga¡¡ quien quiera el codigo aunque es algo extenso y lo tengo que redactar¡¡

Pero ahora mismo estoy empezando con micros, y en especial con el 16f84, que parece que es el clasico...haber como me sale la experiencia¡¡

Mi intencion seria mezclar las dos cosas, las de micro para casi todo o que no requerian velocidad y una fpga, para crear toda la logica que necesite pero es aqui donde me sale la duda, es si venden grabadores de fpga, es decir, solo la "cucaracha" con sus pines y grabar el programa a igual que un micro, sin utilizar el kit. Alguien sabe algo de grabadores de fpga???

Un saludo


----------



## Meta

Hay un buen libro en www.pic16f84a.org


----------



## neec

Hola, buen dia, te recomiendo que te des una vuelta por la pagina de Xilinx o de Altera, ya que ahi existe información de como armar un Jtag para programar dichos dispositivos, en caso que tu diseño no sea tan elaborado puede implementarlo en un CPLD, el cual tambien puede ser programado con un Jtag, la segunda posibilidad es que compres un jtag, el cual tambien los fabricantes ya venden, debes considerar que si vas a armar un diseño con un FPGA se requieren memorias externas para almecenar tu programa, de lo contrario tienes que cargar el programa cada vez que alimentes al FPGA, otra cosa, te recomiendo que estudies los nuevos pic de microchip, ya que aunque el PIC16F84 es considerado como un clasico, es un microcontrolador obsoleto, te recomiendo el PIC16F88, PIC16F887 y el PIC16F1937, ya que aunque no lo creas cuestan lo mismo que el 16F84 y poseen muchos dispositivos perifericos muy interesantes.


----------



## Meta

Puedes aprender al 100% del 16F84A con este libro www.pic16f84a.org


----------



## pedrow

Gracias por contestar¡¡¡

Pues si, meta, ese libro es el que estoy leyendo para mis inicios, está muy y parte de lo basico pero viendo las caracteristicas del PIC16F88 como dijo neec, por 1 euro mas, tiene muchas mas cosas que neceisto como a/d y pwr. Entonces, es que yo ya, si salgo de los entrenadores de los kit spartan 3, me pierdo. Es realizarme un grabador cpld que se programará igual que una fpga,no? por vhdl¡¡ He estado mirando y he encontrado esto:

http://www.digilentinc.com/Products/Detail.cfm?NavPath=2,400,798&Prod=CMOD

Si no lo he entendido bien, es un cpld de xilinx que se programa igual que una fpga, por jtag y con el ise, a traves del vhdl?

Y otra pregunta, los cpld, se algo, lo que he estudiado en la uni, pero poco, la version antigua de una fpga, pero en cuanto yo programe, solamente me tendria fijar en cuando a la capacidad,no?


----------



## Meta

Precisamente es el PIC-16F88 que uso, estoy cambiando del 16F84A los ejemplos del libro al 16F88, está mejor. En mi caso, el precio del 16F84A es el mismo que el 16F88.


----------



## Beamspot

CPLD = sistema viejo de lógica programable con poca capacidad y 'granularidad' elevada.
FPGA = sistema más moderno de lógica programable con mucha capacidad y 'granularidad' fina.

FPGA != uC.

Si uno 'programa' un 'core' de uC en una FPGA tiene un rendimiento pobre en cuanto a prestaciones/consumo de recursos, aunque la velocidad de reloj sea mucho más elevada. Sin embargo, a la hora de realizar cálculos, las FPGA tienen mayor potencia de cálculo a un precio y consumo menor que cualquier DSP/GPU/CPU, pero generalmente a base de paralelizar y ampliar el bus. No en vano, las máquinas más avanzadas de procesado matemático que existen hoy en día se basan en FPGAs y no en DSPs.

Además, en las FPGA, se puede cambiar el diseño del sistema de cálculo para adaptarlo y optimizarlo para el proceso a ejecutar en cada momento, es decir, que ofrecen una flexibilidad que muchos DSP ya quisieran.

Lo malo es que primero hay que 'programar' el HW del circuito (en VHDL, Verilog, o similar, incluso en C), y luego hay que programar el SW que correrá en ese HW.

Personalmente estoy trabajando en un par de proyectos en los que pocos uC podrían hacer lo que hace una FPGA. Por ejemplo, tener 100 contadores de 16bits en un solo integrado (y sólo usa un 10% de los recursos disponibles).


----------



## pedrow

Siii, en eso estoy de acuerdo, una fpga, cuando te acostumbras es la leche, pero creo, que para proyectos de poca embergadura, con un pic sobra. Por eso estoy aprendiendo¡¡¡ Una cosa Meta, en que tiendas lo compras, online,no?? es que estoy buscando por internet y encontrado algunas pero seguro que hay otras¡¡


----------



## fernandoae

> más bien los deficientes son algunos de ustedes (sobretodo meta) que no estan preparados para la tecnología...


Aca con faltas de respeto NO, Meta al igual que todos aca en el foro estamos para compartir lo poco o lo mucho que sabemos asi que sin agresiones por favor. Existen formas mas educadas de decir las cosas.

Y en cuanto a la discusion eso depende de lo que uno esta desarrollando no les parece?



> Personalmente estoy trabajando en un par de proyectos en los que pocos uC podrían hacer lo que hace una FPGA. Por ejemplo, tener 100 contadores de 16bits en un solo integrado (y sólo usa un 10% de los recursos disponibles).


 100 contadores de 16b ? que estas haciendo?


----------



## Beamspot

Es un sistema de medida de luminosidad y cromaticidad para LEDs en una línea de montaje SMD. No puedo dar más detalles, pero es divertido.


----------



## metalm

"capacitor o resistencia? cual es mejor?"


----------



## jaimepsantos

Que tal foro aprovechando el foro y el tema me doy a la tarea de ver si alguno de unstedes tiene la oportunidad de ver esta encuesta acerca de los fpgas, comparandolos con otros sistemas digitales, gracias por su tiempo, 

 Nombre.____________________________________________ Fecha___ /___ /___ Carrera_________________________    Ocupación __________________     Semestre________

*1. ¿Cómo considera la velocidad de procesamiento en un FPGA?*
  a)Excelente       b)Muy buena       c)Buena            d)Regular            e)Mala

*2. ¿Crees que los sistemas digitales basados en FPGA son más rápidos que los basados en compuertas lógicas?*
  a)Totalmente de acuerdo                                          b)De acuerdo                                   c)En ocasiones                                                 d)Desacuerdo                  e)Totalmente en desacuerdo

*3. ¿Crees que los sistemas digitales basados en FPGA son más rápidos que los basados en microcontroladores?*
  a)Totalmente de acuerdo                                          b)De acuerdo                                   c)En ocasiones                                                 d)Desacuerdo                  e)Totalmente en desacuerdo

*4. ¿De qué tamaño te parece optimo un procesador básico?*
  a)20 cm2 o más                                               b)Alrededor de 10 cm2                                c)Alrededor de 5 cm2    
  d) Alrededor de 1 cm2                                 e)Menos de 1cm2

*5. ¿Qué dispositivo le encuentras el tamaño más óptimo?*
  a)Microprocesador        b)Compuertas lógicas   c)FPGA                d)CPLD                 e)GAL

*6. ¿Qué dispositivo programable satisface mejor tu necesidad de procesamiento digital?*
  a)Microprocesador        b)Microcontrolador       c)FPGA                d)CPLD                 e)GAL

*7. ¿Qué lenguaje de programación te es más útil?*
  a)VHDL                b)Verilog                   c)c                    d)Ensamblador                e)CUPL

*8. ¿Qué dispositivo te parece más caro de acuerdo a lo que este es capaz de ofrecerte?*
  a)Microprocesador        b)Compuertas lógicas   c)FPGA                d)CPLD                 e)GAL

*9. ¿Te parece justo el precio de los sistemas digitales actuales?*
  a)Totalmente de acuerdo                           b)De acuerdo                                   c)Depende del producto
                                                 d)Desacuerdo                  e)Totalmente en desacuerdo

*10 .  ¿Qué dispositivo te parece que consume más energía de acuerdo a lo que este es capaz de ofrecerte?*
  a)Microprocesador        b)Compuertas lógicas   c)FPGA                d)CPLD                 e)GAL

*11. ¿Qué dispositivo utilizarías en un sistema de procesamiento de datos digital y por qué?*


*12. ¿Qué te agrada mas, FPGA o los microcontroladores? ¿Por qué? ¿Qué ventajas les ves sobre el otro?*


----------



## Scooter

¿No hiciste esa encuesta hace tiempo?



jaimepsantos dijo:


> Que tal foro aprovechando el foro y el tema me doy a la tarea de ver si alguno de unstedes tiene la oportunidad de ver esta encuesta acerca de los fpgas, comparandolos con otros sistemas digitales, gracias por su tiempo,
> 
> Nombre.__*El mio*________________________________ Fecha_*Hoy*
> Carrera__*La maratón*_________________    Ocupación __*Las menos posibles*___     Semestre__*Yo que se*___
> 
> *1. ¿Cómo considera la velocidad de procesamiento en un FPGA?*
> a)Excelente       b)Muy buena       c)Buena            d)Regular            e)Mala *f)instantánea por definición*
> 
> *2. ¿Crees que los sistemas digitales basados en FPGA son más rápidos que los basados en compuertas lógicas?*
> a)Totalmente de acuerdo                                          b)De acuerdo                                   c)En ocasiones                                                 d)Desacuerdo                  e)Totalmente en desacuerdo *f) De acuerdo con lo que digan los datasheet, en la electrónica no caben las "creencias"*
> 
> *3. ¿Crees que los sistemas digitales basados en FPGA son más rápidos que los basados en microcontroladores?*
> a)Totalmente de acuerdo                                          b)De acuerdo                                   c)En ocasiones                                                 d)Desacuerdo                  e)Totalmente en desacuerdo* f) No lo creo, lo se*
> 
> *4. ¿De qué tamaño te parece optimo un procesador básico?*
> a)20 cm2 o más                                               b)Alrededor de 10 cm2                                c)Alrededor de 5 cm2
> d) Alrededor de 1 cm2                                 e)Menos de 1cm2 *f)Intrascendente, me interesan los MIPs y MFLOPs*
> 
> *5. ¿Qué dispositivo le encuentras el tamaño óptimo?*
> a)Microprocesador        b)Compuertas lógicas   *c)FPGA dependiendo de la aplicación y del precio*              d)CPLD                 e)GAL
> 
> *6. ¿Qué dispositivo programable satisface mejor tu necesidad de procesamiento digital?*
> a)Microprocesador        b)Microcontrolador    c)FPGA                d)CPLD                 e)GAL *f)Dependerá de la aplicación, ¿Como voy a contestar si no se lo que estoy haciendo?*
> 
> *7. ¿Qué lenguaje de programación te es más útil?*
> a)VHDL                b)Verilog                   c)c                    d)Ensamblador                e)CUPL *f)Depende del dispositivo; no se puede programar un microcontrolador en vhdl*
> 
> *8. ¿Qué dispositivo te parece más caro de acuerdo a lo que este es capaz de ofrecerte?*
> a)Microprocesador        b)Compuertas lógicas   c)FPGA                d)CPLD                 e)GAL  *f)En cada aplicación uno*
> 
> *9. ¿Te parece justo el precio de los sistemas digitales actuales?*
> a)Totalmente de acuerdo                           b)De acuerdo                                   *c)Depende del producto... y del  proveedor*
> d)Desacuerdo                  e)Totalmente en desacuerdo
> 
> *10 .  ¿Qué dispositivo te parece que consume más energía de acuerdo a lo que este es capaz de ofrecerte?*
> a)Microprocesador        b)Compuertas lógicas   c)FPGA                d)CPLD                 e)GAL  *f) No me parece nada, leo el datasheet y decido*
> 
> *11. ¿Qué dispositivo utilizarías en un sistema de procesamiento de datos digital y por qué?* Depende del sistema, de lo que procese y de a que este conectado. Porque esta encuesta no para de comparar churras con merinas y son cosas diferentes aunque el ámbito de aplicación se pueda solapar.
> 
> 
> *12. ¿Qué te agrada mas, FPGA o los microcontroladores? ¿Por qué? ¿Qué ventajas les ves sobre el otro?*En principio he usado mas microcontroladores, pero dependerá de la aplicación. Ver pregunta 11



Estoy de acuerdo con el que preguntaba "¿Que es mejor, un condensador o una resistencia?" son cosas diferentes aunque ciertas aplicaciones se puedan resolver con los dos componentes.


----------



## jaimepsantos

Si scooter era parecida, pero le cambie el enfoque a las preguntas, es que ocupo evaluar lo que los demas opinan acerca de los fpgas dentro de mi investigacion que es de los fpgas , pero igual gracias por responder.


----------



## Beamspot

Mi respuesta a TODAS las preguntas es DEPENDE. No muy diferente de lo posteado por maese Scooter.


----------



## neec

Un error comun en ingenieria es querer ajustar el problema a la solucion, cuando de hecho es todo lo contrario, ya que debemos ajustar nuestra solucion a un problema, la encuesta parece un poco tendenciosa en algunas preguntas, en lo particular yo concuerdo con los comentarios enteriores ya que en la mayoria de los casos depende de la aplicacion y el dispositivo a utilizar, actualmente existen kits de desarrollo muy economicos tanto para FPGA como para microcontroladores, lo unico que nos queda como ingenieros es buscar la solucion adecuada.


----------



## Scooter

A largo plazo las fpgas ganarán terreno, pienso yo, de igual modo que nadie hace un diseño "simplificado a puertas nand" hoy en día, tampoco lo hace si ocupa 10 circuitos integrados, pone un microcontrolador y conforme se hagan populares, probablemente ponga una fpga.


----------



## joselo27

Bueno en lo que seria mi concepto es que con una FPGA podes obtener un microcontrolador,
las ventajas que podemos tener con una fpga es que procesos como los de una suma por ejemplo
se pueden hacer en un solo ciclo de reloj mientras en un procesador tardaria n cantidad de ciclos.

se dificulta al comienzo la descripción del hardware para los que no están familiarizados con el tema, pero si sabes si tienes conocimientos de lógica matemática les aseguro que les quedara gustando, ademas que ay herramientas en el lenguaje vhdl que se te hacen familiares con el lenguaje c..

y como lo han dicho las usan en la múltiples facetas, como en el tratamiento de imágenes, filtros y n cantidad de cosas que se puedan imaginar.


----------



## anderson torres

Quiero incursionar en las FPGA pero los tuturiales o  las guias que se encuentran son muy pocas y las que se encuentran vienen en ingles. 
En la universidad que estudio hay muy buenos proyectos con fpga (procesamiento digital de sonido y de video), me tocaria averiguar como es que lo hacen para aprender y compartir. Cada vez me emocionan mas las FPGA´s¡¡
SAlu2¡¡


----------



## loliparra80

jorge.a.q.r dijo:


> Hola, yo llevo poco tiempo trabajando con fpga's y se los recomiendo para los que quieran utilizar la electronica digital a su maxima expresion. Con los lenguajes de descripcion de hardware se puede realizar cualquier sistema ya sea VHDL o Verilog.
> Y la ventaja que he notado, es que puedes personalizar tu unidad de procesamiento. Si requieres un microprocesador solo lo montas agregando los ip cores o modulos que necesites(usart,pwm usb, ethernet,contadores,memorias,IIC,Spi, etc. o crear tus modulos y agregarlos a tu CPU. Por ejemplo yo les recomiendo Xilinx , con una tarjeta spartan 3, pueden programarlo en Vhdl -verilog  o descargarle un soft core Micoblaze, que es un microprocesador risc de 32bits y el picoblaze de 8bits y programarlas en C con el SDK de xilinx. Puedes combinar HDL y C.



Hola mi pregunta es como usar los ip cores, por que no encuentro mucha info al respecto, y claro hay por ahi y demás sobre todo de uC, pero si necesito hacer más bloques ip cores y que todos se comuniquen entre ellos?? no se quizá haya algun enlace por ahi ke conozcan por ke hoy e estao toa la santa mañana en la biblio de la uni y na de na , y además para programar el uC una vez lo tengamos implementado, sino es con el SDK ke mencionas no hay otra manera??

espero me echen una mano, saludos y graciassss


----------



## spiritbreaker

yo estuve con microcontroladores buen tiempo y ya basta , son practicos pero ahi no acaba la cosa si quieres aprender solo lo que ya sabe mas de 1 millon de gente en internet ,  en mi universidad no enseñan fpga ni enseñaran pero ya me compre el mio , no tenia el dinero para comprarlo (500 dolares) pero tuve que darle duro cachueleandome con proyectos de pics ,capaz ahi me sirvieron mas los pics, asta un punto veo innceseario los fpga ya que los pic son casi completos (ethernet usbhost pwm i2c uart adcs)pero aun asi lo compre ,  uno no se vuelve mediocre si no usa los fpga pero los que lo usan dan la diferencia .      ahhh los fpgas no son caros(9 -12 dolares)(obvio aprendamos como soldarlos no ).
Saludossss desde Arequipa Peru


uno bueno es esta nanoboard 3000 con pantalla color tactil host para 3 usb , acepta camara usb,teclado mouse , 2 sd card, ampliable para usar con  xbees , host para redes de internet ,eetc


----------



## Meta

Hola:

La cantidad de microcontroladores que hay, ya no saben que escoger las grandes empresas. Lo más graciasoso que ya están sacando microcontroladores de 4 núcleos, 8 y en el futuro muchos más. Parece estar de moda los múltiples núcleos hasta en los móviles, así no duran las baterías.



ARM
Atmel
Cypress
Diodes
Fairchildsemi
FreeScale
FTDIchip
Fujitsu
Hitachi
Holtek
IDT
Infineon
Intersil
JMicron
LSI
Maxim-IC
Micrel
Microchip
Microsemi
National
NEC
Nuvoton
On Semi
Parallax
Philips
Picaxe
Rabbit
Renesas
Samsung
Semtech
Silabs
STMicroelectronics
TI
Toshiba
Winbond USA
Xmos
Saludo.


----------



## jaumegs

Simplemente depende de la aplicación.

Una FPGA consume más que la mayoría de microcontroladores, sus encapsulados tienen une levado número de pines, requieren una memoria externa de configuración y varias tensiones de alimentación.

Un microcontrolador puede consumir potencias del orden del uW, tener tan solo 4 pines y alimentarse desde una simple pila. Esto sería imposible con una FPGA.

Respecto a las capacidades de una FPGA dependen mucho del diseño.

En una EP3C25 se pueden implementar fácilmente 66 procesadores muy sencillos con una memoria de 1KByte, multiplicador hardware de 18x18 bits y frecuencia de funcionamiento de 100 Mhz. Un total de 6600 MIPS (millones de instrucciones por segundo), que si bien hay algunos micros que los superan, seguramente no hay ninguno con 66 núcleos...

Saludos.


----------



## spiritbreaker

vendi mi fpga nanoboard 3000 ayer  ,, franco  ay que tener tiempo para aprender ese nuevo mundo fpga


----------



## Carlos Fernando Guerrero

Yo soy estudiante de ing electronica el semestre pasadoaprendi algo de programacion de fpga y me parecio muy sencillo, los programas se realizaron en verilog tengo varios programas se nesecitan algunos se los puedo facilitar


----------



## miborbolla

Espéro que la opinion de un viejo que nacio con el Z80, el 6502, 8088, los circuitos TTL, etc. les pueda servir, mas como historia y por tanto como referencia para poder entender la grandisima diferencia que hay entre Un microcontrolador y Un FPGA.

En mis tiempos teniamos muy pocos CPUS y una gran familia de circuitos TTL (LOGICOS),Circuitos operacionales(analogicos) y una limitada gama de semiconducores (transistores y diodos), asi que para hacer algo funcional teniamos la unica alternativa de combinar estos dispositivos para lograr la meta que nos proponiamos.

Hoy en dia veo con mucho agrado todo el desarrollo que existe Tanto en CPU´s, FPGAS y Microcontroladores, sin embargo me preocupa un poco ver que exista "confucion" entre las diferentes herramientas que tenemos a mano y peor aun pretender compararlas y por tanto concluir cual es mejor: Mientras que muy pocos ven en realidad para que sirve cada uno.

Por aqui lei que alguien muy sensato, escribia "que es mejor: Capacitor o resistencia" una forma muy ironica de expresar la misma preocupacion que yo. Si alguien tiene fotos o diagramas de las Primeras tarjetas madres de Computadoras personales, como APPLE II, IBM, TANDY, COMODORE, etc. podran entender como nace la historia de los FPGAS, los microcontroladores, VLSI, etc.

Por ejemplo Tanto en las APPLE y la primera IBM-pc, todo estaba desarrollado en circutios TTL, salvo algunos otros integrados como la RAM, Y otra electronica dicrecional. A lo que quiero llegar es que, los FPGAS (_Field Programmable Gate Array _vienen a substituir toda esta electronica "Logica" que en ese entonces nos consumian cientos de integrados. A traves de los desarrollos de PAL´s, GAL´s, y otras tecnologia; se llega al actual FPGA, que si bien y gracais a tan alta integracion (que llegan a millones) de compuertas que superan a muchos microprocesadores de antaño, pueden "lucir" mas poderosos, pero definitivamente no estan diseñados para eso. Por otro lado recordemos que los FPGA No pueden procesar señales analogicas, y que por tanto si se requiere, deben utilisarse circuitos extras para estas funciones de conversion AD (Analogico-Digital) o DA (Digital-Analogico).

Los microcontroladores, que me parecen fantasticos tienen la virtud de contener un pequeñisimo CPU, RAM, ROM, i/o, ADC, DAC. que te permiten dar una solucion muy rapida a muchisimas aplicaciones sin meterse en la complicacion que implica llegar a lo mismo con un CPU, RAM, ROM. etc.

Por lo pronto, dejo aqui este comentario, que quizas les suene a palabras de vejete decrepíto, y que quizas no entienda los alcances que tiene hoy la electronica, pero que si les asegura saber como es que llegamos a estas tecnologias que tenemos en mano. Pero por favor...¡No mezclen la Gimansia con la Magnesia!


Saludos y Gracias a todos por este gran foro.


----------



## mdchaparror

Las FPGA se usan para prototipado rapido, y como dicen varios no se pueden comparar con un microcontrolador son dos dispositivos totalmente diferentes


----------



## XTheMaxX

bueno se q un FPGA, posee hasta 2millones de celdas de compuertas programables... solo imaginen las posibilidades =)


----------



## Rey55

espero q de algo valga mi opinion, pero los fpga son algo asi como tarjetitas CONFIGURABLES, por eso lo dificil de "programarlos", y los micros son dispositivos PROGRAMABLES.

en mi opinion los dos son totalmente diferentes y dificil de comparar, pues sus aplicaciones aunq pueden ser las mismas generalmente no lo son.

otras diferencias son los precios ya q un fpga en México puede llegar a valer unos $1000 y un micro alrededor de los $100.

la cuestion de las I/O pues se las llevan los fpga pero para controles mas especificos y tamaños (hablo de algo al alcance de nosotros los mortales) un PIC bien programado seria lo mejor 

en conclusión usaria PIC para todo lo q sea pequeño o mediano y un FPGA para cosas de verdad grandes.

espero me entiendan y sea de ayuda ...

saludos desde Hgo México


----------



## neec

Pues un FPGA es un circuito integrado, solo que la mayoria de las personas los han visto montados en un sistema de desarrollo, pero si observamos con detalle, el FPGA es solo un circuito integrado digital reconfigurable, y la complejidad de la programación es debido a que la mayoria de las personas esta acostumbrada a programar en C o en otro tipo de lenguajes de lógica secuencial, en cambio los FPGA y CPLD requieren un tipo de programación concurrente, que les permita manejar la al máximo sus recursos. En cuanto a sus aplicaciones, no son las mismas, aunque ambos puede llevar a cabo tareas similares, fueron creados para diferentes aplicaciones. Respecto al precio no son tan caros, ya que con algunos proveedores se pueden encontrar con un precio aproximado de 15dolares (solo el chip, faltando sumar el precio de importacion y de envio a México), lo que si debemos considerar es que se debe adquirir tambien la memoria para guardar el programa. Para aplicaciones que requieren el tamaño y funcionalidad de un micro se puede usar un cpld, el cual lleva internamente la memoria flash y son relativamente mas baratos (XC9500 aproximadamente $150 MX o 15 dolares gringos). El problema es que desafortunadamente en México y en otros paises nos casamos con ciertas tecnologias y dejamos atras dispositivos con mayores ventaja, por ejemplo para una aplicación real o mejor dicho para vender no usaria un pic, si no alguna otra marca como Freescale, Texas Instrument, ST Microelectronic, Renesas,  ya que poseen compiladores mas potentes y/o gratuitos (con ciertas restricciones) que nos permiten desarrollar aplicaciones mas eficientes que usando un Pic, la cuestión es explorar el mundo de los sistemas embebidos y actualizarnos día a día.     Por cierto de que parte de hidalgo eres?? o mas en que escuela estudias, yo tambien soy de Hidalgo


----------



## Rey55

hola otra vez, y bueno NEEC, coincido contigo de q muchas veces solo utilizamos lo q nos enseñan o solo un producto q conozcamos, y tambien en q un fpga solo es un CI, igual en q son completamente diferentes y eso, en los precios pues en lo personal prefiero ls pic, y como dices para aplicaciones reales en mi caso prefiero ls pic por lo facil de utilizar y como decia con un pic bien programado practicamente no necesitas nada mas (considerando interfaces de I/O, fuentes etc etc), en cuanto a actualizarnos cn lo nuevo esta bien y pues por hacer eso entre un poco al mundo de los FPGA, como dige es una opinion muy personal, en cuanto a experiencias y practicas q he hecho, y bueno soy de pachuca, de la UPP


----------



## nietzche

Haber, si diseño un sistema con un fpga y muchops p´perifericos, y si kiero ya el sistema armado, tengo que enviarles mi codigo a xilinx o altera, por asi decir, y ellos me envian las placas acabadas?, o como esta el rollo?. porque neec dices que mno utilizarias un PIC, bueno me pienso comprar una tarjeta de desarrollo del pic32, pero esa es la duda que tengo, el producto final como lo hago?, las placas las hago yo o que pasa?


----------



## Chico3001

No.... 

Cualquier fabricante solo se responsabiliza de fabricar los chips... y si el negocio es elevado (varios millones de dolares) algunos te surten el chip ya programado

Pero si quieres una PCB ya armada necesitas mandar los datos a un maquilador (la empresa varia segun el volumen que requieras), usualmente ellos cuentan con programadores para grabar tu codigo en el chip y te entregan desde las placas individuales hasta un producto terminado... 

En cualquier caso tu tienes que diseñar todo... a los maquiladores solo les entregas los planos de diseño y el codigo maquina..


----------



## nietzche

oye chico, en mi escuela voy a programar estas cosas, pero qusuiera saber mas o menos que "maquiladores"hay en el mercado, porque estoy empapandome del tema y me estoy "casando" poco a poco con altera. grax


----------



## Chico3001

En este momento no tengo el dato... pero lo voy a conseguir para abrir una pagina dedicada a eso en la wiki del foro...


----------



## mdchaparror

Te cuento un poco mi experiencias con las FPGAs como ya mencione, estos chip son para prototipado rapido, la configuración del chip fpga es volátil es decir se borra al quitar la alimentación del chip, generalmente las tarjetas de desarrollo traen una memoria no volatil que es donde se guarda la configuración del chip FPGA y es la encargada de pasar la programación a la FPGA, generalmente no vas a encontrar productos finales en un chip de estos a menos que sean pocas unidades si se desea hacer un producto comercial se pasa a etapas de diseño posteriores al prototipado  como son las de general celdas estandar y crear mascaras para la fabricación de un chip de uso especifico (tu diseño) lo cual sale muy caro a menos que fabriques miles de estos.
Si lo que quieres es para usos academicos una tarjeta de desarrollo FPGA puede ser muy util ya que nos permite experimentar muchas configuraciones, prácticamente puede sintetizar cualquier cosa que imagines como  procesadores de 32 bits , buses de datos como el wishbone , modulos VGA  y mucho mas
te recomiendo este libro "FPGA Prototyping by VHDL Examples - Xilinx Spartan-3"  lo puedes encontrar en google y existe una versión en lenguaje verilog, también te recomiendo la tarjeta de  desarrollo Spartan-3 

saludos



Chico3001 dijo:


> En este momento no tengo el dato... pero lo voy a conseguir para abrir una pagina dedicada a eso en la wiki del foro...



Me parece perfecto


----------



## Chico3001

Ya esta creada... puse los 2 que recuerdo ahorita... posteriormente se va a ir llenando

tabla_maquiladores [Witronica]


----------



## GirakoDark

en la universidad me toco programar varias cosas conel FPGA fue una SPARTAN 3 el cual es una tarjeta entrenadora de fpga el asunto es como ya mencionaron todos en el fpga es para diseño de prototipos en los cuales requieres de una alta velocidad y los micros ya no te responden a esa velocidad y para todos nosotros que simplemente hacemos pequeñas o medianas aplicaciones es mejor el micro ya que viene con todos sus perifericos internos y recursos necesarios ya solo elegimos el micro necesario en cambio el fpga es muy potente pero no trae nada de perifericos y recursos nosotros los tenemos que crear como decirte es como una pc el procesador es el fpga pero hay que anexarle la ram el disco duro y basarlo todo en una tarjeta madre y en cambio el pic ya solo lo programas y vas jalando tus recursos como los convertidores A/D el modulo USB y de mas ya todo esta integrado dentro de uno solo y la fpga no y si como varios aqui comentan el fpga es mmuy pero muy potente para nuestras pequeñas y medianas aplicaciones;

Ademas el pic sus procesos los hace serialmente es por eso que se ve afectado con en cuanto a velocidad y primero hace algo como para ocuparse despues en otra cosa

y el FPGA es  casi como los TTls todo lo hace en forma concurrente y es por eso que en procesos complejos se utiliza un fpga ya que al hacer sus procesos en forma concurrente gana bastante tiempo en cuanto a la parte de procesamiento de datos y señales.

En conclusion si tu aplicacion te la resuelve un micro para que te complicas las cosas con algo mas grande que es un FPGA


----------



## Renoxxx

Hola, de lo poco que se podría decirte que una gran diferencia entre FPGA´s y Microcontroladores es que, los FPGA´s son un hardware y programa el hardware en si, es por ello que se dice que son mas difíciles de utilizar, puesto que se programan en Verilog y tienes que hacer trabajo con compuertas etc.

Los microcontroladores si trabajan directamente con un software de programación, son mas fáciles puesto que puedes usar lenguajes de alto nivel como C y Visual Basic aunque también puedes programarlos en Assembler para poder tener un mayor entendimiento de como trabajan estos, los microcontroladores se especializan en realizar tareas especificas y ademas en el envió de datos, utilizan bajas frecuencias y también sus propios osciladores o cristales.

Depende de la aplicación que deseas, ambos componentes resultan muy útiles.


----------



## Meta

Tengo entendido que los FPGA son para uso excluvido de algo, en alguna función enconcreto, son carísimos. No es rentable para lo que nosotros vamos hacer.

Los PIC o AVR son más bien para propósito general.

Un saludo.


----------



## ap89

Me parece muy interesante el tema de las FPGA, yo soy estudiante de ingeniería electrónica y en mi facultad hay un módulo con una FPGA Spartan de Xilinx. Está disponible para nuestro uso pero lamentablemente ningún profesor nos enseñó a utilizarla todavía. Voy a ponerme por mi cuenta a sacarle un poco de jugo. Veo que no es tan fácil aprender a utilizarlas pero espero que sea productivo y me dé alguna utilidad más allá de los microcontroladores.
Saludos


----------



## road24

ap89 dijo:


> Me parece muy interesante el tema de las FPGA, yo soy estudiante de ingeniería electrónica y en mi facultad hay un módulo con una FPGA Spartan de Xilinx. Está disponible para nuestro uso pero lamentablemente ningún profesor nos enseñó a utilizarla todavía. Voy a ponerme por mi cuenta a sacarle un poco de jugo. Veo que no es tan fácil aprender a utilizarlas pero espero que sea productivo y me dé alguna utilidad más allá de los microcontroladores.
> Saludos



El problema es ese, la utilidad de una fpga no puede ser comparada con la utilidad de un microcontrolador, una fpga es util para la tarea en que uns microcontrolador no lo es.

El fpga se necesita en procesos que son muy rapidos o en extremo especializados,


----------



## nikotesla

Quiero poner mi opinion, desde un punto de vista de desarrollador, ya que he trabajado con todo tipo de dispositivos electrónicos: desde el venerable y ya "jubilado" Z80 (alla por los años 80) hasta las últimas FPGA de millones de puertas, pasando por los 8080, 8085, toda la familia mcs-51, los PIC y los nuevos ARM, incluyendo las viejas pal/gal, debo deciros que es ahora necesario conocer no solo las fpga, sino la programacion adecuada: para muchos quizá resulte mas cómodo realizar desarrollos con los microprocesadores (cualquiera sea su sabor-léase arquitectura) porque la lógica interna ya está hecha. En cambio "programar" FPGA requiere un esfuerzo adicional, ya que solo se dispone de las instrucciones aritméticas básicas, cualquier instrucción "extra" debe ser hecha desde cero, eso incuye la multiplicación/división, funciones trigonométricas etc. todo aquello debe hacerse utilizando técnicas que muchos no habéis oido, como CORDIC (muy util para funciones trascendentales). la razón es muy importante: las FPGA (adecuadamente programadas) son MUY rápidas para el procesamiento de la información, es como tener a cientos (quizá miles) de microprocesadores en paralelo trabajando de manera coordinada: de ahí que la programación sea mas dificil, la gente que viene de los microprocesadores suele hacer una programación "lineal" en el tiempo (en "serie") y cuesta un poco acostumbrarse a programar en "paralelo", pero una vez logrado, se ve la potencia real de las FPGA.
Con las nuevas FPGA es posible programar microprocesadores enteros (incluyendo nuevas funcionalidades, con memoria de muy alta velocidad), ahor amismo estoy trabajando con una fpga a una frecuencia de 350MHz. Puede ser incusive una interfas de alta velocidad para u microprocesador estándar.
Muchos fabricantes de FPGA tienen librerías con las que se puede, de una manera mas sencilla trabajar con funciones trascendentales (LOG, EXP, SIN/COS, etc), incluso algunos tienen librerías para emular un microprocesador.


----------



## Meta

Hola:

Este vídeo parace que habla algo de paralelo, no había escuchado programar en paralelo. Es de América Sur o Centro.






Gracias por compartir sus experiencia.


----------



## nikotesla

La "programacvión en paralelo", se conoce también como programación "multi-threading" o programación de multi-ordenadores, de hecho el primer lenguaje capaz de hace algo así es ADA, y no es casualidad que el lenguaje de programación mas comunmente utilizado (VHDL) sea una variante de ADA. La programación de muchos PLC's es también (mas o menos, salvando las distancias) una programación en paralelo, y una de sus principales cualidades es que cuando programas, el estado de la variables que estas tratando es siempre su estado "anterior" y no el "actual"...
Bueno no quiero aburriros con eso, hay mucha información sobre eso en internet
Saludos,


----------



## Hellmut1956

Creo que realmente los viejitos aquí, nikotesla y miborbolla, me incluyo en ese grupo, pero fui ferviente amigo del MC6809, han dicho lo correcto. Me gustó la analogía expresada con la pregunta, que era mejor, una resistencia o un capacitor.

Los modernos FPGAs ya vienen con un controlador incluido. La integración de la lógica TTL a Pals, luego a GALs represento un gran avanze que redució el número de componentes lógicos en una placa de forma dramática. Hoy en día los CPLDS so componentes de una integración tal, que alcanzan para realizar la gran mayoría de los circuitos que podamos necesitar como aficionados a la electrónica. Los CPLDs son baratos y existen descripciones en el internet para armarse uno mismo el adaptador de programación!

El nombre de los lenguajes de programación de estas componentes en su principio, HDL, no era mas que la abreviación para el término inglés de: hardware description language. De alli HDL!

Los FPGA, field programmable gate array, matris de gates programable, era el próxima paso de integración. Recordemos que el objetivo inicial de este tipo de componentes era la integraccion de componentes lógicas para reducir el espacio en las placas, el consumo de energía y lograr una mayor estabilidad. Una capacidad adicional era la posibilidad de modificar los circuitos en placas ya realizadas evitando así en algunos casos el rediseño. En un principio estas componentes aún eran caras.

Si miramos los FPGAs mas modernos entonces en cierto sentido volvemos a la función, al objetivo inicial que se maisfestaba en los PAls y GALs y dentro de ciertos límites los CPLDs. Pero esto ahora en el entorno de sistemas embebidos. 

Miremos lo que es un microcontrolador a diferencia de un microprocesador: 
Un microprocesador es un procesador con recursos externos como memorias, una placa madre de un PC es un buen ejemplo.
Un microcontrolador es una unidad de procesamiento de datos que tienen sus recursos disponibles de forma local en el pedazito de silicio. Esos recuros por un lado son memorias de los diferentes tipos y funciones periféricas. Pues bien, los mas modernos y avazados FPGAs tienen un microcontrolador integrado y las periferias pueden ser incluidas por programación de las matrices del lógica programable. Si en un microcontrolador de cierto tipo tenemos definido que periferias incluye y como las funciones son asignadas a los pines, en un FGA moderno estas funciones periféricas son definidas por descripciones de sus implementación. Es mas, en ciertos sistemas modernos de FPGA y de los IDEs correspondientes existen módulos que definen periferias y las que incluimos en nuesttro diseño, las posicionamos en el pedazo de silicio y les asignamos pines. es mas IDEs modernas hasta crean elementos de bibliotecas que son usadas para que el programa el el microcontrolador que incluyen, las use. 3 buenos ejemplos de tales IDEs, son la nueva IDE de Xilinx, la IDE de Cypress y la llamada "Altium", una IDE profesional e independiente de un provvedor de componentes, que no es gratuita!

Esos FPGAS los considero ser tan complejos, que el especialisarse en ellas es una especialisación profesional en su propio derecho. Yo confieso que no me meto en eso! Pero si me fascina observar y estudiar el desarollo de esas tecnologías y sus implicaciones.

Lo triste de ello es, que el apoyo de los proveedores para CPLDs disminuye, pues los CPLDS son económicos y no hay mucho potencial de ganancia en ellos. Pero para lo que un aficionado a la electrónica puede beneficiarse del uso de una compnente programable soy ferviente aficionado de los CPLDs!


----------



## joselo27

Hellmut1956

Interesante su aporte, me gustaría saber si conoce diseños de hardware abierto que permitan realizar mi propia tarjeta de desarrollo bien sea con un CPLD o una FPGA, y conocer las formas de programación, SPI, JTAG etc.


----------



## Hellmut1956

Te recomendaría ir a los sitios de empresas como Xilinx, Altera u otros. Allí existe mucha información. pero también vale la pena estudiar la hoja de datos de un CPLD de Xilinx por ejemplo. Es una componente muy económica y relativamente sencilla. Allí encontrarás referencia de como usar la componente.

Realmente todo lo que necesitas para empezar es, si vas por ejemplo con productos de la empresa Xilinx es una componente CPLD, además buscas en el internet la descripción como hacer un cable para conectar el PC al CPLD y una descripción sencilla de como hacer una placa con esa componente. Ademas de descargas el Web Pack de Xilinx que es gratuito, es la software para desarrollar programas para grabar en el CPLD.

Vas a encontrar en el Internet ejemplos muy sencillos de un programa en la lengua VHDL, algo equivalente al dejar blinquear una LED con un microcontrolador.

Si dominas lo suficiente la lengua inglesa, en mi sitio predilecto,
encuentras bajo el enlace:

http://www.digilentinc.com/classroom/realdigital/

Un curso que contiene toda la información que requires. No requieres la placa que recomiendan. El programa y su simulación, todo lo puedes hacer en el PC dentro del entorno del Xilinx Webpack. creo que lo mas sencillo es un programa que implementa el elemento combinatorio "AND". Ese lo considero equivalente al programa de "Hola Mundo" en microcontroladores! Lo que a mi me gusto mucho es, que tambien te introduce de forma muy metódica al proceso, en inglés "work flow", de realizar un programa, y todo lo que va con ello, por ejemplo el crear un archivo que define señales que se ponen a las entradas del circuito, llamado testbench, y donde en el entorno del webpack puedes ver como si tuvieras un osciloscopio o un analizador lógico las curvas tanto de las entrads como de las salidas.

Es un entorno que a aquellos que estamos familiarizados con la programación de controladores al principio se nos parece ajeno, pero cuyas capacidades y posibilidades son impresionantes! Ojalá recién tuviera 30 años, mis conocimientos y el tiempo que tengo hoy, para poder estudiar y usar todas estas tecnologías! pero iré estudiando las materias hasta que Dios me llame, o el diablo, o me quede demasiado demente para poder seguir! Que mundo mas maravilloso este de la electrónica y que posibilidades tenemos hoy en día y hasta gratuitos, también gracias al Internet! Y no de menos valor, un foro como este!

Lo primero que harías es


----------



## Antoniano

Te felicito estuve leyendo el foro, yo me estoy sintiendo viejo con mis 28 y siento que no he aprendido nada todavia jaja, saludos


----------



## Meta

Yo con mis 68, para recordar como se enciende un Led consulto intenret. 

Si tanto es potente y muy bueno los FPGA, ¿Por qué no hay libros sobre ellos?

Más bien hay PIC y Arduino pero FPGA, ni eso, a parte que no hay mucha gente que digamos, los usen con frecuencia.

Saludos.


----------



## Hellmut1956

Pero claro que hay libros! La cuestión es primero entender de que demonios se trata cuando se habla de una componente lógica programable:

2 formas de decir que son:

1. Una serie de circuitos que podemos concatenar definiendo el como los concatenamos!

2. Una componente que permite definir la hardware, no la software, para ejecutar un programa lógico!

2 lenguas prevalecen desde hace décadas para definir un circuito que haga lo que deseamos:

1. VHDL:
HDL está para: "Hardware Description Language", "Lenguaje de descripción de la hardware"
La "V" expresa que es una versión mas avanzada del lenguaje original, "Very"

2. Verilog: igualmente una HDL!

Teniendo esto en mente, una lengua de programación de circuitos, no de software, hay que adquirir el conocimiento de que secuencia de trabajos llevan de un "objetivo" a la implementación de ese "objetivo=circuito". Esto se denomina en Inglés "workflow" y representa la secuencia de trabajos que debemos hacer para lograr el objetivo.

Como se trata de "Hardware" tenemos que definir que "Entradas" = "Input" requerimos y a cuales pines de la componente conectamos esas entras, que característica tienen los datos de esa entrada y que voltaje.

Lo mismo hay que hacer para las "Salidas" = "Output"!

Tomemos como ejemplo una señal de entrada de un "clock" o reloj"! Si la frecuencia con la cual el "reloj" es alta, entonces es importante analizar si el reloj hace su "tick" en el momento, donde los datos en las entradas están estables!

Lo mismo hay que hacer para las "Salidas" = "Output"!

Cuando dejamos que la lengua y el "Webpack" de Xilinx traduzca el circuito de tal forma que dentro del FPGA se "conectan" las partes usadas.

Ahí aparece el paso de "verificación"! Creamos un archivo, el tal "testfile" que contiene para cada "tick" del reloj los valores de las entradas y compara si las salidas corresponden a la secuencia de valores de las "salidas" que deseamos! Con frecuencias bajas del reloj y con tecnologías avanzadas así encontramos si en nuestro archivo escrito en VHDL o Verilog hay algún error lógico, un error de programación!

Pero en frecuencias altas y con tecnologías ya algo mas viejas aparece lo que se llama "critical path". El la ruta de aquella señal donde se requiere un máximo de velocidad o donde ciertas señales deben estar estables y presentes en alguna parte del circuito que programamos.

Allí viene lo que se denomina "floor planing". Se trata de poner dentro de la componente las partes usadas en los "critical path" posicionarlas de tal forma que las señales esten donde deben estar en el rango de tiempo requerido. A veces también toca cambiar las asignaciones a pines por estar estos en un sitio inoportuno para lograr los objetivos de tiempo de ejecución!

Esto, cuando la programación era usando componentes de baja complejidad como PAL, GAL y CPLDs era relativamente sencillo manejar los aspectos mencionados arriba manualmente. Pero la programación de CPLDs permite aprender lo básico sin perderse.

Hoy vemos que existen FPGAs de complejidad similares a los procesadores de Intel en nuestros PCs! Frecuentemente en estos FPGAs complejos tenemos núcleos de controladores pre instalados al producir la componente. Asi la versión "tradicional" de las herramientas de Xilinx, sus IDEs, que vemos de forma gratuita en sus "webpacks" empezó a llegar a sus límites por la complejidad de los diseños y de las componentes. Así Xilinx creó una segunda IDE llamada "Vivado".

Los CPLDS de Xilinx solo se pueden grabar hasta la versión 13.4 del webpack.

Igualmente Vivado solo es posible usar con componentes mas avanzadas!

Xilinx tiene diversas versiónes de sus IDEs dependiendo de que tipo de funcionalidad se desea trabajar. Las versiones disponibles de forma gratuita representan una funcionalidad "básica" pero muy por encima que la gran mayoría de aficionados a la electrónica en general y a las componentes programables en el sentido de FPGs. Allí entra la ventaja u oportunidad para aficionados o estudiantes o que puedan poner la órden a traves de un estudiante registrado en nuestro país de residencia! Digilent ofrece una multitud de placas con los diversos FGAs y también uniendo la placa a una versión especializada de la IDE. Sus precios para el público en general so muy módicos y si un estudiante registrado en nuestro país de residencia pone la ordén, hasta precios súper bajos!

Aquí el enlace al subforo de Digilent Inc para FPGAs! Realmente comprándose una placa que sea usada en uno de los cursos gratuitos de Digilent.

Aquí el enlace a los cursos ofrecidos gratuitos para FPGAs.

Cada grupo de productos tiene listado el enlace a los cursos correspondientes!


----------



## Meta

Lo veo, caro, por algo se empieza.

De todas formas, no todo el mundo está por la labor de usar FPGA.


----------



## seaarg

Microcontrolador o FPGA, Cual es mejor? A priori contesto que el FPGA. Ahora, para encender un led seria como clavar un clavo con una retroexcavadora 

El proyecto es el que decide si es mejor uno u otro. Que microcontrolador accesible podria:

- Capturar datos en un bus de 64 bits
- Procesarlos y enviarlos a una SDRAM de 64 megas
- Generar una señal de video VGA
- Reprocesarlos desde la SDRAM para hacer algo con ellos
- Todo lo anterior, en paralelo al mismo tiempo y a 200 mhz

Como se ve, no hay con que darle a un FPGA pero no tiene sentido en entornos sencillos. Igualmente super recomiendo aprenderlas porque:

a- No son tan caras hoy en dia
b- Son fascinantes
c- El cielo es el limite

Y por ultimo agrego, entre FPGA y microcontrolador, puedo decir que con un FPGA podrias meter 2, 3, 4, 5.... los que se te ocurra si te da el espacio, microcontroladores de 32 bits adentro de ella, trabajando todos juntos. (NIOS II cof... cof)


----------



## Hellmut1956

@seearg: Se ve que eres mucho menor que yo, supongo. Lo que escribes es correcto para FPGAs, para CPLDs lo mismo es verdad, pero como "pegante entre componentes de una placa también son muy útiles. Yo en mi caso quería usar un CPLD como "switch" inteligente en un modelo de un velero. Se trataba de implementar una tabla de verdades para controlar los flujos de corriente.

La tabla constaba de un switch de encender y apagar el modelo. 

La fuente de energía para el modelo podía o ser 
 el pack de baterías en el modelo o 
 el cargador de las baterías
 y/o una fuente externa de mi laboratorio electrónico 
si estaba trabajando en el modelo en mi taller.

Esto por llamarlo de alguna manera eran las entradas. Las "salidas" eran
 la corriente del cargador a las baterías
 la corriente de las baterías a los consumidores eléctricos
 la corriente de la fuente externa a los consumidores

La intención era que el "switch fuera tan inteligente para hacer imposible el "conectar" algo indeseados. Para algo así que en su implementación es relativamente sencillo, un CPLD es ideal por ser económico, por ser programable y por ocupar muy poco espacio en una placa electrónica. Anterior a PAls, GALs y CPLDs se usaban componentes discretas. Hoy los FPGA son demasiado caros y contienen mucha mas hardware de lo que se requiere en tales aplicaciones!


----------



## seaarg

Si soy menor que vos, pero tampoco soy un pibe jaja

Lo que me gusta de los CPLD es la capacidad de hacer cosas y tener ROM interna. Eso si, son "chicos" al lado de un FPGA.

Por mi parte, yo comence con logica programable luego de que cayeron en mis manos unas placas de videojuegos llenas de integrados series 74 para reciclar. Encontre un chip que decia GAL22v10 y dije "que es esto???".

Cuando baje el datasheet y vi lo que era, no pare desde ahi. Me documente y aprendi a hacer cosas con ellos. 

Luego consegui unos CPLD de Altera e hice un osciloscopio portatil con un micro PIC y un CPLD como controlador de captura.

A partir de ahi, los proyectos dictaron como seguir hasta que cai en un FPGA EP3C16 y alucine con todo lo que podia hacer con el.

Actualmente lo uso en mi proyecto de osciloscopio. El mismo controla la captura, la DRAM (chips extraidos de un DIMM PC-133), la generacion de VGA para display, el panel de controles y un sinfin de cosas adentro. Tambien elimine el uso de microprocesador mediante un soft core como el NIOS.

En fin, como dije antes, el cielo es el limite y si, tambien se pueden usar como un arreglo de compuertas simple GIGANTESCO


----------



## Meta

Buenas:

Los FPGA es más bien para casos específicos y velocidad en los datos. El microcontrolador y se sabe para qué es. En realidad, lo mejor de todo son los microprocesadores, no hace falta decirlo.

Mejor uno o otro depende del uso que le vayas a dar.

Saludos.


----------



## Nuyel

Meta dijo:


> lo mejor de todo son los microprocesadores



Técnicamente, un microcontrolador lleva un microprocesador, en el tema de la versatilidad de reprogramarse la FPGA gana indiscutiblemente, si hablamos de velocidad de ejecución, adelante de la FPGA irían las ASIC, solo que estas no se programan, se crean específicamente para la aplicación, por ello superan a la FPGA ya que eliminas la gestión y dejas solo lo necesario para directamente hacer lo que deben hacer.


----------



## Meta

Sigo pensando que un procesador I7 de Intel de las últimas es mucho mejor que cualquier FPGA dispobible que haya en el mercado en estos momentos. Incluido de AMD y ARM.


----------



## 1024

Hola, indiscutiblemente depende de la aplicación cuál es mejor si un fpga o microcontrolador, lo que es una realidad es que un microcontrolador ya tiene una arquitectura de ejecución definida, mientras que un fpga no, y sólo por aclarar algo a un fpga no se le "programa",  se hace descripcion de hardware.


----------



## Nuyel

Meta dijo:


> Sigo pensando que un procesador I7 de Intel de las últimas es mucho mejor que cualquier FPGA dispobible que haya en el mercado en estos momentos. Incluido de AMD y ARM.



Por favor, eso es como decir que la Tianhe-2 es mejor que mi notebook, pero no viene al caso  en computo bruto y general claro que lo supera, pero para una ejecución especifica que es para lo que describes a las FPGA y diseñas a los ASIC, el rendimiento es mucho mayor que cualquier CPU de propósito general, solo mira por ejemplo el calculo de los hash de bitcoin, usar las CPU es el método más lento, las GPU son mas eficientes pero consumen mucha energía, las FPGA tienen un rendimiento comparable a las GPU pero el consumo de energía es muy inferior, las ASIC llegan a superarlas aun más, una ASIC AntMiner S9 computa 13.5 Th/s mientras que un Core i7 3930k calcula 66.6Mh/s, una FPGA Spartan-6 LX150T computa 100Mh/s dejando atrás al i7.

En resumen, un procesador de propósito general no puede ganarle en rendimiento a uno de aplicación especifica, sí es mas versátil por que los cambios los puedes hacer sobre el vuelo, pero si la solución es fija, la FPGA tiene más poder, y las ASIC no se pueden comparar, aunque en el precio de fabricar una ASIC . . .


----------



## TRILO-BYTE

solo diganle a Meta 

que una FPGA es plastilina, un microcontronador es un cortador de galleta en forma de oso.

¿puedes hacer figuras de aviones con cortador en forma de oso?


----------



## Meta

Ya exageré un poco. Me quedo con el AS400 de IBM.


----------



## TRILO-BYTE

pero que caso tiene decir eso si el titulo dice *FPGA vs Microcontrolador, cual es Mejor?*

es indiscutiblemente *depende de la aplicacion*

no tiene ningun caso opinar de una CPU pues esta fuera del tema.


----------



## Meta

Holassssssssssssss:

Viendo este vídeo, me dan ganas de comprar un FPGA, te vienen módulos y todo para practicar.






Por aquí quiern hacer una MegaDrive en FPGA.
http://www.zonadepruebas.com/viewtopic.php?f=9&t=7746&p=73983

Lo prsento como curiosidad.

Saludos.


----------

