SlideShare una empresa de Scribd logo
1 de 35
Alejandro Ehrenfeld G.
Claudio Alarcón R.
Universidad de Chile
EL693
Otoño 2006
EL693
Implementación de Sistemas
Digitales en FPGA
2
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.
EL693
Implementación de Sistemas
Digitales en FPGA
3
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.
EL693
Implementación de Sistemas
Digitales en FPGA
4
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
5
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.
EL693
Implementación de Sistemas
Digitales en FPGA
6
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.
EL693
Implementación de Sistemas
Digitales en FPGA
7
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.
EL693
Implementación de Sistemas
Digitales en FPGA
8
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.
EL693
Implementación de Sistemas
Digitales en FPGA
9
Fabricantes de FPGAs
• Xilinx
• Altera
• Atmel
• Actel
• Lattice Semiconductor
• Cypress Semiconductor
• Achronix Semiconductor
• QuickLogic (fuente: Wikipedia.org)
EL693
Implementación de Sistemas
Digitales en FPGA
10
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.
EL693
Implementación de Sistemas
Digitales en FPGA
11
Arquitectura de una FPGA
• Una FPGA
básica (Xilinx
Corp.)
EL693
Implementación de Sistemas
Digitales en FPGA
12
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.
EL693
Implementación de Sistemas
Digitales en FPGA
13
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
EL693
Implementación de Sistemas
Digitales en FPGA
14
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
EL693
Implementación de Sistemas
Digitales en FPGA
15
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
EL693
Implementación de Sistemas
Digitales en FPGA
16
Elementos Básicos
• Flip-Flop tipo D
EL693
Implementación de Sistemas
Digitales en FPGA
17
Elementos Básicos
• Multiplexor
– Permite seleccionar una o más
señales de entrada a partir de bits
de selección
in_0
in_1
… out_1
in_n …
out_p
a_0
…
a_m
EL693
Implementación de Sistemas
Digitales en FPGA
18
Elementos Básicos
Multiplexor 4 a 1
EL693
Implementación de Sistemas
Digitales en FPGA
19
Elementos Básicos
• Demultiplexor / decodificador
(DEMUX)
– Permite dirigir una señal de acuerdo
a bits selección.
out_0
out_1
…
out_n
in
a_0
a_1
…
a_m
EL693
Implementación de Sistemas
Digitales en FPGA
20
Elementos Básicos
• Demultiplexor
de 4 canales
EL693
Implementación de Sistemas
Digitales en FPGA
21
Conceptos básicos
• Open-collector / Open-drain
La salida no entrega un nivel lógico
alto (tied-up), sino que sólo activa
un transistor.
Inversor con salida
open-collector
EL693
Implementación de Sistemas
Digitales en FPGA
22
Conceptos básicos
• Fanout
Cuántas entradas de una familia
lógica pueden conectarse a una
misma salida.
… máx
máx
Ientrada
Isalida
fanout 
EL693
Implementación de Sistemas
Digitales en FPGA
23
Conceptos básicos
• Niveles de voltaje
Un 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
EL693
Implementación de Sistemas
Digitales en FPGA
24
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.
EL693
Implementación de Sistemas
Digitales en FPGA
25
Cómo es un slice
EL693
Implementación de Sistemas
Digitales en FPGA
26
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.
EL693
Implementación de Sistemas
Digitales en FPGA
27
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.
EL693
Implementación de Sistemas
Digitales en FPGA
28
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
EL693
Implementación de Sistemas
Digitales en FPGA
29
Implementar funciones
• Implementar Flip Flop T en un bloque:
LUT
FF-D
clk
Q
D
enable
reset
reset enable Qk Qk+1
0 X X 0
1 0 Q Q
1 1 Q ~Q
EL693
Implementación de Sistemas
Digitales en FPGA
30
Implementar funciones
• Implementar un contador de 4
bits síncrono
EL693
Implementación de Sistemas
Digitales en FPGA
31
Implementar funciones
• Se crea un bloque FF-T AND,
y luego varios de estos
se interconectan.
Enn-1
clk
Reset
Qn-1
Enn (bloque 1)
Qn (bloque 2)
EL693
Implementación de Sistemas
Digitales en FPGA
32
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
LUT
FF-D
clk
Dq
Enn-1
reset
Qn-1
Qn
EL693
Implementación de Sistemas
Digitales en FPGA
33
Implementar funciones
• Bloque 2
LUT Enn
Enn-1
Qn-1
Enn = Qn-1 & Enn-1
EL693
Implementación de Sistemas
Digitales en FPGA
34
Implementar funciones
• TAREA 1
– A partir de las CLB básicas vistas
anteriormente, diseñe un sumador
de 4 bits.
EL693
Implementación de Sistemas
Digitales en FPGA
35
Implementar funciones
• Lo visto anteriormente sirve
como muestra de cómo se
implementan internamente las
funciones.
• En la práctica se usan Lenguajes
de Descripción de Hardware
(HDL), como por ejemplo Verilog
y VHDL.

