Vous êtes sur la page 1sur 170

Chapitre 2 : Cible

matrielle ASICFPGA
Nadia Khouja Saad

Plan du Chapitre 2
1.
2.

3.

4.

Introduction : technologie CMOS


Niveau dabstraction pour la modlisation
des circuits Intgrs
Classification des cibles matrielles
Les cibles FPGAs

Introduction aux systmes sur puce

Introduction
Cibles matrielles sont rendues possibles par les progrs raliss en
technologie dintgration

SSI : Small Scale Integration (dizaine de transistors)

MSI : Meduim Scale Integration (centaine de transistors)

LSI : Large Scale Integration (Milliers de transistors)


Besoin doutils de conception + automatisation Outils CAD

VLSI : Very Large Scale Integration (Centaine de milliers de


transistors)
Outils CAD indispensables pour grer la complexit de la
conception et de la fabrication du Circuit Intgr (CI).
Introduction aux systmes sur puce

Les transistors: la technologie de base des


CI

Les CI (ou chips) reprsentent la ralisation courante de tout


systme informatique
Un CI : un ensemble de transistors + connections

Drain
Grille
Gate

Drain

nmos

pmos

Source

Source

MOS: metal oxcyde semiconductor


NMOS: nchannel mos
PMOS: pchannel mos

Nmos

Nmos

Grille=1

Grille=0

Sur Nmos : Si Grille ==1, alors Drain et Source connectes


Sur Pmos : Si Grillle ==0, alors Drain et Source connectes

Un inverseur (NOT) dans la technologie


