Curso para iniciarse con FPGAs

Saludos.

Me gustaria que este post sea de utilidad para todos los que quieran o comienzan a iniciarse en el mundo de los FPGAs.

La idea es iniciar con ejemplos sencillos y poco a poco ir subiendo de nivel, de manera de ir dominando poco a poco los perifericos que incluyen nuestras tarjetas de desarrollo.

Sin más espero contar con la colaboracion de las personas que conozcan sobre el tema.
 
Recien acabo de empezar con este mundo aun no hice ningun proyecto con mi placa de desarrollo pero espero que las personas que saben de FPGAS nos aclaren ciertas dudas bueno sin mas que decir solo les dejo la direccion de mi blog en la cual puse unas cuantas fotos de mi placa de desarrollo SPARTAN 3AN.

http://josh-disenio.blogspot.com/

Joshdaniel
 

Adjuntos

  • spartan_3an_210.jpg
    spartan_3an_210.jpg
    171.6 KB · Visitas: 765
Yo tengo una Ciclone II de Altera...... con tarjetas hijas para LCD de color y camara CCD... solo que nito darme tiempo para aprender a programar bien en VHDL... fui a unos cursos express donde me dieron 3 librotes de programacion un dia de estos los voy a escanear para poderlos compartir por este medio

fig1-cyclone2-staterkit.jpg
 
Aqui coloco un material que puede ser de utilidad. Algunos estan en español y otros en ingles pero pueden ser de gran ayuda.

Este manual es muy bueno de echo ya me lo lei.
http://links.wamba.com/noref.php?url=http://rapidshare.com/files/68374029/VHDL.pdf

Este es un libro muy bueno lo descargue hace poco por lo que no lo he leido.


aqui otros libros que consegui en la red, pueden resultar utiles en algun momento.

Vhdl Programming By Example - Douglas L Perry.pdf
http://w17.easy-share.com/1702941922.html

----------
VHDL Reference Manual
http://w17.easy-share.com/1702941830.html

------------
Prentice Hall - Verilog HDL - A Guide To Digital Design
http://w17.easy-share.com/1702941824.html

------------
1076 IEEE Standard VHDL Language Reference Manual
http://w17.easy-share.com/1702941825.html

------------
McGraw Hill - VHDL Programming by Example 4th Ed
http://w17.easy-share.com/1702941801.html

------------
MIT Press - Circuit Design with VHDL (2005)
http://w17.easy-share.com/1702941816.html

------------

En caso de que se deseen bajar todos los libros:



Fichero de 41 MB. Por cierto, todos los archivos se abre con la contraseña torito
 
El ultimo link contiene los otros libros desde el Douglas Perry en adelante, en caso de que no funcione bueno quedaria bajarlos uno por uno. No son muy pesados esos se bajan rapido.

Pronto subiere otros que tengo muy bueno en español.
 
Aqui les adjunto un manual muy bueno.

Tengo otros manuales pero su tamaño es mayor a un MB por lo cual no los puedo subir.
 

Adjuntos

  • tutorial_de_vhdl_892.pdf
    360.4 KB · Visitas: 1,189
Hola a todos

En mi trabajo entre otras cosas me dedico a desarrollar y probar firmware para FPGA's, por lo que si tenéis alguna duda concreta os puedo intentar echar una mano :)

Por otro lado he trabajado con FPGA's de Altera y de Xilinx, mi consejo si os queréis comprar una placa de evaluación para aprender su manejo es que os compréis una de Altera, más que nada (en mi opinión) porque el entorno de trabajo es mucho más amigable y sencillo de usar, además de ser más estable (el ISE de Xilinx se "cuelga" a veces...). En mi trabajo he usado la Cyclone II de altera y es una tarjeta muy sencilla de usar y mi preferida si alguna vez decido comprarla, además de ser de las más baratas... También he usado las tarjetas de evaluación Spartan 3A y Virtex II Pro de Xilinx y son unas tarjetas más completas que la de Altera, pero como ya dije su uso se complica algo más...

Quizá para desarrollar exclusivamente código VHDL la diferencia no sea tanta, porque al fin y al cabo lo "gordo" del proyecto es escribir el código, y para eso con el notepad de windows ya basta Donde he visto grandes ventajas de Altera sobre Xilinx es en el desarrollo de esquemáticos (pueden llegar a ser muy útiles para unir varios bloques de código VHDL que interactúen entre sí) y en la herramienta de análisis lógico (chipscope de xilinx y signaltap de altera, que te permiten visualizar en el PC el valor de señales internas de la FPGA, para saber su estado exacto en cada momento). Me pareció que las de Altera son más intuitivas de usar...

Para Altera basta que se bajen el Quartus Web Edition (creo que es gratuito), lo único que no soporta los modelos más avanzados de FPGA pero la Cyclone II de la tarjeta de evaluación sí funciona (además el Web Edition viene en el CD adjunto a la tarjeta que compren, por lo que ni siquiera tienen que bajarlo). Tiene un simulador de código VHDL que si bien no es muy completo, sí permite hacer casi todas las pruebas que uno puede necesitar durante el desarrollo de código. Una herramienta de simulación mucho más avanzada es el modelsim, creo que incluso tiene una versión gratuita (con sus limitaciones).

