En Internet Explorer 7 y 8 pueden aparecer distintos fallos en la visualización de esta página.
Utilice un navegador seguro y actualizado, que le garantice una visualización sin fallos. Puede emplear navegadores gratuitos:
¿Que son las FPGAs?
Me gustaría presentaros estos maravillosos dispositivos que sin duda alguna son el futuro de la electrónica. FPGA, del inglés Field Programmable Gate Array, es un dispositivo semiconductor que contiene bloques de lógica cuya interconexión y funcionalidad se pueden configurar. La lógica programable puede reproducir desde funciones tan sencillas como una puerta lógica ,hasta complejos sistemas on-chip. Las FPGAs se utilizan en aplicaciones similares a los ASICs sin embargo son más lentas, tienen un mayor consumo y no pueden abarcar sistemas tan complejos como ellos. A pesar de esto, las FPGAs tienen las ventajas de ser reprogramables, lo que añade una enorme flexibilidad al flujo de diseño, sus costes de desarrollo y adquisición son mucho menores para pequeñas cantidades de dispositivos al igual que su tiempo de desarrollo.
Las FPGAs fueron inventadas en el año 1984 por Ross Freeman y Bernard Vonderschmitt, co-fundadores de Xilinx, y surgen como la evolución "natural" de las CPLDs. La diferencias fundamentales son la densidad de puertas lógicas, en las FPGAs desde cientos de miles a millones mientras que en las CPLDs decenas de miles, y en la arquitectura que en las CPLDs son más rígidas y consiste en una o más sumas de productos programables, cuyos resultados van a parar a un número reducido de biestables síncronos (también denominados flip-flops). La arquitectura de las FPGAs, por otro lado, se basa en un gran número de pequeños bloques utilizados para reproducir sencillas operaciones lógicas, que cuentan a su vez con biestables síncronos. La enorme libertad disponible en la interconexión de dichos bloques confiere a las FPGAs su gran flexibilidad. Otra diferencia importante entre FPGAs y CPLDs es que en la mayoría de las FPGAs se pueden encontrar funciones de alto nivel (como sumadores y multiplicadores) embebidas en la propia matriz de interconexiones, así como bloques de memoria.
Un error común es confundir una FPGA con un micro-controlador, pensar que ambos hacen los mismo, pero no es así, tened en cuenta que con la FPGA hacemos un diseño puramente Hardware integrado en un chip y no dependemos de ninguna arquitectura especifica como nos pasaría con un micro-controlador o dispositivos similares, y precisamente esta es su potencia, podemos pensar que una FPGA es un folio en blanco con "huecos" para que nosotros metamos exclusivamente lo que nos hace falta. Por ejemplo, queremos un Microprocesador y memoria, con 3 UART, un CAN-Controller, un controlador de LCD de 24bit y 2 puertos SPI, todo esto es "fácilmente" integrable en la FPGA mientras que en el diseño tradicional tendríamos que crear una PCB con multitud de chips y seguramente varias interaciones en el diseño hasta que todo funcionase correctamente con el incremento en costes de desarrollo que esto supone, mientras que en un FPGA podemos tenerlo todo junto, fácilmente reconfigurable y además los fabricantes ponen a nuestra disposición potentes simuladores que nos ahorraran mucho dinero en prueba fallidas. Evidentemente esto es una gran ventaja. Aunque también es verdad que por norma general los diseños con FPGAs son más tediosos y largos que los clásicos, pero mucho más corto en comparación con los ASICs, que a fin de cuentas es lo que realmente hacemos.
Por otro lado, imagina tener un Hardware actualizable vía internet, pensarás que es raro, pero no, gracias a las últimas FPGAs esto es posible, piensa que hoy tienes un Pentium 1 y cuando reinicies después de actualizar tendrás un Pentium 2, ¡¡¡es que es increible la capacidad de estos nuevos juguetes!!!
.

