Академический Документы
Профессиональный Документы
Культура Документы
matrielle ASICFPGA
Nadia Khouja Saad
Plan du Chapitre 2
1.
2.
3.
4.
Introduction
Cibles matrielles sont rendues possibles par les progrs raliss en
technologie dintgration
Drain
Grille
Gate
Drain
nmos
pmos
Source
Source
Nmos
Nmos
Grille=1
Grille=0
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
Exercice 2
Comment raliser une porte NOR en technologie CMOS
z= NOR(x,y)
NOR
Description structurelle :
Description comportementale:
10
11
Diagramme en Y de Gajski
1
Domaine comportemental
Domaine structurel
2
3
Systme
Algorithme
Transfert de registres
Logique
Fonction de transfert
Rectangle
Plan des cellules
1 Architecturale
2 Algorithmique
Plan de masse
3 Bloc fonctionnel
Partitions physiques
2 logique
3 circuit
Domaine physique
13
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
FPGA
CPLD
PAL
GAL
SRAM
FPGA
CPLD
PAL
Antifuse
PLD
14
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
80
Approche
full custom
16
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
17
BIBLIHOTEQUE
DELEMENTS
PRE-CARACTERISES
Au final
SPECIFICATIO
NS
Approche
standard cell
Utilise
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
19
20
Au final
SPECIFICATIONS
21
Gate array
Sea of gates
22
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
23
ou
Plusieurs fois: reprogrammables
24
90
fusible
La vitesse de
programmation
La densit dintgration
La facilit de mise en
uvre ( programmation
sur site,
reprogrammation)
26
SRAM
27
Technologie de programmation
Fusible :
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)
29
Technologie de programmation:
Transistor MOS grille flottante (EPROM)
Flash EPROM
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)
31
Technologie de programmation
Technologie SRAM (FPGA)
Cellule
SRAM
Cellule
SRAM
Lignes de
connexion
Ligne de
connexion
Ligne de
connexion
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
33
PAL
34
PAL
11
00
00
PROM
PLA
36
PROM
37
PLA
38
PLA: exemple
39
PAL: exemple
40
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
!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
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
a !a b !b c !c
w = (a & b)
x = !(a & b)
y = (a & b) ^ c
107
43
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
46
SPLD: Versatile
S1S0
47
SPLD: Versatile
48
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
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
E/S
PAL
51
CPLD
52
CPLD/ EPLD(Erasable)
Altera MAX 7000 Macrocell structure
Rseau ET-OU
avec 8 termes
produits
+ Multiplexeur
programmable
53
Altera MAX
7000
Macrocell
structure
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
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
56
57
58
Choix configurable
par bitstream
Entres
4-LUT
Sortie
59
125
In 1
In 2
In 3
SRAM
In 0
In 1
In 2
In 3
SRAM
LUT 4
Out
SRAM
SRAM
SRAM
Out
61
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
62
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
63
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
64
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
130
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
66
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
67
FPGA : CLB
68
69
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
74
FPGA: interconnexions
programmables
Matrice de connexions
Programmables
(Programmable Switch Matrix)
Xilinx
140
CLB
CLB
lment dune
matrice de connexion(PSM)
CLB
76
77
78
79
Connexions doubles:
80
81
Lignes simples
Lignes doubles
Lignes longues
82
Xilinx XC4000X
83
84
150
I/O Blocs
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
87
88
Sparta
n 3E
FPGA: et encore!!!
155
Processeurs embarqus
156
157
158
Master mode
Dans ce cas le FPGA est matre de sa configuration
Data
Data-in
FPGA
EPROM
CLK
CLK
CTRL
OE
MODE SERIE
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
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
97
Plusieurs versions:
98
99
100
101
102
Chapitre 3 :Cible
logicielle- les
microcontrleurs
1. Fonctionnement
et dfinition
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.
contiennent : un CPU, de la
RAM, de la ROM et des ports dEntre/Sorties (parallles, sries,etc..).
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.
107
Dfinition
Avantages :
. Encombrement rduit,
. Circuit imprim peu complexe,
. Faible consommation,
. Cot rduit.
Inconvnient :
. Systme de dveloppement onreux,
. Programmation ncessitant un matriel adapt.
108
109
fonctionnement
110
Exemple: M68HC05
111
2. Architecture
Bit dfinition
178
Un seul bus
dinstructions et de
donnes
179
1.Le microprocesseur
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 :
117
1. Le microprocesseur:
Contrleur d interruptions
Du matriel qui gre les signaux dinterruption
118
2. Mmoire programme
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 :
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
122
123
124
5. Linterface srie
Zigbee
bluetooth
Introduction aux systmes sur puce
190
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.
128
129
130
131
3. DVELOPPEMENT DU
PROGRAMME ET MISE
AU POINT.
Dveloppement de code
Ou un mlange
Introduction aux systmes sur puce
133
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
200
Exemple de microcontrleur
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
139
PIC18 :
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.
141
PIC16F84
142
Programmation
143
144
Le programmateur
210
Exemple dapplications:
clignotement de Led
4. Le
microcontrleur
STM 32
Sources:
STEcole_training.pdf
RM0008 Reference manual.pdf
Sur le site : www.st.com
Architecture
interne
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
217
Processeur CortexM3
218
220
Quand
une
exception
autorise est dclenche,
le CPU commence par
rcuprer ladresse de la
routine excuter partir
dun emplacement mmoire
spcifique connu davance
222
223
224
225
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
226
GPIO
Programmation du STM32
1. Le Standard de
programmation en C :
CMSIS 1.0
229
Lapplication dveloppe
par lutilisateur
linitialisation des
paramtres du STM32
Routines relatives aux
exceptions du Cortex-M3
232
2. Dveloppement
dapplication dans
lenvironnement Ride7