Vous êtes sur la page 1sur 52

cole Nationale des Sciences de lInformatique

Chapitre 5

HW/SW codesign

Module : Introduction aux systmes embarqus


Niveau : II2 Tronc commun

AU : 2014/2015
Plan
Introduction

Spcification et modlisation

Partitionnement Matriel/Logiciel

Synthse

Validation

Intgration et tests dintgration

2
Introduction

La capacit de conception de systmes numriques


permet aujourdhui de tout intgrer dans un mme
composant

Travail : niveau systme et non plus : niveau porte


lmentaire ou schmatique. On parle de systme sur
silicium (puce) :
SoC (System on Chip),
ou SoPC (System on Programmable Chip)
ou encore NoC (Network On Chip)

3
Introduction

En utilisant des langages de description du matriel (ex :


VHDL, Verilog) pour synthtiser et aussi tester les
circuits numriques, on a une approche logicielle pour
concevoir du matriel.

Avec laugmentation de lintgration, les systmes


numriques se sont complexifis alors que la mise sur le
march doit tre la plus rapide possible :
Prise en compte du Time To Market (TTM)
Rutilisation dIP (Design Reuse)

4
Besoin dun flot de conception des SoC

5
Co-conception Hardware Software
La co-conception (codesign) dans la mthodologie de
conception dun systme embarqu est de plus en plus utilis

La co-conception permet de concevoir en mme temps la


fois le matriel et le logiciel pour une fonctionnalit
implmenter.
Maintenant, possible avec les niveaux dintgration offerts dans les
circuits logiques programmables

La co-conception permet de repousser le plus loin possible,


dans la conception du systme, les choix matriels faire
Contrairement lapproche classique o les choix matriels sont faits
en premier lieu

6
Conception/Co-conception
Co-conception (flot
Conception (traditionnelle)
concurrent)

Ralise par des groupes Ralise par le mme groupe


dingnieurs indpendants dingnieurs en coopration
7
8
Specification
Ancien flot de conception des SoC

System
Application Formal SoC
+ specification
Requirements validated by user

(VCC, SC Studio)
SoC Architect
IP Copro.

Architecture
Exploration
SW profile evaluation CPU HW modules
Case uses M B abstract models
CPU
worst-case analysis
IP IP

Perf. analysis HW/SW trade-off

Golden Architecture Model

CPU IP

SW modules Com. Network (bus, )

Architecture
Design
HW IP

API Interface

ISA RTL
SW Designer HW Designer
9
La co-conception des SoCs

Specification
System
Application Formal SoC
+ specification
Requirements validated by user

(VCC, SC Studio)
SoC Architect
IP Copro.

Architecture
Exploration
SW profile evaluation CPU HW modules
Case uses M B abstract models
CPU
worst-case analysis
IP IP

Perf. analysis HW/SW trade-off

Golden Architecture Model

CPU IP

SW modules Com. Network (bus,)

Architecture
Design
HW IP

Programmable IP HW IP
API SW Comm.
Interface
HW Comm. HW Comm

ISA Communication Network RTL


SW Designer SoC Designer HW Designer
10
Mthodes de conception
La complexit des fonctions ralises sur une seule puce de
silicium ne peut tre matrise que grce lassistance
doutils logiciels appropris et de mthodes de conception
systmatiques. Il existe trois grands types de mthodes de
conception:
Conception top-down :
Commencer par une description trs abstraite;
Enrichir de dtails (raffinement)
Conception Bottom-up :
Assembler des petits composants pour obtenir un gros systme
(abstraction).
Conception base de plate-formes :
Cas rels utilisent ces deux techniques.

11
Les dfis de conception des SoC
Est-ce que a marche?
Spcifications correctes?
Implmentation conforme aux spcifications?
Comment tester les caractristiques temps-rel?
Comment tester avec de vraies donnes?
Architectures spcifiques:
Quantit de hardware ncessaire?
Performance du(es) CPU(s)? Mmoires?
multiprocesseurs htrognes;
organisation mmoire spcifique.
Comment respecter les chances?
Hardware plus rapide ou software plus intelligent?
Comment minimiser la consommation?
Mise hors fonction de la logique inutile? Rduire les accs mmoires?
Vrification:
Dure ditration longue;
Impossibilit de sonder les signaux internes.