Además las FPGAs de nueva generación incorporan zonas reconfigurables en caliente, ¿que es esto?, piensa que tenemos un sistema de control y en un momento muy concreto requiere hacer tediosas operaciones matemáticas, pues podemos "mutar" en caliente el controlador de audio, por ejemplo en un co-procesador matemático que ayudará a liberar la carga del Microprocesador y luego volver a configurar el controlador de audio, ¿sigues pensando que no son el futuro...?. Como veis sus posibilidades son infinitas y estos son los motivos que hacen que piense que su implantación total sea inminente, yo al menos no me quiero quedar atrás
.
Llevo varios meses buscando información y al parecer existen 2 fabricantes principales, Altera y Xilinx aunque esté último parece que está mucho más extendido, y es por este motivo por el que me he decidido empezar con las FPGAs de Xilinx. Por lo que he buscado os puedo asegurar que las opciones de desarrollo para aprender más económicas y fiables, las encontraréis en Digilent, me sorprendieron mucho los precios, el sistema de desarrollo más básico por tan solo $59 que al cambio son unos 42€, concretamente me he decantado por la Spartan 3E Starter Board, la de la foto, que en capacidad/precio a mi parecer resulta la más competitiva, además tiene una CPLD por si nos aburrimos de la FPGA
y un puerto de expansión, "100-pin Hirose FX2 connector" que usaré en futuros diseños. Una de mis ideas pasa por conectarle un panel LCD.

