introducción a las fpga...•hay aplicaciones en las cuales usar un microcontrolador no es...
Post on 14-May-2020
7 Views
Preview:
TRANSCRIPT
Lógica Estándar
Compuertas lógicas, flip flop, decodificadores, disponibles en chips SSI y MSI.
No son una buena solución de diseños grandes.
Microprocesadores / DSP
• Enfoque distinto para diseño de sistemasdigitales. Poseen bloques funcionales prediseñados.
• Se controlan mediante un programa desoftware.
• Su desventaja es la velocidad, siempre serámas rápido utilizar una solución dehardware para su diseño.
ASICs
Circuitos Integrados de Aplicación Especifica.
Presentan una solución moderna de desarrollo de hardware
PLDs
Matrices Compuertas
Celda Estándar
Personalizados
PLD : Dispositivo Lógico Programable
Configurables para crear cualquiercircuito digital.
Inversión pequeña se puede realizar laadquisición de hardware y software parasu programación.
Matriz De Compuertas (MPGAs):
Son circuitos ULSI ofrecen cientos omiles de compuertas.
Poseen una mascara de diseñopersonalizado para la aplicaciónespecifica determina la conexión de lascompuertas.
El proceso de programación del chippor parte del fabricante es costoso yrequiere un plazo de producción largo.
Celda Estándar:
Constituidos por bloques fundamentales defunciones lógicas predefinidas (celdas).
Cada celda se diseña previamente y unabiblioteca de celdas disponibles se almacenaen una base de datos de computadora. Lasceldas necesarias se distribuyen para laaplicación deseada y se determinan lasinterconexiones entre celdas.
PERSONALIZADAS
Considerada como la ultima opción deASIC. Todos los componentes(transistores, resistencias, capacitancias), interconexiones entre ellos se elaborana medida por un diseñador de CI`s
Los PLD pueden clasificarse en tres tipos:
SPLD: Simple
CPLD: Complejos
FPGA: Matrices
En conjunto a los CPLD y FPGA se les conoce como elementos HCPLD (Dispositivos Lógicos Programables de alta Capacidad).
12
Qué es FPGA
• Siglas de Field Programmable Gate Array.
• Es un dispositivo reprogramable,que permite implementar diversos circuitos digitales en él.
• Basadas generalmente en memorias RAM.
13
Por qué usar las FPGA
• Hay aplicaciones en las cuales usar un microcontrolador no es suficiente, o usar una FPGA posee costos comparables (por ejemplo, codificar y decodificar en MPEG).
• Actualmente hay modelos que incluyen elementos adicionales en el mismo chip.
– La Virtex 4 de Xilinx posee uno o más PowerPC embebidos en el chip.
14
Otras formas de implementar circuitos digitales
• Directamente en silicio:
–ASIC
• Application-Specific Integrated Circuit: Circuito a medida. Alto costo fijo (NRE) de fabricación.
–Standard Cells
• Celdas de ancho fijo, en las cuales se implementan bloques lógicos.
EL693
Implementación de Sistemas
Digitales en FPGA
15
Otras formas de implementar circuitos digitales
• Programables:
–Microcontrolador
• Posee un set de instrucciones fijo.
–CPLD: Complex Programmable Logic Device.
• Basados en memorias FLASH.
• No son volátiles, pero son más lentos y menos densos que una FPGA.
16
Ventajas de las FPGA
• Son dispositivos reconfigurables.
• Bajo costo respecto a los ASIC.
• Los circuitos se “ejecutan” más rápido que en otros dispositivos reprogramables.
17
Ventajas de las FPGA
• Al ser circuitos digitales, la “ejecución” de cada bloque es en paralelo, no así en un microcontrolador.
• Son útiles para realizar prototipos que luego serán llevados a ASIC si es necesario.
18
Desventajas de las FPGA
• Al estar basadas en RAM, pierden su configuración al suprimir la energía (hay soluciones a ello).
• Poseen retardos de propagación mayores a los existentes en ASIC o standard cells
– Un procesador de alta velocidad (~GHz) se ejecuta mucho más rápido en ASIC que en una FPGA.
19
Fabricantes de FPGAs
• Xilinx
• Altera
• Atmel
• Actel
• Lattice Semiconductor
• Cypress Semiconductor
• Achronix Semiconductor
• QuickLogic (fuente: Wikipedia.org)
20
Arquitectura de una FPGA
• Una FPGA posee al menos 3 bloques:
– CLB: Configurable-logic blocks, donde se implementan los circuitos lógicos.
– IOB: Input-output block, donde se conectan las configuraciones internas con pines de entrada y salida.
– DCM: Digital Clock Managers, permiten entregar señales de reloj a toda la FPGA.
22
Arquitectura de una FPGA
• El elemento esencial es el slice. En él se pueden implementar tanto circuitos combinacionales como secuenciales.
• Antes de ver cómo es un slice por dentro, repasaremos algunos elementos y conceptos necesarios.
23
Elementos básicos
• Buffer tri-estado (TRI)
–Permite o impide el paso de datos de acuerdo a una señal de control.
in out
enable
Low-active
in out
enable
High-active
24
Elementos básicos
• Look-up Table (LUT)
–En esencia es una memoria RAM con valores predefinidos.
En los DSP de punto fijo se utilizan Look-up Tables para implementar funciones trigonométricas
LUT
n m
25
Elementos Básicos
• Flip-Flop (FF)
–Elemento que almacena un bit de acuerdo a una señal de reloj de entrada.
FF-D
d q
clk ~q
Los más utilizados son los Flip-flop tipo-D
27
Elementos Básicos
• Multiplexor
–Permite seleccionar una o más señales de entrada a partir de bits de selección
in_0in_1… out_1in_n …
out_pa_0…a_m
29
Elementos Básicos
• Demultiplexor / decodificador (DEMUX)
–Permite dirigir una señal de acuerdo a bits selección.
out_0out_1…out_n
in
a_0a_1…a_m
31
Conceptos básicos
• Open-collector / Open-drainLa salida no entrega un nivel lógico alto (tied-up), sino que sólo activa un transistor.
Inversor con salida open-collector
32
Conceptos básicos
• FanoutCuántas entradas de una familia lógica pueden conectarse a una misma salida.
… máx
máx
Ientrada
Isalidafanout
33
Conceptos básicos
• Niveles de voltajeUn 1 y 0 lógico se pueden representar de diversas maneras. Ejemplos:
– TTL 1 = 5V 0 = 0V
– LVTTL 1 = 3.3V 0 = 0V
– En I2C 1 = High-Z 0 = 0V
– USB usa voltajes diferenciales
34
Cómo es un slice
• Una slice es la base de las CLB
• En esencia es un bloque de look-up tables enlazadas con una salida que puede ser registrada (flip-flop) o directa, pudiendo implementarse diversas funciones lógicas.
• También hay implementaciones con multiplexores.
37
Implementar funciones
• A continuación se muestra cómo se implementan físicamente funciones lógicas y combinacionales en un slice
• Estas y otras metodologías son utilizadas por las herramientas de diseño para FPGAs.
38
Implementar funciones
• Para implementar funciones combinacionales, se programan las tablas de verdad en las LUT y se usa la salida directa.
• Para implementar funciones secuenciales, se utiliza el flip-flop y se realimenta la salida secuencial en una de las entradas si es necesario.
39
Implementar funciones
• Implementar la operación XOR2
A B C D Y
0 0 X X 0
0 1 X X 1
1 0 X X 1
1 1 X X 0
Entradas(ABCD)
Salida
00XX 0
01XX 1
10XX 1
11XX 0
Tabla de Verdad LUT
40
Implementar funciones
• Implementar Flip Flop T en un bloque:
LUTFF-D
clk
Q
D
enablereset
reset enable Qk Qk+1
0 X X 0
1 0 Q Q
1 1 Q ~Q
42
Implementar funciones• Se crea un bloque FF-T AND,
y luego varios de estosse interconectan.
Enn-1
clk
Reset
Qn-1
Enn (bloque 1)
Qn (bloque 2)
43
Implementar funciones
• Bloque 1: Tabla de verdad resumida
Reset enn-1 & Qn-1 Qn Dn
0 X X 0
1 0 0 0
1 0 1 1
1 1 0 1
1 1 1 0
LUTFF-D
clk
DqEnn-1
reset
Qn-1Qn
45
Implementar funciones
• TAREA 1
–A partir de las CLB básicas vistas anteriormente, diseñe un sumador de 4 bits.
top related