soc sur fpga - systèmes programmables sur fpga · soc sur fpga - systèmes programmables sur fpga...

33
SoC sur FPGA Systèmes programmables sur FPGA Tarik Graba Année 2016/2017

Upload: others

Post on 22-Sep-2020

28 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: SoC sur FPGA - Systèmes programmables sur FPGA · SoC sur FPGA - Systèmes programmables sur FPGA Author: Tarik Graba Created Date: 10/11/2016 6:52:40 PM

SoC sur FPGASystèmes programmables sur FPGA

Tarik GrabaAnnée 2016/2017

Page 2: SoC sur FPGA - Systèmes programmables sur FPGA · SoC sur FPGA - Systèmes programmables sur FPGA Author: Tarik Graba Created Date: 10/11/2016 6:52:40 PM

Plan

Introduction

Softcore processor

Hardcore processor

Outils et méthodologie

2/23 SE303 Tarik Graba P1-2016/2017

Page 3: SoC sur FPGA - Systèmes programmables sur FPGA · SoC sur FPGA - Systèmes programmables sur FPGA Author: Tarik Graba Created Date: 10/11/2016 6:52:40 PM

SoC sur FPGAPourquoi?

Les FPGAs peuvent être utilisés pour implémentermatériellement des fonctions numériques:

• des fonctions de traitement du signal,• des processeurs,• des accélérateurs• …

Les utiliser pour construire des systèmes à base deprocesseurs

3/23 SE303 Tarik Graba P1-2016/2017

Page 4: SoC sur FPGA - Systèmes programmables sur FPGA · SoC sur FPGA - Systèmes programmables sur FPGA Author: Tarik Graba Created Date: 10/11/2016 6:52:40 PM

SoC sur FPGAPourquoi?

Développer rapidement une application autour d’un cœurde processeur:

• le développement logiciel est plus simple,• plus facile de trouver des développeurs,• réutiliser les bibliothèques et les OS existants.

Ajouter des périphériques spécialisés grâce au FPGA:• pour des questions de performance,• pour simplifier les cartes électroniques (beaucoup d’IO,

glue logic, …)En deçà d’un certain volume, on n’a pas le choix.

4/23 SE303 Tarik Graba P1-2016/2017

Page 5: SoC sur FPGA - Systèmes programmables sur FPGA · SoC sur FPGA - Systèmes programmables sur FPGA Author: Tarik Graba Created Date: 10/11/2016 6:52:40 PM

SoC sur FPGAAvantages?

5/23 SE303 Tarik Graba P1-2016/2017

Page 6: SoC sur FPGA - Systèmes programmables sur FPGA · SoC sur FPGA - Systèmes programmables sur FPGA Author: Tarik Graba Created Date: 10/11/2016 6:52:40 PM

SoC sur FPGAAvantages?

5/23 SE303 Tarik Graba P1-2016/2017

Page 7: SoC sur FPGA - Systèmes programmables sur FPGA · SoC sur FPGA - Systèmes programmables sur FPGA Author: Tarik Graba Created Date: 10/11/2016 6:52:40 PM

SoC sur FPGAAvantages?

Un système à base de processeur

un ou plusieurs processeurs,la mémoire (ram/rom) (jusqu’à une certaine taille),des interfaces de communication (standards, ad hoc, …)les bus internes.

Qui n’est pas figé

le FPGA reste programmable, on peut faire évoluer lesystèmechangé sa structure, sa fonctionnalité.

6/23 SE303 Tarik Graba P1-2016/2017

Page 8: SoC sur FPGA - Systèmes programmables sur FPGA · SoC sur FPGA - Systèmes programmables sur FPGA Author: Tarik Graba Created Date: 10/11/2016 6:52:40 PM

Plan

Introduction

Softcore processor

Hardcore processor

Outils et méthodologie

7/23 SE303 Tarik Graba P1-2016/2017

Page 9: SoC sur FPGA - Systèmes programmables sur FPGA · SoC sur FPGA - Systèmes programmables sur FPGA Author: Tarik Graba Created Date: 10/11/2016 6:52:40 PM

