33
2006 Mise en œuvre FPGA temps réel d’un algorithme d’identification basé sur la mesure de données binaires • CEA – LETI – MINATEC • Laboratoire MEA (MEMS et Électronique Associée) • Eric Colinet [email protected]

Mise en œuvre FPGA temps réel d’un ... - CITI LABsemba.conf.citi-lab.fr/emsoc/emsoc07/presentations/EmSoC07_Leblanc.pdf · 2006 Mise en œuvre FPGA temps réel d’un algorithme

  • Upload
    others

  • View
    25

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Mise en œuvre FPGA temps réel d’un ... - CITI LABsemba.conf.citi-lab.fr/emsoc/emsoc07/presentations/EmSoC07_Leblanc.pdf · 2006 Mise en œuvre FPGA temps réel d’un algorithme

2006

Mise en œuvre FPGA temps réeld’un algorithme d’identification basé sur la

mesure de données binaires

• CEA – LETI – MINATEC• Laboratoire MEA (MEMS et Électronique Associée)• Eric Colinet

[email protected]

Page 2: Mise en œuvre FPGA temps réel d’un ... - CITI LABsemba.conf.citi-lab.fr/emsoc/emsoc07/presentations/EmSoC07_Leblanc.pdf · 2006 Mise en œuvre FPGA temps réel d’un algorithme

230/10/07 Christophe Le Blanc

ObjectifsUn exemple de système mis au point au laboratoire :

Accéléromètre LocadynTrois objectifs :• Outils de conception systèmes – méthodologie :

– Génération d’interface– Prototypage numérique rapide à partir de modèles

• Développement d’une carte interface capteur généralisable (Julien)• Test de l’implémentation de deux algorithmes d’identification

– BIMBO_inline– Moindres carrés récursifs

Page 3: Mise en œuvre FPGA temps réel d’un ... - CITI LABsemba.conf.citi-lab.fr/emsoc/emsoc07/presentations/EmSoC07_Leblanc.pdf · 2006 Mise en œuvre FPGA temps réel d’un algorithme

330/10/07 Christophe Le Blanc

Déroulement de la présentation1. Recherche d’outils – méthodologie2. Algorithmes d’identification – BIMBO_inline3. Algorithmes d’identification – moindres carrés4. Algorithmes d’identification – chaîne globale5. Conclusion et perspective

Page 4: Mise en œuvre FPGA temps réel d’un ... - CITI LABsemba.conf.citi-lab.fr/emsoc/emsoc07/presentations/EmSoC07_Leblanc.pdf · 2006 Mise en œuvre FPGA temps réel d’un algorithme

430/10/07 Christophe Le Blanc

Recherche d’outils – Fonctionnement du service• Un mode de fonctionnement• Différentes spécialités• => recherche d’outils et de solutions plus rapides• Temps long pour passer du modèle à son prototype A

nalog Digital M

ixed-signal +MEMS and E source

Linear & non-linear Control theory tools

Analytical models C

ircuit Signal & noise parameters T

estability

Adjustments

Test methodology

High-level modelling I

dentification Compensator optimization (

e.g. Matlab) Feedback

Building blocks specifications E

lectrical engineering Behavioral (VHDL-AMS, Verilog-A) R

TL / Gate-level (VHDL, Verilog) Transistor-level (Eldo, Spice) (

e.g. ADMS)

Systems engineering T

est engineering

IC technology T

est equipment

Méthodologie actuelle empruntée lors de projets

Page 5: Mise en œuvre FPGA temps réel d’un ... - CITI LABsemba.conf.citi-lab.fr/emsoc/emsoc07/presentations/EmSoC07_Leblanc.pdf · 2006 Mise en œuvre FPGA temps réel d’un algorithme

530/10/07 Christophe Le Blanc

Recherche d’outils – cas du vhdl

Modèle Simulink Spécifications SpécialisteHardware

Modèle VHDL

Résultats de Simulation Résultats de Simulation

Simulation

Comparaison

Simulation

Validation

modifications

• Deux interlocuteurs• Échange d’information• Faiblesse : temps de développement LONG• Optimisation• Validation