Espero que esta información os sirva

Un saludo
 
Creo que seria bueno postear ejemplos sencillos para irnos familiarizando con el uso de los kits... pero va a ser algo complejo por que en kits como los de altera me parece que las patitas se escogen en el compilador y no en el programa... saben VHDL soporta una forma de "estandarizar" los pines del chip?
 
saben VHDL soporta una forma de "estandarizar" los pines del chip?

La forma de asignar los pines en el proyecto VHDL es cogerte el esquemático de la tarjeta de evaluación y ver a qué pin de la FPGA llega la señal que te interesa... y es ese pin el que tienes que asignar. Es decir, la elección está restringida por el hardware. Lo que sí se puede hacer es sacar tus señales por el pin de la FPGA que quieras, pero claro otra cosa es que funcione (si sacas una señal de activación de un led por un pin que está conectado a un pulsador pues obviamente nada funciona...). Vamos esto es como con los PIC, si activas un led por el puerto A1 pues tendrás que conectar el led a ese pin... lo malo de las FPGA es que una vez hecho el circuito cambiar un pin puede no ser posible.

En cuanto a eso de "estandarizar" no entiendo muy bien a qué te refieres. El código VHDL no usa pines, usa señales, es decir al final tú vas a tener una "caja negra" con señales de entrada/salida. Después en el compilador es donde asignas cada señal a un pin físico de la FPGA. Además el código VHDL es portable, es decir realizas un diseño que encienda leds y ese mismo VHDL te sirve para cualquier FPGA, solo tienes que reasignar los pines cuando cambies de modelo de FPGA,
 
Lo que dice Ferny es muy cierto.

Yo hice un programita sencillo y me funciono.

Espero subirlo pronto para que todos puedan empezar a usar sus tarjetas.
 
a lo que me refiero es que he hecho programas simples que corren en el Quartus II de Altera, defino las señales y dentro del Quartus hay un panel de control donde defino que pin va a recibir que señal, pero no se si el proceso sea el mismo para Xilinx u otro fabricante... Si el VHDL soporta ese tipo de inicializacion "in situ" podriamos intercambiar proyectos independientemente de la plataforma... un programa que haga para altera podria correr en un modulo Xilinx sin cambios o con cambios minimos...

Es esto posible?
 
Chico3001 dijo:
a lo que me refiero es que he hecho programas simples que corren en el Quartus II de Altera, defino las señales y dentro del Quartus hay un panel de control donde defino que pin va a recibir que señal, pero no se si el proceso sea el mismo para Xilinx u otro fabricante... Si el VHDL soporta ese tipo de inicializacion "in situ" podriamos intercambiar proyectos independientemente de la plataforma... un programa que haga para altera podria correr en un modulo Xilinx sin cambios o con cambios minimos...

Es esto posible?

Eso es así, las señales en xilinx se asignan también a los respectivos pines de la FPGA. Lo único que cambia es la forma de hacerlo, mientras en quartus generalmente se hace de forma gráfica (te sale el dibujito de la FPGA y vas marcando los pines) en xilinx suele hacerse definiéndolos mediante un fichero de texto (el denominado UCF), aunque creo que también tiene una forma gráfica (nunca la usé).

Recuerden... el VHDL es PORTABLE, hacen un diseño en altera y les vale para xilinx u otra FPGA. Lo que NO es portable son los esquemáticos, que como dije son muy útiles... pero tanto quartus como ise permiten exportar los esquemáticos a código VHDL, así que tampoco es un gran problema (aunque ambos tienen sus fallos al exportar, no lo hacen bien del todo, pero eso ya es otro tema...)

Otra cosa que hay que tener en cuenta es la frecuencia de reloj. Imaginen que hacen un módulo de retardo de 1s en una FPGA cuyo reloj son 50MHz. Si luego lo compilan para otra FPGA cuyo reloj son 40MHz, ahora el retardo pasa a ser de 1.25s, porque el ancho de ciclo cambia... Para estos casos utilicen contadores y constantes, de manera que el usuario sólo tenga que calcular y cambiar el valor de las constantes.
 
Tomado de Wiki:

Una FPGA (del inglés Field Programmable Gate Array) es un dispositivo semiconductor que contiene bloques de lógica cuya interconexión y funcionalidad se puede programar. La lógica programable puede reproducir desde funciones tan sencillas como las llevadas a cabo por una puerta lógica o un sistema combinacional hasta complejos sistemas en un chip

Osea que es un chip que solo tiene compuertas sin conectar en su interior, y por medio de un lenguaje de programacion defines como se van a conectar estas compuertas, asi que el rango de aplicaciones es practicamente ilimitado y va desde aplicaciones de logica combinacional, secuenciadores, expansores de puertos para microcontroladores y microprocesadores, hasta aplicaciones en las que le puedes programar un microprocesador en su interior con los todos los perifericos que necesites
 
Atrás
Arriba