47
Introducción a los Dispositivos Lógicos Programables (FPGAs) Guillermo Güichal www.emtech.com.ar

Introducción a los Dispositivos Lógicos Programables · PDF filede un circuito y describirlo de manera formal. Síntesis: proceso inverso al análisis. Pasar de ... Depende de la

Embed Size (px)

Citation preview

Page 1: Introducción a los Dispositivos Lógicos Programables · PDF filede un circuito y describirlo de manera formal. Síntesis: proceso inverso al análisis. Pasar de ... Depende de la

Introducción a los Dispositivos Lógicos

Programables (FPGAs)

Guillermo Güichalwww.emtech.com.ar

Page 2: Introducción a los Dispositivos Lógicos Programables · PDF filede un circuito y describirlo de manera formal. Síntesis: proceso inverso al análisis. Pasar de ... Depende de la

Introducción Circuitos Digitales FPGAs Flujo y Herramientas de Diseño Diseño para Síntesis Simulación Ejemplos

Temario

Page 3: Introducción a los Dispositivos Lógicos Programables · PDF filede un circuito y describirlo de manera formal. Síntesis: proceso inverso al análisis. Pasar de ... Depende de la

Introducción

Sistemas electrónicos digitales Representación de datos mediante dos niveles de señal

(tensión, corriente, carga,...) La tecnología esconde los efectos “analógicos” del circuito Permiten aplicar técnicas de análisis y diseño especiales

Page 4: Introducción a los Dispositivos Lógicos Programables · PDF filede un circuito y describirlo de manera formal. Síntesis: proceso inverso al análisis. Pasar de ... Depende de la

Introducción

Análisis: comprender la función que cumple un circuito. La tarea de analizar el comportamiento de un circuito y describirlo de manera formal.

Síntesis: proceso inverso al análisis. Pasar de una descripción abstracta a un circuito funcional

Diseño: diferente significado para distintas personas. La creación del modelo formal que puede usarse para sintetizar un circuito (diagramas, formas de onda, tablas, etc.).

Page 5: Introducción a los Dispositivos Lógicos Programables · PDF filede un circuito y describirlo de manera formal. Síntesis: proceso inverso al análisis. Pasar de ... Depende de la

Circuitos Digitales

Elementos básicos Integración media Micros Circuitos integrados

Page 6: Introducción a los Dispositivos Lógicos Programables · PDF filede un circuito y describirlo de manera formal. Síntesis: proceso inverso al análisis. Pasar de ... Depende de la

Circuitos digitales

Elementos básicos combinacionales Inversor y compuertas

Page 7: Introducción a los Dispositivos Lógicos Programables · PDF filede un circuito y describirlo de manera formal. Síntesis: proceso inverso al análisis. Pasar de ... Depende de la

Circuitos digitales

Elementos básicos secuenciales

Page 8: Introducción a los Dispositivos Lógicos Programables · PDF filede un circuito y describirlo de manera formal. Síntesis: proceso inverso al análisis. Pasar de ... Depende de la

Circuitos digitales

Circuitos de integración mediaInterconexión de varios elementos básicos para formar funciones mas complejas

Combinacionales: multiplexor, demux, codificadores, decos, sumadores, etc.

Secuenciales: registros de desplazamiento, contadores, etc. (incluyen elementos secuenciales y comb.)

Page 9: Introducción a los Dispositivos Lógicos Programables · PDF filede un circuito y describirlo de manera formal. Síntesis: proceso inverso al análisis. Pasar de ... Depende de la

Circuitos digitales

Diseño SincrónicoEl problema de diseño se simplifica mucho si se usa un reloj que “marca el ritmo” de todo el circuito.

Reloj se distribuye a todos los Flip-Flops del circuito

Frecuencia dada por retardos de propagación de la lógica

IMAGINAR UNA CADENA EN LA QUE PASAMOS ELEMENTOS SIN MARCAR EL RITMO O CON RITMO

Page 10: Introducción a los Dispositivos Lógicos Programables · PDF filede un circuito y describirlo de manera formal. Síntesis: proceso inverso al análisis. Pasar de ... Depende de la

