La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

DISEÑO DE PLATAFORMAS DE COMPUTO BASADAS EN FPGAS

Presentaciones similares


Presentación del tema: "DISEÑO DE PLATAFORMAS DE COMPUTO BASADAS EN FPGAS"— Transcripción de la presentación:

1 DISEÑO DE PLATAFORMAS DE COMPUTO BASADAS EN FPGAS
Desarrollo de Sistemas en Chip (SoCs) Oviedo Marcos

2 Agenda Sistemas en chip Beneficios que provee un SoC
Componentes de un SoC Metodología simplificada de desarrollo de un SoC Herramientas de desarrollo de diseños embebidos sobre FPGAs Ejemplo de hardware necesario para la implementación de un SoC Buses de interconexión Ejemplos de SoC Roadmap del curso

3 Sistemas en chip Un sistema en chip (SoC) es la habilidad de colocar múltiples funcionalidades de hardware (IPcores) en una sola pastilla de silicio. Un SoC generalmente esta compuesto por un sistema embebido basado en un microprocesador procesador y componentes de hardware de aplicación especifica Cuando se utiliza un microprocesador, el software es desarrollado en paralelo a modo de particionar/distribuir la logica deseada tanto en hardware como en software. 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 Beneficios que provee un SoC
Es una alternativa económica a implementar la misma funcionalidad en distintos componentes. Al implementar todo el sistema en una sola pastilla, elimina la complejidad y problemas que poseen los PCBs con componentes distribuidos Problemas de integridad de señales Complejidad para validad/verificar el board Múltiples puntos de falla Menor consumo de potencia que varios componentes distribuidos en el PCB

5 Beneficios que provee un SoC (contd)
Utilización de IPcores preverificadas. Posibilidad de reconfiguración en campo mediante el uso de tecnología FPGA Alta performance mediante el uso de coprocesadores implementados en hardware Alta reutilización de IPCores propios o externos. Posibilidad de control total del sistema a través de SW

6 Componentes de un SoC Un SoC típicamente esta compuesto por los siguientes IPCores Al menos un microprocesador/microcontrolador generalmente de 32 bits. Fuentes de reloj necesarias para el timing del sistema, como pueden ser DCMs, osciladores, plls, etc. Componentes que implementan los controladores de los buses de comunicación internos. Componentes específicos como pueden ser RTCs, PowerOnReset, wrappers de recursos fijos, componentes de glue-logic, etc.

7 Componentes de un SoC (contd)
Controladores encargados de gestionar los chips de memorias presentes en el board (off-chip components). Estos pueden ser controladores de RAM, FLASH, EEPROM, ROM, etc. Componentes que implementan controladores para interfaces externas de comunicación como controladores USB, Ethernet, USART, SPI, Fireware, etc. Componentes de regulación de tensión y power management. Componentes de aplicación especifica: Coprocesadores de alta performance, monitoreo para alta disponibilidad, etc.

8 Metodología simplificada de desarrollo de un SoC
Primero se establecen los requerimientos del sistema Luego se determina como el sistema se va a particionar e implementar (Codiseño HW/SW) En la partición de HW se determinan: El microprocesador a utilizar Los buses de interconexión que serán utilizados y como van a ser conectados los componentes Los componentes necesarios para volver al sistema embebido funcional. Para esto se pueden utilizar IPCores propios o de terceros. Los componentes de aplicación especifica necesarios para cumplir con los requerimientos del sistema

9 Metodología simplificada de desarrollo de un SoC (contd)
En la partición de SW se determinan: El software de control que correrá sobre el microprocesador: Software standalone o sistema operativo. Los drivers necesarios para controlar los componentes de HW del hardware subyacente. La funcionalidad de SW que será necesaria para satisfacer los requerimientos del sistema. Se determinara ademas como sera el canal de comunicación entre el HW y el SW Registros mapeados en memoria Mecanismos especificos de la plataforma de FPGA: APU por ejemplo DMA

10 Metodología simplificada de desarrollo de un SoC (contd)
Una vez que los componentes del codiseño HW/SW fueron establecidos se determinara como se simulara el funcionamiento de los mismos. El software se simulara y validara en forma separa en entornos de desarrollo en otras arquitecturas. Cada uno de los componentes de HW podrá ser simulador y validado en forma separada y luego en su interacción con el resto del sistema. Una vez que los componentes del SoC son validados, se implementara el diseño y se validara el mismo a nivel de sistema. Para esto se determinara cual sera el canal que permitira interactuar con el SoC: un canal de debugging interno o a traves de alguna de las interfaces funcionales de comunicación del SoC.

