Вы находитесь на странице: 1из 14

Página |1

INSTITUTO TECNOLÓGICO DE LA PIEDAD

MAQUINAS ELÉCTRICAS

INGENIERÍA ELECTRÓNICA

TALLER DE VHDL

ALUMNOS:
ENRIQUE BARAJAS ORTIZ

PROFESOR:
ING. RODOLFO GUADALUPE HERNÁNDEZ

La Piedad Michoacán
Miércoles 19 de Mayo de 2010

Enrique Barajas Ortiz


Página |2

FPGA’s

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 (w:en:System-on-a-chip).
Las FPGAs se utilizan en aplicaciones similares a los ASICs sin embargo son
más lentas, tienen un mayor consumo de potencia 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 y el tiempo de desarrollo es también menor.
Ciertos fabricantes cuentan con FPGAs que sólo se pueden programar una vez,
por lo que sus ventajas e inconvenientes se encuentran a medio camino entre los
ASICs y las FPGAs reprogramables.
Las FPGAs fueron inventadas en el año 1984 por Ross Freeman y Bernard
Vonderschmitt, co-fundadores de Xilinx, y surgen como una evolución de los CPLDs.
Tanto los CPLDs como las FPGAs contienen un gran número de elementos
lógicos programables. Si medimos la densidad de los elementos lógicos programables
en puertas lógicas equivalentes (número de puertas NAND equivalentes que
podríamos programar en un dispositivo) podríamos decir que en un CPLD hallaríamos
del orden de decenas de miles de puertas lógicas equivalentes y en una FPGA del
orden de cientos de miles hasta millones de ellas.
Aparte de las diferencias en densidad entre ambos tipos de dispositivos, la
diferencia fundamental entre las FPGAs y los CPLDs es su arquitectura. La
arquitectura de los CPLDs es más rígida 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 interconexion de dichos bloques confiere a las FPGAs
una 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 sumador y multiplicador)
embebidas en la propia matriz de interconexiones, así como bloques de memoria.

Enrique Barajas Ortiz


Página |3

FPGA’s

El siguiente ensayo nos adentra un poco a lo que es la programación de VHDL,


el cual fue un taller dado en el Primer Simposio de Electrónica en el INSTITUTO
TECNOLÓGICO DE LA PIEDAD.
Una vez que el Doctor Abundis se presento al grupo de alumnos que
participamos el taller nos empezó hablarnos un poquito sobre lo que es un FPGA’s y
así empezamos a ver qué es lo que tiene como funciona etc.
En este taller por el tiempo tan limitado de 2 días se trato de poder acelerar las
cosas así que el Doctor Abundis encardado de impartir el taller de programación de
VHDL, nos facilito los programas que iba a estar cargando a la placa, solo se tuvo un
inconveniente ya que los programas que el Doctor realizado fueron un el FPGA
Spartan 3E-100 TQ144 Basys y la que el Instituto nos proporciono fue una FPGA
Spartan 3E-100 CP132 Basys2 y se tuvo que modificar, no el código del programa pero
si los pines de salida y entrada de la placa y botones asignado para poder hacer que
funcione correctamente.

FPGA’s Basys y FPGA´s Basys2

Puede que a simple vista se vean iguales pero tiene diferentes valores los pines.
Y ese él es motivo por el cual se tuvo que modificar lo ya mencionado.
Bueno nuestro primer programas que se implemento en la tarje fue un
sumador de 4 bits con una salida de 5 bits con el Carry.
Bueno ahora se pasa a nuestro ordenador y se crea una carpeta en disco (C:) la
cual la llamaremos TRABAJO, esta carpeta se creó en C por que la rota le queda más
corta a nuestro programa y así se procura tener menos inconvenientes en un futuro.

Enrique Barajas Ortiz


Página |4

Nuestro próximo paso es abrir nuestro software el cual lleva el nombre de


Xilinx ISE 10.1 y una vez ejecutado, se verá así.

Como se avía mencionado anterior mente el Doctor nos proporciono los


programas que se van haber en el curso.

Enrique Barajas Ortiz


Página |5

De los cuales se van a copiar dos archivos que son los .ucf que nos proporciona
las conexiones de la tarjeta y .vhd que nos deja ver nuestro código del programa, estoy
archivos se pegara en una nueva carpeta creada dentro de TRABAJO y llamada suma
ss, como se observa a continuación.

Esto más que nada es para tener un orden en los programas futuros que
vallamos hacer y nos se haga un revolvedero.
Una vez copiados los archivos y nuestro software abierto solo nos queda crear
nuestro proyecto y para eso nos vamos File y le ponemos el nombre suma_ss como se
observa a continuación y más abajo HDL, y damos clic en next.

