Introducción
Objetivo
Desarrollo
a)
Una FPGA es un dispositivo programable que contiene bloques de lógica cuya interconexión
y funcionalidad puede ser configurada mediante un lenguaje de descripción especializado.
Las FPGAs tienen las ventajas de ser reprogramables, 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.
Históricamente las FPGA surgen como una evolución de los conceptos desarrollados en
las PAL y los CPLD.
Tarjeta BASYS
La tarjeta BASYS 2 es una tarjeta de desarrollo, fabricada por la compañía DIGILENT, que
contiene, un arreglo lógico programable de campo con 100.000 compuertas.
Además de la FPGA, esta tarjeta contiene una serie de recursos que pueden ser utilizados
en los diseños de los circuitos. Concretamente contiene:
• 4 pulsadores.
• 8 interruptores deslizables.
• 8 LEDS, cátodo común.
• 4 displays de 7 segmentos en visualización dinámica.
• Un conector de teclado de PC (PS2)
• Una salida VGA para monitor de computador.
Todos estos recursos se encuentran conectados a las patillas de la FPGA de la forma que se
indica en la siguiente figura:
La serie Spartan está dirigida a aplicaciones con una huella de baja potencia, sensibilidad
extrema y de alto volumen; por ejemplo pantallas, decodificadores, routers inalámbricos y
otras aplicaciones.
Sus características principales son:
FPGA XC3S500E, familia Spartan-3E de Xilinx.
Memoria Flash de 4 Mbit para configuración.
CPLD XC2C64A, familia CoolRunner
DDR SDRAM de 64 MByte (512 Mbit), interfaz x16, 100+ MHz. • Memoria Flash 16 MByte
(128 Mbit) para aplicaciones.
Memoria Flash 16 Mbits acceso serial, via SPI.
Pantalla LCD de 16 caracteres por 2-líneas.
Puerto PS/2 y Puerto VGA.
Capa física Ethernet 10/100.
Dos puertos RS-232 de 9 terminales.
Interfaz USB para descarga y depuración
Oscilador de 50 MHz.
Convertidor Digital a Analógico SPI de cuatro salidas (DAC), con resolución de 12 bits.
Convertidor Analógico a Digital SPI de dos entradas (ADC) con resolución de 14 bits y pre-
amplificador con ganancia programable.
Botón rotatorio.
Bloque de entrada y salida
Registros independientes
– Bus de operaciones rápido
– Interface to high-speed memory like ZBT and QDR
– Increase system performance with fast Tsu and Tco
Lower ground bounce with slew rate control
Zero hold time for registered input signals using programmable input delay.
Lower power consumption with keepr circuit
b) Utilizando como salida los LED de la placa FPGA y como entrada dos switch de la misma.
Mostrar por los LED el resultado de ejecutar sobre las entradas de los switch las diferentes
operaciones lógicas: NOT, AND, OR, XOR, NAND, NOR, XNOR.
Solución:
c) Describir el siguiente circuito en VHDL. Simular el circuito e implementarlo en una FPGA.
Solución:
d) Para poner en marcha un motor trifásico se requiere tres interruptores (a, b y c)
de tal forma que el funcionamiento del mismo se produzca únicamente en las
siguientes condiciones:
•Cuando esté cerrado solamente b.
•Cuando estén cerrados simultáneamente a y b y no lo esté c.
•Cuando estén cerrados simultáneamente a y c y no lo esté b.
Implementar dicho circuito en una FPGA (a, b y c serán switches y el motor un
LED)
Solución:
e) Como actividad posterior, proporcionar una clasificación de los dispositivos lógicos
programables.
SPLD
Los PLA, PAL, GAL y ROM son llamados SPLD (Simple Programmable Logic Devices) a partir
del surgimiento de los CPLD (Complex Programmable Logic Devices) los cuales básicamente
contienen múltiples PLD en el mismo chip.
ROM
Una ROM consiste en un arreglo de dispositivos semiconductores que están
interconectados para almacenar de datos binarios. Una vez almacenada la información,
puede ser leída cuando se requiera, pero no puede ser modificada bajo condiciones
normales de operación.
PLA
Un arreglo lógico programable (PLA) realiza la misma función que una ROM. Un PLA con n
entradas y m salidas puede realizar m funciones de n variables. La organización interna del
PLA difiere de la de la ROM, el decodificador se reemplaza por un arreglo de ANDs que
realiza los términos producto seleccionado de las variables de entrada
PAL
El PAL (Programmable Array Logic) es un caso especial del PLA en el que el arreglo de AND
es programable y el de OR es fijo. Sus estructuras son iguales, pero el hecho de que
únicamente el arreglo de AND sea programable hace más barato y fácil de programar el PAL
en comparación con el PLA.
CPLD
Un CPLD es un circuito integrado que consiste en un número de bloques lógicos parecidos
a un PAL, incluyendo además una matriz programable de interconexiones entre estos
bloques.
FPGA
Los FPGA son circuitos integrados que contienen un arreglo de bloques lógicos idénticos
con interconexiones programables, en los que el usuario puede programar tanto las
funciones realizadas por cada bloque lógico como las conexiones entre bloques.
Conclusiones y Observaciones
Fue muy interesante retomar algunos conceptos y también ver las partes que integran cada
una de estas tarjetas.
El haber utilizado están dos herramientas anteriormente preveo que será un poco más
sencillo adaptarme a VHDL. En general me fue importante volver a practicar un poco en
VHDL, aunque en un principio me costó un poco de trabajo adaptarme, algunas cosas ya las
había olvidado.
Endra Flores
Esta práctica fue útil ya que me hizo recordar la programación de las FPGA y el cómo
implementarlas, ver los distintos tipos de dispositivos programables fue educativo ya que
no tenía el conocimiento de ello, ahora sé cuáles son las diferencias entre un circuito lógico
y un dispositivo programable.
Juan Carlos Martínez Medina
Bibliografía
https://es.slideshare.net/jojaquix/intro-spartan
http://digitales2escom.blogspot.mx/2013/06/manual-de-referencia-de-la-
tarjeta.html
http://www.ptolomeo.unam.mx:8080/jspui/bitstream/132.248.52.100/658/8/A8.pdf