Processeurs de traitement du
signal (DSP)
Sylvain MONTAGNY
[Link]@[Link]
Btiment chablais, bureau 13
04 79 75 86 86
Prsentation des cours : Sommaire
Cours
: 13.5 h en 9 sances
Chapitre 1 : Introduction aux systmes de traitement numrique
Chapitre 2 : Reprsentation numrique du signal
Chapitre 3 : Les units spcifiques des DSP
Chapitre 4 : Le DSP TMS320C5416
Chapitre 5 : Un outil de dveloppement logiciel, code composer
studio
Universit de Savoie
Prsentation TD
TD
: 7.5 h en 5 sances
TD1 : Codage des nombres et architecture numrique
TD2 : Etude avance de larchitecture dun DSP, le DSPic30F2010
TD3 : Organisation mmoire et organisation du code
Universit de Savoie
Prsentation TP
TP : 16h en 4 sances de 4h
TP1 : Prise en main de lenvironnement de programmation
Code Composer Studio
TP2 : Dtection de frquence dans un signal DTMF
TP3 : Gnration de frquences sonores
Universit de Savoie
Examens
Un contrle final : 1h30
Une note de travaux pratiques
Universit de Savoie
Chapitre 1 : Introduction aux systmes de
traitement numrique
1.1 Chane de traitement numrique
1.2 Solutions classiques de traitement
numrique et problmatiques
Universit de Savoie
La chaine de traitement numrique
Ports dentres / sorties
Actionneur
Capteur
Filtre
anti
repliement
CAN
Systme de traitement
numrique
(Processeur, FPGA)
Analogique
CNA
Filtre
de
reconstruction
Analogique
Mmoire
Numrique
Universit de Savoie
Chane de traitement numrique
Avantages / Inconvnients
Avantages :
Robustesse :
Prcision :
Multitche :
Prdiction :
Inconvnients :
Cot :
Vitesse :
Complexit :
Universit de Savoie
Chane de traitement numrique
Exemples dapplications (2)
Tlcommunications : dtection de
BP Filter Detector
tonalit
Schma de dtection
de tonalit
697 Hz
BP Filter
Detector
770 Hz
BP Filter
Detector
852 Hz
697 Hz
LP Filter
Limiter
BP Filter
Detector
941 Hz
770 Hz
HP Filter
Limiter
BP Filter
Detector
1209 Hz
BP Filter
Detector
1336 Hz
BP Filter
Detector
1477 Hz
852 Hz
941 Hz
1209 Hz 1336 Hz 1477 Hz
Frquences de tonalit du clavier numrique
|G| (dB)
Gabarit du filtre numrique
-0 dB
-3 dB
-30 dB
Universit de Savoie
FS1
FP1
FP2
FS2
Fe
2
10
La chaine de traitement numrique
Complexit des algorithmes
Frquence
en Hz
1 000 000
10 000
100
1
Faible
Complexit de lalgorithme
Temprature
Codage de la voix
Reconnaissance
vocale
Eleve
MP3
Reconnaissance
dimage
Positionner les applications suivantes dans le graphique
11
Chapitre 1 : Introduction aux systmes de
traitement numrique
1.1 Chaine de traitement numrique
1.2 Solutions classiques de traitement
numrique et problmatiques
Universit de Savoie
12
Problmatique et solutions
Filtrage numrique sur processeur classique (1)
Fonction de transfert dun filtre numrique
Programme dun filtre numrique
loop:
mov *r0,x0
mov *r1,x1
mpy x0,x1,a
add a,b
mov x1,*r2
inc r0
inc r1
inc r2
dec ctr
tst ctr
jnz loop
Lecture des oprandes sources
Opration MAC
Excution en 15 20
cycles sur processeur
classique
Vieillissement de lchantillon
Gestion des pointeurs dadresse
Gestion de la boucle
Excution en 1 cycle
sur DSP
13
Problmatique et solutions
Filtrage numrique sur processeur classique (2)
Problmes :
Temps daccs aux chantillons
Temps daccs aux coefficients
Gestion des pointeurs dadresse
Multiplication lente
Stockage du rsultat
Sur un DSP on cherche :
Obtenir une gestion automatise des pointeurs pour les boucles
Multiplier le nombre de chemin entre le processeur et la
mmoire pour viter le goulot dtranglement
Raliser des multiplications en 1 coup dhorloge
Limiter la consommation : Pmoy = K . Vdd 2 . FHorloge
14
Problmatique et solutions
Gestion du temps rel
Te = Priode dchantillonnage
T = Temps de traitement
Horloge
acquisition
Te
Interruption
Activit
processeur
Entre de lchantillon
t
T
Sortie du rsultat
Universit de Savoie
15
Problmatique et solutions
Solutions architecturales (document architecture reconfigurable)
Compromis performance flexibilit
Cf article : Architecture reconfigurable, les processeurs du futurs
2 V DSP
3 MOPS/mW
Efficacit nergtique
Pleiades
10-50 MOPS/mW
Flexibility
En MIPS/W
Embedded
Processor
SA110
0.4 MIPS/mW
100-1000 MOPS/mW
ASIC
DSP
Embedded
FPGA
Alpha
0.007 MIPS/mW
Reconfigurable
Processor
EE : Efficiency : MIPS / Watt
16
Chapitre 2 : Reprsentation numrique du
signal
2.1 De lanalogique au numrique
2.2 Le codage des nombres entiers et rels
Universit de Savoie
17
De lanalogique au numrique
Signal Analogique
Numrisation
111
110
101
100
011
010
001
000
Signal Numrique
Restriction des instants considrs : Frquence dchantillonnage Fech
Restriction des valeurs de lamplitude possible : Nombre de bits N
Universit de Savoie
18
De lanalogique au numrique
Effets du repliement de spectre
Reconstitution dun signal
chantillonn fs > 2fc
Reconstitution dun signal
chantillonn fs < 2fc
Universit de Savoie
19
De lanalogique au numrique
Quantification Uniforme
On parle de quantification uniforme si les intervalles (valeurs
du signal numriss) sont de mme longueur q ( q est le pas
de quantification )
Lerreur de quantification est lcart entre la valeur relle et la
valeur quantifie :
1. Erreur de darrondi
q
e
2
2. Erreur de saturation x<valeur min ou x>valeur max
Universit de Savoie
20
De lanalogique au numrique
Plage globale de
quantification
1. Erreur darrondi
Rapport signal sur bruit relatif la quantification
RSBdB Px
Temps
dB
Pe
dB
Px
10 log
Pe
On peut montrer que le RSB se rapproche de lexpression
3
dB
2
log10
RSBdB Px 6 N 10 log10 xmax
2
21
De lanalogique au numrique
2. Erreur de saturation
xmax
Cette erreur se produit
lorsque lamplitude de
lchantillon convertir
dpasse xmax ou xmin
Cest une erreur non borne,
on cherche donc minimiser
la probabilit de saturation.
4 5 6
Temps
Universit de Savoie
Le RSB se dgrade trs
rapidement au-del d'un seuil
o cette probabilit est non
ngligeable.
22
De lanalogique au numrique
Quantification uniforme et RSB
Quantification uniforme 16 bits sur [-1,1]
120
saturation
100
RSB (dB)
80
60
40
erreur darrondi
20
0
-60
-50
-40
-30
-20
-10
puissance du signal (dB)
Quantification uniforme 16 bits signs sur [-1,1]
10
23
De lanalogique au numrique
Quantification uniforme vs logarithmique
Signal original x
Signal original x
Signal compress y=C(x)
0.5
0.5
0.5
-0.5
-0.5
-0.5
-1
0.2
0.4
0.6
0.8
-1
0.2
0.4
0.6
0.8
-1
Signal quantifi x q=C-1(y q)
Signal quantifi x q=Q(x)
1
0.5
0.5
0.5
-0.5
-0.5
-0.5
0.2
0.4
0.6
0.8
quantif. uniforme
domaine linaire
-1
0.2
0.4
0.6
0.8
quantif. logarithmique
domaine linaire
0.2
0.4
0.6
0.8
Signal quantifi y q=Q(y)
-1
-1
0.2
0.4
0.6
0.8
quantif. uniforme
domaine compress
24
De lanalogique au numrique
Quantification Uniforme vs Logarithmique
45
Loi A sur 8 bits
40
Loi A
35
RSB (dB)
30
25
20
RSB peu prs constant
sur une plage de 30 dB
La compression limite les
effets de la granulation
15
10
5
0
-60
-50
-40
-30
-20
-10
puissance du signal (dB)
granulation
10
Quantification uniforme
saturation
Universit de Savoie
Leffet de granulation est
linaire par rapport la
puissance du signal
25
Chapitre 2 : Reprsentation numrique du
signal
2.1 De lanalogique au numrique
2.2 Le codage des nombres entiers et rels
Universit de Savoie
26
Le codage des nombres entiers
Non signes
N 1
A chaque chiffre est affect un poids exprim en puissance de 2 :
x bi 2i
i 0
Exemple
( 101 )2 <=> 1.22 + 0.21 + 1.20 = ( 5 )10
Signes : Complment 2
Cest le format le plus utilis en arithmtique binaire. Le bit de poids fort
reprsente le signe
Nombre positif : cod comme un non-sign
Nombre ngatif : cod par son C2 (Inversion des bits puis
ajout de1)
Universit de Savoie
27
Le codage des nombres entiers
Entiers signs : Format complment 2
Format le plus utilis en arithmtique binaire
Codage
0 1 1
0 1 0
0 0 1
0 0 0
-1
1 1 1
-2
1 1 0
-3
1 0 1
-4
1 0 0
Dynamique
N 1
Nombre
N 1
Complment 2 de x :
C2(x) = 2N x
Implantation efficace :
Inversion des bits puis ajout de 1
C2(x) = C1(x) + 1
Signe
28
Le codage des nombres entiers
Proprits du codage en complment 2
Reprsentation circulaire
111
En ajoutant 1 la plus
grande valeur positive on
obtient la valeur ngative
extrme
000
-2 110
101
-3
-1
1
001
010 2
100
-4
011
3
Les DSP peuvent tre
configurs pour oprer de
deux manires:
C2 pur
C2 avec arithmtique de
saturation
C2 pur
Universit de Savoie
C2 avec saturation
29
Le codage des nombres rels
La reprsentation des nombres doit rpondre deux
exigences contradictoires :
Prcision: intervalle entre deux rationnels cods :
>>> Doit tre le plus petit possible
Dynamique: Rapport entre le plus grand rationnel et le plus petit
rationnel cods :
>>> Doit tre la plus tendue possible
Dans ce contexte les units de calcul des DSP travaillent
Soit en format fixe (notation dcimale)
Soit en format flottant (notation scientifique)
Universit de Savoie
30
Le codage des nombres rels
[Link] en virgule fixe (1)
Le format dune donne ne varie pas au cours du temps
Reprsentation : partie entire - partie fractionnaire
-2m-1
S
bm-1
bm-2
21
20
2-1
2-2
b1
b0
b-1
b-2
Partie entire code en C 2
2-n
b-n+2 b-n+1
b-n
Partie fractionnaire
m1
x (2)m1 S bi 2i CA2
i n
Universit de Savoie
31
Le codage des nombres rels
1. Codage en virgule fixe (2)
Proprits:
Partie fractionnaire code sur k bits
Partie entire code sur N-k bits en C2
Dfinition "format Qk" :
La reprsentation Qk du rel x correspond la
reprsentation CA2 de l'entier y tel que: y round(2 k x)
Q0 dsigne le cas particulier des entiers signs en CA2
Universit de Savoie
32
Le codage des nombres rels
1. Codage en virgule fixe (3)
Si on ne prcise pas le format Qk, un nombre
binaire peut reprsenter plusieurs valeurs.
Exemple : 01011101 peut reprsenter :
Q2 : 23.25
Q4 : 5.8125
Q7 : 0.7265625
Universit de Savoie
33
Le codage des nombres rels
1. Codage en virgule fixe (4)
Exemple: Q5 sur 8 bits
Partie entire cod sur 3 bits (dont 1 de signe)
Partie fractionnaire code sur 5 bits
Valeurs comprises entre -4 et +3.96875
Erreur maximale q /2 = 2-6 si arrondi au plus proche
34
Le codage des nombres rels
1. Codage en virgule fixe (5)
#/Poids
-22
21
20
-4
-3.96875
3.9375
3.96875
,2
2-2
2-3
2-4
2-5
-1
35
Le codage des nombres rels
1. Codage en virgule fixe (6)
Prcision: quantification uniforme de pas q
q=2-k
Dynamique:
-2N-k-1 >> 2N-k-1-2-k
Exemple format sur 16 bits:
Quel format faut-il pour reprsenter tous les rels :
-1Nombre<1
-8Nombre<8
-200Nombre<200
>>Donner la prcision de chaque codage.
Universit de Savoie
36
Le codage des nombres rels
2. Codage en virgule flottante
Virgule flottante
Reprsentation : exposant - mantisse
La mantisse et lexposant sont reprsenter eux mme en CA2.
Ils peuvent donc prendre des valeurs ngatives.
dE-1
d1
Exposant
d0 cM-1
c2
c1 c0
Mantisse
Norme IEEE :
x Mantisse .2 Exposant
Exposant sur 8 bits
Mantisse sur 24 bits
1 |Mantisse| <2
Universit de Savoie
37
Le codage des nombres rels
Comparaison fixe - flottant
Dynamique virgule fixe/flottante
1500
Niveau de dynamique
max(x )
DN (dB) 20. log
min( x )
D ynam ique en dB
Virgule flottante
1000
500
Virgule fixe
10
15
20
25
30
Nombre de bits
Rapport Signal Bruit virgule fixe/flottante
Rapport Signal Bruit de
Quantification
Ps
dB 10. log
Pe
80
RS B en dB
100
Virgule flottante
60
40
Virgule fixe
20
0
-50
0
Dynamique du signal d entr e en dB
50
38
Application
En langage de programmation C, nous utilisons les types de variables
suivant. Retrouver la valeur minimale et maximale de chacun des types.
Nom du type Signification Codage
8 bits
-128 127
Entier non sign
32 bits
0 232-1
Entier sign
32 bits
-231 231-1
Rel sign
32 bits
24 bits de mantisse
8 bits dexposant
-3,4 x 1038 3,4 x 1038
Rel sign
64 bits
53 bits de mantisse
11 bits dexposant
-1,7 x 10308 1,7 x 10308
char
Entier sign
unsigned int
int
float
double
Plage de valeur
Universit de Savoie
39
Chapitre 3 : Les units spcifiques des DSP
3.1
3.2
3.2
3.3
3.4
Architecture gnrale et objectifs
Unit de commande
Unit de traitement
Unit de mmorisation
Performance / Consommation
Universit de Savoie
40
Architecture gnrale et objectifs
Processeur
CPU
Unit de
commande
Units de
traitement
Bus internes
Mmoire
interne
Unit de
Communication
Universit de Savoie
Priphriques
et mmoire externes
41
Chapitre 3 : Les units spcifiques des DSP
3.1
3.2
3.2
3.3
3.4
Architecture gnrale et objectifs
Unit de commande
Unit de traitement
Unit de mmorisation
Performance / Consommation
Universit de Savoie
42
Unit de commande
Cest le chef dorchestre du CPU. Il squence
et dcode les instructions une une.
Pour tre efficace, le CPU met en uvre :
Un pipeline
Une gestion des boucles matrielles
Universit de Savoie
43
Les phases du Pipeline
P (Prefecth) - Generate program address = Incrmentation du compteur ordinal
F (Fetch) - Get Opcode = Lecture du code de linstruction en mmoire
D (Decode) - Decode instruction = Dcodage de linstruction
A (Access) - Generate read address = Calcul des adresses des oprandes
= Calcul de ladresse du rsultat
R (Read) - Read operands = Lecture des oprandes en mmoire
X ( Execute) = Excution de linstruction
= Ecriture du rsultat ladresse calcule
P F D A R X
P F D A R X
P F D A R X
P F D A R X
P F D A R X
P F D A R X
Full Pipeline : Toutes les units
matrielles du DSP sont en activits
Unit de commande
Squentiel vs pipeline
Instruction
Fetch
t2
t3
t4
t5
Instruction 1
t7
t8
F2
D1
D2
Read
R1
Execute
F1
-
R2
X1
t1
t2
t3
t4
t5
t6
t7
t8
F1
F2
F3
F4
F5
D1
D2
D3
D4
D5
R1
R2
R3
R4
R5
X1
X2
X3
X4
X5
Read
Execute
CPU
Decode
D1
R1
-
MemD
X1
-
MemD
F4
F5
MemP
X2
Excution squentielle
Fetch
MemP
Instruction 2
F1
Decode
t6
CPU
t1
D3
D4
R2
R3
MemD
X1
X2
MemD
Amorage du pipeline
Excution avec pipeline : entrelacement des instructions
Universit de Savoie
45
Unit de commande
Exemple de rupture de squence
Code excuter :
1: Instr1
2: Si B==1 Alors GOTO 10:
3: Instr3
4: Instr4
5: Instr5
6: Instr6
10:
11:
12:
Instr10
Instr11
Instr12
Etat du pipeline avec prdiction que B1 :
Si prdiction incorrecte (B=1)
F
D
R
X
Si prdiction correcte (B1)
t1
t2
t3
t4
t5
t6
t7
t8
F1
F2
F3
F4
F5
F10
F11
F12
D1
D2
D3
D4
D10
D11
R1
R2
R3
R10
X1
X2
Evaluation du prdicat (B==1)
=> rupture de squence
t1
t2
t3
t4
t5
t6
t7
t8
F1
F2
F3
F4
F5
F6
D1
D2
D3
D4
D5
D6
R1
R2
R3
R4
R5
R6
X1
X2
X3
X4
X5
Vidange du pipeline:
Perte de 3 cycles
Evaluation du prdicat (B==1)
=> pas de rupture
Unit de commande
Exemple de conflit d'accs mmoire
Programmes et Donnes dans la mme mmoire 1 accs par cycle
Fetch
Decode
t1
t2
t3
t4
t5
t6
t7
t8
F1
F2
conflit
conflit
F3
F4
D1
D2
D3
D4
R1
R2
R3
R4
X1
X2
X3
Read
Execute
Conflit pour laccs mmoire entre Fetch et Read
Les lectures de donnes R1/R2 empchent les chargements d'instruction F3/F4
Rductions des performances d'au moins 50%
Problme rgl si
Mmoire multi-accs
Programmes et Donnes dans des mmoires diffrentes (ou multi-bloc)
Universit de Savoie
47
8
Unit de commande
Effets du pipeline lors du dbogage
Code excuter :
1:
A=1
2:
B=1
3:
C=1
NOP
10:
A=2
11:
B=2
12:
C=2
13:
D=2
14:
E=2
Watch Window
A
1
B
1
C
1
Watch Window
A
1 ???
B
1
C
1
Watch Window
A
2 !!!
B
1
C
1
Watch Window
A
2
B
2
C
1
La flche indique la position du PC
Plusieurs cycles sont ncessaires
avant que la variable soit modifie :
Cela nintervient qu ltape X
(excution)
F
D
R
X
t1
t2
t3
t4
t5
t6
t7
t8
F10
F11
F12
F13
F14
D10
D11
D12
D13
D14
R10
R11
R12
R13
R14
A=2
B=2
C=2
D=2
E=2
Programme 1
Visualisation des variables
Programme 2
Visualisation des variables
Unit de commande
Utilisation des ressources par le pipeline
Etage
pipeline
P
F
D
A
R
X
Description
Partie hardware utilise
Generate program address
Get Opcode
Decode instruction
Generate read address
Read Operand
Generate write address
PC
Program memory
Decoder
ARs, ARAU
Data memory
ARs, ARAU
Execute instruction
Write result
MAC, ALU
Data Memory
PC =
Program Counter
ARAU = Auxiliary Register Arithmetic Unit
AR =
Adresse Register
MAC= Multiply ACcumulate
ALU = Arithmetic Logic Unit
50
Unit de commande
Retards dans le pipeline
Le pipeline atteint son plein rendement une
fois quil est rempli
Un retard peut se produire
Sil existe un conflit de ressources (retard ponctuel)
accs la mmoire
utilisation des bus
En cas de rupture de squence (vidange du
pipeline)
branchement non prvu
appel de sous-programme
interruption
Universit de Savoie
51
Unit de commande
Gestion des boucles
Lobjectif est doptimiser le traitement des
boucles de petite taille
Initialisation des paramtres de la boucle en 1 instruction
Pas d'instructions supplmentaires pour la gestion de la fin
de la boucle
Exemple boucle mono-instruction
MOVE
LOOP MAC
DEC
JNE
#16,B
(R0)+,(R4)+,A
B
LOOP
Boucle logicielle
Universit de Savoie
RPT
MAC
#16
(R0)+,(R4)+,A
Boucle matrielle
52
Unit de commande
Exemple : Calcul dun filtre RIF
N 1
Gestion matrielle des boucles :
Unit de gnration dadresses programme
Unit MAC matrielle
+ Chargement simultan
de linstruction et des
oprandes
A=0;
for (i=0; i<N; ++i) {
A = A +
}
Y = A >> 15;
B[i] *
X[i];
Unit de gnration
dadresses donnes
Code C
y n b(i ) x n i
i 0
B[i] X[i]
SSBX FRCT
STM #B, AR2
STM #X, AR3
STM #Y, AR4
RPTZ A, #N-1
(x1)
MAC *AR2+,*AR3+, A (xN)
STH A, *AR4
(x1)
Equivalent ASM
Universit de Savoie
53
Unit de commande
Optimisation du compilateur C
Code C
#define N 256
short in[N];
short out[N];
void toto()
{
int i;
for (i=0; i<N; i++)
{
out[i]=in[i];
}
}
Adresses des tableaux
_inputData = 331h = 817
_outputData = 431h = 1073
Prise en compte des
capacits matrielles du DSP
Pas doptimisation
813D toto
813D
PSHM 11h
813E
FRAME -1
813F
SSBX SXM
8140
LD
#100h,0,A
8142
ST
#0h,0h
8144
SUB
0h,A
8145
BC
8154h,ALEQ
debut :
8147
MVDK 0h,11h
8149
LD
*AR1(817),A
814B
STL
A,*AR1(1073)
814D
LD
#100h,0,A
814F
ADDM 1h,0h
8151
SUB
0h,A
8152
BC
8147h,AGT
fin:
8154
FRAME 1
8155
POPM 11h
8156
FRET
Sauvegarde AR1 (save-on-entry)
Manipulation de nombres signs
A <= 256 (100h)
Met la valeur initiale 0 de i dans pile[0h]
A <= A - pile[0h]
Si A<=0, alors aller fin:
Copie pile[0h] dans AR1
Charge in[AR1] dans A
Stocke A dans out[AR1]
A <= 256 (100h)
pile[0h] <= pile[0h] + 1
A <= A - pile[0h]
Si A>0 alors reboucler sur debut:
Restaure de AR1
Retour de la fonction
8033 toto Optimisation au niveau fonction (-o2)
8033
STM
431h,13h
AR3 <= @out
8035
STM
331h,12h
AR2 <= @in
8037
RPT
#0ffh
Rpter 256=255+1 fois
8038
MVDD *AR2+,*AR3+
*AR3 <= *AR2
8039
NOP
803A
NOP
Universit
803B
FRET de Savoie
54
Unit de commande
Unit de contrle du C50
PC sur 16 bits
pile de 8 * 16 bits
PFC,IR: pour le pipeline
Registres de status ST0,ST1,PMST
Gestion des boucles
RPTC: repeat instruction
BRCR: repeat bloc
Interruptions :
IMR: masque interruptions
IFR: flags interruptions
BMAR: bloc move
GREG: mmoire globale
Universit de Savoie
55
Chapitre 3 : Les units spcifiques des DSP
3.1
3.2
3.2
3.3
3.4
Architecture gnrale et objectifs
Unit de commande
Unit de traitement
Unit de mmorisation
Performance / Consommation
Universit de Savoie
56
Unit de traitement
DSP virgule fixe / virgule flottante
Il existe deux types de DSP :
Les DSPs virgule fixe traitent des nombres
entiers seulement
Les DSPs virgule flottante traitent des
nombres rels cods sous la forme mantisse
exposant.
Universit de Savoie
57
Unit de traitement
DSP virgule fixe (1)
Arithmtique :
Dynamique limite : [-Xmax et Xmax] : Possibilit de
dbordement ncessit de recadrer les donnes
Dveloppement :
Temps de dveloppement plus long : tude de la
dynamique des donnes, dtermination du codage et
des recadrages
Universit de Savoie
58
Unit de traitement
DSP virgule fixe (2)
Architecture :
Oprateurs plus simples
Largeur des donnes b : 16 bits
Efficacit nergtique plus importante : consommation
moins importante
Processeur moins cher (surface du circuit moins importante)
Processeur rapide (seulement pour les calculs virgule fixe)
March :
applications grand public
Xx % des ventes en xx
TMS320C62x :
TMS320C64x :
59
Unit de traitement
DSP virgule flottante (1)
Arithmtique :
Dynamique importante : 1500 dB pour 32 bits
Dveloppement
Temps de dveloppement plus court
Recadrage des donnes assur par le processeur
Compilateur de langage de haut niveau plus efficace : plus
grande portabilit
Universit de Savoie
60
Unit de traitement
DSP virgule flottante (2)
Architecture :
Largeur des donnes : 32 bits
Oprateurs plus complexes (gestion de la mantisse et de
lexposant)
Processeur plus cher et consommant plus
March
Applications ncessitant une grande dynamique :
audionumrique
Applications avec des faibles volumes
61
Unit de traitement
Exemple
Filtre numrique FIR sur N points
N 1
y(n) h(i).x(n i) x(n) h(n)
i 0
Dessiner la structure matrielle permettant de raliser le calcul de y(n).
D
x(n)
h(0)
h(1)
x
+
h(2)
h(3)
x
+
h(4)
x
+
y(n)
Cellule
Objectif : traitement dune cellule par cycle
Universit de Savoie
62
Unit de traitement
Elments de lunit de traitement (1)
Oprateurs
Multiplieur cbl
Multiplication en 1 cycle ou pipeline (1 rsultat de multiplication
par cycle)
Le rsultat est fourni directement lUAL ou il est stock dans un
registre (P register)
Largeur des oprandes
source : b
rsultat : bmultiplication = 2.b
Units de saturation ou darrondi
Units spcifiques
Unit de manipulation de bit, Viterbi, ...
Universit de Savoie
63
Unit de traitement
Elments de lunit de traitement (2)
U.A.L.
Oprations arithmtiques : addition, soustraction,
incrmentation, ngation
Oprations logiques : and, or, not
Additionneur indpendant de lUAL
Registres dcalage (recadrage des donnes)
spcialis : ralisation de quelques dcalages prdfinis
en //
en barillet : ralisation d un dcalage quelconque en 1
cycle
Universit de Savoie
64
Unit de traitement
lments de lunit de traitement (3)
Units de stockage de lunit de traitement
Registres oprandes
Stockage des oprandes sources ou des rsultats intermdiaires
Registres daccumulation
Stockage du rsultat de l additionneur
Nombre de registres daccumulation limit (1 4)
Donnes stockes en double prcision
Possibilit de bits de garde pour stocker les bits supplmentaires
issus d accumulations successives badd = bmultiplication + bgarde
Bits de garde
bgarde
ACCH
ACCL
2.b
65
Unit de traitement
Structure de lunit de traitement MAC
bmult
MAC
badd
Accumulateur
Sat /Arr
Universit de Savoie
66
Unit de traitement
Exemple : TMS320C54x
DB PB DB
CB
CB DB CBDBEB
1 multiplieur 16*16 bits
Op source 1 : registre T
Op source 2 : mmoire
Op destination :
1 additionneur 40 bits
1 ALU (40 bits)
Universit de Savoie
2 registres d accumulation 40
bits
1 registre dcalage en
barillet
1 unit ddie l algorithme
de Viterbi
67
Chapitre 3 : Les units spcifiques des DSP
3.1
3.2
3.2
3.3
3.4
Architecture gnrale et objectifs
Unit de commande
Unit de traitement
Unit de mmorisation
Performance / Consommation
Universit de Savoie
68
Unit de mmorisation
Les diffrents accs la mmoire
Exemple Filtre FIR
Recherche de linstruction
Lecture de la donne xn-k
Lecture du coefficient hk
Vieillissement des donnes xn-k-1 = xn-k
D
x(n)
h(0)
h(1)
h(2)
h(3)
h(4)
y(n)
+
TAP
69
Unit de mmorisation
Rappels : Bus
Le CPU est le matre du bus
Il est le seul crire sur les bus adresse et contrle
Le priphrique obtempre sur le bus donnes
CPU
Lecture : il fournit la donne demande
Ecriture : il rcupre la donne fournie par le CPU
Haute impdance : il se dconnecte du bus
BUS
Priphrique
Adresses : slection du priphrique
et localisation dune donne
Donnes : valeur de la donne changer
adresses
CPU
donnes
contrle
Priphrique
Contrle : lire / crire / haute impdance
Universit de Savoie
70
Unit de mmorisation
Accs mmoire pour un calcul
1
2
CPU
Mmoire
4
3
(1)
(2)
(3)
(4)
Charger une instruction depuis la mmoire
Charger les oprandes depuis la mmoire
Effectuer les calculs
Stocker le rsultat en mmoire
Universit de Savoie
71
Unit de mmorisation
Architecture Von Neuman
CPU
BUS
Mmoire
Programme
+ Donnes
Un seul chemin d'accs la mmoire
Architecture des processeurs dusage gnral (Pentium,
68000)
Goulot d'tranglement pour l'accs la mmoire
Universit de Savoie
72
Unit de mmorisation
Architecture Harvard
Mmoire Programme
CPU
Mmoire Donnes
Sparation des mmoires programme et donnes
Meilleure utilisation du CPU
Chargement du programme et des donnes en parallle
Universit de Savoie
73
Unit de mmorisation
Accs mmoire multi-port
Mmoire Programme
+ Donnes
CPU
Mmoire Donnes
Plusieurs bus de donnes
Accs simultan plusieurs donnes
Combin avec
mmoire multi-accs (plusieurs accs la mme mmoire en un
cycle)
mmoire multi-blocs (accs simultan deux blocs de mmoire
distincts)
Exemple du TMS320C54xx :
1 bus programme (P)
2 bus de lecture des donnes (C et D)
1 bus dcriture des donnes (E)
74
Unit de mmorisation
Exemple du TMS320C5416
Program A/D Bus (P)
Internal
Data Read A/D Bus (D)
Memory
Data Read A/D Bus (C)
Extl
Mem
I/F
External
Memory
Data Write A/D Bus (E)
Internal: Up to 4 accesses / cycle
External: 1 access / cycle
up to 8M words program
Exemple du TMS320C54xx :
1 bus programme (P)
2 bus de lecture des donnes (C et D)
1 bus dcriture des donnes (E)
Universit de Savoie
75
Unit de mmorisation
Exemple du TMS320C5416
Universit de Savoie
77
Unit de mmorisation
Exemple du TMS320C5416
Program
Data
ROM
ROM
SARAM
DARAM
P Bus
Extl
Mem
I/F
D Bus
C Bus
A
D
E Bus
Universit de Savoie
78
Unit de mmorisation
Cache d'instructions
DSP
cache
dinstructions
Mmoire Programme
+ Donnes
CPU
Cache = mmoire associative rapide
Contient les dernires instructions excutes
Utile en cas de boucle
Mmoire Donnes
Accs aux instructions sans accs en mmoire programme
Libre le bus pour des donnes
Pas appliqu aux donnes
Problme de validation du temps rel
Universit de Savoie
79
Unit de mmorisation
Bus externes
Boitier du DSP
Mmoire Programme
+ Donnes
CPU
Mmoire Donnes
MUX
Transfert entre les bus
internes et externe par
multiplexage temporel
Limitation du nombre de broches
Rduction des cots
Diminution des performances lors
des accs au bus externe
80
Unit de mmorisation
Accs Direct la Mmoire : DMA
Mmoire Programme
+ Donnes
CPU
Mmoire Donnes
interruptions
DMA
configuration
Accs DMA : entres-sorties vers la mmoire interne
indpendant du CPU et des bus internes
Systme d'interruptions "donnes reues"/"donnes transmises"
81
Unit de mmorisation
DMA et buffer ping-pong
DSP
McBSP2
CAN
McBSP2
DRR
DXR
DMA4
PING
IN
31
PONG
IN
2
CNA
DMA5
PING
OUT
1
Traitement
Buffers en mmoire
PONG
OUT
2
Buffers en mmoire
Universit de Savoie
Source: Texas Instruments C5000 DSP Teaching Kit82
Unit de mmorisation
Mmoire interne sur les C54x
Capacit en mmoire interne de diffrents modles C54x
Dcoupage en blocs
Plusieurs types de RAM incluse sur le chip
Single access (SARAM) : un accs par cycle
Dual access (DARAM) : deux accs par cycle
Two-way shared : deux accs par cycle mme depuis l'extrieur
DARAM dcoupe en blocs
Accs simultan deux blocs de mmoire diffrents
2x2=4 accs par cycle en thorie (en ralit limit par le reste de l'architecture)
sources : "TMS320C54x DSP Functional Overview", SPRU307A, Texas Instrument
"TMS320VC5416 DSK Reference Technical", Spectrum Digital
83
Unit de mmorisation
Adressage indirect : *ARx (1)
MPY
Linstruction contient un numro de registre auxiliaire
ARx qui contient ladresse en mmoire ou se trouve la
donne
Analogue aux pointeurs en C
Possibilit de modifier la valeur du registre
*AR4, *AR3, A
; Multiplication de la donne ladresse contenue dans AR4
; par celle pointe par AR3 et stockage du rsultat en A
; On remarque laccs simultan deux donnes
; A dm(AR4) dm(AR3)
Universit de Savoie
84
Unit de mmorisation
Adressage indirect : exemple (3)
Option
Syntax
Action
No Modification
*ARn
no modification to ARn
Increment /
Decrement
*ARn+
*ARn-
post increment by 1
post decrement by 1
Indexed
*ARn+0
*ARn-0
post increment by AR0
post decrement by AR0
AR0
Circular
*ARn+%
*ARn-%
*ARn+0%
*ARn-0%
post increment by 1 - circular
post decrement by 1 - circular
post increment by AR0 - circular
post decrement by AR0 - circular
BK
Bit-Reversed
*ARn+0B
*ARn-0B
post inc. ARn by AR0 with reverse carry
post dec. ARn by AR0 with reverse carry
Pre-modify
*ARn (lk)
*+ARn (lk)
*+ARn (lk)%
*+ARn
*(ARn+LK), ARn unchanged
*(ARn+LK), ARn changed
*(ARn+LK), ARn changed - circular
pre-increment by 1, during write only
*(lk)
16-bit lk is used as an absolute address
Universit de
Savoie
See Absolute
Addressing
Absolute
Affected by:
BK, AR0
AR0
(=FFT size/2)
BK
85
Unit de mmorisation
ARAU (Unit dadressage indirect)
Registres d'adressage
Units de calcul spcialises
Ecriture sur les bus
d'adresse des bus C, D et E
86
Unit de mmorisation
Buffer linaire
Chaque nouvel chantillon donne lieu au dplacement
de lensemble des donnes du buffer, ladresse du
nouvel chantillon est toujours la mme.
Time n
Time n+1
Time n+2
Time n+3
x(n)
x(n-1)
x(n-2)
x(n-3)
x(n+1)
x(n)
x(n-1)
x(n-2)
x(n+2)
x(n+1)
x(n)
x(n-1)
x(n+3)
x(n+2)
x(n+1)
x(n)
Universit de Savoie
87
Unit de mmorisation
Adressage circulaire
Exemple : stockage des chantillons dentre dans un
filtre FIR.
Time n
Time n+1
Time n+2
Time n+3
x(n-1)
x(n)
x(n-3)
x(n-2)
x(n-1)
x(n)
x(n+1)
x(n-2)
x(n-1)
x(n)
x(n+1)
x(n+2)
x(n+3)
x(n)
x(n+1)
x(n+2)
Chaque nouvel chantillon donne lieu lcriture dune
donne. Cette adresse est calcule par le gnrateur
dadresse.
Universit de Savoie
88
Unit de mmorisation
MMR : Memory Mapped Registers Addressing
MMRs are in page 0 of data memory.
They can be accessed by some specific MMR
instructions allowing simple access to page 0.
In these cases DP, SP and CPL are ignored
Example : STM (STore to Memory-mapped register):
Stores an immediate value to the specified MMR or Scratch
memory address.
0000h
MMRs
0060h
007Fh
Scratch
Tip: use the .mmregs directive
to allow MMR names to be
interpreted as addresses
Universit de Savoie
89
Unit de mmorisation
Memory Mapped Registers
Name
Addr.
(Hex)
Description
Name
Addr.
(Hex)
Description
IMR
0000
Interrupt Mask Register
AR0
0010
Address Register 0
IFR
0001
Interrupt Flag Register
AR1
0011
Address Register 1
-----
2-5
Reserved
AR2
0012
Address Register 2
ST0
0006
Status 0 Register
AR3
0013
Address Register 3
ST1
0007
Status 1 Register
AR4
0014
Address Register 4
AL
0008
A accumulator low (A[15:00])
AR5
0015
Address Register 5
AH
0009
A accumulator high (A[31:16])
AR6
0016
Address Register 6
AG
000A
A accumulator guard (A[39:32])
AR7
0017
Address Register 7
BL
000B
B accumulator low (B[15:00])
SP
0018
Stack Pointer Register
BH
000C
B accumulator high (B[31:16])
BK
0019
Circular Size Register
BG
000D
B accumulator guard (B[39:32])
BRC
001A
Block Repeat Counter
000E
Temporary Register
RSA
001B
Block Repeat Start Address
TRN
000F
Transition Register
REA
001C
Block Repeat End Address
PMST
001D
PMST Register
-------
01E-01F
Reserved
Note: XPC and Peripheral MMR locations are device dependent
90
Chapitre 3 : Les units spcifiques des DSP
3.1
3.2
3.2
3.3
3.4
Architecture gnrale et objectifs
Unit de commande
Unit de traitement
Unit de mmorisation
Performance / Consommation
Universit de Savoie
91
Performance / Consommation
Consommation nergtique
Filtrage numrique FIR:
C549
C6201
200MHz, 2.5V
ADSP-21160
100MHz, 3.3V
ZSP16401
200MHz, 1.8V
DSP16210
100MHz, 2.5V
100MHz, 2.5V
C6701
167MHz, 1.8V
92
Performance / Consommation
Mesures des performances
MFLOPS
Million FloatingPoint
Operation Per Second
Mesure le nombre doprations
arithmtiques virgule flottante que le
DSP virgule flottante peut raliser
en une seconde
MOPS
Million Operation
Per Second
Mesure le nombre total doprations
(calcul, accs DMA, transferts, etc.) que
le DSP peut raliser en une seconde
MIPS
Million Instructions
Per Second
Mesure le nombre de codes machine
(instructions) que le DSP peut raliser
en une seconde
MMACS
Million of MAC
per Second
Mesure le nombre doprations MAC
(Multiply+Accumulate) que le DSP peut
raliser en une seconde
MBPS
Mega-Bytes
Per Second
Mesure la bande passante dun bus
particulier ou dun dispositif dE/S
Universit de Savoie
93
Performance / Consommation
Panorama des DSP (2)
Universit de Savoie
94
Chapitre 4 : Le DSP TMS320C5416
4.1 Larchitecture
4.2 Lorganisation mmoire
Universit de Savoie
95
Larchitecture
Diagramme bloc du TMS320C5416 (1)
Universit de Savoie
96
Larchitecture
Diagramme bloc du TMS320C5416 (2)
Program/Data ROM
16K Words
Program/Data RAM
128K Words
JTAG Test/
Emulation
Control
Bus externe
MUX
D(15-0)
Mmoire
interne
Program/Data Buses
Timer
A(23-0)
MAC
17 x 17 MPY
ALU
40-Bit ALU
40-Bit Adder
CMPS Operator
(VITERBI)
RND, SAT
EXP Encoder
Ch 2
Shifter
Accumulators
40-Bit ACC A
Ch 3
Muxed GP I/O
Ch 0
Ch 1
Ch 4
Ch 5
Addressing Unit
8 Auxiliary Registers
Peripheral Bus
CPU40-Bit ACC B
40-Bit Barrel
(-16, 31)
DMA
8/16-bit Host Port
Interface (HPI)
Multichannel Buffered
Serial Port (McBSP)
Multichannel Buffered
Serial Port (McBSP)
Multichannel Buffered
Serial Port (McBSP)
PLL Clock
Generator
2 Addressing Units
S/W Waitstate
Generator
Power Management
Universit de Savoie
Entres
Sorties
97
Larchitecture
Diagramme bloc du TMS320C5416 (3)
Program/Data ROM
16K Words
Program/Data RAM
128K Words
JTAG Test/
Emulation
Control
Bus externe
MUX
D(15-0)
Program/Data Buses
Timer
A(23-0)
MAC
17 x 17 MPY
ALU
40-Bit ALU
40-Bit Adder
CMPS Operator
(VITERBI)
RND, SAT
EXP Encoder
Ch 2
Shifter
Accumulators
40-Bit ACC A
Ch 3
40-Bit Barrel
(-16, 31)
Gnration
dadresses
40-Bit ACC B
DMA
Muxed GP I/O
Ch 0
Ch 1
Ch 4
Ch 5
Addressing Unit
8 Auxiliary Registers
Peripheral Bus
Units de
calcul
Mmoire
interne
8/16-bit Host Port
Interface (HPI)
Multichannel Buffered
Serial Port (McBSP)
Multichannel Buffered
Serial Port (McBSP)
Multichannel Buffered
Serial Port (McBSP)
PLL Clock
Generator
2 Addressing Units
S/W Waitstate
Generator
Power Management
CPU
Universit de Savoie
Entres
Sorties
98
Structure interne du
TMS320C54x
Source : Texas Instruments
TMS320C54x DSP
Reference Set
Vol 1 : CPU and Peripherals
Unit de controle
Gnration
d'adresses
programme
Gnration
d'adresses
donnes
Bus P
programme
Bus C / D
lecture
donnes
Bus E
criture
donnes
Universit de Savoie
100
Registres
ALU
Shifter
MAC
Viterbi
Chapitre 4 : Le DSP TMS320C5416
4.1 Larchitecture
4.2 Lorganisation mmoire
Universit de Savoie
102
Lorganisation mmoire
Les types de mmoires
Larchitecture Harward Modifie du DSP lui
donne donc une organisation autour de deux
types de mmoire :
De la mmoire pour le programme
De la mmoire pour les donnes
Ces types de mmoire seront physiquement de
la ROM ou de la RAM (DARAM, SARAM). Selon
la version du circuit, le type (ROM, RAM) et la
taille de la mmoire intgre dans le circuit
diffre.
Universit de Savoie
103
Lorganisation mmoire
Quantit et type de mmoire programme
Universit de Savoie
104
Lorganisation mmoire
Quantit et type de mmoire donnes
Universit de Savoie
105
Lorganisation mmoire
Type de mmoire
Chaque DSP possde donc une certaine
quantit de RAM double accs (DARAM), de
la RAM simple accs (SARAM) et de la ROM
interne.
La RAM est gnralement rserv aux donnes
et la ROM au programme mais on trouve
beaucoup dexception cette rgle.
Universit de Savoie
106
Lorganisation mmoire
Mmoire Programme (1)
La zone de la mmoire programme de
ladresse 0 13FFh , sera situe
lextrieur du circuit si le bit OVLY
(Overlay) est mis 0.
Lorsque ce bit est 1 la zone 80h
13FF (4992 mots) est situe en
mmoire interne. Elle est constitu de
RAM double accs commune
lespace de mmoire donne. Dans ce
cas 0 7Fh est interdit.
Lorsque la zone est commune aux 2
espaces, cela signifie quelle peut
contenir aussi bien des instructions
que des donnes : on se sert de cette
possibilit plus particulirement
lorsque lon souhaite faire la mise
jour dynamique dun programme
pralablement charg en mmoire.
Lorganisation mmoire
Mmoire Programme (2)
De 1400h 8FFFh (31 Kmots) se
trouve une zone de mmoire
adressable lextrieur du circuit. La
zone de 9000h FFFFh (28Kmots)
pourra tre de la ROM interne si la
broche MP/MC =0, ou de la ROM
externe si la broche est 1.
Dans les 2 cas, la zone situe de FF80h
FFFFh (128 mots) est rserv aux
vecteurs dinterruption.
108
Lorganisation mmoire
Mmoire de donnes
Cet espace comporte une zone de RAM
double accs de 0 13FFh (5Kmots)
dont 96 mots, de ladresse 0 5 Fh
rservs au stockage des registres
mapps en mmoires et une zone de
mmoire de travail de 60h 7Fh. La
mmoire situ de 80h 13FFh pourra,
comme nous lavons vu
prcdemment, tre partage par
lespace programme (OVLY=1).
La zone suivant de 1400h E000h
(50Kmots) sera situe lextrieur du
circuit.
Si DROM est 0, la mmoire de
ladresse E000h FFFFh sera
accessible lextrieur, ce sera de la
ROM interne si DROM=1
Chapitre 5 : Un outil de dveloppement logiciel
Code Composer Studio
5.1 Linterface et la compilation
5.2 Les librairies
Universit de Savoie
110
Linterface Code Composer Studio
1. Introduction
Chaine de compilation : exemple de CCS V3.3
Program.c
*.asm, *.c
module.h
Module.h54
[Link]
Generate
programcfg.h54
Compile or
Assemble
[Link]
*.obj
Programcfg_c.c
programcfg.s54
Programcfg.h
Assemble
Compile
[Link]
programcfg_c.obj
[Link]
[Link]
Link
[Link]
112
1. Introduction
Emulateur JTAG
HOST
TARGET
CCS
JTAG
Interface
JTAG
Emulator
DSP
Target
JTAG est un outil puissant pour faire du debug logiciel bas niveau. Son
implementation demande une carte quipe dun mulateur JTAG. Celui-ci est
parfois jumel avec la connectivit USB qui alimente la carte.
Sur le starter kit DSK5416, lmulateur JTAG est intgr : chargement du
code, execution en pas pas, breakpoint, visualisation de la mmoire
113
Linterface et la compilation
Chane de compilation (3)
[Link] :
fichier contenant lensemble des options du projet et qui fourni le lien
vers tous les fichiers que contient le projet.
program.c :
Programme source en langage C contenant la fonction main(). Nous
pouvons aussi avoir dautres fichier.c pour les fonctions utilisateur.
[Link] :
Programme source en assembleur contenant la fonction main(). Nous
pouvons aussi avoir dautres [Link] pour les fonctions utilisateur.
header.h :
Fichier header pour les dclaration des fonctions ou variables du langage
C utilises dans le projet.
Universit de Savoie
114
Linterface et la compilation
Chane de compilation (4)
header.h54 :
Fichier header pour les dclaration des fonctions ou variables assembleur
utilises dans le projet.
[Link] :
Librairie compile. Ce genre de fichier est souvent donn par le
constructeur pour fournir des fonctions utilisateurs spcifiques pour son
composant.
[Link] :
Fichier objet. Cest un fichier compil depuis une fichier assembleur ou
un fichier C.
[Link]:
Fichier de commande. Indispensable pour le linker afin quil dfinisse
lemplacement des variables et du code en mmoire.
Linterface et la compilation
Chane de compilation (5)
Fichier gnr par la chaine de compilation
[Link] :
Cest le programme excutable pour une cible spcifique. Il sagit
du code charg en mmoire.
[Link] :
Fichier listing, il sagit dun fichier o sont superposs le code en
C, le code assembleur gnr, le code machine gnr, et les
adresses mmoires utilises pour chaque instruction.
[Link] :
Fichier mapping, il sagit dun fichier rsumant toutes les
quantits et les zones mmoires utilises.
>> Document dexemples de code
Linterface et la compilation
Outils de dbogage
Type doutils
Emulateur
Boundary-scan (JTAG)
Communique avec le DSP
grande vitesse
Capable de simuler/enregistrer
en temps-rel ltat interne
exact du DSP
Protocole intgr au sein du
processeur
Interrompt le DSP pour
accder linformation
DSP
Emulateur
ou
IDE
Contrleur JTAG
Dfinition de breakpoints
et modification des variables
Rcupration des donnes
depuis la mmoire du DSP
Oprations
Interruption et relance de
lexcution
Chargement du code
Breakpoints
Accs en lecture/criture
Visualisation et modification du
contenu mmoire
Registres internes
117
Linterface et la compilation
Affichage du code dsassembl
#define N 256
short inputData[N];
short outputData[N];
void toto()
{
int i;
for (i=0; i<N; i++)
{
outputData[i] = inputData[i];
}
}
Compilation et dition des liens
puis affichage du code dsassembl
Mixed Source/ASM
Chapitre 5 : Un outil de dveloppement
logiciel: Code Composer Studio
5.1 Linterface et la compilation
5.2 Les librairies
Universit de Savoie
119
Les librairies
Avantages d'une librairie
Il existe plusieurs librairies :
CSL : Chip support Library, fourni par le constructeur de composant
BSL : Board support Library fourni par le constructeur de la carte de
dveloppement.
Librairies spcialises : DSPLIB,IMGLIB
Il sagit de faire une abstraction du matriel travers une API logicielle
(Application Programmable Interface). Ces interfaces logicielles sont
pilotes par une interface graphique dans le cas du CSL et permettent :
un temps de dveloppement rduit
une programmation de plus haut niveau
Elles sont presque indispensables pour compenser la complexit des
processeurs actuels.
Universit de Savoie
120
Les librairies
Exemple : Board Support Library
Cas du TP 2 sur DSP TMS320
Ces fonctions font parties des librairies de la carte (Board Support Library)
>> Voir
C:\CCStudio_v3.1\docs\hlp\[Link]
Universit de Savoie
121
Les librairies
Exemple : Chip Support Library
Universit de Savoie
122
Les librairies
Exemple : DSPLIB
Cette librairies est un support pour le calcul. Elle est
La library DSPLIB est compose de 3 parties
Dj programme
Optimise
Utilisable depuis le langage C
Un fichier header : dsplib.h
Un fichier objet ([Link]) comportant le code compil des
fonctions dclares dans dsplib.h
Un fichier source [Link] permettant la customisation des
fonctions par lutilisateur.
Exemple :
short cfft8 (DATA *x, DATA scale);
short fir(DATA *x, DATA *h, DATA *r,DATA **d, ushort nh, ushort nx);
Les librairies
Vue synoptique des modules utiles
User Application
Logiciel applicatif
Abstraction du matriel
et systme dexploitation
DSP/BIOS
Kernel/Scheduler
CPU Timer EMIF
Matriel
USB/
JTAG
CSL
Dsplib
Imglib
BSL
Drivers
McBSP
DSP
CODEC
LED
Boutons
Carte DSK
Universit de Savoie
124