Title: Mise au point de systmes mixtes et valuation de puissance : Un exemple dapplication
1Mise au point de systèmes mixtes et évaluation de
puissance Un exemple dapplication
- Anne-Marie TRULLEMANS-ANCKAERT
- FTFC03
UCL-DICE, Place du Levant 3, B-1348
Louvain-la-Neuve, Belgium, ATrullemans_at_dice.ucl.ac
.be, http//www.ucl.ac.beanmarie
2points de lexposé
- introduction
- présentation de lapplication
- modélisation et simulation des éléments
fondamentaux - système de couplage, génération et émission,
récupération et décodage - simulations globales
- transfert de données, variations du couplage,
modélisation de puissance - conclusions
3introduction
- outils de simulation de systèmes complexes
- simulation digitale VHDL et Verilog
- hiérarchie et modularité, du comportemental aux
portes logiques - simulation analogique Spice, Eldo ...
- dispositifs physiques, précision ...
- simulation mixte VHDL-AMS ?
- un système comme exemple
- la prothèse visuelle
4la prothèse visuelle MIVIP-OPTIVIP
OPTIVIP IST-2000-25145 Prof. Charles
Trullemans http//www.dice.ucl.ac.be/optivip/
Aim of the project optimization of an
implantable visual prosthesis based on the
stimulation of the optic nerve and its
demonstration within a pre-clinical study
5les composants de la transmission
6schéma-bloc du système
peau
intérieur
données à envoyer
codage Manchester
récupération dalimentation et démodulateur
VCO
extérieur
transformateur à couplage variable
driver classe DE
données reçues
7lien inductif
transmission de puissance (alim) et de données
extérieur
intérieur
entity transfoCT is generic (L1 real
1.0e-6 R1 real 0.0 L2 real
1.0e-6 R2 real 0.0 K real
0.15) port (terminal P1, P0, S1, S0
electrical) end transfoCT
architecture bhv of transfoCT is quantity M
real K sqrt(L1L2) quantity V1 across
I1 through P1 to P0 quantity V2 across I2
through S1 to S0 begin -- bhv M K
sqrt(L1L2) V1 L1 I1'dot M I2'dot
R1 I1 V2 M I1'dot L2 I2'dot R2
I2 end bhv
VHDL-AMS
transformateur à couplage variable (faible) 0.2
à 0.12
8données codage Manchester et modulation FSK
- 2 fréquences autour de 12 MHz
- 2 cycles pour chaque fréquence
- transformateur doublement accordé
10.8 MHz et 13.2 MHz
- génération par un VCO
- modification de laccord primaire pour chaque
fréquence - pas de modification au secondaire
9les données
- différents types de trames
- synchro
- setup
- données
- ...
- codage en vecteurs de 64 bits
- transmission continue
10processeur externe et codage Manchester
entity ClockData is port(signal F0, FDel,
Vin_a,Vin_b,Vpar_a,Vpar_b out bit) end
ClockData
lecture des données pas de possibilités
actuellement de lecture en fichier ...
constant Data_to_send bit_vector
B"010001111011111110111 ... 11000000" -- stocké
en vecteur de bits if FDClock'event and FDClock
'1' then Data_read lt Data_to_send(IData) if
IData lt Data_to_send'high then IData IData
1 else ...
VHDL comportemental
11fréquences et formes donde du VCO
fréquences f1 et f2
constant F1 real 10.8e6 -- fmin constant
TF1 time real2time(0.5/F1) -- largeur
pulse L constant F2 real 13.2e6 --
fmax constant TF2 time real2time(0.5/F2)
-- largeur pulse S constant TFD time
real2time(1.0/F1 1.0/F2)
-- pulse lecture data
VCO Process (FDClock) begin ... if
Data_to_send(IData)'0' then DM lt
transport '1', '0' after a4 F0Clock lt
transport 1, 0 after ... else DM lt
transport '0', '1' after b4 F0Clock lt
transport '1', '0' after ... end if ...
end process VCO
horloge de lecture des données
formes donde selon données
Gen_FD process (FDClock) if Active'1' then
FDClock lt transport not FDClock
after TFD end if end process Gen_FD ...
VHDL comportemental
12génération des signaux de contrôle synchronisés
commande du commutateur de capacités
commande du driver DE
VHDL
Latch process (F0clock, DM) begin if
F0clock'0' then Vpar_b lt not DM else Vpar_a
lt DM end if end process Latch
DelClock lt transport F0clock after
DeadTime Vin_a lt F0clock and DelClock Vin_b lt
F0clock or DelClock
13les signaux générés
14circuit démission driver classe DE
entity TR_driver is port(terminal Nee, NOUT
electrical signal Vin_a,Vin_b in bit) end
TR_driver architecture test of TR_driver is
... begin if Vin_b '0' use -- PMOS VPMOS
RSon IPMOS else IPMOS 0.0 end
use break on Vin_b ... if
VPMOS'Above(-0.7) use IPpar 0.0 else
IPpar (VPMOS 0.7) / RDon end use
... end test
commutation de la bobine du primaire par signaux
vin_a et vin_b du VCO
VHDL-AMS
15simulation du driver tensions sur linductance
16pics de courant et puissance dans le driver
17commutateur de capacité
NT2
Nout
transfoCT
Cs
N1
CT1
commuter la capacité CT1 quand la tension à ses
bornes est nulle
S2
CT2
masse externe
NCT1
Ncc
CT_driver commutation capa
Vpar_a
Vpar_b
18proche de la réalité implémentée
entity CT_driver is port(terminal NCT, Ncc
electrical signal Vpar_a,Vpar_b in
bit) end CT_driver ... if Vpar_b '0' use
-- PMOS "on" ID2 -IDS (exp(-VCT/VT) -
1.0) if Vpar_a '1' use -- NMOS "on"
... end use else -- PMOS "off"
... end use break on Vpar_b, Vpar_a
VHDL-AMS
quantity Vout across ICpar through Nout to
electrical_ground -- Cpar quantity ... ...
ICT2 CT2 Vl'dot ICT1 CT1 VCT1'dot
ICpar Cpar Vout'dot ICs Cs Vcs'dot
19commutation de la capacité daccord
20système interne
récupération dalimentation sur capacité de
balast, et écrêtage du signal
21écrêtage et récupération dalimentation
ID1 IDS (exp(Vd1/VT) - 1.0) ID2 -IDS
(exp(-Vrf/VT) - 1.0) Idec1 Cdec VS0'dot
VS0 Gdec Idec2 Cdec Vdec2'dot Vdec2
Gdec if domainquiescent_domain use
Vcc_int Vint_start else Icc_int
Cint Vcc_int'dot end use Vdecode
Vcc_int/2.0 if Vcc_int'Above (Vzener) use
Izener (Vcc_int-Vzener)/Rzener else
Izener 0.0 end use
NT2
Vrf
transfoCT
Cs
Vl
S2
Vint
VHDL-AMS
22signal transmis
Vl
simulation
Vl
Vrf
vin
mesure
Vrf
23charge de la capacité de balast
24démodulation du code Manchester
réalisation par intégration de courant durant
les 2 premiers cycles les 2 cycles suivants
25mesure expérimentale
données à 3Mbits provenant du processeur
délai de décodage
données démodulées dans limplant
26simulation par comparaison de délais
VHDL comportemental
decodeData process (dec_dataM) variable Tini,
Tdel1, Tdel2 time 0ns variable phase
integer Init_phase begin if dec_dataM'event
and dec_dataM'1' then if phase0 then Tini
now else if Tini gt 0ns then
if phase2 then Tdel1 now - Tini
end if ...
Tdel2
if phase4 then Tdel2 now - (Tini Tdel1)
Tini now ...
if Tdel2gtTdel1 then dec_data lt '1' else
dec_data lt '0' end if ...
Tdel1
27simulation du décodage
28le système complet
29simulation globale du transfert de données
30variations du couplage
31modélisation de puissance
Vee
influence du délai dans la commande du driver DE
optimal ?
32test de transmission
deadtime 20 ns
33détail des signaux
34puissance digitale
gate i
0 ? 1
CL
procedure add_dig_pwr (N real -- coefficient de
charge signal dig_pwr,
mean_dig_pwr inout real) is constant CL real
0.1e-12 -- capa unitaire de charge de porte
logique constant Vdd real 5.0 -- alim
digitale et swing de tension variable v_dig_pwr
real 0.0 begin v_dig_pwr dig_pwr N
CL Vdd Vdd dig_pwr lt v_dig_pwr
mean_dig_pwr lt v_dig_pwr / now end procedure
add_dig_pwr
VHDL comportemental
Power ?i ½ Vdd2 f Ci Acti
if F0clock'event and F0clock'1' then
add_dig_pwr (4.0, dig_pwr, mean_dig_pwr) end if
35sommation sur quelques signaux de commande
à suivre ...
36conclusions
- approche rudimentaire et partielle mais ...
- intérêt doutils mixtes de haut niveau en cours
de mise au point - modélisation comportementale
- stimuli complexes
- environnement interactif
- modélisation de puissance
- analogique facilités du langage
- digital événementiel
- ... à suivre !