Más contenido relacionado

Similar a presentación de Power POint de Introducción a las FPGA

Dispositivos de interconexión de
Dispositivos de interconexión deDispositivos de interconexión de
Dispositivos de interconexión de
Martin Zuñiga
 
Introducción al microcontrolador MSP430
Introducción al microcontrolador MSP430Introducción al microcontrolador MSP430
Introducción al microcontrolador MSP430
Julio Jornet Monteverde
 
PIC MICROCONTROLADORES
PIC MICROCONTROLADORESPIC MICROCONTROLADORES
PIC MICROCONTROLADORES
ada_laura
 
Electrónica digital: Tema 9 Especificación algorítmica de sistemas secuenciales
Electrónica digital: Tema 9 Especificación algorítmica de sistemas secuenciales Electrónica digital: Tema 9 Especificación algorítmica de sistemas secuenciales
Electrónica digital: Tema 9 Especificación algorítmica de sistemas secuenciales
SANTIAGO PABLO ALBERTO
 
381429156-PLC-DVP-Fundamentals-RevB.pdf
381429156-PLC-DVP-Fundamentals-RevB.pdf381429156-PLC-DVP-Fundamentals-RevB.pdf
381429156-PLC-DVP-Fundamentals-RevB.pdf
elkinmeza1
 

Similar a presentación de Power POint de Introducción a las FPGA (20)

Dispositivos de interconexión de
Dispositivos de interconexión deDispositivos de interconexión de
Dispositivos de interconexión de
 
Cronologia y caracteristicas de microprocesadores Intel - Update hasta Intel ...
Cronologia y caracteristicas de microprocesadores Intel - Update hasta Intel ...Cronologia y caracteristicas de microprocesadores Intel - Update hasta Intel ...
Cronologia y caracteristicas de microprocesadores Intel - Update hasta Intel ...
 
Micro1.ppt
Micro1.pptMicro1.ppt
Micro1.ppt
 
Microcontroladores.pptx
Microcontroladores.pptxMicrocontroladores.pptx
Microcontroladores.pptx
 
microprocesadores evolucion a lo largo de los años
microprocesadores evolucion a lo largo de los añosmicroprocesadores evolucion a lo largo de los años
microprocesadores evolucion a lo largo de los años
 
Introducción al microcontrolador MSP430
Introducción al microcontrolador MSP430Introducción al microcontrolador MSP430
Introducción al microcontrolador MSP430
 
Arquitectura de Computadorasv
Arquitectura de ComputadorasvArquitectura de Computadorasv
Arquitectura de Computadorasv
 
PIC MICROCONTROLADORES
PIC MICROCONTROLADORESPIC MICROCONTROLADORES
PIC MICROCONTROLADORES
 
Diapos de pic
Diapos de picDiapos de pic
Diapos de pic
 
Microprocesadores
MicroprocesadoresMicroprocesadores
Microprocesadores
 
Proyecto u2 rout-ev2
Proyecto u2 rout-ev2Proyecto u2 rout-ev2
Proyecto u2 rout-ev2
 
Ud1 3 microcontrolador_pic
Ud1 3 microcontrolador_picUd1 3 microcontrolador_pic
Ud1 3 microcontrolador_pic
 
Micropro
MicroproMicropro
Micropro
 
El microprocesador
El microprocesadorEl microprocesador
El microprocesador
 
Microcontroladores
MicrocontroladoresMicrocontroladores
Microcontroladores
 
Electrónica digital: Tema 9 Especificación algorítmica de sistemas secuenciales
Electrónica digital: Tema 9 Especificación algorítmica de sistemas secuenciales Electrónica digital: Tema 9 Especificación algorítmica de sistemas secuenciales
Electrónica digital: Tema 9 Especificación algorítmica de sistemas secuenciales
 
Aplicación de los fpga’s en radares de vigilancia aérea desde tierra y radare...
Aplicación de los fpga’s en radares de vigilancia aérea desde tierra y radare...Aplicación de los fpga’s en radares de vigilancia aérea desde tierra y radare...
Aplicación de los fpga’s en radares de vigilancia aérea desde tierra y radare...
 
11 dispositivos logicos programables 2018
11 dispositivos logicos programables 201811 dispositivos logicos programables 2018
11 dispositivos logicos programables 2018
 
381429156-PLC-DVP-Fundamentals-RevB.pdf
381429156-PLC-DVP-Fundamentals-RevB.pdf381429156-PLC-DVP-Fundamentals-RevB.pdf
381429156-PLC-DVP-Fundamentals-RevB.pdf
 
Pic16 f877
Pic16 f877Pic16 f877
Pic16 f877
 

