Implémentation optimale de filtres linéaires en arithmétique virgule fixe
1. Implémentation optimale de filtres linéaires en
arithmétique virgule fixe
Soutenance de thèse de
Benoit Lopez (LIP6, UPMC)
Directeur de thèse : L.-S. Didier (IMATH, Univ. de Toulon)
Co-encadrant de thèse : T. Hilaire (LIP6, UPMC)
B. Lopez (LIP6, UPMC) Soutenance de thèse 1 / 47
2. Contexte
D’un côté un filtre...
x[n]
z 1
z 1
z 1
h[0] h[1] h[2] h[3]
y[n]
x[n]
y[n]
z 1
z 1
z 1
h[0] h[1] h[2] h[3]
L M H(z)
Weird
Stu
0 10 20 30 40 50 60 70 80 90 100
−5
−4.5
−4
−3.5
−3
−2.5
−2
−1.5
−1
−0.5
0
H
0 10 20 30 40 50 60 70 80 90 100
−8
−7
−6
−5
−4
−3
−2
−1
0
Traitement du signal
Filtre linéaire et invariant dans le temps
À coefficients réels
B. Lopez (LIP6, UPMC) Soutenance de thèse 2 / 47
3. Contexte
D’un côté un filtre...
x[n]
z 1
z 1
z 1
h[0] h[1] h[2] h[3]
y[n]
x[n]
y[n]
z 1
z 1
z 1
h[0] h[1] h[2] h[3]
L M H(z)
Weird
Stu
0 10 20 30 40 50 60 70 80 90 100
−5
−4.5
−4
−3.5
−3
−2.5
−2
−1.5
−1
−0.5
0
H
0 10 20 30 40 50 60 70 80 90 100
−8
−7
−6
−5
−4
−3
−2
−1
0
Traitement du signal
Filtre linéaire et invariant dans le temps
À coefficients réels
B. Lopez (LIP6, UPMC) Soutenance de thèse 2 / 47
4. Contexte
... de l’autre une cible – 1
Système embarqué matériel ou logiciel
On ne peut pas représenter les réels, et pour des raisons de ressources
on utilise l’arithmétique virgule fixe.
B. Lopez (LIP6, UPMC) Soutenance de thèse 3 / 47
5. Contexte
... de l’autre une cible – 2
x[n]
z 1
z 1
z 1
h[0] h[1] h[2] h[3]
y[n]
x[n]
y[n]
z 1
z 1
z 1
h[0] h[1] h[2] h[3]
L M H(z)
Weird
Stu
H
On a besoin d’une méthodologie et d’outils pour
implémenter ces filtres linéaires réels en virgule fixe.
B. Lopez (LIP6, UPMC) Soutenance de thèse 4 / 47
6. Contexte
L’implémentation en virgule fixe est difficile
Implémentation à partir d’un algorithme réel =) dégradations numériques
B. Lopez (LIP6, UPMC) Soutenance de thèse 5 / 47
7. Contexte
L’implémentation en virgule fixe est difficile
Implémentation à partir d’un algorithme réel =) dégradations numériques
Origines des dégradations
Quantification des coefficients réels
Arrondis dans les calculs
B. Lopez (LIP6, UPMC) Soutenance de thèse 5 / 47
8. Contexte
L’implémentation en virgule fixe est difficile
Implémentation à partir d’un algorithme réel =) dégradations numériques
Origines des dégradations
Quantification des coefficients réels
Arrondis dans les calculs
Les dégradations dépendent de
l’algorithme utilisé pour décrire le filtre
la façon dont sont effectués les calculs
B. Lopez (LIP6, UPMC) Soutenance de thèse 5 / 47
10. Contexte
Problématique
Question :
Comment implémenter au mieux un filtre linéaire réel en virgule fixe ?
Pour répondre à cette question, plusieurs étapes sont nécessaires :
Formaliser précisément l’arithmétique virgule fixe
B. Lopez (LIP6, UPMC) Soutenance de thèse 6 / 47
11. Contexte
Problématique
Question :
Comment implémenter au mieux un filtre linéaire réel en virgule fixe ?
Pour répondre à cette question, plusieurs étapes sont nécessaires :
Formaliser précisément l’arithmétique virgule fixe
Exploiter les propriétés des filtres linéaires
B. Lopez (LIP6, UPMC) Soutenance de thèse 6 / 47
12. Contexte
Problématique
Question :
Comment implémenter au mieux un filtre linéaire réel en virgule fixe ?
Pour répondre à cette question, plusieurs étapes sont nécessaires :
Formaliser précisément l’arithmétique virgule fixe
Exploiter les propriétés des filtres linéaires
Décrire une méthodologie pour le logiciel et une autre pour le matériel
B. Lopez (LIP6, UPMC) Soutenance de thèse 6 / 47
13. Contexte
Problématique
Question :
Comment implémenter au mieux un filtre linéaire réel en virgule fixe ?
Pour répondre à cette question, plusieurs étapes sont nécessaires :
Formaliser précisément l’arithmétique virgule fixe
Exploiter les propriétés des filtres linéaires
Décrire une méthodologie pour le logiciel et une autre pour le matériel
Proposer un outil pour mettre en œuvre l’ensemble de cette démarche
B. Lopez (LIP6, UPMC) Soutenance de thèse 6 / 47
16. Arithmétique virgule Fixe
Virgule Fixe
s
m + 1 `
w
2m
20 2 12m 1 2`
un entier multiplié par un facteur d’échelle fixe : x = X · 2`
un format virgule fixe : (m, `)
une largeur : w
arithmétique signée en complément à deux
Le facteur d’échelle est implicite : le développeur sait où sont les virgules,
mais le code implanté est uniquement basé sur des calculs en nombres
entiers.
B. Lopez (LIP6, UPMC) Soutenance de thèse 8 / 47
Formalisme
virgule fixe
17. Arithmétique virgule Fixe
Virgule Fixe
s
m + 1 `
w
2m
20 2 12m 1 2`
un entier multiplié par un facteur d’échelle fixe : x = X · 2`
un format virgule fixe : (m, `)
une largeur : w
arithmétique signée en complément à deux
Première contribution
Une formalisation détaillée de l’arithmétique virgule fixe pour les
algorithmes de filtres linéaires.
B. Lopez (LIP6, UPMC) Soutenance de thèse 8 / 47
Formalisme
virgule fixe
18. Filtres linéaires et réalisations équivalentes
Plan
Pré-requis
sur les filtres
Formalisme
virgule fixe
Analyse
des filtres,
premiers outils
Implémentation
logicielle
Implémentation
matérielle
L’outil
FiPoGen
B. Lopez (LIP6, UPMC) Soutenance de thèse 9 / 47
19. Filtres linéaires et réalisations équivalentes
Filtres Linéaires
H
u(k) y(k)
LTI : Filtres linéaires invariants dans le temps
FIR (réponse impulsionnelle finie) :
H(z) =
nX
i=0
bi z i
, ) y(k) =
nX
i=0
bi u(k i)
IIR (réponse impulsionnelle infinie) :
H(z) =
Pn
i=0 bi z i
1 +
Pn
i=1 ai z i
, ) y(k) =
nX
i=0
bi u(k i)
nX
i=1
ai y(k i)
B. Lopez (LIP6, UPMC) Soutenance de thèse 10 / 47
Pré-requis
sur les filtres
20. Filtres linéaires et réalisations équivalentes
Filtres Linéaires
LTI : Filtres linéaires invariants dans le temps
FIR (réponse impulsionnelle finie) :
H(z) =
nX
i=0
bi z i
, ) y(k) =
nX
i=0
bi u(k i)
IIR (réponse impulsionnelle infinie) :
H(z) =
Pn
i=0 bi z i
1 +
Pn
i=1 ai z i
, ) y(k) =
nX
i=0
bi u(k i)
nX
i=1
ai y(k i)
On a un premier algorithme (ou réalisation) exprimant à chaque instant la
sortie y(k) en fonction de l’entrée u(k), mais ce n’est pas le seul.
B. Lopez (LIP6, UPMC) Soutenance de thèse 10 / 47
Pré-requis
sur les filtres
21. Filtres linéaires et réalisations équivalentes
Réalisations équivalentes
Pour un filtre LTI donné, il y a de nombreuses façons de décrire la relation
entre u(k) et y(k).
B. Lopez (LIP6, UPMC) Soutenance de thèse 11 / 47
Pré-requis
sur les filtres
22. Filtres linéaires et réalisations équivalentes
Réalisations équivalentes
Pour un filtre LTI donné, il y a de nombreuses façons de décrire la relation
entre u(k) et y(k).
Toutes ces réalisations sont équivalentes en précision infinie mais ne le sont
plus en précision finie.
La dégradation en précision finie dépend du choix de la réalisation.
B. Lopez (LIP6, UPMC) Soutenance de thèse 11 / 47
Pré-requis
sur les filtres
23. Filtres linéaires et réalisations équivalentes
Réalisations équivalentes
Pour un filtre LTI donné, il y a de nombreuses façons de décrire la relation
entre u(k) et y(k).
Toutes ces réalisations sont équivalentes en précision infinie mais ne le sont
plus en précision finie.
La dégradation en précision finie dépend du choix de la réalisation.
Par exemple
Forme directe I
State-space
Forme directe II transposée avec opérateur ⇢
Structure LGS
etc.
B. Lopez (LIP6, UPMC) Soutenance de thèse 11 / 47
Pré-requis
sur les filtres
24. SIF
Une structure unificatrice
On peut décrire toutes ces réalisations sous la forme d’une structure
commune appelée forme implicite spécialisée (SIF).
Description matricielle des calculs
Explicite les opérations et leurs liens
0
@
J 0 0
K I 0
L 0 I
1
A
0
@
T(k + 1)
X(k + 1)
Y (k)
1
A =
0
@
0 M N
0 P Q
0 R S
1
A
0
@
T(k)
X(k)
U(k)
1
A
B. Lopez (LIP6, UPMC) Soutenance de thèse 12 / 47
Pré-requis
sur les filtres
25. SIF
Une structure unificatrice
On peut décrire toutes ces réalisations sous la forme d’une structure
commune appelée forme implicite spécialisée (SIF).
Description matricielle des calculs
Explicite les opérations et leurs liens
8
<
:
J · T(k + 1) M · X(k) + N · U(k)
X(k + 1) K · T(k + 1) + P · X(k) + Q · U(k)
Y (k) L · T(k + 1) + R · X(k) + S · U(k)
B. Lopez (LIP6, UPMC) Soutenance de thèse 12 / 47
Pré-requis
sur les filtres
26. SIF
Une structure unificatrice
On peut décrire toutes ces réalisations sous la forme d’une structure
commune appelée forme implicite spécialisée (SIF).
Description matricielle des calculs
Explicite les opérations et leurs liens
8
<
:
J · T(k + 1) M · X(k) + N · U(k)
X(k + 1) K · T(k + 1) + P · X(k) + Q · U(k)
Y (k) L · T(k + 1) + R · X(k) + S · U(k)
En développant une méthodologie autour de la forme implicite spécialisée,
on rend cette méthodologie applicable à toutes les réalisations.
B. Lopez (LIP6, UPMC) Soutenance de thèse 12 / 47
Pré-requis
sur les filtres
28. Analyse d’erreur
Analyse d’erreur
+
x(k) x (k)x (k) x(k)
e(k)
Q[ ]
Quantifier un signal x(k) est équivalent à ajouter une erreur e(k) à ce
signal.
B. Lopez (LIP6, UPMC) Soutenance de thèse 14 / 47
Analyse
des filtres,
premiers outils
29. Analyse d’erreur
Analyse d’erreur
À l’implémentation, l’algorithme
H
8
<
:
J · T(k + 1) M · X(k) + N · U(k)
X(k + 1) K · T(k + 1) + P · X(k) + Q · U(k)
Y (k) L · T(k + 1) + R · X(k) + S · U(k)
B. Lopez (LIP6, UPMC) Soutenance de thèse 15 / 47
30. Analyse d’erreur
Analyse d’erreur
À l’implémentation, l’algorithme
H
8
<
:
J · T(k + 1) M · X(k) + N · U(k)
X(k + 1) K · T(k + 1) + P · X(k) + Q · U(k)
Y (k) L · T(k + 1) + R · X(k) + S · U(k)
devient
H⇤
8
<
:
J · T⇤(k + 1) M · X⇤(k) + N · U(k) + "T (k)
X⇤(k + 1) K · T⇤(k + 1) + P · X⇤(k) + Q · U(k) + "X (k)
Y ⇤(k) L · T⇤(k + 1) + R · X⇤(k) + S · U(k) + "Y (k)
Les erreurs d’arrondi mènent à l’addition d’une erreur globale "(k) :
"(k) ,
0
@
"T (k)
"X (k)
"Y (k)
1
A
B. Lopez (LIP6, UPMC) Soutenance de thèse 15 / 47
33. Analyse d’erreur
Analyse d’erreur
Évaluer l’erreur de calcul "(k), c’est déterminer les calculs qui produisent
des erreurs d’arrondi.
H
8
<
:
J · T(k + 1) M · X(k) + N · U(k)
X(k + 1) K · T(k + 1) + P · X(k) + Q · U(k)
Y (k) L · T(k + 1) + R · X(k) + S · U(k)
B. Lopez (LIP6, UPMC) Soutenance de thèse 17 / 47
Analyse
des filtres,
premiers outils
34. Analyse d’erreur
Analyse d’erreur
Évaluer l’erreur de calcul "(k), c’est déterminer les calculs qui produisent
des erreurs d’arrondi.
H
8
<
:
J · T(k + 1) M · X(k) + N · U(k)
X(k + 1) K · T(k + 1) + P · X(k) + Q · U(k)
Y (k) L · T(k + 1) + R · X(k) + S · U(k)
On a besoin de connaître les positions des virgules des variables t, x et y.
Connaître le comportement du signal u à travers H.
B. Lopez (LIP6, UPMC) Soutenance de thèse 17 / 47
Analyse
des filtres,
premiers outils
35. Analyse d’erreur
Propriété des filtres linéaires
Approche classique du comportement d’un signal d’entrée u à travers un
filtre linéaire H.
H
u(k)
µu, u
y(k)
µy , y
2
Traitement du signal
µu : moyenne
u : variance
hhHiiDC : DC-Gain de H
kHk2 : norme L2 de H
Proposition
µy = hhHiiDC · µu
2
y = kH · 'uk2
2
B. Lopez (LIP6, UPMC) Soutenance de thèse 18 / 47
Analyse
des filtres,
premiers outils
36. Analyse d’erreur
Propriété des filtres linéaires
Nouvelle approche du comportement d’un signal d’entrée u à travers un
filtre linéaire H.
H
u(k)
hum, ur i
y(k)
hym, yr i
Intervalle
um : centre
ur : rayon
hhHiiDC : DC-Gain de H
hhHiiWCPG : WCPG de H
Théorème du WCPG
ym = hhHiiDC · um
yr = hhHiiWCPG · ur
en régime permanent
B. Lopez (LIP6, UPMC) Soutenance de thèse 19 / 47
Analyse
des filtres,
premiers outils
38. Analyse d’erreur
Plan
Pré-requis
sur les filtres
Formalisme
virgule fixe
Analyse
des filtres,
premiers outils
Implémentation
logicielle
Implémentation
matérielle
L’outil
FiPoGen
B. Lopez (LIP6, UPMC) Soutenance de thèse 21 / 47
39. Analyse d’erreur
Plan
Pré-requis
sur les filtres
Formalisme
virgule fixe
Analyse
des filtres,
premiers outils
Implémentation
logicielle
Implémentation
matérielle
L’outil
FiPoGen
B. Lopez (LIP6, UPMC) Soutenance de thèse 21 / 47
40. Implémentation logicielle
Implémentation logicielle
Méthodologie pour l’implémentation logicielle
Filtre
(SIF)
Filtre ! SoPs
un SoP Conversion
virgule fixe
SoP
virgule
fixe
oSoPs :
Génération
Propagation
Évaluation
le meilleur
oSoP Génération
de code
Codes FxP
SoP suivant
Spécifications matérielles
B. Lopez (LIP6, UPMC) Soutenance de thèse 22 / 47
Implémentation
logicielle
41. Implémentation logicielle
Implémentation logicielle
Méthodologie pour l’implémentation logicielle
Filtre
(SIF)
Filtre ! SoPs
un SoP Conversion
virgule fixe
SoP
virgule
fixe
oSoPs :
Génération
Propagation
Évaluation
le meilleur
oSoP Génération
de code
Codes FxP
SoP suivant
Spécifications matérielles
B. Lopez (LIP6, UPMC) Soutenance de thèse 22 / 47
Implémentation
logicielle
42. Implémentation logicielle
Implémentation logicielle
Les seules opérations nécessaires sont des sommes-de-produits :
S =
nX
i=1
ci · vi
où les ci sont des constantes connues et les vi des variables (d’entrée,
d’état, ou intermédiaires).
B. Lopez (LIP6, UPMC) Soutenance de thèse 23 / 47
Implémentation
logicielle
43. Implémentation logicielle
Implémentation logicielle
Les seules opérations nécessaires sont des sommes-de-produits :
S =
nX
i=1
ci · vi
où les ci sont des constantes connues et les vi des variables (d’entrée,
d’état, ou intermédiaires).
L’addition en logiciel peut ne pas être associative à cause des décalages.
On considère alors des sommes-de-produits ordonnées (oSoP).
B. Lopez (LIP6, UPMC) Soutenance de thèse 23 / 47
Implémentation
logicielle
47. Implémentation logicielle
Implémentation logicielle - Propagation
Pour chaque oSoP, on propage les intervalles des variables vers la sortie en
utilisant l’arithmétique d’intervalle et l’arithmétique virgule fixe.
S
+
+
+
⇥
20832
(-1,-16)
v4
(5,-10)
⇥
-16450
(-1,-16)
v5
(5,-10)
⇥
-19744
(0,-15)
v0
(5,-10)
+
+
+
⇥
22782
( 5, 20)
v1
(5, 10)
⇥
32159
( 5, 20)
v6
(5, 10)
⇥
26997
( 4, 19)
v3
(5, 10)
⇥
25313
( 3, 18)
v2
(5, 10)
(5,-10)
B. Lopez (LIP6, UPMC) Soutenance de thèse 25 / 47
Implémentation
logicielle
48. Implémentation logicielle
Implémentation logicielle - Propagation
Pour chaque oSoP, on propage les intervalles des variables vers la sortie en
utilisant l’arithmétique d’intervalle et l’arithmétique virgule fixe.
S
+
+
+
⇥
20832
(-1,-16)
y[k 1]
(5,-10)
(5,-10)
⇥
-16450
(-1,-16)
y[k 2]
(5,-10)
(5,-10)
(5,-10)
⌧ 0
⇥
-19744
(0,-15)
u[k]
(5,-10)
(6,-9)
(5,-10)
(5,-10)
2
+
1
+
1
+
⇥
22782
(-5,-20)
u[k 1]
(5,-10)
(1,-14)
⇥
-32159
(-5,-20)
y[k 3]
(5,-10)
(1,-14)
(1,-14)
(2,-13)
⇥
-26997
(-4,-19)
u[k 3]
(5,-10)
(2,-13)
(2,-13)
(3,-12)
⇥
-25313
(-3,-18)
u[k 2]
(5,-10)
(3,-12)
(3,-12)
(5,-10)
(5,-10)
B. Lopez (LIP6, UPMC) Soutenance de thèse 25 / 47
Implémentation
logicielle
49. Implémentation logicielle
Implémentation logicielle - Évaluation / Sélection
Évaluation
À chaque formatage correspond une erreur (un bruit ou un intervalle) que
l’on sait évaluer.
On en déduit l’erreur cumulée globale pour chaque schéma.
B. Lopez (LIP6, UPMC) Soutenance de thèse 26 / 47
Implémentation
logicielle
50. Implémentation logicielle
Implémentation logicielle - Évaluation / Sélection
Évaluation
À chaque formatage correspond une erreur (un bruit ou un intervalle) que
l’on sait évaluer.
On en déduit l’erreur cumulée globale pour chaque schéma.
Sélection
Plusieurs critères pour choisir le meilleur schéma :
l’erreur globale
le parallélisme
B. Lopez (LIP6, UPMC) Soutenance de thèse 26 / 47
Implémentation
logicielle
51. Implémentation matérielle
Plan
Pré-requis
sur les filtres
Formalisme
virgule fixe
Analyse
des filtres,
premiers outils
Implémentation
logicielle
Implémentation
matérielle
L’outil
FiPoGen
B. Lopez (LIP6, UPMC) Soutenance de thèse 27 / 47
52. Implémentation matérielle
Implémentation matérielle
Méthodologie pour l’implémentation matérielle
Filtre
Filtre ! SoPs
N SoPs
Expression
contraintes
d’optimisation
fichier
description
AMPL
Résolution
par Bonmin
ensemble
de largeurs
Génération
schéma
virgule fixe
Schéma
virgule
fixe Génération de
l’architecture
Architecture
B. Lopez (LIP6, UPMC) Soutenance de thèse 28 / 47
Implémentation
matérielle
53. Implémentation matérielle
Implémentation matérielle
Méthodologie pour l’implémentation matérielle
Filtre
Filtre ! SoPs
N SoPs
Expression
contraintes
d’optimisation
fichier
description
AMPL
Résolution
par Bonmin
ensemble
de largeurs
Génération
schéma
virgule fixe
Schéma
virgule
fixe Génération de
l’architecture
Architecture
B. Lopez (LIP6, UPMC) Soutenance de thèse 28 / 47
Implémentation
matérielle
54. Implémentation matérielle
Implémentation matérielle
Choix sur les largeurs =) Problème d’optimisation combinatoire
Notations
v = Z · vin
v ,
0
@
t(k + 1)
x(k + 1)
y(k)
1
A , Z ,
0
@
J0 M N
K P Q
L R S
1
A , et vin ,
0
@
t(k)
x(k)
u(k)
1
A .
B. Lopez (LIP6, UPMC) Soutenance de thèse 29 / 47
Implémentation
matérielle
55. Implémentation matérielle
Implémentation matérielle
Choix sur les largeurs =) Problème d’optimisation combinatoire
Notations
v = Z · vin
v ,
0
@
t(k + 1)
x(k + 1)
y(k)
1
A , Z ,
0
@
J0 M N
K P Q
L R S
1
A , et vin ,
0
@
t(k)
x(k)
u(k)
1
A .
Problème d’optimisation
min f (wZ , wv )
tel que gi (wZ , wv ) 0
B. Lopez (LIP6, UPMC) Soutenance de thèse 29 / 47
Implémentation
matérielle
56. Implémentation matérielle
Implémentation matérielle
Choix sur les largeurs =) Problème d’optimisation combinatoire
Notations
v = Z · vin
v ,
0
@
t(k + 1)
x(k + 1)
y(k)
1
A , Z ,
0
@
J0 M N
K P Q
L R S
1
A , et vin ,
0
@
t(k)
x(k)
u(k)
1
A .
Problème d’optimisation
min f (wZ , wv ) =
X
i,j
wZi,j
+
X
i
wvi
tel que gi (wZ , wv ) 0
B. Lopez (LIP6, UPMC) Soutenance de thèse 29 / 47
Implémentation
matérielle
57. Implémentation matérielle
Contraintes - Formatage de bits
s
s
s
s
s
s
s s
s sf
Contexte
Une somme de N termes (pi )1iN avec différents formats, et le FPF de la
somme finale connu, dont la largeur est plus petite que la largeur de la
somme exacte.
B. Lopez (LIP6, UPMC) Soutenance de thèse 30 / 47
Implémentation
matérielle
58. Implémentation matérielle
Contraintes - Formatage de bits
s
s
s
s
s
s
s s
s s0
f
Formatage
On peut limiter le nombre de bits et obtenir un arrondi fidèle.
B. Lopez (LIP6, UPMC) Soutenance de thèse 30 / 47
Implémentation
matérielle
59. Implémentation matérielle
Contraintes - Formatage de bits
s
s
s
s
s
s
s s
s s0
f
Calcul de
Arrondi
Troncature blog2(N 1)c + 1
Au plus proche blog2(N)c + 1
B. Lopez (LIP6, UPMC) Soutenance de thèse 30 / 47
Implémentation
matérielle
60. Implémentation matérielle
Contraintes - Formatage de bits
Produit constante / variable
Les constantes ci sont des constantes réelles arrondies.
L’erreur sur ci est plus petite que le bit en position `ci .
s ci (mci , `ci )
s vi (mvi , `vi )⇥
B. Lopez (LIP6, UPMC) Soutenance de thèse 31 / 47
Implémentation
matérielle
61. Implémentation matérielle
Contraintes - Formatage de bits
Produit constante / variable
Les constantes ci sont des constantes réelles arrondies.
L’erreur sur ci est plus petite que le bit en position `ci .
s ci (mci , `ci )
s vi (mvi , `vi )
wvi 1
s
`ci + `vi
⇥
B. Lopez (LIP6, UPMC) Soutenance de thèse 31 / 47
Implémentation
matérielle
62. Implémentation matérielle
Contraintes - Formatage de bits
Produit constante / variable
Les constantes ci sont des constantes réelles arrondies.
L’erreur sur ci est plus petite que le bit en position `ci .
s ci (mci , `ci )
s vi (mvi , `vi )
wvi 1
s
`ci + `vi
⇥
L’erreur se propage sur les bits en position `ci + mvi et inférieures.
B. Lopez (LIP6, UPMC) Soutenance de thèse 31 / 47
Implémentation
matérielle
63. Implémentation matérielle
Contraintes - Formatage de bits
On combine le formatage avec l’observation précédente pour obtenir la
contrainte suivante :
`s > `ci + mvi , 8i
s
s
s
s
s
s
s s
s s0
f
B. Lopez (LIP6, UPMC) Soutenance de thèse 32 / 47
Implémentation
matérielle
64. Implémentation matérielle
Contraintes - Formatage de bits
On combine le formatage avec l’observation précédente pour obtenir la
contrainte suivante :
`s > `ci + mvi , 8i
Contraintes de formatage de bits
Avec les notations de la SIF
wZi,j
wvi Ci,j , 8i, j.
B. Lopez (LIP6, UPMC) Soutenance de thèse 32 / 47
Implémentation
matérielle
65. Implémentation matérielle
Contraintes - Erreur sur la sortie
H
H"
u(k)
"(k)
+
y(k)
y(k)
y⇤(k)
On veut borner l’erreur sur la sortie y par ⇠ :
[ y; y] ⇢ [ ⇠; ⇠]
B. Lopez (LIP6, UPMC) Soutenance de thèse 33 / 47
Implémentation
matérielle
66. Implémentation matérielle
Contraintes - Erreur sur la sortie
H
H"
u(k)
"(k)
+
y(k)
y(k)
y⇤(k)
On veut borner l’erreur sur la sortie y par ⇠ :
[ y; y] ⇢ [ ⇠; ⇠]
y < ⇠
y < ⇠
B. Lopez (LIP6, UPMC) Soutenance de thèse 33 / 47
Implémentation
matérielle
67. Implémentation matérielle
Contraintes - Erreur sur la sortie
H
H"
u(k)
"(k)
+
y(k)
y(k)
y⇤(k)
On veut borner l’erreur sur la sortie y par ⇠ :
[ y; y] ⇢ [ ⇠; ⇠]
y < ⇠ !
X
j
aj
2wvj
< 1
y < ⇠ !
X
j
dj
2wvj
< 1
B. Lopez (LIP6, UPMC) Soutenance de thèse 33 / 47
Implémentation
matérielle
68. Implémentation matérielle
Contraintes - Bilan
Contraintes de formatage de bits
Avec les notations de la SIF
wZi,j
wvi Ci,j , 8i, j.
Contraintes sur l’erreur
X
j
aj
2wvj
< 1,
X
j
dj
2wvj
< 1.
B. Lopez (LIP6, UPMC) Soutenance de thèse 34 / 47
Implémentation
matérielle
69. Implémentation matérielle
Contraintes - Bilan
Contraintes de formatage de bits
Avec les notations de la SIF
wZi,j
wvi + Ci,j , 8i, j.
Contraintes sur l’erreur
X
j
aj
2wvj
< 1,
X
j
dj
2wvj
< 1.
B. Lopez (LIP6, UPMC) Soutenance de thèse 34 / 47
Implémentation
matérielle
70. Implémentation matérielle
Problème d’optimisation
Finalement, le problème se formalise ainsi :
min f (wv ) =
X
i
wvi
tel que
X
j
aj
2wvj
< 1,
X
j
dj
2wvj
< 1.
Problème Convexe Non-Linéaire en Nombres Entiers
B. Lopez (LIP6, UPMC) Soutenance de thèse 35 / 47
Implémentation
matérielle
71. Implémentation matérielle
Problème d’optimisation
Finalement, le problème se formalise ainsi :
min f (wv ) =
X
i
wvi
tel que
X
j
aj
2wvj
< 1,
X
j
dj
2wvj
< 1.
Problème Convexe Non-Linéaire en Nombres Entiers
Résolution par le solveur Bonmin.
B. Lopez (LIP6, UPMC) Soutenance de thèse 35 / 47
Implémentation
matérielle
73. FiPoGen
FiPoGen (Fixed-Point code Generator)
Cet outil réalise la méthodologie proposée pour l’implémentation d’un filtre
linéaire en virgule fixe.
Développé en Python
Actuellement spécialisé dans les algorithmes de filtres linéaires
Met en œuvre aussi bien la méthodologie logicielle que matérielle
B. Lopez (LIP6, UPMC) Soutenance de thèse 37 / 47
L’outil
FiPoGen
74. Exemple
Exemple
Soit H un filtre aléatoire stable généré avec Matlab d’ordre 8 et H sa
fonction de transfert :
H(z) =
8P
i=0
bi z i
1 +
8P
i=0
ai z i
, 8z 2 C,
b0 = 0.940140,
b1 = 1.04326, a1 = 2.06925,
b2 = 0.292108, a2 = 1.95404,
b3 = 0.693159, a3 = 1.04616,
b4 = 0.183105, a4 = 0.0898125,
b5 = 0.270429, a5 = 0.172354,
b6 = 0.296554, a6 = 0.0730519,
b7 = 0.0311837, a7 = 0.00696194,
b8 = 0.0363021, a8 = 0.00556424.
B. Lopez (LIP6, UPMC) Soutenance de thèse 38 / 47
L’outil
FiPoGen
75. Exemple
Exemple
Soit H un filtre aléatoire stable généré avec Matlab d’ordre 8
−15
−10
−5
0
5
10
15
Magnitude(dB)
10
−3
10
−2
10
−1
10
0
10
1
90
135
180
225
Phase(deg)
Bode Diagram
Frequency (rad/s)
−15
−10
−5
0
5
10
15
Magnitude(dB)
10
−3
10
−2
10
−1
10
0
10
1
90
135
180
225
Phase(deg)
Frequency (rad/s)
B. Lopez (LIP6, UPMC) Soutenance de thèse 38 / 47
L’outil
FiPoGen
76. Exemple
Exemple
Soit H un filtre aléatoire stable généré avec Matlab d’ordre 8
−15
−10
−5
0
5
10
15
Magnitude(dB)
10
−3
10
−2
10
−1
10
0
10
1
90
135
180
225
Phase(deg)
Bode Diagram
Frequency (rad/s)
−15
−10
−5
0
5
10
15
Magnitude(dB)
10
−3
10
−2
10
−1
10
0
10
1
90
135
180
225
Phase(deg)
Frequency (rad/s)
Intervalle de sortie
On considère une entrée aléatoire u(k) 2 [ 237; 162] ⇢ [ 256; 255].
On obtient la sortie y(k) 2 [ 1235.97; 1622.63] ⇢ [ 2048; 2047].
B. Lopez (LIP6, UPMC) Soutenance de thèse 38 / 47
L’outil
FiPoGen
77. Exemple
Exemple - Plusieurs réalisations
Plusieurs réalisations sont considérées :
Forme Directe I
une seule somme-de-produits de 17 produits
Forme Directe II transposée avec opérateur ⇢
une matrice de taille 17 ⇥ 17 creuse
40 coefficients non triviaux
Structure LGS
une matrice de taille 185 ⇥ 185 creuse
73 coefficients non triviaux
State-space minimisant la sensibilité L2
une matrice de taille 9 ⇥ 9 dense
B. Lopez (LIP6, UPMC) Soutenance de thèse 39 / 47
L’outil
FiPoGen
78. Exemple
Cas logiciel
On considère les largeurs fixées suivantes
Largeurs des constantes et des différents types de variables : 16 bits
Largeurs additionneurs et multiplieurs : 32 bits
B. Lopez (LIP6, UPMC) Soutenance de thèse 40 / 47
L’outil
FiPoGen
79. Exemple
Cas logiciel
On considère les largeurs fixées suivantes
Largeurs des constantes et des différents types de variables : 16 bits
Largeurs additionneurs et multiplieurs : 32 bits
Réalisations
Temps Nombre Intervalles
de génération d’opérations d’erreurs
DFI 17 ⇥ et 16 + [ 2.37205; 4.21885e-15]
SIF⇢ 000
0000
03 40 ⇥ et 24 + [ 1.62242; 0.176747]
SIFLGS 020
2700
61 73 ⇥ et 34 + [ 0.608507; 5.66752]
SSL2
050
4800
87 81 ⇥ et 72 + [ 1.31393; 0.311331]
B. Lopez (LIP6, UPMC) Soutenance de thèse 40 / 47
L’outil
FiPoGen
81. Exemple
Cas matériel
Dans cet exemple, on souhaite borner l’erreur par l’intervalle [ 2; 2].
Réalisations
Temps de
Optimalité
Nombre de bits Nombre de
résolution (sec) des variables bits total
DFI – – – 670
SIF⇢ 836.15 Oui 293 1025
SIFLGS 600 ? 749 1702
SSL2
0.28 Oui 142 1642
B. Lopez (LIP6, UPMC) Soutenance de thèse 42 / 47
L’outil
FiPoGen
83. Exemple
Conclusion
Conclusion
Durant cette thèse, j’ai répondu à la question suivante :
Pour un filtre linéaire donné, comment produire l’implémentation
virgule fixe optimale ?
Plusieurs résultats ont pu être obtenus :
Formalisation détaillée de l’arithmétique virgule fixe
Analyse du comportement d’un intervalle à travers un filtre linéaire
B. Lopez (LIP6, UPMC) Soutenance de thèse 44 / 47
84. Exemple
Conclusion
Conclusion
Durant cette thèse, j’ai répondu à la question suivante :
Pour un filtre linéaire donné, comment produire l’implémentation
virgule fixe optimale ?
Plusieurs résultats ont pu être obtenus :
Formalisation détaillée de l’arithmétique virgule fixe
Analyse du comportement d’un intervalle à travers un filtre linéaire
Méthodologie pour les implémentations matérielle et logicielle
FiPoGen, un outil pour générer du code virgule fixe en suivant ces
méthodologies
B. Lopez (LIP6, UPMC) Soutenance de thèse 44 / 47
85. Exemple
Perspectives
Dans un futur proche :
Rendre FiPoGen totalement autonome du filtre au code
Fonction de coût plus réaliste : coût d’implémentation, surface, etc.
Génération des oSoPs plus performante selon les critères de sélection
Connecter FiPoGen à des outils tels que FloPoCo ou Stratus
B. Lopez (LIP6, UPMC) Soutenance de thèse 45 / 47
86. Exemple
Perspectives
Dans un futur proche :
Rendre FiPoGen totalement autonome du filtre au code
Fonction de coût plus réaliste : coût d’implémentation, surface, etc.
Génération des oSoPs plus performante selon les critères de sélection
Connecter FiPoGen à des outils tels que FloPoCo ou Stratus
Dans un second temps :
Chercher de nouvelles réalisations pour les filtres LTI
Considérer d’autres filtres linéaires (paramétrés, etc.)
S’intéresser à d’autres classes d’algorithmes
B. Lopez (LIP6, UPMC) Soutenance de thèse 45 / 47
87. Exemple
Perspectives
Dans un futur proche :
Rendre FiPoGen totalement autonome du filtre au code
Fonction de coût plus réaliste : coût d’implémentation, surface, etc.
Génération des oSoPs plus performante selon les critères de sélection
Connecter FiPoGen à des outils tels que FloPoCo ou Stratus
Dans un second temps :
Chercher de nouvelles réalisations pour les filtres LTI
Considérer d’autres filtres linéaires (paramétrés, etc.)
S’intéresser à d’autres classes d’algorithmes
Faire de FiPoGen un outil générique pour la génération
de code virgule fixe, et non uniquement pour les filtres.
B. Lopez (LIP6, UPMC) Soutenance de thèse 45 / 47
88. Exemple
Publications
Trois publications dans des conférences avec comité de lecture
B. Lopez, T. Hilaire, L.-S. Didier. “Sum-of-products evaluation schemes with fixed-point
arithmetic, and their application to IIR filter implementation”, DASIP 2012.
T. Hilaire, B. Lopez. “Reliable Implementation of Linear Filters with Fixed-Point
Arithmetic”, SiPS 2013.
B. Lopez, T. Hilaire, L.-S. Didier. “Formatting Bits to Better Implement Signal Processing
Algorithms”. PECCS 2014.
Une Demo Night
D. Menard et al. “Design of fixed-point embedded systems (DEFIS) French ANR project”,
DASIP 2012.
En cours
Une soumission à IEEE Circuits & Systems I est prévue avant la fin de l’année 2014.
B. Lopez (LIP6, UPMC) Soutenance de thèse 46 / 47
91. Exemple
Propriété des filtres linéaires
Nouvelle approche du comportement d’un signal d’entrée u à travers un
filtre linéaire H.
H
u(k)
hum, ur i
y(k)
hym, yr i
Intervalle
um : centre
ur : rayon
hhHiiDC : DC-Gain de H
hhHiiWCPG : WCPG de H
Théorème du WCPG
ym = hhHiiDC · um
yr = hhHiiWCPG · ur
en régime permanent
B. Lopez (LIP6, UPMC) Soutenance de thèse 49 / 47
Analyse
des filtres,
premiers outils
92. Exemple
Propriété des filtres linéaires
Nouvelle approche du comportement d’un signal d’entrée u à travers un
filtre linéaire H.
H
u(k)
hum, ur i
y(k)
hym, yr i
Intervalle
um : centre
ur : rayon
hhHiiDC : DC-Gain de H
hhHiiWCPG : WCPG de H
Théorème du WCPG
ym = hhHiiDC · um
yr = hhHiiWCPG · ur + " · um
9K tel que 8k > K, y(k) 2 hym, yr i
B. Lopez (LIP6, UPMC) Soutenance de thèse 49 / 47
Analyse
des filtres,
premiers outils