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 Oviedo Marcos Desarrollo de Sistemas en Chip (SoCs)

Presentaciones similares


Presentación del tema: "DISEÑO DE PLATAFORMAS DE COMPUTO BASADAS EN FPGAS Oviedo Marcos Desarrollo de Sistemas en Chip (SoCs)"— Transcripción de la presentación:

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

2 2 / Oviedo / 6/10/2014 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 3 / Oviedo / 6/10/2014 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.

4 4 / Oviedo / 6/10/2014 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 5 / Oviedo / 6/10/2014 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 6 / Oviedo / 6/10/2014 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 7 / Oviedo / 6/10/2014 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 8 / Oviedo / 6/10/2014 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 9 / Oviedo / 6/10/2014 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 10 / Oviedo / 6/10/2014 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 11 / Oviedo / 6/10/2014 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 12 / Oviedo / 6/10/2014 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.

13 13 / Oviedo / 6/10/2014 Ejemplo de hardware necesario para la implementación de un SoC (contd)

14 14 / Oviedo / 6/10/2014 Ejemplo de hardware necesario para la implementación de un SoC (contd)

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

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

17 17 / Oviedo / 6/10/2014 SOC - Codiseño HW/SW basado en PPC FPGA PowerPC I/O Connector Ethernet SDRAM Serial Port FLASH Card FLASH Controller UART Controller SDRAM Controller PLB Bus Logic FPGA Board

18 18 / Oviedo / 6/10/2014 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 19 / Oviedo / 6/10/2014 Buses de interconexión (contd) Evolución arquitectura Intel

20 20 / Oviedo / 6/10/2014 Buses de interconexión (contd) Evolución arquitectura AMD

21 21 / Oviedo / 6/10/2014 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 22 / Oviedo / 6/10/2014 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 23 / Oviedo / 6/10/2014 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 24 / Oviedo / 6/10/2014 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 25 / Oviedo / 6/10/2014 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 26 / Oviedo / 6/10/2014 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 27 / Oviedo / 6/10/2014 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 28 / Oviedo / 6/10/2014 PowerPC 405 Core Dedicated Hard IP Flexible Soft IP RocketIO SoC de Xilinx - Sistema basado en PPC (hardcore) Full system customization to meet performance, functionality, and cost goals DCR Bus UART GPIO On-Chip Peripheral Hi-Speed Peripheral GB E-Net e.g. Memory Controller Arbiter On-Chip Peripheral Bus OPB Arbiter Processor Local Bus InstructionData PLB DSOCM BRAM ISOCM BRAM Off-Chip Memory ZBT SRAM DDR SDRAM SDRAM Bus Bridge IBM CoreConnect on-chip bus standard PLB, OPB, and DCR Source: Xilinx

29 29 / Oviedo / 6/10/2014 SoC de Xilinx - Sistema basado en Microblaze (softcore) Flexible Soft IP MicroBlaze 32-Bit RISC Core UART 10/100 E-Net On-Chip Peripheral Off-Chip Memory FLASH/SRAM LocalLink FIFO Channels 0,1…….32 Custom Functions Custom Functions BRAM Local Memory Bus D-Cache BRAM I-Cache BRAM Configurable Sizes Possible in Virtex-II Pro Arbiter OPB On-Chip Peripheral Bus Source: Xilinx

30 30 / Oviedo / 6/10/2014 OpenSPARC SoC 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 31 / Oviedo / 6/10/2014 OpenSPARC SoC (contd)

32 32 / Oviedo / 6/10/2014 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 Developers (EDK) Design Block must be developed

33 33 / Oviedo / 6/10/2014 GRLIB SoC 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 34 / Oviedo / 6/10/2014 GRLIB SoC (contd)

35 35 / Oviedo / 6/10/2014 MinSoC SoC 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 36 / Oviedo / 6/10/2014 MinSoC SoC (contd)

37 37 / Oviedo / 6/10/2014 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. tualproperty/ipcores/mico32

38 38 / Oviedo / 6/10/2014 Lattice SystemMico32 SoC (contd)

39 39 / Oviedo / 6/10/2014 Lattice SystemMico32 SoC (contd)

40 40 / Oviedo / 6/10/2014 Milkymist SoC 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 41 / Oviedo / 6/10/2014 Milkymist SoC (contd)

42 42 / Oviedo / 6/10/2014 Milkymist SoC (contd)

43 43 / Oviedo / 6/10/2014 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 44 / Oviedo / 6/10/2014 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 45 / Oviedo / 6/10/2014 Gracias! Preguntas?

46 46 / Oviedo / 6/10/2014 Referencias ARTE2.pdf s/mico32/index.cfm


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

Presentaciones similares


Anuncios Google