• Aucun résultat trouvé

Description du module d’échange ADOQ2SpectreRF

Chapitre IV. Développement du logiciel A DOQ S et confrontation

IV.1.2 Description du module d’échange ADOQ2SpectreRF

L’analyse de circuits oscillateurs à l’aide du nouveau logiciel ADOQ–S nécessite l’utilisation simultanée du logiciel ADOQ et du simulateur SpectreRF. Rappelons que ces deux outils d’analyse ne fonctionnent pas sur la même plate-forme (Unix/Windows) ; un lien logiciel est donc nécessaire pour assurer l’association de ces deux outils.

La solution retenue pour assurer ce lien consiste à utiliser des programmes de communication inter-système Unix/Windows (tel que le logiciel Putty [5]) contrôlés par des modules annexes du logiciel ADOQ–S dédiés. La figure 3 montre l’organisation des principaux sous-modules d’ADOQ2SpectreRF qui permettent d’exécuter des simulations (génération des fichiers netlist, traitement des requêtes d’échange, etc.) en utilisant SpectreRF/Cadence sur une machine distante.

Le module ADOQ2SpectreRF est constitué de deux principaux sous–modules :

– Le premier est appelé Mode2cadc. Il permet de générer le fichier de simulation au format SpectreRF puis de traiter le fichier retourné par le simulateur (fichier netlist, paramètres de simulation, etc.)

– Le deuxième sous–module appelé Mod2ssh(*) permet d’établir la connexion entre le

logiciel ADOQ–S et le simulateur SpectreRF pendant la phase d’échange des fichiers.

Figure. 3 – Organisation des principaux sous-modules de ADOQ2SpectreRF dans le logiciel ADOQ–S.

(*) ssh : Secure Shell ;  système de chiffrage des communications à distance 

%1 : Le chemin de(*.asp) %2 : Le Nom<>

%3 : L’extension.asp netlist format ADOQ-S

(*.asp)

Sous-Module Mod2cadc : 1- Mod2cadc_trans

2- Mod2cadc_pss

Programme de traitement d’échanges

go.bat

# Commandes Windows

#copie du chemin, nom, extension de .aps dans adoq.scs (Rép d’échange)

copy %1%2%3 \\maximus\partage\LPMO\Chirouf\Spectre-RF_tasks\adoq.scs

# Définition du path de l’application putty (sftp)

cd D:\adoq-s\Scripts

# Lancement de la commande d’analyse

putty -m adoq.sh -pw chirouf chirouf@haydn

# Recopie des résultats dans le chemin initial

copy \\maximus\partage\LPMO\Chirouf\Spectre-RF_tasks\adoq.scs \adoq.raw %1%2.raw

Putty –m adoq.sh –pw chirouf chirouf@haydn

\\maximus\partage\LPMO\.. Cadence SpectreRF Sous-Module Mod2ssh # Commandes UNIX cp /partage/Chirouf/Spectre-RF_tasks/adoq.scs ./

# copie de adoq.scs dans ./

source gocadence

#lancement de scripte de démarrage de spectreRF

spectre adoq.scs

# Lancement de simulation

cp adoq.raw /partage/Chirouf/Spectre-RF_tasks/ # Copie des résultats dans le Rép d’échanges

Espace de stockage

Chapitre IV : Développement du logiciel ADOQ–S et confrontation avec l’expérience

80

Le fichier netlist (*.asp) (cf. Annexe D § II) décrivant le circuit oscillateur doit être créé dans un

format compatible avec ADOQ–S (Figure 4.a). Pour qu’une simulation soit possible avec le simulateur SpectreRF, le sous–module Mode2cadc converti ce fichier netlist sous le format

(*.scs) (cf. Annexe D § III) compatible avec le simulateur SpectreRF (Figure 4.c).

Le sous–module Mode2cadc se décline en deux variantes : Mode2cadc_trans et

Mode2cadc_pss qui permettent de réaliser, respectivement, une analyse transitoire (analyse

temporelle à condition initiale) et une analyse Pss (analyse temporelle à conditions limites). Pour chacune de ces analyses, ce module est capable de générer de fichier netlist correspondant.