Softcore processor

Utiliser les ressources du FPGA pour le processeur et ses périphériques.

8/23 SE303 Tarik Graba P1-2016/2017

Page 10: SoC sur FPGA - Systèmes programmables sur FPGA · SoC sur FPGA - Systèmes programmables sur FPGA Author: Tarik Graba Created Date: 10/11/2016 6:52:40 PM

Softcore processor

Utiliser les ressources du FPGA pour le processeur

+ faisable sur n’importe quel FPGA+ le cœur est modifiable- processeur “spécial” FPGA- performances limitées- utilise des ressources dans le FPGA

9/23 SE303 Tarik Graba P1-2016/2017

Page 11: SoC sur FPGA - Systèmes programmables sur FPGA · SoC sur FPGA - Systèmes programmables sur FPGA Author: Tarik Graba Created Date: 10/11/2016 6:52:40 PM

Softcore processorExemple de plateformes

Altera Nios II

exclusivement sur FPGA Alteraprocesseur 32bits

configurable (pipline, instructions,cache, …)

• supporté par Linuxles sources ne sont pas distribuéespayant

10/23 SE303 Tarik Graba P1-2016/2017

Page 12: SoC sur FPGA - Systèmes programmables sur FPGA · SoC sur FPGA - Systèmes programmables sur FPGA Author: Tarik Graba Created Date: 10/11/2016 6:52:40 PM

Softcore processorExemple de plateformes

Xilinx Microblazeexclusivement sur FPGA Xilinxprocesseur 32bits

configurable (pipline, instructions,cache, …)

• supporté par Linuxles sources ne sont pas distribuéespayant

10/23 SE303 Tarik Graba P1-2016/2017

Page 13: SoC sur FPGA - Systèmes programmables sur FPGA · SoC sur FPGA - Systèmes programmables sur FPGA Author: Tarik Graba Created Date: 10/11/2016 6:52:40 PM

Softcore processorExemple de plateformes

Lattice Mico32

conçu pour les FPGA latticeprocesseur 32bitsles sources sont accessible et “libre”pas de support Linux

10/23 SE303 Tarik Graba P1-2016/2017

Page 14: SoC sur FPGA - Systèmes programmables sur FPGA · SoC sur FPGA - Systèmes programmables sur FPGA Author: Tarik Graba Created Date: 10/11/2016 6:52:40 PM

Softcore processorExemple de plateformes

ARM Cortex-M1

Microcontrôleur 32bits (proche desCortex-M0)configurableSupporte plusieurs familles deFPGAspas de support Linuxpayant

10/23 SE303 Tarik Graba P1-2016/2017

Page 15: SoC sur FPGA - Systèmes programmables sur FPGA · SoC sur FPGA - Systèmes programmables sur FPGA Author: Tarik Graba Created Date: 10/11/2016 6:52:40 PM

Softcore processorExemple de plateformes

Cobham/Gaisler Leon

SPARC 32bits développé initialementpour l’ESAsupporte plusieurs familles deFPGAssupport Linuxopensource jusqu’à la version 3existe en version durcie pour lespatial et l’avioniqueexiste aussi en ASIC

10/23 SE303 Tarik Graba P1-2016/2017

Page 16: SoC sur FPGA - Systèmes programmables sur FPGA · SoC sur FPGA - Systèmes programmables sur FPGA Author: Tarik Graba Created Date: 10/11/2016 6:52:40 PM

Softcore processorExemple de plateformes

OpenRisc, RiscV, …

des cœurs de processeursopensourcesdans toutes les catégories(µ-contrôleur, high-end,…)l’environnement (logiciel/matériel)n’est pas toujours de qualitésupport de la communauté

10/23 SE303 Tarik Graba P1-2016/2017

Page 17: SoC sur FPGA - Systèmes programmables sur FPGA · SoC sur FPGA - Systèmes programmables sur FPGA Author: Tarik Graba Created Date: 10/11/2016 6:52:40 PM