Page 6: Mise en œuvre FPGA temps réel d’un ... - CITI LABsemba.conf.citi-lab.fr/emsoc/emsoc07/presentations/EmSoC07_Leblanc.pdf · 2006 Mise en œuvre FPGA temps réel d’un algorithme

630/10/07 Christophe Le Blanc

Recherche d’outils – première solution VHDL 1• Cas de code VHDL• Exclusivement des outils

Mathworks• Code synthétisable• Rapidité• Résultats ? BlocsStateFlow

Simulink® HDL CoderFilter Design HDL Coder

Modèle VHDL

CosimulationVérification avec l’outil Link for Modelsim

Modèle Simulink

Validation

Xilinx System Generator for DSP

Page 7: Mise en œuvre FPGA temps réel d’un ... - CITI LABsemba.conf.citi-lab.fr/emsoc/emsoc07/presentations/EmSoC07_Leblanc.pdf · 2006 Mise en œuvre FPGA temps réel d’un algorithme

730/10/07 Christophe Le Blanc

Recherche d’outils – deuxième solution VHDL 2• Code VHDL• Nombreux outils – prix des licences élevé• Plus grand nombre de solution logicielles• Résultats ?

Modèle Simulink

VHDL

RT Workshop Embedded Coder

Modèle StateFlow

CosimulationVérification avec l’outil Link for Modelsim

Validation

Ansi C CodeSystemC

Outils de passage du langage C vers le VHDL

RT Workshop

Mentor Graphics : CatapultCUniversité de Caroline du Nord :

SparkCeloxicaImpulseC

Mitrion

Page 8: Mise en œuvre FPGA temps réel d’un ... - CITI LABsemba.conf.citi-lab.fr/emsoc/emsoc07/presentations/EmSoC07_Leblanc.pdf · 2006 Mise en œuvre FPGA temps réel d’un algorithme

830/10/07 Christophe Le Blanc

Recherche d’outils – troisième solution – DSP• Cible DSP, Texas instrument• Résultats

Modèle Simulink Link for Code Composer Studio

Code DSP

Code Composer Studio

TI : C2000C5000C6000OMAP

Page 9: Mise en œuvre FPGA temps réel d’un ... - CITI LABsemba.conf.citi-lab.fr/emsoc/emsoc07/presentations/EmSoC07_Leblanc.pdf · 2006 Mise en œuvre FPGA temps réel d’un algorithme

930/10/07 Christophe Le Blanc

• La solution 1 est retenue• Testée par la suite

Recherche d’outils – choix final Méthode VHDL 1 Méthode VHDL 2 Méthode DSP

Avantages Outils Matlab Rapidité 1 seule conversion

Outils performants 1 seule conversion 1 seul outil

Inconvénients Quels résultats ?

Outils de différentes sociétés

Prix 2 conversions

Quels résultats ?

DSP Quels résultats ?

BlocsStateFlow

Simulink® HDL Coder

VHDL

Cosimulation

Modèle Simulink

Validation

Page 10: Mise en œuvre FPGA temps réel d’un ... - CITI LABsemba.conf.citi-lab.fr/emsoc/emsoc07/presentations/EmSoC07_Leblanc.pdf · 2006 Mise en œuvre FPGA temps réel d’un algorithme

1030/10/07 Christophe Le Blanc

Déroulement de la présentation1. Recherche d’outils – méthodologie2. Algorithmes d’identification – BIMBO_inline3. Algorithmes d’identification – moindres carrés4. Algorithmes d’identification – chaîne globale5. Conclusion et perspective

Page 11: Mise en œuvre FPGA temps réel d’un ... - CITI LABsemba.conf.citi-lab.fr/emsoc/emsoc07/presentations/EmSoC07_Leblanc.pdf · 2006 Mise en œuvre FPGA temps réel d’un algorithme

1130/10/07 Christophe Le Blanc

Principe des projets – Identification• Différents capteurs développés à ce jour

– Accéléromètre– magnétomètre

• Une structure générale (correcteurs – filtres)• Identification : remonter à la fonction de transfert d’un système observé• Les avantages d’une fonction d’identification :

– Correcteur idéal– Correction suivant l’évolution du capteur - température

Page 12: Mise en œuvre FPGA temps réel d’un ... - CITI LABsemba.conf.citi-lab.fr/emsoc/emsoc07/presentations/EmSoC07_Leblanc.pdf · 2006 Mise en œuvre FPGA temps réel d’un algorithme

