46
DISEÑO DE PLATAFORMAS DE COMPUTO BASADAS EN FPGAS Oviedo Marcos <[email protected] m> Desarrollo de Sistemas en Chip (SoCs)

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

Embed Size (px)

Citation preview

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

DISEÑO DE PLATAFORMAS DE COMPUTO BASADAS EN

FPGAS

Oviedo Marcos<[email protected]>

Desarrollo de Sistemas en Chip (SoCs)

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

2 /Oviedo /

04/10/23

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

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

3 /Oviedo /

04/10/23

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.

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

4 /Oviedo /

04/10/23

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

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

5 /Oviedo /

04/10/23

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

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

6 /Oviedo /

04/10/23

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.

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

7 /Oviedo /

04/10/23

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.

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

8 /Oviedo /

04/10/23

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

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

9 /Oviedo /

04/10/23

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

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

10 /Oviedo /

04/10/23

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.

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

11 /Oviedo /

04/10/23

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.

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

12 /Oviedo /

04/10/23

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.

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

13 /Oviedo /

04/10/23

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

ETHERNETETHERNET

PHYVIRTEX 4

FX12 FPGAMEMORIA DDR 64MB

LEDsDE PRUEBA

LEDsDE LINK

MEMORIA FLASH DE PLATAFORMA

MEMORIA FLASH DE USUARIO

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

14 /Oviedo /

04/10/23

PUERTO DE PROGRAMACION

CONECTORESDE EXPANSION

PUERTOJTAG

PUERTOSERIAL

PUERTOUSB CONECTOR 5V

LEDPROGRAMACION

SWITCH DE PROGRAMACION

CONECTORES DE EXPANSION

FUENTE 2.5V

FUENTE VCCINT

FUENTE 3.3V

LEDs SWITCHES DE PRUEBA

SWITCH ENCENDIDO

CLOCKUSUARIO

PANELLCD

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

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

15 /Oviedo /

04/10/23

FPGA sin personalización

FPGAuPuP

I/O ConnectorI/O Connector I/O ConnectorI/O Connector

EthernetEthernet

Serial PortSerial Port

SDRAMSDRAM

GPIOGPIO

FLASHFLASHFPGA Board

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

16 /Oviedo /

04/10/23

Fpga con diseño puramente de HW

uPuP

I/O ConnectorI/O Connector I/O ConnectorI/O Connector

Logic

FPGA BoardFPGA

EthernetEthernet

Serial PortSerial Port

SDRAMSDRAM

GPIOGPIO

FLASHFLASH

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

17 /Oviedo /

04/10/23

SOC - Codiseño HW/SW basado en PPC

FPGAPowerPCPowerPC

I/O ConnectorI/O Connector I/O ConnectorI/O Connector

EthernetEthernet

SDRAMSDRAM

Serial PortSerial Port

FLASH CardFLASH CardFLASH ControllerFLASH Controller

UART ControllerUART Controller

SDRAM ControllerSDRAM Controller

PLB BusLogicLogic

FPGA Board

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

18 /Oviedo /

04/10/23

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.

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

19 /Oviedo /

04/10/23

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

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

20 /Oviedo /

04/10/23

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

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

21 /Oviedo /

04/10/23

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.

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

22 /Oviedo /

04/10/23

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)

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

23 /Oviedo /

04/10/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.

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

24 /Oviedo /

04/10/23

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.

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

25 /Oviedo /

04/10/23

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)

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

26 /Oviedo /

04/10/23

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.

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

27 /Oviedo /

04/10/23

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.

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

28 /Oviedo /

04/10/23

PowerPC405 Core

Dedicated Hard IPFlexible Soft IP

RocketIO

SoC de Xilinx - Sistema basado en PPC (hardcore)

Full system customization to meet

performance, functionality, and cost goals

DCR Bus

UART GPIOOn-Chip

PeripheralHi-Speed

PeripheralGB

E-Net

e.g.Memory

Controller

Arb

iter

On-Chip Peripheral Bus

OPB

Arb

iter

Processor Local Bus

Instruction Data

PLB

DSOCMBRAM

ISOCMBRAM

Off-ChipMemory

ZBT SRAMDDR SDRAM

SDRAM

BusBridge

IBM CoreConnect™on-chip bus standardPLB, OPB, and DCR

Source: Xilinx

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

29 /Oviedo /

04/10/23

SoC de Xilinx - Sistema basado en Microblaze (softcore)

Flexible Soft IPMicroBlaze32-Bit RISC Core

UART 10/100E-Net

On-ChipPeripheral

Off-ChipMemory

FLASH/SRAM

LocalLink™FIFO Channels

0,1…….32

CustomFunctions

CustomFunctions

BRAM Local Memory

BusD-CacheBRAM

I-CacheBRAM

ConfigurableSizes

Arb

iter

Processor Local Bus

Instruction Data

PLBBus

Bridge

PowerPC405 Core

Dedicated Hard IP

Arb

iter

Processor Local Bus

Instruction Data

PLBBus

BridgeBus

Bridge

PowerPC405 Core

Dedicated Hard IP

PowerPC405 Core

Dedicated Hard IP

PowerPC405 Core

Dedicated Hard IPPossible inVirtex-II Pro

Hi-SpeedPeripheral

GB E-Net

e.g.Memory

Controller

Hi-SpeedPeripheralHi-Speed

PeripheralGB

E-NetGB

E-Net

e.g.Memory

Controller

e.g.Memory

Controller

Arb

iter OPB

On-Chip Peripheral Bus

Source: Xilinx

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

30 /Oviedo /

04/10/23

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)

www.opensparc.net

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

31 /Oviedo /

04/10/23

OpenSPARC SoC (contd)

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

32 /Oviedo /

04/10/23

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) DesignBlock must be

developed

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

33 /Oviedo /

04/10/23

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.

www.gaisler.com

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

34 /Oviedo /

04/10/23

GRLIB SoC (contd)

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

35 /Oviedo /

04/10/23

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.

http://opencores.com/project,minsoc

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

36 /Oviedo /

04/10/23

MinSoC SoC (contd)

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

37 /Oviedo /

04/10/23

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.http://www.latticesemi.com/products/intellectualproperty/ipcores/mico32

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

38 /Oviedo /

04/10/23

Lattice SystemMico32 SoC (contd)

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

39 /Oviedo /

04/10/23

Lattice SystemMico32 SoC (contd)

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

40 /Oviedo /

04/10/23

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

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

41 /Oviedo /

04/10/23

Milkymist SoC (contd)

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

42 /Oviedo /

04/10/23

Milkymist SoC (contd)

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

43 /Oviedo /

04/10/23

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

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

44 /Oviedo /

04/10/23

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?

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

45 /Oviedo /

04/10/23

Gracias!

Preguntas?

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

46 /Oviedo /

04/10/23

Referencias

http://www.opensparc.net/

http://utic.inti.gov.ar/publicaciones/Sase2010/FPGA_SoftCores_PARTE2.pdf

http://www.gaisler.com

http://milkymist.org/thesis/thesis.pdf

http://en.wikipedia.org/wiki/OpenRISC_1200

http://opencores.com/project,minsoc

http://www.latticesemi.com/products/intellectualproperty/ipcores/mico32/index.cfm

http://milkymist.org/mmsoc.html