Transcript SoC

Module EN212
Systèmes sur puce (SoC)
et
Systèmes sur puce programmable (SoPC)
Année 2012-2013 / Camille LEROUX
1
Objectifs du module
Comprendre la finalité, les enjeux et les contraintes lors
de la conception d’un système sur puce (SoC)
Connaître les options architecturales et technologiques
qui s’offrent à un concepteur de systèmes numériques
Savoir situer la frontière entre le matériel et le logiciel
Concevoir un système hétérogène simple (matériel +
logiciel)
Implémenter le système sur un circuit reconfigurable
(SoPC)
Réf: Emmanuel Casseau, Michel Auguin
2
Déroulement du module
Cours 1h20 (Généralités sur les SoC)
Recherche et analyse de SoC + Présentation : 2x1h20
3 TP de 3h : développement sur une plateforme SoPC
simple
Evaluation : présentation + rapport de TP
3
Evolution des circuits intégrés
numériques
• Tube à vide
• 1904: A. Fleming, Tube à vide
Diode
• 1906: Lee De Forest, Triode
• 1946: Premier calculateur électronique
ENIAC (Electronic Numeral Integrator and
Calculator)
- 17468 tubes électroniques,
- 1500 relais,
- 10m X 15m
- 30 tonnes,
- 150 KW,
- 5000 additions par seconde.
4
Evolution des circuits intégrés
numériques
• Transistor à pointe
• 1947: Bell Lab,
• Bardeen, Brattain, Shockley. Nobel
en 1958
• 1961 Premier circuit intégré
monolithique
- Set/Reset Flip-Flop
- 4 transistors
5
Evolution des circuits intégrés
numériques
• 1967 Unité arithmétique avec
Accu 8 bit
Technologie MOS
• 1971 Intel 4004 Micro-Proc
Bus 4 bit, F=108 kHz, 2300 transistors
6
Evolution des circuits intégrés
numériques
• 1974: Intel 8080
6000 transistors, F=2MHz,
techno 2um
En 1975: Paul Allen and Bill
Gates compilateur BASIC
• 1979: Motorola 68000
CISC microprocesseur
7
Evolution des circuits intégrés
numériques
• 1993 Intel Pentium
Parallelisme, graphique, audio,
• 2009: Intel Core i7
8
Définition d’un SoC
Système sur puce, System on Chip (SoC): Système électronique complet
entièrement intégré dans un unique composant.
C’est un circuit regroupant un ensemble de blocs fonctionnels (µP,
mémoires, autres périphériques,…)
SW: OS, algorithmes
HW: fonctions analogiques (CAN, CNA, PLL, RF), fonctions
numériques
En Bref, un SoC, c’est COMPLEXE !
9
Où sont les SoC ?
10
Exemple : SoC pour téléphonie 3G
11
Pourquoi un SoC ?
Systèmes à base de
composants discrets
Systèmes intégrés
sur une seule puce
Court (quoique)
Long
Coût de
développement
Faible
Elevé
Densité d’intégration
Faible
Elevé
Performances
Faible
Elevées
Proportionnel au
nombre d’unités
Ordonnée à l’origine
Poids
Elevé
Faible
Conso
d’énergie/puissance
Elevé
Faible
Temps de conception
Coût de fabrication
Augmenter les
fonctionnalités
Intégrer
d’avantage
Réduire le coût
12
Que trouve t-on dans un SoC ?
Un SoC peut-être composé de:
- Cœur(s) de processeur (avec jeu d’instruction)
- Généralistes (ARM,Intel,…)
- Dédiés à un domaine d’application (GPU, Processeur Video, DSP,…)
- Mémoires (RAM,ROM,flash,…)
- Blocs dédiés/accélérateurs matériels (FFT, contrôleur USB, codec video,…)
13
Conception d’un SoC
14
Compétences nécessaires pour concevoir
un SoC
• Niveau système:
• Connaissances du domaine applicatif
• Hardware / software
• Numérique / analogique
• Haut débit / bas débit
• Niveau circuit:
• Programmation de processeurs
• Numérique et analogique
• IP disponibles
• Synthèse / placement-routage
• Validation
• Vérification
• Fabrication
• Test
Quoi faire ?
Sous quelles contraintes ?
Comment faire ?
15
Du concept au circuit
?
La conception d’un système complexe est une suite de choix guidés par les
contraintes de l’application.
Le système doit atteindre les performances escomptées pour un coût
minimum, un time to market réduit et une faible consommation (systèmes
embarqués)
•
•
•
•
•
•
•
Quels traitements / algos ?
Quelle(s) architecture(s) ? µP/archi dédiée
Quelle cible technologique : ASIC/FPGA
OS/pas d’oS ?
Communication inter ? Intra ?
Quel débit ? Conso ?
…
16
Flot de conception (classique) top-down
Spécification
système
Pour appréhender un problème complexe,
il faut définir une méthodologie.
Divide and conquer
Modélisation
système
Différents niveaux d’abstraction
Partitionnement
HW/SW
Conception HW
Conception SW
Intégration
17
Spécification
• Tenir compte des contraintes du contexte applicatif (automobile, avionique,
téléphonie, grand public,…)
• Quelques contraintes: sécurité de fonctionnement, prix de développement,
performance (puissance de calcul), consommation d’énergie, sureté de
fonctionnement, sécurité (virus/piratage), conditions de fonctionnement
(humidité, vibration, température)…
•
•
•
•
•
Analyse des besoins sous contraintes
Analyse des fonctions sous contraintes
Analyse des algorithmes sous contraintes
Etude de faisabilité
Planification
18
Modélisation système
• Découpe fonctionnelle avec ou sans notion de temps d’exécution
• Raffinement algo en fonction de l’appli (virgule fixe, flottante, dynamique
des données, …)
• Simulation/évaluation des fonctionnalités (SNR, qualité des traitements)
• Langage: C/C++/Java/matlab
19
Partitionnement HW/SW
•
•
•
•
But: Optimiser la répartition matérielle/logicielle des fonctions du système.
Comment: Tirer profit de la complémentarité HW/SW.
Quels outils : A la main (expérience), de manière automatisée
De manière TRES générale:
• Beaucoup de calcul => HW
• Beaucoup de contrôle => SW
SW
HW
Performance