1230/10/07 Christophe Le Blanc

Objectifs pour la carte• Support de test• Support rapide pour validation

d’architectures• Plateforme de tests pour clients• Test de l’implémentation de

l’algorithme d’identification BIMBOpour validation

Capteur + ASIC

Capteur

FPGA / DSPAnalogique – Numérique

IdentificationContrôleurs

PC

Page 13: Mise en œuvre FPGA temps réel d’un ... - CITI LABsemba.conf.citi-lab.fr/emsoc/emsoc07/presentations/EmSoC07_Leblanc.pdf · 2006 Mise en œuvre FPGA temps réel d’un algorithme

1330/10/07 Christophe Le Blanc

Objectifs – Synoptique détaillé (suite)

Capteur + ASIC

Capteur

Partie numérique : FPGA et/ou DSP

Identification: BIMBO

Temps réel

Interface,Communication

Partie Analogique

Correcteurs(rétroaction)

Gestion de l’énergie:Managy

PC

gestion CNAtest capteur

ConvertisseursΣΔ, ..

InterfacesA / N

Chaîne de retourN / A

Entrée test

Gestion et configASICs

Locadyn, Gyro, ..

Entrée test (ΣΔ) :CNA

AlimsCNA

Gestion des CNA

alimentations

Interface utilisateur

Julien

Christophe

Ensemble

Recherche d’outils

Page 14: Mise en œuvre FPGA temps réel d’un ... - CITI LABsemba.conf.citi-lab.fr/emsoc/emsoc07/presentations/EmSoC07_Leblanc.pdf · 2006 Mise en œuvre FPGA temps réel d’un algorithme

1430/10/07 Christophe Le Blanc

BIMBO_inline :• Algorithme statistique• fournit les estimations :

– De la réponse impulsionnelledu système observé

– Du signal y(pour l’algorithme d’identification)

Modèle échantillonnéajustable du procédé

Algorithme d’adaptationparamétrique (A.A.P) :

Moindres carré

Paramètres du modèle

uk

Système observé

?0sk

yk

yk

sk

BIMBO_inline :

Approximation de y

• Caractérisation de systèmes• Différentes solutions

– Méthode globale– Moindres carrés récursifs– BIMBO (Basic Identification Method using

Binary Observations)• Problèmes :

– Convertisseur A/N performant => passage en 1 bit (ΣΔ)– Calibrage de l’algorithme BIMBO

Partie identification

Système observé

Modèle échantillonnéajustable du procédé

Paramètres du modèle

?0uk

sk

skyk

Algorithme d’adaptationparamétrique (A.A.P)

y

Page 15: Mise en œuvre FPGA temps réel d’un ... - CITI LABsemba.conf.citi-lab.fr/emsoc/emsoc07/presentations/EmSoC07_Leblanc.pdf · 2006 Mise en œuvre FPGA temps réel d’un algorithme

1530/10/07 Christophe Le Blanc

BIMBO_inline – Principe• Génération d’un bruit blanc binaire

riche spectralement• Étude des observations u et s• Estimation de la réponse

impulsionnelleFonction de coût :

• A l’aide de statistiques, dans lecas d’un bruit blanc binaire :

• Si :lien direct entre l’élément i de laréponse impulsionnelle et J

f-1

( )

( )( )

( ) ( )( )!

!

=

"

"

=

=###

$

%

&&&

'

(

+

N

k

pp

ksksXORN

J

hh

Jerf

Jerf

1

0

21

1

ˆ,1

ˆ

21

2)

uk

Système observé

?0 skyk

Yk etestimation dela réponseimpulsionnelle

BIMBO_inlineModèle échantillonné

( ) ( )( )!=

=N

k

ksksXORN

J

1

ˆ,1

y

( ) ( ) ( )knhkunyn

k

!="=

ˆˆ

1

i de décalé 10=!

p

ph

Page 16: Mise en œuvre FPGA temps réel d’un ... - CITI LABsemba.conf.citi-lab.fr/emsoc/emsoc07/presentations/EmSoC07_Leblanc.pdf · 2006 Mise en œuvre FPGA temps réel d’un algorithme