11 Herramientas de desarrollo de diseños embebidos sobre FPGAs
Existen algunas herramientas que permiten desarrollar diseños de hardware que utilicen los dispositivos FPGA con un mayor nivel de abstracción (Electronic Design Automation o EDA) Algunas permiten que se puedan utilizar dispositivos de lógica programable sin un intenso conocimiento de desarrollo de hardware. Algunas inclusive poseen SDKs para la creación de los componentes de software. Permiten validar funcionalmente el diseño antes de ser implementando en hardware. Inclusive simular la comunicación entre la partición hardware y software.

12 Ejemplo de hardware necesario para la 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. Interfase 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

13 Ejemplo de hardware necesario para la implementación de un SoC (contd)

14 Ejemplo de hardware necesario para la implementación de un SoC (contd)

15 FPGA sin personalización
FPGA Board FPGA uP FLASH GPIO SDRAM Serial Port Ethernet I/O Connector I/O Connector

16 Fpga con diseño puramente de HW
FPGA Board FPGA uP FLASH GPIO SDRAM Logic Serial Port Ethernet I/O Connector I/O Connector

17 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

18 Buses de interconexión
Toda plataforma de computo basada en microprocesador implementa un canal de comunicación entre el microprocesador y los distintos dispositivos de la plataforma. Este canal de comunicación es conocido como bus y dependiendo de los requerimientos del sistema adopta diferentes características. Algunos ejemplos de buses de interconexión en las PCs de escritorio son: PCI, PCI-X, PCIe, SMBus, Hypertransport, FSB, DMI, Quick Path Interconnect, etc.

19 Buses de interconexión (contd)
Evolución arquitectura Intel

20 Buses de interconexión (contd)
Evolución arquitectura AMD

21 Ejemplos de SoC En la industria y en la comunidad se pueden encontrar ejemplos de SoC. Estos sistemas varían en el tipo de procesador, los buses de interconexión y los IPCores utilizados. Los componentes ya desarrollados de los SoC disponibles en la industria y comunidad pueden ser utilizados en el contexto definidos por su licencia Existen componentes con licencias GPL, LGPL, BSD, etc y otros con licencias propietarias del fabricante y de fuente cerrada. Por lo general los SoC opensource no son dependientes de un fabricante si no que pueden ser implementados en cualquier tipo de FPGA.

22 Ejemplos de SoC Algunos ejemplos de SoC que desarrollaremos a continuación SoC de XILINX (basado en PPC o Microblaze) Milkymist SOC (basado en LaticceMico32) GRLIB (Basado en LEON3) Opensparc SOC (Basado en S1 Core de SUN) Lattice SystemMico32 SoC (Basado en LaticceMico32) MinSoC SoC (Basado en OpenRisc OR1200)

23 SoC de Xilinx Se desarrollan utilizando el entorno EDK.
El entorno provee una extensa librería de IPCores testeados y listos para ser usados. El código de los IPCores esta disponible pero con licencias que no permiten su uso fuera del entorno de Xilinx Se pueden usar siempre que se tenga la licencia de EDK. Algunos IPCores son de libre uso dentro de EDK y otros requieren licencia extra. El código de estos IPCores que requieren licencia extra no esta disponible. El código de los IPCores, la instanciación de los mismos y de los templates necesarios para acceder a los buses esta desarrollado en VHDL.

24 SoC de Xilinx (contd) El procesador del sistema embebido puede ser un softcore (Microblaze) o, cuando esta disponible en la fpga a utilizar, un hardcore PowerPC. El diseño se puede sintetizar solamente en FPGAs de Xilinx. El diseño puede ser exportado a herramientas de la suite de desarrollo de Xilinx: ISE y PlanAhead. IPCores pueden ser creados y agregados al diseño de manera simple mediante el uso de EDK.

25 SoC de Xilinx (contd) Se utilizan la familia de buses CrossConnect para la interconexión de los IPCores Desarrollada por IBM Esta compuesto por los siguientes buses Processor Local Bus (PLB) Device Control Register Bus (DCR) On-Chip Peripheral Bus (OPB) Fabric Coprocessor Bus (FCB) Fast Simplex Link (FSL) On-Chip Memory (OCM)

26 SoC de Xilinx (contd) La herramienta Embedded Development Kit (EDK) permite disponer, configurar e interconectar los distintos IP Cores para desarrollar una plataforma de computo funcional. Facilita la creación de codiseños HW/SW Permite validar, depurar y simular el diseño de hardware. Permite desarrollar, depurar, validar y ejecutar software de control sobre el sistema embebido desarrollado en la FPGA.

27 SoC de Xilinx (contd) Se puede utilizar un ecosistema GNU para el desarrollo de SW. Ambos procesadores poseen un toolchain gcc que los soporta. Existen soporte para ambos procesadores y periféricos en uboot Existe soporte para ambos procesadores y periféricos comunes en el mainline del kernel de linux Existe además soporte para ambos procesadores en distintas herramientas opensource como buildroot, qemu, etc.

28 SoC de Xilinx - Sistema basado en PPC (hardcore)
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

29 SoC de Xilinx - Sistema basado en Microblaze (softcore)
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