L’analyse temporelle (PSS, transitoire par SpectreRF ou transitoire par SPICE) à utiliser, est sélectionnée sur le panneau de configuration des chemins des modules annexes (Figure 5).

(a) (b)

(c) (d)

Figure. 4 – Exemples de fichiers netlist de description d’un circuit oscillateur à quartz de type VAN DER POL : (a) netlist de type (*.asp) compatible ADOQ–S pour une analyse PSS, (b) netlist de type (*.cir) compatible ADOQ, (c) netlist de type (*.scs) converti au format compatible SpectreRF, (c) netlist de type (Tmp_*.cir)

converti au format compatible SPICE.

01|************************************* 02|* Fichier netlist compatible à ADOQ * 03|* Oscillateur comportementale de * 04|* type Van Der Pol @ 10 MHz * 04|*************************************

05| r0 1 0 100

06| Bs 2 0 V=4*v(1)*(1.0-0.02*v(1)*v(1)) 07|*---

08|* Nœuds du résonateur à quartz 09| XTL 1 2 AT678 10|*--- 11|* Modèle de résonateur

12|.MODEL AT678 XTL(fq0=1e7 lq=1e-3 Rq=126 Cp=0 tref=27 13|+ at1=0 at2=0 at3=0

14|+ ap1=0 ap2=0) 15|* Autres options de simulations 16|. temp 27

17|. end 01| /////////////////////////////////////

02| // Fichier netlist compatible à ADOQ-S 03| // Oscillateur comportementale de 04| // type Van Der Pol @ 10 MHz 05| //////////////////////////////////// 06| simulator lang=spectre

07| global 0

08| include "/space/cadence/AMS_3.51_CDS/spectre/s35/res.scs" section=restm 09| include "/space/cadence/AMS_3.51_CDS/spectre/s35/cap.scs" section=captm 10| include "/space/cadence/AMS_3.51_CDS/spectre/s35/ind.scs" section=indtm 11| r0 (net1 0) resistor r=100

12| e0 (net2 0 net1 0) pvcvs gain=1.0 coeffs=[ 0 4 0 -0.08 ] 13| // Simulation parameters

14| simulatorOptions options reltol=100e-6 vabstol=1e-6 iabstol=1e-12 temp=27 \ 15| tnom=27 homotopy=all limit=delta scalem=1.0 scale=1.0 \

16| compatible=spectre gmin=1e-12 rforce=1 maxnotes=5 maxwarns=5 digits=5 \ 17| cols=80 pivrel=1e-3 ckptclock=1800

18| //

18| .simoptions method=trap 18| // Resonator Device

19| Xtl net2 net1 AT678 20|// Resonator model

21| .MODEL AT678 XTL(fq0=1e7 Lq=1e-3 Rq=126 Cp=0 Tref=27 22| + aT1=0 aT2=0 aT3=0

23| + aP1=0 aP2=0)

01| ///////////////////////////////////// 02| // Fichier netlist compatible à ADOQ-S 03| // Oscillateur comportementale de 04| // type Van Der Pol @ 10 MHz 05| //////////////////////////////////// 06| simulator lang=spectre

07| global 0

08| include "/space/cadence/AMS_3.51_CDS/spectre/s35/res.scs" section=restm 09| include "/space/cadence/AMS_3.51_CDS/spectre/s35/cap.scs" section=captm 10| include "/space/cadence/AMS_3.51_CDS/spectre/s35/ind.scs" section=indtm 11| r0 (net1 0) resistor r=100

12| e0 (net2 0 net1 0) pvcvs gain=1.0 coeffs=[ 0 4 0 -0.08 ] 13| // Simulation parameters

14| simulatorOptions options reltol=100e-6 vabstol=1e-6 iabstol=1e-12 temp=27 \ 15| tnom=27 homotopy=all limit=delta scalem=1.0 scale=1.0 \

16| compatible=spectre gmin=1e-12 rforce=1 maxnotes=5 maxwarns=5 digits=5 \ 17| cols=80 pivrel=1e-3 ckptclock=1800