1630/10/07 Christophe Le Blanc

h0 et h1BIMBO_inline – Résultats de simulation

y et yhat

( )

( )21

21

1-

9.08.11

4304.04304.0zH

: transfertdefonction de filtreun est

!!

!!

+!

!=

zz

zz

S

Convergence, stabilité

incertitude sur h(n) conforme au modèle

Page 17: Mise en œuvre FPGA temps réel d’un ... - CITI LABsemba.conf.citi-lab.fr/emsoc/emsoc07/presentations/EmSoC07_Leblanc.pdf · 2006 Mise en œuvre FPGA temps réel d’un algorithme

1730/10/07 Christophe Le Blanc

BIMBO_inline – configuration – rôle de (a,b)• Compromis entre vitesse et

précision suivant le rapport a /b• Solution : (a,b) variable

Convergence de h1, BIMBO_inline version 2 pour différentes valeurs de (a, b)

Page 18: Mise en œuvre FPGA temps réel d’un ... - CITI LABsemba.conf.citi-lab.fr/emsoc/emsoc07/presentations/EmSoC07_Leblanc.pdf · 2006 Mise en œuvre FPGA temps réel d’un algorithme

1830/10/07 Christophe Le Blanc

BIMBO_inline – configuration – rôle de (a,b)• Compromis entre vitesse et

précision suivant le rapport a /b• Solution : (a,b) variable

Comparaison entre h1 commandé par un couple(a, b) constant et

h1 commandé un couple (a, b) évoluantsuivant le signal ci dessous

Convergence de h1, BIMBO_inline version 2 pour différentes valeurs de (a, b)

Page 19: Mise en œuvre FPGA temps réel d’un ... - CITI LABsemba.conf.citi-lab.fr/emsoc/emsoc07/presentations/EmSoC07_Leblanc.pdf · 2006 Mise en œuvre FPGA temps réel d’un algorithme

1930/10/07 Christophe Le Blanc

BIMBO_inline – améliorations (2)

sk

BIMBO_inline

Nh étages

s uab

uk

Système observé

Hyk

Estimation de l’erreur& Commande

yhat shat

• Pilotage del’algorithme :

• Commande du couplede paramètres (a,b)

Page 20: Mise en œuvre FPGA temps réel d’un ... - CITI LABsemba.conf.citi-lab.fr/emsoc/emsoc07/presentations/EmSoC07_Leblanc.pdf · 2006 Mise en œuvre FPGA temps réel d’un algorithme

2030/10/07 Christophe Le Blanc

BIMBO_inline – codage• Deux axes :

– Code généré automatiquement(cf. outils)

– Code généré manuellement• Résultats cohérents

Mode % de

registres occupés

% de portes

occupées

Nombre

de blocs

18*18

Fréquence

maximale de fonctionnement

normal

Automatique 4163/67584

6%

7995/33792

23%

128/144

88%

30 Mhz

Manuel 6934/67584

10%

6764

20%

128/144

88%

50 Mhz

Résultat de la synthèse sur le FPGA xilinx 2v6000

Long à générerCombinatoiresDifficilement débogableNon optimiséMoins rapide d’exécution

inconvénients

Plus fiableChoix d’optimisationsRapidité d’exécution

Rapide à générerfiable

avantages

Code ‘manuel’Code ‘automatique’

Page 21: Mise en œuvre FPGA temps réel d’un ... - CITI LABsemba.conf.citi-lab.fr/emsoc/emsoc07/presentations/EmSoC07_Leblanc.pdf · 2006 Mise en œuvre FPGA temps réel d’un algorithme

2130/10/07 Christophe Le Blanc

• La cible : carte Nallatech Bennuey– 3 FPGA Xilinx 2v6000– Banc pins de test– Configuration par bus PCI– Dialogue par liaison RS232

BIMBO_inline – Tests et Résultats

FPGA Xilinx – Nallatech

BIMBO_inline

PC

Système observé

?0

(uk,, sk )

yk

Yk et estimationde la réponseimpulsionnelle

RS232

RS232

Modèle Bimbo_inline

PCI : configuration du FPGA

Page 22: Mise en œuvre FPGA temps réel d’un ... - CITI LABsemba.conf.citi-lab.fr/emsoc/emsoc07/presentations/EmSoC07_Leblanc.pdf · 2006 Mise en œuvre FPGA temps réel d’un algorithme