30 OpenSPARC SoC www.opensparc.net
Basado en OpenSparc, el primer procesador opensource CMT de 64 bits Versiones T1 y T2 liberadas, así como también una versión reducida y sintetizable en fpgas actuales: S1 core. Procesador basado en arquitectura SparcV9 Procesador con soporte en gcc, linux kernel, opensolaris y sun solaris studio. El SoC esta compuesto por IPCores obtenidos de opencores. El bus por defecto en los proyectos de opencores es Wishbone. El procesador accede al bus wishbone a través de un bridge desarrollado para el proyecto El bridge es necesario porque los IPCores se conectan a través de Wishbone y el CPU/FPU solo hablan CCX (Cache-processor interface y processor-cache interface)

31 OpenSPARC SoC (contd)

32 OpenSPARC SoC (integración con SoC de Xilinx) (contd)
SPARC T1 Core processor-to-crossbar interface (PCX) Microblaze Proc Fast Simplex Links interface (FSL) PCX-FSL Interposer External DDR2 Dimm MCH-OPB MemCon Microblaze Debug UART IBM Coreconnect OPB Bus SPARC T1 UART 10/100 Ethernet MultiPort Memory Controller FPGA Boundary Xilinx Embedded Developer’s (EDK) Design Block must be developed

33 GRLIB SoC www.gaisler.com
La GRLIB es una librería de IP Cores desarrollada por AeroFlex que permiten armar un SoC. La librería incluye el softcore del procesador LEON3. Procesador de 32 bits Basado en SparcV8 Posee MMU Ademas se incluyen cores para controlar componentes off-chip (Memorias, Controladores Ethernet, controladores USB, GPIO, etc) y cores para implementar glue logic necesaria para el SoC. El procesador se comunica a los dispositivos a través del bus AMBA AHB/APB. El procesador posee soporte en GCC, Linux kernel, Uboot, Buildroot, etc.

34 GRLIB SoC (contd)

35 MinSoC SoC http://opencores.com/project,minsoc
Minimal OpenRisc SoC (MinSoC) es un proyecto de la comunidad opencores.org Basado en el procesador de 32 bits insignia de la comunidad OpenRisc OR1200 Main bus Wishbone UART, controladores de Red y Memoria Facilidades de debugging MMU incluido Soporte en GCC, linux, uboot y buildroot.

36 MinSoC SoC (contd)

37 Lattice SystemMico32 SoC
Desarrollado y liberado baja licencia GPL por la empresa Lattice El entorno MicoSystem32 es un conjunto de IP cores y soft processor Se desarrolla utilizando Mico System Builder (MSB) Se basa en procesador de 32 bits LatticeMico32 No posee MMU Se comunica con el resto de los perifericos a traves del bus Wishbone Lattice ofrece un toolchain gcc para poder desarrollar aplicaciones. No existe soporto oficial en gcc, linux, buildroot ni uboot. Si existe un port en RTEMS y uclinux.

38 Lattice SystemMico32 SoC (contd)

39 Lattice SystemMico32 SoC (contd)

40 Milkymist SoC milkymist.org
SoC GPL desarrollado para el proyecto Milkymist (VJ render station) Basado en el procesador LatticeMico32 Multiples IPCores de comunicación, perifericos orientados a multimedia y aceleradores graficos. Desarrollado enteramente desde cero en Verilog VHDL (Solamente el procesador fue reusado) En continuo desarrollo en la comunidad. PCB propio desarrollado. Es el SoC de referencia en la comunidad. Están apareciendo otros proyectos opensource basados en este. Toolchain disponible. Mismo soporte en aplicaciones opensource que LatticeMico32 SoC. milkymist.org

41 Milkymist SoC (contd)

42 Milkymist SoC (contd)

43 Roadmap del curso Ecosistema SoC de Xilinx
Desarrollo de SoC usando PPC y Microblaze Desarrollo de software de control standalone Desarrollo de hardware y software de periferico especifico Desarrollo de toolchain y rootfs mediante buildroot Port del diseño de hardware a linux Emulación del board utilizando QEMU Utilización de ImpulseC para desarrollar periféricos específicos Soporte para uboot

44 Roadmap del curso (contd)
Ecosistema SoC opensource Desarrollo de SoC usando procesador opensource y dispositivos de opencores.org Desarrollo de software de control standalone Desarrollo de hardware y software de periferico especifico Desarrollo de toolchain y rootfs mediante buildroot Port del diseño de hardware a linux Emulación del board utilizando QEMU Utilización de ImpulseC para desarrollar periféricos específicos Soporte para uboot Proyecto mixto?

45 Preguntas? Gracias!

46 Referencias http://www.opensparc.net/


Descargar ppt "DISEÑO DE PLATAFORMAS DE COMPUTO BASADAS EN FPGAS"

Presentaciones similares


Anuncios Google