Implémentation optimale de filtres linéaires en
arithmétique virgule fixe
Soutenance de thèse de
Benoit Lopez (LIP6, UPMC)
D...
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...
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...
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 ...
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]
...
Contexte
L’implémentation en virgule fixe est difficile
Implémentation à partir d’un algorithme réel =) dégradations numériqu...
Contexte
L’implémentation en virgule fixe est difficile
Implémentation à partir d’un algorithme réel =) dégradations numériqu...
Contexte
L’implémentation en virgule fixe est difficile
Implémentation à partir d’un algorithme réel =) dégradations numériqu...
Contexte
Problématique
Question :
Comment implémenter au mieux un filtre linéaire réel en virgule fixe ?
B. Lopez (LIP6, UPM...
Contexte
Problématique
Question :
Comment implémenter au mieux un filtre linéaire réel en virgule fixe ?
Pour répondre à cet...
Contexte
Problématique
Question :
Comment implémenter au mieux un filtre linéaire réel en virgule fixe ?
Pour répondre à cet...
Contexte
Problématique
Question :
Comment implémenter au mieux un filtre linéaire réel en virgule fixe ?
Pour répondre à cet...
Contexte
Problématique
Question :
Comment implémenter au mieux un filtre linéaire réel en virgule fixe ?
Pour répondre à cet...
Contexte
Plan
Pré-requis
sur les filtres
Formalisme
virgule fixe
Analyse
des filtres,
premiers outils
Implémentation
logiciel...
Contexte
Plan
Pré-requis
sur les filtres
Formalisme
virgule fixe
Analyse
des filtres,
premiers outils
Implémentation
logiciel...
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 =...
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 =...
Filtres linéaires et réalisations équivalentes
Plan
Pré-requis
sur les filtres
Formalisme
virgule fixe
Analyse
des filtres,
p...
Filtres linéaires et réalisations équivalentes
Filtres Linéaires
H
u(k) y(k)
LTI : Filtres linéaires invariants dans le te...
Filtres linéaires et réalisations équivalentes
Filtres Linéaires
LTI : Filtres linéaires invariants dans le temps
FIR (rép...
Filtres linéaires et réalisations équivalentes
Réalisations équivalentes
Pour un filtre LTI donné, il y a de nombreuses faç...
Filtres linéaires et réalisations équivalentes
Réalisations équivalentes
Pour un filtre LTI donné, il y a de nombreuses faç...
Filtres linéaires et réalisations équivalentes
Réalisations équivalentes
Pour un filtre LTI donné, il y a de nombreuses faç...
SIF
Une structure unificatrice
On peut décrire toutes ces réalisations sous la forme d’une structure
commune appelée forme ...
SIF
Une structure unificatrice
On peut décrire toutes ces réalisations sous la forme d’une structure
commune appelée forme ...
SIF
Une structure unificatrice
On peut décrire toutes ces réalisations sous la forme d’une structure
commune appelée forme ...
SIF
Plan
Pré-requis
sur les filtres
Formalisme
virgule fixe
Analyse
des filtres,
premiers outils
Implémentation
logicielle
Im...
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 e...
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...
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...
Analyse d’erreur
Analyse d’erreur
H⇤
u(k)
"(k)
y⇤(k)
()
H
H"
u(k)
"(k)
+
y(k)
y(k)
y⇤(k)
On veut déterminer y(k) = y⇤(k) y...
Analyse d’erreur
Analyse d’erreur
H⇤
u(k)
"(k)
y⇤(k)
()
H
H"
u(k)
"(k)
+
y(k)
y(k)
y⇤(k)
On veut déterminer y(k) = y⇤(k) y...
Analyse d’erreur
Analyse d’erreur
Évaluer l’erreur de calcul "(k), c’est déterminer les calculs qui produisent
des erreurs...
Analyse d’erreur
Analyse d’erreur
Évaluer l’erreur de calcul "(k), c’est déterminer les calculs qui produisent
des erreurs...
Analyse d’erreur
Propriété des filtres linéaires
Approche classique du comportement d’un signal d’entrée u à travers un
filt...
Analyse d’erreur
Propriété des filtres linéaires
Nouvelle approche du comportement d’un signal d’entrée u à travers un
filtr...
Analyse d’erreur
Analyse d’erreur
H⇤
u(k)
"(k)
y⇤(k)
()
H
H"
u(k)
"(k)
+
y(k)
y(k)
y⇤(k)
Avec notre nouvelle approche, nou...
Analyse d’erreur
Plan
Pré-requis
sur les filtres
Formalisme
virgule fixe
Analyse
des filtres,
premiers outils
Implémentation
...
Analyse d’erreur
Plan
Pré-requis
sur les filtres
Formalisme
virgule fixe
Analyse
des filtres,
premiers outils
Implémentation
...
Implémentation logicielle
Implémentation logicielle
Méthodologie pour l’implémentation logicielle
Filtre
(SIF)
Filtre ! So...
Implémentation logicielle
Implémentation logicielle
Méthodologie pour l’implémentation logicielle
Filtre
(SIF)
Filtre ! So...
Implémentation logicielle
Implémentation logicielle
Les seules opérations nécessaires sont des sommes-de-produits :
S =
nX...
Implémentation logicielle
Implémentation logicielle
Les seules opérations nécessaires sont des sommes-de-produits :
S =
nX...
Implémentation logicielle
Implémentation logicielle - oSoP
S
+
+
+
⇥
20832
(-1,-16)
v4
(5,-10)
⇥
-16450
(-1,-16)
v5
(5,-10...
Implémentation logicielle
Implémentation logicielle - oSoP
S
+
+
+
⇥
20832
(-1,-16)
v4
(5,-10)
⇥
-16450
(-1,-16)
v5
(5,-10...
Implémentation logicielle
Implémentation logicielle - oSoP
S
+
+
+
⇥
20832
(-1,-16)
v4
(5,-10)
⇥
-16450
(-1,-16)
v5
(5,-10...
Implémentation logicielle
Implémentation logicielle - Propagation
Pour chaque oSoP, on propage les intervalles des variabl...
Implémentation logicielle
Implémentation logicielle - Propagation
Pour chaque oSoP, on propage les intervalles des variabl...
Implémentation logicielle
Implémentation logicielle - Évaluation / Sélection
Évaluation
À chaque formatage correspond une ...
Implémentation logicielle
Implémentation logicielle - Évaluation / Sélection
Évaluation
À chaque formatage correspond une ...
Implémentation matérielle
Plan
Pré-requis
sur les filtres
Formalisme
virgule fixe
Analyse
des filtres,
premiers outils
Implém...
Implémentation matérielle
Implémentation matérielle
Méthodologie pour l’implémentation matérielle
Filtre
Filtre ! SoPs
N S...
Implémentation matérielle
Implémentation matérielle
Méthodologie pour l’implémentation matérielle
Filtre
Filtre ! SoPs
N S...
Implémentation matérielle
Implémentation matérielle
Choix sur les largeurs =) Problème d’optimisation combinatoire
Notatio...
Implémentation matérielle
Implémentation matérielle
Choix sur les largeurs =) Problème d’optimisation combinatoire
Notatio...
Implémentation matérielle
Implémentation matérielle
Choix sur les largeurs =) Problème d’optimisation combinatoire
Notatio...
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 )1iN a...
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 bi...
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 ...
Implémentation matérielle
Contraintes - Formatage de bits
Produit constante / variable
Les constantes ci sont des constant...
Implémentation matérielle
Contraintes - Formatage de bits
Produit constante / variable
Les constantes ci sont des constant...
Implémentation matérielle
Contraintes - Formatage de bits
Produit constante / variable
Les constantes ci sont des constant...
Implémentation matérielle
Contraintes - Formatage de bits
On combine le formatage avec l’observation précédente pour obten...
Implémentation matérielle
Contraintes - Formatage de bits
On combine le formatage avec l’observation précédente pour obten...
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 ...
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 ...
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 ...
Implémentation matérielle
Contraintes - Bilan
Contraintes de formatage de bits
Avec les notations de la SIF
wZi,j
wvi Ci,j...
Implémentation matérielle
Contraintes - Bilan
Contraintes de formatage de bits
Avec les notations de la SIF
wZi,j
wvi + Ci...
Implémentation matérielle
Problème d’optimisation
Finalement, le problème se formalise ainsi :
min f (wv ) =
X
i
wvi
tel q...
Implémentation matérielle
Problème d’optimisation
Finalement, le problème se formalise ainsi :
min f (wv ) =
X
i
wvi
tel q...
FiPoGen
Plan
Pré-requis
sur les filtres
Formalisme
virgule fixe
Analyse
des filtres,
premiers outils
Implémentation
logiciell...
FiPoGen
FiPoGen (Fixed-Point code Generator)
Cet outil réalise la méthodologie proposée pour l’implémentation d’un filtre
l...
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=...
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
...
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
...
Exemple
Exemple - Plusieurs réalisations
Plusieurs réalisations sont considérées :
Forme Directe I
une seule somme-de-prod...
Exemple
Cas logiciel
On considère les largeurs fixées suivantes
Largeurs des constantes et des différents types de variables...
Exemple
Cas logiciel
On considère les largeurs fixées suivantes
Largeurs des constantes et des différents types de variables...
Exemple
B. Lopez (LIP6, UPMC) Soutenance de thèse 41 / 47
L’outil
FiPoGen
Exemple
Cas matériel
Dans cet exemple, on souhaite borner l’erreur par l’intervalle [ 2; 2].
Réalisations
Temps de
Optimal...
Exemple
B. Lopez (LIP6, UPMC) Soutenance de thèse 43 / 47
L’outil
FiPoGen
Exemple
Conclusion
Conclusion
Durant cette thèse, j’ai répondu à la question suivante :
Pour un filtre linéaire donné, comm...
Exemple
Conclusion
Conclusion
Durant cette thèse, j’ai répondu à la question suivante :
Pour un filtre linéaire donné, comm...
Exemple
Perspectives
Dans un futur proche :
Rendre FiPoGen totalement autonome du filtre au code
Fonction de coût plus réal...
Exemple
Perspectives
Dans un futur proche :
Rendre FiPoGen totalement autonome du filtre au code
Fonction de coût plus réal...
Exemple
Perspectives
Dans un futur proche :
Rendre FiPoGen totalement autonome du filtre au code
Fonction de coût plus réal...
Exemple
Publications
Trois publications dans des conférences avec comité de lecture
B. Lopez, T. Hilaire, L.-S. Didier. “S...
Exemple
Merci
B. Lopez (LIP6, UPMC) Soutenance de thèse 47 / 47
Exemple
Annexe
B. Lopez (LIP6, UPMC) Soutenance de thèse 48 / 47
Exemple
Propriété des filtres linéaires
Nouvelle approche du comportement d’un signal d’entrée u à travers un
filtre linéair...
Exemple
Propriété des filtres linéaires
Nouvelle approche du comportement d’un signal d’entrée u à travers un
filtre linéair...
Prochain SlideShare
Chargement dans…5
×

Implémentation optimale de filtres linéaires en arithmétique virgule fixe

2 311 vues

Publié le

PhD Defense in computer science/digital signal processing about how to implement an IIR filter in fixed-point arithmetic.

Publié dans : Sciences
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
2 311
Sur SlideShare
0
Issues des intégrations
0
Intégrations
1 548
Actions
Partages
0
Téléchargements
8
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Implémentation optimale de filtres linéaires en arithmétique virgule fixe

  1. 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. 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. 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. 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. 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. 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. 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. 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
  9. 9. Contexte Problématique Question : Comment implémenter au mieux un filtre linéaire réel en virgule fixe ? B. Lopez (LIP6, UPMC) Soutenance de thèse 6 / 47
  10. 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. 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. 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. 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
  14. 14. Contexte 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 7 / 47
  15. 15. Contexte 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 7 / 47
  16. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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
  27. 27. SIF 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 13 / 47
  28. 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. 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. 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
  31. 31. Analyse d’erreur Analyse d’erreur H⇤ u(k) "(k) y⇤(k) () H H" u(k) "(k) + y(k) y(k) y⇤(k) On veut déterminer y(k) = y⇤(k) y(k). B. Lopez (LIP6, UPMC) Soutenance de thèse 16 / 47 Analyse des filtres, premiers outils
  32. 32. Analyse d’erreur Analyse d’erreur H⇤ u(k) "(k) y⇤(k) () H H" u(k) "(k) + y(k) y(k) y⇤(k) On veut déterminer y(k) = y⇤(k) y(k). on a besoin d’évaluer "(k) on a besoin de connaître le comportement de "(k) à travers H" B. Lopez (LIP6, UPMC) Soutenance de thèse 16 / 47 Analyse des filtres, premiers outils
  33. 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. 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. 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. 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
  37. 37. Analyse d’erreur Analyse d’erreur H⇤ u(k) "(k) y⇤(k) () H H" u(k) "(k) + y(k) y(k) y⇤(k) Avec notre nouvelle approche, nous sommes donc capable de déterminer l’intervalle de l’erreur y(k). B. Lopez (LIP6, UPMC) Soutenance de thèse 20 / 47 Analyse des filtres, premiers outils
  38. 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. 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. 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. 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. 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. 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
  44. 44. Implémentation logicielle Implémentation logicielle - oSoP 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 24 / 47 Implémentation logicielle
  45. 45. Implémentation logicielle Implémentation logicielle - oSoP 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 24 / 47 Implémentation logicielle
  46. 46. Implémentation logicielle Implémentation logicielle - oSoP 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) Il y a nQ i=1 (2i 1) oSoP à considérer. B. Lopez (LIP6, UPMC) Soutenance de thèse 24 / 47 Implémentation logicielle
  47. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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 )1iN 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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
  72. 72. FiPoGen 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 36 / 47
  73. 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. 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. 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. 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. 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. 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. 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
  80. 80. Exemple B. Lopez (LIP6, UPMC) Soutenance de thèse 41 / 47 L’outil FiPoGen
  81. 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
  82. 82. Exemple B. Lopez (LIP6, UPMC) Soutenance de thèse 43 / 47 L’outil FiPoGen
  83. 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. 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. 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. 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. 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. 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
  89. 89. Exemple Merci B. Lopez (LIP6, UPMC) Soutenance de thèse 47 / 47
  90. 90. Exemple Annexe B. Lopez (LIP6, UPMC) Soutenance de thèse 48 / 47
  91. 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. 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

×