Consommation


Intégration
Coût de production
Flexibilité



Protection industrielle
Coût de développement

Temps de développement

Prise de risque


20
Conception HW (1)
HDL ou
schéma
Test
Bench
Vérification
fonctionnelle
Synth. Lib.
Synthèse
Constraints
Analyse Timing
statique
Gate netlist
Timing lib.
Netlist portes
Simulation
Pre-layout
NON
OK
OUI
Implémentation Backend
21
Conception HW (2)
Floor
Planning
Synth. Lib
Physical
Lib.
Timing Lib.
Synthèse
physique
Placement,
Routage et DRC
Lib. Techno.
Test
Bench
Post-Layout
simulation
22
Conception HW dans la vraie vie
23
Conception HW dans la vraie vie
24
Conception HW dans la vraie vie
25
Conception SW
•
•
•
•
La partie logicielle est développée pour la/les cibles(s) choisies.
µP/µC embarqué ou non.
Le système intègre un OS ou pas.
Exploration du parallélisme de tâches en adéquation avec
l’architecture ciblée.
• Détermination de l’ordre d’exécution.
• Développement des drivers pour les périphériques (interface
SW/HW).
• Nécessité d’avoir un modèle des processeurs utilisés pour la
simulation.
26
Pourquoi est-il difficile de concevoir un
SoC ?
• Antagonisme des performances de l’algorithme et des performances du
circuit (équipes différentes, vocabulaire différent)
• Difficulté d’estimer les performances du circuit avant de l’avoir réaliser
• Grande variété des langages de modélisation
• Hétérogénéité à tout point de vue:
• Niveaux d’abstraction
• Langages de modélisation
• Equipes/compétences
• Technologie d’intégration
• …
• Evolution des flots de conception pour prendre en compte ces difficultés
• Approche transversale, unification des langages de modélisation, des
environnements de simulation (SystemC, SystemVerilog, Bluespec…),
estimation anticipée des perf/coût du circuit
• CODESIGN
27
Les clefs de la réussite ?
• L’expérience avant tout
• Parfaite connaissance des outils
• Appliquer un flot de conception sans surprise
• Stratégie de spécification
• Stratégie de découpe architecturale
• Stratégie de modélisation
• Stratégie de validation/vérification/test
• Stratégie d’horloge
• Stratégie de codage RTL
• Stratégie de synthèse
• Stratégie de conception au niveau physique
• Stratégie de fabrication
• …
28
Mais surtout…
VERIFIER, VERIFIER, VERIFIER, VERIFIER, VERIFIER, VERIFIER,
VERIFIER, VERIFIER, VERIFIER, VERIFIER, VERIFIER, VERIFIER,
VERIFIER, VERIFIER, VERIFIER, VERIFIER, VERIFIER, VERIFIER,
VERIFIER, VERIFIER, VERIFIER, VERIFIER, VERIFIER, VERIFIER,
VERIFIER, VERIFIER, VERIFIER, VERIFIER, VERIFIER, VERIFIER,
VERIFIER, VERIFIER, VERIFIER, VERIFIER, VERIFIER, VERIFIER,
VERIFIER, VERIFIER, VERIFIER, VERIFIER, VERIFIER, VERIFIER,
VERIFIER, VERIFIER, VERIFIER, VERIFIER, VERIFIER, VERIFIER,
VERIFIER, VERIFIER, VERIFIER, VERIFIER, VERIFIER, VERIFIER,
VERIFIER, VERIFIER, VERIFIER, VERIFIER, VERIFIER, VERIFIER,
VERIFIER, VERIFIER, VERIFIER, VERIFIER, VERIFIER, VERIFIER,
VERIFIER, VERIFIER, VERIFIER, VERIFIER, VERIFIER, VERIFIER,
VERIFIER, VERIFIER, VERIFIER, VERIFIER, VERIFIER, VERIFIER,
VERIFIER, VERIFIER, VERIFIER, VERIFIER, VERIFIER, VERIFIER,…
29
Architectures, technologies d’intégration
et
SoPC
30
Options architecturales
SoC
Architecture à jeux
d’instructions
Architecture sans
jeux d’instructions
31
Processeurs généralistes
General Purpose Processor
• Machine numérique capable d’exécuter un
programme (écrit en langage assembleur)
stocké dans une mémoire.
• Examples: Intel Corei7, AMD athlon,
ARM, etc…
• Très flexible MAIS lent et complexe.
• Un grand nombre de variantes
architecturales (RISC, CISC, VLIW,
hyperthreading,etc…)
32
Options architecturales
SoC
Architecture à jeux
d’instructions
Famille
Architecture sans
jeux d’instructions
Processeurs
Généralistes
General Purpose Processor
Intel Corei7
AMD Athlon
Exemples
Archi. VLIW
MicroArchitecture
Archi. RISC
Archi. CISC
33
Application Specific Instruction set Processor
(ASIP)
• Processeur à jeu d’instruction dédié à un
type d’applications (traitement du signal,
contrôle, traitement d’image,…)
• Exemples:
• Digital Signal Processor (DSP)
• Graphical Processing Unit (GPU)
• Microcontrôleur
• Encombrement moyen, vitesse
moyenne, générique dans l’espace
applicatif considéré
• Architecture mémoire spécifique,
• Exploitation du parallélisme en fonction du
type d’application,
• Opérateurs spécifique à l’application
34
Options architecturales
SoC
Architecture à jeux
d’instructions
Famille
Processeurs
Généralistes
General Purpose Processor
Intel Corei7
Processeurs
dédiés à un domaine
d’application
ASIP (Application Specific
Instruction set Processeur)
Microcontôleur
AMD Athlon
Exemples
Architecture sans
jeux d’instructions
DSP (Digital
Signal
Processor)
GPU (Graphics
Processor Unit)
Archi. VLIW
MicroArchitecture
Archi. RISC
Archi. CISC
35
Blocs/machines dédiés
• Système numérique conçu pour exécuter
une seule tâche de manière optimale.
• Le programme est remplacé par une simple
d’état (FSM)
• Exemple:
• FFT, UART, contrôleur USB, FEC
• Compact, rapide, faible consommation
d’énergie, peu ou pas programmable
• Variantes architecturales: archi
parallèle, séquentielle, pipeline,
systolique, etc…
36
Options architecturales
SoC
Architecture à jeux
d’instructions
Famille
Processeurs
Généralistes
General Purpose Processor
Intel Corei7
Processeurs
dédiés à un domaine
d’application
ASIP (Application Specific
Instruction set Processeur)
Machines
dédiés
FFT, N=1024,
Q=8 bits
Microcontôleur
AMD Athlon
Exemples
Architecture sans
jeux d’instructions
DSP (Digital
Signal
Processor)
Codec MPEG4
GPU (Graphics
Processor Unit)
Archi. VLIW
MicroArchitecture
Contrôleur
USB
Archi. pipeline
Archi. Semiparallèle
Archi. RISC
Archi. CISC
Archi.
Séquentielle
37
Système sur puce actuel
(System on chip, SoC)
•
•
Circuit numérique (ou mixte) effectuant une
grande variété de tâches de calculs
Architecture hétérogène
• Processeurs à usage universel (General
Purpose Processor)
• Plus complexe, plus gourmand,
vitesse moyenne, très générique
• Processeurs dédiés à un domaine
d’applications (ASIP)
• Encombrement moyen, vitesse
moyenne, générique dans l’espace
applicatif considéré
• Blocs dédiés à une seule tâche
• Compact, rapide, faible conso, peu ou
pas programmable
38
Quelle cible technologique ?
TOUS les circuits numériques sont un assemblage plus ou moins complexe de
portes logiques élémentaires et de bascules D (et de mémoire).
+
=
39
Options technologiques
SoC
Circuits
configurables
Circuits dédiées
Custom
Circuits
sur mesure
Full
Custom
Semi-Custom
Circuits
précaractérisés
Standard
cell
Circuits
(re)configurables
Circuits
prédiffusés
Gate
array
Sea of
gates
FPGA
CPLD
PLA
40
Système sur puce actuel
(System on chip, SoC)
•
•
•
Circuit numérique (ou mixte) effectuant une
grande variété de tâches de calculs
Architecture hétérogène
• Processeurs à usage universel (General
Purpose Processor)
• Plus complexe, plus gourmand,
vitesse moyenne, très générique
• Processeurs dédiés à un domaine
d’applications (ASIP)
• Encombrement moyen, vitesse
moyenne, générique dans l’espace
applicatif considéré
• Blocs dédiés à une seule tâche
• Compact, rapide, faible conso, peu ou
pas programmable
Technologie d’intégration hétérogène
• Full custom
• Cellules standards
• Section reconfigurable
• etc…
41
SoPC ?
• Système sur puce programmable = Système ayant une architecture
hétérogène implémenté sur un composant reconfigurable
42
Les SOPCs : les systèmes sur puce programmable
L’approche SOC (technologie ASIC) répond aux besoins de performances et d’intégration
mais :
 elle s’adapte difficilement aux besoins d’évolution des systèmes
 elle reste réservée aux grands volumes de production
 la fabrication et le test sont des étapes longues et coûteuses