Enrique Barajas Ortiz


Página |6

En esta venta se hace la configuración de la tarjeta y como ya se avía


mencionado anteriormente nosotros contamos con una Spartan 3E CP132 y en esta
ventana tenemos que configurar eso, y el lenguaje que es VHDL y presionamos next.

Enrique Barajas Ortiz


Página |7

En esta venta no se hace nada solo hay que dar next.

Aquí cargamos los archivos que copiamos a la carpeta suma ss que era el .ucf y
.vhd. Damos clic en next.

Enrique Barajas Ortiz


Página |8

Esta ventana nos dice que ya terminamos de configurar tarjeta y programa


para empezar la corrección de pines y ver el código, y por ultimo finalizar.

En esta ventana solo damos ok.

Enrique Barajas Ortiz


Página |9

Bueno una vez cargado todo tenemos que hacer cambio de pines en nuestro
archivo .ucf, como se observa nos manda un error ya que los pines son de la tarjeta del
doctor solo tenemos que cambiarlos y volver a compilar y listo.

Como se observa ya se hiso el cambio de pines y ya no marca el error.

Enrique Barajas Ortiz


P á g i n a | 10

Por mero trámite vemos el código, no nos adentraremos mucho ya que Doctor
proporciono el código y no tiene errores.
Como se observa lo primero que tenemos son las librerías que nos manda
llamar todo los pequeños archivos que necesitamos para que nuestro programa
funcione.
Después declaramos variables que seria “a y b” que son nuestras entradas cada
unas de 4 bits y “c” es nuestra salida de 5 bits, también se cuenta con una salida que es
s_r las cual nos sirve para escoger en un momento dado si queremos restar o sumar.
Después en el begin encontramos un if el cual nos permitirá hacer la condición
que cuando se 0 sume y cuando se 1 reste y eso es lo que nuestro código nos dice.

Ahora damos doble clic en la Synthesize para ver que no marque error en el
código y como se observa se pone una palomita de que esta correcto el código.

Enrique Barajas Ortiz


P á g i n a | 11

Ahora que si queremos verlo más gráficamente como está conformado nuestro
programa. Damos doble clic en Wiew RTL Schematic, se pude observar muy bien que
tenemos 3 entradas y 1 salida pero si queremos ver que tiene adentro ese bloque
damos nuevamente doble clic.

Enrique Barajas Ortiz


P á g i n a | 12

Bueno aquí se pude observar vas claramente lo mencionado anterior mente.

Ya cuando todo está bien en la sintaxis y pines, damos clic en implement Design
para empezar a checar el mapeo y el enrutado que va a tener el la placa.

Enrique Barajas Ortiz


P á g i n a | 13

Y para terminar damos doble clic en Generate Programming File para generar
el archivo que vamos a vaciar a la placa y ver ya físicamente lo que hicimos en código.

Para esto utilizamos un programa llamado Adept el cual pueden descargar


directamente de la página de Digilent, por lastima no cuento con la tarjeta en este
momento por eso no puedo mostrarles eso ya que necesito conectarla a la
computadora para que el programa Adept pueda detectarla y poder vaciar el archivo
creado que es un .bit.
Bueno esto es lo que se hiso con todos los programas llenaría hojas y hojas de
lo mismo así que haré una lista con lo que hace cada programa para que se den una
idea sobre lo que se hiso.

1. Sumador de 4 bits y 5 bits de salida pero con signo decimal


2. Un contador de 0 a F con un display.
3. Un contador de 0 a 9 con display asendente
4. Un contador de 9 a 0 con display desendente
5. Una memoria
6. Un decodificador BCD-7 segmentos.

Enrique Barajas Ortiz


P á g i n a | 14

CONCLUSIÓN
En este Taller se pueden concluir muchas cosas ya que sabiendo utilizar bien
este tipo de FPGA’s todo lo que cableábamos con TTL lo podemos hacer con el FPGA,
pero no hay que olvidar que lo primero que tenemos que hacer es conocer bien el
funcionamiento de todo lo que es TTL para el momento que nos pongamos a
programas ya tengamos las bases y no se dificulte.
Otra cosas que puedo decir sobre este curso es que fue muy bien explicado en
todos los expertos ya que el doctor era una persona muy capas y cualquier duda te la
respondía de una forma muy fácil y entendible.
Y por ultimo esperemos que esto sea el principio para que cada año que se haga
este tipo de Simposio ya que nos deja mucho como alumnos al ver nuevas cosas que
hay y actualizarnos un poco, ya que casi es imposible ir de la mano de la tecnología
pero para tener un mejor visión de la cosas y saber dónde estamos parados para el
futuro.

Enrique Barajas Ortiz

Вам также может понравиться