Académique Documents
Professionnel Documents
Culture Documents
AU 2021/2022
Plan
-2 -
Chapitre 1
-3 -
Evolution technologique
Progrès réalisés en technologie d’intégration
4
Evolution technologique
2005 2008 2011 2014 2017 2020
Technologie (mm) 90 65 45 30 20 15
Taille des puces (mm2) 246 246 246 246 246 246
6
Processeurs embarqués
o En 1999, une vente de processeurs embarqués de
1,3 milliards de processeurs 4 bits
1,4 milliards de processeurs 8 bits
375 millions de processeurs 16 bits
127 millions de processeurs 32 bits
3,2 millions de processeurs 64 bits.
o En 2004:
14 milliards de processeurs pour l’embarqué
(microprocesseur, microcontrôleur, DSP, etc.)
260 millions de processeurs PC.
Moins de 5% des processeurs vendu sont pour les PC,
95% pour l’embarqué
Prix moyen d’un processeur 6$ alors qu’un processeur PC
coute 300$.
7
Processeurs embarqués
Processeurs embarqués
personnalisés Programmables
généralistes
Processeurs RISC
Petites instructions simples, toutes de même taille, ayant toutes le
même temps d’exécution.
Accélération en pipelinant l’exécution (entre 3 et 7 étages de
pipeline pour une instruction).
Code plus simple à générer, mais moins compact.
Tous les microprocesseurs modernes sont de types RISC:
SPARC, MIPS, ARM, PowerPC...
9
Microcontrôleurs
Un microcontrôleur est un circuit intégré qui rassemble le
processeur, les mémoires, les temporisateurs, les convertisseurs
CAN et les interfaces d’entrées/sorties.
Caractéristiques : haut degré d'intégration, faible consommation
électrique, une vitesse de fonctionnement plus faible et un coût
réduit par rapport aux processeurs à usage général.
Exemples de microcontrôleurs : Intel 8085, ARM Cortex, Atmel,
MSP430, PIC, STM32…
Microcontrôleurs PIC16F
- Fréquence 20 Mhz
- 14,3 Ko de ROM,
- 368 octets de RAM,
- 256 octets d’EEPROM,
- 33 entrées sorties,
- Un CAN,
- Trois timers,
- 15 sources d’interruptions
- Une USART et deux comparateurs
10
Processeurs personnalisés : ASIC
Un ASIC est un circuit intégré propre à une application.
Il regroupe sur le même circuit un grand nombre de
fonctionnalités sur mesure (full custom): processeurs, mémoires
et interfaces.
Caractéristiques : coûts de production réduit, contrôle total du
produit, un coût et délai de développement élevés.
Jeu d’instruction et ensemble des ressources adaptés à
l’application
- Meilleurs rapports MIPS/mW et MIPS/mm2 que RISC et DSP
- Mais compilateur plus délicat, time-to-market plus long
qu’avec des processeurs standards
Fabricants : Intel, STMicroelectronics, Honeywell, Microchip...
11
Processeurs personnalisés : ASSP
Composant complexe qui réalise une fonction spécifique
(compression vidéo, modem).
- Un ASSP pour le GSM issu d'un fabricant unique est utilisé comme circuit
de base par différents fabricants de téléphones portables.
Un ASIC est conçu pour un besoin plus particulier qu'un ASSP.
Caractéristiques :
- Utilise des librairies de cellules primitives : Portes AND, OR,
registres, SRAM, etc.
- Effort de conception réduit.
12
Circuits prédiffusés
Gate Array
Réseaux de transistors déjà implantés dans le silicium, mais non
interconnectés. C’est l’interconnexion des transistors qui
personnalise le circuit en fonction de l’application visée.
Sea of Gates
Circuit composé de blocs contigus de transistors
Les connexions passent entre les blocs ou par-dessus
13
Circuits programmables
Un circuit logique programmable est un circuit intégré logique qui
peut être reprogrammé après sa fabrication.
La programmation du circuit définit les connexions faites entre
portes logiques.
L'intérêt est qu'une même puce peut être utilisée dans de nombreux
systèmes électroniques différents.
15
Architecture des FPGA
Chip FPGA
Zone d’interconnexions
configurable
Bloc d’Entrée/Sortie (IOB)
Bloc logique
configurable (CLB)
Bitstream en série
16
Architecture des FPGA
Blocs d ’entrées/sorties IOB configurables
• Entrée, sortie ou les deux, mémorisation dans une
bascule D
• niveaux logiques LVTTL, LVCMOS, … 3.3V, 2.5V,…
• pull-up ou pull-down interne sur les entrées
17
FPGA : Bloc d’entrée/sortie (IOB)
IO driver
Bascules Multiplexeurs
Input Output Block
Mémorisation
de la sortie
Mémorisation
de l ’entrée
Exemple: Utilisation
de la table LUT
comme additionneur
complet
20
FPGA : Principe de fonctionnement
d’une cellule logique de base
Bascule Mux
4 entrées LUT D Q
Ck Positionné lors
SRAM de 16 de la
bits (Look Up CE configuration
Table)
Mémorisation
du résultat
Fonctionnement purement combinatoire
Fonctionnement avec mémorisation du résultat
21
FPGA : Look Up Table (LUT)
0
1
0
4 entrées LUT 1 sortie Sortie
24 bits
22
FPGA : Bloc CLB du Spartan3
Spartan3 XC3S200
23
MPSoC
Demande croissante pour le calcul haute performance dans
plusieurs secteurs de marché tels que le multimédia, les
communications, l’aérospatiale, l’imagerie médicale et la robotique :
Intégration des MPSoC (Multi-Processors System-on-Chip).
Applications
MPSoC
- 24 -
MPSoC : Définitions
Les MPSoC sont la dernière incarnation de la technologie
d'intégration à très grande échelle VLSI : Ce sont des systèmes
sur puce qui contiennent plusieurs processeurs.
En pratique, la plupart des SoC sont des MPSoC car il est trop
difficile de concevoir un système sur puce complexe sans utiliser
plusieurs processeurs.
25
Exemples de MPSoC
Emotion Engine (Sony Playstation 2)
- 3 processeurs : CPU avec 2 vector processing
units
28
Exemples d’architecture MPSoC
Processeur Dual Core Diopsis 740
Un processeur Core ARM7TDMI avec 32 Ko de mémoire SRAM
intégrée de fréquence 50 MHz.
Un mAgic DSP pour les applications d’audio et de communication
de fréquence 100 MHz
29
Chapitre 3
- 30 -
Introduction
Un système embarqué est souvent formé par une collection de circuits
(ASIC, IP, ADC, mémoires…) et de logiciels (code exécutable : taches,
Objets…) en étroite intéraction.
Intégration Intégration
Test Test
Validation Validation
Systèmes
Embarqué SoC
31
Propriétés d’un Système numérique
Les propriétés d’un système peuvent être spécifiés selon trois domaines:
Comportemental (Que fait il?): Information fonctionnel du système
Structurel (Quels sont les différents sous-systèmes et comment sont-
ils liés?): Information schématique.
Physique (Taille, forme et placement physique?) Information
géométrique du système .
Pour chaque domaine il y a quatre niveaux d’abstraction
Spécification
Architecture
Structurel Comportemental
Logique
Circuit
33
Niveaux d’abstraction
Abstraction
− Eliminer des détails, focaliser sur un point de vue du système
− Travailler à différentes échelles de complexité et de temps
34
Niveaux d’abstraction
Type Eléments de base Conception
1 2 Conception électrique
Composants
discrets Optimisation des caractéristiques électriques
1 2
Conception logique
SSI 2 2 2
1 1 1
Small Scale 3 3 3 Optimisation des équations logiques
Integration
Conception numérique
MSI Full
Registre Mux Optimisation des traitements
Middle Scale Adder
Integration
Conception architecturale
LSI UAL
Séquenceur
Large Scale Choix des fonctionnalités
Integration
Conception fonctionnelle
VLSI
Very Large E/S CPU E FPGA S E ASIC S Optimisation des implémentations
Scale matérielles et logicielles
Integration
Rom Buff. E/S Conception système
ULSI Cœur DSP MPEG
Cœur RISC Ram
Optimisation conjointe des implémentations
Ultra Large
Scale Buff. E/S Analog. matérielles et logicielles
Integration
- 35 -
Le Codesign
Nécessité d’une méthodologie de conception conjointe
Systèmes de grande complexité à intégrer.
Capacité d’intégration croissante.
Temps de conception de plus en plus court (réduire le délai
de mise sur le marché Time-to-Market)
Objectifs
Flexibilité de conception : apporter des modifications lors
de la conception en raison de contraintes ou changement
d’orientations.
Limiter les erreurs de conception : le codesign évite les
mauvaises surprises lors de la phase d’intégration des
différents sous systèmes et les tests du système global.
Utiliser les outils de CAO pour les tâches répétitives et
laborieuses : aboutir à des solutions moins couteuses et
plus performantes.
Rester indépendant le plus longtemps possible vis à vis de
la technologie. 36
Le Codesign
La tendance actuelle pour la conception des systèmes
hétérogènes est de considérer aussi bien la partie matérielle que
la partie logicielle dès les premières phases de conception.
Partitionnement HW/SW
39
Spécification et Modèles
o Choix du modèle de spécification en fonction du type de
l'application
40
Machine à états finis
Une machine à états finis (FSM Finite State Machine) est un
modèle mathématique de calcul utilisé dans de nombreux
domaines: conception de programmes informatiques, protocoles de
communication, contrôle des processus, ...
Une FSM est définie par des états et des transitions (conditions)
41
Machine à états finis
Un état est la description de la configuration d’un système en
attente d’exécuter une transition.
Une transition est un ensemble d’actions à exécuter lorsqu’une
condition est remplie ou lorsqu’un évènement est reçu.
Exemple : une chaîne audio peut être dans l’état « CD » et recevoir
l’évènement « suivant ». Elle passe alors à la piste suivante du CD.
42
Machine à états finis
Un exemple très simple d’un mécanisme que l’on
peut modéliser par une FSM est un portillon d’accès.
Un portillon, utilisé dans certains métros ou dans d’autres
établissements à accès contrôlés est une barrière avec trois bras
rotatifs à hauteur de la taille.
Un portillon peut être vu comme un automate fini à deux états :
verrouillé (locked) et déverrouillé (unlocked).
Deux "entrées" peuvent modifier l’état : la première si l’on insère
un jeton dans la fente (entrée jeton) et la deuxième si l’on pousse
lebras (entrée pousser).
Dans l’état verrouillé, l’action de pousser n’a aucun effet et si on
insère un jeton on passe de l’état verrouillé à l’état déverrouillé.
Dans l’état déverrouillé, ajouter des jetons supplémentaires n’a
pas d’effet. Mais dès qu’un usager tourne le bras du portillon, donc
fournit un pousser, la machine retourne à l’état verrouillé.
43
Machine à états finis
État courant Entrée État suivant Sortie
verrouillé jeton déverrouillé Déverrouille le portillon
verrouillé pousser verrouillé Rien
déverrouillé jeton déverrouillé Rien
déverrouillé pousser verrouillé Verrouille le portillon
Représentation
d’une FSM par un
graphe orienté.
45
Partitionnement
L’objectif du partitionnement est de regrouper les variables et les
comportements fortement dépendants, puis de décider pour
chaque regroupement le type de réalisation : logicielle ou
matérielle.
Les performances réelles de la réalisation ne peuvent être
connues qu’après l’étape de co-simulation.
» Afin de permettre le partitionnement, des estimateurs de
performance rapides et précis doivent prédire les
performances et le coût d’une réalisation architecturale.
La répartition logiciel/matériel peut varier durant la vie de l’objet.
o Temps de marché
Solution logicielle
o Spécifications mouvante
o Contraintes de performances : taille, vitesse, prix, énergie Solution matérielle
o Spécifications encore incertaines avec FPGA
o Exigences de performances Solution matérielle
o Spécifications Figées avec ASIC
- 46 -
Synthèse
Cette étape regroupe les synthèses de la partie logicielle, de la
partie matérielle et des interfaces et protocoles de
communication.
Synthèse logicielle : correspond à la conversion d’une
description décrite dans un langage fonctionnel en un code
exécutable par un processeur.
- 47 -
Synthèse logicielle
Phase de développement
Phase de vérification
Asm.
C File C File
File
Compiler Assembler
Debugger
Linker
Library
Profiler
Exec.
File
Synthèse matérielle
Niveau
d’abstraction
Spécification
comportementale
Synthèse Description
architecturale : Synthèse
comportementale
catapullt C Librairie de composants
architecturale
Outils de synthèse
logique : VHDL. Description RTL
Synthèse
logique Librairie de portes
Description logique
Synthèse (portes)
Librairie de transistors
physique
Fiabilité des
prédictions
- 49 -
Layout
Chapitre 3
- 50 -
Processeurs FPGA
Le processeur fourni par Altera s’appelle le NIOS et celui fourni
par Xilinx s’appelle le MicroBlaze.
Les deux processeurs sont des softcores 32 bit à jeu
d’instructions réduit RISC.
Architecture HARVARD, les instructions et les données stockées
dans la mémoire sur puce (on chip) du processeur sont
accessibles simultanément en un cycle d’horloge.
Implantation softcore peut être reconfigurée contrairement à un
processeur dit hardcore qui ne peut être modifiée
Softcore MicroBlaze
51
Lire I2C
la température T
Capteur
HCT01
Lire I2C
L’humidité H
Comparer T
avec valeur seuil
Comparer H
avec valeur seuil
UART Module de
Envoyer Cloud
communications
Delay (1000)
52
Capteur
HCT01
Contrôleur Bus
Composant IP
Lire Lire
la température T L’humidité H
Mise à jour
possible de
l’algorithme
Comparer T Comparer H
avec valeur seuil avec valeur seuil
Module de
Envoyer Communications Cloud
Composant IP
FPGA 53