12
Flot de conception des SoC

Le flot de conception couvre plusieurs tapes :


Spcifications : liste des fonctionnalits du systme de faon
abstraite
Modlisation : conceptualisation et affinement des
spcifications produisant un modle (architecture) du matriel
et du logiciel
Partitionnement : partage logiciel/matriel
Synthse : synthse matrielle et compilation logicielle
Validation
Intgration : rassemblement des diffrents modules
Tests dintgration : vrification du comportement

13
Avantages de la co-conception

La co-conception est intressante pour la conception


des SoC :
Amlioration des performances : paralllisme, architecture
spcialise

Mise profit des amliorations des outils de conception fournis


par les fabricants de circuits logiques programmables : synthse
plus efficace, performance accrue.

Reconfiguration statique ou dynamique en cours de


fonctionnement

14
Plan
Introduction

Spcification et modlisation

Partitionnement Matriel/Logiciel

Synthse

Validation

Intgration et tests dintgration

15
Expression des besoins
Toute activit commence gnralement par une spcification informelle
(rapport de projets, etc.)

Il faut dgager une description prcise de ce que veut lutilisateur (le client) et
de ce quil espre obtenir

Besoins fonctionnels
Sorties en fonction des entres et des paramtres
Si le systme est temps rel dure, temps ncessaire pour calculer la sortie

Besoins non fonctionnels


taille,
poids,
consommation,
fiabilit,
etc.

16
Exemple : Systme GPS

La carte rcupre la
position partir du GPS
La base de donnes est
locale pour la carte

17
Besoins pour le systme GPS
Fonctionnalit : pour lautomobile, il faut montrer les axes principaux et les
repres

Interface utilisateur :
Au moins 400 x 600 pixels pour lcran
3 boutons au maximum
Menus droulants

Performances : la carte doit tre balaye doucement , pas plus de 1 seconde


la mise sous tension, calage sur le GPS en moins de 15 secondes

Cot : prix de vente de 500$ (approximativement). 100$ de cot pour les


fournitures

Taille/poids : doit tenir dans la main

Consommation : doit fonctionner 8 heures avec 4 piles type AA

18
Formulation des besoins pour le systme
GPS
Nom : Carte GPS
Objectifs: Carte routire GPS pour conducteur
Entres: 1 bouton on/off, 2 de contrle
Sorties: LCD 400X 600 rtro clair
Fonctions : rcepteur GPS; 3 rsolutions; affichage
de la latitude et de la longitude
Performances: Mise jour de lcran en 0.25s
Cot de fabrication : 100$ (fournitures)
Consommation : 100 mW
Taille : 5cm x 12 cm
Poids : 100g
19
Spcifications

Une description plus prcise du systme:


Ne doit pas identifier une architecture particulire
Donne les entres au dispositif de conception de larchitecture

Peut comprendre des lments fonctionnels et non


fonctionnels

Peut tre excutable ou sous forme mathmatique pour


preuve formelle

20
Besoins des techniques de spcification

Reprsentation de lhirarchie : LHomme est incapable


de comprendre lhirarchie de plus de quelques objets
Les systmes actuels contiennent plus de quelques objets
Hirarchie comportementale
Processus, tats, procdures, etc.
Hirarchie structurelle
Processeurs, circuits imprims, rangs, etc.

Reprsentation du temps
Reprsentation du flot de contrle pour les systmes
ractifs
Reprsentation du flot de donnes
21
Choix du modle
Simple
Expressif, flexible (couvre tous les cas de conception)
Ne doit pas tre trs gnral
Excutable (pour la simulation)
Synthtisable
Non influence par une implmentation spcifique
(matrielle/logicielle)

Dfinition du modle de calcul :