Plan

Introduction

Softcore processor

Hardcore processor

Outils et méthodologie

11/23 SE303 Tarik Graba P1-2016/2017

Page 18: SoC sur FPGA - Systèmes programmables sur FPGA · SoC sur FPGA - Systèmes programmables sur FPGA Author: Tarik Graba Created Date: 10/11/2016 6:52:40 PM

Hardcore processor

Avoir un vrai processeur dans la même puce que le FPGA.

12/23 SE303 Tarik Graba P1-2016/2017

Page 19: SoC sur FPGA - Systèmes programmables sur FPGA · SoC sur FPGA - Systèmes programmables sur FPGA Author: Tarik Graba Created Date: 10/11/2016 6:52:40 PM

Hardcore processor

hard core: un bloc en dur dans la puce du FPGA

- restreint à certaines familles de FPGAs- le cœur est figé+ performances élevée+ processeurs “standard”+ la FPGA peut servir à autre chose

13/23 SE303 Tarik Graba P1-2016/2017

Page 20: SoC sur FPGA - Systèmes programmables sur FPGA · SoC sur FPGA - Systèmes programmables sur FPGA Author: Tarik Graba Created Date: 10/11/2016 6:52:40 PM

Hardcore processorHard System

Avoir un vrai SoC de base dans la même puce que le FPGA.

14/23 SE303 Tarik Graba P1-2016/2017

Page 21: SoC sur FPGA - Systèmes programmables sur FPGA · SoC sur FPGA - Systèmes programmables sur FPGA Author: Tarik Graba Created Date: 10/11/2016 6:52:40 PM

Hard Processing System/SoC

Un système sur puce de base dans la puce du FPGA

+ un soc de base facilite le développement logiciel:+ support des systèmes d’exploitation et bibliothèques+ mise en commun et réutilisation plus simple

+ on se concentre sur les ajouts- apprentissage un peu plus complexe

15/23 SE303 Tarik Graba P1-2016/2017

Page 22: SoC sur FPGA - Systèmes programmables sur FPGA · SoC sur FPGA - Systèmes programmables sur FPGA Author: Tarik Graba Created Date: 10/11/2016 6:52:40 PM

Exemple de plateformesXilinx Zynq SoC

Système sur puce complet:processeur dual core ARMCortex-A9 (32bits)contrôleur de mémoire DDR, flashinterfaces série, réseau, …

Zone FPGA connectée au bus duprocesseur

16/23 SE303 Tarik Graba P1-2016/2017

Page 23: SoC sur FPGA - Systèmes programmables sur FPGA · SoC sur FPGA - Systèmes programmables sur FPGA Author: Tarik Graba Created Date: 10/11/2016 6:52:40 PM

Exemple de plateformes

Altera CycloneV SoCSystème sur puce complet:

processeur dual core ARMCortex-A9 (32bits)contrôleur de mémoire DDR, flashinterfaces série, réseau, …

Zone FPGA connectée au bus duprocesseur

16/23 SE303 Tarik Graba P1-2016/2017

Page 24: SoC sur FPGA - Systèmes programmables sur FPGA · SoC sur FPGA - Systèmes programmables sur FPGA Author: Tarik Graba Created Date: 10/11/2016 6:52:40 PM

Exemple de plateformes

Xilinx Zynq Ultrascale+ MPSoCprocesseur dual core ARMCortex-A53 (64bis) et processeurtemps réel dual core ARM Cortex-R5(32bits)GPU Mali-400, processeur vidéo(optionnels)contrôleur de mémoire DDR, flashPCIe, SATA, DisplayPort, …interfaces série, réseau, …

16/23 SE303 Tarik Graba P1-2016/2017

Page 25: SoC sur FPGA - Systèmes programmables sur FPGA · SoC sur FPGA - Systèmes programmables sur FPGA Author: Tarik Graba Created Date: 10/11/2016 6:52:40 PM

Exemple de plateformes

