Title: Prsentation PowerPoint
1LES SYSTEMES SUR PUCES PROGRAMMABLES
Une autre façon de concevoir les systèmes
électroniques
2GENESE DES SYSTEMES SUR PUCE
Avant
Maintenant
Système sur circuit imprimé
Maintenant
Implantation dans un ASIC
Implantation dans un FPGA
3AVANTAGES DU SYSTEME SUR PUCE
- Miniaturisation facilitée
- Robustesse améliorée (mécanique,électromagnétique,
radiations) - Consommation électrique en baisse
- Performance en fréquence meilleure
- Temps de mise sur le marché plus court
- Coût global en diminution
4CONTRAINTES DU SYSTEME SUR PUCE
- Méthodologie de développement plus stricte
- Outils informatiques inexistants ou en cours de
développement - pour certaines parties du développement
- Liaison plus forte entre le logiciel et le
matériel - Absence doutil polyvalent pour le
partitionnement - Automatique logiciel/matériel
5TECHNOLOGIES DES COMPOSANTS CIBLES
- gtASIC ( Application Specific Integrated Circuit
) - gtMer de portes ( Gate Array ou Sea Of Gate )
- gtFPGA ( Field Programmable Gate Array )
6ASIC
Avantages gt maîtrise complète des paramètres
temporels et électriques gt système mixte
possible ( analogique/numérique ) gt
flexibilité gt densité très importante
Inconvénients gt coût très élevé gt
technologie très complexe à maîtriser gt
entreprises peu nombreuses ( concurrence faible !
)
7SEA OF GATE
Avantages gt système mixte possible (
analogique/numérique ) gt flexibilité
interne gt grande densité Inconvénients gt
coût important gt technologie des transistors
imposée et fixe gt technologie difficile à
maîtriser
8FPGA
Avantages gt technologie facile à
maîtriser gt temps de développement réduit gt
reprogrammable pour certains ( idéal pour le
prototypage ) gt coût peu élevé Inconvénients
gt performances non optimisées gt
architecture interne entièrement figée gt
système numérique seul ( avec quelques exceptions
)
9TECHNOLOGIE DES FPGA
Plusieurs types gt programmés par RAM (
XILINX et ALTERA ) gt programmés par EEPROM
ou FLASH ( LATTICE et ACTEL) gt programmés
par antifusible ( ACTEL )
Les premiers se prêtent particulièrement bien au
prototypage des Systèmes sur puce programmable
(SOPC)
10LES FPGA DE TYPE SRAM
Caractéristiques dun circuit récent
11ARCHITECTURE INTERNE DUN FPGA
Stratix dALTERA
12ARCHITECTURE INTERNE DUN FPGA
Virtex de XILINX
13CELLULE LOGIQUE DE BASE
Stratix dALTERA
14CELLULE LOGIQUE DE BASE
Virtex de XILINX
15BLOCS MEMOIRE EMBARQUES
Stratix dALTERA
16BLOCS MEMOIRE EMBARQUES
Virtex de XILINX
17LES FPGA POUR LES SOPC
- Grand nombre de cellules logiques
- Quantité de mémoire configurable importante
- Entrées sorties compatibles avec de multiples
normes - Blocs spécialisés ( multiplieurs, PLLs )
- Reprogrammable
Pour réussir à implanter un système dans un FPGA
de manière efficace, il est indispensable de
bien connaître sa structure interne et ses
limites du point de vue des Performances.
18METHODOLOGIE DE DEVELOPPEMENT
Généralités gt systèmes de plus en plus
complexes gt outils évolués et performants
gt méthode spécifique de conduite de projet
gt durée de vérification et de test prépondérante
19FLOT DE CONCEPTION
20SPECIFICATION SYSTEME
- Fonctionnalités attendues
- Performances souhaitées
- Coût du développement
- Calendrier du projet
Dans cette étape, une modélisation du système est
nécessaire pour rester à un niveau dabstraction
élevé. Aucun choix de solution technique ne doit
intervenir à ce stade du projet.
21MODELISATION DES SYSTEMES
Trois types de systèmes gt flot de
données gt contrôle gt mixte
Actuellement, plusieurs méthodes de modélisation
coexistent. Chacune delle est plutôt adaptée à
un type de système, il nexiste pas encore de
méthode universelle.
22CONTENU CAHIER DES CHARGES
- Un système doit être défini de la façon suivante
- Description des entrées sorties
- Description de lenvironnement dans lequel se
trouve le système - Description des fonctionnalités attendues
- Description des caractéristiques électriques et
temporelles - Description des modes de test et de vérification
- Données techniques générales de fonctionnement
Ce travail a une importance capitale en terme de
durée et de coût de développement du système,
nhésitez pas à prendre le temps nécessaire pour
écrire un cahier des charges clair et précis.
23DIFFERENTS NIVEAUX DABSTRACTION
Létude et la conception de système nécessite
lutilisation de plusieurs niveaux dabstraction
afin de faciliter le travail des concepteur lors
des différentes phases du développement. Les
différents niveaux dabstraction peuvent
être niveau 0 description RTL
niveau 1 niveau transfert ( précision
au cycle) niveau 2 niveau transaction
( précision au cycle bus ) niveau 3
niveau fonctionnel avec gestion du temps
niveau 4 niveau fonctionnel sans gestion du
temps
24SPECIFICATION COMPORTEMENTALE
A partir des spécifications systèmes, on extrait
de façon manuelle ou automatique le comportement
du système. Le système global étant complexe, on
le scinde en éléments basiques qui assemblés
permettent de réaliser les fonctionnalités
attendues.
Fonction 1
Fonction 2
système
Fonction 3
Fonction i
Fonction n
25SPECIFICATION COMPORTEMENTALE (2)
- La modélisation fonctionnelle met deux aspects
complémentaires - en uvre qui sont
- structure ( organisation du système )
- comportement ( rôle du système )
- A ce stade encore, la solution étudiée doit être
indépendante de la - technologie et vérifiée par simulation à laide
des nouveaux outils - permettant la simulation système à différents
niveaux dabstraction.
26LES ELEMENTS BASIQUES
- Les éléments basiques doivent avoir les
caractéristiques suivantes - Taille réduite vis à vis du système
- Facilement testable et vérifiable
- Permet la réalisation dune fonctionnalité simple
- Respect des contraintes liées au système
Fonction i
27PARTITIONNEMENT LOGICIEL MATERIEL
- Suivant le type dapplication, plusieurs modèles
darchitecture - sont possibles.
- partitionnement manuel, automatique ou assisté.
- Le logiciel induit une souplesse et un coût
faible - Le matériel induit des performances et un coût
élevés
Le but est de trouver le meilleur compromis
logiciel/matériel afin dobtenir le plus grand
ratio performances/coût. Cette étape est cruciale
pour les performances et le coût global du
système.
Fonction 1 logicielle
Fonction i matérielle
Fonction 3 logicielle
Fonction n matérielle
Fonction 2 matérielle
28PARTITIONNEMENT LOGICIEL MATERIEL (2)
- Trois grandes familles dapplication ont été
classifiées - systèmes orientés données
- systèmes orientés contrôle
- systèmes mixtes
- Plusieurs types darchitectures sont utilisables
- simple ( uP mémoire logique câblée )
- hétérogène distribuée
- maître ? esclave
- multi maîtres
29SYNTHESE DES FONCTIONS LOGICIELLES
- Méthodologie pour la conception de la fonction
logicielle - Liste des inter actions avec les autres éléments
du système - Écriture de lalgorithme
- Codage de lalgorithme en langage de haut niveau
ou de - bas niveau suivant les contraintes en
performances - Simulation et test de la fonction pour contrôler
la conformité - de celle-ci
Temps dexécution
Fonction n logicielle
Taille du code
interfaces
30SYNTHESE DES FONCTIONS MATERIELLES
- Méthodologie pour la conception de la fonction
matérielle - Liste des inter actions avec les autres éléments
du système - Écriture de la fonction en langage de
description matérielle tel que Verilog ou VHDL (
bientôt on pourra utiliser des langages de plus
haut niveau tel que systemC ) - Compilation et examen minutieux du rapport de
synthèse - Simulation et test de la fonction pour contrôler
la conformité - de celle-ci
Nombre de ressources Matérielles utilisées
Fonction n matérielle
interfaces
Temps de propagation
31SYNTHESE DES INTERFACES DE COMMUNICATION
MATERIEL/MATERIEL
- Méthodologie de conception des interfaces de
communication - matériel/matériel
- Liste des fonctions matérielles
communicantes - Liste des signaux de communication avec leur
type (entrée, - sortie, entrée/sortie)
- gt choix du protocole de communication entre les
différentes - fonctions
Fonction i matérielle
Fonction 1 matérielle
interfaces
Fonction n matérielle
interfaces
Interfaces
32SYNTHESE DES INTERFACES DE COMMUNICATION
MATERIEL/LOGICIEL
- Méthodologie de conception des interfaces de
communication - Matériel/logiciel
- Liste des inter actions fonctions
logicielles/fonctions matérielles - Liste des signaux dinterface des fonctions
matérielles avec leur - type (entrée, sortie, entrée/sortie)
- Ecrire routines de bas niveau pour piloter la
partie matérielle - à partir du logiciel
- gt Simulation et test des routines
Fonction i
_fonction_i_lire (params) _fonction_i_écrire(param
s) _fonction_i_init(params)
Interface matérielle
33SYNTHESE DES INTERFACES DE COMMUNICATION
LOGICIEL/LOGICIEL
- Méthodologie de conception des interfaces de
communication - logiciel/logiciel
- Liste des fonctions logicielles qui communiquent
entre elles - Liste des paramètres échangés avec leur type
(variables) - Choix du protocole de communication entre les
fonctions logicielles - Écriture du noyau de la partie logicielle du
système - Simulation et test
34LES BLOCS DE PROPRIETE INTELLECTUELLE
- Avantages liés à lemploi des blocs IP
- Rapidité de mise en uvre
- Blocs optimisés,validés et testés
- Offre importante et variée
- Inconvénients liés à lemploi des blocs IP
- Difficulté dinterfaçage avec le reste du
système - Coût
- complexité de certaines licences dutilisation
Cur MPEG
Cur USB2.0
Contrôleur CAN2.0B
Cur ?P 32 bits
35LA COSIMULATION OBJECTIFS ?
- Le système étant composé dune partie matérielle
et dune partie - logicielle, il est nécessaire de simuler
lensemble du système doù - le nom cosimulation.
- Vérification de la fonctionnalité et des
performances - des fonctions logicielles et matérielles
- Vérification du bon fonctionnement des
différentes interfaces - de communication entre les différentes fonctions
constituant le - système
36LA COSIMULATION PRINCIPES ?
- Il existe deux types de cosimulateur
- Moteur de simulation unique et mixte
- Moteurs de simulation multiples
- Le plus répandu est le second dont larchitecture
est
Simulateur 1
Simulateur i
Simulateur n
Interface 1
Interface i
Interface n
Bus de cosimulation
37LA COSIMULATION PERFORMANCES ?
- Ce sont des outils relativement récents et qui
sont encore en - développement dans divers laboratoires dans le
monde. - Leurs principaux inconvénients sont
- Fiabilité totale non réalisée
- Lenteur
- Non disponibilité de certains outils (
multiprocesseurs - Hétérogènes )
- Grand décalage entre les vitesses de simulation
du matériel - et du logiciel
38LA COSIMULATION NIVEAU ABSTRACTION ?
39INTEGRATION SUR CIBLE
Quand toutes les étapes précédentes se sont
déroulées correctement, léquipe de concepteur
implante le système sur une cible. En fonction
des différentes contraintes liées au projet,
léquipe choisit La cible la mieux adaptée. Une
fois le système sur puce réalisé, une
caractérisation complète est Nécessaire pour
valider le travail fourni. Si des erreurs sont
détectées lors de cette phase, les concepteurs
doivent reprendre certaines étapes du flot de
conception, ceci entraînant un coût
important. Pour la caractérisation du système,
lemploi doutils évolués est indispensable au
vu de la taille des cibles générateur de
vecteurs de test auto,Analyse de couverture de
test, etc
40LES OUTILS DE SIMULATION SYSTEME
- Ces outils permettent de faire de la cosimulation
à plusieurs - niveaux dabstraction et de répondre à la méthode
de conception - des systèmes sur puce.
- Les premiers simulateurs ont été développés au
début des années - 2000, ils évoluent encore en ce qui concerne
lergonomie, les - fonctionnalités.
- Actuellement loffre en cosimulateur est encore
restreinte - SystemC
- SpecC
- HandelC
- Seamless de MENTOR GRAPHICS
41SystemC
- Tous les grands acteurs de lindustrie
microélectronique se sont - Fédérés autour de la création dun cosimulateur
proposant un choix - du niveaux dabstraction pour la simulation.
- Ce langage de description du matériel et logiciel
sappuie sur le - langage C. Son utilisation nécessite donc une
bonne maîtrise de - la notion de classe et de la programmation objet
en général. - Plusieurs niveaux de raffinement sont disponibles
- untimed
- timed
- bus cycle accurate
- cycle accurate
42SystemC (2)
- La description du matériel et logiciel repose sur
les éléments - suivants
- modules ( encapsulation des composants )
- ports / signals ( communication )
- processus ( comportement )
- clocks ( horloge )
43SystemC (3)
44HandelC
Ce langage sappuie sur le langage C ANSI. Il est
particulièrement adapté au portage dalgorithme
sur des structures matérielles. Le parallélisme
et les synchronisations sont facilement
exprimables à laide de ce langage. Cet outil
permet en outre de générer des fichiers au format
EDIF et VHDL à partir de la description de votre
système.
45HandelC (2)
- Principales caractéristiques du langage
- affectation de variable en un cycle dhorloge
- taille des variables définies au bit près
- traitement parallèle matériel possible
- les processus communiquent par des canaux
- primitives de mémoire pour une gestion fine de
la mémoire - bibliothèques pour les types de variable non
entier
46HandelC (3)
47SpecC
- Ce langage est un super ensemble du langage C
ANSI auquel - on a rajouté des fonctionnalités permettant de
décrire le - matériel.
- Tout programme en langage C ANSI est un programme
SpecC. - Un programme est composé de 3 types dentité
- bloc comportemental
- canaux de communication
- interfaces de communication
48SpecC (2)
- Types de variables supportés
- tous les types du langage C ANSI
- vecteur de bit
- évènements ( synchronisation )
- Ce langage permet les constructions hériarchisées
et sépare - nettement les opérations et les communications.
- Plusieurs modes dexécution pour les opérations
- séquentiel
- machine détat
- parallèle ( ou concurrente )
- pipeline
49SpecC (3)
50SpecC (4)
51Interfaces de communication inter blocs
- Les interfaces de communication entre les
différents blocs constituants - un système sur puce influencent énormément les
performances globales - du circuit.
- Les concepteurs devront employer larchitecture
leur permettant - dobtenir le meilleur ratio performances/ressource
s matérielles utilisées. - Trois types dinterface de communication sont
disponibles - bus partagé ( shared bus )
- réseau maillé ( crossbar )
- réseau multi étages ( multi level network )
52Le bus partagé
Cette architecture est la plus couramment
employée du fait de sa relative simplicité de
mise en uvre. Cette solution est assez économe
en ressources matérielles utilisées mais les
performances en terme de bande passante dépendent
en grande partie de larbitrage daccès au bus.
53Le bus partagé (2)
- Les grands acteurs du système sur puce emploient
ce type - darchitecture avec chacun une solution
propriétaire - Core Connect dIBM
- AMBA dARM
- AVALON dALTERA
- WHISBONE dopenCores
54Le bus AVALON (ALTERA)
- Ses principales caractéristiques sont les
suivantes - fonctionnement totalement synchrone
- transferts possibles sur 8, 16 et 32 bits
- architecture maître/esclave ou multi maîtres
- bus données et adresse séparés
- optimisé en utilisation de ressources
matérielles - pas de signaux trois états ( pas de haute
impédance ) - transfert mot par mot, par bloc, avec gestion
cycle attente
55Le bus AMBA (ARM)
La société ARM est le numéro 1 mondial pour la
fourniture de cur de microprocesseur sous forme
de bloc de propriété intellectuelle. Le bus AMBA
est en fait constitué de deux bus distincts
dédiés qui sont les bus AHB et APB.
56Le bus AMBA (2)
- Le bus AHB ( Advanced High performance Bus )
possède les - caractéristiques suivantes
- Multi maître
- pas de signaux trois états
- transfert par blocs possible
- largeur bus donnée variable ( 32 à 128 bits )
- gestion accès protégé et non protégé
- plan mémoire 4 giga adresses
- gestion arbitrage
- gestion cycles attente pour communication avec
les - Périphériques lents
- ? permet les transferts de données sur 8, 16 et
32 bits
57Le bus AMBA (3)
- Le bus ASP ( Advanced Peripheral Bus ) possède
les caractéristiques - suivantes
- multi maître
- transfert par paquets et/ou en mode pipeline
- largeur bus variable 32 ? 128 bits
- gestion par accès protégé possible
- bus de donnée bidirectionnel
- plan mémoire limité à 4 giga adresses
- gestion arbitrage accès aux bus
- transfert des mots codés sur 8, 16 et 32 bits
possible
58Le bus AMBA (4)
- Le bus APB est dédié aux communications avec les
périphériques - exigeant une bande passante modeste. Celui-ci est
facile à mettre en - oeuvre et est conçu pour une consommation
minimale. - Caractéristiques
- maître unique
- utilise seulement 4 signaux de contrôle
- taille du bus dadresse 32 bits
- bus de donnée de largeur inférieure ou égale à
32 bits - bus de donnée séparé en lecture et écriture
59Le bus CORECONNECT ( IBM )
La société IBM a développé dans le cadre de ses
activités systèmes sur puce un support de
communication inter blocs nommé bus CoreConnect.
Ce bus regroupe en fait 3 bus particuliers.
60Le bus CORECONNECT ( 2 )
Le bus PLB ( Processor Local Bus ) est dédié aux
communications entre le(s) processeur(s) et les
périphériques nécessitant une grande bande
passante. Le bus OPB ( On chip Peripheral Bus )
permet de communiquer avec les périphériques
lents en gérant en dynamique la taille des
données échangées. Le bus DCR ( Device Control
Register ) permet une communication Directe
entre les registres du processeur et les
registres de contrôle Des différents
périphériques connectés au bus PLB afin
daugmenter La bande passante de ce dernier.
61Le bus WISHBONE ( OpenCores )
Ce bus a été développé dans le cadre du logiciel
libre et est utilisé par un groupe de développeur
de blocs IP qui sont mis à la disposition
du public sur le site www.opencores.com
62Le bus WISHBONE ( 2 )
- Caractéristiques essentielles
- bus unique, simple et compact
- permet tous les types de transfert
- taille modulaire des bus et des opérandes
- supporte mémorisation little et big endian
- implantation protocole poignée de main possible
- différents types de connections inter blocs
- permet le transfert sur un cycle dhorloge
- gère les erreurs de transmission
63Le réseau maillé
Ce type de communication est très performant car
les liaisons se font de point à point. Cependant
la complexité et la quantité des ressources
matérielles nécessaires limitent son utilisation
à des systèmes de taille modeste.
64Le réseau multi étages
Cette architecture convient aux systèmes
nécessitant une bande passante importante et qui
soit extensible facilement.
65Techniques avancées pour lembarqué
Les choix de conception pour les SOC destinés à
lembarqué sont fortement contraints du point de
vue consommation électrique. Plusieurs
techniques permettent de juguler la consommation
tout en maintenant un niveau de performance
élevé. Des solutions existent tant au niveau
matériel que logiciel. En général léquipe de
concepteur travaille sur les deux aspects
simultanément .
66Techniques avancées pour lembarqué ( 2 )
Actuellement la grande majorité des circuits
intégrés est fabriquée en technologie CMOS. La
puissance dissipée par un tel circuit est P
Pstatique Pdynamique Pstatique Ifuites
Vdd Pdynamique Pcourtcircuit
Pcommutation Pcommutation ? CL Vdd² f
67Techniques avancées pour lembarqué ( 3 )
- Pour réduire la puissance statique et la
puissance de court circuit, on - emploie la technologie la plus récente ( taille
des transistors de plus - en plus réduite ).
- Les concepteurs ont beaucoup plus de latitude
pour minimiser la - puissance de commutation
- nombre de transitions logiques par cycle
dhorloge - Vdd tension alimentation
- f fréquence du signal dhorloge du système
- Le paramètre CL dépend plutôt de la technologie
du circuit.
68Techniques avancées pour lembarqué ( 4 )
- Techniques matérielles
- verrouillage des signaux dhorloge ( Gated Clock
) - activation des unités fonctionnelles uniquement
lors du travail - utilisation du pré et post calcul si possible
- codage adjacent pour les machines détat
- utilisation mémoire cache pour les données les
plus utilisées - utilisation parallélisme et/ou pipeline
- utilisation architecture reconfigurable
69Techniques avancées pour lembarqué ( 5 )
- Techniques logicielles
- mise en veille de toutes les unités ayant
terminées leur travail - gestion dynamique de la tension dalimentation
en fonction de - la charge du système.
- gestion dynamique de la fréquence
- ordonnancement optimisé des tâches
- répartition des tâches sur différents processeurs
70CONCLUSION
Les systèmes sur puce seront omniprésents dans le
monde de la microélectronique et bientôt dans
celui de la nanoélectronique. Les concepteurs de
ces systèmes devront avoir une solide
formation en matériel et logiciel pour pouvoir
travailler de façon efficace. La réalisation
avec succès dun système sur puce est due aux
bons choix technologiques et aussi surtout grâce
à une bonne maîtrise de la méthodologie.