Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
Introducción a las FPGAs Primer Cuatrimestre 2023 Diseño de Sistemas Digitales con FPGA DC - UBA 1 En la clase de hoy ¿Qué es una FPGA? Un poco de historia Arquitetura básica de las FPGAs FPGAs de verdad! Toolchain Boards 2 ¿Qué es una FPGA? ¿Qué es una 1 FPGA? 1Según ChatGPT se utiliza art́ıculo femenino 3 Definición Una definición: Las FPGAs (Field Programmable Gate Arrays) son circuitos integrados digitales que contienen bloques de lógica configurables (programables) aśı como conexiones configurables entre estos bloques ¿Qué las hizo tan populares? Field Programmable Gate Arrays 4 Definición Una definición: Las FPGAs (Field Programmable Gate Arrays) son circuitos integrados digitales que contienen bloques de lógica configurables (programables) aśı como conexiones configurables entre estos bloques ¿Qué las hizo tan populares? Field Programmable Gate Arrays 4 Definición Una definición: Las FPGAs (Field Programmable Gate Arrays) son circuitos integrados digitales que contienen bloques de lógica configurables (programables) aśı como conexiones configurables entre estos bloques ¿Qué las hizo tan populares? Field Programmable Gate Arrays 4 Definición Una definición: Las FPGAs (Field Programmable Gate Arrays) son circuitos integrados digitales que contienen bloques de lógica configurables (programables) aśı como conexiones configurables entre estos bloques ¿Qué las hizo tan populares? Field Programmable Gate Arrays 4 Clasificación 5 Clasificación PLDs • SPLDs (Simple Programmable Logic Device) • PALs (Programmable Array Logic) • PLAs (Programmable Logic Array) • GALs (Generic Array Logic) • ... • CPLDs (Complex Programmable Logic Device) • FPGAs (Field Programmable Gate Array) 6 Un poco de historia En un comienzo...PALs 7 PLAs 8 CPLDs 9 CPLDs (cont.) 10 FPGAs 11 FPGAs: caracteŕısticas • Hardware Fabric1 • Permite la creación de lógica dedicada con ḿınimas restricciones de diseño • Bloques Configurables • Contiene cientos de miles de unidades básicas programables prefabricadas • Interconexiones Configurables • La estructura de interconexión es distribuida y flexible. Es “barato” interconectar • Configuración on Field • La configuración es simple y no requiere dispositivos costosos 1Estructura, entramado 12 FPGAs: caracteŕısticas • Hardware Fabric1 • Permite la creación de lógica dedicada con ḿınimas restricciones de diseño • Bloques Configurables • Contiene cientos de miles de unidades básicas programables prefabricadas • Interconexiones Configurables • La estructura de interconexión es distribuida y flexible. Es “barato” interconectar • Configuración on Field • La configuración es simple y no requiere dispositivos costosos 1Estructura, entramado 12 FPGAs: caracteŕısticas • Hardware Fabric1 • Permite la creación de lógica dedicada con ḿınimas restricciones de diseño • Bloques Configurables • Contiene cientos de miles de unidades básicas programables prefabricadas • Interconexiones Configurables • La estructura de interconexión es distribuida y flexible. Es “barato” interconectar • Configuración on Field • La configuración es simple y no requiere dispositivos costosos 1Estructura, entramado 12 FPGAs: caracteŕısticas • Hardware Fabric1 • Permite la creación de lógica dedicada con ḿınimas restricciones de diseño • Bloques Configurables • Contiene cientos de miles de unidades básicas programables prefabricadas • Interconexiones Configurables • La estructura de interconexión es distribuida y flexible. Es “barato” interconectar • Configuración on Field • La configuración es simple y no requiere dispositivos costosos 1Estructura, entramado 12 FPGAs: caracteŕısticas • Hardware Fabric1 • Permite la creación de lógica dedicada con ḿınimas restricciones de diseño • Bloques Configurables • Contiene cientos de miles de unidades básicas programables prefabricadas • Interconexiones Configurables • La estructura de interconexión es distribuida y flexible. Es “barato” interconectar • Configuración on Field • La configuración es simple y no requiere dispositivos costosos 1Estructura, entramado 12 FPGAs: caracteŕısticas (cont.) • Alto Paralelismo • Alto throughput sin alto clocking • Bajo costo de diseño • Bajo tiempo de desarrollo, fácil prototipado y validación • Amplio espectro de aplicaciones • Signal Processing • Video & Image Processing • Cryptography • Computer hardware emulation 1 • CPU design • Machine Learning & Neural Networks • Biologically Inspired hardware • Telco & Networking • Software Defined Radio • Robotics 1Mr. FPGA: https://github.com/MiSTer-devel/Wiki_MiSTer/wiki 13 https://github.com/MiSTer-devel/Wiki_MiSTer/wiki FPGAs: caracteŕısticas (cont.) • Alto Paralelismo • Alto throughput sin alto clocking • Bajo costo de diseño • Bajo tiempo de desarrollo, fácil prototipado y validación • Amplio espectro de aplicaciones • Signal Processing • Video & Image Processing • Cryptography • Computer hardware emulation 1 • CPU design • Machine Learning & Neural Networks • Biologically Inspired hardware • Telco & Networking • Software Defined Radio • Robotics 1Mr. FPGA: https://github.com/MiSTer-devel/Wiki_MiSTer/wiki 13 https://github.com/MiSTer-devel/Wiki_MiSTer/wiki FPGAs: caracteŕısticas (cont.) • Alto Paralelismo • Alto throughput sin alto clocking • Bajo costo de diseño • Bajo tiempo de desarrollo, fácil prototipado y validación • Amplio espectro de aplicaciones • Signal Processing • Video & Image Processing • Cryptography • Computer hardware emulation 1 • CPU design • Machine Learning & Neural Networks • Biologically Inspired hardware • Telco & Networking • Software Defined Radio • Robotics 1Mr. FPGA: https://github.com/MiSTer-devel/Wiki_MiSTer/wiki 13 https://github.com/MiSTer-devel/Wiki_MiSTer/wiki FPGAs: caracteŕısticas (cont.) • Alto Paralelismo • Alto throughput sin alto clocking • Bajo costo de diseño • Bajo tiempo de desarrollo, fácil prototipado y validación • Amplio espectro de aplicaciones • Signal Processing • Video & Image Processing • Cryptography • Computer hardware emulation 1 • CPU design • Machine Learning & Neural Networks • Biologically Inspired hardware • Telco & Networking • Software Defined Radio • Robotics 1Mr. FPGA: https://github.com/MiSTer-devel/Wiki_MiSTer/wiki 13 https://github.com/MiSTer-devel/Wiki_MiSTer/wiki Arquitetura básica de las FPGAs FPGA Internals 14 FPGA Internals 15 FPGA Internals 16 FPGA Internals 17 FPGA Internals 18 Logic Cell 19 Slice 20 Configurable Logic Block 21 Block RAMs • Son SRAMs listas para usar • Es posible cambiar el aspect ratio • Usos • simple/dual port RAM/ROM • FIFOs • RAM based FSMs • Pueden combinarse para formar memorias más grandes 22 Block RAMs Cascade 23 Ultra RAMs 24 Ultra RAMs 25 Ultra RAMs • Mayor capacidad: 288K bits en un single block • Dual port, 32k x 9, 16k x 18, 8k x 36, y 4K x 72, memoria sincrónica single clock. • Sólo disponible en ĺınea Ultrascale+ (Xilinx) 26 DSP blocks • Tienen funciones aritméticas listas para usar • Mejor performance que fabric logic • Pueden cascadearse sin pasar por general fabric routing • Usos • Multiplicadores • Sumadores • MACs • Barrel Shifter 27 DSP blocks 28 Clock Management • Las señales de clock se rutean en forma separada • Las FPGA poseen Digital Clock Managers que generan y controlan las señales de clock • Cada DCM tiene un PLL y permite sintetizar varias frecuencias a partir un clock base 29 Clock Distribution • Los clocks se distribuyen en una arquitectura de árbol (clock tree) • La idea es minimizar el clock skew • En general conviven varios dominios de clock simultáneamente • El ruteo de los diferentes clocks en un diseño complejo es una de las tareas más dif́ıciles 30 I/O • Se distribuyen en bancos • Se puedecontrolar el estándar eléctrico • Tensiones: 3.3V, 2.5V, 1.8V, 1.2V, ... • Estándar: CMOS, LVDS, SSTL, ... • Single Ended, Diferencial • DCI: Se puede controlar la impedancia de salida digitalmente, según el estándar 31 Cores • Se denominan IP cores o simplemente cores • Pueden ser hard o soft cores • Licenciados bajo distintas modalides Recursos • https://www.fpga4fun.com • http://fpgaer.tech/ • https://www.rocketboards.org Altera-ish 32 https://www.fpga4fun.com http://fpgaer.tech/ https://www.rocketboards.org FPGAs de verdad! Evolución 33 Xilinx FPGAs 34 Artix 7 35 Xilinx SOCs: Familia Zynq 36 Xilinx SOCs: Zynq 7000 37 Zynq CG, EG, EV 38 Zynq CG 39 Zynq EG 40 Toolchain Perspectivas 41 Flujo de trabajo con Vivado 42 Boards Nexys 2 https://digilent.com/reference/programmable-logic/nexys-2/start 43 https://digilent.com/reference/programmable-logic/nexys-2/start Atlys https://digilent.com/reference/programmable-logic/atlys/start 44 https://digilent.com/reference/programmable-logic/atlys/start Zybo https://digilent.com/reference/programmable-logic/zybo/start 45 https://digilent.com/reference/programmable-logic/zybo/start ¿Qué es una FPGA? Un poco de historia Arquitetura básica de las FPGAs FPGAs de verdad! Toolchain Boards
Compartir