Altera Stratix10-SoC

processeur quad core ARMCortex-A53 (64bis)contrôleur de mémoire DDR, flashinterfaces série, réseau, …

16/23 SE303 Tarik Graba P1-2016/2017

Page 26: SoC sur FPGA - Systèmes programmables sur FPGA · SoC sur FPGA - Systèmes programmables sur FPGA Author: Tarik Graba Created Date: 10/11/2016 6:52:40 PM

Exemple de plateformes

Microsemi Smatfusion/2

Microcontrôleur 32bits ARMCortex-M3interfaces série, réseau, …ADC, DACfonctions analogiques

16/23 SE303 Tarik Graba P1-2016/2017

Page 27: SoC sur FPGA - Systèmes programmables sur FPGA · SoC sur FPGA - Systèmes programmables sur FPGA Author: Tarik Graba Created Date: 10/11/2016 6:52:40 PM

Plan

Introduction

Softcore processor

Hardcore processor

Outils et méthodologie

17/23 SE303 Tarik Graba P1-2016/2017

Page 28: SoC sur FPGA - Systèmes programmables sur FPGA · SoC sur FPGA - Systèmes programmables sur FPGA Author: Tarik Graba Created Date: 10/11/2016 6:52:40 PM

Outils et méthodologieDéveloppement orienté IPs

Utilisation d’un standard de communication sur puce• AXI, AMBA, Avalon, Wishbone…

Bibliothèque d’IPs fournies avec les outils• fonctions courantes (interfaces, contrôleurs mémoire…)• payantes ou gratuites

18/23 SE303 Tarik Graba P1-2016/2017

Page 29: SoC sur FPGA - Systèmes programmables sur FPGA · SoC sur FPGA - Systèmes programmables sur FPGA Author: Tarik Graba Created Date: 10/11/2016 6:52:40 PM

Outils et méthodologieDéveloppement orienté IPs

Altera Qsys Xilinx Vivado

19/23 SE303 Tarik Graba P1-2016/2017

Page 30: SoC sur FPGA - Systèmes programmables sur FPGA · SoC sur FPGA - Systèmes programmables sur FPGA Author: Tarik Graba Created Date: 10/11/2016 6:52:40 PM

Outils et méthodologieDéveloppement orienté IPs

Pour l’utilisateur:Utiliser les IPs existantes

• a-t-elle la bonne fonctionnalité?• comprendre comment elle fonctionne

Développer ses propres IPs• maitriser le protocole de bus• utiliser la méthodologie prévue pour s’intégrer à l’outil• utiliser des canevas et des assistants dans l’outil

20/23 SE303 Tarik Graba P1-2016/2017

Page 31: SoC sur FPGA - Systèmes programmables sur FPGA · SoC sur FPGA - Systèmes programmables sur FPGA Author: Tarik Graba Created Date: 10/11/2016 6:52:40 PM

Outils et méthodologieSupport logiciel

Drivers pour interagir avec le matériel• avec un système d’exploitation (OS)• sans système d’exploitation (bare-metal)

Bibliothèques logiciellessystèmes d’exploitation

• temps réel (rtOS)• Linux

21/23 SE303 Tarik Graba P1-2016/2017

Page 32: SoC sur FPGA - Systèmes programmables sur FPGA · SoC sur FPGA - Systèmes programmables sur FPGA Author: Tarik Graba Created Date: 10/11/2016 6:52:40 PM

Outils et méthodologieSupport logiciel

Comme le matériel peut changer:Des outils pour adapter/régénérer les drivers

• BSP: Board Support PackageIntégration dans des environnement connus desdéveloppeurs de logiciels

• IDE: Integrated Development Environment• généralement basés sur Eclipse

22/23 SE303 Tarik Graba P1-2016/2017

Page 33: SoC sur FPGA - Systèmes programmables sur FPGA · SoC sur FPGA - Systèmes programmables sur FPGA Author: Tarik Graba Created Date: 10/11/2016 6:52:40 PM