Les systèmes sur puce reconfigurable répond en partie à ces problèmes :
 développement et prototypage rapide
 composants reconfigurables (quelques ms) à volonté
Mais :
 la densité d’intégration est moindre (~10 Millions de portes)
 les performances atteintes sont moins importantes (consommation élevée)
Différentes notations :
 SOPC (Altera) : System On a Programmable Chip
 SORC (Xilinx) : System On a Reprogrammable Chip
 CSOC : Configurable System On Chip
43
Les SOPCs : les systèmes sur puce programmable
 SoftCore




Flexibilité
Configuration simple
Nombreux périphériques
Migration technologique
aisée
 HardCore
 Performances élevées
 Taille optimale
(full custom)
 Débit assuré
 Architecture courante
44
Les SOPCs : les systèmes sur puce programmable
 SoftCore




Flexibilité
Configuration simple
Nombreux périphériques
Migration technologique
aisée
 HardCore
 Performances élevées
 Taille optimale
(full custom)
 Débit assuré
 Architecture courante
45
Exercice
Recherche et analyse d’un SoC
46
Recherche de SoC
- Groupe de 3 étudiants (=8 trinômes)
- Choix (dans la liste fournie) d’un domaine applicatif, un seul trinôme par
domaine applicatif
- Recherche sur internet d’un SoC hétérogène (HW+SW):
- Analyse de l’application/ domaine applicatif
- Analyse des données constructeur
- Analyse des performances et positionnement du produit sur le
marché
- Préparer une présentation de 3 slides (10 min en tout)
- Présentation lors de la prochaine séance
- Compilation et mise à disposition des slides de tout le monde
47
Liste non-exhaustive des domaines
applicatifs
-
Smart Phone
Console de jeux vidéo
Instrument de musique
Appareil ménager
Tablette / PC
Imprimantes / photocopieurs
Automobile
Avionique
Appareil photo / caméra vidéo
Jouets
Télévision numérique
Box internet
Blue Ray/DVD
GPS
Biomédical
Robotique
…
48
1- Analyse du domaine applicatif et de
l’application
- Spécifier le domaine applicatif et les contraintes associées
- Décrire l’environnement dans lequel est plongé le SoC: Embarqué ?
Haute température ? ,…
- Décrire l’application dans le domaine applicatif Ex: automobile =>
calculateur de bord
- Lister les traitements exécutés sur le SoC
- Donner en justifiant les contraintes prépondérantes pour la conception :
débit, conso., surface, sécurité, température, coût, …
- …
49
2- Analyse des données constructeur
- Donner le schéma bloc du SoC
- Identifier les différentes archi (ISP, dédié, ASIP)
- Identifier la technologie de fabrication (full-custom, cellules
standards,FPGA) en donnant les caractéristiques de la techno (taille
transistor, tension d’alim, conso)
- Déterminer le rôle de chaque bloc par rapport à la liste des traitements à
effectuer.
- ...
50
3- Analyse des performances et
positionnement sur le marché
- Evaluer les performances du produit (débit, conso, fréquence,…)
- Quels sont les innovations par rapport à des produits précédents / aux
concurrents
- Identifier au moins 1 concurrent et faire une comparaison des
performances avec un produit équivalent
- Cout monétaire du SoC
- …
51
Présentation du TP
52
Le SOPC
9
Données Bus de prog.
@ - Bus de données
14
Données - Bus de données
8
Périph. 1
-
Périph. 2
Périph. 3
uC
+
RAM
ROM
programme
11
@ - Bus de prog.
Chaque périphérique est associé avec une adresse
Le uC écrit à une seule adresse à la fois
Ecriture et lecture différenciées
Un seul périphérique peut écrire à la fois dans le uC (pas
de contrôleur de bus mais plus de ressources de
routages sont nécessaires)
53
Projet SoPC
•
•
•
Objectifs:
• TP1: Afficher l’état des interrupteurs sur LEDs
• TP2: Afficher sur l'écran LCD de la carte ce qui a été entré au clavier du PC
Matériel:
• PC hôte
• Carte FPGA Spartan3E
• Liaison Série
Outils
• MPLAB (écriture et compilation du C)
• Xilinx ISE Design suite
• XST (synthèse logique)
• PAR (placement routage)
• IMPACT (configuration du FPGA)
• Hyperterminal (envoi des données entrées au clavier vers la carte)
54
La carte de développement SPARTAN3E
Port
série
FPGA
LEDs
Boutons
poussoir
Ecran LCD
Interrupteurs
55
Conception conjointe
Exemple: Faire clignoter les LEDs
Conception de la partie matériellle
Comment ??? => VHDL + ISE
Conception conjointe
Exemple: Faire clignoter les LEDs
Clignote.c
Conception de la partie logicielle
void main()
{
while (1)
{
wait_ms(250);
LEDS = 170;
wait_ms(250);
LEDS = 85;
}
}
Compilateur C
+ MPLAB
Clignote.hex
ROM_Clignote.vhd
Hex2rom.exe
Ce qui est fourni
•
•
Partie 1
• HEX2ROM.EXE
• Toplevel.vhd
• GIO.vhd
• PIC.vhd
• Broche.ucf
• Wait.c
Partie 2
• UART.vhd
• SOC_header.h
• LCD.h
• LCD.c
58
A vous de jouer !
59