18|// Circuit resonnant

19| parameters fq=1e7 Im_var=150.000000

20| PORT0 (net2 QuartzNd) port r=100M num=1 dc=0 type=sine val0=0 val1=1 \ 21| freq=fq ampl=Im_var sinephase=0 fundname="fquartz"

22| Vi (QuartzNd net1) vsource dc=0 type=dc 23| Cp (net2 CpNd) capacitor c=0 24| Vcp (CpNd net1) vsource type=dc dc=0 25|// Definition des modeles

26| TmpVDP pss method= trap period=1e-07 harms=1 step=4e-10

27| maxstep= step=4e-10 annotate=status tstart=0 tstab=4.99000000000000E-5 28| Opt options rawfmt=nutascii

29| saveOptions options save=allpub 30| save Vi:p net1 net2 Vcp:p net2

01|************************************* 02|* Fichier netlist compatible à ADOQ * 03|* Oscillateur comportementale de * 04|* type Van Der Pol @ 10 MHz * 04|*************************************

05| r0 1 0 100

06| Bs 2 0 V=4*v(1)*(1.0-0.02*v(1)*v(1)) 07|*---

08|* Nœuds du résonateur à quartz 09| XTL 1 2 AT678 07|*--- 08|* Nœuds du résonateur à quartz

09| I 2 QuartzNd DC=0 SIN(0 4.00000000000000E-06 1e7) 10| Vi QuartzNd 1 DC=0

11| Cp 2 CpNd 0 12| Vcp CpNd 1 DC=0 13|** Modèle de résonateur

14|*** .MODEL CR18AU XTL(fq0=1e7 lq=1e-3 Rq=126 Cp=0 tref=27 15|*** + at1=0 at2=0 at3=0

16|*** + ap1=0 ap2=0) 17|** Autres options de simulations 18|*** .temp 27

19|*** . end

20|*#tran 4.00000000000000E-10 5.00004000000000E-5 21|4.98996000000000E-5 4.00000000000000E-10

22|*#write D:\Xtl\SETIT2~1\LPMO_T~1\TmpTVDPol.raw i(Vi) v(1) v(2) 23| i(Vcp) v(2)

24|*#quit 25|.options temp=27

Chapitre IV : Développement du logiciel ADOQ–S et confrontation avec l’expérience

81

(a) (b)

(c) (d)

Figure. 5 – Panneau de gestion des programmes d’analyse :

(a) analyse temporelle de type SpectreRF (Mod2cadc_trans), (b) analyse type PSS (Mod2cadc_pss), (c) analyse temporelle de type SPICE (Mod2Anal), (d) activation du programme de contrôle à distance (go.bat).

Le programme go.bat(Figure. 5.c) permet de réaliser les tâches suivantes :

Transfert du fichier netlist (adoq.scs) au format SpectreRF vers un répertoire d’échange

(Figure 6.a).

− Lancement de SpectreRF pour traiter le fichier transféré (adoq.scs) (Figure 6.b) (cf.

Annexe D § V ).

− Récupération du fichier de sortie généré par SpectreRF (adoq.raw) vers ADOQ pour la

Chapitre IV : Développement du logiciel ADOQ–S et confrontation avec l’expérience

82

(a)

(b)

Figure. 6 – Tâches exécutées à partir du module ADOQ2SpectreRF :

(a) exécution du fichier de commande (go.bat), (b) messages retournés par le simulateur SpectreRF lors d’une analyse PSS.

Le sous–module Mod2ssh assure la liaison entre les deux plates-formes systèmes à l’aide du logiciel Putty. Ce sous–module génère le fichier adoq.sh (Figure 3) contenant les commandes

de lancement du simulateur SpectreRF sous Unix ainsi que la récupération des résultats de simulations dans un format reconnu par la nouvelle version d’ADOQ. Ces résultats sont stockés dans un fichier de type (adoq.raw) (cf. Annexe D § IV) dans un répertoire partagé sur le réseau.

Les données contenues dans ce fichier sont ensuite concaténées dans un fichier de type (*.zfi).

Documents relatifs