En los próximos artículos me centraré en los aspectos técnicos, lenguaje de programación, arquitectura y narraré mis experiencias con la Spartan, que espero que me llegue la semana que viene. También tengo pensado crear una serie de mini-tutoriales conforme avance, que recojan todo lo que vayamos aprendiendo con el fin de facilitar la incorporación de nueva caras. Quien sabe, igual le conseguimos meter un linux
.
Espero haber conseguido picar tu curiosidad y nos acompañes es este nuestro viaje a la vez que participas activamente. Un saludo Arcanianos!
PD: Video de Youtube jugando al PacMan 
-
|85.58.22.xxx |12-Aug-2009 01:02 tioSanti - FelicidadesEl tema me parece muy interesante. Aunque todo lo relacionado con el hardware me queda muuuuyyy lejos, no deja de interesarme. Veamos cómo evoluciona tu aventura. Ánimo !!!
-
|SAdministrator |14-Sep-2009 12:13 Raúl Milla - Gracias!Gracias por tu comentario, no pienses que el Hardware te queda muy lejos! para eso estamos, la idea es poder acercarlo a todo el mundo de una forma sencilla y es lo que yo pretendo con la web.
Cuando tengas dudas, pregunta! yo al menos estaré encantado de intentar solucionarlas, ten en cuenta que todo es un tema de interés, si quieres puedes! tan solo ten la mente abierta, todo es más facil de lo que parece.
Un saludo y se bienvenido!
-
|85.48.173.xxx |13-Aug-2009 13:47 fossie - ImpresionanteMe parece impresionante lo de poder reconfigurar el hardware para que se comporte de una forma u otra según convenga (eso de hacer un coprocesador matematico y que luego vuelva a ser la unidad de audio) pero digo yo que tendrá sus limitaciones.
Se podrá simular un pentium 1 con una FPGA e incluso un pentium 2 pero no creo que se pueda llegar a un pentim V ;D o a tener varios pentiums en un único FPGA :D
No se mucho de hardware pero si se pudiera configurar el FPGA como un sintonizador de TV analogico y ahora, con la llegada del TDT reconfigurarlo como sintonizador de TDT e incluso poder cambiarlo a gusto como sintonizador de satelite o de HDTV o cable.... ¿seria algo asi?
Impresionante!!!
-
|SAdministrator |14-Sep-2009 12:11 Raúl MillaHola fossie!
Evidentemente como todo, tiene sus limitaciones, de todas formas están avanzando a una velocidad pasmosa y la familia Virtex II de Xilinx ya es cosa seria, ahora mismo no recuerdo por donde pero creo que he visto gente metiendo dos procesadores de 32 bits, estilo Microblaze, que es un soft processor de Xilinx pensado específicamente para su FPGAs, en una Virtex II, evidentemente no se puede comprar con los PC de sobremesa, pero ten en cuenta que su mercado actual son los dispositivos embebidos, donde la integración es muy importante.
Me apunto lo del Microblaze para hablar en artículos posteriores, que es super interesante también.
De todas formas tiempo al tiempo... que seguro van a dar mucho más que hablar!
-
|190.104.0.xxx |12-Sep-2009 06:08 FerniRoTe comento que hace tiempito compre una spartan 3E starter kit, sin embargo no encuentro en las tiendas locales de mi pais el cable para poder usar el conector Hirose Fx2 de 100 pines, me avisas si alli lo tienes o y de donde lo puedo adquirir.
-
|SAdministrator |14-Sep-2009 12:05 Raúl Milla - re:FerniRo escribió:Te comento que hace tiempito compre una spartan 3E starter kit, sin embargo no encuentro en las tiendas locales de mi pais el cable para poder usar el conector Hirose Fx2 de 100 pines, me avisas si alli lo tienes o y de donde lo puedo adquirir.
Hola FerniRo,
Lo podrás encontrar en la pagina web de Digilent
http://www.digilentinc.com/Products/Detail.cfm?NavPath=2,395,461&Pr...
En mi caso lo compré en Digi-Key porque pedí muchas más cosillas que necesitaba. La ref. es H10644-ND o http://search.digikey.com/scripts/DkSearch/dksus.dll?WT.z_header=se...
-
|83.33.21.xxx |11-Dec-2009 18:57 maikel - FPGASOs comento, la virtex II pro por ejemplo tiene un powerpc, asi que no son poca cosa las fpgas. Estoy haciendo ahora una versión del juego Gorrilla y la verdad es que es divertido usarlas.
saludos
-
|81.32.141.xxx |31-May-2010 21:30 MGBuenas tardes Raúl, antes de realizarte la consulta, tengo que decirte que me parece realmente interesante tu página
Quería saber si con la spartan 3E starter kit puedes simular algunas de las entradas como en el TB.
Un cordial saludo.
-
|SAdministrator |01-Jun-2010 10:30 Raúl MillaGracias :)
La verdad es que no termino de entender bien tu pregunta... pero intentaré contestar ^^
Los started kit de digilent son diseño más o menos generales para aprender a usar las FPGAs. Las diferencia entre ellos son, la FPGA en sí y los periféricos que la acompañan. Yo me compré la Spartan 3E Starter Board por las razones que están puestas en el post, en calidad/precio, para mí era la mejor.
Cualquier cosa que simules en el testbench te debería funcionar en la spartan, salvando algunas pequeñas diferencias, no siempre lo simulado funciona en la realidad. De todas formas el software de Xilinx es bastante potente y bien configurado no tendría que darte problemas.
Si tienes más dudas pregunta, que te las intentaré contestar.
Un saludo.
-
|187.142.78.xxx |01-Jun-2010 17:32 ArturoQue tal
Sabe alguien como adquirir datos con una Spartan-3E?
Necesito hacer la adquisición de una señal y pasarla a la pc
Saludos!
-
|SAdministrator |01-Jun-2010 22:07 Raúl Milla¿Quieres adquirir datos analógicos o digitales?
Para los digitales simplemente tendrás que leer pines... muy sencillo.
En el caso de señales analógicas, se complica un poco, tendrás que hacer uso del LTC1407A-1 que es un conversor dual. En la página 73 del manual de usuario lo explican mejor. Supongo que tendrás que crearte el driver en la fpga para controlar el LTC1407A-1.
Un saludo!
-
|187.142.78.xxx |02-Jun-2010 17:29 ArturoLos datos a adquirir son digitales
La cuestion que no me queda clara es como leer los datos y enviarlos al pc, que tipo de archivo estaría generando en el pc y como generar ese archivo donde los datos se almacenen.
Gracias por la ayuda
Saludos!
-
|SAdministrator |03-Jun-2010 23:17 Raúl MillaPues... muchas son las opciones, aunque seguramente ninguna de ellas sencilla.
Yo intentaría implementar una UART con protocolo rs232, para enchufarlo al PC.
Después simplemente enviaría los datos de la adquisición en tiempo real por la UART y en el PC realizaría el registro.
Que te parece?
-
|189.166.42.xxx |03-Jun-2010 23:58 AnónimoBien, me parece interesante, y como se implementa una UART con dicho protocolo?
Habria forma de usar el puerto ethernet para la adquisición de datos, digamos que requiero de algo de rapidez, una frecuencia de entre 1 y 2 MHz
Gracias!
-
|189.166.42.xxx |04-Jun-2010 00:07 ArturoBien, me parece interesante, y como se implementa una UART con dicho protocolo?
Y para hacer la adquisición en tiempo real, como es que funciona?
Habria forma de usar el puerto ethernet para la adquisición de datos, digamos que requiero de algo de rapidez, una frecuencia de entre 1 y 2 MHz
Estoy bastante interesado!
Gracias!
-
|SAdministrator |06-Jun-2010 16:58 Raúl MillaPara 1 y 2 MHz... te falta con una UART... supongo que necesitarás ethernet.
Yo la verdad es que tanto dominio sobre las FPGAs no tengo :( aunque me gustaría. Lo que si te puedo recomendar es que le des un vistazo a los opencores, igual puedes conectar algún core ethernet junto con tu circuito de adquisición... no se.
Espero que nos cuentes como avanza el proyecto, se ve bastante interesante.
-
|187.134.154.xxx |30-Jun-2010 16:34 ArturoQue tal Raúl
Me comentabas sobre implementar una UART, para el rs232, podría mandar los datos de adquisición a la memoria de la fpga y despues por el serial al pc, si me pudieras orientar como hacerlo, obviamente primero necesito saber usar el serial, y obviamente direccionar a un archivo en la pc.
He estado trabajando con el ethernet, y digamos que si saca algo, lo cheque con el wireshark, para ver el flujo de datos de ese puerto, pero no tengo idea de como descifrar el contenido.
Saludos!
-
|SAdministrator |30-Jun-2010 16:40 Raúl MillaMe encantaría poder ayudarte Arturo pero desgraciadamente no tengo tanto nivel práctico.
Como mucho puedo decir que el protocolo rs232 es directo, envías bytes por el cable TX y los recibes en el PC. En internet tienes montón de info sobre el tema...
Mantednos informado de los avances :)
-
|187.134.154.xxx |30-Jun-2010 16:44 ArturoOk, si me pudieras ayudar con algun tutorial o programa que involucre el serial sería fabuloso!
Gracias!
-
|SAdministrator |30-Jun-2010 21:07 Raúl MillaEl puerto serie envía datos de 8bits normalmente, aunque es posible también 8+1 de paridad. El funcionamiento es el siguiente.
Bit de start, datos, paridad, Bit de stop.
Es un protocolo muy sencillo, existen muchos terminales o monitores, por ejemplo Token 2, que permite ver todos los datos que llegan por el puerto serie.
Como son 8 bits normalmente se le asocia el carácter ASCI.
Yo te recomiendo que visites la wikipedia, http://es.wikipedia.org/wiki/RS-232, y busques información por internet. Si tienes alguna duda en concreto preguntalá, pero es que ponerme escribir sobre rs232 es una perdida de tiempo con toda la info que existe al respecto.
Un saludo.
3.26 Copyright (C) 2008 Compojoom.com / Copyright (C) 2007 Alain Georgette / Copyright (C) 2006 Frantisek Hliva. All rights reserved."
Actualizado (Sábado, 15 de Agosto de 2009 17:13)