Circuitos digitales

MemoriasPermiten almacenar datos digitales y leerlos después.

PROM: Se escribe una sola vez (no hay que cometer errores)

SRAM: Multiples escrituras, pero es volátil. Se pierden los datos si se quita la alimentación

Flash: Pueden reprogramarse y retienen los datos sin alimentación.

Page 11: Introducción a los Dispositivos Lógicos Programables · PDF filede un circuito y describirlo de manera formal. Síntesis: proceso inverso al análisis. Pasar de ... Depende de la

Circuitos digitales

Circuitos integrados: En la actualidad la mayoría son de tecnología CMOS. Transistores usados para implementar lógica Capas de metal permiten crear interconexiones

INVERSOR ESTRUCTURA FÍSICA COMPUERTA NAND

Page 12: Introducción a los Dispositivos Lógicos Programables · PDF filede un circuito y describirlo de manera formal. Síntesis: proceso inverso al análisis. Pasar de ... Depende de la

Circuitos digitales

Circuitos integrados standard cell Se utilizan “librerías” de componentes llamadas

primitivas para crear los circuitos. Celdas colocadas en una estructura regular. Interconexiones por capas de metal

FLIP-FLOP D NAND

Page 13: Introducción a los Dispositivos Lógicos Programables · PDF filede un circuito y describirlo de manera formal. Síntesis: proceso inverso al análisis. Pasar de ... Depende de la

Circuitos digitales

Microcontroladores/procesadores Lógica digital que permite ejecutar

instrucciones de memoria una tras otra Elementos específicos para ciertas funciones

Page 14: Introducción a los Dispositivos Lógicos Programables · PDF filede un circuito y describirlo de manera formal. Síntesis: proceso inverso al análisis. Pasar de ... Depende de la

Circuitos digitales

ResumenPara implementar circuitos digitales:

Lógica combinacional

Elementos secuenciales

Interconexiones

Para automatizar la implementación: Estructura regular

Librerías de primitivas

Mayor flexibilidad y potencia: Funciones especiales

Memoria

Page 15: Introducción a los Dispositivos Lógicos Programables · PDF filede un circuito y describirlo de manera formal. Síntesis: proceso inverso al análisis. Pasar de ... Depende de la

FPGAs Reseña histórica Elementos lógicos Interconexiones Optimizaciones funcionales Elementos dedicados Microprocesadores hard y softcore

Page 16: Introducción a los Dispositivos Lógicos Programables · PDF filede un circuito y describirlo de manera formal. Síntesis: proceso inverso al análisis. Pasar de ... Depende de la

FPGAs

Evolución de lógica digital configurable PLA (Programmable Logic Array) PAL (Programmable Array Logic) GAL (Gate Array Logic) CPLD (Complex Programmable Logic Device)

Page 17: Introducción a los Dispositivos Lógicos Programables · PDF filede un circuito y describirlo de manera formal. Síntesis: proceso inverso al análisis. Pasar de ... Depende de la

FPGAs

Elemento lógico combinacional básico Ejemplo: Memoria usada como tabla de

entrada-salida o Look-Up Table (LUT)

LUT

Entradas

Salida

Tablaconfigurable(memoria condatos pre-definidosen operación)

Page 18: Introducción a los Dispositivos Lógicos Programables · PDF filede un circuito y describirlo de manera formal. Síntesis: proceso inverso al análisis. Pasar de ... Depende de la

FPGAs

Elemento lógico secuencial Ejemplo: Flip flops o latch con set-reset-

enable configurable

POSIBLE ELEMENTO CONFIGURABLE FLASH SWITCH DE ACTEL PROASIC3

Page 19: Introducción a los Dispositivos Lógicos Programables · PDF filede un circuito y describirlo de manera formal. Síntesis: proceso inverso al análisis. Pasar de ... Depende de la

FPGAs

Celda lógica de Actel ProAsic3 (Versatile)

Page 20: Introducción a los Dispositivos Lógicos Programables · PDF filede un circuito y describirlo de manera formal. Síntesis: proceso inverso al análisis. Pasar de ... Depende de la

