Chap1 CSE

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 15

14/09/2021

Chapitre 1

Blocs IP et
processeurs
embarqués dans les
FPGA

Année Universitaire 2021-2022

1.Introduction
1.SoC & SoPC

 Un SoC (System on Chip) peut comprendre de la mémoire, un ou


plusieurs microprocesseurs, des périphériques d'interface, ou tout
autre composant nécessaire à la réalisation de la fonction attendue
comme des dispositifs mécaniques, biologiques ou encore des
circuits radio.

 Quand les fonctionnalités d’un système peuvent être implantées


dans des composants logiques programmables de type FPGA. On
parle alors de système SoPC (System on Programmable Chip).

M. FEKI - Conception des systèmes embarqués 2

1
14/09/2021

1.Introduction
2. Design Reuse

 La complexité des systèmes sur puce augmente plus vite que la


productivité des concepteurs.

 Il devient alors difficile de concevoir un SoC de A à Z.

M. FEKI - Conception des systèmes embarqués 3

1.Introduction
2. Design Reuse

 Pour pouvoir suivre les besoins du marché et respecter les «time to


market», il faut réutiliser des parties déjà conçues. Il s’agit du
«Design Reuse».

 Une entreprise ne peut pas toujours concevoir seule tous les blocks
dont elle a besoin. L’utilisation de blocks développés par autrui peut
s’imposer.

 Ces blocks sont considérés comme une propriété intellectuelle et


bénéficient d’une protection juridique : « Intellectual Property : IP».

M. FEKI - Conception des systèmes embarqués 4

2
14/09/2021

2. IP blocks
1. Généralités

 Dans la littérature, ces blocs de propriété intellectuelle peuvent


être désignés par différents termes : IP, IP blocks, IP cores, System-
Level Blocks (SLB), Macros, System Level Macros (SLMs) ou encore
Virtual Components (VCs).

 Les blocs IP pour la conception de puce représentent l’équivalent


d’une librairie pour la programmation. Ainsi, les IP sont disponibles
comme des cellules de bibliothèque proposant sous forme de
«boites noires» des fonctions complexes entièrement simulables.

 Un SoC ou un SoPC peut être défini comme étant un ensemble de


blocs IP intégrés sur une même puce avec au moins un processeur
comme élément de traitement.

M. FEKI - Conception des systèmes embarqués 5

2. IP blocks
1.Généralités

 Les blocks IP permettent un gain en coût et en temps de


conception mais il faut s’assurer qu’il est entièrement portable
c’est-à-dire qu’ils sont en mesure d’être insérés dans n’importe quel
technologie avec n’importe quelle méthode de conception.

 Pour répondre à cette contrainte de portabilité, il est nécessaire


d’utiliser un même formalisme de modélisation pour une
adaptation et une intégration rapide du bloc par rapport au
système. Ainsi, la description complète du bloc IP se fait au niveau
haut (structurelle et/ ou fonction) principalement en langage VHDL,
Verilog et langage C.

M. FEKI - Conception des systèmes embarqués 6

3
14/09/2021

2.IP blocks
1. Généralités

 Un sous-système IP est
un ensemble de blocs IP.

 Dans deux sous-systèmes


IP différents, on peut
utilisé le même bloc IP
(exemple dans les sous-
systèmes IP 1 et 2, on
retrouve les blocs A et C).
Bloc IP réutilisé dans un sous-système
IP réutilisable

M. FEKI - Conception des systèmes embarqués 7

2. IP blocks
2. Classification
 Soft IP : disponible dans un langage de description matérielle
(VHDL, Verilog..). L’utilisateur est responsable de la synthèse et des
masques .
(+) indépendant de la technologie (portable)
(+) flexible
(-) difficile à protéger
(-) le travail d’optimisation peut être long

 Hard IP : disponible sous forme de dessin de masques, fortement


optimisé et non modifiable.
(+) facile à protéger (boite noire avec des Entrées/Sorties)
(+) performance
(-) impossible de changer de cible

M. FEKI - Conception des systèmes embarqués 8

4
14/09/2021

2. IP blocks
2. Classification
 Firm (semi-hard) IP : netlist qui peut être simulée et changée en cas
de besoin.
(+) flexible
(-) dépend de la technologie
(-) difficile à protéger

M. FEKI - Conception des systèmes embarqués 9

2. IP blocks
2. Classification

(a) Soft IP

(b) Firm IP

(c) Hard IP

M. FEKI - Conception des systèmes embarqués 10

5
14/09/2021

2. IP blocks
3. Types

 Processeurs et microcontrôleurs
Exemples : processeur RISC ou CISC 8, 16, 32 ou 64 bits,
microcontrôleur PIC, ..
 DSPs