Une description mathmatique possdant une syntaxes et des rgles
de calcul du comportement. Utilis pour la spcification de la
smantique dexcution du comportement et de la concurrence.
22
Modles de calcul
Un modle de calcul spcifie
La communication
Modle mmoire partage
Modle par envoie de messages

Le comportement
Machine dtats finis (FSM)
Flot de donnes (Data flow model)
Rseau de Ptri
Modle vnement discrets
Modle Von Neumann

Il existe plusieurs langages, mais aucun ne couvre tous les


besoins : utilisation des compromis

23
Spcification pour le GPS

Doit comprendre :
Ce qui est reu du GPS
Les donnes de la carte
Linterface utilisateur
Les oprations ncessaires pour satisfaire la demande du
client
Les oprations darrire plan permettant au systme de
continuer fonctionner

24
Plan
Introduction

Spcification et modlisation

Partitionnement Matriel/Logiciel

Synthse

Validation

Intgration et tests dintgration

25
Conception de larchitecture

Quels sont les composants qui satisfont aux


spcifications majeures ?

Composants matriels :
CPU, priphriques, etc.

Composants logiciels
Programmes principaux et leurs oprations

Doit prendre en compte les spcifications fonctionnelles


et non fonctionnelles
26
Exemple : Schma bloc du GPS

27
Architecture matrielle du GPS

28
Architecture logicielle du GPS

29
Contraintes de partitionnement
De quel matriel a-t-on besoin ?
Quel processeur choisir ? Quelle puissance CPU ?
De quels type de mmoire et taille mmoire a-t-on besoin ?
Choix entre hardware rapide ou software intelligent ?
La consommation ? Minimiser les accs mmoire ? Choisir les
instructions assembleur en fonction de leur consommation ?
Les contraintes de temps de conception seront-elles respectes ?
Le TTM ?
Est-ce que le systme final marche correctement ?
Est-ce que les spcifications fonctionnelles ont t respectes ?
Comment doit-on tester les caractristiques Temps Rel du
systme? Doit-on le tester avec des donnes relles ? Quelle
plateforme de tests doit-on utiliser ?

30
Partitionnement L/M

Point de dpart : un graphe de tches


Les nuds reprsentent les fonctions (les P2
P1
P5
tches)
P3
Les arcs reprsentent le trajet du flot de
P4
donnes entre les nuds

Rsultat : une architecture et un choix HW1 SW1

dimplmentation P1 P2 P3 P4

Larchitecture est un ensemble de


composants interconnectes
Le choix dimplmentation est la dcision P5
SW2
de ralisation pour chaque nud
31
Allocation de ressources

Parmi toutes les solution possibles en matriel et en


logiciel, il faut lister les ressources requises pour raliser
les tches

Objectif du partitionnement
Le partitionnement doit rsoudre au moins 3 problmes
Trouver le meilleur choix de ralisation pour chaque tche
Choisir les dates dexcution des tches (ordonnancement)
Choisir des ressources pour raliser les tches (allocation)

32
Exemple dun qualiseur numrique 4
bandes
Choix de ralisation
n1, n2, n3 et n4 en matriel
n1 n2 n3 n4 Les autres en logiciel
e1 e2 e3 e4
n5 n6 n7 n8 Ordonnancement
n1 et n2, puis n3 et n4
n9 n10 Dans lordre n5, n6, n7, n8,
n9, n10, n11
n11
Allocation des ressources
HW1 SW1 2 filtres FIR
Fonction MUL( )
FIR1 FIR2 Communications
Fonction ADD( )
e1, e2, e3, e4

33
Exercice
x
Soit le graphe de tches suivant :
Ordre de production de z1 et z2 quelconque N1 OpA
Temps dexcution en logiciel 1,5 fois celui en matriel
y1 y2

OpB N2 N3 OpB

Pour simplifier, on suppose N1 ralise en logiciel, z1 z2


et un seul processeur dans larchitecture finale
Il existe 4 solutions
Logiciel Matriel Logiciel Matriel Logiciel Matriel Logiciel Matriel