FPGAs

Celda lógica de Xilinx Spartan3 (CLB)

Cada CLB tiene 4 slices

Page 21: Introducción a los Dispositivos Lógicos Programables · PDF filede un circuito y describirlo de manera formal. Síntesis: proceso inverso al análisis. Pasar de ... Depende de la

FPGAs

Distribución de celdas Actel ProAsic3

Page 22: Introducción a los Dispositivos Lógicos Programables · PDF filede un circuito y describirlo de manera formal. Síntesis: proceso inverso al análisis. Pasar de ... Depende de la

FPGAs

Distribución de celdas Xilinx Spartan3

Page 23: Introducción a los Dispositivos Lógicos Programables · PDF filede un circuito y describirlo de manera formal. Síntesis: proceso inverso al análisis. Pasar de ... Depende de la

FPGAs

Interconexiones Mediante llaves

pueden conectarse diferentes señales entre sí.

Las conexiones sonjerárquicas para darmas flexibilidad yvelocidad

Page 24: Introducción a los Dispositivos Lógicos Programables · PDF filede un circuito y describirlo de manera formal. Síntesis: proceso inverso al análisis. Pasar de ... Depende de la

FPGAs

Interconexiones Xilinx Spartan3

Page 25: Introducción a los Dispositivos Lógicos Programables · PDF filede un circuito y describirlo de manera formal. Síntesis: proceso inverso al análisis. Pasar de ... Depende de la

FPGAs

Optimizaciones

Conexiones especiales para operaciones aritméticas (acarreo rápido)

Recursos de interconexión jerárquicos Bloques de entrada-salida especiales Red de distribución de reloj especial Opciones para bajo consumo

Page 26: Introducción a los Dispositivos Lógicos Programables · PDF filede un circuito y describirlo de manera formal. Síntesis: proceso inverso al análisis. Pasar de ... Depende de la

FPGAs

Bloque de entrada salida

Distribución de reloj

Page 27: Introducción a los Dispositivos Lógicos Programables · PDF filede un circuito y describirlo de manera formal. Síntesis: proceso inverso al análisis. Pasar de ... Depende de la

FPGAs

Control de reloj

Memorias

Bloques DSP

Page 28: Introducción a los Dispositivos Lógicos Programables · PDF filede un circuito y describirlo de manera formal. Síntesis: proceso inverso al análisis. Pasar de ... Depende de la

FPGAs

Hardcore PPC

Softcore ARM

Page 29: Introducción a los Dispositivos Lógicos Programables · PDF filede un circuito y describirlo de manera formal. Síntesis: proceso inverso al análisis. Pasar de ... Depende de la

Flujo y Herramientas de Diseño

Flujo de Diseño General Definición del circuito Simulación y Verificación Síntesis y Place & Route

Page 30: Introducción a los Dispositivos Lógicos Programables · PDF filede un circuito y describirlo de manera formal. Síntesis: proceso inverso al análisis. Pasar de ... Depende de la

Herramientas

Flujo de diseño Descripción

del diseño Simulación

ó Síntesis

Page 31: Introducción a los Dispositivos Lógicos Programables · PDF filede un circuito y describirlo de manera formal. Síntesis: proceso inverso al análisis. Pasar de ... Depende de la

Diseño

Uso de diagramas esquemáticos (Libero) Primitivas o nuevos elementos

Page 32: Introducción a los Dispositivos Lógicos Programables · PDF filede un circuito y describirlo de manera formal. Síntesis: proceso inverso al análisis. Pasar de ... Depende de la

Diseño

Descripción mediante lenguajes de descripción de hardware (VHDL - Verilog)

Page 33: Introducción a los Dispositivos Lógicos Programables · PDF filede un circuito y describirlo de manera formal. Síntesis: proceso inverso al análisis. Pasar de ... Depende de la

Diseño

Uso de diagramas esquemáticos (HDL Designer)

