TODOPIC
Otros Microcontroladores / Dispositivos programables => Lógica Programable => Mensaje iniciado por: Geo en 02 de Febrero de 2010, 14:59:39
-
Qué tal, durante el 2007 y 2008 colaboré en la impartición de un curso de introducción a VHDL de 4-5 días durante un congreso de electrónica llevado a cabo en donde estuve estudiando :). El año pasado me invitaron nuevamente aunque coincidió con las fechas de realización de un concurso (el evento nacional de creatividad de los tecnológicos) y ya no pude participar.
El curso fue muy básico, durante los dos primeros días se presentaron algunas generalidades del lenguaje VHDL y se introdujo a la utilización del software ISE de Xilinx. Después de eso se llevaron a cabo algunos ejercicios:
- Compuertas básicas (and, or...)
Introducción a ISE y VHDL. Revisión de sintaxis, implementación, asignación de pines, generación de archivo de programación, descarga de proyecto. - Medio sumador (diseño estructural) y (diseño por flujo de datos / funcional)
Diferencia entre diseño estructural, por comportamiento y funcional. - Sumador completo (diseño por flujo de datos / funcional) y (diseño estructural)
Reutilización e instanciación de componentes, continuamos con la diferencia entre los modos de diseño, - Sumador de 4 bits (esquemático)
Cómo trabajar con la herramienta de diseño de esquemáticos. - Sumador de N bits
La sentencia generate, diseño genérico. - Contador de 4 bits con salida a leds
Circuitos secuenciales. - Contador 0-99 con salida a displays de 7 segmentos, pulsos cada 1s
Proyecto final, una forma fácil de dividir la frecuencia, multiplexación de displays.
- Proyectos no incluidos por falta de tiempo, ejemplo VGA, diseño de un procesador simple
(Probablemente se pasen a un curso intermedio).
Bien, el chiste es que me gustaría saber si estarían interesados en que les comparta el material, con la condición de que me den comentarios, ideas y sugerencias para mejorar o ampliar el curso, ¿qué les parece?
-
Pues me parece una exelente idea :mrgreen:
pues mas ideas creo que las tendre en cuanto aprenda algo.
aunque para un curso de 4-5 dias me parece suficiente, aunque se le puede sacar mas provecho introduciendoce mas a aspectos del lenguaje que tratando de diseñar proyectos muy complicados.
-
Yo tambien estoy interesado, hace tiempo que le tengo ganas al VHDL y por varios motivos no he podido dedicarle el tiempo necesario, sobre las sugerencias que pides , bueno no se si ya lo contemplas pero me parece util el incluir el uso de algun simulador de VHDL.
Saludos
-
Yo tambien me sumo!! El año pasado tuve vhdl en circuitos digitales 2, y pienso rendirla en marzo, asiq me viene de 10 el material para repasar :D
gracias Geo!!
-
sander: Olvidé mencionarlo, pero si se incluye la utilización del simulador.
Acabo de revisar el material que debía tener en mi computadora y no encuentro las presentaciones :p. No importa, podemos basarnos solamente en los ejercicios mientras veo si las consigo (debiera tenerlas mi compañero con quien di el curso).
Creo que no pondré todo el código de una sola vez, sino que iré colocando de a uno los ejercicios, a manera del curso. A continuación listo lo que necesitaremos.
Herramientas necesarias
- Algún dispositivo de lógica reconfigurable, los ejercicios fueron probados en estas dos tarjetas desarrolladas por Digilent:
Spartan 3 Starter Kit (http://digilentinc.com/Products/Detail.cfm?NavPath=2,400,799&Prod=S3BOARD)
CMOD (http://digilentinc.com/Products/Detail.cfm?NavPath=2,400,798&Prod=CMOD) + CERES (http://www.digilentinc.com/Products/Detail.cfm?NavPath=2,398,511&Prod=CERES)
Si ya tienen alguna, perfecto. Si tienen otra, no importa, también sirve.
Si no tienen ninguna, tampoco hay problema, pueden de cualquier manera realizar los ejercicios y trabajar con simulaciones.
Si piensan comprar alguna, chequen entre las más recientes, muchas veces tienen más prestaciones y son más económicas.
- Software ISE
Es la herramienta con la que crearemos nuestros diseños, los simularemos y convertiremos a un circuito para algún dispositivo reconfigurable. Básicamente hay dos versiones: Foundation y Webpack, la diferencia es que el Webpack es gratuito, lo pueden encontrar en esta dirección: http://www.xilinx.com/webpack - Software de simulación.
Por ahora les recomiendo utilizar el simulador incluido en ISE, en el Webpack se incluyó a partir de la versión 8.2, no es la gran cosa pero sirve :).
Otra opción muy potente es ModelSim, hay una versión gratuita para emplear con dispositivos de Xilinx (según recuerdo la última vez que chequé), aunque si no me equivoco me empezó a dar problemas a partir de Windows Vista. Para quien guste le recomiendo echar un ojo a Modelsim, aunque aquí nos conformaremos con el simulador incluido en el ISE (no he checado las últimas versiones del Webpack, tengo que confirmar que si esté incluido).
- Cable de programación
Las tarjetas de desarrollo más recientes que he visto en Digilent permiten la programación de los dispositivos mediante USB, para las que no cuenten con esta opción (como las que mencioné), necesitarán contar con el cable adecuado. Yo he utilizado el JTAG USB (http://www.digilentinc.com/Products/Detail.cfm?NavPath=2,395,523&Prod=JTAG-USB) de Digilent (aunque ya vi que hay uno mejor y más barato, además de las tarjetas que soportan USB :p).
Yo tengo ISE Foundation 8.2, comenten qué versión tienen o pueden conseguir, podemos checar si nos ponemos de acuerdo sobre qué versión trabajar. Entre versiones, el cambio más fuerte fue de la 7 a la 8. De la 8 a la 9 no fueron tan drásticos los cambios, la 10 es muy similar a la 9, la 11 no la conozco.
En cuanto a tarjeta, ahorita tengo una Spartan 3 Starter pero no es mía (me la dieron para probar lo de la interfaz del procesador que mencioné en otro tema), quizá pueda conseguir una igual para realizar pruebas.
Espero sus comentarios.
-
Yo ya segui el Link para bajar el ISE webpack , primero tuve que registrarme y ahora que veo el tamaño del webpack es de 2,67 GB , para ser una version gratuita debe tener bastantes herramientas.
Saludos
-
Saludos Geo,
Me uno al curso para apoyar en lo que se pueda y para plantear mis dudas :D .
Yo creo que se puede empezar con el mini curso con un pequeño tutorial de las herramientas a utilizar
para que se puedan realizar los ejemplos sin mucha dificultad. Cierto es que de una versión a otra cambian
un poco, pero si se tiene el tutorial de alguna versión no sería tan dificil adaptarlo a otra, sobre todo si es
una versión superior.
Propongo como herramienta de simulación el entorno de Aldec: Active-HDL. De la cual existe una
student edition que es free. Si bien tiene algunas limitantes esta bastante completo. Además de
ser más amigable que el simulador de Xilinx. Inconveniente hay que registrarse para bajarlo y
obtener la licencia :D .
el enlace de Active-HDL Student Edition
http://www.aldec.com/Products/Product.aspx?productid=87b3ddbe-fc61-4984-a806-481772cdf23a
Material del que dispongo:
- Active-HDL 6.2
- ISE webpack 10.1
- Adept (http://www.digilentinc.com/Products/Detail.cfm?NavTop=2&NavSub=69&Prod=ADEPT) (herramienta para programar la nexys via USB)
- Nexys 2 (http://www.digilentinc.com/Products/Detail.cfm?Prod=NEXYS2)
Bye
-
Hola Geo
yo todavia no cuento con nada pero en estos dias me estara llegando mi nexys2 y tambien esta tarde despues de 4 dias de descarga tendre el ise webpack 11. que pesa 5.6GB segun se es muy similar al 10.
salu2:)
-
Yo ya segui el Link para bajar el ISE webpack , primero tuve que registrarme y ahora que veo el tamaño del webpack es de 2,67 GB , para ser una version gratuita debe tener bastantes herramientas.
Si, tiene bastantes cosas, entre herramientas y los archivos de configuración/identificación de cada dispositivo, bibliotecas y más.
yo todavia no cuento con nada pero en estos dias me estara llegando mi nexys2 y tambien esta tarde despues de 4 dias de descarga tendre el ise webpack 11. que pesa 5.6GB segun se es muy similar al 10.
El Webpack gratuito pesa 2.67 GB, tal como mencionó sander. El que pesa 5.6 GB es la Design Suite, la versión completa (de pago), con licencia de evaluación (la tienes que obtener en otro paso). En la página de descarga, abajo de la Design Suite encuentras el Webpack.
-
Sabia que algo estaba mal en todo esto. :D
pero creo que algo podre hacer. supongo que la licencia de evaluacion me dara por lo menos un mes de uso, espero que sea suficiente para terminar el curso, sino mientras me estare descargando el gratuito. talvez al instalar me de la opcion de instalar la version gratuita si no ni modo, a descargar de nuevo.
salu2:)
Esperando el inicio de clases ;-)
-
Ya descargué la versión 11.1 de ISE Webpack, en cuanto pueda la checo si hay mucha diferencia con la 8.2 (la que tengo), de ahí empezamos con los ejercicios.
-
hola , pues yo consegui el xilinx ISE 10.1 pues me dijeron que las versiones superiores le anularon el simulador de generacion de ondas test bench waveform
osea abria que aprender a usar el simulador model sim o el Isim del propio ISE a ver que me dicen al respecto , ese generador era muy didactico no se por que lo anularon uhmmm , sera por que no era muy exacto pero para alguien que inicia estaba excelent.
(http://img268.imageshack.us/img268/9088/dibujotou.jpg) (http://img268.imageshack.us/i/dibujotou.jpg/)
-
:shock: Yo tambien ya descargue la version 11.1 del ISE webpack, pero realmente me sorprende el tamaño de la instalacion (aproximadamente 5 gigas), debe ser una especie de superprograma.
saludos
-
Saludos,
En lo particular no me parece muy amigable la interface de simulación del ISE de XILINX.
Yo propongo usar el Active-HDL para todo lo referente a las simulaciones.
bye
-
Tras bastante tiempo de no actualizar este tema, es momento de empezar el curso básico de introducción a VHDL :). Aclaro que iré publicando el material aquí en el foro y a la par (aunque desfasado) en el sitio web http://www.mexchip.com. Bien, empecemos.
--------------------------------------------------------
El curso no se centra en el diseño lógico, sino en los aspectos básicos del lenguaje y en el uso de las herramientas de Xilinx para el diseño con VHDL. Durante el curso se utilizaron tres diferentes tarjetas de desarrollo, todas de la empresa Digilent (http://www.digilentinc.com), a saber:
- Basys 2 (http://www.digilentinc.com/Products/Detail.cfm?NavPath=2,400,790&Prod=BASYS2)
- Spartan 3 Starter Board (http://www.digilentinc.com/Products/Detail.cfm?NavPath=2,400,799&Prod=S3BOARD)
- Cmod (http://www.digilentinc.com/Products/Detail.cfm?NavPath=2,400,798&Prod=CMOD)
Por el momento cuento con una tarjeta Spartan 3 Starter, y será en la cual implementaré los diseños que se muestren durante el tutorial, aunque trataré de dar indicaciones sobre las modificaciones para utilizar las otras tarjetas.
Breve introducción a VHDL
Durante la última década ha habido una gran revolución en el diseño de sistemas digitales. En la actualidad, un FPGA (http://es.wikipedia.org/wiki/FPGA) puede contener más de un millón de compuertas lógicas equivalentes y decenas de miles de flip-flops. Con tal capacidad, no es posible usar las técnicas tradicionales de diseño lógico, donde se realizaba un diagrama de compuertas para diseñar un sistema digital. La realidad es que hoy en día los sistemas digitales se diseñan de manera similar al proceso de desarrollo de software mediante los lenguajes de descripción de hardware (HDLs, por sus siglas en inglés: Hardware Description Language).
El nombre VHDL es un acrónimo que resulta de la combinación de VHSIC y HDL, que significan Very High Speed Integrated Circuit (Circuito Integrado de Muy Alta Velocidad) y Hardware Description Language (Lenguaje de Descripción de Hardware), respectivamente. Se trata de un lenguaje diseñado a iniciativa del departamento de defensa de Estados Unidos, basado en el lenguaje de programación Ada (http://es.wikipedia.org/wiki/Ada_%28lenguaje_de_programaci%C3%B3n%29). En 1986 el departamento de defensa de E. U. transfirió los derechos a IEEE, con la intención de que fuera más ampliamente aceptado por la industria, desde 1987, IEEE se ha encargado de la publicación y actualización del estándar VHDL.
Dispositivos reconfigurables
Un dispositivo reconfigurable es aquel circuito de propósito general que posee una estructura interna que puede ser modificada por el usuario final, para implementar una amplia gama de aplicaciones. Algunos dispositivos reconfigurables son:
- PROM: primer dispositivo que cumplió la característica de ser programable.
- PAL: Programmable Array Logic, dispositivos conformados por compuertas AND programables y OR fijas.
- PLA: Programmable Logic Array, más flexibles que las PAL, tiene compuertas AND y OR programables.
- PLD: Programmable Logic Device, es una matriz de compuertas AND conectada a otra matriz de compuertas OR más biestables.
- FPGA: Field Programmable Gate Array, inventado por los fundadores de Xilinx, consiste en una matriz de bloques configurables.
Estructura básica de un FPGA
Un FPGA está constituído básicamente de tres componentes:
- Bloques lógicos, cuya estructura y contenido se denomina arquitectura. Hay muchos tipos de arquitecturas, que varían principalmente en complejidad, desde una simple compuerta hasta módulos más complejos o estructuras tipo PLD.
- Recursos de interconexión, cuya estructura y contenido se denominan arquitectura de ruteado.
- Memoria RAM, que se carga durante el reset para configurar bloques y conectarlos.
Hasta aquí llegamos por el momento, en la próxima actualización pondré los pasos para descargar y obtener una licencia gratuita de ISE Design Suite, que será el software que utilizaremos durante este breve tutorial, aunque por las sugerencias de varios veré si también agregamos Active HDL :).
También comento que de teoría es muy poco lo que pondré, prácticamente lo de este post, tengo algunas diapositivas que se usaron durante el curso, pero como no las hice no las pongo hasta que consiga permiso ;). Pero, quien guste aportar algo, será más que bienvenido :).
-
Pequeño cambio de planes, el contenido del tutorial estará en el sitio web http://www.mexchip.com, aquí iré colocando avisos y enlaces conforme se agregue una nueva entrega, y discutiremos cualquier duda por aquí también :).
Mañana aparecerá en el sitio el post anterior (la introducción), la próxima debería estar lista en un máximo de dos días después.
-
Ya está la segunda parte del tutorial en el sitio :):
Curso VHDL - Introducción (http://www.mexchip.com/2010/11/curso-vhdl-introduccion/)
Curso VHDL - Instalación de software (http://www.mexchip.com/2010/11/curso-vhdl-instalacion-de-software/)
Actualizo el primer post de esta discusión para llevar allí el índice. Olvidé que no es posible modificar un mensaje con tanto tiempo :p.
Por cierto, instalé Active HDL pero en las herramientas de Xilinx solo me indica las versiones 9, en algunas opciones pude trabajar indicando la ruta a la instalación de la versión 12.1, pero al momento de intentar implementar un diseño obtuve varios errores sobre parámetros incorrectos para la herramienta, imagino que se debe a la diferencia de versión.
-
Tercera entrega lista:
Curso VHDL - Primer proyecto (http://www.mexchip.com/2010/11/curso-vhdl-primer-proyecto/)
En la siguiente entrega se mostrará cómo realizar la simulación del módulo creado, además de agregar otros módulos que se usarán como componentes para crear un módulo más grande :).
-
Publicada cuarta entrega:
Curso VHDL - Simulación (http://www.mexchip.com/2010/11/curso-vhdl-simulacion/)
-
¡Animo, Geo!, con la poca participación que hay en este hilo, estás teniendo una gran determinación para continuar, y te está quedando un trabajo extraordinario. Recibe mi apoyo.
-
Muchas gracias por los ánimos Nocturno, seguro que seguiremos todavía un rato con el mini curso :).
Un saludo hasta Sevilla :).
-
Se agradece el esfuerzo!! Yo tengo conocimientos básicos de VHDL y simulación. Pero no he podido profundizar por falta de herramientas :( Será para el año que viene :-)
Saludos, y animo!
-
muy buenos avances :mrgreen:
se ve que valió la pena la espera, con ese nivel de detalle en la explicación es bastante mas fácil entender, sigue así que estamos atentos a los avances.
suky yo me compre la nexy2 de 1200k compuertas y no me arrepiento de haberla comprado aunque el cmod me parece suficiente para empezar a practicar.
salu2:) esperando los próximos avances.
-
Gracias por los comentarios, lamentablemente estos días ando un tanto mal de salud, espero continuar el fin de semana.
-
Regresamos ya en pleno proceso de recuperación :), mañana se publica la quinta entrega :).
-
En línea: Curso VHDL - Primer proyecto, parte 2 (http://www.mexchip.com/2010/12/curso-vhdl-primer-proyecto-parte-2/)
-
En línea Curso VHDL - Diseño estructural (http://www.mexchip.com/2010/12/curso-vhdl-diseno-estructural/)
-
Primera entrega del nuevo año :)
Curso VHDL - Configurar el dispositivo (http://www.mexchip.com/2011/01/curso-vhdl-configurar-el-dispositivo/)
-
Nueva entrega :), en esta se muestra cómo configurar una tarjeta Nexys 2 con el proyecto que ya se había diseñado en las entregas anteriores:
Curso VHDL - Configurar una tarjeta Nexys 2 (http://www.mexchip.com/2011/02/curso-vhdl-configurando-una-tarjetanexys-2/)
-
Hola quiero hacer un pequeño aporte, es un lik de youtube de un profesor en sistemas digitales en morelia mexico, de esta pagina yo he aprendido mucho, espero que le sirva y la verdad vale la pena descargar los videos en alta resolucion.
es un curso de consta de 10 videos y en el se explica desde la instalacion del programa de xilinx hasta unos programas muy sencillos.
por cierto el programa pesa demasiado (poco mas de 3Gb)
para Geo:
El profesor es del Instituto Tecnologico de Morelia, yo soy del Instituto Tecnologico de San Luis Potosi, y tambien participe en el concurso de Nacional de Creatividad en el 2008 en chihuahua, con el proyecto "Lector chiptel", quisa hasta nos vimos las caras,
Arriba los Tecnologicos :)
Saludos
http://www.youtube.com/user/phddavidinfante#p/u
-
Hola quiero hacer un pequeño aporte, es un lik de youtube de un profesor en sistemas digitales en morelia mexico, de esta pagina yo he aprendido mucho, espero que le sirva y la verdad vale la pena descargar los videos en alta resolucion.
es un curso de consta de 10 videos y en el se explica desde la instalacion del programa de xilinx hasta unos programas muy sencillos.
por cierto el programa pesa demasiado (poco mas de 3Gb)
Muchas gracias por la info, me gustó mucho la página del profesor que mencionas, creo que me servirá para próximamente apuntalar el curso y otras ideas que tengo por ahí :).
para Geo:
El profesor es del Instituto Tecnologico de Morelia, yo soy del Instituto Tecnologico de San Luis Potosi, y tambien participe en el concurso de Nacional de Creatividad en el 2008 en chihuahua, con el proyecto "Lector chiptel", quisa hasta nos vimos las caras,
¿En serio? Es muy probable que nos hayamos visto, ojalá un día vea un post donde se organice algo en uno de esos concursos ;).
Arriba los Tecnologicos :)
Saludos
¡Arriba! :-/. Gracias por los saludos y la info :).
-
Después de mucho tiempo, continuamos :)
Curso VDHL - Diseño esquemático (http://www.mexchip.com/2011/10/curso-vhdl-diseno-esquematico/)
En breve estará la segunda parte de esta entrega.
-
Muy bueno el curso!! Me hubiera venido de 10 el año pasado cuando rendi circuitos digitales II jaja.
Saludos y gracias por compartirlo con la comunidad ;)
-
Hoy publicamos la segund aparte de la entrega sobre diseño esquemático, en esta se muestra la simulación, descarga y prueba en una tarjeta Nexys 2:
Curso VHDL - Diseño esquemático, parte 2 (http://www.mexchip.com/2011/10/curso-vhdl-diseno-esquematico-parte-2/)
Comentarios, correcciones, ideas y sugerencias son bienvenidos :).
-
Una entrega más antes de pasar a circuitos secuenciales:
Curso VHDL - Sumador/restador con operadores aritméticos (http://www.mexchip.com/2011/12/curso-vhdl-sumadorrestador-con-operadores-aritmeticos/)
Como siempre, cualquier comentario, corrección y/o sugerencia son más que bienvenidos.
-
:-/ upa! gracias geo, estas aventajado con semejante placa que tienes :), agrego a favoritos, que cuando empiece a ver este tema en la Universidad aqui tengo material para empezar
-
Voy a empezar a estudiar VHDL y he visto este hilo, te felicito por el contenido. Te animo a que vayas colgando contenidos, sin duda sera un valioso recurso.
un saludo
-
Muchas gracias por los comentarios :). Por unos días no haré actualizaciones, ya que estoy en plenos cambios en el aspecto laboral, pero espero sea una transición rápida y pueda retomar la publicación de los ejemplos del curso lo más pronto posible.
-
Buenas Tardes, espero no sea tarde para unirme, estoy iniciando con las FPGA y me interesa mucho, voy a seguir tu informacion, y muchas gracias por ayudarnos a aprender.