Descargar la presentación
La descarga está en progreso. Por favor, espere
1
DISEÑO DE PLATAFORMAS DE COMPUTO BASADAS EN FPGAS
Introducción Oviedo Marcos
2
Agenda Arquitecturas Mixtas Lógica Programable en FPGAs
Ventajas y desventajas de plataformas basadas en FPGAs Porque el creciente interés de las FPGAs Implementación de un SoC Diseño embebido en una FPGA (SoC) Motivación para utilizar un SO Componentes aceleradores en FPGA Canal de comunicación entre componentes de hardware y software Temas propuestos
3
Arquitecturas Mixtas Una arquitectura mixta se basa en la utilización conjunta de un sistema embebido y módulos de computación reconfigurable a través de FPGAs. Esta integración de componentes también se conoce como Sistemas en Chip Un sistema en chip (SoC) es la habilidad de colocar múltiples funcionalidades de hardware o "sistemas" en una sola pastilla de silicio. Esto permite por ejemplo desarrollar un sistema embebido basado en microprocesador que trabaje en conjunto con un componente acelerador implementado en una FPGA. Se llama arquitectura mixta porque permite crear una plataforma en donde se mezclen componentes de hardware y software. Para un gran numero de aplicaciones de telecomunicaciones el diseño embebido es el único diseño de hardware posible, por lo que soluciones ingeniosas deben ser utilizadas para suplir las demandas de performance.
4
Lógica Programable en FPGAs
Una FPGA (Field Programmable gate array) es un chip de lógica programable que contiene: Bloques lógicos programable Matrices de interconexión programables Puertos de entrada/salida programables RAM en bloque Puede contener microprocesadores necesarios para implementar sistemas embebidos Computación reconfigurable Bloques de hardware que se pueden reprogramar e interconectar de manera diferente para implementar un nuevo componente de aplicación especifica. El uso de sistemas en chip reduce el tiempo de desarrollo, incrementando la funcionalidad del producto, la performance y la calidad.
5
Arquitectura de una FPGA
K LUT Inputs D FF Clock Out Arquitectura de una FPGA Programmable IO BLE # 1 # N N Outputs I Inputs Clock Programmable Logic (CLB) Programmable Routing 5
6
Ventajas y desventajas de plataformas basadas en FPGAs
Ideal para prototipado de sistema La gran variedad de kits de desarrollo disponibles permiten encontrar los requerimientos de hardware que necesitamos para desarrollar un prototipo de nuestro sistema. Se simplifican las actualizaciones en campo La arquitectura es reconfigurable! Simplemente se baja un nueva configuración (bitstream) y se actualiza la funcionalidad.
7
Ventajas y desventajas de plataformas basadas en FPGAs (continuación)
Existe un gran numero de funcionalidades de hardware en forma de librerías (IP Cores) disponibles para usar. Procesadores por software, buses de alta velocidad, interfaces de telecomunicaciones, etc. Esto permite elegir los componentes necesarios y crear nuestra plataforma. Como desventaja, el uso de plataformas basadas en FPGAs requiere conocimientos muy diferentes a los necesarios para utilizar plataformas de computo tradicionales. La curva de aprendizaje es reducida mediante el uso de herramientas EDA y ESL.
8
Porque el creciente interés de las FPGAs
Field Programmable Gate Arrays Increasing speed & density Increased I/O pin count and bandwidth Lower power Lower cost per gate Integration of hard IP (e.g. multipliers, PowerPC cores) Architectural Synthesis Emergence of hardware synthesis tools based on conventional software languages (C, Fortran…) Improved hardware compiler optimization techniques Mapping of software design patterns to hardware 80’s 90’s Now FPGA Costs extended from data at
9
Implementación de un SoC
Para implementar el SoC se puede utilizar el kit de desarrollo Avnet FX12 Minimodule, compuesto por: Una FPGA Virtex4 de la empresa XILINX. Un puerto PHY 10/100/1000 Ethernet. 64 MB DDR RAM. Interfase serial RS232. Interface de programación JTAG. Virtex-4 FX Mini-Module Kit Includes: Virtex-4 FX12 FPGA 10/100/1000 Ethernet Port 32M x 16 DDR Memory 2M x 16 Flash Memory 8Mb Platform Flash User LED 76 User I/O AC/DC Power Supply Adapter Serial Cable Complete Reference Designs with Source Code (VHDL and/or Verilog HDL) Bundled Software Options Mini-Module Baseboards Kit Includes: Mini-Module Socket Adapter 2 x 16 Character LCD RS232 Port USB-UART Port User Switches and LEDs System ACE Interface JTAG and SPI Programming Ports 3.3V, 2.5V and 1.2V Regulators Downloadable Documentation and Reference Design
10
Implementación de un SoC (continuación)
11
Implementación de un SoC (continuación)
12
SoC sin personalización
FPGA Board FPGA uP FLASH GPIO SDRAM Serial Port Ethernet I/O Connector I/O Connector
13
SOC - Diseño Puramente HW
FPGA Board FPGA uP FLASH GPIO SDRAM Logic Serial Port Ethernet I/O Connector I/O Connector
14
SOC - Diseño Embebido basado en PPC
FPGA Board FPGA PowerPC FLASH Controller FLASH GPIO Controller GPIO PLB Bus SDRAM Controller SDRAM UART Controller Serial Port Ethernet Controller Ethernet I/O Connector I/O Connector
15
SOC - Codiseño HW/SW basado en PPC
FPGA Board FPGA PowerPC FLASH Controller FLASH Card Logic PLB Bus Serial Port UART Controller Ethernet SDRAM Controller SDRAM I/O Connector I/O Connector
16
Diseño embebido en una FPGA (SoC)
La implementación del SoC se realiza a través de la creación de un sistema embebido y uno o mas componentes de aplicación especifica sobre la FPGA utilizada. El sistema embebido desarrollado esta compuesto por un microprocesador (hard-core/soft-core), un conjunto de componentes de hardware necesarios para el funcionamiento del mismo y el sw de control necesario. Los componentes de aplicación especifica son independientes del sistema embebido y están implementados en el HW virgen de la FPGA Un sistema en chip configurable es un sistema digital que implementa componentes digitales con diversos propósitos en una sola pastilla de silicio. Las funciones de estos componentes en muchos casos tiene que ver con el fin del sistema en si mismo y en muchos otros con la interacción final con el eventual usuario del mismo. Por ejemplo, un sistema en chip puede implementar los componentes necesarios para poder funcionar como un sistema embebido e implementar al mismo tiempo hardware dedicado a cumplir con una tarea especifica que demanda procesamiento en tiempo real.
17
Diseño embebido en una FPGA (SoC) (continuación)
Desarrollo del sistema embebido basado en microprocesador. Desarrollo de software de control. Desarrollo de arquitectura de hardware que soporte el sistema embebido Desarrollo del componente acelerador/aplicación especifica implementado en hardware. Desarrollo del canal de comunicación hardware/software.
18
Diseño embebido en una FPGA (SoC) (continuación)
Hardware Virgen Microprocesador SISTEMA EMBEBIDO Diseño embebido Comunicaciones HW-SW Power PC COMPONENTE ACELERADOR Componente de HW - Lógica Fija Componente de HW - Lógica Fija
19
Diseño embebido en una FPGA (SoC) (continuación)
Se desarrollara una infraestructura de interconexión entre los bloques lógicos Buses propietarios como la familia CrossConnect de XILINX El procesador disponible en la FPGA se interconectara también utilizando la infraestructura de buses establecida. PowerPC 440 (hard core) 32 bit embedded PowerPC RISC Maximo clock de funcionamiento 400 MHz 2x 32 kB caches de instruction y datos Memory management unit (MMU) Coprocessor interface (APU) Interfaces a buses PLB y DCR.
20
Detalle de sistema embebido basado en PPC
PowerPC 405 Core Dedicated Hard IP Flexible Soft IP RocketIO DSOCM BRAM ISOCM IBM CoreConnect™ on-chip bus standard PLB, OPB, and DCR DCR Bus Arbiter Processor Local Bus Instruction Data PLB Arbiter On-Chip Peripheral Bus OPB Bus Bridge Hi-Speed Peripheral GB E-Net e.g. Memory Controller UART GPIO On-Chip Peripheral Off-Chip Memory ZBT SRAM DDR SDRAM SDRAM Full system customization to meet performance, functionality, and cost goals Source: Xilinx
21
Detalle de sistema embebido basado en Microblaze
I-Cache BRAM Local Memory Bus MicroBlaze 32-Bit RISC Core Flexible Soft IP BRAM Configurable Sizes D-Cache BRAM Possible in Virtex-II Pro LocalLink™ FIFO Channels 0,1…….32 Custom Functions Arbiter OPB On-Chip Peripheral Bus UART 10/100 E-Net On-Chip Peripheral Off-Chip Memory FLASH/SRAM Source: Xilinx
22
Motivación para utilizar un SO
Las aplicaciones necesitan un entorno de ejecución. Portabilidad, interfaces standard Acceso controlado a archivos y dispositivos Multitarea preemptiva Memoria virtual (memoria protegida, paginacion, etc) Librerias compartidas Soporte de stack TCP/IP etc Soporte para integrar nuevos dispositivos de hardware. Framework para escribir drivers para distintos subsistemas Abstracciones de funcionalidades de drivers Soporte de módulos de extensión
23
Motivación para utilizar un SO (continuación)
Caminos de ejecución
24
Componentes aceleradores en FPGA
Dispositivos inherentemente paralelos Las operaciones computacionales se implementan espacialmente. Elimina el cuello de botella causado por la ejecución serial de las arquitecturas Von Neumman (procesadores actuales). Computación temporal (serial): Solo una operación computacional puede ser ejecutada a la vez. El procesador tiene que encargarse de traer datos o código antes de ejecutar la operación. Computación espacial: Distintos bloques de circuiteria programable procesan en paralelo distintas partes del algoritmo computacional.
25
Componentes aceleradores en FPGA (continuación)
26
Componentes aceleradores en FPGA (continuación)
Los sistemas basados en procesador ofrecen posibilidad de implementar computación flexible pero al costo de minimizar la performance. Los sistemas basados en hardware no son óptimos para implementar computación de propósito general. Diseño único, no es practico diseñar/comprar una nueva maquina cada vez que corremos una aplicación diferente El diseño de hardware requiere un esfuerzo considerable. Barreras de costo para la implementación. Los sistemas reconfigurables ofrecen lo mejor de los mundos. Aplicación especifica con flexibilidad Info de XILINX Specialization Instruction set may not provide the operations your program needs Processors provide hardware that may not be useful in every program or in every cycle of a given program Multipliers Dividers Instruction Memory Processors need lots of memory to hold the instructions that make up a program and to hold intermediate results. Bit Width Mismatches In general, processors have a fixed bit width, and all computations are performed on that many bits Multimedia vector instructions (MMX) a response to this Capacity: Instructions are very dense representation, logic blocks aren’t Tools: Compilers for reconfigurable logic aren’t very good Some operations are hard to implement on FPGAs C-for-FPGA technology is improving fast, though One approach to capacity is to exploit the rule of software Run the 90% of code that takes 10% of execution time on a conventional processor Run the 10% of code that takes 90% of execution time on reconfigurable logic
27
Canal de comunicación entre componentes de hardware y software
Se necesita establecer un mecanismo físico para poder comunicar los componentes de HW y SW En la arquitectura de XILINX: Se puede utilizar Memory Mapped I/O a través de algún BUS Se puede utilizar el controlador APU del procesador PowerPC para interfacear el hardware y el software
28
Temas Propuestos GNU LINUx
- Overview de GNU Linux (Kernel y entorno GNU) - Overview del kernel y su arquitectura. Subsistemas. Interaccion entre userspace y kernelspace. Scheduler. Modos de booteo del kernel. - Userland. Entorno GNU. Toolchains de compilacion. - Compilacion del kernel. Configuracion de los dispositivos soportados. Configuracion de los subsistemas. - Codigo a desarrollar: Construccion de un driver basico. Modos de comunicacion entre el hardware y el software. Codigo de Interaccion con el MMU. Codigo de Interaccion con dispositivos de IO. Inspeccion de drivers avanzados.
29
Temas Propuestos (continuación)
SISTEMAS EMBEBIDOS CON XILINX - FPGAs de Xilinx. Caracteristicas. Desarrollo de logica especifica y desarrollo de sistemas embebidos. Interaccion de sistemas embebidos con logica especifica. - Arquitectura de sistemas embebidos propietaria de xilinx: Procesadores disponibles, buses de interconexion, IP cores disponibles, etc. Modos de uso. - Herramientas de desarrollo para sistemas embebidos: EDK y ISE. Herramientas de desarrollo de IP cores utilizables en EDK: ImpulseC. - Desarrollo del hardware un sistema embebido. Alternativas basadas en procesador por hardware o procesador por software. Configuracion de controladores y IP cores a usar. Configuracion de mapas de memoria. Desarrollo de hardware dedicado que interactue con un bus propietario en VHDL. - Desarrollo de software para el sistema embebido. Compilacion y ejecucion sobre el sistema embebido. Herramientas de prueba y debuggeo. Comunicacion entre el hardware y el software. - Uso de Impact para grabar la platform FLASH y la FPGA. Utilizacion Basica de XMD
30
Temas Propuestos (continuación)
DESARROLLO DE IP CORE PARA SISTEMA EMBEBIDO XILINX USANDO HERRAMIENTAS ESL - Herramientas ESL: ImpulseC, Matlab, etc. - Desarrollo hardware/software con ImpulseC. Primitavas de CSP. - Modelado de una aplicacion, caracterizacion mediante profiling y porting a ImpulseC. - Generacion de componentes de hardware y software. - Tecnicas de paralelizacion. Optimizacion y debuggeo del codigo obtenido. - Simulacion de hardware con ModelSIM. - Simulacion de software con GDB. - Creacion de IP Core con ImpulseC. Canales de comunicacion a utilizar.
31
Temas Propuestos (continuación)
LINUX SOBRE SISTEMAS EMBEBIDOS DE XILINX - Customizacion de linux para que soporte el sistema embebido. - Soporte de canales de comunicacion hardware/software. - Modos de ejecucion de binarios ELF compilados para la arquitectura del sistema embebido. - Crosscompilacion de linux. Ejecucion sobre el sistema embebido. - Creacion de drivers que interactuen con componentes de hardware (Comunicacion Hardware/software) - Debuggeo del kernel y del sistema embebido. Uso de GDB, GDB Server y XMD. - Desarrollo de toolchain y herramientas de userspace usando buildroot. - Booteo del kernel a traves de RED. - Bootloader para el kernel usando uboot. - Optimizacion de performance de dispositivos de red.
32
Preguntas? Gracias!
Presentaciones similares
© 2025 SlidePlayer.es Inc.
All rights reserved.