Page 34: Introducción a los Dispositivos Lógicos Programables · PDF filede un circuito y describirlo de manera formal. Síntesis: proceso inverso al análisis. Pasar de ... Depende de la

Diseño

Representación de máquinas de estado

Page 35: Introducción a los Dispositivos Lógicos Programables · PDF filede un circuito y describirlo de manera formal. Síntesis: proceso inverso al análisis. Pasar de ... Depende de la

Diseño

Representación de máquinas de estado(HDL Designer de Mentor Graphics)

Page 36: Introducción a los Dispositivos Lógicos Programables · PDF filede un circuito y describirlo de manera formal. Síntesis: proceso inverso al análisis. Pasar de ... Depende de la

Herramientas

Todo (diagramas, esquemáticos, etc) se traduce a un HDL La descripción a

nivel RTL es la entrada parala síntesis y simulación

Page 37: Introducción a los Dispositivos Lógicos Programables · PDF filede un circuito y describirlo de manera formal. Síntesis: proceso inverso al análisis. Pasar de ... Depende de la

Simulación

Se deben crear bancos de prueba para poder estimular las entradas al diseño (DUT)

Vectores de testEn el banco de prueba (testbench) se permite

usar HDL no-sintetizableEl código fuente (HDL se compila para poder

ejecutarlo sobre la plataforma de simulación)

Page 38: Introducción a los Dispositivos Lógicos Programables · PDF filede un circuito y describirlo de manera formal. Síntesis: proceso inverso al análisis. Pasar de ... Depende de la

Simulación

Banco de prueba: permite simular las entradas reales al sistema, el hardware accesorio y en algunos casos monitorea las salidas

Page 39: Introducción a los Dispositivos Lógicos Programables · PDF filede un circuito y describirlo de manera formal. Síntesis: proceso inverso al análisis. Pasar de ... Depende de la

Simulación

Simplifica el proceso de puesta en marcha Visualización de formas de onda para debug

Page 40: Introducción a los Dispositivos Lógicos Programables · PDF filede un circuito y describirlo de manera formal. Síntesis: proceso inverso al análisis. Pasar de ... Depende de la

Simulación

Page 41: Introducción a los Dispositivos Lógicos Programables · PDF filede un circuito y describirlo de manera formal. Síntesis: proceso inverso al análisis. Pasar de ... Depende de la

Implementación

Page 42: Introducción a los Dispositivos Lógicos Programables · PDF filede un circuito y describirlo de manera formal. Síntesis: proceso inverso al análisis. Pasar de ... Depende de la

Síntesis

Transforma la descripción en el circuito real a implementar Esquema de

interconexión de primitivas

Estimación de retardos inicial

Page 43: Introducción a los Dispositivos Lógicos Programables · PDF filede un circuito y describirlo de manera formal. Síntesis: proceso inverso al análisis. Pasar de ... Depende de la

Place and Route

Coloca cada primitiva en un lugar de la FPGA y la interconecta Esquema físico

de implementacióny conexionado

Estimación de retardos incluyendointerconexiones

Page 44: Introducción a los Dispositivos Lógicos Programables · PDF filede un circuito y describirlo de manera formal. Síntesis: proceso inverso al análisis. Pasar de ... Depende de la

Place and Route

Resultado de colocar y conectar cada componente

Page 45: Introducción a los Dispositivos Lógicos Programables · PDF filede un circuito y describirlo de manera formal. Síntesis: proceso inverso al análisis. Pasar de ... Depende de la

Configuración

Depende de la FPGA y la tecnología Puerto JTAG permite acceder a diferentes

dispositivos y configurarlos

Page 46: Introducción a los Dispositivos Lógicos Programables · PDF filede un circuito y describirlo de manera formal. Síntesis: proceso inverso al análisis. Pasar de ... Depende de la

Muchas Gracias!

Page 47: Introducción a los Dispositivos Lógicos Programables · PDF filede un circuito y describirlo de manera formal. Síntesis: proceso inverso al análisis. Pasar de ... Depende de la

Contacto

Guillermo Güichal EmTech [email protected] www.emtech.com.ar

También: www.fpga.com.ar [email protected]