Chapitre 3 l10-SystemC
-
Upload
faten-chebbi -
Category
Documents
-
view
221 -
download
0
Transcript of Chapitre 3 l10-SystemC
-
7/24/2019 Chapitre 3 l10-SystemC
1/170
Chapitre 2 : Cible
matrielle ASIC-FPGA
Nadia Khouja Saad
-
7/24/2019 Chapitre 3 l10-SystemC
2/170
Plan du Chapitre 2
Introduction aux systmes sur puce 2
1. Introduction : technologie CMOS
2. Niveau dabstraction pour la modlisationdes circuits Intgrs
3. Classification des cibles matrielles
4. Les cibles FPGAs
-
7/24/2019 Chapitre 3 l10-SystemC
3/170
Introduction
Introduction aux systmes sur puce 3
Cibles matrielles sont rendues possibles par les progrs raliss entechnologie 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 detransistors)
Outils CAD indispensables pour grer la complexit de laconception et de la fabrication du Circuit Intgr (CI).
-
7/24/2019 Chapitre 3 l10-SystemC
4/170
Les transistors: la technologie de base des
CI
nmosGrille
Gate
Drain
pmos
Gri
lle=1
Drain
Source Source
Sur Nmos : Si Grille ==1, alors Drain et Source connectes
Nmos
Grille=0
Sur Pmos : Si Grillle ==0, alors Drain et Source connectes 4
Nmos
Les CI (ou chips) reprsentent la ralisation courante de tout
systme informatique
Un CI : un ensemble de transistors + connections
MOS: metal oxcyde semiconductorNMOS: nchannel mos
PMOS: pchannel mos
-
7/24/2019 Chapitre 3 l10-SystemC
5/170
p
n
GND
VDD 1
A
Y =A'
A=0
VDD 1
p
A=1
0
n
GND
p
n
GND
VDD 1
1
CMOS : complementary mos (circuit comportant des Pmos et des Nmos
Masse 0Masse 07Masse 0
Un inverseur (NOT) dans la technologie
CMOS
-
7/24/2019 Chapitre 3 l10-SystemC
6/170
Exercice 1De quel type de porte sagit-il ?
x y z
0 0 1
0 1 1
1 0 1
1 1 0
Introduction aux systmes sur puce 6NAND
z= NAND(x,y)
NOT
-
7/24/2019 Chapitre 3 l10-SystemC
7/170
Exercice 2
x y z0 0 1
0 1 0
1 0 0
1 1 0
NORIntroduction aux systmes sur puce 7
Comment raliser une porte NOR en technologie CMOS
z= NOR(x,y)
-
7/24/2019 Chapitre 3 l10-SystemC
8/170
Niveaux de modlisation des CI
Introduction aux systmes sur puce 8
Les transistors reprsentent un niveau de modlisation
des CI, appel aussi niveau lectrique
Dautresmodles existent: + dtaills (- abstrait)
Dessin de masque (niveau physique)
Dautres modles existent: + abstrait (- dtaills)
-
7/24/2019 Chapitre 3 l10-SystemC
9/170
Niveaux de modlisation des CI
Introduction aux systmes sur puce 9
Les proprits dun systme peuvent tre spcifis selontrois 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 placementphysique?
Pour chaque domaine il y a plusieurs niveaux dabstraction.
-
7/24/2019 Chapitre 3 l10-SystemC
10/170
Description dun systme
Introduction aux systmes sur puce
Descr ipt ion structu rel le:
en explicitant de quoi ce systme est fait.On dcrit la structureinterne d'un bloc. Par exemple : un microprocesseur contientun
ensemble de registres, une ALU, un UC, des caches, et le toutest connect de telle et telle faon".
Les sous-blocs (registres, ALU) peuvent eux-aussiventuellement tre modliss partir de sous-blocs, etc,jusqu' arriver des blocs de base ulta-simples (bascules D).
Descr ip t ion compor tementale: 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 doncune bote noire, donc on dcrit le fonctionnement l'aide d'uneou plusieurs fonctions.
-
7/24/2019 Chapitre 3 l10-SystemC
11/170
En pratique, on commence par une description comportementale(car les spcification d'un systme sont souvent donnes sousforme algorithmique).
Puis, force de simulations et de mesures de performances, on
essaye d'identifier des grands blocs. La description devient alorsmixte : une partie structurelle donnant la liste des blocs et la faondont ils sont relis entre eux, alors que les blocs eux sont encorereprsents sous forme comportementale.
On r-applique ensuite ce procd rcursivement chaque bloc(dcomposition en sous-blocs, sous-sous-blocs), jusqu' obtenir unedescription presque totalement structurelle base de bascules D etfonctions logiques simples.
Des outils se chargent alors de traduire tout a automatiquement enportes logiques.
Introduction aux systmes sur puce
Description dun systme
-
7/24/2019 Chapitre 3 l10-SystemC
12/170
77
Domaine comportemental
Domaine structurel
Chaque cercle correspond un niveau dabstraction : Abstraction croissante
Systme
Algorithme
Transfert de registres
LogiqueFonction de transfert
Rectangle
Plan des cellules
Plan des modules
Plan de masse
Partitions physiques
Diagramme en Y de Gajski
Processeur, ASIC, ASIP, FPGA, etc.
Modules matriel
UAL, registres
Portes, bascules, etc.
Transistor
1 Architecturale
2 Algorithmique
3 Bloc fonctionnel
2 logique
3 circuit
1
2
3
4
5
Domaine physique
de lintrieur vers lextrieur.Introduction aux systmes sur puce
-
7/24/2019 Chapitre 3 l10-SystemC
13/170
Conception des circuits VLSI
Introduction aux systmes sur puce 3
Circuit VLSI (centaines de milliers de transistors)
Automatisation du procd de fabrication
Vrification base sur la simulation (au lieu descartes)
Utilisation de langages de description du matriel
(HDL)
-
7/24/2019 Chapitre 3 l10-SystemC
14/170
PLD
SIC
Les composants (HARD)
ASIC
Circuits
prdiffuss
Circuits
configurables
SEMI-CUSTOMCUSTOM
FPGA CPLD PALSeaofgate
Gatearray
Circuits
sur mesure
FullCustom A
Circuits
prcaractriss
Standard
cell
ASIC
FPGACPLD
PAL
GAL
SRAM
: Application Specific IntegratedCircuit
: Field Programmable GateArray
: Complex Programmable Logic Device
: Programmable ArrayLogic
: Generic Array Logic = PAL
: Static Random Acess Memory
AntifuseSRAM
Introduction aux systmes sur puce 4
-
7/24/2019 Chapitre 3 l10-SystemC
15/170
ASIC: Full Custom
ASIC
Circuits
prdiffuss
Circuits
configurables
SEMI-CUSTOMCUSTOM
FPGA CPLD PALSeaofgate
Gatearray
Circuits
sur mesure
FullCustom
Circuits
prcaractriss
Standard
cell
AntifuseSRAM
ASIC
Introduction aux systmes sur puce 8
: Application Specific IntegratedCircuit
-
7/24/2019 Chapitre 3 l10-SystemC
16/170
ASIC: Full Custom
Au final
Au dpart
SPECIFICATIONS
+
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 6
-
7/24/2019 Chapitre 3 l10-SystemC
17/170
ASIC: Standard Cell
ASIC
Circuits
prdiffuss
Circuits
configurables
SEMI-CUSTOMCUSTOM
FPGAC
PLD PALSeaofgate
Gatearray
Circuits
sur mesure
FullCustom
Circuits
prcaractriss
Standard
cell
AntifuseSRAM
ASIC
Introduction aux systmes sur puce 7
: Application Specific IntegratedCircuit
-
7/24/2019 Chapitre 3 l10-SystemC
18/170
ASIC: Standard Cell
Au final
Au dpart
SPECIFICATIONS
BIBLIHOTEQUEDELEMENTS
Introduction aux systmes sur puce 8
PRE-CARACTERISES
+
+
Approche standard cellUtilise des librairies de cellules primitives
Portes AND, OR, registres, SRAM,etc.
Effort de conception rduit, performances souvent proches dufull-custom
-
7/24/2019 Chapitre 3 l10-SystemC
19/170
ASIC:Circuits prdiffuss
ASIC
Circuits
prdiffuss
Circuits
configurables
SEMI-CUSTOMCUSTOM
FPGA CPLD PALSeaofgate
Gatearray
Circuits
sur mesure
FullCustom
Circuits
prcaractriss
Standart
cell
AntifuseSRAM
ASIC
Introduction aux systmes sur puce 9
: Application Specific IntegratedCircuit
-
7/24/2019 Chapitre 3 l10-SystemC
20/170
ASIC: circuits prdiffuss
Rseaux de transistors dj implants dans le silicium, mais non
interconnects.
Cest l interconnexion des transistors qui personnalise le circuit enfonction de l application vise.
Introduction aux systmes sur puce 2
-
7/24/2019 Chapitre 3 l10-SystemC
21/170
ASIC: Gate Array
Au dpart
SPECIFICATIONS
+
Au final
Bandes de cellules de hauteur fixe spares par des canaux de routageIl est possible aussi dutiliser des bibliothques de composants pr-caractriss
Introduction aux systmes sur puce 2
-
7/24/2019 Chapitre 3 l10-SystemC
22/170
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
-
7/24/2019 Chapitre 3 l10-SystemC
23/170
ASIC: les circuits configurables
ASIC
Circuits
prdiffuss
Circuits
configurables
SEMI-CUSTOMCUSTOM
FPGA CPLD PALSeaofgate
Gatearray
Circuits
sur mesure
FullCustom
Circuits
prcaractriss
Standart
cell
AntifuseSRAM
Introduction aux systmes sur puce 23
-
7/24/2019 Chapitre 3 l10-SystemC
24/170
Les circuits configurables: dfinition
Introduction aux systmes sur puce 24
Composants standard programmables
lectriquement:
Une seule fois (fusibles,antifusibles)
ou
Plusieurs fois: reprogrammables
-
7/24/2019 Chapitre 3 l10-SystemC
25/170
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 9
Les circuits configurables: principe
des architectures
-
7/24/2019 Chapitre 3 l10-SystemC
26/170
Les circuits configurables:
technologie de programmation
fusible
Introduction aux systmes sur puce 26
Le choix se fait selon des
critre:La vitesse deprogrammation
La densit dintgration
La facilit de mise enuvre ( programmationsur site,
reprogrammation)
-
7/24/2019 Chapitre 3 l10-SystemC
27/170
Les circuits configurables:
technologie de programmation
Introduction aux systmes sur puce 27
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
-
7/24/2019 Chapitre 3 l10-SystemC
28/170
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 semi-
conductrice 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 meilleuretechnologie (vitesse et surtout une trs haute densit
dintgration) Introduction aux systmes sur puce 93
-
7/24/2019 Chapitre 3 l10-SystemC
29/170
Technologie de programmation:
Lapparition du transistor MOS grilleflottante a permis de rendre le composantbloqu ou passant sans lapplicationpermanente dune tension de commande.
L application dun potentiel sur la grillesuprieure provoque le passage d unepartie des lectrons du canal travers lamince couche d oxyde, ce qui charge lagrille flottante. Lors de la lecture, unetension applique sur la grille suprieure estcompltement masque par la charge
ngative emmagasine sur la grille flottante.Cela quivaut un transistor toujoursbloqu.
Pour passer d'un 0 (transistor bloqu) un 1(transistor passant), on applique une tensionsur la source. Cela a pour effet d'attirer leslectrons hors de la grille flottante.
Transistor MOS grille flottante (EPROM)
Introduction aux systmes sur puce 29
-
7/24/2019 Chapitre 3 l10-SystemC
30/170
Technologie de programmation:
Introduction aux systmes sur puce 3
Transistor MOS grille flottante (EPROM) UV-EPROM : nest pas utilis dans les PLD EEPROM
Reprogrammation dune faon slective (parpartie) 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 ladgradation 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
-
7/24/2019 Chapitre 3 l10-SystemC
31/170
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 externeEPROM)
6 transistors permet un accs slectif et rapide (qlq ns)
Densit dintgration plus faible (flash EEPROM) maiselle bnficie de lvolution technologique importante (contrairement au EEPROM et flash EEPROM)
Introduction aux systmes sur puce 3
Technologie de programmation
-
7/24/2019 Chapitre 3 l10-SystemC
32/170
Technologie SRAM (FPGA)
Technologie de programmation
CelluleSRAM
Ligne deconnexion
Ligne deconnexion
CelluleSRAM
Lignes deconnexion
Introduction aux systmes sur puce 32
Entre dunbloc logique
MUL
-
7/24/2019 Chapitre 3 l10-SystemC
33/170
PAL
ASIC
Circuits
prdiffuss
Circuits
configurables
SEMI-CUSTOMCUSTOM
FPGA CPLD PALSeaofgate
Gatearray
Circuits
sur mesure
FullCustom
Circuits
prcaractriss
Standart
cell
AntifuseSRAM
PAL
Introduction aux systmes sur puce 33
: Programmable Array Logic
-
7/24/2019 Chapitre 3 l10-SystemC
34/170
PAL est le concept de base des PLD (programmable Logic
Introduction aux systmes sur puce 34
Device)
PAL: la disposition des transistors et des connections estfixe, mais on peut dtruire ou remettre une connexion.
Principe : Qcq soit la complexit dune fonction logique, ellepeut tre crite sous la forme dune somme de produits: matricede portes AND et porte OR
PAL
-
7/24/2019 Chapitre 3 l10-SystemC
35/170
100
PAL
liaison nonprogrammable
liaison programmInatrobdulection aux systmes sur puce
-
7/24/2019 Chapitre 3 l10-SystemC
36/170
Circuits logiques programmables
Introduction aux systmes sur puce 36
Selon le caractre programmable des
matrices AND et OR, il existe :
PAL ( programmable array logic): Matrice de ET programmable, matrice OU fige
PROM ( programmable read-only memory)
Matrice de ET fige, matrice OU programmable
PLA ( programmable logic array) Matrice de ET programmable, matrice OU programmble
-
7/24/2019 Chapitre 3 l10-SystemC
37/170
PROM
Introduction aux systmes sur puce 37
-
7/24/2019 Chapitre 3 l10-SystemC
38/170
PLA
Introduction aux systmes sur puce 38
-
7/24/2019 Chapitre 3 l10-SystemC
39/170
PLA: exemple
Introduction aux systmes sur puce 39
-
7/24/2019 Chapitre 3 l10-SystemC
40/170
PAL: exemple
Introduction aux systmes sur puce 4
-
7/24/2019 Chapitre 3 l10-SystemC
41/170
Donnez le cblage du circuit ci-dessous en utilisant :
1. PAL
2. PROM
a b c
l l l
&
&
&
&
&
&
&
A dd res 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 &
a !a b !b c !c
!a & ! b & !c
!a & ! b & c
!a & b & !c
!a & b & c
a & !b & !c
a & !b & c
a & b & !c
a & b & c
P r e d e fi n e d A N D a r r ay
ProgrammableOR
array
w x y
Prede f ined l i nk
P r o g r a m ma b l e l in k
Les circuits configurables:exercice
Introduction aux systmes sur puce 4
-
7/24/2019 Chapitre 3 l10-SystemC
42/170
7
Donnez le cblage du circuit ci-dessous en utilisant :
1.PAL
2. PROM
Les circuits configurables: exercice
a b c
l l l
&
&
&
&
&
&
&
Address0
Address1
Address2
Address3
Address4
Address5
Address6
Address7 &
a !a b !b c !c
!a & !b & !c
!a & !b & c
!a & b & !c
!a & b & c
a & !b & !c
a & !b & c
a & b & !c
a & b & c
Predefined AND array
ProgrammableOR
array
w x y
Predefined link
Programmable link
w = (a & b)
x = !(a &b)
y = (a & b) ^ cIntroduction aux systmes sur puce
-
7/24/2019 Chapitre 3 l10-SystemC
43/170
Les circuits configurables: SPLD(simpleprogrammable logique Device)
Introduction aux systmes sur puce 43
-
7/24/2019 Chapitre 3 l10-SystemC
44/170
SPLD: Classification selon lastructure de sortie
Introduction aux systmes sur puce 44
Trois types de structures de base:
Combinatoire
Squentielle Versatile
-
7/24/2019 Chapitre 3 l10-SystemC
45/170
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
-
7/24/2019 Chapitre 3 l10-SystemC
46/170
SPLD: Squentielle
Ces circuits sont composs de bascule D. Les sorties desbascules sont de type trois tats contrles par un signal devalidation Enable ou OE, et une horloge est commune toutesles bascules (clock).
Introduction aux systmes sur puce 46
-
7/24/2019 Chapitre 3 l10-SystemC
47/170
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
-
7/24/2019 Chapitre 3 l10-SystemC
48/170
SPLD: Versatile
Introduction aux systmes sur puce 48
-
7/24/2019 Chapitre 3 l10-SystemC
49/170
4
Matrice de ET ralisanttous les produits possibles
(maxtermes) connecte
aux sorties par desOU
Grande surface de Si
utilise. Ces circuits ne
sont plus utiliss
aujourdhui
Les circuits configurables: SPLD(simpleprogrammable logique Device)
-
7/24/2019 Chapitre 3 l10-SystemC
50/170
CPLD
ASIC
Circuits
prdiffuss
Circuits
configurables
SEMI-CUSTOMCUSTOM
FPGA CPLD PALSeaofgate
Gatearray
Circuits
sur mesure
FullCustom
Circuits
prcaractriss
Standart
cell
AntifuseSRAM
CPLD
Introduction aux systmes sur puce 5
: Complex Programmable Logic Device
-
7/24/2019 Chapitre 3 l10-SystemC
51/170
CPLD
PAL
PALPAL
PAL
MATRICE DINTERCONNECTIONSE/S E/S
Les CPLDs regroupentplusieurs PALsinterconnects par unrseau de connexionsprogrammables.
Les CPLDs sont lesprmisses des premiersFPGAs.
Introduction aux systmes sur puce 5
Ces circuits ne sont plusutiliss aujourdhui car
remplacs par les FPGAs.
-
7/24/2019 Chapitre 3 l10-SystemC
52/170
CPLD
Introduction aux systmes sur puce 52
la technologie de programmation estgnralement EEPROM ou Flash EPROM)
Un seul point de connexion relie entre eux lesblocs logiques. Les temps de propagations dessignaux sont constants et prdictibles (avantroutage) ce nest pas le cas des FPGA (voirplus tards)
-
7/24/2019 Chapitre 3 l10-SystemC
53/170
Altera MAX 7000 Macrocell structure
CPLD/ EPLD(Erasable)
Rseau ET-OUavec 8 termesproduits
+ Multiplexeurprogrammable
Introduction aux systmes sur puce 53
-
7/24/2019 Chapitre 3 l10-SystemC
54/170
Altera MAX
7000Macrocell
structure
Introduction aux systmes sur puce
-
7/24/2019 Chapitre 3 l10-SystemC
55/170
FPGAASIC
Circuits
prdiffuss
Circuits
configurables
SEMI-CUSTOMCUSTOM
FPGA CPLD PALSea ofgate
Gatearray
Circuits
sur mesure
FullCustom
Circuits
prcaractriss
Standart
cell
AntifuseSRAM
FPGA : 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
-
7/24/2019 Chapitre 3 l10-SystemC
56/170
FPGA : Architecture
Un FPGA est la base :
Un rseau de blocs de logiqueprogrammable (ConfigurableLogic Block -CLB), chaque blocpouvant raliser des fonctions
complexes de plusieurs variables,et comportant des lments mmoire
Un rseau dinterconnexionsprogrammables entre les blocs
Des blocs spciaux dentre et desortie avec le monde extrieur(Input/Output BlockIOB).
Introduction aux systmes sur puce 56
-
7/24/2019 Chapitre 3 l10-SystemC
57/170
CLB base de multiplexeurs
Utilise pour la technologie ANTIFUSIBLE quivaut une LUT cble
Introduction aux systmes sur puce 57
-
7/24/2019 Chapitre 3 l10-SystemC
58/170
CLB base de multiplexeurs : Exemple
Cellule ACTEL ACT3
Introduction aux systmes sur puce 58
-
7/24/2019 Chapitre 3 l10-SystemC
59/170
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
4-LUT
EntresD
Q
0
1 Sortie
Choix configurable
par bitstream
Introduction aux systmes sur puce 59
-
7/24/2019 Chapitre 3 l10-SystemC
60/170
25
FPGAs : CLB base de Look Up Table
Introduction aux systmes sur puce
-
7/24/2019 Chapitre 3 l10-SystemC
61/170
SRAM
SRAM
SRAM
SRAM
SRAM
SRAM
Out
Out
In 0
In 1
In 2
In 3
LUT 4
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
Introduction aux systmes sur puce 6
FPGA :Les Look Up Tables
-
7/24/2019 Chapitre 3 l10-SystemC
62/170
In 0 In 1 In 2 In 3
Out
1 1 1 1 0
1 1 1 0 1
1 1 0 1 1
1 1 0 0 0
1 0 1 10
1 0 1 0 1
Introduction aux systmes sur puce 62
FPGA : Les Look Up Tables
-
7/24/2019 Chapitre 3 l10-SystemC
63/170
In 0 = 0 In 1 In 2 In 3
Out
1 1 1 1 0
1 1 1 0 1
1 1 0 1 1
1 1 0 0 0
1 0 1 1 0
1 0 1 0 1
Introduction aux systmes sur puce 63
FPGA :Les Look Up Tables
-
7/24/2019 Chapitre 3 l10-SystemC
64/170
In 0=0 In 1 In 2 In 3
Out
1 1 1 1 0
1 1 10 1
1 1 0 1 1
1 1 000
1 0 1 1 0
1 0 10 1
FPGA : Les Look Up Tables
Introduction aux systmes sur puce 64
-
7/24/2019 Chapitre 3 l10-SystemC
65/170
In 0 =0 In 1 = 1 In 2 In 3
Out
1 1 1 1 0
1 1 10 1
1 1 0 1 1
1 1 00 0
1 0 1 1 0
1 0 10 1
FPGA : Les Look Up Tables
Introduction aux systmes sur puce 3
-
7/24/2019 Chapitre 3 l10-SystemC
66/170
In 0 =0 In 1 = 1 In 2 In 3
Out
1 1 1 1 0
1 1 1 0 1
1 1 0 1 1
1 1 0 00
1 0 1 1 0
1 0 1 0 1
FPGA : Les Look Up Tables
Introduction aux systmes sur puce 66
-
7/24/2019 Chapitre 3 l10-SystemC
67/170
In 0 =0 In 1 = 1 In 2 =1 In 3 = 1
Out= 1 = In3 In2 In1 Ino
1 1 1 1 0
1 1 1 0 1
1 1 0 1 1
1 1 0 0 0
1 0 1 1 0
1 0 1 0 1
FPGA: Les Look Up Tables
Introduction aux systmes sur puce 67
FPGA CLB
-
7/24/2019 Chapitre 3 l10-SystemC
68/170
FPGA : CLB
68
-
7/24/2019 Chapitre 3 l10-SystemC
69/170
Exemple: implmentation dunadditionneur srie
69
-
7/24/2019 Chapitre 3 l10-SystemC
70/170
FPGA : Xilinx CLB XC4000
7
E i
-
7/24/2019 Chapitre 3 l10-SystemC
71/170
Exercice:1.Comment peut on-raliser une fonction combinatoire 4 variables avec le CLB
de xilinx? Donner le chemin de propagation du signal de sortie2.Comment peut on-raliser une fonction squentielle 5 variables avec le CLB
de xilinx? Donner le chemin de propagation du signal de sortie
7
E i
-
7/24/2019 Chapitre 3 l10-SystemC
72/170
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
E i
-
7/24/2019 Chapitre 3 l10-SystemC
73/170
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
-
7/24/2019 Chapitre 3 l10-SystemC
74/170
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
-
7/24/2019 Chapitre 3 l10-SystemC
75/170
4
FPGA: interconnexions
programmables
Xilinx
Matrice de connexionsProgrammables
(Programmable Switch Matrix)
Introduction aux systmes sur puce
-
7/24/2019 Chapitre 3 l10-SystemC
76/170
FPGA: interconnexions programmables
CLB
lment dunematrice de connexion(PSM)
CLB
CLB
Introduction aux systmes sur puce 76
-
7/24/2019 Chapitre 3 l10-SystemC
77/170
FPGA: types de connexions
Introduction aux systmes sur puce 77
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 toutefoistre spares en deux moities de longueur gale etindpendantes)
-
7/24/2019 Chapitre 3 l10-SystemC
78/170
FPGA: types de connexions
Connexions directes : relient deux CLB
adjacents.
Ne passent pas parune matrice de
connexion (PSM)
Introduction aux systmes sur puce 78
-
7/24/2019 Chapitre 3 l10-SystemC
79/170
FPGA: types de connexions
Connexions Simples: Relient deux PSM
adjacentes.
Offrent une grandeflexibilit de parcours.
Le passage d'uneconnexion simple autravers d'une PSM entraneun dlai.
Ce type de connexion seprte surtout aux liens denature locale.
Introduction aux systmes sur puce 79
-
7/24/2019 Chapitre 3 l10-SystemC
80/170
FPGA: types de connexions
Connexions doubles: relient deux PSMs
spares par une PSM:
Offrent une plus grande
rapidit que les connexionssimples pour les liens delongueur intermdiaire
Maintiennent une bonne
flexibilit de parcours.
De la mme manire, les
connexions quadruplespermettent des liensrapides un peu plus longsmais entranent unecertaine pnalit dans laflexibilit du parcours.
Introduction aux systmes sur puce 8
-
7/24/2019 Chapitre 3 l10-SystemC
81/170
FPGA: types de connexions
Les longues lignes sont delongs segments mtallissparcourant toute la longueur etla largeur du composant, ellespermettent ventuellement de
transmettre avec un minimumde retard les signaux entre lesdiffrents lments dans le butd'assurer un synchronismeaussi parfait que possible. Deplus, ces longues lignespermettent d'viter lamultiplicit des pointsd'interconnexion.
Introduction aux systmes sur puce 8
-
7/24/2019 Chapitre 3 l10-SystemC
82/170
FPGA: types de connexions
Lignes simples
Lignes doubles
Lignes longues
Introduction aux systmes sur puce 82
-
7/24/2019 Chapitre 3 l10-SystemC
83/170
FPGA: types de connexions
Introduction aux systmes sur puce
Xilinx XC4000X 83
-
7/24/2019 Chapitre 3 l10-SystemC
84/170
Le passage dun bloc logique un autre se fera par un nombre depoint de connexion (responsable des temps de propagation)fonction de la position relative des deux blocs logique et de ltatdencombrement 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 doncbeaucoup les performances du circuit en terme de vitesse
Introduction aux systmes sur puce 84
FPGAs :Interconnexions programmables
FPGAs Interconne ions programmables
-
7/24/2019 Chapitre 3 l10-SystemC
85/170
5
FPGAs : Interconnexions programmables
Introduction aux systmes sur puce
I/O Blocs
-
7/24/2019 Chapitre 3 l10-SystemC
86/170
I/O Blocs
Les blocs
dentre/sortie(IOBs)
contrlent le flot de donnes entre lesbroches du FPGA et la logique interneutilisateur; 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
-
7/24/2019 Chapitre 3 l10-SystemC
87/170
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
-
7/24/2019 Chapitre 3 l10-SystemC
88/170
FPGA : Les entres/sorties
FPGAs : Xilinx IOB (Input Output Block)
Introduction aux systmes sur puce 88
-
7/24/2019 Chapitre 3 l10-SystemC
89/170
Sparta
n 3E
Introduction aux systmes sur puce
FPGA: et encore!!!
-
7/24/2019 Chapitre 3 l10-SystemC
90/170
55
FPGA: et encore!!!
Introduction aux systmes sur puce
La technologie actuelle des FPGA
-
7/24/2019 Chapitre 3 l10-SystemC
91/170
La technologie actuelle des FPGA
Introduction aux systmes sur puce 56
Jusqu 200 000 cellules logiques lmentaires Cellule = Look-up-Table + registres Blocs mmoire configurables
Blocs de 18kbits, au total jusqu 1Mo
Structures ddies pour les traitementsarithmtique 512 multiplieurs 18x18 bits embarqus
Processeurs embarqus Jusqu 4 PowerPC en dur Soft-Core : processeurs utilisant les cellules logique
Liaisons sries haut dbit Jusqu 10 Gbits MAC Ethernet intgre
-
7/24/2019 Chapitre 3 l10-SystemC
92/170
57
FPGA: Les modes de configuration
Le bitstream dcrit la configuration de tous leslments configurables du circuits
Un transfert de bitstream est ncessaire lors de
la mise sous tension et chaquereconfiguration
Introduction aux systmes sur puce
FPGA: Les modes de configuration
-
7/24/2019 Chapitre 3 l10-SystemC
93/170
On rencontre couramment 6 techniques de configuration:
Master mode srie ou parallle
Slave mode srie ou parallle Peripheral mode srie ou parallle
La slection de la technique de configuration se faitgrce des bits de configuration du FPGA
Dans tous les cas la configuration se fait via un fichierde configuration binaire : le Bitstream
Les entres sorties utilises pendant la configuration
sont aussi des I/O du circuits utilisables en
Lenvoisdes donnes deconfigurations peut se faire en srieou en parallle
Introduction aux systmes sur puce 58fonctionnement
FPGA: Les modes de configuration
Master mode
-
7/24/2019 Chapitre 3 l10-SystemC
94/170
Dans ce cas le FPGA est matre de sa configuration
Data
EPROMCLK
OE
Data-in
FPGACLK
CTRL
MODESERIE
Introduction aux systmes sur puce 59
Master mode
Master mode
-
7/24/2019 Chapitre 3 l10-SystemC
95/170
Dans ce cas le FPGA est matre de sa configuration
Data(7:0)
ADD(11:0)
EPROM
OE
Data-in(7:0)
ADD(11:0)
FPGA
CTRL
MODE PARALLELE
8bits
Introduction aux systmes sur puce 69
Master mode
-
7/24/2019 Chapitre 3 l10-SystemC
96/170
Peripheral mode
-
7/24/2019 Chapitre 3 l10-SystemC
97/170
Le FPGA est vue comme un priphrique du microprocesseur
P
Data(7:0)
ADD(11:0)
CTRL
Data-in(7:0)
Chip_Selec
FPGA
CTRL
8bits
Introduction aux systmes sur puce 97
Le microprocesseur peut tre un curde processeur
embarqu dans le circuit
Peripheral mode
-
7/24/2019 Chapitre 3 l10-SystemC
98/170
Cas dtude : Xilinx Spartan 3E
Introduction aux systmes sur puce 98
Plusieurs versions:
Carte digilent basede Spartan
-
7/24/2019 Chapitre 3 l10-SystemC
99/170
g p
XC3S500E
Introduction aux systmes sur puce 99
Carte Spartan XC3S500E : Composants
-
7/24/2019 Chapitre 3 l10-SystemC
100/170
Carte Spartan XC3S500E : Composants
Introduction aux systmes sur puce
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.
-
7/24/2019 Chapitre 3 l10-SystemC
101/170
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 lorsquelleest sous tension.
Introduction aux systmes sur puce
Carte Spartan 3E: modes de configuration
-
7/24/2019 Chapitre 3 l10-SystemC
102/170
Flot de conceptions des FPGA
Introduction aux systmes sur puce 2
Voir Module Synthse VHDL
darchitecture
-
7/24/2019 Chapitre 3 l10-SystemC
103/170
-
7/24/2019 Chapitre 3 l10-SystemC
104/170
1. Fonctionnement
et dfinition
Organisation fonctionnelle dun
-
7/24/2019 Chapitre 3 l10-SystemC
105/170
Organisation fonctionnelle d unsystme microcontrleur
Introduction aux systmes sur puce 5
Dfinition
-
7/24/2019 Chapitre 3 l10-SystemC
106/170
Cest une unit de traitement de linformation de type microprocesseur laquelle on a
ajout des priphriques internes permettant de raliser des montages sans ncessiterlajout de composantsexternes.
Ce sont des systmes minimum sur une seule puce. Ils contiennent : un CPU, de laRAM, de la ROM et des ports dEntre/Sorties (parallles, sries,etc..).
Introduction aux systmes sur puce 6
-
7/24/2019 Chapitre 3 l10-SystemC
107/170
Dfinition
Introduction aux systmes sur puce 7
Ils comportent aussi des fonctions spcifiques comme des compteursprogrammables pour effectuer des mesures de dures, des CAN voir des
CNA pour sinsrer au sein de chanes dacquisition, des interfaces pourrseaux de terrain, etc ...
Il est adapt pour rpondre au mieux aux besoin des applicationsembarques (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 mmoireadressable
quun microprocesseur.
-
7/24/2019 Chapitre 3 l10-SystemC
108/170
Dfinition
Introduction aux systmes sur puce 8
Avantages :
. Encombrement rduit,
. Circuit imprim peu complexe,
. Faible consommation,. Cot rduit.
Inconvnient:
. Systme de dveloppement onreux,
. Programmation ncessitant un matriel adapt.
Diffrence entre microprocesseur
-
7/24/2019 Chapitre 3 l10-SystemC
109/170
Diffrence entre microprocesseur
et microcontrleur
Introduction aux systmes sur puce 9
f
-
7/24/2019 Chapitre 3 l10-SystemC
110/170
fonctionnement
Introduction aux systmes sur puce
E l M68HC0
-
7/24/2019 Chapitre 3 l10-SystemC
111/170
Exemple: M68HC05
Introduction aux systmes sur puce
-
7/24/2019 Chapitre 3 l10-SystemC
112/170
2. Architecture
Bit dfi iti
-
7/24/2019 Chapitre 3 l10-SystemC
113/170
Bit dfinition
Introduction aux systmes sur puce 78
H d V N
-
7/24/2019 Chapitre 3 l10-SystemC
114/170
79
Harvard ou Von Neumann
Un bus dinstructionsUn bus de donnesUn seul bus
dinstructionset dedonnesIntroduction aux systmes sur puce
-
7/24/2019 Chapitre 3 l10-SystemC
115/170
1.Le microprocesseur
-
7/24/2019 Chapitre 3 l10-SystemC
116/170
1.Le microprocesseur
RISC ou CISC: Plus on rduit lenombre dinstructions, plus facile etplus rapide en est le dcodage, et plusvite 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 6
1 Le microprocesseur:
-
7/24/2019 Chapitre 3 l10-SystemC
117/170
1. Le microprocesseur:
Contrleur d interruptions
Introduction aux systmes sur puce 7
Le microcontrleur, dans son environnement, est destin traiter desinformations en temps rel .Lapplication est couple au monde extrieur, par lchange frquentdemessages et de signaux des instants prvus.
Il est dans lobligation de changer dtat en fonction des priorits relativesde lopration en cours et de celle qui lui est demand. Il interrompt ou non ledroulement 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.
1. Le microprocesseur:
-
7/24/2019 Chapitre 3 l10-SystemC
118/170
1. Le microprocesseur:
Contrleur dinterruptions
Introduction aux systmes sur puce 8
Du matriel qui gre les signaux dinterruption
Quelque soit lentre dinterruption active, le microprocesseur ralise destches 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 detraitement dinterruption ;
2 M i
-
7/24/2019 Chapitre 3 l10-SystemC
119/170
2. Mmoire programme
Introduction aux systmes sur puce 9
Ce dispositif contient les instructions du programme que doit excuter lemicroprocesseur. Ce type de mmoire (appele mmoire morte), estuniquement accessible en lecture. Sa programmation ncessite uneprocdure particulire et un matriel adquat.
Il en existe diffrents types selon leur mode de programmation :
De la PROM programmable lectriquement une seule fois par ledveloppeur (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, densitleve)
3 M i d d
-
7/24/2019 Chapitre 3 l10-SystemC
120/170
3. Mmoires de donnes
Introduction aux systmes sur puce 2
Ce dispositif permet de mmoriser temporairement les donnes gnres parle microprocesseur pendant les diffrentes phases du traitement numrique
(rsultats doprations, tats des capteurs...). Ces mmoires sont accessiblesen criture et en lecture.
On en trouve 2 types :
De la mmoire vive (RAM) volatile : (donnes perdues en cas decoupure de lalimentation) ayant un temps de lecture et critureassezcourt(quelques ns),
De la mmoire morte (EEPROM) non-volatile : (donnes conserves encas de coupure de lalimentation) ayant un temps dcriture assez lev(quelques ms) par rapport au temps de lecture qui est assez faible
(quelques ns).
-
7/24/2019 Chapitre 3 l10-SystemC
121/170
5. Linterface srie: USART(U i l S h A h
-
7/24/2019 Chapitre 3 l10-SystemC
122/170
(Universal Synchronous Asynchronous
Receiver Transmetter)
Introduction aux systmes sur puce 22
Ce type dinterface permet au microcontrleur de communiquer avec dautressystmes base de microprocesseur.
Les donnes envoyes ou reues se prsentes sous la forme dunesuccession temporelle (sur un seul bit) de valeurs binaires images dun mots.
Il y a 2 types de liaison srie : synchrone et asynchrone.
5. Linterface srie : Liaison srie
-
7/24/2019 Chapitre 3 l10-SystemC
123/170
synchroneDans ce dispositif la transmission est synchronise par un signal dhorlogemis par lunit maitre
Introduction aux systmes sur puce 23
5. Linterface srie: Liaison srie
-
7/24/2019 Chapitre 3 l10-SystemC
124/170
asynchroneCe dispositif ne possde pas de signal dhorloge de synchronisation.Les units en liaison possdent chacune une horloge interne cadence la mmefrquence.
Lorsquune unit veut mettre un mot binaire, elle gnre un front descendant sur saligne 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 24
5 Linterface srie
-
7/24/2019 Chapitre 3 l10-SystemC
125/170
5. L interface srie
Introduction aux systmes sur puce 9
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
-
7/24/2019 Chapitre 3 l10-SystemC
126/170
-
7/24/2019 Chapitre 3 l10-SystemC
127/170
7 TIMER
-
7/24/2019 Chapitre 3 l10-SystemC
128/170
7. TIMER
Le Timer permet de raliser les fonctions suivantes :
Introduction aux systmes sur puce 28
1. Gnration dun signal priodique2. 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 dutemps.
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.
8. Le chien de garde (Watchdog)
-
7/24/2019 Chapitre 3 l10-SystemC
129/170
Introduction aux systmes sur puce 29
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 uneinterruption rgulire. Il peut galement consister en une routine d'interruption qui doiteffectuer 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 instructionn'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.
9 Direct Memory Access (DMA)
-
7/24/2019 Chapitre 3 l10-SystemC
130/170
9. Direct Memory Access (DMA)
Introduction aux systmes sur puce 3
Transfert rapide de donnes entre
MmoirePriphriques
PriphriquepriphriqueMmoire et mmoire
sans lintervention du processeur
Permet au processeur de raliserdautreactions pendant le transfert.
LES SIGNAUX DHORLOGE
-
7/24/2019 Chapitre 3 l10-SystemC
131/170
LES SIGNAUX D HORLOGE.Le signal dhorloge permet de cadencer le fonctionnementdu microcontrleur.
Ce dernier intgre gnralement une porte Trigger de Schmitt afin de raliserun oscillateur. Pourlobteniron place un quartz entre les deux broches OscInet OscOutcomme lindique le schma suivant :
Introduction aux systmes sur puce 3
-
7/24/2019 Chapitre 3 l10-SystemC
132/170
3. DVELOPPEMENT DU
PROGRAMME ET MISEAU POINT.
Dveloppement de code
-
7/24/2019 Chapitre 3 l10-SystemC
133/170
Dveloppement de code
Ou un mlange
Introduction aux systmes sur puce 33
-
7/24/2019 Chapitre 3 l10-SystemC
134/170
-
7/24/2019 Chapitre 3 l10-SystemC
135/170
Exemple de microcontrleur
-
7/24/2019 Chapitre 3 l10-SystemC
136/170
Exemple de microcontrleur
Introduction aux systmes sur puce 2
-
7/24/2019 Chapitre 3 l10-SystemC
137/170
4. Exemple de la
famille PIC de
MICROCHIP
Architecture
-
7/24/2019 Chapitre 3 l10-SystemC
138/170
Introduction aux systmes sur puce 38
Les PIC se conforment l'architectureHarvard :
-La plupart des instructions occupent un mot de la mmoire de programme. La taillede 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 vitessesleves.
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), voire48 MHz (exemple : PIC18F2550 PIC avec USB) et 64 MHz (exemple : PIC18F25K20 PIC en 3,3 V).
Les familles du PIC
-
7/24/2019 Chapitre 3 l10-SystemC
139/170
Introduction aux systmes sur puce 39
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 effaablelectroniquement.
- Le C : indique en gnral que la mmoire ne peut tre efface que par
exposition aux ultra-violets (exception pour le PIC16C84 qui utilise unemmoire EEPROM donc effaablelectriquement).
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.
-
7/24/2019 Chapitre 3 l10-SystemC
140/170
PIC16F84
-
7/24/2019 Chapitre 3 l10-SystemC
141/170
Introduction aux systmes sur puce 4
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 programmeFlash 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.
PIC16F84
-
7/24/2019 Chapitre 3 l10-SystemC
142/170
PIC16F84
Introduction aux systmes sur puce 42
Programmation
-
7/24/2019 Chapitre 3 l10-SystemC
143/170
Programmation
Introduction aux systmes sur puce 43
Les PIC disposent de plusieurs technologies de mmoire de programme :ROM, EPROM, EEPROM, UVPROM, flash. Certains PIC sont dpourvus demmoire 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) oucommerciales (par exemple : PICkit 2 ou ICD2 de Microchip).
-
7/24/2019 Chapitre 3 l10-SystemC
144/170
Le programmateur
-
7/24/2019 Chapitre 3 l10-SystemC
145/170
Introduction aux systmes sur puce 2
Une fois le programme compil, il faut letransfrer 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 fourniavec le programmateur). Comme exemple
ICPROG , c'est le meilleur logiciel deprogrammation de PIC l'heure actuelle, et il al'avantage d'tre disponible en freeware.
-
7/24/2019 Chapitre 3 l10-SystemC
146/170
Commande dune LED
-
7/24/2019 Chapitre 3 l10-SystemC
147/170
Commande d une LED
Introduction aux systmes sur puce
Exemple dapplications:
-
7/24/2019 Chapitre 3 l10-SystemC
148/170
clignotement de Led
Introduction aux systmes sur puce
-
7/24/2019 Chapitre 3 l10-SystemC
149/170
Architecture
i t
-
7/24/2019 Chapitre 3 l10-SystemC
150/170
interne
Introduction aux systmes sur puce
Architecture interne
-
7/24/2019 Chapitre 3 l10-SystemC
151/170
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 WatchdogArchitecture
5 Timers w/ advanced control features(including Cortex SysTick) 9 communications Interfaces Up to 80 I/Os (100 pin package) w/ 16 external interrupts/eventUp to 2x12-bits 1Msps ADC w/ up to 16 channels and Embeddedtemperature sensor w/ +/-1.5linearity with T
Introduction aux systmes sur puce 2 6
System architectureI-Bus (Instruction Bus): ddi principalement pour le transfert des instructions (code)
-
7/24/2019 Chapitre 3 l10-SystemC
152/170
2 7
I Bus (Instruction Bus): ddi principalement pour le transfert des instructions (code)
entre Cortex et la mmoireFlash.
D-Bus & System Bu s: connects directement la matrice de bus qui sert de lienavec les bus daccs la SRAM, le systme DMA (Direct Memory Access) ainsi quele 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.
Introduction aux systmes sur puce
up to 72MHz
up to 36MHz
Processeur CortexM3
-
7/24/2019 Chapitre 3 l10-SystemC
153/170
Processeur CortexM3
Introduction aux systmes sur puce 2 8
Un processeur 32 bits: Il contient un chemin de donnes (data path)32 bits, un banc de registres 32 bits et des interfaces mmoires de32 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. Cecipermet daccderen mme temps aux instructions et aux donnes,et par consquent une augmentation de la performance puisquelaccs aux donnes naffecte pas le pipeline.
lespace dadressage du Cortex-M3 est unique et peut atteindre lataille de 4 GO
Firmware : code ncessaire agissant trs bas
niveau (Driver) et permettant aux applications
dutiliser le matriel dune faon transparente
-
7/24/2019 Chapitre 3 l10-SystemC
154/170
2 9
Espace utilis pour adresser les
priphriques ajouts par le constructeur
du microcontrleur intgrant le Cortex-M3.
Espace utilis pour stocker les donnesrelatives au code.
Espace utilis pour adresser les priphriques d
Cortex-M3 : Contrleur dinterruption, le Timersystme, le bloc de contrle, etc.
Espace utilis pour stocker du code
excutable. On peut galement stockerIntroduction aduxessysdtomnesnsurepsu.ce
Gestion des interruptions (NVIC)
-
7/24/2019 Chapitre 3 l10-SystemC
155/170
Gest o des te upt o s ( C)
Introduction aux systmes sur puce 22
Le NVIC est capable de grerjusqu 240 interruptions gnrespar des priphriques externes au Cotex-M3 et dont le niveau depriorit peut tre dynamiquement fix parmi 256 niveaux possibles.
En plus de ces interruptions, le NVIC gre un certain nombredexceptions dclenches par des priphriques internes du Cortx-M3 (Bus AHB, MPU, Timer SysTick, etc..) ou par des fautes auniveau du programmemme.
-
7/24/2019 Chapitre 3 l10-SystemC
156/170
Introduction aux systmes sur puce
-
7/24/2019 Chapitre 3 l10-SystemC
157/170
Droulement dune interruption
-
7/24/2019 Chapitre 3 l10-SystemC
158/170
223
p
Quand une interruption autorise estdclenche par un priphrique, le NVIC
force le processeur la servir.
Il commence par sauvegarder un certainnombre de registres dans la pile, et
paralllement, il rcupre ladresse de laroutine relative linterruption.Le temps total qui scoule du momentou linterruption se dclenche jusqulexcution de la premire instruction de laroutine est de seulement 12 cycles.
Une fois lexcution de la routine esttermine, les contenus des registres
sauvegards sont rcuprs partir de la
pile ainsi que ladresse de linstructionsuivante du programme principal.
Introduction aux systmes sur puce
Arbre dhorloge du STM32
-
7/24/2019 Chapitre 3 l10-SystemC
159/170
g
Introduction aux systmes sur puce 224
Les diffrents bus, composants et priphriques fonctionnent avecdes frquences dhorloge synthtises partir de lun des deuxsignaux horloge :
HSI (High Speed Internal) : Il sagit dun signal de frquence 8 Mhz
gnr par un oscillateur interne intgr au niveau du c. Cest cettefrquence 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 frquencecomprise entre 4 et 25 Mhz, gnr par un dispositif ( base dun
cristal) plac lextrieur du c.
Arbre dhorloge du STM32
-
7/24/2019 Chapitre 3 l10-SystemC
160/170
225
La synthse des diffrentes frquences partir de lundes deux signaux :
g
Introduction aux systmes sur puce
-
7/24/2019 Chapitre 3 l10-SystemC
161/170
GPIO
-
7/24/2019 Chapitre 3 l10-SystemC
162/170
227
Introduction aux systmes sur puce
-
7/24/2019 Chapitre 3 l10-SystemC
163/170
Programmation du STM321. Le Standard de
programmation en C :
CMSIS 1.0
CMSIS : Cortex Microcontroller Software
Interface Standard
-
7/24/2019 Chapitre 3 l10-SystemC
164/170
229
Il sagit en effet dun ensemble de modules (drivers) qui permettent aux applications
daccder au matriel dune faon transparente
-
7/24/2019 Chapitre 3 l10-SystemC
165/170
Lapplication dveloppe
parlutilisateur
-Liste des interruptions du STM32 spcifiques au
noyau Cortex-M3.-Organisation de la mmoire STM32 et dfinition des
Fadircehsiseersdpehydsiqmueasrrdaegseregistres.
-
7/24/2019 Chapitre 3 l10-SystemC
166/170
(-aOspsetimonbsleduerc)onpfoiguurration.
linitialisation des
paramtres du STM32
Routines relatives aux
exceptions du Cortex-M3
Fichier entte de configuration contenant laliste des priphriques utiliss duSTM32
Les drivers des priphriques
de base (noyau) (Contrleur
dinterruptions, Timer systme)
Fonctions bas niveau de
lAPI pour laccs aux
fonctionnalits despriphriquesIntroduction aux systmes sur puce 23
stm32f10x_ppp.c et .h nest pas uniquement utilis pour dsigner un seulfichier
mais elle stend un certain nombre de fichiers.
Chaque fichier tant relatif lun despriphriques du microcontrleur (ppp tant
-
7/24/2019 Chapitre 3 l10-SystemC
167/170
C aque c e ta t e at u des p p ques du c oco t eu (ppp ta t
remplace par labrviation du priphrique).
Introduction aux systmes sur puce 232
-
7/24/2019 Chapitre 3 l10-SystemC
168/170
2. Dveloppement
dapplication dans
lenvironnement Ride7
-
7/24/2019 Chapitre 3 l10-SystemC
169/170
Introduction aux systmes sur puce
-
7/24/2019 Chapitre 3 l10-SystemC
170/170