2230/10/07 Christophe Le Blanc

Déroulement de la présentation1. Recherche d’outils – méthodologie2. Algorithmes d’identification – BIMBO_inline3. Algorithmes d’identification – moindres carrés4. Algorithmes d’identification – chaîne globale5. Conclusion et perspective

Page 23: Mise en œuvre FPGA temps réel d’un ... - CITI LABsemba.conf.citi-lab.fr/emsoc/emsoc07/presentations/EmSoC07_Leblanc.pdf · 2006 Mise en œuvre FPGA temps réel d’un algorithme

2330/10/07 Christophe Le Blanc

Identification – principes• Identification du système observé• A partir de l’estimation de y obtenue avec BIMBO_inline• Moindres carrés - BIMBO

Modèle échantillonnéajustable du procédé

Algorithme d’adaptationparamétrique (A.A.P) :

Moindres carré

Paramètres du modèle

uk

Système observé

?0sk

yk

yk

sk

BIMBO_inline :

Approximation de y

Page 24: Mise en œuvre FPGA temps réel d’un ... - CITI LABsemba.conf.citi-lab.fr/emsoc/emsoc07/presentations/EmSoC07_Leblanc.pdf · 2006 Mise en œuvre FPGA temps réel d’un algorithme

2430/10/07 Christophe Le Blanc

Identification – moindres carrés – optimisation• Cet algorithme a été testé avec Matlab et Simulink• Résultats cohérents et convergents• Problèmes :

– Rapidité– précision

• Solution : l’ajout d’un facteur de coût λ

Nouveau compromis entre

vitesse et précision

Estimation d’un élément de la fonction de transfert de (S)Pour plusieurs valeurs de λ

Page 25: Mise en œuvre FPGA temps réel d’un ... - CITI LABsemba.conf.citi-lab.fr/emsoc/emsoc07/presentations/EmSoC07_Leblanc.pdf · 2006 Mise en œuvre FPGA temps réel d’un algorithme

2530/10/07 Christophe Le Blanc

Identification – moindres carrés – implémentation• Algorithme pas facilement implémentable en vhdl :

– Division– accumulation

• Adapté plus adapté à un traitement de type DSP (calcul matriciel,sommes de multiplications) :– > choix

• FPGA + DSP• FPGA avec cœur de DSP

• Finalement : cœur de processeur dans FPGA:– Leon3 : open core– Architecture RISC 32 bit– instruction norme SPARC V8– Format flottant 32 bits.– Codage en C

Synoptique du cœur LEON 3

Page 26: Mise en œuvre FPGA temps réel d’un ... - CITI LABsemba.conf.citi-lab.fr/emsoc/emsoc07/presentations/EmSoC07_Leblanc.pdf · 2006 Mise en œuvre FPGA temps réel d’un algorithme

2630/10/07 Christophe Le Blanc

PC

Identification – moindres carrés – Résultats• Résultats probants en simulation (Modelsim) :*

– Problème de lenteur résolu par la FPU• Validation sur la cible FPGA :

– Mêmes résultats qu’avec simulateur

FPGA Xilinx – Nallatech

BIMBO_inline

(uk,, sk )

Système observé

?0

Estimation dela fonction detransfert

RS232

Modèle Bimbo_inline

PCI : configuration du FPGA

Page 27: Mise en œuvre FPGA temps réel d’un ... - CITI LABsemba.conf.citi-lab.fr/emsoc/emsoc07/presentations/EmSoC07_Leblanc.pdf · 2006 Mise en œuvre FPGA temps réel d’un algorithme

2730/10/07 Christophe Le Blanc

Déroulement de la présentation1. Recherche d’outils – méthodologie2. Algorithmes d’identification – BIMBO_inline3. Algorithmes d’identification – moindres carrés4. Algorithmes d’identification – chaîne globale5. Conclusion et perspective

Page 28: Mise en œuvre FPGA temps réel d’un ... - CITI LABsemba.conf.citi-lab.fr/emsoc/emsoc07/presentations/EmSoC07_Leblanc.pdf · 2006 Mise en œuvre FPGA temps réel d’un algorithme