N1 N1 N1 N1

N2 N3 N2 N3
N2 N2

N3
N3

34
Plan
Introduction

Spcification et modlisation

Partitionnement Matriel/Logiciel

Synthse

Validation

Intgration et tests dintgration

35
Synthse logicielle/matrielle classique

Sparation trs tt du
logiciel/matriel

Pas dinteraction entre le


logiciel/matriel jusquau
niveau le plus bas
(ISA/RTL)

Inefficace et exploration
darchitecture couteuses
36
Synthse logicielle/matrielle : nouvelle
approche
Ncessit davoir des niveaux
intermdiaires

Rduire le gap entre la


spcification et le niveau
ISA/RTL

Exploration darchitecture
efficace

37
Abstraction dans la modlisation et
conception
L'abstraction est un des piliers de la modlisation et de la
conception :
Identifie les caractristiques intressantes d'une entit en vue d'une
utilisation prcise.
Dsigne aussi l'ensemble des caractristiques essentielles d'une entit
Rduit la complexit et facilite ainsi la comprhension du systme tudi.
Dcompose la ralit pour disposer des lments de travail exploitables par
des moyens mathmatiques ou informatiques.
Il est impossible dapprhender tous les aspects dun systme complexe sans
faire des abstractions

Un SoC peut tre dcrit diffrents niveaux dabstraction.


Les diffrents niveaux dabstraction sont fonction des concepts et les
modles suivant lesquels le systme est tudi.

38
Abstraction temporelle
L'abstraction temporelle reprsente le niveau de dtail avec lequel les
vnements sont reprsents sur une chelle de temps
Vision chronologique du temps. Notion de causalit entre vnements
Temps ordre Evnements ordonns de faon partielle ou totale en terme de leur
partiel (temps lancement et leur terminaison (aucune unit de temps)
Ni dure, ni date. Seulement la comparaison entre deux dates < & >
logique) Deux vnements sont lis par relations de prcdence, simultanit.

Niveau A ce niveau, la prcision des vnements est spcifie en terme


instruction : de cycle dinstructions.

la prcision est donne exactement en terme de


Niveau cycle dhorloge cycle dhorloge.

Temps physique avec une prcision au


Temps physique : le plus bas niveau niveau circuit (voir les modles de
temps de propagation de portes description pour le matriel).

39
Abstraction structurelle
Reprsente le niveau du dtail avec lequel on dcrit la structure dun composant ou
dun systme.
Un circuit intgr numrique peut tre reprsent dun point de vue structurel
plusieurs niveaux dabstraction :
Une simple
boite noire (un
grand bloc)

Un diagramme de
macro blocs (ALUs,
ports E/S, )
Une liste dinterconnexion
(netlist) des composants de
base (registres, multiplieurs,
).

Une liste dinterconnexion (netlist) de


portes logiques plus lmentaires.

Schmatique transistors.

40
Niveaux dabstraction logiciel

sous la forme dun ensemble de fonctions +/-


Niveau interdpendantes et de complexit varie. Cette
fonctionnel description est oriente application ou objectif
satisfaire.

Niveau OS Application logiciel = ensemble de tches qui


(niveau systme sexcutent sur un SE abstrait en utilisant les
dexploitation) : API du SE

le systme dexploitation est


Niveau HAL (Hardware actuellement implment en utilisant
Abstraction Layer) des API HAL qui abstraient
larchitecture matrielle sous jacente.

Niveau ISA (Instruction Set tout le code logiciel est fix


au niveau instruction (bas
Architecture) niveau).

41
Niveaux dabstraction matriel
Le niveau fonctionnel :
la description au niveau fonctionnel exprime le premier niveau interne de la solution, sous
la forme dun ensemble de fonctions +/- interdpendantes et de complexit varie. Cette
description est oriente application ou objectif satisfaire.

Le niveau RTL : Register Transfer Level