CMOS
CMOS : complementary mos (circuit comportant des Pmos et des Nmos

VDD 1

VDD 1

VDD 1

A=0

A=1

0
Y =A'
n

GND
Masse 0

GND
Masse 0

GND
Masse 070

Exercice 1
De quel type de porte sagit-il ?
z= NAND(x,y)

NOT

NAND

Introduction aux systmes sur puce

Exercice 2
Comment raliser une porte NOR en technologie CMOS
z= NOR(x,y)

NOR

Introduction aux systmes sur puce

Niveaux de modlisation des CI

Les transistors reprsentent un niveau de modlisation


des CI, appel aussi niveau lectrique
Dautres modles existent: + dtaills (- abstrait)
Dessin de masque (niveau physique)
Dautres modles existent: + abstrait (- dtaills)

Introduction aux systmes sur puce

Niveaux de modlisation des CI

Les proprits dun systme peuvent tre spcifis selon


trois domaine:

Comportemental: Information fonctionnel du systme


Que fait-il?

Structurel: Information schmatique.


Les diffrents sous-systmes et comment sont-ils lis?
Physique: Information gomtrique.
Taille, forme et placement physique?

Pour chaque domaine il y a plusieurs niveaux dabstraction.

Introduction aux systmes sur puce

Description dun systme

Description structurelle :

en explicitant de quoi ce systme est fait.On dcrit la structure


interne d'un bloc. Par exemple : un microprocesseur contient un
ensemble de registres, une ALU, un UC, des caches, et le tout
est connect de telle et telle faon".
Les sous-blocs (registres, ALU) peuvent eux-aussi
ventuellement tre modliss partir de sous-blocs, etc,
jusqu' arriver des blocs de base ulta-simples (bascules D).

Description comportementale:

en dcrivant son comportement : on se moque de ce qu'il y a


dedans, seul ce qui compte c'est ce qu'il fait. Un bloc est donc
une bote noire, donc on dcrit le fonctionnement l'aide d'une
ou plusieurs fonctions.
Introduction aux systmes sur puce

10

Description dun systme

En pratique, on commence par une description comportementale


(car les spcification d'un systme sont souvent donnes sous
forme algorithmique).
Puis, force de simulations et de mesures de performances, on
essaye d'identifier des grands blocs. La description devient alors
mixte : une partie structurelle donnant la liste des blocs et la faon
dont ils sont relis entre eux, alors que les blocs eux sont encore
reprsents sous forme comportementale.
On r-applique ensuite ce procd rcursivement chaque bloc
(dcomposition en sous-blocs, sous-sous-blocs), jusqu' obtenir une
description presque totalement structurelle base de bascules D et
fonctions logiques simples.
Des outils se chargent alors de traduire tout a automatiquement en
portes logiques.

Introduction aux systmes sur puce

11

Diagramme en Y de Gajski
1

Domaine comportemental

Domaine structurel

2
3

Systme
Algorithme

Transfert de registres

Logique
Fonction de transfert

Processeur, ASIC, ASIP, FPGA, etc.


Modules matriel
UAL, registres
Portes, bascules, etc.
Transistor

Rectangle
Plan des cellules
1 Architecturale

Plan des modules

2 Algorithmique

Plan de masse

3 Bloc fonctionnel

Partitions physiques

2 logique
3 circuit

Domaine physique

Chaque cercle correspond un niveau dabstraction : Abstraction croissante


de lintrieur vers lextrieur.Introduction aux systmes sur puce
77

Conception des circuits VLSI

Circuit VLSI (centaines de milliers de transistors)


Automatisation du procd de fabrication
Vrification base sur la simulation (au lieu des
cartes)
Utilisation de langages de description du matriel
(HDL)

Introduction aux systmes sur puce

13

Les composants (HARD)


ASIC

CUSTOM

SEMI-CUSTOM

Circuits

Circuits

Circuits

Circuits

sur mesure

prcaractriss

prdiffuss

configurables

Full
Custom

Standard

A SIC

cell

Sea of
gate

Gate
array
SRAM

ASIC

: Application Specific Integrated Circuit

FPGA

: Field Programmable Gate Array

CPLD

: Complex Programmable Logic Device

PAL

: Programmable Array Logic

GAL

: Generic Array Logic = PAL

SRAM

: Static Random Acess Memory


Introduction aux systmes sur puce

FPGA

CPLD

PAL

Antifuse

PLD

14

ASIC: Full Custom


ASIC

CUSTOM

SEMI-CUSTOM

Circuits

Circuits

Circuits

Circuits

sur mesure

prcaractriss

prdiffuss

configurables

Full
Custom

Standard
cell

Sea of
gate

Gate
array

FPGA

SRAM

ASIC

CPLD

PAL

Antifuse

: Application Specific Integrated Circuit

Introduction aux systmes sur puce

80

ASIC: Full Custom


Au dpart
Au final
SPECIFICATI
ONS

Approche

full custom

Conception au niveau transistor


Permet des circuits mixtes analogique/numrique
Effort de conception trs important
Surface rduite, performance trs importantes

Introduction aux systmes sur puce

16

ASIC: Standard Cell


ASIC

CUSTOM

SEMI-CUSTOM

Circuits

Circuits

Circuits

Circuits

sur mesure

prcaractriss

prdiffuss

configurables

Full
Custom

Standard
cell

Sea of
gate

Gate
array
SRAM

ASIC

FPGA
C

PLD

PAL

Antifuse

: Application Specific Integrated Circuit

Introduction aux systmes sur puce

17

ASIC: Standard Cell


Au dpart

BIBLIHOTEQUE
DELEMENTS
PRE-CARACTERISES

Au final

SPECIFICATIO
NS

Approche

standard cell

Utilise

des librairies de cellules primitives


Portes AND, OR, registres, SRAM, etc.
Effort de conception rduit, performances souvent proches du
full-custom
Introduction aux systmes sur puce

18

ASIC:Circuits prdiffuss
ASIC

CUSTOM

SEMI-CUSTOM

Circuits

Circuits

Circuits

Circuits

sur mesure

prcaractriss

prdiffuss

configurables

Full
Custom

Standart
cell

Sea of
gate

Gate
array

FPGA

SRAM

ASIC

CPLD

PAL

Antifuse

: Application Specific IntegratedCircuit

Introduction aux systmes sur puce

19

ASIC: circuits prdiffuss

Rseaux de transistors dj implants dans le silicium, mais non


interconnects.
Cest l interconnexion des transistors qui personnalise le circuit en
fonction de l application vise.
Introduction aux systmes sur puce

20

ASIC: Gate Array


Au dpart

Au final

SPECIFICATIONS

Bandes de cellules de hauteur fixe spares par des canaux de routage


Il est possible aussi dutiliser des bibliothques de composants prcaractriss
Introduction aux systmes sur puce

21

ASIC: Sea of Gates

Gate array

Sea of gates

circuit compos de blocs contigus de transistors


les connexions passent entre les blocs ou par-dessus
Introduction aux systmes sur puce

22

ASIC: les circuits configurables


ASIC

CUSTOM

SEMI-CUSTOM

Circuits

Circuits

Circuits

Circuits

sur mesure

prcaractriss

prdiffuss

configurables

Full
Custom

Standart
cell

Sea of
gate

Gate
array
SRAM

Introduction aux systmes sur puce

FPGA

CPLD

PAL

Antifuse

23

Les circuits configurables: dfinition


Composants standard programmables
lectriquement:
Une

seule fois (fusibles, antifusibles)

ou
Plusieurs fois: reprogrammables

Introduction aux systmes sur puce

24

Les circuits configurables: principe


des architectures

Ensemble de ressources logiques (portes,


bascules,etc) qui peuvent tre
interconnectes de diffrentes faons.
Ralisation de fonctions boolennes sous
forme dune somme de produits (PAL,
PLA)
Un rseau de bloc logiques configurables
(FPGA)
Introduction aux systmes sur puce

90

Les circuits configurables:


technologie de programmation
Le choix se fait selon des
critre:

fusible

La vitesse de
programmation
La densit dintgration
La facilit de mise en
uvre ( programmation
sur site,
reprogrammation)

Introduction aux systmes sur puce

26

Les circuits configurables:


technologie de programmation

Programmation une seule fois (PAL)


Fusibles (mtal)
Antifusible (CAPACITE MOS),

Nombre de configurations limit(EEPROM)

Transistor MOS grille flottante

Configuration chaque mise sous tension


(FPGA)

SRAM

Introduction aux systmes sur puce

27

Technologie de programmation

Fusible :

destruction dun fusible par passage dun courant


suprieur celui de lalimentation.

Antifusible:
en appliquant une tension importante (16V pendant
1ms) une zone isolante entre deux zones semiconductrice fortement dope, ce dernier diffuse dans
cette zone et la rend conductrice.
Chaque cellule occupe 1,8um2 (700um2 pour un
fusible)
Hormis la non reprogramabilit, cest la meilleure
technologie (vitesse et surtout une trs haute densit
93
dintgration) Introduction aux systmes sur puce

Technologie de programmation:
Transistor MOS grille flottante (EPROM)

Lapparition du transistor MOS grille


flottante a permis de rendre le composant
bloqu ou passant sans lapplication
permanente dune tension de commande.

L application dun potentiel sur la grille


suprieure provoque le passage d une
partie des lectrons du canal travers la
mince couche d oxyde, ce qui charge la
grille flottante. Lors de la lecture, une
tension applique sur la grille suprieure est
compltement masque par la charge
ngative emmagasine sur la grille flottante.
Cela quivaut un transistor toujours
bloqu.
Pour passer d'un 0 (transistor bloqu) un 1
(transistor passant), on applique une tension
sur la source. Cela a pour effet d'attirer les
lectrons hors de la grille flottante.

Introduction aux systmes sur puce

29

Technologie de programmation:
Transistor MOS grille flottante (EPROM)

UV-EPROM : nest pas utilis dans les PLD


EEPROM

Reprogrammation dune faon slective (par partie)


Une cellule ncessite 6 transistors pour sa ralisation (75 100 um2 en CMOS
0,6um une surface importante rduit la densit dintgrations
Le nombre de programmations est limit (100 CMOS 0,6um) cause de la
dgradation des isolants
La programmation ou leffacement dune cellule dure qlq millisecondes

Flash EPROM

Nautorise pas une programmation slective


Une cellule ncessite 2 transistors une densit dintgration importante: trois
4 fois plus que EEPROM mais 10 fois moins que lantifusible
Le nombre de cycle de programmation est plus grands que EEPROM
Temps de programmation de qlq dizaine de us et temps deffacement de qlq ms
Inconvnient: ncessite un tension supplmentaire (de 12V) de programmation
et deffacement
Programmation in-situ
Introduction aux systmes sur puce

30

Technologie de programmation
Technologie SRAM (FPGA)
Technologie CMOS standard
Portes de transmission ou multiplexeurs commands par
des cellules SRAM
Les mmoires SRAM permettent de configurer les
interconnexions et de programmer les cellules
Programmation illimite Programmation chaque
mise sous tension ( partir dune mmoire externe
EPROM)
6 transistors permet un accs slectif et rapide (qlq ns)
Densit dintgration plus faible (flash EEPROM) mais
elle bnficie de lvolution technologique importante (
contrairement au EEPROM et flash EEPROM)

Introduction aux systmes sur puce

31

Technologie de programmation
Technologie SRAM (FPGA)

Cellule
SRAM

Cellule
SRAM
Lignes de
connexion

Ligne de
connexion

Ligne de
connexion

Introduction aux systmes sur puce

MUL
Entre dun
bloc logique

32

PAL
ASIC

CUSTOM

SEMI-CUSTOM

Circuits

Circuits

Circuits

Circuits

sur mesure

prcaractriss

prdiffuss

configurables

Full
Custom

Standart
cell

Sea of
gate

Gate
array
SRAM

PAL

FPGA

CPLD

PAL

Antifuse

: Programmable Array Logic

Introduction aux systmes sur puce

33

PAL

PAL est le concept de base des PLD (programmable Logic


Device)
PAL: la disposition des transistors et des connections est
fixe, mais on peut dtruire ou remettre une connexion.
Principe : Qcq soit la complexit dune fonction logique, elle
peut tre crite sous la forme dune somme de produits: matrice
de portes AND et porte OR

Introduction aux systmes sur puce

34

PAL

liaison non programmable


liaison programmInatrobdulection aux systmes sur puce

11
00
00

Circuits logiques programmables


Selon

le caractre programmable des


matrices AND et OR, il existe :
PAL (

programmable array logic):

Matrice de ET programmable, matrice OU fige

PROM

Matrice de ET fige, matrice OU programmable

PLA

( programmable read-only memory)

( programmable logic array)

Matrice de ET programmable, matrice OU programmble

Introduction aux systmes sur puce

36

PROM

Introduction aux systmes sur puce

37

PLA

Introduction aux systmes sur puce

38

PLA: exemple

Introduction aux systmes sur puce

39

PAL: exemple

Introduction aux systmes sur puce

40

Les circuits configurables:exercice


Donnez le cblage du circuit ci-dessous en utilisant :
1. PAL
2. PROM
b

P redefi ned l i nk
P r o g r a m m a b l e l in k

A ddres s 0

&

A ddres s 1

&

A ddres s 2

&

A ddres s 3

&

A ddres s 4

&

A ddres s 5

&

A ddres s 6

&

A ddres s 7

&

!b c

!c

P re d e fi n e d A N D array

Introduction aux systmes sur puce

!a & b &

a & !b & !c
a & !b & c
a & b &

!c

a & b &

!a & b & !c

!a

!a & !b & c

!a & !b & !c

Programmable OR
array

41

Les circuits configurables: exercice


Donnez le cblage du circuit ci-dessous en utilisant :
1.PAL
a
b
c
2. PROM
&

Address 1

&

Address 2

&

Address 3

&

Address 4

&

Address 5

&

Address 6

&

Address 7

&

!a & !b & !c
!a & !b & c
!a & b & !c
Programmable OR array

Address 0

Predefined link
Programmable link

!a & b & c
a & !b & !c

a & !b & c
a & b & !c
a&b&c
l

Predefined AND array

a !a b !b c !c

w = (a & b)

Introduction aux systmes sur puce

x = !(a & b)

y = (a & b) ^ c

107

Les circuits configurables: SPLD(simple


programmable logique Device)

Introduction aux systmes sur puce

43

SPLD: Classification selon la


structure de sortie

Trois types de structures de base:


Combinatoire
Squentielle
Versatile

Introduction aux systmes sur puce

44

SPLD:Combinatoire

-Certaines broches peuvent tre utilises aussi bien en entre quen sortie grce
un systme de logique 3 tats. La commande de cette dernire est configure
au moment de la programmation.
-La structure de sortie permet aussi de rinjecter les sorties en
entre (Feed-back).
Introduction aux systmes sur puce

110

SPLD: Squentielle

Ces circuits sont composs de bascule D. Les sorties des


bascules sont de type trois tats contrles par un signal de
validation Enable ou OE, et une horloge est commune toutes
les bascules (clock).

Introduction aux systmes sur puce

46

SPLD: Versatile

Ce type de structure reprsente les P.A.L. les plus volues,


car ces structuresproposent quatre configurations possibles:
combinatoires et squentielles

S1S0

Introduction aux systmes sur puce

47

SPLD: Versatile

Introduction aux systmes sur puce

48

Les circuits configurables: SPLD(simple


programmable logique Device)
Matrice de ET ralisant
tous les produits possibles
(maxtermes) connecte
aux sorties par desOU

Grande surface de Si
utilise. Ces circuits ne
sont plus utiliss
aujourdhui

114

CPLD
ASIC

CUSTOM

SEMI-CUSTOM

Circuits

Circuits

Circuits

Circuits

sur mesure

prcaractriss

prdiffuss

configurables

Full
Custom

Standart
cell

Sea of
gate

Gate
array
SRAM

FPGA

CPLD

PAL

Antifuse

CPLD : Complex Programmable Logic Device

Introduction aux systmes sur puce

50

CPLD
Les CPLDs regroupent
plusieurs PALs
interconnects par un
rseau de connexions
programmables.
Les CPLDs sont les
prmisses des premiers
FPGAs.
Ces circuits ne sont plus
utiliss aujourdhui car
remplacs par les FPGAs.

PAL

E/S

PAL

MATRICE DINTERCONNECTIONS

PAL

Introduction aux systmes sur puce

E/S

PAL

51

CPLD

la technologie de programmation est


gnralement EEPROM ou Flash EPROM)
Un seul point de connexion relie entre eux les
blocs logiques. Les temps de propagations des
signaux sont constants et prdictibles (avant
routage) ce nest pas le cas des FPGA (voir
plus tards)

Introduction aux systmes sur puce

52

CPLD/ EPLD(Erasable)
Altera MAX 7000 Macrocell structure

Rseau ET-OU
avec 8 termes
produits
+ Multiplexeur
programmable

Introduction aux systmes sur puce

53

Altera MAX
7000
Macrocell
structure

Introduction aux systmes sur puce

FPGA
ASIC

CUSTOM

SEMI-CUSTOM

Circuits

Circuits

Circuits

Circuits

sur mesure

prcaractriss

prdiffuss

configurables

Full
Custom

Standart

cell

Sea of
gate

Gate
array
SRAM

FPGA

FPGA

CPLD

PAL

Antifuse

: Field Programmable Gate Array

Les blocs logique sont plus nombreux et plus simples que les CPLD mais cette fois
les interconnexions entre les blocs logiques ne sont plus centralises
Introduction aux systmes sur puce

55

FPGA : Architecture
Un FPGA est la base :
Un rseau de blocs de logique
programmable (Configurable
Logic Block -CLB), chaque bloc
pouvant raliser des fonctions
complexes de plusieurs variables,
et comportant des lments
mmoire

Un rseau dinterconnexions
programmables entre les blocs

Des blocs spciaux dentre et de


sortie avec le monde extrieur
(Input/Output Block IOB).

Introduction aux systmes sur puce

56

CLB base de multiplexeurs


Utilise pour la technologie ANTIFUSIBLE quivaut une LUT cble

Introduction aux systmes sur puce

57

CLB base de multiplexeurs : Exemple


Cellule ACTEL ACT3

Introduction aux systmes sur puce

58

FPGA: CLB base de LUT

Arrangement Matriciel de blocs logiques avec configuration des :


1. La fonction de chaque bloc
2. Interconnexions entre les blocs logiques

Choix configurable
par bitstream

Entres

4-LUT

Introduction aux systmes sur puce

Sortie

59

FPGAs : CLB base de Look Up Table

Introduction aux systmes sur puce

125

FPGA :Les Look Up Tables


Ce sont de petits lments de mmorisation, qui refltent
la table de vrit dune fonction logique.
In 0

In 1

In 2

In 3

LUT = Table de scrutation


LUT 4 entres = RAM 2octets
SRAM

SRAM

In 0
In 1
In 2
In 3

SRAM

LUT 4

Out
SRAM

SRAM

SRAM

Introduction aux systmes sur puce

Out
61

FPGA : Les Look Up Tables


In 0

1 1 11

1 1 10

1 1 01

1 1 00

1 0 11

1 0 10

In 1

In 2

In 3

Out

Introduction aux systmes sur puce

62

FPGA :Les Look Up Tables


In 0 = 0

1 1 11

1 1 10

1 1 01

1 1 00

1 0 11

1 0 10

In 1

In 2

In 3

Out

Introduction aux systmes sur puce

63

FPGA : Les Look Up Tables


In 0 =0

1 1 11

1 1 10

1 1 01

1 1 00

1 0 11

1 0 10

In 1

In 2

In 3

Out

Introduction aux systmes sur puce

64

FPGA : Les Look Up Tables


In 0 =0

1 1 11

1 1 10

1 1 01

1 1 00

1 0 11

1 0 10

In 1 = 1

In 2

In 3

Out

Introduction aux systmes sur puce

130

FPGA : Les Look Up Tables


In 0 =0

1 1 11

1 1 10

1 1 01

1 1 00

1 0 11

1 0 10

In 1 = 1

In 2

In 3

Out

Introduction aux systmes sur puce

66

FPGA: Les Look Up Tables


In 0 =0

1 1 11

1 1 10

1 1 01

1 1 00

1 0 11

1 0 10

In 1 = 1

In 2 =1

In 3 = 1

Out= 1 = In3 In2 In1 Ino

Introduction aux systmes sur puce

67

FPGA : CLB

68

Exemple: implmentation dun


additionneur srie

69

FPGA : Xilinx CLB XC4000

70

Exercice:
1.Comment peut on-raliser une fonction combinatoire 4 variables avec le CLB
de xilinx? Donner le chemin de propagation du signal de sortie
2.Comment peut on-raliser une fonction squentielle 5 variables avec le CLB
de xilinx? Donner le chemin de propagation du signal de sortie

71

Exercice:
1. Comment peut on-raliser une fonction combinatoire 4 variables avec le CLB
de xilinx? Donner le chemin de propagation du signal de sortie

72

Exercice:
2. Comment peut on-raliser une fonction squentielle 5 variables avec le CLB
de xilinx? Donner le chemin de propagation du signal de sortie

73

FPGA: configuration

Arrangement Matriciel de blocs logiques avec configuration des :


1. La fonction de chaque bloc
2. Interconnexions entre les blocs logiques

Introduction aux systmes sur puce

74

FPGA: interconnexions
programmables

Matrice de connexions
Programmables
(Programmable Switch Matrix)

Introduction aux systmes sur puce

Xilinx

140

FPGA: interconnexions programmables

CLB

CLB

lment dune
matrice de connexion(PSM)

CLB

Introduction aux systmes sur puce

76

FPGA: types de connexions

Directes: relient deux CLBs adjacents


Simples: relient deux PSMs (Programmable Switch
Matrix) adjacentes
Doubles: relient deux PSMs spares par une PSM
Quadruples: relient deux PSMs spares par 3 PSMs
Longs: traversent la puce de part en part, soit
horizontalement ou verticalement (ils peuvent toutefois
tre spares en deux moities de longueur gale et
indpendantes)

Introduction aux systmes sur puce

77

FPGA: types de connexions


Connexions directes :

relient deux CLB


adjacents.
Ne passent pas par
une matrice de
connexion (PSM)

Introduction aux systmes sur puce

78

FPGA: types de connexions


Connexions Simples:

Relient deux PSM


adjacentes.
Offrent une grande
flexibilit de parcours.
Le passage d'une
connexion simple au
travers d'une PSM entrane
un dlai.
Ce type de connexion se
prte surtout aux liens de
nature locale.

Introduction aux systmes sur puce

79

FPGA: types de connexions

Connexions doubles:

relient deux PSMs


spares par une PSM:
Offrent une plus grande
rapidit que les connexions
simples pour les liens de
longueur intermdiaire
Maintiennent une bonne
flexibilit de parcours.
De la mme manire, les
connexions quadruples
permettent des liens
rapides un peu plus longs
mais entranent une
certaine pnalit dans la
flexibilit du parcours.
Introduction aux systmes sur puce

80

FPGA: types de connexions

Les longues lignes sont de


longs segments mtalliss
parcourant toute la longueur et
la largeur du composant, elles
permettent ventuellement de
transmettre avec un minimum
de retard les signaux entre les
diffrents lments dans le but
d'assurer un synchronisme
aussi parfait que possible. De
plus, ces longues lignes
permettent d'viter la
multiplicit des points
d'interconnexion.

Introduction aux systmes sur puce

81

FPGA: types de connexions

Lignes simples
Lignes doubles
Lignes longues

Introduction aux systmes sur puce

82

FPGA: types de connexions


Introduction aux systmes sur puce

Xilinx XC4000X

83

FPGAs :Interconnexions programmables

Le passage dun bloc logique un autre se fera par un nombre de


point de connexion (responsable des temps de propagation)
fonction de la position relative des deux blocs logique et de ltat
dencombrement de la matrice.
Ces dlais ne sont donc pas prdictibles (contrairement au CPLD)
avant le placement routage
De la phase de placement des blocs logique dpendront donc
beaucoup les performances du circuit en terme de vitesse

Introduction aux systmes sur puce

84

FPGAs : Interconnexions programmables

Introduction aux systmes sur puce

150

I/O Blocs

Les blocs dentre/sortie (IOBs)


contrlent le flot de donnes entre les
broches du FPGA et la logique interne
utilisateur; les I/O sont:
Bidirectionnelles (entre ou sortie)
3 tats (haute impdance)
A retards programmables
Multi-standards (niveaux logiques)

Introduction aux systmes sur puce

86

I/O Blocs
Problme de faire communiquer les composants entre eux : il y a plusieurs
codages en tension des niveaux 1 et 0 (tension d'alimentation VDD, type de marges):
Les buffers permettent de rsoudre ce problme

Introduction aux systmes sur puce

87

FPGA : Les entres/sorties


FPGAs : Xilinx IOB (Input Output Block)

Introduction aux systmes sur puce

88

Sparta
n 3E

Introduction aux systmes sur puce

FPGA: et encore!!!

Introduction aux systmes sur puce

155

La technologie actuelle des FPGA

Jusqu 200 000 cellules logiques lmentaires

Blocs mmoire configurables

512 multiplieurs 18x18 bits embarqus

Processeurs embarqus

Blocs de 18kbits, au total jusqu 1Mo

Structures ddies pour les traitements


arithmtique

Cellule = Look-up-Table + registres

Jusqu 4 PowerPC en dur


Soft-Core : processeurs utilisant les cellules logique

Liaisons sries haut dbit


Jusqu 10 Gbits
MAC Ethernet intgre

Introduction aux systmes sur puce

156

FPGA: Les modes de configuration

Le bitstream dcrit la configuration de tous les


lments configurables du circuits
Un transfert de bitstream est ncessaire lors de
la mise sous tension et chaque
reconfiguration

Introduction aux systmes sur puce

157

FPGA: Les modes de configuration

On rencontre couramment 6 techniques de configuration


:

Master mode srie ou parallle

Slave mode srie ou parallle

Peripheral mode srie ou parallle

Lenvois des donnes de


configurations peut se faire en srie
ou en parallle

La slection de la technique de configuration se fait


grce des bits de configuration du FPGA

Dans tous les cas la configuration se fait via un fichier


de configuration binaire : le Bitstream

Les entres sorties utilises pendant la configuration


sont aussi des I/O du circuits utilisables en
Introduction aux systmes sur puce
fonctionnement

158

Master mode
Dans ce cas le FPGA est matre de sa configuration

Data

Data-in

FPGA

EPROM
CLK

CLK

CTRL

OE

MODE SERIE

Introduction aux systmes sur puce

159

Master mode
Dans ce cas le FPGA est matre de sa configuration
8bits
Data(7:0)

Data-in(7:0)
ADD (11:0)

ADD (11:0)

FPGA

EPROM
OE

CTRL

MODE PARALLELE

Introduction aux systmes sur puce

169

Slave mode
Dans ce cas le FPGA est esclave, il subit sa configuration

Data

Data-in

FPGA

EPROM
CLK

CLK

OE

Autre FPGA
circuit logique de contrle
ou cble de configuration
Introduction aux systmes sur puce

96

Peripheral mode
Le FPGA est vue comme un priphrique du microprocesseur
8bits
Data(7:0)

Data-in(7:0)
Chip_Selec

ADD (11:0)

FPGA

P
CTRL

CTRL

Le microprocesseur peut tre un cur de processeur


embarqu dans le circuit

Introduction aux systmes sur puce

97

Cas dtude : Xilinx Spartan 3E

Plusieurs versions:

Introduction aux systmes sur puce

98

Carte digilent basede Spartan


XC3S500E

Introduction aux systmes sur puce

99

Carte Spartan XC3S500E : Composants


La carte Spartan 3E regroupe :
un FPGA XC3S500E Spartan 3E,
un CPLD Coolrunner II,
une mmoire PROM de 4 Mbit,
une mmoire Flash srielle de 16 Mbit,
une mmoire Flash parallle de 128 Mbit,
une mmoire DDR SDRAM de 512 Mbit,
un cran LCD,
un port PS/2,
un port VGA,
une prise Ethernet 10/100,
deux ports RS-232,
un port de configuration USB,
deux convertisseurs de donnes,
un oscillateur 50 MHz,
un connecteur dexpansion Hirose FX2 permettant 40 entres/sorties
gnriques,
8 DEL,
des boutons poussoir et des commutateurs.
Introduction aux systmes sur puce

100

Carte Spartan 3E: modes de configuration


La carte supporte trois modes de configuration
la mise sous tension,
soit le mode Master-Slave utilisant le PROM 4 Mbits
(1MBits sur version ISI),
un mode SPI utilisant la mmoire Flash sriel
et un mode BPI utilisant la mmoire Flash parallle.

La carte peut aussi tre programme


directement laide dun port JTAG lorsquelle
est sous tension.
Introduction aux systmes sur puce

101

Flot de conceptions des FPGA

Voir Module Synthse VHDL


darchitecture

Introduction aux systmes sur puce

102

Chapitre 3 :Cible
logicielle- les
microcontrleurs

1. Fonctionnement
et dfinition

Organisation fonctionnelle dun


systme microcontrleur

Introduction aux systmes sur puce

105

Dfinition
Cest une unit de traitement de linformation de type microprocesseur laquelle on a
ajout des priphriques internes permettant de raliser des montages sans ncessiter
lajout de composants externes.

Ce sont des systmes minimum sur une seule puce. Ils

contiennent : un CPU, de la
RAM, de la ROM et des ports dEntre/Sorties (parallles, sries,etc..).

Introduction aux systmes sur puce

106

Dfinition
Ils comportent aussi des fonctions spcifiques comme des compteurs
programmables pour effectuer des mesures de dures, des CAN voir des
CNA pour sinsrer au sein de chanes dacquisition, des interfaces pour
rseaux de terrain, etc ...
Il est adapt pour rpondre au mieux aux besoin des applications
embarques (appareil lectromnagers, chane dacquisition, lecteur carte
puce, etc...). Il est par contre gnralement moins puissant en terme de
rapidit, de taille de donnes traitables ou de taille de mmoire adressable
quun microprocesseur.

Introduction aux systmes sur puce

107

Dfinition
Avantages :
. Encombrement rduit,
. Circuit imprim peu complexe,
. Faible consommation,
. Cot rduit.

Inconvnient :
. Systme de dveloppement onreux,
. Programmation ncessitant un matriel adapt.

Introduction aux systmes sur puce

108

Diffrence entre microprocesseur


et microcontrleur

Introduction aux systmes sur puce

109

fonctionnement

Introduction aux systmes sur puce

110

Exemple: M68HC05

Introduction aux systmes sur puce

111

2. Architecture

Bit dfinition

Introduction aux systmes sur puce

178

Harvard ou Von Neumann

Un bus dinstructionsUn bus de donnes


Introduction aux systmes sur puce

Un seul bus
dinstructions et de
donnes

179

1.Le microprocesseur

RISC ou CISC: Plus on rduit le


nombre dinstructions, plus facile et
plus rapide en est le dcodage, et plus
vite le composant fonctionne.
Cependant, il faut plus d'instructions
pour raliser une opration complexe.
Jeu dinstructions
Codage des instructions et Mode
dadressage

Introduction aux systmes sur puce

116

1. Le microprocesseur:
Contrleur d interruptions
Le microcontrleur, dans son environnement, est destin traiter des
informations en temps rel .
Lapplication est couple au monde extrieur, par lchange frquent de
messages et de signaux des instants prvus.
Il est dans lobligation de changer dtat en fonction des priorits relatives
de lopration en cours et de celle qui lui est demand. Il interrompt ou non le
droulement normal du programme en fonction dune demande externe.
Celles-ci sont vues du microcontrleur comme des demandes dinterruption.
deux types dinterruption :

NMI (No Maskable Interrupt) : interruption non - masquable,


IRQ (Interrupt Request) : interruption masquable.
Introduction aux systmes sur puce

117

1. Le microprocesseur:
Contrleur d interruptions
Du matriel qui gre les signaux dinterruption

Quelque soit lentre dinterruption active, le microprocesseur ralise des


tches identiques :
dans tout les cas, le programme principal est interrompu ;
le processeur doit sauvegarder le contenu du PC dans la pile ;
le processeur excute une squence privilgie, reflet du type de
traitement dinterruption ;
Introduction aux systmes sur puce

118

2. Mmoire programme

Ce dispositif contient les instructions du programme que doit excuter le


microprocesseur. Ce type de mmoire (appele mmoire morte), est
uniquement accessible en lecture. Sa programmation ncessite une
procdure particulire et un matriel adquat.

Il en existe diffrents types selon leur mode de programmation :

De la PROM programmable lectriquement une seule fois par le


dveloppeur (appele aussi OTPROM),
De la EPROM programmable lectriquement et effaable aux U-V
(appele aussi UVPROM),
De la EEPROM programmable et effaable lectriquement.
De lammoire flash (programmable une vitesse plus rapide, densit
leve)

Introduction aux systmes sur puce

119

3. Mmoires de donnes
Ce dispositif permet de mmoriser temporairement les donnes gnres par
le microprocesseur pendant les diffrentes phases du traitement numrique
(rsultats doprations, tats des capteurs...). Ces mmoires sont accessibles
en criture et en lecture.
On en trouve 2 types :

De la mmoire vive (RAM) volatile : (donnes perdues en cas de


coupure de lalimentation) ayant un temps de lecture et criture assez
court(quelques ns),
De la mmoire morte (EEPROM) non-volatile : (donnes conserves en
cas de coupure de lalimentation) ayant un temps dcriture assez lev
(quelques ms) par rapport au temps de lecture qui est assez faible
(quelques ns).
Introduction aux systmes sur puce

120

4. Linterface parallle
GPIO (General Purpose Input Output)
Ce type dinterface, rpartie sur plusieurs ports (maximum 8 bits), permet de
prendre en compte des tats logiques appliqus en entre (tat de capteurs) ou
de gnrer des signaux binaires en sortie (commande dactionneurs).
Les broches de ces ports peuvent donc tre configures en entre ou en sortie,
avec diffrentes options (rsistances de rappel, sorties collecteurs ouverts,
interruption...).
La configuration ainsi que ltat logique de ces broches est obtenue par des
oprations dcriture ou de lecture dans diffrents registres associs chaque port.
On trouve gnralement :
Un registre de direction pour une configuration en entre ou en sortie,
Un registre de donne recopiant les tats logiques de chaque broche de port,
Un registre doption permettant plusieurs configurations en entre ou en sortie.
Introduction aux systmes sur puce

121

5. Linterface srie: USART


(Universal Synchronous Asynchronous
Receiver Transmetter)
Ce type dinterface permet au microcontrleur de communiquer avec dautres

systmes base de microprocesseur.


Les donnes envoyes ou reues se prsentes sous la forme dune
succession temporelle (sur un seul bit) de valeurs binaires images dun mots.

Il y a 2 types de liaison srie : synchrone et asynchrone.

Introduction aux systmes sur puce

122

5. Linterface srie : Liaison srie


synchrone
Dans ce dispositif la transmission est synchronise par un signal dhorloge
mis par lunit maitre

Introduction aux systmes sur puce

123

5. Linterface srie: Liaison srie


asynchrone
Ce dispositif ne possde pas de signal dhorloge de synchronisation.
Les units en liaison possdent chacune une horloge interne cadence la mme
frquence.
Lorsquune unit veut mettre un mot binaire, elle gnre un front descendant sur sa
ligne mettrice. A la fin de lmission de ce mot, la ligne repasse au niveau haut.
La donne transmettre peut contenir un bit supplmentaire appel parit et servant
la correction derreurs.

Introduction aux systmes sur puce

124

5. Linterface srie

Plusieurs normes de communication srie:


USB (Universal serial Bus)
CAN (Controller Area Network)
SPI (Serial Peripheral Interface
I2C (Inter Integrated Circuit)
UART (Universal Asynchronous Recever Transmitter)
LIN (Local Interconnect Network)
Ethernet
Wireless interfaces

Zigbee
bluetooth
Introduction aux systmes sur puce

190

5. Linterface srie : LA NORME RS232


Longueur des mots : 7 bits (ex : caractre ascii) ou 8 bits
La vitesse de transmission : elle est dfini en bits par seconde ou bauds.
Elle peut prendre des valeurs allant de 110 115 200 bds.
Parit : le mot transmis peut tre suivi ou non d'un bit de parit qui sert
dtecter les erreurs ventuelles de transmission.
Bit de start : la ligne au repos est l'tat logique 1 pour indiquer qu'un mot va
tre transmis la ligne passe l'tat bas avant de commencer le transfert. Ce
bit permet de synchroniser l'horloge du rcepteur.
Bit de stop : aprs la transmission, la ligne est positionne au repos pendant
1, 2 ou 1,5 priodes d'horloge selon le nombre de bits de stop.
Niveau de tension : Un 0logique est matrialis par une tension comprise
entre 3 et 25V, un 1par une tension comprise entre -25 et -3 V. Des circuits
spcialiss comme le MAX 232 ralise la conversion partir
de niveau TTL.
Introduction aux systmes sur puce

191

6. Convertisseur Analogique
Numrique (CAN / ADC)
Le ADC intgr dans les microcontrleurs est gnralement du type Approximations
successives.
Il possde plusieurs entres multiplexes accessibles via les broches des ports de
linterface parallle.
Le ADC possde normalement 2 registres :
Un registre de donnes contenant le rsultat de la conversion,
Un registre de contrle permettant de lancer et de surveiller la conversion.

127

7. TIMER
Le Timer permet de raliser les fonctions suivantes :
1. Gnration dun signal priodique
2. Gnration dune impulsion calibre,
3. Temporisation: compter les cycles dhorloge du uc lui-mme. Dans
ce cas, comme lhorloge est fixe, il sagit en ralit de compter du
temps.
4. Comptage d'vnements: compter les impulsions reues sur une
pin dentre.
Plusieurs registres associs au Timer permettent de configurer les
diffrents modes dcrits prcdemment.

Introduction aux systmes sur puce

128

8. Le chien de garde (Watchdog)


Ce dispositif est un systme anti-plantage du microcontrleur. Il sassure quil ny ait
pas d'excution prolong dune mme suite dinstructions.
il s'agit en gnral d'un compteur qui est rgulirement remis zro.
Si le compteur dpasse une valeur donne (timeout) alors on procde un reset
(redmarrage) du systme.
Le chien de garde consiste souvent en un registre qui est mis jour via une
interruption rgulire. Il peut galement consister en une routine d'interruption qui doit
effectuer certaines tches de maintenance avant de redonner la main au programme
principal. Si une routine entre dans une boucle infinie, le compteur du chien de garde
ne sera plus remis zro et un reset est ordonn.
Le chien de garde permet aussi d'effectuer un redmarrage si aucune instruction
n'est prvue cet effet. Il suffit alors d'crire une valeur dpassant la capacit du
compteur directement dans le registre : le chien de garde lancera le reset.

Introduction aux systmes sur puce

129

9. Direct Memory Access (DMA)

Transfert rapide de donnes entre


Mmoire Priphriques
Priphrique priphrique
Mmoire et mmoire

sans lintervention du processeur


Permet au processeur de raliser dautre
actions pendant le transfert.
Introduction aux systmes sur puce

130

LES SIGNAUX DHORLOGE.


Le signal dhorloge permet de cadencer le fonctionnement du microcontrleur.
Ce dernier intgre gnralement une porte Trigger de Schmitt afin de raliser
un oscillateur. Pour lobtenir on place un quartz entre les deux broches OscIn
et OscOutcomme lindique le schma suivant :

Introduction aux systmes sur puce

131

3. DVELOPPEMENT DU
PROGRAMME ET MISE
AU POINT.

Dveloppement de code

Ou un mlange
Introduction aux systmes sur puce

133

Dveloppement et mise au point


Que ce soit dans un langage assembleur ou volu, lcriture du programme
ainsi que sa mise au point doivent suivre le diagramme suivant:

Introduction aux systmes sur puce

134

Simulation ou mulation
Lmulateur : est un dispositif (assez onreux) qui permet de remplacer le
microcontrleur afin deffectuer la vrification et la mise au point du programme.
Cest une carte lectronique comportant, dun cot un connecteur compatible avec
le botier du microcontrleur quil mule, et de lautre, une connexion de type
RS232 (ou autre) relie micro-ordinateur.
La mise au point peut alors se faire en pas pas ou avec des points darrt
permettant ainsi de cerner trs rapidement les bugs de certaines routines.
Le simulateur : beaucoup moins coteux, permet la mme chose mais de faon
beaucoup moins efficace car il ne tient pas ou trs peu compte de lenvironnement
du microcontrleur

Introduction aux systmes sur puce

200

Exemple de microcontrleur

Introduction aux systmes sur puce

201

4. Exemple de la
famille PIC de
MICROCHIP

Architecture
Les PIC se conforment l'architecture Harvard :
-La plupart des instructions occupent un mot de la mmoire de programme. La taille
de ces mots dpend du modle de PIC,
- la mmoire de donnes est organise en octets.
Les PIC sont des processeurs RISC,
Un cycle d'instruction d'un PIC dure 4 temps d'horloge. La plupart des instructions
durent un cycle, sauf les sauts qui durent deux cycles. On atteint donc des vitesses
leves.
Avec un quartz de 4 MHz (ou l'horloge interne), on obtient donc 1 000 000 de
cycles/seconde, or, comme le PIC excute pratiquement 1 instruction par cycle, hormis
les sauts, cela donne une puissance de lordre de 1 MIPS (1 million d'instructions par
seconde).
Les PIC peuvent tre cadencs 20 MHz (srie PIC16), 40 MHz (srie PIC18), voire
48 MHz (exemple : PIC18F2550 PIC avec USB) et 64 MHz (exemple : PIC18F25K20
PIC en 3,3 V).
Introduction aux systmes sur puce

138

Les familles du PIC


Les modles de PIC courants sont reprs par une rfrence de la forme :
2 chiffres : famille du PIC (10, 12, 16, 17 et 18).
1 lettre : type de mmoire de programme (C ou F).
-Le F : indique en gnral qu'il s'agit d'une mmoire flash et donc effaable
lectroniquement.
- Le C : indique en gnral que la mmoire ne peut tre efface que par
exposition aux ultra-violets (exception pour le PIC16C84 qui utilise une
mmoire EEPROM donc effaable lectriquement).
Un L peut tre ajout devant pour indiquer qu'il s'agit d'un modle basse tension
(exemple : 2 V 5,5 V si LF 4,2 V 5,5 V si F).
un groupe de lettres pour indiquer le botier et la gamme de temprature.
Par exemple, le PIC18LF4682-I/P : est un microcontrleur de la famille PIC18,
basse tension (L), mmoire flash (F), modle 4682, gamme de temprature
industrielle (I) et botier DIL40.
Introduction aux systmes sur puce

139

Les familles du PIC

PIC16: Composants de milieu de gamme.

C'est la famille la plus fournie.


Jeu dinstruction de 35 instructions.
Les PIC 16 peuvent tre cadencs 20 MHz

PIC18 :

Cette famille a un jeu d'instruction plus complet puisqu'il


comprend de l'ordre de 75 instructions. Cette palette
d'instructions tendue lui permet de faire fonctionner du code C
compil de manire nettement plus efficace que les familles
prcdentes.
On peut les utiliser avec un quartz oscillant jusqu' 64 MHz.
Introduction aux systmes sur puce

140

PIC16F84
Ses principales caractristiques:
microcontrleurs 8 bits
seulement 35 mots d'instruction
instruction sur 14 bits
vitesse d'horloge (existe en version 4, 10 ou 20 Mhz)
4 sources d'interruption (?)
1000 cycles effacement/criture possible de la mmoire programme flash
1K mots mmoire programme Flash
68 octets de donnes RAM
64 octets de donnes EEPROM
13 pins I/O avec contrle individuel de direction
TMR0 8bit timer/compteur
Le tout sur un pav de 18 pins.

Introduction aux systmes sur puce

141

PIC16F84

Introduction aux systmes sur puce

142

Programmation

Les PIC disposent de plusieurs technologies de mmoire de programme :


ROM, EPROM, EEPROM, UVPROM, flash. Certains PIC sont dpourvus de
mmoire programme interne, c'est le cas des PIC18C601 et PIC18C801 o le
programme doit tre contenu dans une mmoire externe.

La programmation du PIC peut se faire de diffrentes faons :


1. Par l'intermdiaire d'un programmateur ddi (par exemple : PRO MATE ou
PICSTART Plus de la socit Microchip)
2. Par programmation in-situ. Il suffit alors de cbler correctement le
microcontrleur sur la carte fille pour qu'une simple liaison srie suffise. Il existe
pour cela plusieurs solutions libres (logiciel + interface faire soi-mme) ou
commerciales (par exemple : PICkit 2 ou ICD2 de Microchip).

Introduction aux systmes sur puce

143

MPLAB - Plate forme de


dveloppement
Pour crire un programme PIC il faut :
un diteur de texte
un assembleur
un compilateur
un simulateur pour tester le programme sur le micro
Tout cela est mis gracieusement disposition par Microchip de faon
libre. Cela s'appelle MPLAB

Introduction aux systmes sur puce

144

Le programmateur

Une fois le programme compil, il faut le


transfrer dans la mmoire du microcontrleur.
Pour cela il vous faut :
Une petite interface matrielle
Un logiciel: qui assure le transfert des donnes
entre le PC et le microcontrleur (il est fourni
avec le programmateur). Comme exemple
ICPROG , c'est le meilleur logiciel de
programmation de PIC l'heure actuelle, et il a
l'avantage d'tre disponible en freeware.
Introduction aux systmes sur puce

210

Exemple dapplications: commande


dune Led
Ecrire un programme qui lit ltat d'un interrupteur branch a une broche d'entre d'un
microcontrleur.
Lorsque l'interrupteur est ferm, le programme doit allumer une LED branche
a une broche la sortie pour environ 1 seconde et ensuite steindre. La LED
ne se rallumera pas avant que l'interrupteur ne s'ouvre et se ferme une autre fois.
Objectifs du problme
- montrer comment un programme peut dtecter des signaux d'entre comme
l'ouverture et la fermeture d'un interrupteur
-c'est un exemple de programme pour contrler un signal de sortie
-le fait que la LED reste allume pendant 1 seconde montre comment un programme
peut tre utiliser pour contrler la mesure en temps rel

Introduction aux systmes sur puce

Commande dune LED

Introduction aux systmes sur puce

Exemple dapplications:
clignotement de Led

Introduction aux systmes sur puce

4. Le
microcontrleur
STM 32
Sources:
STEcole_training.pdf
RM0008 Reference manual.pdf
Sur le site : www.st.com

Architecture
interne

Introduction aux systmes sur puce

Architecture interne
ARM 32-bit Cortex-M3 CPU
Embedded Memories :
FLASH: up 128 Kbytes
SRAM: up 20 Kbytes
CRC calculation unit
7 Channels DMA
Power Supply with internal regulator and low power modes :
2V to 3.6V supply
4 Low Power Modes with Auto Wake-up
Up to 72 MHz frequency managed & monitored by the Clock Control
Rich set of peripherals & IOs
Embedded low power RTC with VBAT capability
Dual Watchdog Architecture
5 Timers w/ advanced control features(including Cortex SysTick)
9 communications Interfaces
Up to 80 I/Os (100 pin package) w/ 16 external interrupts/event
Up to 2x12-bits 1Msps ADC w/ up to 16 channels and Embedded
temperature sensor w/ +/-1.5linearity with T
Introduction aux systmes sur puce

216

System architecture
I-Bus (Instruction Bus): ddi principalement pour le transfert des instructions (code)
entre Cortex et la mmoire Flash.
D-Bus & System Bus: connects directement la matrice de bus qui sert de lien
avec les bus daccs la SRAM, le systme DMA (Direct Memory Access) ainsi que
le AHB (Advnaced High Bus) .
APB1 & 2 (Advanced Peripheral Bus 1 & 2): Chacun des deux bus est connect au
AHB travers un pont (respectivement AHB-APB1 et AHB-APB2) et servent vhiculer
les donnes vers et depuis une partie des priphriques.

up to 72MHz

up to 36MHz

Introduction aux systmes sur puce

217

Processeur CortexM3

Un processeur 32 bits: Il contient un chemin de donnes (data path)


32 bits, un banc de registres 32 bits et des interfaces mmoires de
32 bits.
Il se base sur un pipeline 3 tages (Fetch, Decode et Execute)
possde une architecture Harvard, c'est--dire quil contient deux
bus distincts pour le transfert des donnes et des instructions. Ceci
permet daccder en mme temps aux instructions et aux donnes,
et par consquent une augmentation de la performance puisque
laccs aux donnes naffecte pas le pipeline.
lespace dadressage du Cortex-M3 est unique et peut atteindre la
taille de 4 GO

Introduction aux systmes sur puce

218

Firmware : code ncessaire agissant trs bas


niveau (Driver) et permettant aux applications
dutiliser le matriel dune faon transparente
Espace utilis pour adresser les priphriques d
Cortex-M3 : Contrleur dinterruption, le Timer
systme, le bloc de contrle, etc.

Espace utilis pour adresser les


priphriques ajouts par le constructeur
du microcontrleur intgrant le Cortex-M3.
Espace utilis pour stocker les donnes
relatives au code.
Espace utilis pour stocker du code
excutable. On peut galement stocker
219
Introduction aduxessysdtomnesnsurepsu.ce

Gestion des interruptions (NVIC)

Le NVIC est capable de grer jusqu 240 interruptions gnres


par des priphriques externes au Cotex-M3 et dont le niveau de
priorit peut tre dynamiquement fix parmi 256 niveaux possibles.
En plus de ces interruptions, le NVIC gre un certain nombre
dexceptions dclenches par des priphriques internes du CortxM3 (Bus AHB, MPU, Timer SysTick, etc..) ou par des fautes au
niveau du programme mme.

Introduction aux systmes sur puce

220

Introduction aux systmes sur puce

Gestion des interruptions (NVIC)

Quand
une
exception
autorise est dclenche,
le CPU commence par
rcuprer ladresse de la
routine excuter partir
dun emplacement mmoire
spcifique connu davance

Lensemble des adresses


des routines relatives aux
diffrentes
sources
dinterruptions forme la
table
de
vecteurs
dinterruptions.

Dans le Cortex-M3, la table


de vecteurs commence
partir de ladresse 0 de la
zone code :

Introduction aux systmes sur puce

222

Droulement dune interruption


Quand une interruption autorise est
dclenche par un priphrique, le NVIC
force le processeur la servir.
Il commence par sauvegarder un certain
nombre de registres dans la pile, et
paralllement, il rcupre ladresse de la
routine relative linterruption.
Le temps total qui scoule du moment
ou linterruption se dclenche jusqu
lexcution de la premire instruction de la
routine est de seulement 12 cycles.
Une fois lexcution de la routine est
termine, les contenus des registres
sauvegards sont rcuprs partir de la
pile ainsi que ladresse de linstruction
suivante du programme principal.
Introduction aux systmes sur puce

223

Arbre dhorloge du STM32

Les diffrents bus, composants et priphriques fonctionnent avec


des frquences dhorloge synthtises partir de lun des deux
signaux horloge :

HSI (High Speed Internal) : Il sagit dun signal de frquence 8 Mhz


gnr par un oscillateur interne intgr au niveau du c. Cest cette
frquence qui est utilise par dfaut aprs une opration de reset.
Elle prsente linconvnient de manque de prcision et de stabilit.

HSE (High Speed External) : Il sagit dun signal de frquence


comprise entre 4 et 25 Mhz, gnr par un dispositif ( base dun
cristal) plac lextrieur du c.

Introduction aux systmes sur puce

224

Arbre dhorloge du STM32

La synthse des diffrentes frquences partir de lun


des deux signaux :

Introduction aux systmes sur puce

225

General Purpose Input Output


(GPIO)

Tous les I/O sont rparties sur 5 ports (GPIOAGPIOE)


Chaque general purpose I/O port possde:
2 registres (32 bits) de configurations
2 registres (32 bits) de donnes
1 registre (32 bits) set/reset
1 registre (16bits) reset
1 registre (32bits) locking registre

Chaque port bit dun GPIO peut tre configur en un de ces mode
(Input floating, Input pull-up,Input-pull-down,Analog,Output opendrain,Output push-pull, Alternate function push-pull,Alternate
function open-drain
Alternate Functions pins (like USARTx, TIMx, I2Cx, SPIx, CAN,
USB)
Configurable Output Speed up to 50 MHz

Introduction aux systmes sur puce

226

GPIO

Introduction aux systmes sur puce

Programmation du STM32
1. Le Standard de
programmation en C :
CMSIS 1.0

CMSIS : Cortex Microcontroller Software


Interface Standard
Il sagit en effet dun ensemble de modules (drivers) qui permettent aux applications
daccder au matriel dune faon transparente

229

-Liste des interruptions du STM32 spcifiques au


noyau Cortex-M3.
-Organisation de la mmoire STM32 et dfinition des
Fadircehsiseersdpehydsiqmueasrrdaegseregistres.
(-aOspsetimonbsleduerc)onpfoiguurration.

Lapplication dveloppe
par lutilisateur

linitialisation des
paramtres du STM32
Routines relatives aux
exceptions du Cortex-M3

Fichier entte de configuration contenant la


liste des priphriques utiliss du STM32
Les drivers des priphriques
de base (noyau) (Contrleur
dinterruptions, Timer systme)

Introduction aux systmes sur puce

Fonctions bas niveau de


lAPI pour laccs aux
fonctionnalits des
priphriques
231

stm32f10x_ppp.c et .h nest pas uniquement utilis pour dsigner un seul fichier


mais elle stend un certain nombre de fichiers.
Chaque fichier tant relatif lun des priphriques du microcontrleur (ppp tant
remplace par labrviation du priphrique).

Introduction aux systmes sur puce

232

2. Dveloppement
dapplication dans
lenvironnement Ride7

Introduction aux systmes sur puce

Introduction aux systmes sur puce