Exemples : traitement de signal, filtres numériques , décodeurs,…
 Composants de traitement spécialisé
Exemples : cryptage des données, multimédia ,…
 Contrôleurs de mémoire et de bus
Exemples : SDRAM, contrôleur USB, Contrôleur PCI, UART, ..
 Réseaux
Exemples : contrôleur Ethernet, contrôleur ATM

M. FEKI - Conception des systèmes embarqués 11

2. IP blocks
4. Fournisseurs
 Sociétés d’études et de conception
Exemples : DSP Group (IP pour les télécoms), ARM (processeurs
RISCs),…
Nature des IPs : IPs soft et hard
 Sociétés de semi-conducteurs
Exemples : Xilinx, Altera, Motorela, Lucent, STM,…
Nature des IPs : IPs soft et hard
 Fournisseurs d’outils de CAO
Exemples : Mentor Graphics, Cadence, Synopsys, …
Nature des IPs : IPs Soft uniquement
 Des passionnés
Exemple : http://www.opencores.org
Nature des IPs : IPs Soft uniquement
M. FEKI - Conception des systèmes embarqués 12

6
14/09/2021

2. IP blocks
5. Exemple d’IP: bloc IP du PIC 16F84

 Présentation du composant : PIC 16F84

- Brochage :

VSS et VDD : broches d'alimentation (3 à 5,5 V).


OSC1 et OSC2 : signaux d'horloges.
CLKIN : peut être connectée à une horloge externe.
MCLR : Reset.
RA0, ..., RA4 : 5 entrées/sorties du port A.
RB0, ..., RB7 : 8 entrées/sorties du port B.
T0CKI : Entrée d'horloge externe du timer TMR0
(voir architecture interne du composant)
INT : entrée d’interruption externe.

M. FEKI - Conception des systèmes embarqués 13

2. IP blocks
5. Exemple d’IP: bloc IP du PIC 16F84
- Structure interne:

M. FEKI - Conception des systèmes embarqués 14

7
14/09/2021

2. IP blocks
5. Exemple d’IP: bloc IP du PIC 16F84
 Présentation du IP associé : soft IP gratuit et disponible sur
http://www.opencores.org .
 Entité du IP :

M. FEKI - Conception des systèmes embarqués 15

2. IP blocks
5. Exemple d’IP: bloc IP du PIC 16F84E

 Remarque sur le bloc IP :


Des différences existent entre le composant réel et le bloc IP (ceci
aura une incidence sur le comportement de l’application) :
- Ports A et B identiques (sur 8 bits);
- Entrée TOCKI séparée du port A;
- Entrée d’interruption INT séparée du port B;
- Mémoire EEPROM n’existe pas (voir structure interne).

M. FEKI - Conception des systèmes embarqués 16

8
14/09/2021

2. IP blocks
5. Exemple d’IP: bloc IP du PIC 16F84
 Utiliser le bloc IP du PIC pour réaliser un compteur (ou un chenillard à
8 diodes)

Cette application permet de tester le


module TMR0 du bloc IP. On rappelle
que ce module est un compteur qui
peut être incrémenté en permanence
soit par l’horloge interne (mode timer)
soit par l’horloge externe (mode
compteur).

17

3. Processeurs embarqués
1. Généralités

 Lorsque l'on conçoit un système numérique complexe, on met en


œuvre généralement un processeur embarqué. Les FPGA récents
contiennent un ou plusieurs microprocesseurs embarqués.

18

 Le processeur embarqué allie la souplesse du logiciel à


l’accélération du temps d’exécution du matériel.

M. FEKI - Conception des systèmes embarqués 18

9
14/09/2021

3. Processeurs embarqués
1. Généralités

 Il faut noter que les processeurs embarqués comme leurs cousins


du grand public sont de plus en plus puissants et sont de plus en
plus communicants.

 Ce processeur embarqué est :

– Soit un bloc IP : on parle de processeur softcore;

– Soit déjà implanté


19 dans le circuit électronique en « dur » : on
parle de processeur hardcore.

M. FEKI - Conception des systèmes embarqués 19

3. Processeurs embarqués
2. Processeur Hardcore

 Le processeur hardcore est généralement plus performant que le


softcore. Les leaders dans ce domaine sont ARM et MIPS.

M. FEKI - Conception des systèmes embarqués 20

10
14/09/2021

3. Processeurs embarqués
2. Processeur Hardcore

M. FEKI - Conception des systèmes embarqués 21

3. Processeurs embarqués
2. Processeur Hardcore

Xilinx Zynq 7000

M. FEKI - Conception des systèmes embarqués 22

11
14/09/2021

3. Processeurs embarqués
3. Processeur Softcore

 Un processeur softcore est réalisé à partir de la logique