le comportement d'un circuit est dfini en termes d'envois de signaux ou de transferts de
donnes entre registres, et les oprations logiques effectues sur ces signaux. Le RTL est
utilis dans les langages de description matrielle (HDL) comme Verilog et VHDL pour
crer des reprsentations d'un circuit haut niveau, partir duquel les reprsentations
plus bas niveau et le cblage rel peuvent tre drivs.

Les niveaux intermdiaires dabstraction matrielle


TLM : Transcation level Model (TLM Message Level, TLM Transaction Level, TLM
Transfer Level, RTL Level)
Objectifs :
Niveau dabstraction plus lev que le niveau RTL
Simulation rapide
Intgration dIP

42
Plan
Introduction

Spcification et modlisation

Partitionnement Matriel/Logiciel

Synthse

Validation

Intgration et tests dintgration

43
Techniques de validation des SoC

Vrification formelle
Co-simulation
mulation
Prototypage rapide

44
Validation par vrification formelle
Validation par preuve formelle.
utilisation des notations prdfinies comme le modle et les contraintes
vrifier
Dfinition de proprits logico-temporelles => pas denvironnement de test.
Perfectible pour un modle abstrait car ncessite une description de type
machine tats.
Complmentaire la simulation pour des cas longs simuler

Avantage :
exactitude

Inconvnient :
Difficile utiliser pour les systmes complexes et pour la vrification
logiciel/matriel

45
Validation par co-simulation
Utilisation de modles de calcul sur lordinateur (lectrique, logique,
comportemental)

Difficult lorsque les modles de simulation sont diffrents

Communications peuvent tre coteuses

Temps de simulation parfois trs long pour les modles synthtisables

Avantage :
trs flexible

Inconvnient :
vitesse rduite pour une simulation un bas niveau dabstraction

46
Validation par mulation
Utilisation dun matriel qui se comporte comme le systme vrifier
Le code logiciel est excut soit sur un vrai processeur ou sur un processeur mul
Le code matriel est synthtis dans une technologie de matrices FPGA spcialises o
tous les nuds sont accessibles

Convient quand la conception est dj avance

Avantages :
Laccs tous les nuds
Lacclration de la co-simulation

Inconvnients :
Peu flexible
Le cot
Ncessit dun code synthtisable
Lexcution non temps rel

47
Validation par prototypage
Construction de prototypes en utilisant les FPGAs (real time analysis)

Utilisation dune carte munie de processeurs et FPGAs


Le logiciel tourne sur le processeur cible avec lutilisation ventuelle dun dbogueur
intgr ICE .
Le code matriel est synthtis dans une technologie FPGA.

Avantages :
La vrification nettement plus rapide que la co-simulation
le logiciel peut tourner en temps rel ou presque

Inconvnients :
Laccs aux nuds internes est restreint
Ncessit dun code matriel synthtisable
La taille du FPGA, des ressources mmoires et des E/S sont limites
Lenvironnement de validation est plus long mettre en uvre

48
Plan
Introduction

Spcification et modlisation

Partitionnement Matriel/Logiciel

Synthse

Validation

Intgration et tests dintgration

49
Intgration

Rassembler les composants

Beaucoup de bugs cette tape !

Avoir un plan dintgration des composants pour couvrir


les bugs rapidement et tester le plus de fonctionnalits le
plus tt possible

Les tests dintgration doivent tre les plus complets et


sont donc consommateurs de temps donc dargent !

50
Complexit de la communication HW/SW
Accs Mmoires

Application
Architecture
processeurs
protocoles
Architectures
des SE
DMA, HW I/O

Comm. Conception
HW-SW

Code SW / OS Interrupt IO A
B Hardware
ADR HW C
micro-processeur Data D
51
Interface Logicielle/Matrielle

Deux types dinstructions pour laccs aux I/O:


Instructions spcifiques I/O
memory-mapped I/O, instructions load/store

Synchronisation entre le logiciel et le matriel


Solution : les interruptions
Permettent de communiquer avec plusieurs priphriques de manires
diffrentes
Table de vecteurs dinterruptions
Priorit des interruptions

52

Vous aimerez peut-être aussi