2830/10/07 Christophe Le Blanc

Identification – chaîne globale – Matlab• Juxtaposition de BIMBO_inline et de l’algorithme des moindres

carrés• Configuration pour choix entre rapidité et précision:

– Choix de λ– Choix du couple (a,b)

• Stade actuel : simulation (Modelsim)

A (3) estimé avec paramètres fixes et variables

Modèleajustable

Moindres carréParamètres

uSystème observé

?0sy

y

s

BIMBO_inline

Page 29: Mise en œuvre FPGA temps réel d’un ... - CITI LABsemba.conf.citi-lab.fr/emsoc/emsoc07/presentations/EmSoC07_Leblanc.pdf · 2006 Mise en œuvre FPGA temps réel d’un algorithme

2930/10/07 Christophe Le Blanc

Déroulement de la présentation1. Recherche d’outils – méthodologie2. Algorithmes d’identification – BIMBO_inline3. Algorithmes d’identification – moindres carrés4. Algorithmes d’identification – chaîne globale5. Conclusion et perspective

Page 30: Mise en œuvre FPGA temps réel d’un ... - CITI LABsemba.conf.citi-lab.fr/emsoc/emsoc07/presentations/EmSoC07_Leblanc.pdf · 2006 Mise en œuvre FPGA temps réel d’un algorithme

3030/10/07 Christophe Le Blanc

Conclusion• Différents éléments traités à ce jour :

– Outils et méthodologie• Deux outils choisis puis testés et validés• Leur mode de fonctionnement analysé

– Identification• BIMBO_inline : de la modélisation aux tests

Modélisation Matlab SimulinkOptimisation : algorithme aujourd’hui paramétrable et quantifiableCodageTests sur carte (non fini)

• Moindres carrés :Modélisation MatlabValidation fonctionnelleCode généré et testé uniquement sur simulateurConnexion possible et paramétrable à BIMBO_inline

Page 31: Mise en œuvre FPGA temps réel d’un ... - CITI LABsemba.conf.citi-lab.fr/emsoc/emsoc07/presentations/EmSoC07_Leblanc.pdf · 2006 Mise en œuvre FPGA temps réel d’un algorithme

3130/10/07 Christophe Le Blanc

La suite• Simulation et tests sur carte :

– Chaîne globale

• Test et validation d’un autre algorithme d’identification : BIMBO

• Choix d’un autre processeur de traitement ?• Test des performances sur DSP

Page 32: Mise en œuvre FPGA temps réel d’un ... - CITI LABsemba.conf.citi-lab.fr/emsoc/emsoc07/presentations/EmSoC07_Leblanc.pdf · 2006 Mise en œuvre FPGA temps réel d’un algorithme

3230/10/07 Christophe Le Blanc

Merci pour votre attention

Page 33: Mise en œuvre FPGA temps réel d’un ... - CITI LABsemba.conf.citi-lab.fr/emsoc/emsoc07/presentations/EmSoC07_Leblanc.pdf · 2006 Mise en œuvre FPGA temps réel d’un algorithme

3330/10/07 Christophe Le Blanc

Identification – moindres carrés – principe• Algorithme des moindres carrés :

( ) ( )( ) ( ) ( ) ( )

( ) ( ) ( )

( ) ( ) ( ) ( )

( ) ( ) ( )1)(1)(1

11

11

0

0

+++=+

!+=+

""#

$%%&

'

+!=+

((

(

tttFtt

tttyt

ttFt

tFtttFtFtF

T

T

T

)*++

*+)

**,

**

,

[ ]

( ) ( ) ( ) ( )[ ]

( )oublifacteur d'

yhatsurprioriàerreurlestt

ndtudtuntytyt

bbaa

F

zaza

zbzbzb

BA

T

ndn

T

n

n

dn

n

dd

A

A

B

B

'

1..,1..)(

paramètresdesvecteurleest..,..

adaptationd’ matricielgain leest

..1

...

:forme la deest observé système Le

:Où

0

1

1

1

1

21

!

"

#

$

+%%%+%%%=•

=•

+++

+++

&

%%

%%%%%

Modèleajustable

IdentificationParamètres dumodèle

uk

Système observé

?0sk

yk

yk

sk

BIMBO_inline