presentación de Power POint de Introducción a las FPGA

  • 1. Alejandro Ehrenfeld G. Claudio Alarcón R. Universidad de Chile EL693 Otoño 2006
  • 2. EL693 Implementación de Sistemas Digitales en FPGA 2 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.
  • 3. EL693 Implementación de Sistemas Digitales en FPGA 3 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.
  • 4. EL693 Implementación de Sistemas Digitales en FPGA 4 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.
  • 5. EL693 Implementación de Sistemas Digitales en FPGA 5 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.
  • 6. EL693 Implementación de Sistemas Digitales en FPGA 6 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.
  • 7. EL693 Implementación de Sistemas Digitales en FPGA 7 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.
  • 8. EL693 Implementación de Sistemas Digitales en FPGA 8 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.
  • 9. EL693 Implementación de Sistemas Digitales en FPGA 9 Fabricantes de FPGAs • Xilinx • Altera • Atmel • Actel • Lattice Semiconductor • Cypress Semiconductor • Achronix Semiconductor • QuickLogic (fuente: Wikipedia.org)
  • 10. EL693 Implementación de Sistemas Digitales en FPGA 10 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.
  • 11. EL693 Implementación de Sistemas Digitales en FPGA 11 Arquitectura de una FPGA • Una FPGA básica (Xilinx Corp.)
  • 12. EL693 Implementación de Sistemas Digitales en FPGA 12 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.
  • 13. EL693 Implementación de Sistemas Digitales en FPGA 13 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
  • 14. EL693 Implementación de Sistemas Digitales en FPGA 14 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
  • 15. EL693 Implementación de Sistemas Digitales en FPGA 15 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
  • 16. EL693 Implementación de Sistemas Digitales en FPGA 16 Elementos Básicos • Flip-Flop tipo D
  • 17. EL693 Implementación de Sistemas Digitales en FPGA 17 Elementos Básicos • Multiplexor – Permite seleccionar una o más señales de entrada a partir de bits de selección in_0 in_1 … out_1 in_n … out_p a_0 … a_m
  • 18. EL693 Implementación de Sistemas Digitales en FPGA 18 Elementos Básicos Multiplexor 4 a 1
  • 19. EL693 Implementación de Sistemas Digitales en FPGA 19 Elementos Básicos • Demultiplexor / decodificador (DEMUX) – Permite dirigir una señal de acuerdo a bits selección. out_0 out_1 … out_n in a_0 a_1 … a_m
  • 20. EL693 Implementación de Sistemas Digitales en FPGA 20 Elementos Básicos • Demultiplexor de 4 canales
  • 21. EL693 Implementación de Sistemas Digitales en FPGA 21 Conceptos básicos • Open-collector / Open-drain La salida no entrega un nivel lógico alto (tied-up), sino que sólo activa un transistor. Inversor con salida open-collector
  • 22. EL693 Implementación de Sistemas Digitales en FPGA 22 Conceptos básicos • Fanout Cuántas entradas de una familia lógica pueden conectarse a una misma salida. … máx máx Ientrada Isalida fanout 
  • 23. EL693 Implementación de Sistemas Digitales en FPGA 23 Conceptos básicos • Niveles de voltaje Un 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
  • 24. EL693 Implementación de Sistemas Digitales en FPGA 24 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.
  • 25. EL693 Implementación de Sistemas Digitales en FPGA 25 Cómo es un slice
  • 26. EL693 Implementación de Sistemas Digitales en FPGA 26 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.
  • 27. EL693 Implementación de Sistemas Digitales en FPGA 27 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.
  • 28. EL693 Implementación de Sistemas Digitales en FPGA 28 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
  • 29. EL693 Implementación de Sistemas Digitales en FPGA 29 Implementar funciones • Implementar Flip Flop T en un bloque: LUT FF-D clk Q D enable reset reset enable Qk Qk+1 0 X X 0 1 0 Q Q 1 1 Q ~Q
  • 30. EL693 Implementación de Sistemas Digitales en FPGA 30 Implementar funciones • Implementar un contador de 4 bits síncrono
  • 31. EL693 Implementación de Sistemas Digitales en FPGA 31 Implementar funciones • Se crea un bloque FF-T AND, y luego varios de estos se interconectan. Enn-1 clk Reset Qn-1 Enn (bloque 1) Qn (bloque 2)
  • 32. EL693 Implementación de Sistemas Digitales en FPGA 32 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 LUT FF-D clk Dq Enn-1 reset Qn-1 Qn
  • 33. EL693 Implementación de Sistemas Digitales en FPGA 33 Implementar funciones • Bloque 2 LUT Enn Enn-1 Qn-1 Enn = Qn-1 & Enn-1
  • 34. EL693 Implementación de Sistemas Digitales en FPGA 34 Implementar funciones • TAREA 1 – A partir de las CLB básicas vistas anteriormente, diseñe un sumador de 4 bits.
  • 35. EL693 Implementación de Sistemas Digitales en FPGA 35 Implementar funciones • Lo visto anteriormente sirve como muestra de cómo se implementan internamente las funciones. • En la práctica se usan Lenguajes de Descripción de Hardware (HDL), como por ejemplo Verilog y VHDL.