programmable présente sur le FPGA. Ainsi, le nombre de
processeurs qu’on peut intégrer dépend des ressources du
composant utilisé en logique programmable.

M. FEKI - Conception des systèmes embarqués 23

3. Processeurs embarqués
3. Processeur Softcore

 Le processeur softcore peut être libre : il est décrit en langage de


description de matériel (VHDL, Verilog) dont le code source peut
être librement distribué et implanté dans n’importe quel circuit
programmable FPGA. On est alors indépendant du type de circuit
FPGA.

 Le processeur softcore peut être propriétaire : il est distribué par


exemple sous forme d’une netlist pour être implantée dans un
circuit FPGA. Il est généralement lié à un fondeur de circuit FPGA
particulier (comme Altera ou Xilinx). On ne peut pas l’utiliser dans
un circuit FPGA autre que celui pour lequel il est prévu. On a donc
ici une boîte noire (ils sont des blocks IP semi-hard).

M. FEKI - Conception des systèmes embarqués 24

12
14/09/2021

3. Processeurs embarqués
3. Processeur Softcore
 On trouvera principalement au niveau des processeurs softcore
libres :
- Le processeur Leon http://www.gaisler.com/index.html.
- Le processeur OpenRisc http://www.opencores.org
- Le processeur F-CPU http://www.f-cpu.org.
- Autres processeurs : clones de 6800, 68HC11, 68000, PIC :
http://www.opencores.org

 On trouvera principalement au niveau des processeurs softcore


propriétaires :
- Le processeur NIOS et NIOS II d'Altera http://www.altera.com.
- Les processeurs Picoblaze et Microblaze de Xilinx
http://www.xilinx.com.

M. FEKI - Conception des systèmes embarqués 25

3. Processeurs embarqués
3. Processeur Softcore

 Ces processeurs Softcore sont généralement des processeurs 32 bits


ayant une architecture de type Harvard avec un jeu d’instructions
réduit RISC.

 Par rapport au hardcore, les softcore ont généralement des


performances moindres et sont moins efficaces en termes
d'utilisation des ressources.

 Un même FPGA peut abriter plusieurs processeurs hardcores et


softcores.

M. FEKI - Conception des systèmes embarqués 26

13
14/09/2021

3. Processeurs embarqués
4. Processeur hardcore / softcore : critères de choix

Le choix d’un processeur pour le SoPC peut se faire selon différents


critères.

 Processeur hardcore :
- pour ses performances au détriment de la flexibilité ;
- pour une consommation d’énergie plus réduite;
- pour un comportement plus prédictible;
- pour implémenter un complexe système d’exploitation temps réel.

 Processeur softcore :
- pour sa flexibilité de mise à jour au détriment de performances
moindres que le précédent;

M. FEKI - Conception des systèmes embarqués 27

3. Processeurs embarqués
4. Processeur hardcore / softcore : critères de choix

- pour le fait qu’on peut rajouter des softcores dans un FPGA après
qu’il soit conçu;
- pour la portabilité vers n’importe quel circuit FPGA (si c’est un
softcore libre);
- pour la possibilité de migrer vers un circuit de type ASIC en cas
d’une production en grande série.

 Généralement, on privilégie les processeurs softcore pour


s'affranchir des problèmes d'obsolescence et pour pouvoir
bénéficier facilement des évolutions apportées en refaisant une
synthèse.

M. FEKI - Conception des systèmes embarqués 28

14
14/09/2021

Processeurs embarqués
5. Conception conjointe
 Les SoPC peuvent intégrer un ou plusieurs processeurs softcore ou
hardcore avec ses périphériques au sein d’un unique FPGA.

 La conception conjointe Matériel/Logiciel propose d’associer au sein


d’un même système:
- un ou plusieurs cœurs de processeurs embarqués softcore ou
hardcore;
- des blocs matériels dédiés: blocs IP costumisable ou des blocs IP
propriétaires.

 La conception conjointe permet de développer une partie du SoPC


(partie matérielle constituée des blocs IP) avec un langage de
description matériel (VHDL) et une autre partie logicielle à l’aide du
langage assembleur ou le langage C/C++ (qui sera exécutée par le
processeur embarqué).
M. FEKI - Conception des systèmes embarqués 29

Processeurs embarqués
5. Conception conjointe

 Le code exécutable
correspondant à l’application
logicielle déployée sur le ou
les processeurs peut être soit
mémorisé dans une mémoire
interne au FPGA, soit dans une
mémoire externe.
Assembleur/
C / C++
VHDL
 La répartition entre le
développement matériel et le
développement logiciel étant
dépendant des choix du
concepteur.

30

15

Vous aimerez peut-être aussi