06.05.2013 Views

TEZ˘A DE DOCTORAT - Mihail-Iulian ANDREI

TEZ˘A DE DOCTORAT - Mihail-Iulian ANDREI

TEZ˘A DE DOCTORAT - Mihail-Iulian ANDREI

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

UNIVERSITATEA ”POLITEHNICA” din BUCURES¸TI<br />

FACULTATEA <strong>DE</strong> INGINERIE ELECTRICĂ<br />

<strong>DE</strong>PARTAMENTUL <strong>DE</strong> ELECTROTEHNICĂ<br />

Nr. Decizie Senat 219 din 28.09.2012<br />

TEZĂ <strong>DE</strong> <strong>DOCTORAT</strong><br />

MO<strong>DE</strong>LAREA ELECTROMAGNETICĂ A INDUCTOARELOR<br />

INTEGRATE PE SISTEME MULTIPROCESOR<br />

ELECTROMAGNETIC MO<strong>DE</strong>LLING OF INTEGRATED<br />

INDUCTORS USING MULTIPROCESSOR SYSTEMS<br />

Autor: Ing. <strong>Mihail</strong>-<strong>Iulian</strong> <strong>ANDREI</strong><br />

Conducător de doctorat: Prof. dr. ing. Daniel IOAN<br />

COMISIA <strong>DE</strong> <strong>DOCTORAT</strong><br />

Pres¸edinte Prof. dr. ing. Alexandru MOREGA UPB<br />

Conducător de doctorat Prof. dr. ing. Daniel IOAN UPB<br />

Referent Conf. dr. ing. Gabriela CIUPRINA UPB<br />

Referent Prof. dr. Raimond Grimberg NIRDTP<br />

Referent Prof. dr. ing. Dan Zlatanovici ICEMENERG<br />

BUCURES¸TI<br />

2012


Această pagină este lăsată goală în mod intent¸ionat.


Mult¸umiri<br />

Încep prin a mult¸umi domnului prof. dr. ing. Daniel IOAN, conducătorul s¸tiint¸ific<br />

al prezentei lucrări, pentru profesionalismul cu care m-a ghidat către obt¸inerea titlului de<br />

doctor, pentru îndurmarea s¸tiint¸ifică, pentru sprijinul acordat pe întreaga perioadă a doctoratului<br />

s¸i a elaborării tezei de doctorat.<br />

De asemenea, doresc să multumesc doamnei conf. dr. ing. Gabriela CIUPRINA pentru<br />

tot suportul acordat pe întreaga perioadă pe care mi-am petrecut-o în Laboratorul de Metode<br />

Numerice.<br />

Le mult¸umesc colaboratorilor din Polonia, prof. dr. ing. Mariusz KACZMAREK s¸i dr.<br />

ing. Sebastian KULA de la Universitatea ”Kazimierz Wielki” din Bydgoszcz, care au făcut<br />

posibil stagiul de pregătire doctorală.<br />

Doresc să mult¸umesc colegilor s¸i profesorilor ce fac parte din echipa din cadrul Departamentului<br />

de Electrotehnică.<br />

As¸ vrea să mult¸umesc Emei care mi-a fost colegă de birou s¸i alături de care am petrecut<br />

multe momente frumoase, dar s¸i tuturor colegilor cu care am avut deosebita plăcere să<br />

colaborez: Radu, Alex, Bogdan, Dan, Iulia, Cerasela, Carmen, S¸tefan. Nu în ultimul rând<br />

mult¸umesc Dianei MIHALACHE care m-a îndrumat sa aleg aceast drum spre o teză de<br />

doctorat.<br />

Mult¸umesc familiei, în special mamei mele, pentru tot sprijinul acordat pe parcursul<br />

acestor ani.<br />

Rezultatele prezentate în acestă teză au fost obt¸inute cu sprijinul Ministerului Muncii,<br />

Familiei s¸i Protect¸iei Sociale prin Programul Operational Sectorial Dezvoltarea Resurselor<br />

Umane 2007-2013, Contract nr. POSDRU/88/1.5/S/61178, s¸i Comisiei Europene care a<br />

finant¸at proiectele Codestar, Chameleon, Tok4nEDA. Tot legat de rezultatele prezentate în<br />

teză, doresc să mult¸umesc companiilor AustriaMicroSistems (Graz, Austria), IMEC (Leuven<br />

Belgia) s¸i Philips (Eidhoven, Olanda) pentru că au proiectat, realizat practic s¸i măsurat<br />

structurile de test, ce au permis validarea experimentală a programelor dezvoltate în cadrul<br />

LMN.<br />

iii


Această pagină este lăsată goală în mod intent¸ionat.


Cuprins<br />

Cuprins vi<br />

Listă figuri ix<br />

Listă tabele xi<br />

Listă abrevieri xv<br />

1 Introducere 1<br />

1.1 Important¸a s¸i actualitatea temei . . . . . . . . . . . . . . . . . . . . . . . . 1<br />

1.2 Structura lucrării . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4<br />

2 Stadiul actual al modelării inductoarelor spiralate integrate 5<br />

2.1 Modele cu parametri concentrat¸i . . . . . . . . . . . . . . . . . . . . . . . 6<br />

2.2 Modele cu parametri distribuit¸i . . . . . . . . . . . . . . . . . . . . . . . . 11<br />

2.3 Concluzii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31<br />

3 Modelarea inductoarelor spiralate integrate 33<br />

3.1 Modelarea fizică . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33<br />

3.2 Modelarea matematică . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41<br />

3.3 Modelarea numerică (FIT) . . . . . . . . . . . . . . . . . . . . . . . . . . 43<br />

3.4 Reducerea ordinului modelului prin es¸antionarea adaptivă a frecvent¸elor cu<br />

procedura Vector Fitting . . . . . . . . . . . . . . . . . . . . . . . . . . . 51<br />

3.4.1 Procedura Vector Fitting . . . . . . . . . . . . . . . . . . . . . . . 52<br />

3.4.2 Algoritmul AFS-VF . . . . . . . . . . . . . . . . . . . . . . . . . 53<br />

3.5 Concluzii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56<br />

4 Folosirea sistemelor multiprocesor în modelarea inductoarelor spiralate 57<br />

4.1 Arhitectura hardware s¸i software a sistemelor multiprocesor . . . . . . . . 57<br />

4.1.1 Sistemul de calcul multiprocesor ATLAS . . . . . . . . . . . . . . 59<br />

4.2 Rezolvarea directă s¸i iterativă, în paralel, a sistemelor lineare mari . . . . . 60<br />

4.2.1 Rezolvarea directă . . . . . . . . . . . . . . . . . . . . . . . . . . 61<br />

4.2.2 Rezolvarea iterativă paralelă . . . . . . . . . . . . . . . . . . . . . 63<br />

4.2.3 Rezolvarea iterativă cu precondit¸ionare . . . . . . . . . . . . . . . 68<br />

4.2.4 Rezolvarea, în paralel, a mai multor sisteme liniare . . . . . . . . . 70<br />

v


CUPRINS<br />

4.3 Paralelizarea Es¸ationării Adaptive a Frecvent¸elor cu Vector Fitting(AFS-<br />

VF paralel) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73<br />

4.4 Concluzii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76<br />

5 Studii de caz - rezultate numerice s¸i validarea lor experimentală 77<br />

5.1 Inductorul spiralat pătrat - CDST-SP-MIDDLE . . . . . . . . . . . . . . . 79<br />

5.1.1 Modelarea aproximativă . . . . . . . . . . . . . . . . . . . . . . . 80<br />

5.1.2 Modelarea numerică . . . . . . . . . . . . . . . . . . . . . . . . . 90<br />

5.1.3 Performant¸ele procedurii de extract¸ie a modelului . . . . . . . . . . 96<br />

5.2 Inductorul spiralat hexagonal - CHRF217 . . . . . . . . . . . . . . . . . . 97<br />

5.2.1 Modelarea aproximativă . . . . . . . . . . . . . . . . . . . . . . . 99<br />

5.2.2 Modelarea numerică . . . . . . . . . . . . . . . . . . . . . . . . . 100<br />

5.2.3 Performant¸ele procedurii de extract¸ie a modelului . . . . . . . . . . 102<br />

5.3 Inductoare spiralate cuplate - CHRF201 . . . . . . . . . . . . . . . . . . . 102<br />

5.3.1 Modelarea aproximativă . . . . . . . . . . . . . . . . . . . . . . . 103<br />

5.3.2 Modelarea numerică . . . . . . . . . . . . . . . . . . . . . . . . . 107<br />

5.3.3 Performant¸ele procedurii de extract¸ie a modelului . . . . . . . . . . 110<br />

5.4 Concluzii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111<br />

6 Concluzii finale s¸i contribut¸ii originale 113<br />

Listă lucrărilor publicate de autor 115<br />

A Definire schedulere 117<br />

A.1 Definire scheduler JobManager . . . . . . . . . . . . . . . . . . . . . . . . 117<br />

A.2 Definire scheduler Torque . . . . . . . . . . . . . . . . . . . . . . . . . . . 118<br />

B AFS-VF paralel 119<br />

B.1 Cod pm sys2snp vf3 v*.m . . . . . . . . . . . . . . . . . . . . . . . . . . 119<br />

B.2 Cod compute list frequencies v*.m . . . . . . . . . . . . . . . . . . . . . . 128<br />

B.3 Funct¸ie profilare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130<br />

C Solver iterativ paralel GPU 133<br />

C.1 Readme file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133<br />

C.2 Installation file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134<br />

C.3 Example file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136<br />

C.4 Solver call file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136<br />

C.5 CSC to COO convert procedure . . . . . . . . . . . . . . . . . . . . . . . 138<br />

C.6 Complex solvers file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138<br />

C.7 Real solvers file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150<br />

D Save state space function 163<br />

Bibliografie 178<br />

vi


Listă de figuri<br />

1.1 Legea lui Moore - Numărul de tranzistoare dintr-un procesor. . . . . . . . . 3<br />

2.1 Forme inductoare: (a) pătratică, (b) octogonală, (c) hexagonală, (d) circulară 7<br />

2.2 Modelul cu parametri concentrat¸i pentru inductorul spiralat . . . . . . . . . 8<br />

2.3 Modelul cu parametri concentrat¸i pentru inductorul spiralat cu adăugarea<br />

unui grup LskRsk paralel. . . . . . . . . . . . . . . . . . . . . . . . . . . . 9<br />

2.4 Modelul cu parametri concentrat¸i pentru inductorul spiralat. . . . . . . . . 10<br />

2.5 Modelul cu parametri concentrat¸i pentru inductorul spiralat 2π. . . . . . . . 10<br />

2.6 Forma elementelor finite. (a) unidimensionale. (b) bidimensionale. (c)<br />

tridimensionale. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12<br />

2.7 Ret¸ea de discretizare adaptiv . . . . . . . . . . . . . . . . . . . . . . . . . 13<br />

2.8 Placă conductoare în domeniu 2D. . . . . . . . . . . . . . . . . . . . . . . 16<br />

2.9 Distribut¸ia potent¸ialului în placă conductoare . . . . . . . . . . . . . . . . 18<br />

2.10 Captură din ANSYS HFSS. . . . . . . . . . . . . . . . . . . . . . . . . . . 26<br />

2.11 Captură din SONNET. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27<br />

2.12 Captură din ADS-Momentum. . . . . . . . . . . . . . . . . . . . . . . . . 28<br />

2.13 Captură din ASITIC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29<br />

2.14 Captură din COMSOL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30<br />

3.1 Geometria tipică a unui inductor spiralat integrat . . . . . . . . . . . . . . 37<br />

3.2 Efectele câmpului electromagnetic . . . . . . . . . . . . . . . . . . . . . . 38<br />

3.3 Domeniu de calcul . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39<br />

3.4 Domeniu de calcul . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39<br />

3.5 Sistemul de modelat (MIMO). . . . . . . . . . . . . . . . . . . . . . . . . 40<br />

3.6 Elementul Electromagnetic de Circuit . . . . . . . . . . . . . . . . . . . . 42<br />

3.7 Modelul continuu, modelul discret s¸i modelul compact . . . . . . . . . . . 43<br />

3.8 Ret¸eaua de discretizare duală . . . . . . . . . . . . . . . . . . . . . . . . . 44<br />

3.9 Circuitele echivalente FIT . . . . . . . . . . . . . . . . . . . . . . . . . . . 45<br />

3.10 Structura sistemului de stare . . . . . . . . . . . . . . . . . . . . . . . . . 51<br />

3.11 Reducerea efortului de calcul folosind algoritmul AFS-VF . . . . . . . . . 54<br />

3.12 Algoritm AFS-VF - schema logica . . . . . . . . . . . . . . . . . . . . . . 55<br />

4.1 Calculatoare MIMD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58<br />

4.2 Structura clusterului ATLAS . . . . . . . . . . . . . . . . . . . . . . . . . 59<br />

4.3 Problemă de test Ucoupled . . . . . . . . . . . . . . . . . . . . . . . . . . . 61<br />

vii


LISTĂ <strong>DE</strong> FIGURI<br />

4.4 Matricea FIT înainte s¸i după factorizarea LU. . . . . . . . . . . . . . . . . 63<br />

4.5 Pseudocod algoritm GMRES . . . . . . . . . . . . . . . . . . . . . . . . . 64<br />

4.6 Pseudocod algoritm BiCGSTAB . . . . . . . . . . . . . . . . . . . . . . . 64<br />

4.7 Structura suitei de programe . . . . . . . . . . . . . . . . . . . . . . . . . 65<br />

4.8 Problema Ushape . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66<br />

4.9 Structura matricelor problemei Ushape pentru diferite griduri de discretizare 66<br />

4.10 Problema cu bobina spiralată . . . . . . . . . . . . . . . . . . . . . . . . . 68<br />

4.11 Performant¸e metode de rezolvare directe vs iterative . . . . . . . . . . . . . 71<br />

4.12 Abordări paralele ale AFS-VF . . . . . . . . . . . . . . . . . . . . . . . . 74<br />

5.1 Dispunerea straturilor în tehnologia folosită pentru problemele CO<strong>DE</strong>S-<br />

TAR s¸i CHAMELEON . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78<br />

5.2 Problema CDST-SP-MIDLLE . . . . . . . . . . . . . . . . . . . . . . . . 79<br />

5.3 Materialele inductorului spiralat . . . . . . . . . . . . . . . . . . . . . . . 80<br />

5.4 Dimensiunile inductorului spiralat . . . . . . . . . . . . . . . . . . . . . . 80<br />

5.5 Modelul cu parametri concentrat¸i pentru inductorul spiralat . . . . . . . . . 81<br />

5.6 Circuitul echivalent pentru inductorul integrat (LTSpice) . . . . . . . . . . 83<br />

5.7 Simularea 1 - Y11 s¸i Y21 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85<br />

5.8 Simularea 1 s¸i 2 - Y11 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86<br />

5.9 Simularea 1 s¸i 2 - Y21 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87<br />

5.10 Simularea 1 s¸i 3 - Y11 s¸i Y21 . . . . . . . . . . . . . . . . . . . . . . . . . . 87<br />

5.11 Simularea 1 s¸i 4 - Y21 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88<br />

5.12 Simularea 1 s¸i 5 - Y11 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88<br />

5.13 Simularea 1 s¸i 5 - Y21 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89<br />

5.14 Simularea 1 s¸i 6 - Y11 s¸i Y21 . . . . . . . . . . . . . . . . . . . . . . . . . . 89<br />

5.15 Simularea 1 s¸i 7 - Y11 s¸i Y21 . . . . . . . . . . . . . . . . . . . . . . . . . . 90<br />

5.16 Inductorul integrat CDST-SP-MIDDLE . . . . . . . . . . . . . . . . . . . 91<br />

5.17 Ret¸ea de discretizare pe axa Oy . . . . . . . . . . . . . . . . . . . . . . . 92<br />

5.18 Caracteristicile de frecvent¸ă pentru diferite distribut¸ii ale nodurilor pe Oy . 92<br />

5.19 Ret¸ea de discretizare pe axa xz . . . . . . . . . . . . . . . . . . . . . . . . 93<br />

5.20 Caracteristicile de frecvent¸ă pentru diferite ret¸ele în planul xOz . . . . . . 93<br />

5.21 Caracteristicile de frecvent¸ă pentru diferite ret¸ele în planul xOz . . . . . . 94<br />

5.22 Efectul tehnicii FredHo asupra caracteristicii de frecvent¸ă . . . . . . . . . . 94<br />

5.23 Caracteristicile de frecvent¸ă Y11: măsurate, simulate ale modelului cu parametri<br />

concentrat¸i s¸i distribuit¸i . . . . . . . . . . . . . . . . . . . . . . . . 95<br />

5.24 Caracteristicile de frecvent¸ă Y12: măsurate, simulate ale modelului cu parametri<br />

concentrat¸i s¸i distribuit¸i . . . . . . . . . . . . . . . . . . . . . . . . 96<br />

5.25 Problema CHRF217 - Inductor spiralat hexagonal . . . . . . . . . . . . . . 97<br />

5.26 Modelarea geometrică 3D a structurii CHRF217 . . . . . . . . . . . . . . . 98<br />

5.27 Dimensiunile inductorului spiralat hexagonal . . . . . . . . . . . . . . . . 98<br />

5.28 Simularea modelului aproximativ 1 s¸i 2 - Y11 . . . . . . . . . . . . . . . . 100<br />

5.29 Geometria Manhattan a problemei CHRF217 - Vedere în planul xOz . . . . 101<br />

5.30 Problema CHRF217 - Ret¸eaua de discretizare adaptată . . . . . . . . . . . 101<br />

5.31 Simularea SPICE s¸i Chamy - Y11 . . . . . . . . . . . . . . . . . . . . . . . 101<br />

5.32 Problema CHRF201 - Inductoare spiralate cuplate . . . . . . . . . . . . . . 103<br />

5.33 Pozit¸ionarea conductoarelor paralele . . . . . . . . . . . . . . . . . . . . . 104<br />

viii


LISTĂ <strong>DE</strong> FIGURI<br />

5.34 Problema CHRF201 echivalentă cu inductoare medii . . . . . . . . . . . . 104<br />

5.35 Circuitul echivalent pentru inductoare integrate cuplate (LTSpice) . . . . . 106<br />

5.36 Simularea modelului aproximativ 1 s¸i 2 - Y11 s¸i Y12 . . . . . . . . . . . . . 108<br />

5.37 Problema CHRF201 - Ret¸eaua de discretizare adaptată . . . . . . . . . . . 108<br />

5.38 Rezultate Chamy s¸i SPICE - Y11 s¸i Y12 - pentru CHRF201 . . . . . . . . . . 109<br />

5.39 Rezultate Chamy s¸i Fredho - Y11 - pentru CHRF201 . . . . . . . . . . . . . 109<br />

5.40 Rezultate Chamy s¸i Fredho - Y12 - pentru CHRF201 . . . . . . . . . . . . . 110<br />

ix


Această pagină este lăsată goală în mod intent¸ionat.


Listă de tabele<br />

4.1 Timpii de rezolvare pentru număr diferit de core-uri . . . . . . . . . . . . . 62<br />

4.2 Timpii de rezolvare pentru diferite griduri de discretizare . . . . . . . . . . 62<br />

4.3 Rezultatele testelor pentru diferite griduri de discretizare . . . . . . . . . . 67<br />

4.4 Rezultatele testelor pentru diferite griduri de discretizare . . . . . . . . . . 67<br />

4.5 Rezulte numerice obt¸inute cu metode iterative cu precondit¸ionare . . . . . . 70<br />

4.6 Rezultatele numerice pentru cele două versiuni . . . . . . . . . . . . . . . 72<br />

4.7 Convergent¸a algoritmului AFS-VF3 pentru problema Ucoupled . . . . . . . 75<br />

4.8 Timpii de execut¸ie ai algortimului AFS-VF pentru problema Ucoupled . . . 76<br />

5.1 Parametri geometrici ai straturilor . . . . . . . . . . . . . . . . . . . . . . 78<br />

5.2 Materialele problemelor CO<strong>DE</strong>STAR . . . . . . . . . . . . . . . . . . . . 79<br />

5.3 Adâncimea de pătrundere la diferite frecvent¸e pentru tronsoanele inductorului 83<br />

5.4 Raportul dintre semilăt¸imea t<br />

2<br />

a conductorului s¸i adâncimea de pătrundere<br />

pentru tronsoanele inductorului . . . . . . . . . . . . . . . . . . . . . . . . 83<br />

5.5 Valorile parametrilor concentrat¸i pentru fiecare simulare . . . . . . . . . . 84<br />

5.6 Valorile admitant¸elor pentru simularea nr.1 la diferite frecvent¸e . . . . . . . 86<br />

5.7 Strategii de alegerea ret¸elei de discretizare . . . . . . . . . . . . . . . . . . 91<br />

5.8 Strategii de alegerea ret¸elei de discretizare . . . . . . . . . . . . . . . . . . 92<br />

5.9 Valorile admitant¸elor la diferite frecvent¸e s¸i abaterile lor . . . . . . . . . . 96<br />

5.10 Convergent¸a algoritmului AFS-VF . . . . . . . . . . . . . . . . . . . . . . 97<br />

5.11 Materialele problemelor CHAMELEON . . . . . . . . . . . . . . . . . . . 98<br />

5.12 Valorile parametrilor concentrat¸i pentru fiecare simulare . . . . . . . . . . 100<br />

5.13 Convergent¸a algoritmului AFS-VF . . . . . . . . . . . . . . . . . . . . . . 102<br />

5.14 Calculul inductivităt¸ii mutuale . . . . . . . . . . . . . . . . . . . . . . . . 105<br />

5.15 Valorile parametrilor concentrat¸i pentru fiecare simulare . . . . . . . . . . 107<br />

5.16 Convergent¸a algoritmului AFS-VF . . . . . . . . . . . . . . . . . . . . . . 110<br />

xi


Această pagină este lăsată goală în mod intent¸ionat.


Listă abrevieri<br />

ADS Advanced Design System<br />

AFS Adaptive Frequency Sampling<br />

BEM Boundary Element Method<br />

BiCGSTAB BiConjugate Gradient Stabilized<br />

BiCMOS Bipolar Complementary Metal Oxide Semiconductor<br />

BLAS Basic Linear Algebra Supprograms<br />

CAD Computer Aided Design<br />

CIF Common Intermediate Format<br />

CMOS Complementary Metal Oxide Semiconductor<br />

CPU Central Processing Unit<br />

DAE Differential Algebraic Equations<br />

DCS Distribted Computing Toolbox<br />

DDM Domain Decomposition Method<br />

DoFs Degrees of Freedom<br />

DSO Distributed Solve Option<br />

ED Electrodynamic<br />

EDA Electronic Design Automation<br />

EMCE Electro-Magnetic Circuit Element<br />

EMCE ElectroMagnetic Circuit Element<br />

ENIAC European Nanoelectronics Initiative Advisory Council<br />

EQS Electro Quasi Static<br />

xiii


LISTĂ <strong>DE</strong> TABELE<br />

ES Electro Static<br />

ETP European Technology Platform<br />

FDM Finite Difference Method<br />

FDTD Finite-Difference Time-Domain<br />

FEM Finite Element Method<br />

FFT Fast Fourier Transfrom<br />

FIT Finite Integration Technique<br />

FMM Fast Multipole Method<br />

FSB Front-Side Bus<br />

FW Full Wave<br />

GMRES Generalized Minimum Residual<br />

GPU Graphic Processing Unit<br />

HPC High Performance Computing<br />

HPS High Performance Solver<br />

IC Integrated Circuit<br />

ILU Incomplete LU<br />

ITRS International Technology Roadmap for Semiconductors<br />

KCL Kirchhoff’s Current Law<br />

KVL Kirchhoff’s Voltage Law<br />

LAPACK Linear Algebra Package<br />

MCAD Mechanical Computer Aided Design<br />

MG Magneto Static<br />

MGE Maxwell Grid Equations<br />

MIMD Multiple Instruction Multiple Data<br />

MISD Multiple Instruction Single Data<br />

MoM Method of Moments<br />

MP MultiProcessing<br />

xiv


MPI Message Passing Interface<br />

MQS Magneto Quasi Static<br />

MtM More than Moore<br />

MUMPS MUltifrontal Massively Parallel Sparse<br />

NUMA Non-Uniform Memory Access<br />

O<strong>DE</strong> Ordinary Differential Equation<br />

PCT Parallel Computin Toolbox<br />

PDAE Partial Differential Algebraic Equations<br />

P<strong>DE</strong> Partial Differential Equations<br />

PEEC Partial Element Equivalent Circuit<br />

RAM Random Access Memory<br />

RFICs Radio Frequency Integrated Circuits<br />

SDM Spectral Decomposition Method<br />

SIMD Single Instruction Multiple Data<br />

SISD Single Instruction Single Data<br />

spmd Single Program Multiple Data<br />

SRA Strategic Research Agenda<br />

UMFPack Unsymmetric MultiFrontal Package<br />

VF Vector Fitting<br />

xv<br />

LISTĂ <strong>DE</strong> TABELE


LISTĂ <strong>DE</strong> TABELE<br />

Pagina goala<br />

xvi


Introducere<br />

1.1 Important¸a s¸i actualitatea temei<br />

CAPITOLUL 1<br />

Deoarece costurile pentru fabricarea componentelor de circuit integrat sunt ridicate atât<br />

din punct de vedere financiar, necesitând mas¸ini s¸i instrumente de măsură costisitoare, cât<br />

s¸i din punct de vedere al timpului de fabricat¸ie, procesul de fabricat¸ie durând între 6 s¸i 8<br />

săptămâni, se alege ca solut¸ie alternativă modelarea. Fat¸ă de fabricarea prototipului, pentru<br />

verificarea unui proiect, simularea are un cost mai scăzut fiind necesare doar un sistem de<br />

calcul (hardware) s¸i un program de modelare s¸i simulare a componentelor de circuit integrat<br />

(software). Modelarea s¸i simularea circuitelor integrate a devenit o tehnică obligatorie în<br />

proiectarea elctronică. Ea este baza unei tehnologii de proiectare ”automată” a circuitelor<br />

integrate micro- s¸i nano-electronice numită EDA (Electronic Design Automation).<br />

Tranzit¸ia de la microelectronică la nanoelectronică a deschis drumul spre noi descoperiri.<br />

Evolut¸ia circuitelor integrate stă la baza dezvoltării multor domenii complementare<br />

(industrie, medicină, securitate, telecomunicat¸ii, etc.), deoarece perfomant¸ele circuitelor<br />

integrate se reflectă în toată instrumentat¸ia folosită în aceste domenii.<br />

În anul 2004, Comisia Europeană a publicat un document [1], prin care s-a înfiint¸at<br />

Platforma Tehnologică Europeană (ETP) s¸i prin care s-a creat Agenda de Cercetare Stategică<br />

(SRA), ambele urmând să promoveze s¸i să sust¸ină dezvoltarea nanoelectronicii. Cele<br />

două proiecte s-au desfăs¸urat sub sigla Consiliului Consultativ Init¸iativa Europeană pentru<br />

Nanoelectronică (ENIAC). ENIAC a avut s¸i încă mai are ca obiectiv crearea unei comunităt¸i<br />

formată din parteneri din toate domeniile (industriali, reprezentant¸i ai cercetării,<br />

universităti, organizat¸ii financiare), care să asigure transferul de informat¸ie, diseminarea<br />

de viziuni, accesul la resurse, într-un cuvânt, să asigure dezvoltarea nanoelectronică în<br />

Uniunea Europeană. Comunitatea creată de ENIAC îs¸i desfăs¸oară activitatea doar la nivel<br />

european, însă există o comunitate s¸i la nivel global. Harta Internat¸ională a Tehnologiilor<br />

Semiconductoarelor (ITRS) [2] are acelas¸i rol de a crea o legătură la nivel global, însă între<br />

industrie s¸i comunităt¸ile ce se ocupă de cercetare.<br />

Dezvoltarea tehnicilor de modelare s¸i simulare cu calculatorul în proiectarea electronică<br />

automată a fost identificată ca una din priorităt¸ile, atât ENIAC, cât s¸i ITRS. Fără simulări<br />

costurile ar cres¸te s¸i mai mult, din cauza necesităt¸ii realizării mai multor iterat¸ii, până când<br />

sunt îndeplinite specificat¸iile de proiect. Nivelul nano poate fi abordat doar folosind sisteme<br />

1


1. Introducere<br />

de calcul de înaltă performant¸ă s¸i tehnici speciale de programare. Pentru ca tranzit¸ia de la<br />

nivelul micro la nivelul nano să se poată face mai us¸or, supercalculatoarele s¸i tehnicile<br />

speciale de programare trebuie implementate încă de la nivelul micro.<br />

Marea majoritate a programelor folosite de proiectant¸i pot simula componente de circuit<br />

integrat doar în banda de frecvent¸e 1-10GHz. Aplicat¸iile zilelor noastre solicită frecvent¸e<br />

de până la 60-80GHZ, iar în ultimii ani au apărut aplicat¸ii până la 300GHz [3]. Pachetele<br />

de programe care au la bază rezolvarea câmpului electromagnetic pornind de la ecuat¸iile<br />

lui Maxwell, sunt cele care pot răspunde acestei provocări, deoarece cu ajutorul lor se pot<br />

obt¸ine modele după o singură iterat¸ie, spre deosebire de instrumentele bazate pe analiza<br />

circuitelor electrice care pornind de la ecuat¸iile Kirchhoff, au nevoie de iterat¸ii suplimentare<br />

pentru a obt¸ine aceste modele.<br />

Un aspect important al proiectării eficiente a componentelor de circuit integrat, se referă<br />

la efectele câmpului electromagnetic. Proiectarea acestor componente, t¸inând cont de<br />

efectele câmpului electromagnetic, conduce la modele ce pot cont¸ine milioane de grade de<br />

libertate. Din acest motiv, se impune aplicarea unor tehnici de reducere a ordinului modelelelor<br />

extrase, care transformă modelul init¸ial într-unul echivalent din punct de vederea al<br />

comportării pe la terminale, dar de ordin redus.<br />

Pentru a avea timpi rezonabili de obt¸inere a modelelor, tehnicile de reducere a ordinului<br />

modelelor trebuie completate cu folosirea supercalculatoarelor s¸i a tehnicilor de calcul de<br />

înaltă performant¸ă.<br />

Evolut¸ia circuitelor integrate digitale este guvernată de ”Legea lui Moore” [4], care<br />

spune că numărul de tranzistoare pe unitatea de suprafat¸ă se dublează la fiecare 2 ani. Acest<br />

lucru a permis dezvoltarea industriei electronice la cote foarte mari, circuitele integrate<br />

fiind omniprezente în toate domeniile. Totodată, această cres¸tere exponent¸ială aduce cu<br />

ea s¸i o complexitate ridicată a circuitelor, dar s¸i un pret¸ mai scăzut. Până în anul 2020,<br />

strategia ”More Moore”, strategie ce se încadrează în SRA, va încerca să sustină dezvotarea<br />

circuitelor integrate ment¸inând costurile la acelas¸i nivel scăzut, pentru ca evolut¸ia să îs¸i<br />

continue ritmul de cres¸tere exponent¸ial, ment¸ionat de ”Legea lui Moore”.<br />

Conceptul ”More than Moore” (MtM)[5] se referă la tehnologii hibride, ce dau posibilitatea<br />

circuitelor integrate de a avea funct¸ii non-digitale. Dispozitivele MtM oferă conversia<br />

informat¸iilor non-digitale s¸i non-electronice (mecanice, termice, chimice, acustice,<br />

funct¸ii optice, biomedicale) în date digitale s¸i invers [6]. Tehnologiile s¸i produsele MtM<br />

cresc numărul de funct¸ii esent¸iale ale unui dispozitiv cu circuite integrate. Dacă strategia<br />

”More Moore” continuă miniaturizarea circuitelor integrate, atunci MtM aduce diversificarea<br />

funct¸iilor acestor circuite integrate.<br />

Una din funct¸iile analogice, care se integreaza pe acelasi cip cu blocurile digitale, este<br />

cea de radiofrecvent¸ă (comunicare fără fir - wireless). Spre deosebire de blocurile digitale,<br />

care cont¸in doar port¸i logice s¸i interconexiuni, cele de rafiofrecvent¸ă cont¸in pe lângă<br />

tranzistoare, s¸i multe componente pasive: rezistoare, condensatoare s¸i inductoare. Iată, de<br />

ce modelarea cu acuratet¸e s¸i eficient¸ă a inductoarelor din circuitele integrate la frecvent¸e<br />

tot mai înalte, subiectul prezentei teze, este de interes tot mai sporit.<br />

Revenind la infulent¸a ”Legii lui Moore” asupra sistemelor de calul (Figura 1.1), scăderea<br />

dimensiunii tranzistoarelor duce la imposibilitatea cres¸terii frecvent¸ei procesoarelor (CPU)<br />

supercalculatoarelor, din cauza puterii disipate foarte mari s¸i a imposibilităt¸ii degajării<br />

căldurii. Alternativa o reprezintă procesoarele cu mai multe core-uri (nuclee), care au<br />

2


1.1. Important¸a s¸i actualitatea temei<br />

Figura 1.1: Legea lui Moore - Numărul de tranzistoare dintr-un procesor.<br />

performant¸e mai scăzute decât un procesor cu o frecvent¸ă foarte mare, însă această performant¸ă<br />

poate fi îmbunătăt¸ită dacă se exploatează în mod eficient arhitectura multicore a procesorului.<br />

Exploatarea, în mod eficient, se referă la folosirea paralelismului, în conceperea<br />

algoritmilor. Acest tip de sisteme multiprocesor pe care se pot rula programe paralele sunt<br />

reprezentate, fie printr-un calculator cu unul sau mai multe procesoare (multicore sau nu),<br />

fie prin sisteme tip cluster de calculatoare. O alternativă multicore, diferită de cea CPU,<br />

o reprezintă tehnologia cu procesoare grafice (GPU). Această tehnologie poate să apară în<br />

ambele sisteme multiprocesor ment¸ionate anterior.<br />

Toate sistemele de calcul de înaltă performat¸ă (IBM Sequoia [7], K computer [8] - Top<br />

500 Supercomputer [9]), indiferent de tehnologie, CPU sau GPU, au în comun un concept<br />

care stă la baza viitoarelor programe: paralelismul. Folosirea algoritmilor paraleli are un rol<br />

foarte important în reducerea timpului de extragere a modelelor de ordin redus, devenind<br />

o necesitate în proiectarea electronică automată a viitorului, care va avea ca obiect circuite<br />

integrate de complexitate tot mai mare.<br />

Din punct de vedere al compatibilităt¸ii, programul de modelare trebuie să genereze<br />

modelul într-un format standard, compatibil cu alte programe. Majoritatea proiectant¸ilor<br />

de componente de circuit integrat preferă ca format standard modelul SPICE.<br />

Teza de doctorat, ”Modelarea electromagnetică a inductoarelor integrate pe sisteme<br />

de calcul multiprocesor”, are ca principal obiectiv folosirea acestor instrumente de<br />

calcul paralel, pentru îmbunătăt¸irea tehnologiei de modelare electromagnetică a componentelor<br />

pasive de circuit integrat, urmărind atât scăderea timpului s¸i a efortului de calcul,<br />

cât si obt¸inerea unei precizii acceptabile pentru modelele obt¸inute. Tema tezei este de ac-<br />

3


1. Introducere<br />

tualitate s¸i prezintă o important¸ă ridicată datorită faptului că pe de o parte tot mai multe<br />

circuite integrate cont¸in inductoare sau au efecte inductive relevante, iar, pe de alta parte,<br />

foarte multe probleme de complexitate industrială nu pot fi abordate cu tehnicile clasice<br />

secvent¸iale, din cauza timpului foarte mare de execut¸ie [10].<br />

1.2 Structura lucrării<br />

Teza este alcătuită din s¸ase capitole. Primul capitol reprezintă o intoducere în care sunt<br />

prezentate important¸a s¸i actualitatea temei de cercetare, structura tezei de doctorat.<br />

Capitolul doi prezintă stadiul actual al modelării inductoarelor integrate. Sunt tratate<br />

atât modelelele cu parametri concentrat¸i, cât s¸i modelele cu parmetri distribuit¸i, care presupun<br />

rezolvarea numerică ecuat¸iilor câmpului electromagnetic în regimuri dinamice.<br />

Capitolul trei prezintă descrierea s¸i analiza procesului de modelare al inductoarelor<br />

integrate, ales pentru a fi studiat în vederea paralelizării. Sunt prezentate toate etapele<br />

procesului de modelare: modelarea fizică, modelarea matematică, modelarea numerică s¸i<br />

metoda de reducerea ordinului modelului.<br />

Capitolul patru prezintă avantajele folosirii sistemelor multiprocesor, în modelarea inductoarelor<br />

spiralate. In prima parte a acestui capitol, sunt introduse arhitecturile calculatoarelor<br />

paralele folosite, atât din punct de vedere hardware, cât s¸i software. În a doua<br />

parte, sunt prezentate metodele de rezolvare directă s¸i iterativă a sistemelor liniare rezultate<br />

folosind tehnici de calcul paralel. În finalul acestui capitol, sunt propuse două abordări<br />

paralele ale algoritmului de reducere a ordinului modelului, pentru care sunt prezentate s¸i<br />

rezultatele obt¸inute pe probleme de test.<br />

Capitoul cinci prezintă un studiu de caz pe trei probleme reale, în care se prezintă procesul<br />

de modelare electromagnetică, validarea lui experimentală s¸i perfomant¸ele abordărilor<br />

paralele propuse în capitolul anterior.<br />

Ultimul capitol, face o sinteza a concluziilor întregii lucrări, pune în evident¸ă principalele<br />

contribut¸ii originale ale tezei s¸i se încheie cu lista de lucrări publicate de autor.<br />

Teza cont¸ine în anexe codurile programelor dezvoltate de autor. Acestea împreună<br />

cu sursele acestui document s¸i modelele dezvoltate de autor au fost arhivate pe pagina<br />

personală a autorului din intranetul LMN:<br />

http://ro.wiki.lmn.pub.ro/index.php/Utilizator:<strong>Iulian</strong><br />

4


Stadiul actual al modelării inductoarelor spiralate<br />

integrate<br />

CAPITOLUL 2<br />

Stimulată de cererea mare de aplicat¸ii fără fir, dezvoltarea circuitelor integrate de înaltă<br />

frecvent¸ă a devenit un subiect de cercetare foarte important al zilelor noastre. Există o mare<br />

varietate de circuite integrate, clasificate în două categorii: circuite analogice s¸i circuite<br />

digitale. Din punct de vedere tehnologic, circuitele integrate pot fi realizate sub formă<br />

hibridă sau sub formă monolitică.<br />

Circuitele integrate hibride sunt circuite electronice în miniatură alcătuite din dipozitive<br />

individuale (tranzistoare, diode, rezistoare, inductoare, condensatoare) [11].<br />

Circuitele integrate monolitice se obt¸in integral pe aceeas¸i plăcut¸ă de material semiconductor<br />

(cip sau ”chip”) [11]. Cipul este alcătuit dintr-o combinat¸ie de mai multe straturi<br />

(straturi de difuzie, straturi de contact, straturi izolatoare), fiecare strat fiind realizat prin<br />

fotolitografie.<br />

Acest studiu se va concentra pe cea mai importantă componentă pasivă integrată de<br />

înaltă frecvent¸ă: inductorul spiralat.<br />

În general, cea mai întâlnită tehnologie de fabricat¸ie a circuitelor integrate este tehnologia<br />

CMOS [12] [10]. Principalele avantaje ale acestei tehnologii sunt consumul redus<br />

de putere, us¸urint¸a în procesul de proiectare s¸i performant¸ele din ce în ce mai bune<br />

obt¸inute odată cu scalarea dispozitivelor (Legea lui Moore). Consumul redus de putere<br />

s¸i performant¸ele bune se datorează tranzistoarelor din dispozitivul CMOS, care comută<br />

mult mai repede între starea pornit/oprit, deoarece componentele sunt foarte mici s¸i foarte<br />

aproape una de cealaltă. Tehnologia BiCMOS [13] adaugă noi avantaje, cum ar fi imunitatea<br />

la zgomot, liniaritatea, buna conectivitate cu alte dispozitive, capacitate de stocare<br />

mare, o mai bună optimizare a performant¸elor s¸i un grad de integrare mai ridicat. Procesul<br />

de fabricat¸ie este unul complex, ce implică sute de pas¸i care trebuie executat¸i într-o<br />

secvent¸ă bine definită, cu un control foarte riguros al parametrilor tehnologici. Pentru a<br />

obt¸ine un randament bun, adică un pret¸ nu foarte ridicat, însă cu păstrarea performant¸elor,<br />

procesul de fabricat¸ie trebuie să fie foarte bine planificat.<br />

De-a lungul anilor tehnologiile de fabricat¸ie a inductoarelor spiralate au evoluat, însă<br />

din cauza costului ridicat al realizării de prototipuri, s-au dezvoltat diferite tehnici de modelare<br />

a acestor inductoare. Tehnicile de modelare au rolul de a extrage modele ce permit<br />

studierea comportamentului componentei modelate în diferite situat¸ii (conectarea într-un<br />

5


2. Stadiul actual al modelării inductoarelor spiralate integrate<br />

circuit), înainte ca aceasta să fie realizată practic. În prezent, se evident¸iză două tehnici de<br />

a inductoarelor:<br />

1. modelul de circuit cu parametri concentrat¸i;<br />

2. modelul de circuit cu parametri distribuit¸i.<br />

Pentru a putea face o comparat¸ie din care să rezulte avantajele s¸i dezavantajele folosirii<br />

lor, în continuare, se vor prezenta tehnici de modelare pentru inductoarele integrate, atât cu<br />

parametri concentrat¸i, cât s¸i cu parametri distribuit¸i.<br />

2.1 Modele cu parametri concentrat¸i<br />

Circuitele care cont¸in un număr finit de elemente ideale simple, caracterizate de parametrii<br />

lor rezistivi, capacitivi sau inductivi, sunt numite circuite cu parametri concentrat¸i.<br />

Elementele pot fi pasive (rezistoare, inductoare, condensatoare) sau active (surse, generatoare).<br />

Acest studiu se va concentra asupra avantajelor s¸i dezavantajelor folosirii modelelor<br />

cu parametri concentrat¸i pentru inductoarelor spiralate.<br />

Modelul pentru un inductor spiralat cont¸ine o serie de paramtetri, ce sunt într-o strânsă<br />

legătură cu proprietăt¸ile geometrice ale spirei. În funct¸ie de cerint¸ele aplicat¸iei forma spiralei<br />

poate fi [14]: rectangulară (Figura 2.1a), octogonală (Figura 2.1b), hexagonală (Figura<br />

2.1c) s¸i circulară (Figura 2.1d).<br />

Din punct de vedere tehnologic, bobinele cu formă rectangulară sunt cel mai simplu de<br />

realizat, însă, dezavantajul vine din faptul că adaugă un cont¸inut mare de zgomot din cauza<br />

unghiurilor drepte. Forma circulară oferă cele mai bune performant¸e, dar, îngreunează<br />

procesul de fabricat¸ie, fapt pentru care nu se foloses¸te decât pentru realizarea inductoarelor<br />

mari. Compromisul între dificultatea procesului de fabricat¸ie s¸i performant¸e îl oferă<br />

bobinele cu formă octogonală s¸i hexagonală.<br />

Teoria circuitelor electrice cu parametrii concentrat¸i se elaborează prin particularizarea<br />

teoriei câmpului electromagnetic, în anumite ipoteze simplificatoare [15]:<br />

1. fenomenul de propagare nu se manifestă, condit¸ie îndeplinită dacă frecvent¸a este<br />

destul de mică, astfel încât lungimea undei electromagnetice λ, să fie mult mai mare<br />

decât lungimea circuitului L:<br />

L ≪ λ = c · T = c<br />

f<br />

; (2.1)<br />

2. energia câmpului electric este localizată numai în dielectricul condensatoarelor, iar<br />

energia câmpului magnetic este localizată numai în miezul bobinelor, ceea ce presupune<br />

că se neglijează atât induct¸ia electrică, implicit curentul de deplasare, peste tot<br />

în circuit cu except¸ia condensatoarelor, cât si induct¸ia magnetică, cu except¸ia bobinelor;<br />

3. se neglijează repartit¸ia neuniformă a curentului variabil în timp pe sect¸iunea conductoarelor.<br />

La viteze mari de variat¸ie în timp a curentului electric electric de conduct¸ie<br />

s¸i la valori mari ale conductivităt¸ii σ, permeabilităt¸ii µ s¸i a celei mai mici dimensiunii<br />

6


2.1. Modele cu parametri concentrat¸i<br />

Figura 2.1: Forme inductoare: (a) pătratică, (b) octogonală, (c) hexagonală, (d) circulară<br />

d a sect¸iunii transversale a unui conductor izolat, densitatea de curent este mai mare<br />

la suprafat¸a conductorului. Acest efect, numit pelicular, este neglijabil dacă e satisfăcută<br />

condit¸ia, ca diametrul conductorului d să fie mult mai mic decât adâncimea<br />

de pătrundere δ:<br />

d<br />

δ<br />

≪ 1; δ =<br />

1<br />

√ πfµσ . (2.2)<br />

Practic, modelarea se rezumă la găsirea unui circuit echivalent, care pentru a avea o<br />

acuratet¸e ridicată trebuie să modeleze principalele efecte parazite, într-o gamă de frecvent¸e<br />

cât mai extinsă.<br />

În anul 1996, Yue propune unul din primele modele cu parametri concetrat¸i pentru<br />

inductorul spiralat [16]. Acesta se dores¸te a fi un model cu acuratet¸e ridicată, care să t¸ină<br />

cont de principalele efecte ale câmpului electromagnetic: curent¸ii turbionari din spirala<br />

conductoare s¸i capacităt¸ile parazite aparute între spire, dar s¸i cele apărute între spirală s¸i<br />

substraturile inductorului. Cât¸iva ani mai târziu, în anul 2000, autorul publică în lucrarea<br />

[17], întreg procesul de dezvoltare al modelului propus în lucrarea precedentă [16] (Figura<br />

2.2).<br />

Parametri concentrat¸i ai modelului din Figura 2.2 sunt definit¸i astfel:<br />

• rezistent¸a serie Rs:<br />

Rs =<br />

ρ · l<br />

w · δ · (1 − e−t/δ , (2.3)<br />

)<br />

unde ρ rezistivitatea metalului, l lungimea totală a spiralei, w lăt¸imea liniei (Figura<br />

7


2. Stadiul actual al modelării inductoarelor spiralate integrate<br />

Figura 2.2: Modelul cu parametri concentrat¸i pentru inductorul spiralat<br />

2.1 (a)), adâncimea de pătrundere δ, t grosimea metalului (se constată, deci, că se<br />

încearcă modelrea efectului pelicular, chiar s¸i pe un model cu parametri concentrat¸i);<br />

• inductivitatea serie Ls, calculată folosind algoritmul Greenhouse [18], care a devenit<br />

o metodă de referint¸ă pentru calculul inductant¸ei proprii;<br />

• capacitatea serie Cs:<br />

Cs = (N − 1) · w 2 ·<br />

εOx<br />

tOx M1−M2<br />

, (2.4)<br />

unde N numărul de spire, tOx M1−M2 grosimea stratului de oxid dintre stratul de<br />

metal al spiralei s¸i metalul folosit pentru legături;<br />

• capacitatea stratului de oxid COx:<br />

COx = 1 εOx<br />

· l · w ·<br />

2 tOx<br />

unde tOx grosimea stratului de oxid dintre spirală s¸i substrat;<br />

• capacitatea stratului de Si CSi:<br />

, (2.5)<br />

CSi = 1<br />

2 · l · w · CSub , (2.6)<br />

unde CSub capacitarea substratului pe unitatea de suprafat¸ă;<br />

• rezistent¸a stratului de Si RSi:<br />

RSi =<br />

2<br />

l · w · GSub<br />

unde GSub conductant¸a substratului pe unitatea de suprafat¸ă.<br />

, (2.7)<br />

Parametrii parazit¸i sunt aproximat¸i folosind modele simple de câmp uniform. Aparit¸ia<br />

adâncimii de pătrundere, care depinde de frecvent¸ă, face ca modelul să nu fie riguros cu<br />

parametri concentrat¸i.<br />

8


Factorul de calitate Q este calculat cu formula:<br />

Q =<br />

ω · Ls<br />

·<br />

Rs<br />

Rp +<br />

ω·Ls<br />

Rs<br />

Rp<br />

2 ×<br />

+ 1 · Rs<br />

2.1. Modele cu parametri concentrat¸i<br />

<br />

1 − R2 S · Co<br />

− ω<br />

LS<br />

2 · LS · Co<br />

<br />

, (2.8)<br />

unde Co = Cp + Cs. În relat¸ia factorului de calitate Q (2.8) primul termen cont¸ine<br />

informat¸ia referitoare la energia magnetică stocată s¸i pierderile rezistive în spirala conductoare.<br />

Al doilea termen este factorul de pierderi în substrat reprezentând energia disipată în<br />

stratul semiconductor de Si. Ultimul termen este factorul de rezonant¸ă.<br />

Desigur, principalul neajuns al acestui model este acela că este valabil numai pentru<br />

frecvent¸e de maxim 1GHz.<br />

O analiză comparativă a metodelor, pentru calculul inductivităt¸ilor bobinelor spiralate<br />

plane, este prezentată în [19]. Rezultatele acestei lucrări sunt implementate într-un calculator<br />

on-line de inductivităt¸i [20]. În anul 2001, raportul [21] prezintă analiza formulelor<br />

de calcul a inductivităt¸ilor proprii s¸i mutuale, dintre tronsoanele conductoare.<br />

În 2002, este adusă o îmbunătăt¸ire a modelului pentru inductorul spiralat de lucrarea<br />

[22], care propune un nou model cu parametri concentrat¸i (Figura 2.3), numit circuitul π.<br />

O schemă mai exactă de modelare a efectul pelicular s¸i a curent¸ilor turbionari, se obt¸ine<br />

prin adăugarea unui grup LskRsk paralel (Figura 2.3). Banda de frecvent¸e cres¸te până la<br />

3GHz.<br />

Grupul LskRsk paralel modelează aproximativ dependent¸a adâncimii de pătrundere în<br />

funct¸ie de frecvent¸ă, iar acest lucru se reflectă în factorul de calitate, care are valori imprecise<br />

la frecvent¸e de ordinul gigahertzilor.<br />

Figura 2.3: Modelul cu parametri concentrat¸i pentru inductorul spiralat cu adăugarea unui<br />

grup LskRsk paralel.<br />

În 2003, lucrarea [23] prezintă un studiu privind cercetările ultimilor ani în domeniul<br />

proiectării s¸i modelării inductoarelor spiralate. Circuitul echivalent propus de autori (Figura<br />

2.4), prezintă, pe lângă elementele cunoscute, s¸i un circuit cuplat mutual, care modelează<br />

curent¸ii indus¸i în substrat.<br />

Acest studiu demonstrează că forma cea mai bună pentru inductoarele spiralate este<br />

cea circulară, iar frecvent¸a maximă, în care factorul de calitate are valori acceptabile, este<br />

9


2. Stadiul actual al modelării inductoarelor spiralate integrate<br />

Figura 2.4: Modelul cu parametri concentrat¸i pentru inductorul spiralat.<br />

de 2.4GHz. Acestea nu reprezintă o solut¸ie, deoarece forma circulară implică procese<br />

tehnologice destul de complicate.<br />

Tot în acelas¸i an, lucrarea [24] introduce un nou model pentru inductorul spiralat, denumit<br />

s¸i circuitul 2π (Figura 2.5). Modelul înlătură dependent¸a de frecvent¸ă, calculând<br />

valorile elementelor de circuit cu ajutorul unor fomule derivate din teoria circuitelor s¸i teoria<br />

câmpului, formule ce au la bază forma geometrică a inductorului. Folosirea a două<br />

modele π înlant¸uite, care cont¸in elemente de circuit independente de frecvent¸ă permit analiza<br />

tranzitorie s¸i lărgesc banda de frecvent¸e până la 4GHz.<br />

Figura 2.5: Modelul cu parametri concentrat¸i pentru inductorul spiralat 2π.<br />

Un an mai târziu, mergând pe aceeas¸i idee de a folosi circuitul echivalent 2π cu elemente<br />

de circuit independente de frecvent¸ă, lucrarea [25] prezintă o metodă de modelare<br />

a caracterului distribuit al sistemului, prin extract¸ia valorilor elementelor de circuit din<br />

măsurătorile paramentrilor de împrăs¸tiere S pentru circuitul cu două sect¸iuni. Modelele<br />

extrase cu ajutorul acestei metode sunt valabile în banda de frecvent¸e 0.1-10GHz. Chiar<br />

dacă metoda de modelare este una empirică, ea demonstrează că există modele cu un număr<br />

relativ redus de parametri concentrat¸i, pentru o plajă de frecvent¸e destul de largă.<br />

În 2005, lucrarea [26] propune extragerea elementelor circuitului echivalent folosind<br />

teoria liniei de transmisie. Folosind serii Taylor s¸i aproximări rat¸ionale se demostrează că<br />

10


2.2. Modele cu parametri distribuit¸i<br />

se pot obt¸ine valori foarte acceptabile pentru elementele de circuit, în banda de frecvent¸ă<br />

0.1-25GHz. O analiza a scalabilităt¸ii modelelor cu parametri concentrat¸i este prezentată în<br />

[27].<br />

În 2008, lucrarea [28] continuă ideea de a extrage valorile elementelor circuitului de<br />

circuit din măsurătorile parametrilor ret¸elei (S sau Y). Cu toate acestea banda de frecvent¸e<br />

rămâne destul de îngustă pentru aplicat¸iile actuale. Acest studiu demonstrează, că ipotezele<br />

simplificatoare, ale teoriei circuitelor cu parametri concentrat¸i, sunt prea restrictive pentru<br />

situat¸iile practice: de exemplu, conform ipotezei 3, la frecvent¸e de 60GHz, doar circuitele<br />

cu lungimi mult mai mici de 500µm se pot trata folosind teoria cu parametri concentrat¸i.<br />

Această limitare nu poate fi satisfăcută, deoarece există aplicat¸ii în care inductoarele integrate<br />

au dimensiuni mai mari de 500µm [29], iar lungimea de undă scade odată cu cres¸terea<br />

frecvent¸ei.<br />

În concluzie, se constată, că ipotezele simplificatoare ale teoriei circuitelor cu parametri<br />

concentrat¸i, nu mai pot fi satisfăcute de circuitele integrate actuale, deoarece aplicat¸iile<br />

implică frecvent¸e mari de lucru, astfel încât nu se mai poate neglija nici un efect al vreuneia<br />

din componentele câmpului electromagnetic. Prin urmare, teoria cu parametri concetrat¸i<br />

nu poate răspunde cerint¸elor circuitelor integrate de înaltă frecvent¸ă, astfel încât, în acest<br />

context, o nouă teorie trebuie abordată, teorie care să ia în calcul toate efectele câmpului<br />

electromagnetic sau să fie mai put¸in restrictivă decât teoria cu parametri concentrat¸i.<br />

2.2 Modele cu parametri distribuit¸i<br />

Teoria liniilor de transmisie furnizează un model tipic cu parametri distribuit¸i [30].<br />

Prin parametri distribuit¸i ai unui circuit electric, se înt¸elege, că proprietăt¸ile circuitului<br />

(rezistent¸e, inductivităt¸i, capacităt¸i) sunt distribuite, în mod continuu în spat¸iul circuitul sau<br />

pe o parte a acestuia. În general, teoria liniilor de transmisie este folosită pentru aplicat¸ii<br />

cu frecvent¸e de lucru foarte mari, însă ea poate fi folosită s¸i la frecvent¸e joase, pentru linii<br />

lungi (de exemplu, liniile de transport de energie electrică). Principala condit¸ie a acestei<br />

teorii, este ca lungimea de undă λ (2.1) să fie comparabilă cu lungimea circuitului L sau mai<br />

mică decât aceasta. Astfel, la 60GHz, având o lungime de undă de 500µm, se pot aborda<br />

circuite cu lungimi comparabile cu această valoare [29][31], spre deosebire de teoria cu<br />

parametri concentrat¸i, ce impune o lungime a circuitului mult mai mică decât lungimea de<br />

undă.<br />

Modelul cu parametri distribuit¸i oferă o acuratet¸e mai mare decât modelul cu parametri<br />

concentrat¸i, însă complexitatea modelului este mult mai mare. Acuratet¸ea modelului provine<br />

din faptul că se ia în considerare interact¸iunea reciprocă a efectelor câmpului electromagnetic,<br />

iar complexitatea provine din faptul că modelul este descris de ecuat¸ii cu derivate<br />

part¸iale. Modelul cu parametri distribuit¸i, descris de ecuat¸iile lui Maxwell, completat cu<br />

relat¸iile consitutive de material s¸i cu condit¸iile pe frontieră, este un model continuu, infinit<br />

dimensional. Pentru a obt¸ine un model discret, cu o dimensiune finită, se foloses¸te o<br />

metodă numerică pentru a discretiza ecuat¸iile lui Maxwell, dintre care cele mai importante<br />

sunt: FEM (metoda elementului finit), FDM (metoda diferent¸elor finite) s¸i BEM (metoda<br />

elmentelor de frontieră), numită s¸i MoM (metoda momentelor).<br />

Metoda elementului finit (FEM) reprezintă unul din cele mai populare instrumente<br />

pentru rezolvarea ecuat¸iilor diferent¸iale în diferite domenii, printre care s¸i electromagnetis-<br />

11


2. Stadiul actual al modelării inductoarelor spiralate integrate<br />

mul. În continuare, se va prezenta principiul general al metodei, după care va fi prezentat<br />

un exemplu de problemă, având ca scop prezentarea modului de discretizare a ecuat¸iilor lui<br />

Maxwell, care sunt un sistem de ecuat¸ii diferent¸iale cu derivate part¸iale.<br />

Principalul avantaj al acestei metode este că poate trata probleme cu o complexitate ridicată<br />

a geometriei. Acest lucru se datorează folosirii ret¸elelor de discretizare nestructurate<br />

(unstructured meshes), care pot fi alcătuite, în funct¸ie de tipul problemei 1D, 2D, 3D, din<br />

diferite elemente geometrice simple, respectiv segmente, triunghiuri sau patrulatere, tetraerdre,<br />

prisme, piramide sau hexaedre (triunghiulare sau patrulatere) (Figura 2.6). Folosirea<br />

ret¸elelor de discretizare nestructurate permite modelarea obiectelor ce prezintă curbe, în<br />

timp ce alte metode, cum ar fi metoda diferent¸elor finite (FDM), nu pot aborda astfel de<br />

obiecte, decât introducând mari aproximări, din cauza restrict¸iei ret¸elei de discretizare, care<br />

trebuie sa fie cartezian.<br />

Figura 2.6: Forma elementelor finite. (a) unidimensionale. (b) bidimensionale. (c) tridimensionale.<br />

În plus, folosirea formei triunghiulare pentru elementul finit, permite rafinarea ret¸elei de<br />

discretizare pe anumite port¸iuni, rezultând o ret¸ea adaptivă (Figura 2.7) [32]. Prin utilizarea<br />

ret¸elei adaptive se îmbunătăt¸es¸te acuratet¸ea solut¸iei, dar cres¸te s¸i dimensiunea modelului,<br />

lucru ce impune folosirea unor sisteme de calcul de înaltă performant¸ă. Algoritmii de generare<br />

a ret¸elelor de disctretizare adaptive se bazează pe estimarea erorii, folosind indicatori<br />

de eroare [33][34], astfel încât, iterează următoarea secvent¸ă de pas¸i:<br />

1. calculeză solut¸ia numerică pentru ret¸eaua actuală;<br />

2. calculează indicatorii de eroare pentru fiecare element;<br />

3. rafinează ret¸eua, prin divizarea elementelor care au cel mai mare indicator de eroare.<br />

Metoda elementului finit are mai multe avantaje, totus¸i, dezavantajul metodei este pus<br />

în evident¸ă la rezolvarea problemelor tranzitorii în domeniul timpului. După discretizarea<br />

spat¸ială cu FEM se obt¸ine un sistem de ecuat¸ii diferent¸iale ordinare, care trebuie integrate<br />

numeric. Din păcate, acest sistem are o formă, care impune folosirea metodelor implicite de<br />

integrare, deci, la fiecare pas de timp trebuie rezolvat un sistem liniar de mari dimensiuni,<br />

lucru ce este inadmisibil de costisitor, din punct de vedere al resurselor computat¸ionale.<br />

În schimb, discretizarea directă a ecuat¸iilor lui Maxwell prin diferent¸e finite sau tehnica<br />

12


Figura 2.7: Ret¸ea de discretizare adaptiv<br />

2.2. Modele cu parametri distribuit¸i<br />

integralelor finite (FIT), conduce la metoda FDTD, care are caracter explicit, astfel, efortul<br />

de calcul la fiecare iterat¸ie fiind mult mai mic. Deci, pentru un acelas¸i model, metoda elementului<br />

finit va avea nevoie de mai multe resurse, atât din punct de vedere al procesorului,<br />

cât s¸i din punct de vedere al memoriei.<br />

Algoritmul de rezolvare al ecuat¸iilor cu derivate part¸iale cu metoda elementului finit,<br />

presupune execut¸ia unei serii de pas¸i. Se consideră ecuat¸ia în domeniul Ω de forma<br />

Lφ = f , (2.9)<br />

unde L este un operator diferent¸ial (de regulă liniar de ordinul doi, de tip eliptic, cum este<br />

de exemplu operatorului Lapalce), f este sursa câmpului s¸i φ câmpul necunoscut, de regulă,<br />

un potent¸ial.<br />

În electromagnetism, acestă formă apare în rezolvarea problemelor din regimurile statice,<br />

stat¸ionare sau MQS, EQS, ED, cu variat¸ie armonică în timp, după reprezentarea în<br />

complex. În aceste situat¸ii, problema este descrisă de ecuat¸ii de tip scalar sau vectorial,<br />

eliptic (Poisson, Lapalce, Helmhotz), parabolic (cum este ecuat¸ia difuziei câmpului în regim<br />

MQS) sau hiperbolic (cum este ecuat¸ia de propagare a undelor electromagnetice). Necunoscutele<br />

pot fi potent¸ialele scalar s¸i/sau vectorial sau componenetele câmpului electric<br />

s¸i/sau magnetic.<br />

Metoda elementelor finite înlocuies¸te domeniul continuu cu un număr finit de subdomenii<br />

de formă geometrică foarte simplă, în interiorul cărora solut¸ia are variat¸ie spat¸ială<br />

polinomială.<br />

Primul pas al analizei cu elemente finite constă în discretizarea domeniului, care presupune<br />

descompunerea domeniului Ω în elemente, care se vor nota cu e. Gradul de discretizare<br />

reprezintă un factor foarte important al metodei, deoarece o discretizare densă poate<br />

conduce la un timp de rezolvare foarte mare sau chiar imposibilitatea rezolvării, din motive<br />

de insuficinent¸ă a memoriei. În schimb, discretizarea insuficient de fină duce la o solut¸ie<br />

13


2. Stadiul actual al modelării inductoarelor spiralate integrate<br />

numerică lipsită de acuratet¸e. Fiecare element este caracterizat de parametri geometrici,<br />

ce indică pozit¸ia nodurilor, dar s¸i parametri topologici, care indică nodurile ce definesc o<br />

latură. Solut¸ia numerică a problemei este descrisă de gradele de libertate, care indică, de<br />

regulă, valoarea solut¸iei în noduri sau circulat¸ia ei de-a lungul muchiilor.<br />

Pornind de la valorile gradelor de libertate se interpoleaza solut¸ia în intregul domeniu de<br />

calcul, folosind un set de funct¸ii de bază, cu carcater polinomial. Acest set este definitoriu<br />

pentru metoda de elemente finite folosită. Cu cât gradul polinoamelor este mai mare, cu<br />

atât ordinul metodei aplicate este mai mare [35]. Acest al doilea pas constă în alegerea<br />

funct¸iilor de interpolare, numite s¸i funct¸ii de formă [36]. Expresia solut¸iei numerice din<br />

elementul e are forma:<br />

φ e n<br />

= N e j φ e j = [N e ] T [φ e ] , (2.10)<br />

j=1<br />

unde n este numărul de noduri ale elementului, φ e j reprezintă gradele de libertate, adică<br />

valoarea solut¸iei φ e în nodul j al elementului, iar N e j (x) funct¸ia de interpolare a nodului j,<br />

numită s¸i funct¸ia de bază.<br />

Pasul al treilea îl reprezintă generarea sistemului de ecuat¸ii algebrice liniare [37], pentru<br />

care se foloses¸te forma slabă a ecuat¸iei obt¸inută fie prin metoda reziduurilor ponderate<br />

(metodă de proiect¸ie), fie prin metoda variat¸ională (minimizarea funct¸ionalei de energie).<br />

Metoda Rayleigh-Ritz se aplică atunci când există o funct¸ională de energie, al cărui minim<br />

corespunde solut¸iei, cum se întâmplă în problemele stat¸ionare de câmp electromagnetic.<br />

Metoda Galerkin face parte din familia metodelor de proiect¸ie s¸i este cea mai des folosită<br />

abordare în analiza cu elemente finite. În cazul problemelor stat¸ionare, descrise de ecuat¸ii<br />

de tip eliptic, cele două metode sunt perfect echivalente, generând acelas¸i sistem de ecuat¸ii<br />

liniare.<br />

Se consideră ˜ φ aproximarea solut¸iei φ, pentru care reziduul are forma<br />

r = L ˜ φ − f . (2.11)<br />

Metoda reziduului ponderat impune condit¸ia<br />

<br />

Ri = wir dΩ = 0 i = 1, n, (2.12)<br />

Ω<br />

unde Ri reziduul ponderat al integralei s¸i wi reprezintă funct¸iile pondere ”de test”, care în<br />

cazul metodei Galerkin se aleg identice cu funct¸iile de bază. Înlocuind r s¸i wi în formula<br />

(2.13), se obt¸ine reziduul ponderat al elementului e<br />

R e <br />

i = N e i (L ˜ φ e − f) dΩ i = 1, n. (2.13)<br />

Ω e<br />

În relat¸ia reziduului ponderat (2.13) se înlocuies¸te expresia elmentului e (2.10)<br />

R e <br />

i = N e i L[N e ] T dΩ [φ e <br />

] − fN e i dΩ i = 1, n. (2.14)<br />

Ω e<br />

Această relat¸ie este de forma a(u, w) = f(w) pentru orice w apartine unui spat¸iu liniar H<br />

(de tip Hilbert). Această ultimă relat¸ie se numes¸te forma slabă a ecuat¸iei s¸i este descrisă de<br />

14<br />

Ω e


2.2. Modele cu parametri distribuit¸i<br />

funct¸ionala biliniara a(u, w), simetrică s¸i pozitivă, s¸i de funct¸ionala liniara f(w). Dacă se<br />

considera spat¸iul liniar H, ca unul finit dimensional, de exemplu, cel generat de funct¸iile<br />

de bază, atunci forma slabă poate fi scrisă matriceal:<br />

[R e ] = [K e ][φ e ] − [b e ] (2.15)<br />

unde [Re ] vector n × 1, [Ke ] matrice n × n, unde Ke i,j sunt definit¸i de relat¸ia (2.16), s¸i [be ]<br />

vector n × 1, cu elemente be i definite de relat¸ia (2.17):<br />

K e <br />

i,j = N e i LN e j dΩ , (2.16)<br />

Ω e<br />

b e <br />

i =<br />

Ωe fN e i dΩ , (2.17)<br />

Matricea [K e ] poartă numele de matrice de rigiditate, datorită faptului că această metodă a<br />

fost aplicată prima dată în mecanică.<br />

Folosind valorile elementului e, se poate extinde relat¸ia (2.15) ca o sumă a tuturor<br />

elementelor<br />

R =<br />

M<br />

[R e ] =<br />

e=1<br />

M<br />

[K e ][φ e ] − [b e ] . (2.18)<br />

e=1<br />

Egalând cu zero fiecare proiect¸ie a reziduului din relat¸ia (2.18) se obt¸ine sistemul de ecuat¸ii<br />

M<br />

[K e ][φ e ] − [b e ] = [0] , (2.19)<br />

e=1<br />

care poate fi scris sub formă compactă ca<br />

[K][φ] = [b] . (2.20)<br />

Aces¸ti pas¸i, de generare a sistemului de ecuat¸ii (2.20), reprezintă etapa de preprocesare<br />

a analizei cu elemente finite. Următoarea etapă constă în rezolvarea sistemului de<br />

ecuat¸ii (2.20) folosind fie metode directe, fie metode iterative de rezolvare. Ultima etapă o<br />

reprezintă interpretarea rezultatelor, s¸i anume calcularea s¸i vizualizarea diferitelor mărimi<br />

derivate asociate problemei, această etapă fiind postprocesarea.<br />

Prezentarea metodei elementului finit, făcută anterior, are un caracter principial s¸i relativ<br />

superficial, deoarece nu tratează în detaliu problema condit¸iilor de frontieră. Pentru a<br />

lămuri acest aspect vor fi prezentate câteva exemple preluate din [32], care detaliază aplicarea<br />

metodei elementului finit. Un exemplu de analiză cu elemente finite în domeniu 2D<br />

este calculul rezistent¸ei unei plăci conductoare (Figura 2.8).<br />

În regim electrocinetic, potent¸ialul scalar satisface o ecuat¸ie Laplace generalizată, relatia<br />

(2.9) căpătând, în domeniul bidimenional S al plăcii, forma unei ecuat¸ii cu derivate<br />

part¸iale de ordinul doi, de tipul:<br />

− ∂<br />

∂x (αx<br />

∂φ ∂<br />

)<br />

∂x ∂y (αy<br />

∂φ<br />

) + βφ = f (x, y) ∈ S (2.21)<br />

∂y<br />

15


2. Stadiul actual al modelării inductoarelor spiralate integrate<br />

care poate fi rescrisă ca<br />

Figura 2.8: Placă conductoare în domeniu 2D.<br />

− ∇ · (α∇φ) + βφ = f pe S (2.22)<br />

s¸i completată cu condit¸ii pe frontieră Dirichlet (2.23) s¸i Neumann (2.24):<br />

φ = p pe L1 , (2.23)<br />

ˆn · (α∇φ) + γφ = q pe L2 . (2.24)<br />

Reziduul ponderat, ”funct¸ia de test” wi (2.13), scris pentru domeniul S, devine<br />

<br />

wi[−∇ · (α∇φ) + βφ − f]dS = 0 , (2.25)<br />

care se rescrie ca<br />

<br />

S<br />

S<br />

<br />

wi[−∇ · (α∇φ) + βφ]dS =<br />

S<br />

wifdS . (2.26)<br />

Întegrând prin părt¸i folosind identitatea lui Green, relat¸ia anterioară devine<br />

∇ · [wi(α∇φ)] = α∇wi · ∇φ + wi∇ · (α∇φ) . (2.27)<br />

Folosind teorema lui Gauss pentru domeniu 2D<br />

<br />

<br />

∇ · FdS =<br />

S<br />

L1+L2<br />

ˆn · Fdl (2.28)<br />

cu F = wiα∇φ, se obt¸ine forma slabă a ecuat¸iilor (2.22), (2.23) s¸i (2.24)<br />

<br />

<br />

<br />

(α∇wi · ∇φ + βwiφ)dS = wi(q − γφ)dl + wifdS . (2.29)<br />

S<br />

S<br />

L2<br />

16


2.2. Modele cu parametri distribuit¸i<br />

Această etapă mai poate fi numită, s¸i trecerea de la forma tare (2.22), (2.23) s¸i (2.24),<br />

la forma slabă (2.29), ecuat¸ie integral-diferent¸ială ce cont¸ine s¸i condit¸iile pe frontieră. În<br />

metoda Galerkin se aleg funct¸iile de interpolare identice cu funct¸iile de bază. Deci, folosind<br />

relat¸ia (2.10) ce descrie elementul, s¸i înlocuind wi în forma slabă se obt¸ine:<br />

<br />

(α∇N e i · ∇N e j + βN e i N e <br />

j )dS − N e i (q − γN e <br />

j )dl = N e i fdS . (2.30)<br />

S<br />

În relat¸ia 2.31, se separă cunoscutele de necunoscute<br />

<br />

(α∇N<br />

S<br />

e i · ∇N e j + βN e i N e <br />

j )dS + N<br />

L2<br />

e i γN e <br />

j dl =<br />

N e <br />

i qdl + N e i fdS ,<br />

L2<br />

L2<br />

S<br />

S<br />

(2.31)<br />

unde în membrul stâng se vede funct¸ionala biliniară, iar, în membrul drept funct¸ionala<br />

liniară. Relat¸ia (2.31), matriceal devine<br />

unde<br />

S<br />

[K e ][φ e ] = [b e ] (2.32)<br />

K e <br />

i,j = (α∇N e i · ∇N e j + βN e i N e <br />

j )dS +<br />

b e <br />

i =<br />

L2<br />

N e <br />

i qdl +<br />

L2<br />

N e i γN e j dl , (2.33)<br />

N<br />

S<br />

e i fdS . (2.34)<br />

Scriind relat¸ia (2.19), pentru toate elementele, se obt¸ine sistemul liniar Kφ = b. Indicele j<br />

parcurge toate nodurile, însă indicele i parcurge doar nodurile în care φ e i nu este cunnoscut<br />

(nodurile de pe curba L2, cele de pe curba L1 fiind cunoscute din condit¸ia Dirichlet). Deci,<br />

o parte din vectorul φ se cunoas¸te, astfel că sistemul liniar se poate rescrie<br />

[KD | Ke][φD φe] T = KDφD + Keφe = b . (2.35)<br />

KD s¸i φD sunt cunoscute, datorită condit¸iiei Dirichlet, s¸i, în consecint¸ă, sistemul de rezolvat<br />

se rescrie<br />

Keφe = b − KDφD . (2.36)<br />

Dimensiunea sistemului liniar ce trebuie rezolvat (numărul de necunoscute - grade de<br />

libertate) este egal cu numărul nodurilor interioare plus numărul nodurilor de pe frontieră<br />

Neumann. Nodurile de pe frontiera Dirichlet având potent¸ial fix, nu generează grade de<br />

libertate. În solut¸ia numerică aceste condit¸ii vor fi îndeplinite exact, în timp ce condit¸iile<br />

Neumann sunt îndeplinite aproximativ, pe cât de bine posibil.<br />

Condit¸iile de frontieră de tip Neumann intervin în ecuat¸ia rezolvată, motiv pentru care<br />

ele se numesc ”naturale”, în schimb condit¸iile Dirichlet trebuie satisfăcute de funct¸iile de<br />

forma, motiv pentru care ele se numesc ”esent¸iale”. Această separare este esent¸ială pentru<br />

17


2. Stadiul actual al modelării inductoarelor spiralate integrate<br />

Figura 2.9: Distribut¸ia potent¸ialului în placă conductoare<br />

metoda elmentului finit. În lucrarea [35], sunt date expresii ale funct¸iilor de bază pentru<br />

diferite grade ale polinoamelor de interpolare. Folosind coordonatele baricentrice, în<br />

cazul triunghiurilor s¸i tetraedrelor, contribut¸iile elementelor la matricea sistemului capătă<br />

expresii analitice compacte.<br />

Revenind la problema init¸ială, rezistent¸a plăcii conductoare, se poate calcula în etapa<br />

de postprocesare prin aproximarea potent¸ialului electrocinetic (Figura 2.9), ca solut¸ie a<br />

ecuat¸iilor (2.22)-(2.24), în care α este conductivitatea σ, β = 0, γ =0 si q = 0, în două<br />

moduri:<br />

• integrând componenta normală a densităt¸ii de curent pe o sect¸iune a plăcii, pentru a<br />

obt¸ine curentul:<br />

<br />

I = J · ndS . (2.37)<br />

S<br />

Resistent¸a se obt¸ine din legea lui Ohm R = U/I, unde U e definit ca diferent¸ă<br />

de potent¸ial între potent¸ialele plăcii conductoare (Figura 2.8, linie continuă s¸i linie<br />

întreruptă).<br />

• calculând puterea totală disipată în placă<br />

<br />

P = J · EdV, (2.38)<br />

apoi rezistent¸a se calculează ca R = U 2 /P .<br />

V<br />

Folosirea potent¸ialului scalar, reprezintă modul tipic de rezolvare a problemelor statice,<br />

însă pentru probleme de câmp, din regimurile magnetic stat¸ionar, MQS s¸i general variabil,<br />

este necesară folosirea potent¸ialului vector s¸i a ecuat¸iilor vectoriale pentru câmpuri.<br />

Modelele cu elemente nodale dau, în aceste cazuri, rezultate eronate. Cea mai bună metodă<br />

de aproximare a câmpului electromagnetic, în acest caz, foloses¸te elemente de muchie<br />

[38]. Funct¸iile de bază pentru elementele de muchie sunt construite astfel încât componenta<br />

tangent¸ială este continuă pe frontiera elementelor, în timp ce componenta normală poate<br />

avea s¸i discontinuităt¸i. Din acest punct de vedere, principala diferent¸ă între problemele<br />

18


2.2. Modele cu parametri distribuit¸i<br />

scalare s¸i cele vectoriale, constă în alegerea funct¸iei de bază (wi). Expresii ale funct¸iilor de<br />

bază vectoriale cu elemente de muchie, de diferite ordine, sunt prezentate lucrarea în [35].<br />

Un exemplu de utilizare a elementelor de muchie este rezolvarea ecuat¸iei vectoriale<br />

Helmholtz de tip rot − rot pentru E, în regim general variabil, cu variat¸ie armonică în<br />

funct¸ie de timp:<br />

∇ × (µ −1 ∇ × E) − (ω 2 ε − jωσ)E = −jωJ S pe S, (2.39)<br />

ˆn × E = P pe L1, (2.40)<br />

ˆn × (µ −1 ∇ × E) + γˆn × ˆn × E = Q pe L2, (2.41)<br />

unde relat¸ia (2.40) reprezintă o condit¸ie Dirichlet s¸i relat¸ia (2.41) o condit¸ie Robin, iar J S<br />

este sursă de curent.<br />

La fel ca în cazul problemei statice (2.22)-(2.24), folosind identitatea lui Green, se<br />

rescrie ecuat¸ia (2.39) cu ajutorul reziduului ponderat (”funt¸ia de test”) wi:<br />

∇ · [wi × (µ −1 ∇ × E)] = µ −1 (∇ × wi) · (∇ × E)<br />

−wi · ∇ × (µ −1 ∇ × E)<br />

(2.42)<br />

Termenul divergent¸ă din relat¸ia (2.42) este integrat folosind teorema lui Gauss pentru domenii<br />

2D (2.28), rezultând forma slabă:<br />

<br />

S<br />

[µ −1 (∇ × wi) · (∇ × E) − (ω 2 <br />

ε − jωσ)wi · E]dS<br />

<br />

+ wi · (Q − γˆn × ˆn × E)dl = −jω wi · J S dS .<br />

L2<br />

S<br />

(2.43)<br />

Principala diferent¸ă, fat¸ă de problema statică constă în alegerea funct¸iilor de bază, care în<br />

cazul anterior erau funct¸ii nodale, iar în acest caz, funct¸ia wi = N e i (x) este de element<br />

de muchie. Elementele de muchie vor reprezentă gradele de libertate. Solut¸ia E e (x) se<br />

dezvoltă pentru toate elementele de pe muchie (analog relat¸iei 2.10):<br />

E e =<br />

n<br />

j=1<br />

N e j E e j , (2.44)<br />

Se aplică metoda Galerkin, alegând funct¸iile de test wi(x) = N e i (x), apoi se înlocuies¸te<br />

în (2.43), s¸i, separând cunoscutele de necunoscute, se obt¸ine:<br />

<br />

+<br />

L2<br />

care matriceal poate fi scris<br />

<br />

[µ<br />

S<br />

−1 (∇ × N e i ) · (∇ × N e j ) − (ω 2 ε − jωσ)N e i · N e j ]dS<br />

γ(ˆn × N e i ) · ˆn × N e <br />

j )dl = −jω N e i · J S <br />

dS − N e i · Qdl ,<br />

S<br />

L2<br />

(2.45)<br />

[K e ][φ e ] = [b e ] . (2.46)<br />

19


2. Stadiul actual al modelării inductoarelor spiralate integrate<br />

Rezolvarea problemei se reduce la rezolvarea acestui sistem complex de ecuat¸ii algebrice<br />

liniare. Elementele matricei [Ke ] pot fi scrise sub forma<br />

K e <br />

ij = [µ<br />

S<br />

−1 (∇ × N e i ) · (∇ × N e j ) − (ω 2 ε − jωσ)N e i · N e j ]dS<br />

<br />

+ γ(ˆn × N e i ) · ˆn × N e (2.47)<br />

j )dl ,<br />

termenii liberi<br />

iar necunoscutele<br />

L2<br />

b e <br />

i = −jω N<br />

S<br />

e i · J S <br />

dS − N<br />

L2<br />

e i · Qdl , (2.48)<br />

φ e j = E e j . (2.49)<br />

Indexul j merge până la numărul total de muchii din ret¸eaua de discretizare n, iar indexul<br />

i, reprezintă elementele în care E este cunoscut, din condit¸ia Dirichlet (2.40) pe L1.<br />

Un alt exemplu este o problemă variabilă în timp pentru ecuat¸ia undei electromagnetice<br />

[32] într-o zonă fără pierderi, cu condit¸ii de frontieră nule, având ca sursă, condit¸ia init¸ială:<br />

∇ ×<br />

<br />

1<br />

µ ∇ × E<br />

<br />

+ ε ∂2E = 0<br />

∂t2 pe S, (2.50)<br />

ˆn × E = 0 pe L1, (2.51)<br />

E(r, t = 0) = E0(r) pe S, (2.52)<br />

∂E(r, t)<br />

|t=0 = 0<br />

∂t<br />

pe S. (2.53)<br />

Pe lângă condit¸ia pe frontieră (2.51), apar s¸i condit¸iile init¸iale (2.52) s¸i (2.53), deoarece<br />

avem o ecuat¸ie de ordinul doi variabilă în timp (2.50). Câmpul electric se dezvoltă în<br />

elementele de muchie. Discretizarea trebuie făcută s¸i în timp, spre deosebire de cazul<br />

anterior, în care ea s-a facut doar în spat¸iu. Sistemul rezultat este un sistem cu ecuat¸ii<br />

diferent¸iale ordinare (O<strong>DE</strong>):<br />

Sφ(t) + c −2<br />

0 M ∂2 φ(t)<br />

∂t<br />

= 0, (2.54)<br />

unde S este matricea de rigiditate, iar M matricea de masă. Pentru a rezova acest sistem<br />

pot fi folosite diferent¸e finite centrate:<br />

M(φ n+1 − 2φ n + φ n−1 ) = −(c0∆t) 2 Sφ n<br />

(2.55)<br />

s¸i trebuie specificate condit¸iile init¸iale φ 1 s¸i φ 2 , însă principalul dezavantaj al acestei metode<br />

este acela că la fiecare pas de timp trebuie calculată inversa matricei M (2.56), operat¸ie ce<br />

poate fi costisitoare atât din punct de vedere al timpului, cât s¸i din punct de vedere al<br />

resurselor sistemului de calcul:<br />

φ n+1 = 2φ n − φ n−1 − (c0∆t) 2 M −1 Sφ n . (2.56)<br />

20


2.2. Modele cu parametri distribuit¸i<br />

În concluzie, indiferent de tipul aplicat¸iei, analiza cu elemente finite conduce la rezolvarea<br />

unui sistem liniar care, de regulă, are matricea rară, simetrică s¸i pozitiv definită, bine<br />

condit¸ionată, ceea ce garantează o rezolvare ce implică un consum mai redus de resurse de<br />

calcul.<br />

O altă metodă de discretizare a ecuat¸iilor lui Maxwell, este metoda momentelor (MoM)<br />

[39], cunoscută s¸i ca metoda elementului de frontieră (BEM). Din punct de vedere al memoriei<br />

s¸i efortului de calcul, metoda momentelor este mai eficientă decât metoda elementului<br />

finit, deoarece implică calculul valorilor, doar pentru elementele aflate pe frontiera<br />

domeniului de calcul s¸i pe interfet¸ele dintre subdomeniile omogene.<br />

Făcând o analogie cu metoda elementului finit, rezolvarea unei probleme de electromagnetism<br />

cu metoda momentelor, implică aproape aceeas¸i secvent¸ă de pas¸i. Se consideră<br />

ecuat¸ia în domeniul Ω:<br />

Lφ = f , (2.57)<br />

unde L este un operator, de această dată, integral, f este sursa câmpului s¸i φ câmpul necunoscut.<br />

Aceasta este deosebirea fundamentală între cele două metode. Dacă în FEM<br />

se pornes¸te de la ecuat¸iile diferent¸iale, care se reformulează în forma slabă, în BEM se<br />

folosesc ecuat¸iile integrale ale câmpului electromagnetic. Aceste ecuat¸ii se scriu folosind<br />

funct¸ia Green a domeniului de calcul, pentru un operator specific problemei. Această etapă<br />

presupune, deci, inversarea operatorului difernt¸ial. Solut¸ia φ problemei (2.57) se dezvoltă<br />

ca în metoda elementului finit:<br />

φ =<br />

n<br />

cjvj , (2.58)<br />

j=1<br />

unde cj coeficient¸i necunoscut¸i, iar vj funct¸ii de bază. Înlocuind (2.58) în (2.57), se obt¸ine:<br />

n<br />

cjLvj = f . (2.59)<br />

j=1<br />

Pentru a determina necunoscutele cj, se alege, ca solut¸ie a unui sistem matriceal, un set de<br />

funct¸ii de test (pondere) wi. Considerând produsul scalar al relat¸iei (2.59) cu wi, rezultă<br />

n<br />

cj〈wi, Lvj〉 = f i = 1, m . (2.60)<br />

j=1<br />

Cele mai folosite funct¸ii de test, pentru metoda momentelor, sunt:<br />

• funct¸ia Dirac<br />

wi(x) = δ(x − xi) , (2.61)<br />

cu xi reprezentând un set de puncte în domeniul solut¸iei. Relat¸ia (2.61) reprezintă<br />

satisfacerea ecuat¸iei integrale pe un anumit set de puncte. Formularea este cunoscută<br />

sub numele de ”potrivirea punctului”.<br />

21


2. Stadiul actual al modelării inductoarelor spiralate integrate<br />

• funct¸ia<br />

wi(x) =<br />

1 x în Ωi<br />

0 în afară<br />

(2.62)<br />

unde Ωi subdomeniul i. Relat¸ia (2.62) reprezintă satisfacerea ecuat¸iei integrale pe<br />

fiecare subdomeniu. Formularea este cunoscută sub numele de ”colocarea subdomeniului”.<br />

• funct¸ia de test aceeas¸i cu funct¸ia de bază<br />

cunsocută sub numele de formularea Galerkin.<br />

• funct¸ie de test Lvi<br />

cunoscută ca formularea celor mai mici pătrate.<br />

wi(x) = vi(x) , (2.63)<br />

wi(x) = Lvi(x) , (2.64)<br />

Folosind funct¸iile de test se trece la forma matriceală a relat¸iei (2.60):<br />

unde S matricea sistemului cu elemente<br />

b coloana termenilor liberi cu elemente<br />

[S][c] = [b] , (2.65)<br />

Sij = 〈wi, Lvj〉 , (2.66)<br />

bi = 〈wi, f〉 , (2.67)<br />

iar c vectorul necunoscutelor.<br />

Pentru a arăta modul de implementare al metodei MoM, se va prezenta un exemplu de<br />

calcul al potent¸ialului electric, preluat din [32].<br />

În electrostatică, potent¸ialul electrostatic φ este determinat în vid de densitatea de sarcina<br />

ρ, care este sursă de câmp electric, conform ecuat¸iei lui Poisson:<br />

∇ 2 φ = − ρ<br />

ε0<br />

(2.68)<br />

această fiind forma difierent¸ială de ordinul doi, a ecut¸iei fundamentale a electrostaticii.<br />

q<br />

Solut¸ia ecuat¸iei Poisson este superpozit¸ia contribut¸iilor φ = 4πε0|x−x ′ , sarcinilor elemen-<br />

|<br />

tare q = ρvdV în x ′ :<br />

<br />

φ(x) =<br />

V<br />

ρ(x ′ )dV ′<br />

4πε0|x − x ′ . (2.69)<br />

|<br />

expresie numită integrala coulombiană a potent¸ialului. Potent¸ialul produs de o sarcină<br />

punctiformă este chiar funct¸ia Green.<br />

22


2.2. Modele cu parametri distribuit¸i<br />

Dacă potent¸ialul φ este cunoscut, relat¸ia (2.69) poate fi privită ca o ecuat¸ie integrală<br />

de variabilă ρ. Această formulare integrală este potrivită pentru probleme de calcul de<br />

capacităt¸i, unde potent¸ialul este cunoscut pe frontierele conductoare, iar sarcina există doar<br />

pe aceste frontiere s¸i distribut¸ia sa este necunoscută. Potent¸ialul, notat cu φS, va avea,<br />

valori egale cu 0 pe o armatura conductoare s¸i valori egale cu 1 pe cealaltă. Ca alternativă<br />

la rezolvarea ecuat¸iei Laplace, pentru potent¸ialul în vid, se poate calcula densitatea de<br />

sarcină ρS pe S, rezolvând ecuat¸ia integrală<br />

<br />

S<br />

ρs(x ′ )<br />

4πε0|x − x ′ | dS′ = φS(x) . (2.70)<br />

Pentru un condesator 2D, integrala pe suprafat¸ă se reduce la o integrală pe linie s¸i se<br />

foloses¸te, ca pondere, potent¸ialul logaritmic, care are expresia potentialului coulombian,<br />

din problemele plan-paralele, produs de o sarcină distribuită lineic:<br />

− 1<br />

2πε0<br />

<br />

ρl(x<br />

S<br />

′ )ln|x − x ′ |dl ′ = φS(x) . (2.71)<br />

În electrostatică, funct¸ia Green G(x, x ′ ) reprezintă potent¸ialul electric în punctul x produs<br />

de o sarcină din punctul x ′ . Într-un domeniu 3D, ea este<br />

G(x, x ′ ) = 1<br />

|x − x<br />

4πε0<br />

′ | . (2.72)<br />

Aplicând principiul superpozit¸iei, se obt¸ine solut¸ia, în formă integrală, a ecuat¸iei (2.57),<br />

pentru domeniu 3D<br />

<br />

φ(x) = G(x, x ′ )ρs(x ′ )dV ′ . (2.73)<br />

În general, problema diferent¸ială (2.57) se poate rescrie în formă integrală ca<br />

<br />

φ(x) =<br />

G(x, x ′ )f(x ′ )dV ′ . (2.74)<br />

După aplicarea algoritmului metodei momentelor, sistemul Sc = b, ce caracterizează<br />

această problemă, va avea elemente de forma<br />

<br />

<br />

Sij = wi(x)φk(x)dS = wi(x)G(x, x ′ )f(x ′ )dS dS ′ ,<br />

<br />

(2.75)<br />

bi = wi(x) ¯ (φ)(x)dS , (2.76)<br />

unde ¯ φ(x) este cunoscut, el fiind potent¸ialul pe suprafet¸ele conductoare.<br />

În concluzie, algoritmul MoM discretizează nu forma slabă a ecuat¸iilor diferent¸iale,<br />

cum se întâmplă în cazul FEM, ci ecuat¸iile integrale ale câmpului. Aceasta este s¸i principala<br />

sa dificultate, deoarece, pentru obt¸inerea ecuat¸iilor integrale, este necesară cunoas¸terea<br />

funct¸iei Green a operatorului problemei rezolvate. Un alt dezavantaj, este acela că matricea<br />

sistemului liniar, rezultat în urmă aplicării MoM, este densă (plină), ceea ce implică<br />

un necesar mai mare de memorie, spre deosebire de FEM, la care matricea este rară, dar<br />

23


2. Stadiul actual al modelării inductoarelor spiralate integrate<br />

de dimensiuni mai mari. De asemenea, s¸i rezolvarea sistemului dens necesită o cantitate<br />

de memorie mai mare decât rezolvarea unui sistem cu matrice rare. Mai mult, matricea<br />

sistemului nu este nici măcar garantat simetrică, în toate cazurile. Pentru a reduce atât consumul<br />

de resurse, cât s¸i timpul de rezolvare s-au dezovltat metode rapide de rezolvare: FFT<br />

sau FMM, ambele folosite ca metode iterative de rezolvare.<br />

Metoda diferent¸elor finite, cu varianta ei diferent¸e finite în domeniul timpului (FDTD),<br />

este o metodă numerică de rezolvare a ecuat¸iilor câmpului bazată pe discretizarea ecuat¸iilor<br />

cu derivate part¸iale prin diferent¸e finite. Restrict¸ia fundamentală a acestei metode constă în<br />

faptul că solut¸ia este calculată într-o ret¸ea de discretizare structurată, obt¸inută prin produsul<br />

cartezian al unor ret¸ele unidimensionale după directiile x, y s¸i z. O restrict¸ie asemănătoare<br />

este impusă s¸i de metoda Integrătilor Finite (FIT), care poate fi aplicată atât în domeniul<br />

timpului (FIT-TD), cât s¸i în cel al frecvent¸ei (FIT-FD). Principiul acestei metode va fi prezentat<br />

în capitolul următor.<br />

Ca s¸i concluzie generală, indiferent de metoda numerică folosită pentru discretizarea<br />

ecuat¸iilor lui Maxwell (MoM [39], FDTD [40], FEM [41], FIT [42]), problema se va reduce,<br />

tot timpul, la rezolvarea unui sistem liniar. De aceea, tipul matricei sistemului (rară,<br />

plină, simetrică, nesimetrică, complexă, reală, pozitiv definită, diagonal dominantă, etc),<br />

rezultată în urma aplicării metodei numerice, este foarte important în alegerea unei metode<br />

”adecvate” de rezolvare, directă sau iterativă.<br />

Modelarea efectelor inductive reprezintă un aspect important al obt¸inerii modelului<br />

de ordin redus, sub forma unui circuit cu parametri concentrat¸i, pentru un dispozitiv de circuit<br />

integrat. Istoric, prima metoda de modelare inductivă a fost propusa de Ruehli, care a<br />

introdus prin metoda PEEC [43] [44], conceptul de inductivitate part¸ială pentru modelarea<br />

3D a dispozitivelor din circuitele integrate. Această metodă: discretizează conductoarele în<br />

segmente elementare (de formă paralelipipedică) s¸i forma integrală a ecuat¸iilor câmpului,<br />

evaluează elementele part¸iale de circuit ce descriu cuplajele electrice s¸i magnetice s¸i asamblează<br />

sistemul provenit din ecuact¸iile Kirchhoff pentru curent¸i s¸i tensiuni. Modelul rezultat<br />

este descris de matrice pline ce cont¸in inductivităt¸ile part¸iale, proprii s¸i mutuale.<br />

Principalele dezavantaje ale acestei metode sunt matricele pline (a căror aproximare rară<br />

nu este pasivă, deci nici stabilă), s¸i inductivitatea part¸ială care este doar o mărime de calcul,<br />

nu s¸i o mărime fizică riguros definită, care să poată fi măsurată pentru o comparat¸ie cu date<br />

experimentale.<br />

FastHenry [45] este o tehnică de accelerare a extragerii matricei inductant¸elor part¸iale<br />

din PEEC, bazată pe dezvoltarea în multipoli, care s-a dovedit foarte eficientă în cazurile<br />

practice.<br />

În lucrarea [46] este introdus modelul K, model caracterizat de matricea K a reluctantelor<br />

magnetice (numită gres¸it s¸i a susceptant¸elor), definită ca inversa matrice inductivităt¸ilor<br />

part¸iale H = L −1 . În lucrarea [47], acest subiect a fost reluat s¸i s-a demonstrat că<br />

matricea K poate fi aproximată robust (fără pierderea pasivităt¸ii) cu o matrice rară s¸i că ea<br />

este matrice simetrică de tip M (cu termenii nediagonali negativi s¸i cu cei diagonali pozitivi<br />

s¸i dominant¸i) s¸i în consecint¸ă ea este diagonal dominantă. Principalul dezavantaj este că<br />

matricele K nu pot fi direct simulate în SPICE. Lucrarea [48] demonstrează instabilitatea<br />

numerică a metodei K propuse în lucrările citate anterior (instabilitatea provine din anularea<br />

unor termeni negativi de pe diagonală care face ca matricea K să fie pozitiv definită) s¸i<br />

propune un nou algoritm care are la bază tot metoda K, prin care se obt¸in matrice K rare,<br />

24


2.2. Modele cu parametri distribuit¸i<br />

dar care în acelas¸i timp păstrează s¸i stabilitatea numerică.<br />

Init¸ial metoda VPEC este propusă în lucrarea [49] pentru a două conductoare, însă<br />

Hao Yu preia acest subiect s¸i propune o metodă VPEC [50], metodă care are la bază tot<br />

varianta K a metodei PEEC, pentru N conductoare. Această metodă exprimă parametrii<br />

K folosind potent¸ialul magnetic vector s¸i înlocuiet¸e inductant¸ele cu reluctant¸e magnetice.<br />

În final, modelul obt¸inut este caracterizat de matrice rare s¸i permite simularea în SPICE.<br />

Practic se pornes¸te de la modelul PEEC, se calculează inversa matricei L, se obt¸ine modelul<br />

cu matrice pline VPEC, se generează modelul VPEC cu matrice rare, pentru ca în final să<br />

se facă simularea în SPICE.<br />

În concluzie, metoda PEEC are ca principale dezavantaje folosirea inductivităt¸ii part¸iale,<br />

discretizarea conductorului s¸i cunoas¸terea funct¸iei Green (vezi prezentarea MoM), în timp<br />

ce metoda VPEC are ca principal dezavantaj calculul inversei matricei inductivităt¸ilor<br />

part¸iale L −1 .<br />

Metoda circuitelor echivalente Magneto-Electrice (MEEC) [51] [52] reprezintă o alternativă<br />

ce evită dezavantajele metodelor PEEC s¸i VPEC. Această metodă foloses¸te conceptul<br />

de element electromagnetic de circuit [53] s¸i tehnica de descompunere în subdomenii<br />

[54]. În cazul tipic al unui inductor integrat (Figura 3.1), domeniul de calcul este alcătuit<br />

din trei subdomenii care conform metodei MEEC pot fi simulate în regimuri diferite (stratul<br />

de oxid de siliciu în FW, EQS+MS pentru stratul de siliciu s¸i ES+MS pentru stratul de<br />

aer). Avantajele acestei metode sunt: conceptul de inductivitate part¸ială este eliminat, conductorul<br />

nu este discretizat în segmente (de fapt el este discretizat într-un sistem de bucle<br />

fundamentale, fiecare dintre acestea satisfăcând conservarea curentului), nu este necesară<br />

calcularea inversei matricei inductivităt¸ilor, scrierea cu matrice rare este robustă, permite<br />

folosirea calculului paralel pentru descompunerea în subdomenii s¸i permite simularea directă<br />

în SPICE. Prin folosirea discretizării în bucle, complexitatea problemei este redusă s¸i<br />

este mics¸orat corespunzător atât efortul de calcul cât s¸i necesarul de memorie.<br />

De cele mai multe ori, metodele de discretizare numerică s¸i de modelare prezentate mai<br />

sus se găsesc în programe comerciale sau open-source, care cont¸in la rândul lor metode de<br />

rezolvare corespunzătoare sistemelor liniare de rezolvat, generate în urma dicretizării. În<br />

continuare se vor prezenta pe scurt câteva din cele mai importante programe de modelare<br />

pentru inductoarele integrate, evident¸iind folosirea sistemelor multiprocesor.<br />

ANSYS HFSS<br />

ANSYS HFSS (High Frequency Structural Simulator) [55] este un program al firmei americane<br />

Agilent, ce foloses¸te pentru simularea câmpului electromagnetic în domeniu 3D,<br />

special conceput pentru modelarea componentelor din circuitele integrate (Figura 2.10<br />

[56]). Programul cont¸ine o suită de metode de rezolvare, proprii, pentru rezolvarea sistemelor<br />

liniare rezultate în urma discretizării ecuat¸iilor lui Maxwell cu metoda elementelor<br />

finite, metode de rezolvare ce pot fi selectate manual în funct¸ie de tipul de simulare executat.<br />

HFSS a fost dezvoltat sub îndurmarea profesorului Zoltan Cendes în Universitatea<br />

Carnegie Mellon în colaborare cu firma ANOSOFT, însă, ulterior, a fost vândut, în final<br />

ajugând sub tutela companiei ANSYS.<br />

Date de intrare: geometria poate fi importată prin programul AnsoftLinks dintr-un<br />

fis¸ier schemă (layout file generat cu Cadence, Mentor Graphics, Synopsys, Zuken, Altium<br />

- AnsoftLinks for ECAD [57]) sau dintr-un fis¸ier CAD (generat cu ProE, STEP, IGES -<br />

25


2. Stadiul actual al modelării inductoarelor spiralate integrate<br />

Figura 2.10: Captură din ANSYS HFSS.<br />

AnsoftLinks for MCAD [58]). Ret¸eaua de discretizare este generat în mod automat, având<br />

s¸i posibilitatea de a-l specifica manual.<br />

Date de ies¸ire: în afara vizualizării câmpului electromagnetic, se mai pot extrage două<br />

tipuri de date:<br />

• sub forma unor fis¸iere ce cont¸in funct¸ii de circuit s¸i parametri de împăs¸tiere (S, Y ,<br />

Z);<br />

• sub formă unui fis¸ier ce cont¸ine descrierea, în limbaj SPICE, a circuitului echivalent<br />

pentru dispozit modelat.<br />

HFSS poate accelera modelarea, obt¸inând timpi de execut¸ie mai mici, prin folosirea<br />

calculului de înaltă performant¸ă (HPC) astfel:<br />

• pe sisteme cu unul sau mai multe procesoare multicore, programul dispune de multiprocesare<br />

(MP - multiprocessing), aceasta constând în apelarea operat¸iilor de algebră<br />

liniară paralele, în procesul de factorizare, discretizare sau de calcul al câmpului;<br />

• pe sisteme tip cluster, programul dispune de următoarele tehnici:<br />

– descompunerea domeniului (DDM - domain decomposition method) îmaparte<br />

o problemă mare ce nu poate încapea în memoria unui singur sistem de calcul,<br />

accesând memoria fiecărui nod din cluster ca o memorie globală (memorie<br />

comună distribuită - distributed shared memory - subcapitolul 4.1). Această<br />

metodă poate fi privită mai mult ca o metodă de abordare a problemelor foarte<br />

mari, s¸i mai put¸in ca o metodă de accelerare;<br />

– descompunerea spectrală (SDM - spectral decomposition method) distribuie<br />

subseturi din seria de frecvent¸e, fiecare nod din cluster rezolvând sistemul liniar<br />

doar pentru subsetul primit. În funct¸ie de numărul de frecvent¸e, dar s¸i<br />

de configurat¸ia hardware a nodurilor clusterului, timpul de simulare se reduce<br />

foarte mult;<br />

26


SONNET<br />

2.2. Modele cu parametri distribuit¸i<br />

– metoda de rezolvare distribuită (DSO - distributed solve option) constă în împărt¸irea<br />

sarcinii de rezolvare în sarcini indepente (împărt¸irea pe subdomenii a problemei),<br />

mai mici, ce pot fi executate în paralel pe noduri diferite. Această metodă<br />

poate fi folosită în combinat¸ie cu medoda DDM.<br />

Figura 2.11: Captură din SONNET.<br />

SONNET [59] este un program de modelare electromagnetică, ce îs¸i propune să răspundă<br />

cerint¸elor ridicate de simularea componentelor din circuitele integrate de înaltă frecvent¸ă<br />

(Figura 2.11 [60]). Teoria de la baza acestui program [61] constă în rezolvarea ecuat¸iilor<br />

lui Maxwell cu ajutorul metodei momentelor.<br />

Date de intrare: geometria poate fi desenată în mediul grafic oferit de SONNET, însă,<br />

geometriile pot fi importate din fis¸iere în format .DXF [62] sau .GDSII [63], precum s¸i<br />

formatul Gerber [64]. Ret¸eaua de discretizare se generează automat, având s¸i posibilitatea<br />

de a-l specifica s¸i manual.<br />

Date de ies¸ire: se pot vizualiza răspunsul, câmpul electromagnetic, densitatea de curent,<br />

dar se poate extrage s¸i circuitul echivalent SPICE al dispozitivului modelat. În plus,<br />

aceste date se pot exporta în fis¸iere compatibile cu CA<strong>DE</strong>NCE, SPECTRE etc.<br />

Din punct de vedere al folosirii resurselor hardware, SONNET foloses¸te procesarea pe<br />

64 de bit¸i. Din punct de vedere al calculului de înaltă performant¸ă (HPC), SONNET poate<br />

exploata arhitectura sistemelor multiprocesor astfel:<br />

• pe sisteme cu unul sau mai multe procesoare multicore, programul perimte procesarea<br />

paralelă pentru a rezolva părt¸i individuale ale matrice momentelor (solver distribuit),<br />

la fiecare frecvent¸ă. Folosind instrumentul SONNET Desktop Solver (DST) se<br />

pot folosi până la maxim 3 core-uri, în timp ce instrumentul SONNET High Performance<br />

Solver (HPS) poate folosi până la 12 core-uri.<br />

27


2. Stadiul actual al modelării inductoarelor spiralate integrate<br />

• pe sisteme de tip cluster se poate folosi Sonnet emCluster. Cu ajutorul acestui instrument,<br />

fiecare nod al clusterului va rezolva simultan o serie de sisteme liniare,<br />

corespunzătoare unui subset de frecvent¸e din banda de frecvent¸ă setată pentru simulare.<br />

Programul ce administrează transferul de date în cluster se numes¸te Sonnet<br />

Networking, însă se poate folosi s¸i unul extern Platform LSF [65].<br />

Momentum<br />

Advanced Design System (ADS) [66], de la Agilent, este un program de proiectare s¸i simulare<br />

a circuitelor electronice pentru aplicat¸ii de înaltă frevent¸ă, cu microunde s¸i digitale de<br />

mare viteză. Momentum 3D Planar EM Simulator [67] reprezintă o extensie a programului<br />

ADS, extensie cu ajutorul căreia se pot modela componentele pasive din circuitele<br />

integrate, printre care s¸i inductoare spiralate (Figura 2.12 [68]). Programul foloses¸te metoda<br />

momentelor, pentru a discretiza ecuat¸iile lui Maxwell, în acest fel, obt¸inându-se un<br />

model ce include efectele câmpului magnetic.<br />

Figura 2.12: Captură din ADS-Momentum.<br />

Date de intrare: geometria poate fi desenată sau importată (fis¸iere ODB++ [69][70],<br />

Gerber, .GDSII) în interfat¸a grafică a programului ADS. Ret¸eaua de discretizare este generat<br />

automat, dar poate fi specificat s¸i manual.<br />

Date de ies¸ire: se pot vizualiza parametri de împrăs¸tiere S. În plus, după ce componenta<br />

a fost simulată, ea poate fi salvată s¸i utilizată în circuitele simulate cu ADS.<br />

Pentru sistemele cu unul sau mai multe procesoare, metodele de rezolvare folosesc<br />

procesarea pe 64 bit¸i s¸i procesarea paralelă pentru operat¸iile de algebră liniară. În ceea ce<br />

prives¸te sistemele tip cluster, instrumentul Momentum Turbo Element distribuie un subset<br />

de frecvent¸e, fiecare nod rezolvând simultan sistemul liniar pentru subsetul de frecvent¸e<br />

primit. Managerul ce se ocupă de distribut¸ia sarcinilor (în acest caz a frecvent¸elor), în<br />

cluster, este un instrument adit¸ional Platform LSF sau SunGrid.<br />

ASITIC<br />

ASITIC(Analysis and Simulation of Spiral Inductors and Transformers for ICs) [71] [72]<br />

este un program CAD folosit pentru optimizarea s¸i modelarea componentelor pasive din<br />

28


2.2. Modele cu parametri distribuit¸i<br />

circuitele integrate de înaltă frecvent¸ă: inductoare spiralate (Figura 2.13 [73]), transformatoare,<br />

condensatoare. În procesul de modelare sunt incluse efecte ale câmpului electromagnetic:<br />

pierderi s¸i cuplaje inductive, pierderi prin curent¸i turbionari, efectul pelicular, efectul<br />

de proximitate. Programul, dezvoltat de Ali M. Nicknejad, de la Universitatea Berckley,<br />

poate rula pe toate platformele existente (Linux, Windows, SunOS) s¸i este legat de câteva<br />

biblioteci externe: operat¸ii de algebra liniară BLAS [74] s¸i LAPACK [75], Fastest FFT in<br />

the West FFTW [76] s¸i pachetul de integrare numerică QUADPACK [77].<br />

Figura 2.13: Captură din ASITIC.<br />

Date de intrare: geometria dispozitivului de modelat, folosind comenzi specifice ASI-<br />

TIC, s¸i, opt¸ional, se poate specifica fis¸ierul tehnologic de fabricat¸ie, fis¸ier ce descrie dispunerea<br />

straturilor dispozitivului.<br />

Date de ies¸ire: datele de ies¸ire pot fi de trei tipuri:<br />

• date rezultate în urma analizei: factorul de calitate Q al inductorului spiralat, vizualizarea<br />

grafică a curetului în inductor, frevent¸a de rezonant¸ă a inductorului, parametrii<br />

admitant¸ă Y s¸i impedant¸ă Z, pentru un dispozitiv cu două porturi, calculat¸i la o<br />

frecvent¸ă sau pentru o serie de frecvent¸e;<br />

• date rezultate în urma optimizării: geometria optimă a inductorului spiralat cu sau<br />

fără constrângeri;<br />

• date de export: geometria inductorului modelat în format CIF sau format Sonet.<br />

Programul ASITIC foloses¸te formularea PEEC pentru a asambla sistemul liniar echivalent<br />

ecuat¸iilor lui Maxwell [78]. Pentru sisteme mici, se foloses¸te metoda directă de<br />

rezolvare, eliminarea lui Gauss, însă pentru sisteme mari, autorul recomandă folosirea metodelor<br />

iterative de rezolvare. Din punct de vedere al calculului de înaltă performant¸ă<br />

(HPC), programul ASITIC foloses¸te biblioteca LAPACK ca instrument paralel de calcul,<br />

pentru a executa operat¸ii de algebră liniară.<br />

29


2. Stadiul actual al modelării inductoarelor spiralate integrate<br />

COMSOL<br />

COMSOL Multiphysics [79] este un program de modelare aplicabil în mai multe domenii<br />

ale ingineriei, în particular, s¸i pentru modelarea electromagnetică, având la bază metoda<br />

elementului finit.<br />

Figura 2.14: Captură din COMSOL.<br />

Date de intrare: geometria dispozitivului poate fi desenată, cu un editor grafic încorporat,<br />

dar, poate fi s¸i importată din diferite formate. Tot ca date de intrare pot fi considerate toate<br />

etapele preprocesării, repsectiv ret¸eaua de discretizare, stabilirea regimului câmpului, sursele<br />

acestuia, valoarea constantelor de material, condit¸iile de frontieră s¸i alegerea ordinului<br />

elementelor finite.<br />

Date de ies¸ire: datele de ies¸ire se obt¸in în etapa de postprocesare a metodei elementului<br />

finit, în care se pot calcula s¸i afis¸a, grafic s¸i numeric, diferite mărimi derivate, asociate<br />

problemei analizate (Figure 2.14 [80]).<br />

Programul COMSOL dispune de o bogată bibliotecă de metode de rezolvare atât directe,<br />

cât s¸i iterative. Pentru utilizarea tehnicilor de calcul paralel [81], programul are nevoie<br />

de o licent¸ă suplimentară Floating Network Licenses. Calculul paralel este folosit în<br />

cazul solverului paralel PARDISO (solver direct), iar calculul distribuit în cazul solverului<br />

distribuit MUMPS (solver direct).<br />

Chamy<br />

Chamy este un program de modelare electromagnetică a componentelor pasive din circuitele<br />

integrate de înaltă frecvent¸ă s¸i extragerea modelelor parametrice de ordin redus<br />

corespunzătoare. El este dezvoltat în cadrul Laboratorului de Metode numerice din UPB,<br />

în cadrul mai multor programe europene [82][83][84][85][86].<br />

Pentru discretizarea ecuat¸iilor lui Maxwell s¸i obt¸inerea sistemului matriceal, este folosită<br />

metoda numerică FIT [42][87][88]. Extragerea modelului de ordin redus, folosind<br />

sistemul matriceal rezultat, se face cu ajutorul algoritmului AFS-VF, un algoritm ce reduce<br />

30


2.3. Concluzii<br />

la minimum efortul de calcul. Caracteristica definitorie a acestui program este că admite<br />

condit¸ii de frontiera de tip EMCE, care permit cuplarea dispozitivului analizat cu circuite<br />

electrice s¸i magnetice exterioare. Ideea s¸i teoriile folosite de acest program vor fi dezvoltate<br />

în capitolul următor.<br />

Date de intrare: geometria dispozitivului se defines¸te într-un limbaj specific programului.<br />

Ret¸eaua de discretizare poate fi generat automat, sau poate fi specificat manual. De<br />

asemenea, există posibilitatea de a crea o ret¸ea adaptivă, mai dens în zonele de interes.<br />

Date de ies¸ire: parametri de împrăs¸tiere (S, Y , Z) se pot vizuliza, dar se pot salva în<br />

format Touchstone, cunoscut s¸i ca formatul SnP. De asemenea, programul generează un<br />

fis¸ier ce cont¸ine circuitul echivalent SPICE al dispozitivului analizat.<br />

Pentru sistemele cu unul sau mai multe procesoare, metoda de rezolvare (UMFPack<br />

[89] foloses¸te procesarea paralelă apelând operat¸ii de algebră liniară paralele, din biblioteca<br />

LAPACK.<br />

Implementarea unui mod de rezolvare, ce foloses¸te procesarea paralelă s¸i distribuită s¸i<br />

exploatează eficient un sistem multiprocesor tip cluster a fost una din sarcinile autorului s¸i<br />

reprezintă subiectul central al acestei teze de doctorat.<br />

2.3 Concluzii<br />

Acest capitol a prezentat stadiul actual atât al metodelor de modelare, cât s¸i celor mai<br />

importante programe de modelare existente. Prima parte a acestui capitol a prezentat metoda<br />

de modelare cu parametri concentrat¸i, concluzionân că ipotezele simplificatoare ale<br />

acestei teorii sunt prea restrictive pentru modelarea componentelor din circuitele integrate<br />

de înaltă frecvent¸ă, implicit s¸i a inductoarelor spiralate. S-a stabilit că pentru inductoarele<br />

spiralate, cea mai bună metodă de modelare, este metoda ce foloses¸te modele cu parametri<br />

distribuit¸i. În acest sens au fost prezentate principalele metode de discretizare a ecuat¸iilor<br />

lui Maxwell.<br />

Partea finală a acestui capitol a prezentat câteva din programele de modelare electromagnetică,<br />

programe ce urmăresc fluxul de proiectare EDA (design flow EDA). As¸a cum<br />

s-a putut observa majoritatea programelor existente folosesc tehnici de calul paralel s¸i distribuit<br />

pe diferite sisteme multiprocesor. Majoritatea programelor prezentate, au raportat<br />

un timp de 6 ori mai mic la rularea pe un cluster cu 8 noduri, decât la rularea pe un singur<br />

nod.<br />

Prin prezentarea caracteristicilor de multiprocesare a programelor de modelare electromagnetică,<br />

se demonstrează încă o dată că tema acestei teze este de actualitate s¸i prezintă<br />

un interes ridicat din partea cercetătorilor.<br />

31


Această pagină este lăsată goală în mod intent¸ionat.


Modelarea inductoarelor spiralate integrate<br />

CAPITOLUL 3<br />

Modelarea electromagnetică a componentelor pasive din circuitele integrate de înaltă<br />

frecvent¸ă, presupune extragerea unui circuit electric liniar cu parametri concentrat¸i (alcătuit<br />

din elementele ideale R, L, C, surse comandate liniar, cu parametri independent¸i de frecvent¸ă),<br />

care să aibă o comportare pe la borne cât mai apropiată de comportamentul componentei<br />

reale. Pentru a realiza acest lucru, este necesară modelarea aproximativă a tuturor efectelor<br />

câmpului electromagnetic de înaltă frecvent¸ă, cum sunt: efectul pelicular, curent¸ii turbionari,<br />

întarzierea prin propagare, etc. Acest lucru necesită rezolvarea numerică ecuat¸iilor<br />

lui Maxwell care descriu toate aceste efecte ale câmpului elctromagnetic. Prin modelare<br />

nu se urmăres¸te doar obt¸inerea solut¸iei numerice, ci extragerea modelului de ordin redus.<br />

În cazul de fat¸ă nu are relevant¸ă variat¸ia sptială a solut¸iei, ci doar comportarea sistemului<br />

pe la bornele sale. Pentru a atinge acest obiectiv, sunt parcurse mai multe etape ale modelării<br />

electromagnetice [90]: modelarea fizică, matematică, analitcă, numerică, iar în final<br />

reducerea ordinului [91]. Tehnologia de extragerea modelelor electromagnetice de ordin<br />

redus folosită în prezenta teză, a fost dezvoltat pe parcursul mai multor ani în Laboratorul<br />

de Metode Numerice (LMN) din UPB, de colective internat¸ionale conduse de prof. Daniel<br />

Ioan [52] [92] [93] [94] [95] [96] [97] [54] [98] [99].<br />

3.1 Modelarea fizică<br />

Modelele descrise de ecuat¸iile lui Maxwell, în formă generală, pot fi foarte complexe<br />

pentru probleme care nu necesită tratarea tuturor aspectelor câmpului electromagnetic<br />

(ecuat¸iile în formă generală cont¸in s¸i aspecte mecanice [90], aspecte ce nu interesează<br />

pentru modelarea bobinelor integrate), astfel încât pentru o modelare eficientă se adoptă<br />

ipoteze simplificatoare. Aplicărea acestor ipoteze înseamnă stabilirea regimurilor câmpului<br />

electromagnetic. Regimurile ce interesează din punct de vedere al modelării inductoarelor<br />

spiralate considerând medii liniare din punct de vedere dielectric magnetic s¸i conductiv,<br />

sunt descrise în cele ce urmează.<br />

33


3. Modelarea inductoarelor spiralate integrate<br />

Regimul general variabil (FW sau ED)<br />

Regimul general variabil al câmpului electromagnetic este descris de ecuat¸iile lui Maxwell<br />

pentru medii imobile (v = 0), astfel fiind considerat¸i atât curent¸ii de deplasare, cât s¸i<br />

fenomenul de indut¸ie electromagnetică:<br />

rotE = − ∂B<br />

∂t<br />

(3.1)<br />

rotH = J + ∂D<br />

∂t<br />

(3.2)<br />

divD = ρ (3.3)<br />

divB = 0 (3.4)<br />

B = µH (3.5)<br />

D = εE (3.6)<br />

J = σE (3.7)<br />

divJ = − ∂ρ<br />

.<br />

dt<br />

(3.8)<br />

unde relat¸ia (3.8) reprezintă consecint¸a relat¸iilor (3.3) s¸i (3.2). Acest regim este utilizat<br />

pentru problemele, ce nu pot fi analizate separat, din punct de vedere electric s¸i magnetic.<br />

Impunând anumite valori particulare, degenerate, ale constanteleor de material, ecuat¸iilor<br />

acestui regim, se obt¸in celelate regimuri ale câmpului electromagnetic.<br />

Regimul electric cvasistat¸ionar (EQS)<br />

În regim electric cvasistat¸ionar (în literatura de specialitate mai este numit s¸i amagnetic<br />

sau capacitiv), câmpul magnetic este neglijat, fiind considerat doar câmpul electric. Deci,<br />

considerând câmpul magnetic nul, ecuat¸iile lui Maxwell corespunzătoare acestui regim<br />

sunt (formal µ = 0) :<br />

rotE = 0 (3.9)<br />

divD = ρ (3.10)<br />

D = εE (3.11)<br />

J = σE (3.12)<br />

divJ = − ∂ρ<br />

.<br />

dt<br />

(3.13)<br />

Aceste ecuat¸ii descriu efectele capacitive s¸i de conduct¸ie. În modelarea componentelor<br />

din circuitele integrate, acest regim poate fi folosit pentru a obt¸ine un model ce nu cont¸ine<br />

efecte inductive.<br />

Regimul magnetic cvasistat¸ionar (MQS)<br />

Spre deosebire de regimul electric cvasistat¸ionar, regimul magnetic cvasistat¸ionar (în<br />

literatura de specialitate numit s¸i anelectric sau inductiv), neglijează câmpul electric, considerând<br />

doar câmpul magnetic. Ecuat¸iile, în acord cu ipoteza anterior amintită, cores-<br />

34


punzătoare acestui regim sunt (formal ε = 0):<br />

3.1. Modelarea fizică<br />

rotE = − ∂B<br />

∂t<br />

(3.14)<br />

rotH = J (3.15)<br />

divB = 0 (3.16)<br />

B = µH (3.17)<br />

J = σE (3.18)<br />

divJ = 0 . (3.19)<br />

unde relat¸ia (3.19) reprezintă consecint¸a relat¸iei (3.15). Acest regim descrie toate efectele<br />

inductive (efectul pelicular, curet¸i turbionari) s¸i de conduct¸ie, însă, singur, nu prezintă<br />

interes pentru modelarea componentelor de circuit integrat, deoarece neglijează efectele<br />

capacitive, care sunt foarte importante pentru acest gen de aplicat¸ii. În combinat¸ie cu regimul<br />

EQS, rezultă un regim hibrid numit regimul electro-magneto-cvasistat¸ionar (EMQS),<br />

regim în care părt¸ile conductoareale domeniului (conductoarele metalice) sunt studiate în<br />

regim MQS, iar restul domeniului (dielectrici) în regim EQS. Această abordare este foarte<br />

folosită în programele de modelare a compomentelor de circuit integrat [100][101], deoarece<br />

modelul obt¸inut în acest regim este echivalent celui obt¸inut in regim FW, însă are o<br />

dimensiune mai mică [102].<br />

Regimul electrostatic (ES)<br />

Regimul electrostatic reprezintă o particularizare a regimului EQS, în care, pe lângă<br />

faptul că nu există mis¸care s¸i mărimile sunt constante în timp, se adaugă s¸i ipoteza că nu<br />

au loc transformări energetice. În acest caz, ecuat¸iile ce carcaterizează acest regim sunt (se<br />

obt¸in considerând, în ecuat¸iile lui Maxwell, µ = 0, σ = 0):<br />

Acest regim descrie doar efectele capacitive.<br />

Regimul electrocinetic (EC)<br />

rotE = 0 (3.20)<br />

divD = ρ (3.21)<br />

D = εE . (3.22)<br />

Regimul electrocinetic descrie doar efectele de conduct¸ie, el fiind caracterizat de ecuat¸iile:<br />

obt¸inute considerând formal, µ = 0 s¸i ε = 0.<br />

rotE = 0 (3.23)<br />

divJ = 0 (3.24)<br />

J = σE . (3.25)<br />

35


3. Modelarea inductoarelor spiralate integrate<br />

Regimul magneto-stat¸ionar (MG)<br />

Acest regim reprezintă o particularizare a regimului MQS, în ipotezele: nu există<br />

mis¸care, mărimile sunt constante în timp. În acest caz, ecuat¸iile devin:<br />

rotH = J (3.26)<br />

divB = 0 (3.27)<br />

B = µH (3.28)<br />

(3.29)<br />

Acest regim descrie doar efectele inductive s¸i se obt¸ine din ecuat¸iile lui Maxwell, considerand<br />

ε = 0. Dacă nu au loc transformări energetice, J = 0, regimul devine magnetostatic<br />

(MS).<br />

Regimurile EC, MG s¸i ES sunt utile pentru extragerea parametrilor concentrat¸i de circuit<br />

RLC. Mai mult, prin combinat¸ii pe subdomenii cu regimurile variabile se obt¸in modele<br />

de ordin mai redus, a căror analiză numerică necesită resurse mai mici de calcul.<br />

Regimul general variabil armonic în timp. În circuitele de radiofrecvent¸ă, semnalele<br />

electrice au o variat¸ie sinusoidală în timp. Dacă se reprezintă în complex toate componetele<br />

câmpului elctromagnetic, atunci ecuat¸iile lui Maxwell capătă forma compelxă:<br />

rotE = −jωB (3.30)<br />

rotH = J + jωD (3.31)<br />

divD = ρ (3.32)<br />

divB = 0 (3.33)<br />

B = µH (3.34)<br />

D = εE (3.35)<br />

J = σE (3.36)<br />

divJ = −jωρ . (3.37)<br />

obt¸inute, înlocuind în (3.1)-(3.8) ∂ cu jω.<br />

∂t<br />

Problemele analizate constau din unul sau două inductoare spiralate, plasate într-un<br />

circuit integrat cu substrat de siliciu (tehnologia BiCMOS). Deci, fiecare problemă va avea<br />

trei subdomenii rectangulare: Si, SiO2 s¸i Aer, conductoarele din Al, aflându-se în stratul<br />

de oxid (Figura 3.1). După numele proiectelor, pentru care au fost proiectate, problemele<br />

vor fi numite fie CHRF [86], fie CDST [82].<br />

Domeniului de calcul, care este alcătuit din trei straturi, din materiale diferite, i se impun<br />

condit¸iile de interfat¸ă [103], ele asigurând conservarea componentelor câmpului, care<br />

se conservă la trecerea de la un strat la altul. Forma locală, pe suprafet¸ele de discontinuitate,<br />

a legilor generale, ale elctromagnetismului, exprimă condit¸iile de interfat¸ă pentru două<br />

straturi, din materiale diferite:<br />

n × (H2 − H1) = Jinterfata = 0, (3.38)<br />

n × (E2 − E1) = 0, (3.39)<br />

n · (D2 − D1) = ρinterfata, (3.40)<br />

n · (B2 − B1) = 0. (3.41)<br />

36<br />

(3.42)


Figura 3.1: Geometria tipică a unui inductor spiralat integrat<br />

3.1. Modelarea fizică<br />

Curentul poate exista doar în conductoare, as¸a că densitatea de curent pe suprafat¸ă Jinterfata<br />

este de zero, la fel si ρinterfata, care este neglijabilă. Folosind relat¸ia 3.40, se constată că pe<br />

interfat¸a dintre două straturi dielectrice, potet¸ialul electric trebuie să fie acelas¸i, adică vor fi<br />

satisfăcute relat¸iile:<br />

dV2<br />

V1 = V2; ε2<br />

dn<br />

dV1<br />

= ε1<br />

dn<br />

. (3.43)<br />

As¸a cum se întamplă la câmpul electric, în plus, la trecerea dintr-un mediu în altul, se conservă<br />

s¸i componenta tangent¸ială a intensităt¸ii câmpului magentic s¸i componenta normală a<br />

induct¸iei magnetice.<br />

Problemele vor fi analizate în gama de frecvent¸e 1-60GHz, deci alegerea regimului de<br />

funct¸ionare, trebuie să tină cont de frecvent¸ă, astfel încât modelul să cont¸ină toate efectele<br />

relevante ale câmpului electromagnetic atât la frecvent¸e joase, cât s¸i la frecvent¸e înalte.<br />

La frecvent¸e joase, de maxim 1GHz, comportarea substratului de siliciu s¸i a aerului<br />

poate fi descrisă prin combinarea regimurilor statice. În acest caz, efectele capacitive pot<br />

fi neglijate, însă câmpul magnetic trebuie luat în considerare, deoarece nu pot fi neglijate<br />

efectele inductive ale coductoarelor aflate deasupra (inductoarele). Deci, regimul cel mai<br />

potrivit pentru substratul semiconductor de rezistivitate mică, la frecvent¸e joase, reprezintă<br />

combinat¸ia dintre regimurile EC s¸i MS, ce descriu efectele conductive, respectiv inductive.<br />

În schimb, dacă substratul semiconductor are rezistivitate mare, cea mai portivită este<br />

combinat¸ia ES+EC, sau, s¸i mai bine EQS, pentru a descrie efectele capacitive s¸i conductive.<br />

Aerul, având conductivitate foarte mică, este modelat cel mai bine în regimurile ES+MS,<br />

pentru a descrie efectele capcitive s¸i cele inductive care au loc prin intermediul lui.<br />

Potrivit tezei de doctorat [104], la frecvent¸e de peste 5GHz, efectele capacitive nu mai<br />

37


3. Modelarea inductoarelor spiralate integrate<br />

pot fi neglijate, deci, trebuie considerat s¸i câmpul electrostatic. Efectele capacitive din substratul<br />

semiconductor, mai ales când acesta are rezistivitate mare, s¸i cele rezistive pot fi<br />

descrise de combinat¸ia între regimurile ES s¸i EC, însă, conform lucrării [105] considerarea<br />

ES+EC prezintă avantaje doar la frecvent¸e sub 1GHz, totus¸i, pentru a descrie aceste efecte,<br />

poate fi folosit regimul EQS. Pentru substrat omogen, modelul generat de regimul EQS<br />

este perfect echivalent cu modelul generat de ES+EC, însă pentru substrat neomogen trebuie<br />

considerat regimul EQS. Considerând s¸i efectele inductive, regimul electromagnetic<br />

potrivit, reprezintă combinat¸ia dintre regimurile EC+ES+MS, pentru substrat omogen, s¸i<br />

EQS+MS pentru substrat neomogen.<br />

În lucrarea [106], se demonstrează că, la frecvent¸e de peste 20GHz, regimul EQS este<br />

invalid, pentru substrat de siliciu cu rezistivitate mare. Deci, pentru a descrie toate efectele<br />

câmpului electromagnetic din substratul de siliciu, la frecvent¸e de 60GHz, trebuie considerat<br />

regimul FW. Tot regim FW trebuie folosit s¸i în modelarea starului de oxid SiO2,<br />

însă, pentru modelarea conductoarelor, cel mai potrivit model este MQS, deoarece, în Al,<br />

curent¸ii de deplasare au densitatea (JD = ωεE) mult mai mică decât cei de conduct¸ie<br />

Jc = σE. De exemplu, la 60 GHz, ωε(≈ 10 −3 ) ≪ σ(≈ 10 7 ). În consecint¸ă, se neglijează<br />

curent¸ii de deplasare, ceeea ce înseamnă regim MQS.<br />

Figura 3.2: Efectele câmpului electromagnetic<br />

Procedând astfel, vor fi modelate următoarele efecte ale câmpului de înalta s¸i joasă<br />

frecvent¸ă [107] (Figura 3.2 [78]):<br />

• efectul pelicular din interiorul conductoarelor;<br />

• efectul de proximitate între conductoare;<br />

• efectul de pierderi prin curent¸i turbionari în substratul semiconductor;<br />

• efectul inductiv al bobinei;<br />

• efectul capacitiv dintre spire;<br />

38


3.1. Modelarea fizică<br />

• efectul rezistiv din conductoare, afectat la frecvent¸e înalte de efectul pelicular;<br />

• efectul de propagare de-a lungul conductorului;<br />

• radiat¸ia spre exterior.<br />

Figura 3.3: Domeniu de calcul<br />

Domeniul de calcul, care cont¸ine inductorul de modelat, se descompune în subdomenii<br />

(Figura 3.3), fiecare având propriul regim al câmpului electromagnetic. Pentru a extrage<br />

modelul inductorului, care să considere toate efectele câmpului electromagnetic de<br />

frecvent¸ă înaltă, trebuie rezolvată o problemă de câmp electromagnetic, bine formulată s¸i<br />

cuplată cu o problemă de circuit electric exterior. Orice problemă de câmp are ca date<br />

cunoscute: domeniul de calcul, proprietăt¸ile de material s¸i sursele de câmp, care satisfac<br />

condit¸iile de unicitate.<br />

Figura 3.4: Domeniu de calcul<br />

Domeniul de calcul DΣ (Figura 3.4) are formă paralelipipedică s¸i este construit prin<br />

reuniunea ”cărămizilor” omogene DΣj . Materialele ”cărămizilor” se consideră a fi liniare<br />

39


3. Modelarea inductoarelor spiralate integrate<br />

s¸i izotrope, caracterizate de conductivitatea electrică σ, permeabilitatea electrică ε s¸i permitivitatea<br />

magnetică µ, constante de material cunoscute pentru fiecare DΣj . Câmpul electromagnetic<br />

din circuitele integrate nu are surse interne de câmp, în consecint¸ă, condit¸iile<br />

de frontieră s¸i condit¸iile init¸iale, altfel spus condit¸iile de unicitate, completează formularea<br />

corectă a problemei de câmp. Prin intermediul condit¸iilor de frontieră, se asigura cuplajul<br />

cu exteriorul, care se face prin suprafat¸a terminalelor fizice ale dispozitivului Sk. Deoarece,<br />

dispozitiviele (inductoarele) sunt componente pasive de circuit, realizate din materiale liniare,<br />

se admit ipotezele că nu există surse interne de câmp s¸i că nu există câmp init¸ial, adică<br />

problema nu necesită condit¸ii init¸iale.<br />

Necunoscutele problemei sunt componentele câmpului electromagnetic, descris de<br />

ecuat¸iile lui Maxwell în regim general variabil (FW), respectiv: E, D, B, H, J, ρ.<br />

Pentru proiectantul de circuite integrate, componetele câmpului electromagnetic s¸i modul<br />

cum variază ele în spat¸iu sau timp, nu are o prea mare relevant¸ă. Ce prezintă interes,<br />

este modul în care o componetă interactionează cu exteriorul. Mai exact, care sunt relat¸iile<br />

constitutive între curent¸ii s¸i tensiunile componentei respective.<br />

Figura 3.5: Sistemul de modelat (MIMO).<br />

Se vor considera primele m terminale, din cele n terminale ale dispozitivului, alimentate<br />

în tensiune, iar restul de (n − m − 1) alimentate în curent, astfel că se pot defini<br />

semnalele de intrare, acestea reprezentând s¸i sursele de câmp, ca fiind:<br />

<br />

vk(t) = Edr, k = 1, m (3.44)<br />

<br />

CK⊂∂DΣ<br />

ik(t) = Hdr, k = m + 1, n − 1 , (3.45)<br />

s¸i semnalele de ies¸ire<br />

<br />

vk(t) =<br />

∂SK<br />

CK⊂∂DΣ<br />

<br />

ik(t) =<br />

∂SK<br />

Hdr, k = 1, m (3.46)<br />

Edr, k = m + 1, n − 1 . (3.47)<br />

40


3.2. Modelarea matematică<br />

Vectorul intrărilor s¸i vectorul ies¸irilor sistemului modelat (Figura 3.5), vor avea componentele:<br />

⎡ ⎤ ⎡ ⎤<br />

⎢<br />

u = ⎢<br />

⎣<br />

v1<br />

.<br />

vm<br />

im+1<br />

.<br />

in−1<br />

3.2 Modelarea matematică<br />

⎥ ⎢<br />

⎥ ⎢<br />

⎥ ⎢<br />

⎥ ⎢<br />

⎥ , y = ⎢<br />

⎥ ⎢<br />

⎥ ⎢<br />

⎦ ⎣<br />

i1<br />

.<br />

im<br />

vm+1<br />

.<br />

vn−1<br />

⎥ .<br />

⎥<br />

⎦<br />

Modelul dispozitivului (inductorului), obt¸inut în urma procesului de modelare, trebuie<br />

să fie compatibil cu alte componente de circuite. Acest lucru se realizează prin condit¸ii<br />

de frontieră care trebuie să asigure, în mod consistent, cuplajul dintre problema internă de<br />

câmp s¸i problema externă de circuit electric. Aceste condit¸ii de frontieră sunt introduse<br />

prin Elementul Electromagnetic de Circuit.<br />

Al. Timotin a introdus conceptul de Elementul Electromagnetic de Circuit în [108], ca<br />

o generalizare a elementului multipolar de circuit. Acest concept a fost readus în atent¸ia<br />

cercetătorilor s¸i folosit pentru a simula cuplajele electromagnetice în [109].<br />

Definit¸ia 1 Elementul electromagnetic de circuit (EMCE - Figura 3.6) este un domeniu<br />

simplu conex mărginit de o suprafat¸ă Σ alcătuită din n ′ părt¸i disjuncte S ′ 1, S ′ 2, . . . , S ′ n<br />

numite terminale electrice, s¸i n ′′ părt¸i disjuncte S ′′<br />

1 , S ′′<br />

2 , . . . , S ′′<br />

n numite terminale magnetice<br />

pe care sunt îndeplinite următoarele condit¸ii de frontieră:<br />

n · rotE(P, t) = 0, pentru ∀ P ∈ Σ − ∪S ′′<br />

k, (3.48)<br />

n · rotH(P, t) = 0, pentru ∀ P ∈ Σ − ∪S ′ k, (3.49)<br />

n × E(P, t) = 0, pentru ∀ P ∈ ∪S ′ k, (3.50)<br />

n × H(P, t) = 0, pentru ∀ P ∈ ∪S ′′<br />

k, (3.51)<br />

unde n este vectorul normal la suprafat¸a Σ în punctul P .<br />

Condit¸ia (3.48) interzice cuplajul magnetic, prin suprafat¸a dintre interiorul s¸i exteriorul<br />

domeniului, exceptând suprafet¸ele terminalelor magnetice. Condit¸ia (3.49) interzice<br />

cuplajele galvanice s¸i capacitive prin suprafat¸a externă elementului, exceptând suprafet¸ele<br />

terminalelor electrice. Condit¸iile (3.50) s¸i (3.51) interzic variat¸iile potent¸ialului electric,<br />

respectiv magnetic pe orice terminal electric, respectiv magnetic.<br />

Condit¸iile (3.48), (3.49), (3.50), (3.51) sunt mai put¸in restrictive decât ipotezele simplificatoare<br />

folosite în teoria circuitelor. Cu ajutorul acestor condit¸ii este descrisă interact¸iunea<br />

dintre elementul electromagnetic de circuit s¸i exteriorul său. Trebuie ment¸ionat faptul ca<br />

interact¸iunea are loc numai prin terminalele electrice s¸i cele magnetice.<br />

Terminalele electrice sunt de două tipuri: excitate în curent s¸i excitate în tensiune.<br />

Acelas¸i lucru se întâmplă s¸i în cazul terminalelor magnetice, care sunt excitate în flux<br />

magnetic s¸i tensiune magnetică.<br />

41


3. Modelarea inductoarelor spiralate integrate<br />

Figura 3.6: Elementul Electromagnetic de Circuit<br />

Pentru fiecare terminal electric k, intensitatea curentului electric este definit de relat¸ia<br />

<br />

ik(t) = Hdr pentru k = 1, 2, . . . , n, (3.52)<br />

Γ ′ k<br />

unde Γ ′ k este curba închisă orientată ce mărgines¸te suprafat¸a terminalului electric S′ k .<br />

Pentru fiecare terminal electric k, potent¸ialul electric este definit de relat¸ia<br />

<br />

vk(t) = Edr pentru k = 1, 2, . . . , n, (3.53)<br />

C ′ k<br />

unde C ′ k este o curbă arbitrară plasată pe frontiera domeniului ce unes¸te terminalul S′ k de<br />

terminalul de referint¸ă S ′ n.<br />

Pentru fiecare terminal magnetic k, fluxul magnetic este definit de relat¸ia<br />

<br />

˙ϕk(t) = Edr pentru k = 1, 2, . . . , n, (3.54)<br />

unde Γ ′′<br />

k<br />

Γ ′′<br />

k<br />

este curba închisă orientată ce mărgines¸te suprafat¸a terminalului magnetic S′′<br />

k .<br />

Pentru fiecare terminal magnetic k, potet¸ialul magnetic este definită de relat¸ia (3.55).<br />

<br />

uk(t) = Hdr pentru k = 1, 2, . . . , n, (3.55)<br />

unde C ′′<br />

k<br />

C ′′<br />

k<br />

este o curbă arbitrară plasată pe frontiera domeniului, ce unes¸te terminalul S′′<br />

k de<br />

terminalul de referint¸ă S ′′<br />

n.<br />

Puterea transferată prin terminale de un element electromagnetic de circuite este dată de<br />

Teorema lui Timotin (Teorema transferului de putere printr-o suprafat¸ă de separat¸ie) [108]:<br />

P =<br />

n ′ −1<br />

k=1<br />

n<br />

vk · ik +<br />

′′<br />

dϕk<br />

uk<br />

dt<br />

42<br />

k=1<br />

(3.56)


3.3. Modelarea numerică (FIT)<br />

Teorema lui Timotin completează formularea corectă a problemei de câmp electromagnetic<br />

cu condit¸ii de frontieră adecvate. În concluzie, problema de câmp asociată unui<br />

element electromagnetic de circuit descris de ecuat¸iile lui Maxwell, condit¸ii pe frontieră<br />

(3.53)(3.52)(3.54)(3.55), condit¸ii init¸iale nule, cu terminalele excitate în tensiune s¸i curent<br />

sau flux are solut¸ie unică.<br />

În concluzie, semnalele de ies¸ire ale terminalelor sunt univoc determinate de evolut¸ia în<br />

timp a semnalelor de intrare. Fiind o problemă liniară, operatorii de impedant¸ă, admitant¸ă<br />

s¸i hibrizi, care leagă semnalele de intrare de cele de ies¸ire, vor fi operatori liniari. Dacă<br />

elemenul funct¸ionează în regim armonic, atunci aces¸ti operatori se reprezintă în complex,<br />

ca matrice de impedant¸e sau admitant¸e complexe, dependente de frecvent¸ă.<br />

Obiectivul final al modelării inductoarelor nu constă în rezolvarea problemei de câmp,<br />

formulată anterior, ci în extragerea din solut¸ia ei a unui model compact de ordin redus.<br />

Pentru a obt¸ine modelul compact de ordin redus, se aplica tehnici de reducerea ordinului<br />

modelelor (Figura 3.7). În procesul de modelare, descris anterior, primul pas de reducere<br />

a ordinului modelelor, trece de la modelul infinit continuu, la un model finit discret, dar<br />

de dimensiune foarte mare, prin discretizarea ecuat¸iilor lui Maxwell folosind o metoda<br />

numerică. Se impune, deci, aplicarea unei noi metode de reducerea ordinului modelelor,<br />

care are ca rezultat, modelul compact, care are un ordin foarte mic în comparat¸ie cu ordinul<br />

modelului discret. Modelul compact este un circuit echivalent SPICE, care cont¸ine toate<br />

efectele câmpului electromagnetic, dar care se poate conecta într-un circuit cu parametri<br />

concentrat¸i.<br />

Practic, problema obt¸inerii modelului de ordin redus, are ca date de intrare geometria<br />

dispozitivului de modelat, iar ca date de ies¸ire modelul compact.<br />

Figura 3.7: Modelul continuu, modelul discret s¸i modelul compact<br />

3.3 Modelarea numerică (FIT)<br />

Modelarea numerică are ca scop discretizarea problemei de câmp formulată în subcapitolele<br />

anterioare. Cuplajul dispozitivului cu un circuit exterior se face prin terminalele<br />

aflate pe suprafat¸a frontierei domeniului elementului electromagnetic de circuit, în interiror<br />

comportamentul fiind descris de ecuat¸iile lui Maxwell în regim general variabil. Această<br />

problemă conduce la un model continuu ce are un număr infinit de grade de libertate, astfel<br />

încât se impune aplicarea unei metode numerice în scopul obt¸inerii unui model discret cu<br />

număr finit de grade de libertate.<br />

43


3. Modelarea inductoarelor spiralate integrate<br />

În capitolul precedent, au fost prezentate astfel de metode numerice mai put¸in s¸i Tehnica<br />

Integrărilor Finite (FIT) [42]. În teza de doctorat [110], a fost prezentată aplicarea metodei<br />

FIT pentru modelarea interconexiunilor din circuitele integrate de înaltă frecvent¸ă. Designul<br />

(layout-ul) dispozitivelor de circuit integrat este carcaterizat de geometria Manhattan,<br />

iar metoda FIT este adecvată pentru calcului câmpului electromagnetic în astfel de structuri.<br />

FIT este o metodă numerică destinată problemelor de câmp bazate pe discretizarea<br />

spat¸ială fără funct¸ii de formă. Ret¸eaua de discretizare este format din două ret¸ele ortogonale<br />

decalate de tip Yee [111] în care centrele celulelor primare sunt noduri ale celulelor<br />

secundare. Gradele de libertate sunt variabilele globale - tensiuni electrice s¸i magnetice,<br />

fluxuri electrice s¸i magnetice - corespunzătoare muchiilor s¸i, respectiv, fet¸elor ret¸elei de<br />

discretizare.<br />

Figura 3.8: Ret¸eaua de discretizare duală<br />

Obiectivul folosirii metodei FIT este acela de a obt¸ine sistemul de ecuat¸ii de stare al<br />

dispozitivului, pentru ca apoi acest sistem să poată fi folosit pentru extragerea modelului de<br />

ordin redus. Pentru obt¸inerea ecuat¸iilor lui Maxwell, în formă discretă, se aplică forma globală<br />

a legilor generale ale câmpului electromagnetic pe elementele ret¸elei de discretizare,<br />

fet¸e, respectiv frontiere ale acestora, iar, legile fluxului pe celulele elementare:<br />

⎧<br />

rotE = −<br />

⎪⎨<br />

⎪⎩<br />

∂B<br />

∂t<br />

divB = 0<br />

rotH = J + ∂D<br />

∂t<br />

divD = ρ<br />

=> divJ = − ∂ρ<br />

⎧ <br />

∂B<br />

Edr = − ∂t<br />

⎪⎨<br />

=⇒<br />

⎪⎩<br />

dt<br />

dA<br />

<br />

<br />

BdA =<br />

<br />

0<br />

∂D<br />

Hdr = (J + ∂t )dA<br />

<br />

DdA = ρdv<br />

=> JdA = − ∂ρ<br />

dt dv<br />

⎧<br />

Cv = −<br />

⎪⎨<br />

=⇒<br />

⎪⎩<br />

dϕ<br />

dt<br />

D ′ ϕ = 0<br />

C ′ u = i + dψ<br />

dt<br />

Dψ = q<br />

=> Di = − dq<br />

(3.57)<br />

dt<br />

s¸i relat¸iile consitutive, care sunt descrise cu ajutorul operatorilor Hodge:<br />

⎧<br />

⎨<br />

⎩<br />

B = µH<br />

D = εE<br />

J = σE<br />

=⇒<br />

⎧<br />

⎨<br />

⎩<br />

ϕ = Mµu = M −1<br />

v u<br />

ψ = Mεv<br />

i = Mσv<br />

44<br />

(3.58)


3.3. Modelarea numerică (FIT)<br />

Relat¸iile (3.57) formează sistemul de ecuat¸ii ale lui Maxwell pe griduri (MGE). Completând<br />

sistemul MGE cu relat¸iile constitutive (3.58), se va putea sintetiza un circuit electric<br />

echivalent s¸i un circuit magnetic echivalent, pentru fiecare celulă a ret¸elei de discretizare<br />

(Figura 3.9)<br />

(a) Graful circuitului electric (b) Graful circuitului magnetic<br />

Figura 3.9: Circuitele echivalente FIT<br />

Principalul avantaj al metodei FIT este acela că nu introduce erori în procesul discretizare<br />

a ecut¸iilor lui Maxwell, toate erorile fiind date doar de aproximările operatorilor<br />

Hodge. Din punct de vedere numeric, sistemul MGE are următoarele caracteristici:<br />

1. matricele de coeficient¸i sunt rare, având cel mult 6 elemente nenule pe linie;<br />

2. matricele C s¸i D, corespunzătoare operatorilor discret¸i rot s¸i div, sunt topologice,<br />

având doar valorile 0, 1, -1;<br />

3. sunt ecuat¸ii mimetice, în sensul că în ecuat¸iile lui Maxwell, operatorii rot s¸i div sunt<br />

înlocuit¸i cu matricle C s¸i D, care reprezintă forma discretă a operatorilor de derivare<br />

spat¸ială;<br />

4. conservative, în sensul că forma discretă a ecuat¸iei care descrie conservarea sarcinii<br />

(dar s¸i a energiei), este o consecint¸ă directă a ecuat¸iilor discretizate.<br />

Aceste caracteristici asigură ca problema nu are solut¸ii numerice false, ceea ce face ca<br />

impementările pe calculator, să fie robuste s¸i stabile.<br />

În ceea ce prives¸te gradele de libertate, se observă imediat că:<br />

• numărul tensiunilor electrice (dimensiunea lui v) este egal cu numărul de laturi din<br />

ret¸eaua primară Nb;<br />

• numărul tensiunilor magnetice (dimensiunea lui u) este egal cu numărul de laturi din<br />

ret¸eaua secundară N ′ b ;<br />

45


3. Modelarea inductoarelor spiralate integrate<br />

• numărul fluxurilor magnetice (dimensiunea lui ϕ) este egal cu numărul de fet¸e din<br />

ret¸eaua primară Nf;<br />

• numărul fluxurilor electrice (dimensiunea lui ψ) este egal cu numărul de fet¸e din<br />

ret¸eaua secundară N ′ f .<br />

Generarea sistemului matriceal de stare<br />

Pentru a evita confuzia dintre operatorul discret C s¸i matricea capacităt¸ilor, acesta se va<br />

nota cu B. Elementele operatorilor Hodge Mσ, Mv, Mε reprezintă conductant¸a electrică,<br />

reluctant¸a magnetică s¸i capacitatea electrică. Notându-le Ge, Rm = G−1 m , Ce, relat¸iile<br />

constitutive se vor scrie sub forma:<br />

ceea ce permite scrierea sistemului MGE sub forma<br />

ϕ = Gmu, (3.59)<br />

ψ = Cev, (3.60)<br />

i = Gev. (3.61)<br />

dψ<br />

dt + i − B′ u = 0 , (3.62)<br />

dϕ<br />

+ Bv<br />

dt<br />

= 0 . (3.63)<br />

Eliminând vectorii de flux din ecuat¸iile (3.63) s¸i (3.63), se ajunge la sistem de ecuat¸ii,<br />

similiar cu cel al unui circuit electric<br />

dv<br />

Ce<br />

dt + Gev − B ′ u = 0, (3.64)<br />

Gm<br />

care scrise sub formă matriceală devin<br />

<br />

Ce<br />

0<br />

<br />

0 d v Ge<br />

+<br />

Gm dt u<br />

−B ′<br />

B<br />

<br />

v<br />

0 u<br />

Notând<br />

se obt¸ine forma compactă<br />

<br />

Ce 0<br />

C =<br />

0 Gm<br />

du<br />

dt<br />

+ Bv = 0 . (3.65)<br />

<br />

Ge −B<br />

G =<br />

′<br />

<br />

B 0<br />

= 0 . (3.66)<br />

x =<br />

<br />

v<br />

u<br />

(3.67)<br />

C dx<br />

+ Gx = 0 . (3.68)<br />

dt<br />

Acest sistem are o structură foarte rară deoarece fiecare rând al matricei C cont¸ine cel<br />

mult un element nenul ce reprezintă o capacitate sau o reluctant¸ă magnetică, iar fiecare rând<br />

al matricei G cont¸ine cel mult 5 elemente nenule, dintre care patru cu valori întregi din matricele<br />

topologice s¸i unul real pozitiv care reprezintă o conductant¸ă electrică ce poate fi zero<br />

într-un izolator s¸i este întotdeauna 0 în ret¸eaua de discretizare magnetică. Printr-o ordonare<br />

potrivită se pot plasa toate elementele nenule din matricea C pe diagonala ei păstrând nule<br />

46


3.3. Modelarea numerică (FIT)<br />

restul elementelor. Această structură permite o reprezentare compactă foarte eficientă a<br />

matricelor C s¸i G. Trebuie remarcat s¸i că această abordare are avantajul de a permite o<br />

modelare us¸oară a regimurilor ES, MS, EQS s¸i MQS, anulând blocurile corespunzătoare<br />

din matricele C s¸i G.<br />

Se observă că ecuat¸ia (3.64) este legea lui Kirchhoff în tensiuni aplicată tuturor nodurilor<br />

circuitului magnetic având ca graf ret¸eaua secundară, iar ecuat¸ia (3.65) este legea lui<br />

Kirchhoff în tensiuni aplicată nodurilor unui circuit electric având ca graf ret¸eaua primară.<br />

Acest sistem pare incomplet deoarece lipses¸te ecuat¸ia Kirchhoff în curent¸i s¸i incorect deoarece<br />

setul de noduri al ret¸elei de discretizare nu este un sistem de bucle independente.<br />

Aceste aspecte nu reprezintă însă o problemă deoarece ecuat¸iile în curent¸i, des¸i neformulate<br />

explicit, sunt o consecint¸ă a ecuat¸iilor (3.66) în regimuri dinamice. Deci, în cazurile particulare<br />

stat¸ionare s¸i cvasistat¸ionare ecuat¸iile pot să nu aibă solut¸ie unică. La acest moment,<br />

sistemul de ecuat¸ii algebrice diferent¸iale nu este complet, deoarece numărul de ecuat¸ii nu<br />

este egal cu numărul de necunoscute. Ecuat¸iile adit¸ionale, care completează sistemul, provin<br />

din forma discretă a condit¸iilor de frontieră.<br />

Efectul condit¸iilor de frontieră asupra ecuat¸iilor de stare<br />

Condit¸iile de frontieră sunt cele care completează formularea corectă a problemei de<br />

câmp. În subcapitolul precendent, s-a arătat faptul că elementul electromagnetic de circuit<br />

asigură compatibilitatea între problema de câmp s¸i cea de circuit. Tot elelementul<br />

electromagnetic de circuit este cel care impune condit¸iile de frontieră, dar în acelas¸i timp<br />

completează s¸i sistemul de ecuat¸ii.<br />

În prima parte se va considera un dispozitiv excitat în curent neglijând efectele parazite,<br />

după care se va studia excitarea în tensiune s¸i modul în care se introduc efectele parazite<br />

adăugând o condit¸ie de frontieră suplimentară pentru terminalele magnetice. As¸adar, se<br />

consideră un sistem cu 2n terminale, primele n fiind terminale de intrare, iar ultimele n fiind<br />

terminale de ies¸ire. Pentru terminalele 1...k, se cunoas¸te excitat¸ia în curent ik = jk(t), în<br />

timp ce al n-lea terminal este conectat la masă având vn = 0. Se ignoră cuplajele parazite,<br />

deci, toate terminalele sunt excitate în curent, iar toate mărimile de ies¸ire sunt mărimi<br />

electrice.<br />

Condit¸ia de frontieră (3.48) este satisfăcută în mod natural, deoarece nici o latură a<br />

ret¸elei de discretizare magnetice nu traversează frontiera domeniului, deci componenta normală<br />

a densităt¸ii fluxului magnetic pe suprafat¸a de frontieră este întotdeauna nulă. Condit¸ia<br />

de frontieră (3.49) este satifăcută atunci când componenta normală a curentului este zero<br />

pe orice punct al frontierei necuprins în interiorul suprafet¸ei terminalelor, ceea ce duce la:<br />

ik = 0, pentru ∀ k ∈ Σ − ∪S ′′<br />

k<br />

(3.69)<br />

Trebuie remarcat faptul că această condit¸ie fixează ca nul doar curentul de conduct¸ie, ci s¸i<br />

curentul de deplasare astfel încât cuplajul electric prin suprafat¸a exterioară necuprinsă în<br />

terminale nu se poate face nici galvanic, nici prin polarizare, nici prin efecte capacitive,<br />

nici prin induct¸ie.<br />

A treia condit¸ie de frontieră (3.50) fort¸ează echipotent¸ialitatea terminalelor se poate<br />

vedea că ea este satisfăcută dacă între orice două puncte de pe un terminal, tensiunea electrică<br />

este nulă. Aceasta se reduce de fapt la a asigura că toate nodurile unui terminal au<br />

47


3. Modelarea inductoarelor spiralate integrate<br />

acelas¸i potent¸ial electric sau că pe orice latură din terminal, căderea de tensiune este nulă:<br />

vb = 0, pentru ∀ b ∈ S1...n<br />

(3.70)<br />

Pentru terminalele excitate în curent, condit¸ia neomogenă de frontieră se poate scrie<br />

folosind elementele operatorilor Hodge sub forma:<br />

jk(t) = <br />

im = <br />

<br />

<br />

dvm<br />

Cem + Gemvm , (3.71)<br />

dt<br />

m∈Sk<br />

m∈Sk<br />

care exprimă curentul total injectat în fiecare terminal k prin suma curent¸ilor corespunzători<br />

tuturor laturilor electrice conectate direct la terminalul k s¸i care sunt fie pe frontieră, fie<br />

ortogonale pe ea. Matriceal, relat¸ia (3.71) se poate scrie sub forma<br />

dv<br />

Sc<br />

dt + SGv = j, (3.72)<br />

unde j este vectorul curent¸ilor de excitat¸ie injectat¸i în terminale.<br />

Se defines¸te matricea de conexiune latură-terminal, S, ale cărei elemente sij sunt +1 sau<br />

-1, dacă există o conexiune între latura j s¸i terminalul k, se poate scrie termenii matriceali<br />

ai relat¸iei (3.72) ca fiind:<br />

SC = SC ′ e, SG = SG ′ e. (3.73)<br />

unde termenii C ′ e s¸i G ′ e sunt matrice pătrate ale operatorilor Hodge, cu aceeas¸i dimensiune<br />

ca s¸i v.<br />

Relat¸ia (3.69) se poate scrie în aceias¸i termeni, punând jk(t) = 0 în (3.71), ceea ce, de<br />

fapt, se reduce la a extinde matricea S, prin adăugarea câte unui rând pentru fiecare nod<br />

de pe suprafat¸a frontierei, cu except¸ia terminalelor, iar vectorul j este extins cu valori nule.<br />

În acest fel, se impune legea lui Kirchhoff în curent¸i, pe toate nodurile frontierei. Prin<br />

adăugarea condit¸iilor de frontieră exprimate de relat¸ia (3.72), se obt¸ine sistemul de stare:<br />

unde<br />

⎡<br />

Ce 0<br />

⎤<br />

C dx<br />

dt<br />

C = ⎣ 0 Gm⎦<br />

, G = ⎣ B 0<br />

SC 0<br />

0<br />

care în formă extinsă devine<br />

⎡ ⎤<br />

Ce 0<br />

⎣ 0 Gm⎦<br />

SC 0<br />

d<br />

dt<br />

<br />

v<br />

+<br />

u<br />

+ Gx = y, (3.74)<br />

⎡<br />

⎡<br />

Ge −B ′<br />

SG<br />

Ge −B ′<br />

⎣ B 0<br />

0<br />

SG<br />

⎤<br />

⎦<br />

⎤ ⎡ ⎤<br />

0<br />

⎦ , y = ⎣0⎦<br />

,<br />

j<br />

(3.75)<br />

⎡ ⎤<br />

0<br />

v<br />

= ⎣0⎦<br />

. (3.76)<br />

u<br />

j<br />

Această formă cuprinde relat¸iile constitutive ale tuturor laturilor electrice s¸i magnetice,<br />

legile Faraday s¸i Ampere-Maxwell aplicate pe ret¸eaua de discretizare, legile lui Kirchhoff<br />

în tensiuni s¸i în curent¸i în toate nodurile s¸i condit¸iile de excitare a terminalelor. Dacă terminalele<br />

sunt excitate în curent, mărimile de ies¸ire sunt tensiunile electrice de la terminalele<br />

de ies¸ire<br />

vk(t) = <br />

(3.77)<br />

48<br />

m∈Ct<br />

vm


3.3. Modelarea numerică (FIT)<br />

unde Ck este mult¸imea de laturi care formează calea de la terminalul de curent k la terminalul<br />

de referint¸ă. Scrisă matriceal, relat¸ia (3.77) devine<br />

v ′ = SEv, (3.78)<br />

unde SE reprezintă matricea de conexiune cale-latură. Adăugând relat¸ia (3.74), se poate<br />

defini complet sistemul liniar, invariabil în timp al dispozitivului excitat în curent, fără<br />

cuplaje parazite, pe baza sistemului de stare:<br />

<br />

dx C + Gx = y<br />

dt<br />

v ′ (3.79)<br />

= SEv,<br />

unde<br />

⎡<br />

Ce 0<br />

0 Gm<br />

⎤<br />

⎢<br />

C = ⎢<br />

⎣S<br />

′ ⎥ ⎢<br />

⎥<br />

C 0 ⎦ , G = ⎢ B 0<br />

⎣S<br />

0 0<br />

′ G 0<br />

0<br />

⎡<br />

Ge −B ′<br />

SE<br />

⎤<br />

⎥<br />

⎦ ,<br />

⎡ ⎤<br />

0<br />

⎢<br />

y = ⎢0<br />

⎥<br />

⎣0⎦<br />

.<br />

e<br />

(3.80)<br />

Dacă dispozitivul este excitat în tensiune, mărimile de ies¸ire vor fi curent¸ii prin terminalele<br />

de ies¸ire, definit¸i pe baza legii lui Ampere:<br />

<br />

ik(t) = H · dr , (3.81)<br />

relat¸ie care se poate scrie în formă discretă ca<br />

ik(t) = <br />

Γk<br />

m∈Γk<br />

um<br />

(3.82)<br />

unde Γk este o mult¸ime de laturi ce cuprinde conturul terminalului k. În acest caz, relat¸ia<br />

(3.74) se completeză cu<br />

i ′ = SJu, (3.83)<br />

în care SJ este matricea de conexiuni laturi-contur. În acest caz, sistemul este descris de<br />

ecuat¸iile de stare <br />

dx C + Gx = y<br />

dt<br />

i ′ = SJu<br />

. (3.84)<br />

Pentru a lua în calcul s¸i cuplajele parazite, se introduce a condit¸ia de frontieră (3.51).<br />

Condit¸ia ce garantează satisfacerea acestei relat¸ii este ca terminalele magnetice să fie echipotent¸iale,<br />

adică între oricare două noduri ale unui terminal, tensiunea magnetică să fie nulă<br />

ub = 0, pentru ∀ b ∈ S ′′<br />

k . (3.85)<br />

Această condit¸ie se poate îndeplini elegant dacă, în structura ret¸elei de discretizare, se<br />

asigură în circuitul magnetic, pentru fiecare terminal k, un nod conectat la nodurile magnetice<br />

de sub suprafat¸a corespunzătoare acestuia. Pentru a găsi o relat¸ie care să completeze<br />

ecuat¸iile de stare, se exprima condit¸ia de frontieră neomogenă pe baza operatorilor Hodge.<br />

Presupunând că terminalele magnetice sunt excitate în flux, relat¸ia (3.85) se poate exprima,<br />

pentru fiecare terminal k, sub forma<br />

fk(t) = <br />

ϕm = <br />

Gmum, (3.86)<br />

m∈S ′ k<br />

49<br />

m∈Sk”


3. Modelarea inductoarelor spiralate integrate<br />

pentru toate laturile magnetice conectate direct la terminalul k. În formă matriceală, această<br />

relat¸ie este:<br />

SM = S”G ′ m , (3.87)<br />

unde G ′ m este matricea operatorilor magnetici Hodge.<br />

Mărimile de ies¸ire ale unui astfel de sistem sunt potent¸ialele magnetice ale terminalelor,<br />

cuprinse în vectorul de potent¸iale magnetice w ale terminalelor de ies¸ire care se poate<br />

exprima sub forma<br />

w = S”Mu , (3.88)<br />

unde matricea S ′ M este matricea de conexiune dintre laturile magnetice s¸i calea terminalelor<br />

C”k. Prin urmare, ecuat¸iile de stare în acest caz devin<br />

<br />

dx C + Gx = y<br />

dt (3.89)<br />

z = Dx,<br />

în care<br />

⎡<br />

Ce 0<br />

0 Gm<br />

S ′ C 0<br />

⎢<br />

C = ⎢<br />

⎣ 0 0<br />

0 0<br />

este vectorul semnalelor de intrare,<br />

⎤<br />

⎡<br />

Ge −B ′<br />

⎥ ⎢<br />

⎥ ⎢ B 0<br />

⎥ , G = ⎢<br />

⎢S<br />

⎦ ⎣<br />

′ G 0<br />

0<br />

este vectorul semnalelor de ies¸ire s¸i<br />

S ′ E<br />

0 SM<br />

⎡<br />

0<br />

⎢<br />

⎢0<br />

y = ⎢<br />

⎢j<br />

⎣<br />

′<br />

e ′<br />

⎤<br />

⎥<br />

⎦<br />

f<br />

⎡<br />

v ′<br />

z = ⎣ i ′ ⎦<br />

w<br />

x =<br />

⎤<br />

⎥ ,<br />

⎦<br />

⎡<br />

SE<br />

D = ⎣ 0<br />

0<br />

⎤<br />

0<br />

SJ ⎦ ,<br />

SM”<br />

(3.90)<br />

⎤<br />

<br />

v<br />

u<br />

este vectorul variabilelor de stare.<br />

Nu este obligatoriu ca excitat¸ia să fie făcută de acelas¸i tip de mărimi. În cazul dispozitivelor<br />

cu excitat¸ie hibridă (de exemplu cu terminale excitate s¸i în tensiune, s¸i în curent),<br />

ecuat¸iile de semistare se ajustează în mod corespunzător pe baza relat¸iilor caracteristice a<br />

fiecărui tip de ecuat¸ie.<br />

Relat¸iile de mai sus sunt suficiente pentru generarea matricelor, însă ele trebuie postprocesate<br />

pentru a asigura tensiunile nule pe terminale. Dacă, pentru fiecare terminal k,<br />

sunt Nntk noduri s¸i Nbtk laturi, terminalul k va avea Nftk = Nbtk − Nntk + 1, ceea ce<br />

corespunde la Nbtk = Nftk + Nntk − 1 tensiuni nule. Astfel, postprocesarea presupune<br />

eliminarea a Nbtk mărimi de stare s¸i a celor Nbtk ecuat¸ii de stare corespunzătoare lor pentru<br />

fiecare terminal k.<br />

50


3.4. Reducerea ordinului modelului prin es¸antionarea adaptivă a frecvent¸elor cu procedura Vector Fitting<br />

În domeniu frecvent¸ă, sistemul de stare (3.89) devine un sistem liniar complex<br />

<br />

(sC + G)x = Bu<br />

y = Lx + Du<br />

, (3.91)<br />

având structura bloc din Figura 3.10.<br />

Solut¸ia sistemului (3.91), caracterizează complet distribut¸ia câmpului electromagnetic<br />

în domeniul de calcul, astfel încât ea furnizează un model complet al comportamentului<br />

dispozitivului modelat pentru frecvent¸a considerată.<br />

Figura 3.10: Structura sistemului de stare<br />

Primul bloc serves¸te la caracterizarea componentelor câmpului electric de-a lungul<br />

fiecărei laturi a ret¸elei de discretizare, iar al doilea bloc permite caracterizarea componentelor<br />

câmpului magnetic. În primele ecuat¸ii N ′ f , sunt cuprinse ecuat¸iile Ampere-Maxwel<br />

aplicate pe fet¸ele ret¸elei de discretizare magnetice. Următoarele Nf ecuat¸ii sunt corespunzătoare<br />

legii lui Faraday aplicată pe toate fet¸ele ret¸elei de discretizare primare. Ultimul<br />

bloc caracterizează conservarea curentului (sarcinilor) în toate nodurile din interiorul<br />

ret¸elei de discretizare primare. O variantă îmbunătăt¸ită de generare a ecuat¸iilor de stare cu<br />

FIT pentru EMCE, este prezentată în [97].<br />

Deoarece matricele sistemului pot ajunge s¸i la dimensiuni de peste 1.000.000, rezolvarea<br />

unui astfel de sistem fiind foarte costisitioare atât din punct de vedere al puterii de<br />

calcul, cât s¸i a memoriei sistemului de calcul, se impune aplicarea unei noi metode de<br />

reducere a ordinului modelelor.<br />

3.4 Reducerea ordinului modelului prin es¸antionarea adaptivă<br />

a frecvent¸elor cu procedura Vector Fitting<br />

Algoritmul care va fi folosit în teză pentru reducerea ordinului modelului se numes¸te<br />

Es¸antionarea Adaptivă a Frecvent¸elor cu Vector Fitting (AFS-VF) [95], algoritm ce îs¸i propune<br />

să extragă modelul de ordin redus, pentru componente pasive ale unui circuit integrat,<br />

cu un efort minim de calcul. Efortul de calcul se reduce aducând la minimum numărul de<br />

sisteme de rezolvat. Un efort mic de calcul duce la un timp de executie mic s¸i, în final, la<br />

o modelare mai rapidă componentei pasive de circuit integrat. Cele două părt¸i importante<br />

ale algoritmului sunt:<br />

51


3. Modelarea inductoarelor spiralate integrate<br />

• procedura Vector Fitting (VF);<br />

• procedura de Es¸antionare Adaptivă a Frecvent¸elor (AFS).<br />

3.4.1 Procedura Vector Fitting<br />

Init¸ial, procedura VF a fost propusă în lucrarea [112], ca o metodă de interpolare a<br />

răspunsurilor în frecvent¸ă prin îmbunătăt¸irea iterativă a unei aproximat¸ii rat¸ionale.<br />

Pornind de la o funct¸ie g(s) complexă, de variabilă complexă s, se caută aproximarea<br />

ratională:<br />

f(s) = a0 + a1 · s + · · · + aN · s N<br />

b0 + b1 · s + · · · + bN · s N<br />

(3.92)<br />

astfel încât astfel încât f(s) să aproximeze funct¸ia g(s) în sensul celor mai mici pătrate.<br />

Funct¸ia f(s) poate fi rescrisă sub forma:<br />

f(s) =<br />

N cn<br />

+ d + sh (3.93)<br />

s − an<br />

n=1<br />

unde an polii, cn reziduurile s¸i iar termenii d s¸i h sunt numere reale.<br />

Procedura VF implică două etape: o etapă de identificare a polilor s¸i o etapă de identificare<br />

a reziduurilor.<br />

În relat¸ia (3.93) se înmult¸esc ambii membri cu forma rat¸ională a unei funt¸ie necunoscute<br />

σ(s), rezultând :<br />

σ(s) · f(s)<br />

σ(s)<br />

⎡<br />

<br />

⎢<br />

= ⎢<br />

⎣<br />

N<br />

n=1<br />

cn + d + sh<br />

s−ān<br />

N<br />

n=1<br />

¯cn + 1<br />

s−ān<br />

⎤<br />

⎥<br />

⎦ . (3.94)<br />

În lucrarea [112] se demonstrează că polii an ai lui f(s) sunt egali cu zerourile lui σ(s).<br />

Înmult¸ind al doilea rând al relat¸iei (3.94) cu f(s) rezultă relat¸ia:<br />

<br />

N<br />

<br />

N<br />

<br />

cn<br />

¯cn<br />

+ d + sh =<br />

+ 1 · f(s). (3.95)<br />

s − ān<br />

s − ān<br />

n=1<br />

scrisă simbolic devine:<br />

n=1<br />

(σf)fit(s) = σfit(s)f(s). (3.96)<br />

Ecuat¸ia neliniară (3.95), are ca necunoscute cn, d, h, ¯cn. Cu ajutorul acestei ecuat¸ii,<br />

scrisă pentru un set de frecvent¸e, se poate formula o problemă liniară supradeterminată de<br />

tipul A · x = b.<br />

52


3.4. Reducerea ordinului modelului prin es¸antionarea adaptivă a frecvent¸elor cu procedura Vector Fitting<br />

Aproximarea rat¸ională pentru funct¸ia f(s) se poate obt¸ine dacă se rescrie relat¸ia (3.95):<br />

rezultând:<br />

N+1 <br />

(s − zn)<br />

N+1 <br />

(s − ¯zn)<br />

n=1<br />

n=1<br />

(σf)fit(s) = h ·<br />

N<br />

, (σ)fit(s) =<br />

,<br />

N+1 <br />

(s − ān)<br />

(s − ān)<br />

(3.97)<br />

n=1<br />

f(s) = (σf)fit(s)<br />

(σ)fit(s)<br />

= h ·<br />

N+1<br />

n=1<br />

<br />

(s − zn)<br />

N<br />

. (3.98)<br />

(s − ¯zn)<br />

Astfel polii lui f(s) sunt egali cu zerourile lui σfit(s), pentru că polii init¸iali s-au simplificat.<br />

Calculând zerourile funct¸iei σfit(s) se obt¸ine un set de poli pentru funct¸ia f(s).<br />

Etapa a doua are ca obiectiv obt¸inerea reziduurilor. Reziduurile pot fi calculate direct<br />

din relat¸ia (3.97), însă pentru o acuratet¸e mai bună se pornes¸te de la aproximarea rat¸ională<br />

a lui f(s) (3.93), în care se înlocuiesc polii f(s) cu zerourile lui σ(s). Analog, se obt¸ine o<br />

problema liniară supradeterminată având ca necunoscute cn, d, h.<br />

Lucrarea [113] prezintă o metodă îmbunatăt¸ită de relocare a polilor pentru o convergent¸ă<br />

mai rapidă a procedurii. Lucrarea [114] prezintă o implementare mai eficientă a procedurii<br />

VF, implementare ce exploateză raritatea sistemului de ecuat¸ii rezultat în urma aplicării<br />

metodei celor mai mici pătrate, prin aplicarea directă a decompunerii QR. A treia versiune<br />

a procedurii VF cont¸ine o funct¸ie care fort¸ează pasivitatea modelului obt¸inut, pasivitate ce<br />

asigură stabilitatea modelelului rat¸ional. În [115], [116], [117] s¸i [118] sunt propuse astfel<br />

de metode care să fort¸eze pasivitatea modelului rat¸ional, dar care să s¸i accelereze execut¸ia<br />

procedurii VF.<br />

3.4.2 Algoritmul AFS-VF<br />

Algoritmul AFS cu VF propus în [95] îs¸i propune să obt¸ină caracteristica în frecvent¸ă<br />

cu efort minim de calcul (Figura 3.11). Practic, algoritmul AFS-VF constă în alegerea unui<br />

număr optim de es¸antioane pe baza cărora se va extrage o aproximare rat¸ională a formei<br />

semnalului prin Vector Fitting.<br />

În [119] se analizează eficient¸a algoritmului AFS cu VF, ajungându-se la concluzia că<br />

trebuie folosit un set suplimentar de puncte de test, pentru a controla eroarea pe intervalele<br />

definite de punctele din setul de es¸antioane. Controlând eroarea pe aceste intervale,<br />

numărul total de frecvent¸e este cel mai mic posibil, obt¸inându-se astfel, un timp de calcul<br />

mai mic pentru extragerea caracteristicii în frecvent¸ă.<br />

Pornind de la sistemul de stare:<br />

dx(t)<br />

C + Gx(t) = Bu(t)<br />

dt , (3.99)<br />

y(t) = Lx + Du(t)<br />

se obt¸ine relat¸ia dintre reprezentările complexe ale semnalelor de intrare/ies¸ire, numită<br />

matrice de transfer (3.100)<br />

n=1<br />

n=1<br />

Y(ω) = HF IT (ω) = L(G + jωC) −1 B . (3.100)<br />

53


3. Modelarea inductoarelor spiralate integrate<br />

(a) Calcul în 64 puncte (b) Calcul în 15 puncte (AFS-VF)<br />

Figura 3.11: Reducerea efortului de calcul folosind algoritmul AFS-VF<br />

Deci, pentru a calcula matricea de transfer, trebuie rezolvat un sistem liniar de ecuat¸ii<br />

de tipul Ax = b, având A = G + jωC matricea sistemului, iar b = B termenii liberi,<br />

pentru fiecare frecvent¸ă.<br />

Algoritmul poate fi descris prin următorii pas¸i (Figura 4.2):<br />

1. Având ca dată de intrare, sistemul de stare, obt¸inut în urma procesului de discretizare<br />

a ecuat¸iilor cu derivate part¸iale ale elmentului multipolar, alege setul init¸ial de<br />

frecvent¸e de es¸antionare S. Marchează toate intervalele ca necesitând a fi rafinate.<br />

2. Rezolvă sistemele de ecuat¸ii liniare pentru setul init¸ial de frecvent¸e (calculul lui<br />

HF IT (S)).<br />

3. Aplică VF pentru HF IT (S). Se evaluează HV F (S). Ordinul modelului redus este<br />

.<br />

căutat astfel încât εV F > HF IT (S)−HV F (S)<br />

HF IT (S)<br />

4. Alege frecvent¸e de test ce constituie mult¸imea S ′ , câte una în fiecare interval ce<br />

trebuie rafinat.<br />

5. Rezolvă sistemele de ecuat¸ii liniare pentru setul de test S ′ .<br />

6. Calculează HF IT (S ′ ) s¸i evaluează eroarea (Pasul 3) pentru fiecare frecvent¸ă de test.<br />

Dacă această eroare este mai mare decât valoarea impusă, atunci marchează frecvent¸a<br />

de test ca fiind imprecisă.<br />

7. Actualizează S prin mutarea frecvent¸elor de test în mult¸imea frecvent¸elor de es¸antionare.<br />

Marchează ca intervale ce necesită rafinare numai intervalele, care au unul din capete<br />

o fostă frecvent¸ă de test imprecisă.<br />

8. Dacă există intervale de rafinat s¸i numărul de frecvent¸e din lista actualizată nu a<br />

depăs¸it numarul maxim impus, reia de la pasul 4, altfel, opres¸te iterat¸iile.<br />

9. Aplică VF final, pentru mult¸imea de frecvent¸e din S.<br />

54


3.4. Reducerea ordinului modelului prin es¸antionarea adaptivă a frecvent¸elor cu procedura Vector Fitting<br />

Figura 3.12: Algoritm AFS-VF - schema logica<br />

Analizând algoritmul AFS-VF, se constată ca pas¸i critici, din punct de vedere al timpului<br />

de calcul, pas¸ii, în cadrul cărora se rezolvă sistemele de ecuat¸ii liniare, sunt paralelizat¸i.<br />

Abordări paralele ale acestor pas¸i vor fi prezentate în capitolul următor. De asemenea, la<br />

primul pas al algoritmului, se cunosc atât frecvent¸ele de es¸antionare S, cât s¸i frecvent¸ele de<br />

test S ′ . Deci, pentru a îmbunătăt¸i performant¸ele algoritmului paralel, doar la primul pas, se<br />

pot rezolva ambele seturi de frecvent¸e.<br />

În lucrarea [120], este propusă o variantă paralelă a procedurii VF. Analiza algoritmului<br />

a arătat că procedura VF are un timp de execut¸ie mic, iar acest lucru se datorează faptului<br />

că problemele abordate în această teză au 2, maxim 4 porturi. Procedura VF paralelă se<br />

adresează problemelor cu un număr mai mare de porturi, în cazul unei probleme cu număr<br />

mic de porturi, această procedura putând fi chiar mai lentă decât procedura secvent¸ială.<br />

Experimentele numerice au aratat, că cele mai bune rezulate se obt¸in pentru valori ale<br />

tolerant¸elor: εV F = 10 −4 , respectiv εAF S = 10 −2 sau εV F = 10 −5 , respectiv εAF S = 10 −3 .<br />

55


3. Modelarea inductoarelor spiralate integrate<br />

3.5 Concluzii<br />

În cadrul acestui capitol, a fost prezentat întreg procesul dezvoltat de echipa de cercetare<br />

LMN din UPB pentru modelarea componentelor pasive ale circuitelor integrate de<br />

înalta frecvent¸ă. Prima etapă a procesului de modelare furnizează sistemul matriceal de<br />

stare. Acest sistem matriceal este considerat dată de intrare pentru a doua etapă a procesului<br />

de modelare, etapă ce constă în extragerea modelului de ordin redus cu ajutorul algortimului<br />

AFS-VF. Rezultatul final al întregului proces de modelare este un model rat¸ional<br />

pe baza căruia este sintetizat un model echivalent SPICE cu parametri concentrat¸i [121]<br />

ce poate fi conectat într-un circuit exterior s¸i simulate împreună folosind un program de<br />

simulare a circuitelor.<br />

Acest proces de modelare a fost studiat, de autor, în vederea paralelizării. Procedura de<br />

extragere a modelului de ordin redus, pentru componente pasive de circuit integrat, a fost<br />

identificată ca fiind partea cea mai costisitoare din punct de vedere al timpului de execut¸ie.<br />

Tocmai de aceea în capitolul următor vor fi prezentate noi abordări ale acestui algoritm,<br />

abordări care au rolul de a reduce timpul de obt¸inere al modelului de ordin redus.<br />

56


Folosirea sistemelor multiprocesor în modelarea<br />

inductoarelor spiralate<br />

CAPITOLUL 4<br />

Prima parte a acestui capitol cont¸ine o scurtă prezentare a arhitecturii sistemelor multiprocesor<br />

s¸i a tehnicilor de programare paralelă, corespunzătoare lor. În a doua parte se<br />

prezintă metode de rezolvare, directe s¸i iterative, a sistemelor liniare mari generate pe parcursul<br />

procesului de modelare electromagnetică, folosind calculul paralel. Ultima parte<br />

prezintă abordările paralele, propuse de autor, pentru algoritmul de extragerea modelului<br />

de ordin redus (AFS-VF).<br />

4.1 Arhitectura hardware s¸i software a sistemelor multiprocesor<br />

În 1972, Michael Flynn a introdus o clasificare generală a sistemelor de calcul din<br />

punct de vedere al fluxurilor de instruct¸iuni s¸i de date, numită ”Taxonomia lui Flynn” [122].<br />

Această clasificare identifică patru clase de sisteme de calcul:<br />

• SISD - flux unic de instruct¸iuni s¸i de date;<br />

• MISD - fluxuri multiple de instruct¸iuni, flux unic de date;<br />

• SIMD - flux unic de instruct¸iuni, fluxuri multiple de date;<br />

• MIMD - fluxuri multiple de instruct¸iuni, fluxuri multiple de date.<br />

În prezent, sistemul MIMD este cel mai des întalnit pentru calculul paralel. În funct¸ie<br />

de arhitectura memoriei se pot distinge două tipuri de sisteme MIMD (Figura 4.1):<br />

• memorie comună [123] (shared memory - Figura 4.1a) - un sistem de calcul multiprocesor,<br />

în care mai multe unităt¸i de procesare (multi-core CPUs) au acces la o<br />

memorie globală. Interconexiunea dintre procesor s¸i memorie se face printr-o magistrală<br />

(FSB) cu viteză foarte mare de transfer;<br />

57


4. Folosirea sistemelor multiprocesor în modelarea inductoarelor spiralate<br />

(a) Memorie comună (b) Memorie distribuită<br />

Figura 4.1: Calculatoare MIMD<br />

• memorie distribuită [123] (distributed memory - Figura 4.1b) - un sistem de calcul<br />

tip cluster, alcătuit din mai multe sisteme de calcul (noduri) interconectate printr-o<br />

ret¸ea de mare viteză.<br />

Combinat¸ia celor două concepte, ment¸ionate anterior, se numes¸te memorie comună distribuită<br />

(distributed shared memory) [124]. Memoria comună distribuită prezintă s¸i ea două<br />

aspecte. Primul aspect încearcă să ascundă partea de memorie distribuită, prezentând memoria<br />

ca o memorie comună globală. Acest aspect este cunoscut sub numele memorie cu<br />

acces neuniform (NUMA) [124]. Celălalt aspect, cunoscut sub numele de cluster cu multiprocesoare<br />

simetrice (symmetric multiprocessor - SMP) [124], scoate în evident¸ă faptul că<br />

memoria distribuită este alcătuită din memoria comună a fiecărui nod.<br />

Datorită evolut¸iei arhitecturii sistemelor de calcul paralelismul s-a dezvoltat s¸i în partea<br />

de programe. Marea majoritatea a programelor pot fi îmbunătăt¸ite cu ajutorul unei forme<br />

de paralelism, divizându-l, până la un anumit nivel, în părt¸i independente ce pot fi rulate<br />

simultan. În urma procesului de divizare, numit descompunere [123], se identifică două<br />

tipuri de paralelism:<br />

• descompunerea domeniului, în literatura de specialitate fiind cunoscut ca paralelismul<br />

datelor (data parallelism) - fiecare proces execută acelas¸i cod având date de<br />

intrare diferite. Acest tip de paralelism este întâlnit, cel mai adesea, sub numele de<br />

paradigma Single Program Multiple Data (SPMD);<br />

• descompunerea funct¸ională, în literatura de specialitate fiind cunoscut ca paralelismul<br />

sarcinilor (task parallelism) - părt¸i independente de cod sunt rulate simultan,<br />

însă fiecare parte are o funct¸ie bine definită. De asemenea, s¸i acest tip de paralelism<br />

este atribuit unei paradigme, paradigma Master/Slave.<br />

Folosirea combinată, a celor două tipuri de paralelism, poate duce la o mai buna exploatare<br />

a resurselor hardware, rezultând programe cu mai multe nivele de paralelism. Caracteristica<br />

ce măsoară gradul de paralelism (gradul de descompunere), se numes¸te granularitate.<br />

În funct¸ie de gradul de granularitate, putem avea programe cu granularitate:<br />

• grosieră - descompunere cu un număr mic de sarcini independente;<br />

• fină - descompunere cu un număr mare de sarcini de executat.<br />

As¸adar, combinând tipurile de paralelism, programele paralele vor putea avea unul sau<br />

mai multe nivele de granularitate.<br />

58


4.1.1 Sistemul de calcul multiprocesor ATLAS<br />

4.1. Arhitectura hardware s¸i software a sistemelor multiprocesor<br />

Laboratorul de Modelare Numerică (LMN din cadrul UPB) dispune de un astfel de sistem<br />

de calcul multiprocesor, clusterul ATLAS [125]. Toate simulările, testele s¸i programele<br />

paralele acestei lucrări, au fost executate pe acest sistem multiprocesor, ce se încadreaza în<br />

clasa de sisteme MIMD, pe care, în funct¸ie de software-ul folosit, pot fi implementate toate<br />

tipurile de paralelism ment¸ionate anterior.<br />

Din punct de vedere al resurselor hardware, clusterul ATLAS este alcătuit din 14 noduri,<br />

dintre care 6 cu câte două procesoare INTEL s¸i 8 cu câte două procesoare AMD, conectate<br />

printr-o ret¸ea de mare transfer InfiniBand. Configurat¸ia nodurilor este:<br />

• 2 x CPU INTEL Xeon Nehalem 2.66GHz 8MB cache, 24GB RAM;<br />

• 2 x CPU AMD Opteron Barcelona 2.3GHz 2MB cache and 16GB.<br />

Sistemul de operare folosit este Linux Fedora, iar, mediul folosit pentru dezvoltarea<br />

programeleor paralele din această teză a fost MATLAB [126], însot¸it de cele două toolboxuri:<br />

Parallel Computing Toolbox [127] s¸i Distributed Computing Server [128]. Mai sunt<br />

disponibile s¸i licent¸e pentru pachetul COMSOL Multiphysics, AC/DC s¸i RF. Toate resursele<br />

software folosite sunt pe 64 bit¸i.<br />

Figura 4.2: Structura clusterului ATLAS<br />

Cele 14 noduri ale clusterului au funt¸ii diferite:<br />

1. 8 noduri, 4 cu procesoare INTEL, 4 cu procesoare AMD, sunt folosite ca noduri de<br />

calcul pentru programele paralele;<br />

2. 3 noduri de acces MATLAB;<br />

3. 2 noduri de test, unde sunt rulate s¸i testate programele paralele, înainte de a fi rulate<br />

pe întreg clusterul;<br />

59


4. Folosirea sistemelor multiprocesor în modelarea inductoarelor spiralate<br />

4. 1 nod folosit ca server de fis¸iere, server MATLAB DCS.<br />

În totalitate, clusterul ATLAS dispune de:<br />

• 112 core-uri CPU s¸i 240 core-uri GPU;<br />

• 272GB memorie RAM;<br />

• 10TB memorie HDD.<br />

Modul de funct¸ionare al clusterului depinde de mediul de programare s¸i bibliotecile<br />

folosite. Pentru calcul paralel, în cadrul unui singur nod poate fi folosit, se poate folosi<br />

OpenMP [129], pentru paralelizarea ciclurilor for (concept cunoscut sub numele de embarrassingly<br />

parallel), sau biblioteca LAPACK [130] pentru a accesa operat¸ii BLAS paralele.<br />

Ambele metode pot fi regăsite s¸i în mediul MATLAB, prin toolbox-ul PCT, prima sub numele<br />

parfor, iar a doua metodă este folosită implicit, putând fi modificat numărul de coreuri,<br />

cu ajutorul funct¸iei maxNumCompThreads. Calculul distribuit este folosit pe întreg<br />

clusterul (în cazul de fat¸ă doar pe nodurile dedicate calculului) prin intermediul standardului<br />

Message Passing Interface (MPI) [131]. În cazul MATLAB, serverul DCS este cel care<br />

se ocupă de comunicarea între nodurile de calcul, însă sunt oferite funct¸ii preimplementate<br />

ce au la bază standardul MPI.<br />

Combinat¸ia calculului paralel cu cel distribuit, reprezintă gama de programe hibride,<br />

care pot avea unul sau mai multe nivele de paralelism.<br />

Clusterul ATLAS, mai dispune de o altă componentă de calcul paralel, s¸i anume o<br />

placă cu unităt¸i de procesare grafică (GPU).Placă cu GPU se numet¸e NVIDIA Tesla C1060<br />

([132]) s¸i are următoarele specificat¸ii:<br />

• 240 core-uri (unităt¸i de procesare);<br />

• 1.296 GHz frecvent¸a de lucru a fiecărui core;<br />

• 4GB memorie RAM.<br />

Conform ”Taxonomiei lui Flynn”, placa cu GPU se încadrează în clasa de sisteme cu<br />

arhitectură SIMD, s¸i este destinată a fi folosită cu paradigma paralelismul datelor. Placa cu<br />

GPU poate fi programată cu ajutorul limbajulu CUDA, însă există s¸i posibilitatea de apela<br />

funct¸ii preimplementate din biblioteci CUDA.<br />

4.2 Rezolvarea directă s¸i iterativă, în paralel, a sistemelor<br />

lineare mari<br />

În capitolul precedent, partea de rezolvare a sistemelor de ecuat¸ii, a fost identificată<br />

ca parte critică a algoritmul de modelare magnetică. În acest subcapitol, se va prezenta<br />

un studiu referitor la metodele de rezolvare pentru sistemele de ecuat¸ii liniare cu matrice<br />

rare de mari dimensiuni, generate prin discretizarea ecuat¸iilor câmpului elctromagnetic.<br />

Deoarece în partea critică trebuie rezolvate mai multe sisteme Aix = bi, provenite din<br />

60


4.2. Rezolvarea directă s¸i iterativă, în paralel, a sistemelor lineare mari<br />

(a) Domeniu problemă (b) Bobine în formă ”U”<br />

Figura 4.3: Problemă de test Ucoupled<br />

sistemul de stare pentru o listă de frecvent¸e S = n<br />

i=1 fi, se vor studia în primă fază<br />

posibilităt¸ile de a rezolva mai multe sisteme în paralel.<br />

Pentru testele efectuate în cadul acestui subcapitol, s-a considerat o problemă de test<br />

cu două inductoare simple plasate într-un domeniu alcătuit din 3 straturi (Aer, SiO2, Si -<br />

Figura 4.3a). Problemă considerată se va numi Ucoupled [133], s¸i are două conductoare în<br />

formă ”U” (Figura 4.3b) plasate în stratul de SiO2.<br />

Există două moduri de rezolvarea a unui sistem liniar Ax = b: cu metode directe sau<br />

cu metode iterative. Alegerea uneia sau a alteia diferă de tipul matricei sistemului A care<br />

poate fi: reală sau complexă, simetrică sau nesimetrică, pătrată sau dreptunghiulară, rară<br />

sau densă, pozitiv definită sau nu, structurată sau nu.<br />

4.2.1 Rezolvarea directă<br />

Majoritatea metodelor directe de rezolvare ale unui sistem liniar, execută factorizarea<br />

LU a matricei A s¸i încearcă reducerea costurilor, memorie s¸i timp de calcul, minimizând<br />

umplerea cu elemente nenule a factorilor triunghiulari L s¸i U, în procesul de eliminare.<br />

Practic, o metodă directă este alcătuită din patru pas¸i [134]:<br />

1. preordonare, aplicată pentru a reduce umplerea cu elemente nenule;<br />

2. factorizare simbolică, determină structura elementelor nenule din factorii L s¸i U, fără<br />

valori numerice;<br />

3. factorizarea numerică, calcularea efectivă cu valori numerice a factorilor L s¸i U;<br />

4. rezolvarea sistemelor triunghiulare rezultate:<br />

<br />

y = L\b<br />

A · x = b ⇒<br />

x = U\y<br />

61<br />

(4.1)


4. Folosirea sistemelor multiprocesor în modelarea inductoarelor spiralate<br />

Pentru simulări, a fost folosită o metodă directă, ce respectă tiparul de mai sus, s¸i anume<br />

solverul UMFPack [89] dezvoltat de Tim Davis. Implementarea din MATLAB a acestui<br />

solver poate fi considerată o implementare paralelă, deoarece, prin intermediul bibliotecii<br />

LAPACK [130], solverul are acces la operat¸ii BLAS paralele, ce se folosesc de faptul că<br />

procesorul sistemului de calcul are două sau mai multe core-uri. Se va executa, ca test,<br />

rezolvarea unor sisteme liniare de mai multe dimensiuni, generate cu FIT, folosind de la 1<br />

la 8 core-uri.<br />

Nr. DoFs Tip nod<br />

1 2 3<br />

Nr. core-uri<br />

4 5 6 7 8<br />

6317<br />

INTEL<br />

AMD<br />

0.4<br />

0.87<br />

0.33<br />

0.7<br />

0.33<br />

0.62<br />

0.28<br />

0.61<br />

0.27<br />

0.58<br />

0.27<br />

0.6<br />

0.27<br />

0.62<br />

0.28<br />

0.53<br />

17069<br />

INTEL<br />

AMD<br />

3.3<br />

6.21<br />

2.25<br />

4.21<br />

2.24<br />

3.67<br />

1.61<br />

3.28<br />

1.61<br />

3.11<br />

1.47<br />

2.95<br />

1.45<br />

3.25<br />

1.32<br />

2.85<br />

42269<br />

INTEL 26.61 16.57 16.54 10.22 10.23 8.37 8.6 7.56<br />

56927<br />

AMD 49.19 30.3 23.92 20.02 18.87 17.18 18.58 15.6<br />

INTEL 53.61 30.29 30.95 18.83 19.24 15.39 15.44 14.37<br />

AMD 93.38 55.02 43.3 35.65 32.19 30.24 30.62 26.73<br />

Tabelul 4.1: Timpii de rezolvare pentru număr diferit de core-uri<br />

În Tabelul 4.1 se găsesc timpii corespunzători rezolvării unui singur sistem, pentru<br />

număr diferit de core-uri. Se poate conclude, că numărul optim de threads-uri pentru rezolvarea<br />

unui sistem este 8, s¸i că timpul de rezolvare pentru un core este de aproximativ 4 ori<br />

mai mic decât timpul de rezolvare pentru 8 core-uri, T8 core = 4 · T1 core<br />

Următorul test, care va consta tot în rezolvarea unui sistem liniar, însă, de această dată<br />

se va urmări performant¸ele solverului, din punct de vedere al timpului de execut¸ie s¸i al<br />

consumului de memorie.<br />

Test 1 2 3 4 5<br />

Grid 15x15x15 25x25x25 37x37x37 38x38x38 39x39x39<br />

Nr. DoFs 6317 84719 283907 308111 333653<br />

INTEL<br />

Timp [s] 0.26 31.68 430.80 494.31 3108<br />

AMD<br />

Mem. [MB] 24 3414 22280 22365 swap<br />

Timp [s] 0.48 63.16 - - -<br />

Mem. [MB] 23 3442 mem. err. mem. err. mem. err.<br />

Tabelul 4.2: Timpii de rezolvare pentru diferite griduri de discretizare<br />

Privind rezultatele numerice (Tabelul 4.2) pentru problema Ucoupled, se poate observa,<br />

că pe configurat¸ia cu procesor AMD, nu au putut fi rezolvate sistemele mari, cu mai mult de<br />

283907 grade de libertate, din cauza necesarului mare de memorie, care a depăs¸it memoria<br />

fizică instalată (configurat¸ia AMD dispune de 16GB memorie RAM). Din cauza structurii<br />

matricei s¸i a umplerilor cu elemente nenule a factorilor L s¸i U (Figura 4.4), de pe parcurs,<br />

solverul UMFPack necesită o cantiate mare de memorie pentru rezolvare.<br />

62


4.2. Rezolvarea directă s¸i iterativă, în paralel, a sistemelor lineare mari<br />

(a) Înainte de factorizare (b) Umplerea după factorizare<br />

Figura 4.4: Matricea FIT înainte s¸i după factorizarea LU.<br />

Pentru rezolvarea sistemului cu 333653 grade de libertate (DoFs), a fost folosită s¸i o<br />

parte din memoria swap, iar acest lucru se vede în timpul mare de rezolvare. Zona de<br />

memorie swap este rezervată pe hard disk-ul respectivului nod, iar viteza de citire/scriere<br />

din această zonă de memorie este mult mai mică decât viteza de citire/scriere din memoria<br />

RAM. Acest lucru face ca s¸i timpul de rezolvare pentru sistemul 333653 grade de libertate,<br />

executat pe configurat¸ia cu procesor INTEL, să fie de aproximativ 6 ori mai mare decât<br />

timpul de rezolvare al sistemului cu 308111 grade de libertate. Pentru configurat¸ia cu<br />

procesor INTEL, intrarea în swap a fost de maxim 1GB, în timp ce configurat¸ia cu procesor<br />

AMD, ar fi avut nevoie 6GB din memoria swap, pentru a rezolva sistemul cu 283907 grade<br />

de libertate, lucru care ar fi dus la un timp de rezolvare foarte mare. Deci, intrarea în zona<br />

de memorie swap este un caz care trebuie evitat.<br />

4.2.2 Rezolvarea iterativă paralelă<br />

Principalul motiv pentru care s-a decis investigarea metodelor iterative, a fost acela că<br />

ele au nevoie, în principiu datorită absent¸ei umplerilor, de o cantitate mai mică de memorie<br />

decât metodele directe, pentru rezolvarea unui sistem de ecuat¸ii liniare, lucru care ar<br />

permite rezolvarea unor sisteme cu mai multe grade de libertate s¸i, implicit, folosirea unor<br />

griduri de discretizare mai dense.<br />

Au fost studiate două metode iterative, destinate rezolvării sistemelor nesimetrice: metoda<br />

reziduului minimal generalizat (Generalized Minimum Residual - GMRES) [135] s¸i<br />

o metodă îmbunătăt¸ită a gradient¸ilor conjugat¸i (BiConjugate Gradient Stabilized - BiCGS-<br />

TAB) [136]. Deoarece sistemele sunt foarte mari s¸i numărul de iterat¸ii, pe care trebuie să<br />

le parcurgă fiecare metodă, este mare, se impune folosirea unei tehnici de calcul paralel,<br />

pentru a reduce timpul de execut¸ie.<br />

Principala condit¸ie a paralelismului, este ca iterat¸iile de executat să fie independente,<br />

ceea ce nu se întâmplă în cazul metodelor iterative, unde iterat¸iile depind una de cealaltă s¸i<br />

nu pot fi executate în paralel (simultan). As¸adar, trebuie găsită o altă solut¸ie de aplicare a<br />

tehnicilor de calcul paralel.<br />

63


4. Folosirea sistemelor multiprocesor în modelarea inductoarelor spiralate<br />

Fie solut¸ia init¸ială x(0), calculează vectorul reziduu r = bAx(0)<br />

ρ0 = r, v(1) = r/ρ, β = ρ<br />

for k=1 to n număr maxim de iterat¸ii do<br />

for j=1 to k do<br />

h(j) = (Av(k)) ′ v(j))<br />

end<br />

v(k + 1) = Av(k) − k<br />

h(j, k)v(j)<br />

j−1<br />

ortogonalizare Gram-Schmidt<br />

h(k + 1, k) = v(k + 1)<br />

v(k + 1, k) = v(k + 1)/h(k + 1, k)<br />

end<br />

Figura 4.5: Pseudocod algoritm GMRES<br />

Fie solut¸ia init¸ială x(0), calculează vectorul reziduu r = bAx(0)<br />

ρ0 = 1, ρ1 = r(0) ′ r(0), α = 1, ω = 1, p = 0, v = 0<br />

for k=1 to n număr maxim de iterat¸ii do<br />

β = (ρk/ρk−1)(α/ω)<br />

p = r + β(p − ωv)<br />

v = Ap<br />

α = ρk/((r(0) ′ v)<br />

s = r − αv<br />

t = As<br />

ω = (t ′ s)(t ′ t)<br />

x(k) = x(k − 1) + αp + ωs<br />

r = s − ωt<br />

end<br />

Figura 4.6: Pseudocod algoritm BiCGSTAB<br />

Analizând algoritmii celor două metode, GMRES (Figura 4.5) s¸i BiCGSTAB (Figura<br />

4.6), se observă faptul că la fiecare iterat¸ie, se folosesc operat¸ii de algebră liniară: operat¸ii<br />

vector-vector (BLAS 1) s¸i operat¸ii matrice-vector (BLAS 2), operat¸ii ce se găsesc, ca instrumente<br />

de programare, în biblioteca Basic Linear Algebra Subprograms (BLAS) [74].<br />

În funct¸ie de dotările sistemului de calcul, se pot folosi diferite biblioteci, ce utilizează<br />

o formă de paralelism, pentru a apela operat¸ii BLAS paralele:<br />

• pentru sistemele cu mai multe procesoare, se poate folosi biblioteca BLAS multithreaded<br />

(ATLAS [137], Goto BLAS , LAPACK [75]);<br />

• pentru sistemele cu placa GPU, cele mai cunoscute sunt bibliotecile CUBLAS [138]<br />

(pentru matrice dense) sau CUSPARSE [139](pentru matrice rare).<br />

Pentru testele realizate în această lucrare, s-au folosit implementările GMRES s¸i Bi-<br />

CGSTAB din MATLAB, respectiv din biblioteca CUSP. Pentru a putea accesa metodele<br />

iterative din biblioteca CUSP [140], paralelizate cu tehnologia da calcul paralel GPU, au<br />

64


4.2. Rezolvarea directă s¸i iterativă, în paralel, a sistemelor lineare mari<br />

fost scrise programe, ce asigură rezolvărea unui sistem, dar s¸i etapele premergătoare rezolvării:<br />

transferul s¸i compatibilitatea datelor, între MATLAB s¸i formatul acceptat pentru<br />

procesarea GPU.<br />

Mai exact, contribut¸ia autorului este realizarea fis¸ierelor ce cont¸in funct¸ii mex s¸i funct¸ii<br />

MATLAB, ce fac posibilă apelarea metodelor iterative din biblioteca CUSP.<br />

|-- cuda_programs<br />

| |-- iterative_solver.m<br />

| |-- matrix_conv<br />

| | ‘-- csc2coo_matrix.m<br />

| ‘-- solvers<br />

| |-- solver_complex_mex.cu<br />

| ‘-- solver_real_mex.cu<br />

|-- main_test_script.m<br />

|-- make_install.m<br />

|-- matrices<br />

| ‘-- matrices.mat<br />

‘-- read_me_first.txt<br />

Figura 4.7: Structura suitei de programe<br />

Aceste fis¸iere au fost organizate într-o suită de programe (Figura 4.7). Cu ajutorul acestor<br />

programe, se pot rezolva atât sisteme liniare reale rare, cât s¸i sisteme liniare complexe<br />

rare.<br />

Fiecăre funct¸ie a suitei de programe are un rol bine definit:<br />

1. read me first.txt - cont¸ine informat¸ii referitoare la instalarea s¸i utilizarea suitei<br />

de programe (Anexa C.1);<br />

2. make install.m - fis¸ierul de instalare (Anexa C.2);<br />

3. main test script.m - fis¸ier model de apelarea solverelor iterative (Anexa C.3);<br />

4. iterative solver.m - funct¸ie MATLAB, ce apelează funct¸ia de conversie a<br />

matricei (funct¸ie MATLAB), din format CSC în format COO, s¸i funct¸ia de rezolvare<br />

a sistemului (funct¸ie mex) (Anexa C.4);<br />

5. csc2coo matrix.m - funct¸ie MATLAB, ce convertes¸te o matrice în format CSC<br />

în format COO (vezi [141] pentru formate matrice rare - CSC, COO, CSR) (Anexa<br />

C.5);<br />

6. solver complex mex.cu (Anexa C.6)s¸i solver real mex.cu (Anexa C.7)<br />

sunt funct¸ii mex, ce contin codul, care calculează rezultatul sistemului, dar, realizează<br />

s¸i transferul de informat¸ii din mediul MATLAB către placa GPU s¸i invers.<br />

Rezultatele obt¸inute cu metodele iterative paralele GMRES s¸i BiCGSTAB, în cazul sistemului<br />

generat cu metoda FIT pentru problema Ucoupled, sunt inexacte, principala cauză fiind<br />

condit¸ionărea slabă a sistemului. De aceea, în subcapitolul următor se vor testa metode<br />

65


4. Folosirea sistemelor multiprocesor în modelarea inductoarelor spiralate<br />

iterative cu precondit¸ionare. Totus¸i, pentru a ilustra utilitatea metodelor iterative paralele,<br />

ele au fost aplicate rezolvării unor sisteme de ecuat¸ii liniare generate de programul profesional<br />

COMSOL, care foloseste metoda elementelor finite, deci, în funct¸ie de complexitatea<br />

modelului, poate genera matrice rare, simetrice, pozitiv definite, diagonal dominante.<br />

Figura 4.8: Problema Ushape<br />

Pentru problemă de test (Problema Ushape - Figura 4.8), a fost considerat un domeniu,<br />

similar cu cel definit pentru celelalte probleme, respectiv trei straturi Aer, SiO2, Si, s¸i o<br />

bobină în formă ”U”, aflată în stratul de SiO2. Matricele rezultate din acest model sunt rare,<br />

pătrate s¸i diagonal dominante (Figura 4.9). Pentru a putea ”aduce” sistemul matriceal în<br />

mediul MATLAB, a fost folosit toolbox-ul COMSOL Live Link for MATLAB. Contribut¸ia<br />

autorului, constă în scrierea unei funct¸ii (Anexa D, care să exporte sistemul de stare din<br />

mediul COMSOL în mediul MATLAB.<br />

(a) FEM1 (b) FEM2 test (c) FEM3 test<br />

Figura 4.9: Structura matricelor problemei Ushape pentru diferite griduri de discretizare<br />

A fost aleasă forma sistemului de stare, în care matricele sunt rare:<br />

<br />

MC dx(t)<br />

dt = MAx(t) + MBu(t)<br />

, (4.2)<br />

y(t) = Cx + Du(t)<br />

unde matricele MC s¸i MA sunt mai rare decât în alte forme ale sistemului de stare oferite<br />

de Comsol [142]. Astfel, folosind sistemul de stare rezultat, ca dată de intrare pentru algoritmul<br />

AFS-VF, se poate obt¸ine modelul SPICE (modelul de ordin redus) pentru problema<br />

66


4.2. Rezolvarea directă s¸i iterativă, în paralel, a sistemelor lineare mari<br />

modelată. În prima variantă, modelul cont¸ine efectele câmpului electromagnetic modelate<br />

cu metoda FIT, în schimb, acest model va cont¸ine efectele modelate cu metoda FEM.<br />

Au fost executate teste, pe două tipuri de platformă de calcul:<br />

• CPU - folosind nodul Psi, având configurat¸ia 2 x Intel Xeon i7 CPUs, 2.66 GHz cu 8<br />

MB memorie cache, un total de 8 cores per nod, s¸i 24 GB memorie RAM;<br />

• GPU - folosind NVIDIA Tesla C1060 [132], 240 cores, 1.296 GHz per core, 4GB<br />

memorie RAM.<br />

Testul a constat în rezolvarea unui sistem complex A · x = b, folosind solverul GMRES<br />

cu restart, pentru care a fost calculat norma reziduului rezultatului final, R = norm(b−A∗x)<br />

,<br />

norm(b)<br />

s¸i accelerarea, S = TCP U . Pentru GPU, testul a fost rezolvat pentru două valori de restart<br />

TGP U<br />

50 (GPU1), respectiv 5000 (GPU2), iar pentru CPU valoarea de restart a fost setată la 50.<br />

Problemă FEM1 FEM2 FEM3<br />

No. of DoFs 7196 11568 19486<br />

Results Timp [s] R Timp [s] R Timp [s] R<br />

GMRES<br />

CPU<br />

GPU1<br />

5086<br />

62<br />

7.6e-2<br />

9.1e-2<br />

11860<br />

161<br />

7.4e-2<br />

4.0e-2<br />

26766<br />

452<br />

2.8e-2<br />

3.8e-2<br />

GPU2 3165 7.3e-6 476 2.98e-5 15875 3.73e-6<br />

Speedup1 82 73 59<br />

Speedup2 1.6 24 1.7<br />

Tabelul 4.3: Rezultatele testelor pentru diferite griduri de discretizare<br />

Rezultatele obt¸inute pentru CPU s¸i GPU1 arată o accelerare foarte bună, în condit¸iile<br />

în care acuratet¸ea este aproximativ aceeas¸i. În mod normal, în aceleas¸i condit¸ii de rulare,<br />

rezultatele ar fi trebuit să fie identice, însuă, din cauza implementării algoritmului GMRES,<br />

pot apărea mici diferent¸e. Testul GPU2 arată că se pot obt¸ine rezultate cu o acuratet¸e mai<br />

bună, însă, după cum se poate vedea s¸i în Tabelul 4.3, costurile, din punct de vedere al<br />

timpului de execut¸ie, sunt destul de ridicate.<br />

Acelas¸i test a fost executat pentru o alta problemă, din colect¸ia de exemple COMSOL,<br />

ce constă într-o bobina spiralată aflată într-un domeniu cu Aer (Figura 4.10).<br />

Problem FEM1 FEM2 FEM3<br />

No. of DoFs 9874 10452 14569<br />

Results Time [s] Norm Time [s] Norm Time [s] Norm<br />

GMRES<br />

CPU<br />

GPU<br />

2652<br />

1694<br />

1.3e-6<br />

4.2e-4<br />

2646<br />

1081<br />

1.0e-6<br />

5.4e-4<br />

28213<br />

2127<br />

3.9e-2<br />

4.9e-4<br />

Speedup 1.57 2.45 13.26<br />

Tabelul 4.4: Rezultatele testelor pentru diferite griduri de discretizare<br />

S¸i în cazul acestei probleme (Tabelul 4.4), s-a observat, că pe GPU obt¸in performant¸e<br />

mai bune decât pe CPU. Un alt lucru, de asemnea important, este acela, că pentru ambele<br />

67


4. Folosirea sistemelor multiprocesor în modelarea inductoarelor spiralate<br />

Figura 4.10: Problema cu bobina spiralată<br />

probleme, Ushape s¸i Bobină Spiralată, discretizate cu gridul FEM3, s-a consumat o cantitate<br />

mai mare de 4GB memorie. Concluzia imediată este, că pe GPU a fost consumată o<br />

cantitate mai mică sau cel put¸in egală cu 4GB, placa GPU având o memorie fizică de doar<br />

4GB.<br />

După o investigat¸ie a codului s-a descoperit că în realitate solverul GMRES din biblioteca<br />

CUSP foloses¸te nu doar memoria plăcii GPU, ci s¸i memoria RAM a calculatorului<br />

pentru a executa anumite operat¸ii ale algortimului de rezolvare - norma s¸i produsul scalar<br />

(dot product). Aceste operat¸ii ret¸in doar o valoare as¸a că folosirea procesării GPU nu este<br />

eficientă, ele fiind mai potrivit de executat pe CPU folosind memoria RAM. În acest fel solverul<br />

implementat pe GPU reus¸es¸te să rezolve sisteme care necesită o cantitate de memorie<br />

mai mare decât cea fizic instalată.<br />

În concluzie, s-a demonstrat că solverele GPU sunt mai performante din punct de vedere<br />

al timpului de execut¸ie decât solverele seriale CPU. Pe parcursul cercetărilor s-a observat că<br />

perfomant¸ele s¸i acuratet¸ea solverelor GPU depind puternic de: tolerant¸ă impusă, numărul<br />

maxim de iterat¸ii s¸i valorea de restart a metodei iterative. De asemenea, s-a observat că solverele<br />

GPU nu reus¸esc să obt¸ină rezultate exacte pentru sistemele generate cu metoda FIT,<br />

una din principalele cauze fiind condit¸ionarea slabă a matricei sistemului. Următorul pas<br />

în investigarea metodelor iterative reprezintă investigarea metodelor de precondit¸ionare.<br />

4.2.3 Rezolvarea iterativă cu precondit¸ionare<br />

Spre deosebire de metodele directe, metodele iterative nu aduc modificări matricei A,<br />

ci ele caută, succesiv, cea mai bună aproximare a solut¸iei x. Vectorul reziduurilor<br />

rk = b − A · xk, (4.3)<br />

indică cât de aproape este solut¸ia de la iterat¸ia k, de solut¸ia reală x. Solut¸ia de la iteratia<br />

k + 1 se calculează adăugând solut¸iei anterioare o corect¸ie ce depinde de acest reziduu, de<br />

exemplu, în cazul cel mai simplu (metoda iterativă Richardson):<br />

xk+1 = xk + rk = xk + b − A · xk . (4.4)<br />

68


4.2. Rezolvarea directă s¸i iterativă, în paralel, a sistemelor lineare mari<br />

Se constată că la fiecare iterat¸ie efortul de calcul este mic s¸i se reduce practic la o<br />

înmult¸ire matrice-vector. Deoarece, în cazul unui sistem mare, metodele iterative au nevoie<br />

de un număr mare de iterat¸ii pentru a obt¸ine solut¸ia, se pot folosi, pentru îmbunătăt¸irea<br />

convergent¸ei, metode de precondit¸ionare. Metodele de precondit¸ionare folosesc o matrice<br />

M ce aproximează inversa matricei A [143], cu ajutorul căreia se obt¸ine un sistem a cărui<br />

rezolvare necesită mai put¸ine iterat¸ii:<br />

M · A · x = M · b. (4.5)<br />

Cu cât matricea M este mai aproape de inversa matricei A, cu atât numărul de iterat¸ii<br />

este mai mic. La limită, este suficientă o singura iterat¸ie, dar acesta este de fapt cazul<br />

metodeleor directe.<br />

Matricea M trebuie să fie la rândul ei rară s¸i să poată fi calculată fără efort prea mare<br />

de calcul. Folosind precondit¸ionarea, relat¸ia (4.4) devine:<br />

M · A · x = M · b. (4.6)<br />

Matricea noului sistem A1 = M · A, are proprietăt¸i mai bune decât matricea A, în cazul<br />

matricelor FIT, un număr de condit¸ionare mai mic [143]. Numărul de condit¸ionare poate fi<br />

calculat cu formula:<br />

ncond = A −1 · A, (4.7)<br />

s¸i el furnizează informat¸ii referitoare la cât de bine sau cât slab condit¸ionată este matricea<br />

A. În mediul Matlab, numărul de condit¸ionare poate fi calculat cu ajutorul comenzii<br />

condest(A), dar, este evident că acest calcul cere un efort mare pentru matrice de mari<br />

dimensiuni.<br />

După mai multe teste, ca metodă de precondit¸ionare, a fost folosită factorizarea incompletă<br />

ilu [144], iar pentru rezolvare metoda reziduului minimal generalizat (Generalized<br />

Minimum Residual - GMRES) [135]:<br />

• GMRES cu precondit¸ionare ilu, apelate din MATLAB[126] (iluMAT );<br />

• GMRES cu precondit¸ionare ilu, apelate din toolbox-ul pentru MATLAB, ILUPACK<br />

[145] (iluP ACK).<br />

Factorizarea incompletă aproximează, până la un anumit punct indicat printr-o limită<br />

setată manual, factorii L s¸i U. Factorii L s¸i U sunt folosit¸i ca matrice de precondit¸ionare<br />

pentru apelul funt¸iei GMRES (în Matlab: x = gmres(A, b, [], tol, no it,<br />

L, U);).<br />

ILUPACK execută următorii pas¸i:<br />

1. preordonarea matricei sistemului folosind AMD, METIS, RCM, MMD, AMF (pentru<br />

detalii vezi site http://www.icm.tu-bs.de/˜bolle/ilupack/doc/<br />

matlab.html);<br />

2. calculul inversei matricei preordonate, folosind factorizarea incompletă cu pivotare<br />

diagonală;<br />

69


4. Folosirea sistemelor multiprocesor în modelarea inductoarelor spiralate<br />

3. aplicarea unei strategii recursive, ce aplică in mod repetat pas¸ii 1s¸i 2, pentru calculul<br />

complementului Schur, ce are ca rezultat factorii incomplet¸i L s¸i U;<br />

4. rezolvarea sistemului folosind factorii L s¸i U rezultat¸i la pasul 4.<br />

Pentru testele executate în cadrul acestei etape, au fost utilizate matricele FIT pentru<br />

problema Ucoupled.În Tabelul 4.5, se găsesc rezultatele, pentru rezolvarea unui sistem liniar,<br />

obt¸inute pentru cele două metode iterative cu precondit¸ionare: iluP ACK s¸i iluMAT .<br />

Grid 10x10x10 15x15x15 20x20x20 25x25x25 30x30x30<br />

DoFs 4631 17069 42269 84719 148895<br />

mem. [GB] 0.32 1.3 8 14 mem err<br />

iluP ACK Timp [s] 2.82 37.15 427.25 7638 -<br />

R 3.8e-12 2.1e-11 6.4e-12 4.2e-12 -<br />

mem. [GB] 0.4 2 mem err - -<br />

iluMAT Timp [s] 2.1 44.5 - - -<br />

R 7.68e-13 3.15e-12 - - -<br />

Tabelul 4.5: Rezulte numerice obt¸inute cu metode iterative cu precondit¸ionare<br />

Consumul mare de memorie în cazul metodelor iterative cu precondit¸ionare, se datorează<br />

condit¸iilor impuse metodei de precondit¸ionare, anume factorizarea incompletă.<br />

Condit¸iile restrictive ale factorizării incomplete au dus la umplerea, cu valori nenule, a<br />

matricei de precondit¸ionare, lucru care se traduce în consum mare de memorie. Deci, folosirea<br />

unor condit¸ii mai slabe pentru precondit¸ionare ar duce la un consum mai mic de<br />

memorie, însă timpul de execut¸ie al precondit¸ionării rămâne acelas¸i, deci, s¸i timpul total de<br />

rezolvare rămâne ridicat.<br />

În Tabelul 4.5, timpii prezentat¸i pentru rezolvarea sistemului, reprezintă suma timpului<br />

pentru obt¸inerea matricei de precondit¸ionare adunat cu timpul pentru rezolvarea efectivă<br />

a sistemului folosind metoda iterativă. Trebuie ment¸ionat faptul că timpul de rezolvare<br />

al sistemului a fost mult mai mic decât timpul de calcul al matricei de precondit¸ionare,<br />

metoda iterativă reus¸ind să ajungă la rezultatul final după 3-4 iterat¸ii.<br />

În Figura 4.11 sunt centralizate performant¸ele metodelor de rezolvare prezentate în<br />

acest subcapitol. Concluzia acestui subcapitol este că metoda directă (solverul UMFPack),<br />

obt¸ine cele mai bune rezultate, pentru matricele generate folosind metoda FIT. Găsirea unei<br />

tehnici competitive de precondit¸ionare, pentru aceste matrice, necesită studii suplimentare,<br />

această problemă rămânˆnd deschisă. Drept urmare, acest solver va fi folosit pentru simulările<br />

din subcapitolele ce urmează.<br />

4.2.4 Rezolvarea, în paralel, a mai multor sisteme liniare<br />

Rezolvarea, în paralel, a mai multor sisteme liniare reprezintă etapa premergătoare<br />

paralelizării algoritmului AFS-VF. Pentru această sect¸iune, se consideră ca test rezolvarea<br />

sistemului pentru problema Ucoupled pentru o listă de frecvent¸e. Din problema Ucoupled<br />

discretizată cu un grid 22 × 22 × 22, rezultă un sistem cu 56927 grade de libertate. Acest<br />

sistem trebuie rezolvat pentru un număr de frecvent¸e nfrec, din banda 1 − 60GHz. Pentru<br />

70


4.2. Rezolvarea directă s¸i iterativă, în paralel, a sistemelor lineare mari<br />

(a) Memorie (b) Timp<br />

Figura 4.11: Performant¸e metode de rezolvare directe vs iterative<br />

rezolvarea unui sistem, a fost nevoie de 1.7GB memorie, însă, deoarece configurat¸ia cu<br />

procesoare INTEL s-a dovedit a fi mai rapidă, testul următor, va fi executat folosind numai<br />

nodurile cu acest tip de procesor.<br />

Se vor rula testele folosind cele două versiuni paralele:<br />

• abordarea cu un singur nivel de granularitate, unde 1 worker (unitate de lucru) = 1<br />

core (notată cu 1LvlGr);<br />

• abordarea cu două nivele de granularitate, unde 1 worker = 1 nod cu 8 core-uri al<br />

cluster-ului (notată cu 2LvlGr). Primul nivel reprezintă rezolvarea simultană a sistemelor,<br />

iar al doilea nivel reprezintă rezolvarea cu UMFPACK, folosind 8 core-uri.<br />

Speedup-ul (accelererea) este calculat după formula:<br />

S = Ts<br />

=<br />

Tp<br />

nfreq ∗ T1<br />

, (4.8)<br />

Tp<br />

unde Ts reprezintă timpul serial, T1 timpul de rezolvare al unui sistem pentru o frecvent¸ă,<br />

nfrec numărul de frecvent¸e, iar Tp timpul paralel.<br />

Pentru un singur sistem cu 56927 grade de libertate, timpul de rezolvare obt¸inut este<br />

T1 = 13.41. Timpii paraleli (Tabelul 4.6) au fost obt¸inut¸i rulând cele două versiuni pe 4 noduri<br />

din cluster-ul Atlas, rezultând 32 workersi pentru versiunea cu un nivel de granularitate<br />

s¸i 4 workersi pentru versiunea cu două nivele de granularitate.<br />

Din punct de vedere al speedup-ului (Tabelul 4.6), se poate spune că abordarea cu un<br />

singur nivel de granularitate (1LvlGr) obt¸ine performant¸e mai bune fat¸ă de abordarea cu<br />

două nivele de granularitate (2LvlGr), doar atunci când avem un număr mic de sisteme de<br />

rezolvat (sub 10).<br />

Pentru a avea o imagine mai clară asupra perfomant¸elor celor două versiuni, vom face<br />

o analiză a eficient¸iei acestora.<br />

Analiza eficient¸ei folosirii versiunilor paralele<br />

Se consideră notat¸iile:<br />

71


4. Folosirea sistemelor multiprocesor în modelarea inductoarelor spiralate<br />

Timp [s]<br />

Speedup<br />

nfrec 10 20 30 40 59<br />

Ts 134.1 268.2 402.3 536.4 791.19<br />

Tp 1LvlGr 67.57 67.87 69.33 122.13 123.02<br />

Tp 2LvlGr 40.57 68.30 105.73 132.18 196.20<br />

S1LvlGr 1.98 3.95 5.80 4.39 6.43<br />

S2LvlGr 3.31 3.93 3.80 4.06 4.03<br />

Tabelul 4.6: Rezultatele numerice pentru cele două versiuni<br />

• [n] - partea întreagă lui n;<br />

• {n} - parte fract¸ionară a lui n;<br />

• nfrec - numărul de frecvent¸e;<br />

• nworker - numărul de workersi pentru versiunea 1LvlGr;<br />

• 8 ∗ nworker - numărul de workersi pentru versiunea 2LvlGr;<br />

⎧<br />

1 dacă nfrec < nworker<br />

⎪⎨<br />

• nit =<br />

⎪⎩<br />

nfrec<br />

nworker<br />

nfrec<br />

nworker<br />

dacă<br />

nfrec<br />

nworker<br />

<br />

+ 1 dacă<br />

<br />

= 0<br />

nfrec<br />

nworker<br />

<br />

= 0<br />

- numărul de iterat¸ii.<br />

Din testele efectuate pe durata cercetării, a rezultat că timpul de rezolvare al unui sistem<br />

cu 1 core este de aproximativ 4 ori mai mare decât timpul de rezolvare al unui sistem cu 8<br />

core-uri: T1 = 4 ∗ T8.<br />

Făcând un simplu calcul, se poate aproxima, ce implementare va fi mai rapidă. Acest<br />

lucru se poate face comparând timpii de execut¸ie obt¸inut¸i pentru fiecare implementare,<br />

timpi ce se vor numi timpi paraleli Tp. Timpul paralel se calculează după formula: Tp =<br />

nit ∗ Ti, unde nit se obt¸ine după definit¸ia de mai sus, iar Ti reprezintă timpul de rezolvare<br />

al unui sistem.<br />

În concluzie, vom avea număr de iterat¸ii diferit, s¸i, implcit, timpi paraleli diferit¸i pentru<br />

fiecare versiune. Pentru versiunea 1LvlGr, timpul paralel devine:<br />

iar pentru versiunea 2LvlGr, timpul paralel este:<br />

Exemplul 1<br />

nfrec = 10<br />

Tp1 = nit1 ∗ T1, (4.9)<br />

Tp2 = nit2 ∗ T8. (4.10)<br />

nworker = 4 workersi pentru 2LvlGr<br />

8 ∗ nworker = 32 workersi pentru 1LvlGr<br />

T1 este timpul de rezolvare al unui sistem pentru 1LvlGr, iar timpul T8 este timpul de rezolvare<br />

al unui sistem pentru 2LvlGr<br />

72


4.3. Paralelizarea Es¸ationării Adaptive a Frecvent¸elor cu Vector Fitting(AFS-VF paralel)<br />

T1 = 4 ∗ T8<br />

Tp1 = nit1 ∗ T1 = 1 ∗ T1 = 1 ∗ 4 ∗ T8 pentru 1LvlGr<br />

Tp2 = nit2 ∗ T8 = 3 ∗ T8 pentru 2LvlGr<br />

În acest caz timpul paralel pentru 2LvlGr este mai mic decât timpul paralel pentru<br />

1LvlGr (se verifică, vezi Tabelul 4.6).<br />

În ceea ce prives¸te rezolvarea sistemelor pentru o listă de frecvent¸e, au fost propuse<br />

două abordări. Rezultatele testelor au arătat, că înainte de a utiliza una din abordările<br />

paralele, poate fi făcut un calcul prin care să se aproximeze timpul de execut¸ie, pentru a<br />

vedea, care din cele două versiuni este mai portrivită pentru a rezolva respectivul caz.<br />

Un alt lucru foarte important, pentru decizia utilizării uneia dintre versiunile propuse,<br />

este acela că pentru versiunea 1LvlGr (1 worker = 1 core), 1 worker va avea la dispozit¸ie<br />

doar 1<br />

24<br />

din memoria totală a nodului respectiv, adică, în cazul nodurilor INTEL, = 3GB<br />

8 8<br />

memorie RAM. Această limitare reprezintă un important dezavantaj, deoarece folosind<br />

această versiune, se vor putea rezolva doar sisteme care necesită o cantitate de maxim 3 GB<br />

memorie (aproximativ 85000 grade de libertate), ceea ce înseamnă că gridul de discretizare<br />

nu poate fi foarte dens, rezultând simulări cu erori mai mari.<br />

De asemenea, s-a observat faptul că, pentru un număr mic de frecvent¸e (mai mic de 10),<br />

versiunea cu două nivele de granularitate obt¸ine performant¸e mai bune decât versiunea cu<br />

un singur nivel de granularitate.<br />

4.3 Paralelizarea Es¸ationării Adaptive a Frecvent¸elor cu<br />

Vector Fitting(AFS-VF paralel)<br />

As¸a cum a fost prezentat în Capitolul 3, pasul critic al algoritmului AFS-VF, implică<br />

rezolvarea unui sistem liniar de ecuat¸ii, de tip A · x = b, pentru o serie de frecvent¸e. Acest<br />

lucru se întâmplă, din cauza sistemelor de rezolvat, care au o dimensiune foarte mare (pot<br />

depăs¸i 10 6 grade de libertate), ceea ce implică timpi de rezolvare foarte mari.<br />

Folosind tehnici de calcul paralel s¸i distribuit, autorul propune două versiuni paralele<br />

ale algoritmului AFS-VF [146], obiectivul folosirii lor, fiind acela de a reduce la minimum<br />

timpul de modelare. Practic, cele două versiuni propuse urmăresc algoritmul serial, însă,<br />

pasul critic este executat folosind abordările paralele ment¸ionate în subcapitolul anterior.<br />

Rezultă, două abordări, cu un nivel de granularitate, respectiv cu două nivele de granularitate,<br />

ambele cont¸inând aceeas¸i succesiune de pas¸i:<br />

1. citirea datelor de intrare - încărcarea sistemului matriceal în memoria fiecarui worker<br />

(unitate de lucru);<br />

2. distribuirea listei de frecvent¸e - fiecare worker primes¸te un set de frecvent¸e, pentru<br />

care sistemul trebuie rezolvat;<br />

3. rezolvarea simultană pentru fiecare set de frecvent¸e primit;<br />

4. asamblarea răspunsului - pregătirea datelor de ies¸ire într-un format compatibil cu<br />

restul programului.<br />

73


4. Folosirea sistemelor multiprocesor în modelarea inductoarelor spiralate<br />

Diferent¸a dintre cele două versiuni constă în abordarea hardware-ului s¸i software-ului<br />

sistemului de calcul, din punct de vedere al granularităt¸ii. Nivelul de granularitate are o<br />

mare influent¸ă asupra performant¸elor algoritmului paralel, deoarece un nivel de granularitate<br />

prea mare ar încetini execut¸ia programului (din cauza timpilor de comunicare), iar un<br />

nivel de granularitate prea mic, nu ar exploata la maxim resursele de calcul.<br />

Prima abordare, propusă de autor, este construită cu un singur nivel de granularitate, iar,<br />

dacă se ia în calcul numărul de sarcini în care este împart¸it pasul de executat, se poate spune<br />

că se foloses¸te granularitate grosieră. A doua abordare, propusă, este construită cu două<br />

nivele de granularitate: primul nivel cu granularitate mare, constând in rezolvarea simultană<br />

a mai multor sisteme, iar cel de-al doilea, cu granularitate fină, constând în rezolvarea<br />

sistemului folosind procesarea multicore.<br />

Altfel spus, prima abordare (Figura 4.12a) foloses¸te, ca unitate de lucru (worker), coreurile<br />

fiecărui nod din cluster, iar a doua abordare (Figura 4.12b) foloses¸te ca unitate de<br />

lucru la primul nivel nodurile cluster-ului, iar la al doilea nivel core-urile procesoarelor.<br />

(a) Un nivel de granularitate (b) Două nivele de granularitate<br />

Figura 4.12: Abordări paralele ale AFS-VF<br />

Performat¸a algoritmului AFS-VF paralel poate fi s¸i ea calculată, pornind de la analiza<br />

făcută în subcapitolul anterior. Timpul de execut¸ie al algoritmului AFS-VF paralel poate fi<br />

aproximat cu formula:<br />

Tp AF S =<br />

nit AF<br />

S<br />

i=1<br />

Tpi<br />

(4.11)<br />

unde Tp AF S, reprezintă timpul paralel de execut¸ie al algoritmului AFS-VF, Tpi reprezintă<br />

timpul paralel pentru fiecare iterat¸ie (calculat folosind formulele 4.9 s¸i 4.10, prezentate mai<br />

sus), iar nit numărul de iterat¸ii.<br />

Exemplul 2 Presupunem cazul prezentat în Tabelul 4.7, pentru 4 puncte de start. Avem ca<br />

date de intrare:<br />

nitAF = 2 S<br />

nworker = 4 workersi pentru 2LvlGr<br />

74


4.3. Paralelizarea Es¸ationării Adaptive a Frecvent¸elor cu Vector Fitting(AFS-VF paralel)<br />

8 ∗ nworker = 32 workersi pentru 1LvlGr<br />

T1 este timpul de rezolvare al unui sistem pentru 1LvlGr, iar timpul T8 este timpul de<br />

rezolvare al unui sistem pentru 2LvlGr, T1 = 4 ∗ T8<br />

Observat¸ia 1 Trebuie ment¸ionat faptul că implementările paralele rezolvă la prima iterat¸ie<br />

un număr de sisteme egal cu suma dintre numărul punctelor de start s¸i numărul de sisteme<br />

S ′ de rezolvat pentru prima iterat¸ie din tabelul de convergent¸ă.<br />

Pentru 1LvlGr avem nitAF S<br />

= 2 timpi paraleli de calculat:<br />

Tp1 = nit1 ∗ T1 = 1 ∗ T1 = 1 ∗ 4 ∗ T8<br />

(numărul de frecvent¸e, pentru iterat¸ia 1, este 4+3=7, vezi Tabelul 4.7)<br />

Tp2 = nit2 ∗ T1 = 1 ∗ T1 = 1 ∗ 4 ∗ T8<br />

(numărul de frecvent¸e, pentru iterat¸ia 2, este 6, vezi Tabelul 4.7)<br />

Tp AF S 1LvlGr = 2<br />

i=1<br />

Pentru 2LvlGr avem nitAF S<br />

Tpi = Tp1 + Tp2 = 4 ∗ T8 + 4 ∗ T8 = 8 ∗ T8<br />

= 2 timpi paraleli de calculat:<br />

Tp1 = nit1 ∗ T8 = 2 ∗ T8<br />

(numărul de frecvent¸e, pentru iterat¸ia 1, este 4+3=7, vezi Tabelul 4.7)<br />

Tp2 = nit2 ∗ T8 = 2 ∗ T8<br />

(numărul de frecvent¸e, pentru iterat¸ia 2, este 6, vezi Tabelul 4.7)<br />

Tp AF S 2LvlGr = 2<br />

i=1<br />

Tpi = Tp1 + Tp2 = 2 ∗ T8 + 2 ∗ T8 = 4 ∗ T8<br />

În acest caz timpul paralel pentru 2LvlGr este mai mic decât timpul paralel pentru<br />

1LvlGr.<br />

εAF S εV F Nr. pct. Convergent¸a<br />

1e-3 1e-5 4<br />

1e-3 1e-5 8<br />

iterat¸ie 1 2<br />

S ′ 3 6<br />

S + S ′ 7 13<br />

iterat¸ie 1<br />

S ′ 7<br />

S + S ′ 15<br />

Tabelul 4.7: Convergent¸a algoritmului AFS-VF3 pentru problema Ucoupled<br />

În Tabelul 4.7 este prezentată convergent¸a algoritmului AFS-VF3 pentru problema Ucoupled,<br />

cu grid 20 × 20 × 20, 56927 grade de libertate, s¸i parametri diferit¸i (εAF S, εV F ,<br />

numărul punctelor de start). Se poate observa, că numărul de sisteme S ′ , care trebuie rezolvat<br />

pentru fiecare iterat¸ie, este mai mic de 10 pentru primul caz, cu 4 puncte de start, s¸i<br />

mai mare 10 pentru al doilea caz, cu 8 puncte de start.<br />

În Tabelul 4.8 sunt prezentat¸i timpii de execut¸ie, în cazul mai sus ment¸ionat, ai algoritmului<br />

AFS-VF pentru problema Ucoupled. Se poate observa, că aproximările făcute, sunt<br />

adevărate, implementarea cu două nivele de granularitate obt¸inând timpi mai mici în cazul<br />

cu 4 pucte de start (unde avem sub 10 puncte per iterat¸ie) s¸i timpi mai mari în cazul cu 8<br />

puncte de start (unde avem peste 10 puncte per iterat¸ie).<br />

75


4. Folosirea sistemelor multiprocesor în modelarea inductoarelor spiralate<br />

U coupled<br />

Grid 20 × 20 × 20<br />

DoFs 42269<br />

Nr. in/out 2<br />

Nr. pct. Timp [s]<br />

Ts 141.8<br />

4 Tp 1LvlGr 90.39<br />

Tp 2LvlGr 60.27<br />

Ts 157.64<br />

8 Tp 1LvlGr 47.76<br />

59.27<br />

Tp 2LvlGr<br />

Tabelul 4.8: Timpii de execut¸ie ai algortimului AFS-VF pentru problema Ucoupled<br />

De asemenea, abordările paralele ale algoritmului AFS-VF, păstrează limitările rezolvării,<br />

în paralel, a mai multor sisteme, respectiv implementarea cu un singur nivel de<br />

granularitate poate folosi doar 1 din memoria totală pentru rezolvarea unui sistem. Din<br />

8<br />

punct de vedere al abordării problemelor de dimensiuni mari, abordarea cu două nivele de<br />

granularitate este superioară, deoarece oferă o cantitate de memorie mai mare pentru rezolvarea<br />

unui sistem. Însă, pentru sisteme mici, poate fi folosită metoda de calcul a accelerării,<br />

pentru a determina alegerea optimă între cele două aborda˘ri.<br />

4.4 Concluzii<br />

În introducerea acestui articol au introduse câteva not¸iuni legate de sistemele multiprocesor<br />

actuale, dar s¸i tehnici de programare paralelă a acestor sisteme. Studiu referitor<br />

la metodele de rezolvare a oferit informat¸ii pret¸ioase legate de tipul solverului ce trebuie<br />

ales pentru o rezolvare cu acuratet¸e ridicată a sistemelor cu matrice rare generate cu ajutorul<br />

Chamy. În finalul acestui capitol au fost propuse doă implementări paralele ale algoritmului<br />

AFS-VF, cu un nivle de granularitate, respectiv cu două nivele de granularitate, prezentând<br />

atât avantajele cât s¸i dezavantajele folosirii lor. De asemenea, a fost prezentat s¸i o metodă<br />

de calcul a eficient¸ei acestor implementări.<br />

Despre eficient¸a folosirii implementărilor paralele, se va vorbi s¸i în capitolul următor<br />

pentru fiecare strutură de test modelată.<br />

76


Studii de caz - rezultate numerice s¸i validarea lor<br />

experimentală<br />

CAPITOLUL 5<br />

Pentru validarea perfomant¸elor implementărilor paralele ale AFS-VF au fost analizate<br />

trei structuri de test: CDST-SP-MIDDLE, CHRF217 s¸i CHRF201. Acestea au fost concepute<br />

s¸i realizate în tehnologia CMOS, de parteneri industriali ai CHAMELEON RF s¸i<br />

CO<strong>DE</strong>STAR, s¸i caracterizate experimental de aces¸tia.<br />

Prima etapă a procesului de modelare electromagnetică constă în modelarea geometrică.<br />

Geometria dispozitivelor se extrage din fis¸ierele .gds, care descriu prin coordonate<br />

din planul orizontal xOy măs¸tile prin care se realizează acele dispozitive. Coordonatele<br />

pe axa y se obt¸in din fis¸ierul de tehnologie, fis¸ier ce cont¸ine dimensiunea s¸i dispunerea<br />

straturilor în dispozitiv (Figura 5.1 s¸i Tabelul 5.1). Aceste date sunt asamblate în fis¸ierul de<br />

geometrie folosit în Chamy.<br />

Următoarea etapă constă în modelarea fizică, prezentată în Capitolul 3, în care au fost<br />

identificate principalele fenomene fizice care apar în funct¸ionarea dispozitivului s¸i sursele<br />

câmpului electromagnetic, în regimul cel mai potrivit pentru analiza dispozitivului. Tot<br />

în acelas¸i capitol a fost prezentată s¸i modelarea matematică, în care au fost prezentate<br />

ecuat¸iile ce descriu fenomenele fizice, condit¸iile de frontieră, s¸i a fost formulată corect<br />

problema ce va fi rezolvată, identificându-se datele s¸i rezultatele ei.<br />

Modelarea aproximativă este cea de-a treia etapă procesului de modelare electromagnetică<br />

s¸i ea constă în rezolvarea analitică a problemei, pentru a extrage modelul cu parametri<br />

concentrat¸i al dispozitivului analizat. Modelarea numerică presupune rezolvarea<br />

problemei de câmp electromagnetic folosind modelul discretizat. Validarea se face prin<br />

compararea celor două solut¸ii (analitică s¸i numerică), dar verificarea cea mai puternică se<br />

realizează prin comparat¸ia cu rezultatele experimentale.<br />

Modelarea numerică va fi făcută cu ajutorul programului Chamy, bazat pe tehnica integrărilor<br />

finite (FIT), prezentată anterior. Chamy generează în mod automat o ret¸ea de<br />

discretizare minimală, însă pentru a obt¸ine rezultate cât mai exacte, va fi folosită o ret¸ea de<br />

discretizare adaptată. Datele de ies¸iere ale acestui program, în care a fost încorporată procedura<br />

paralelă AFS-VF, constau în: modelul de ordin redus sub forma unui circuit SPICE<br />

s¸i caracteristica în frecvent¸ă a dispozitivului modelat. Scopul acestui capitol este de a valida<br />

s¸i evalua cantitativ versiunea Chamy+AFS-VF paralel prin comparat¸ie cu versiunea<br />

secvent¸ială a programului Chamy-VF.<br />

77


5. Studii de caz - rezultate numerice s¸i validarea lor experimentală<br />

Figura 5.1: Dispunerea straturilor în tehnologia folosită pentru problemele CO<strong>DE</strong>STAR s¸i<br />

CHAMELEON<br />

Strat Grosime [µm] Material<br />

aer 725 Aer<br />

prot2 1 Nitride<br />

prot1 0.9 Oxide1<br />

met4 3.1 alum1 în Oxide2<br />

via3 1 tun1 în Oxide2<br />

met3 0.64 alum2 în Oxide2<br />

met1-met2 3.305 Oxide2<br />

nwell 3 SUB5 în SUB1<br />

substrat 725 SUB1<br />

Tabelul 5.1: Parametri geometrici ai straturilor<br />

78


5.1. Inductorul spiralat pătrat - CDST-SP-MIDDLE<br />

5.1 Inductorul spiralat pătrat - CDST-SP-MIDDLE<br />

Problema CDST-SP-MIDDLE se referă la un inductor spiralat pătrat ce are amble terminale<br />

excitate în tensiune, iar substratul de Si conectat la GND. Geometria 2D, în coordonate<br />

xOz, a dispozitivului provine din fis¸ierul .gds (Figura 5.2a - vedere din Layouteditor<br />

[63]). Coordonata pe axa Oy provine din fis¸ierul de tehnologie, obtinându-se astfel geometria<br />

3D (Figura 5.2b - vedere din COMSOL) a dispozitivului de modelat.<br />

(a) Layout (b) Vedere 3D<br />

Figura 5.2: Problema CDST-SP-MIDLLE<br />

Caracteristicile materialelor folosite pentru clasa de probleme CO<strong>DE</strong>STAR sunt prezentate<br />

în Tabelul 5.2.<br />

Material Tip µr εr σ [S/m]<br />

alum1 Al-conductor 1 1 6.60 · 10 7<br />

alum2 Al-conductor 1 1 1.25 · 10 7<br />

tun1 W-conductor 1 1 3.33 · 10 6<br />

SUB1 (Si) semi-conductor 1 11.7 5<br />

SUB5 (Si) semi-conductor 1 11.7 3.33 · 10 3<br />

Oxide1 izolator 1 3.9 0<br />

Oxide2 izolator 1 4.1 0<br />

Nitride izolator 1 7.5 0<br />

Tabelul 5.2: Materialele problemelor CO<strong>DE</strong>STAR<br />

Conform tehnologiei de fabricat¸ie (Figura 5.1) inductorul cont¸ine materialele prezentate<br />

în Figura 5.3.<br />

Dimensiunile inductorului spiralat (Figura 5.4) sunt: s = 3µm, w = 20µm, dout =<br />

200µm, din = 114µm, p1 = 69.80µm s¸i p2 = 112.8µm. Inductorul se află în stratul met4<br />

iar conductoarele de aduct¸ie în stratul met3.<br />

79


5. Studii de caz - rezultate numerice s¸i validarea lor experimentală<br />

5.1.1 Modelarea aproximativă<br />

Figura 5.3: Materialele inductorului spiralat<br />

Figura 5.4: Dimensiunile inductorului spiralat<br />

Pentru obt¸inerea solut¸iei analitice se va folosi modelul cu parametri concentrat¸i (Figura<br />

5.5) propus în lucrările [17] s¸i [16].<br />

Parametri concentrat¸i ai modelului sunt definit¸i astfel:<br />

• rezistent¸a serie de curent continuu:<br />

Rs =<br />

ρ · l<br />

w · t =<br />

1<br />

6.6·107 · 1122 · 10−6 20 · 10−6 +<br />

· 3.1 · 10−6 1<br />

1.25·107 · (69.8 + 112.8) · 10−6 +<br />

20 · 10 −6 · 0.64 · 10 −6<br />

+2 ·<br />

1<br />

3.33·10 6 · 1 · 10 −6<br />

20 · 10 −6 · 19.8 · 10 −6<br />

= 0.274 + 1.141 + 2 · 0.00075 = 1.42Ω ,<br />

80<br />

(5.1)


5.1. Inductorul spiralat pătrat - CDST-SP-MIDDLE<br />

Figura 5.5: Modelul cu parametri concentrat¸i pentru inductorul spiralat<br />

unde ρ rezistivitatea metalului, l lungimea conductorului, w lăt¸imea liniei, t grosimea<br />

metalului. Inductorul este cont¸inut în 3 straturi: 42 care cont¸ine înfăs¸urarea cu<br />

lungimea de 1122µm s¸i grosimea 3.1µm (grosimea stratului met4), 39 care cont¸ine<br />

conductoarele de aduct¸ie ale inductorului cu lungime p1 + p2 (69.8µm + 112.8µm)<br />

s¸i grosimea 0.64µm (grosimea stratului met3). Pentru stratul 42 via3 grosimea va<br />

fi de 19.8µm, deoarece suprafat¸a perpendiculară a conductorului care este străbătută<br />

de curent are dimensiunile 20 × 19.8µm 2 .<br />

• inductivitatea serie este calculată folosind calculatorul on-line [147], ce are la bază<br />

formula Wheeler modificată [148]:<br />

Ls = 1.053nH (5.2)<br />

Această valoare este credibilă deoarece acest calcualtor indică valori calculate s¸i cu<br />

alte două metode care se abat de la aceasta doar cu +/-1%, respectiv 1.043nH s¸i<br />

1.061nH. La frecvent¸e mari, datorită efectului pelicular, valoarea inductant¸ei scade,<br />

dar nu cu mai mult de 5%, cât reprezintă inductant¸a internă a conductorului, care se<br />

anulează la efect pelicular net. La frecvent¸e foarte mari câmpul magnetic pătrunde<br />

doar part¸ial în substratul semiconductor, iar acest efect poate scadea inductant¸a cu<br />

până la 20-30%.<br />

• capacitatea serie:<br />

Cs = (N − 1) · w 2 ·<br />

= (2 − 1) · (20 · 10 −6 ) 2 ·<br />

εOx<br />

tOx M3 M4<br />

=<br />

3.9 · 8.85 · 10−12<br />

1 · 10 −6<br />

= 13.81 · fF ,<br />

(5.3)<br />

unde N este numărul de spire, iar tOx M3 M4 grosimea stratului de oxid dintre stratul<br />

met4 s¸i met3. Formula ar trebui să t¸ină cont de efectele capacitive parazite apărute<br />

81


5. Studii de caz - rezultate numerice s¸i validarea lor experimentală<br />

între spirele inductorului:<br />

Cs = (N − 1) · εOx · (dout + 2 · dout) · t<br />

4 · s<br />

= (2 − 1) · 3.9 · 8.85 · 10−12 · (200 + 2 · 200) · 3.1 · 10 −12<br />

4 · 3 · 10 −6<br />

=<br />

= 5.35 · fF ,<br />

(5.4)<br />

unde t grosimea stratului de metal al spiralei, s distant¸a dintre spire. Probabil, capacitatea<br />

reală este cuprinsă între aceste două valori limită.<br />

• capacitatea stratului de oxid:<br />

COx = 1 εOx<br />

· l · w ·<br />

2 tOx<br />

= 1<br />

2 · 1305.6 · 10−6 · 20 · 10 −6 ·<br />

3.9 · 8.85 · 10<br />

·<br />

−12<br />

(1 + 0.64 + 3.305) · 10−6 = 91.13fF ,<br />

(5.5)<br />

unde tOx este grosimea stratului de oxid dintre spirală s¸i substrat (calculată presupunând<br />

câmpul electric uniform sub conductor s¸i nul în rest) sau<br />

COx = 1<br />

2 · d2out · εOx<br />

=<br />

tOx<br />

1<br />

2 · (200 · 10−6 ) 2 ·<br />

3.9 · 8.85 · 10<br />

·<br />

−12<br />

(1 + 0.64 + 3.305) · 10−6 = 139.60fF ,<br />

(5.6)<br />

calculată presupunând câmpul electric uniform în stratul de oxid de sub toata aria<br />

inductrului. Capacitatea reală este probabil cuprinsă între aceste două valori extreme.<br />

• capacitatea stratului de Si(nwell):<br />

CSi = 1<br />

2 · d2 out · CSub = 1<br />

2 · (200 · 10−6 ) 2 · 34.52 · 10 −6<br />

= 690.40fF ,<br />

unde capacitatea substratului pe unitatea de suprafat¸ă CSub = ε<br />

tNwell<br />

34.52µF/m2 ;<br />

• rezistent¸a stratului de Si(nwell):<br />

RSi =<br />

2<br />

d 2 out · GSub<br />

=<br />

= 11.7·8.85·10−12<br />

3·10 −6<br />

(5.7)<br />

2<br />

(200 · 10−6 ) 2 · 1.11 · 109 (5.8)<br />

= 45.05mΩ , (5.9)<br />

unde conductant¸a substratului de Nwell pe unitatea de suprafat¸ă GSub = σNwell<br />

tNwell =<br />

3.33·10 3<br />

3·10 −6 = 1.11 · 10 9 S/m 2 . Dacă se neglijează efectul structurilor V din stratul nwell<br />

(Figura 5.2a), atunci Csub = ε<br />

tSi = 178.820nF/m2 , Gsub = σ<br />

tSi = 6.8 · 103 S/m 2 .<br />

Cu aceste valori CSi = 3.58fF s¸i RSi = 7.353kΩ. Probabil că în realitate valorile<br />

acestor doi parametri sunt cuprinse între aceste limite.<br />

82<br />

=


5.1. Inductorul spiralat pătrat - CDST-SP-MIDDLE<br />

Pentru a modela influent¸a efectului pelicular asupra rezistent¸ei Rs se calculează adâncimea<br />

<br />

1<br />

de pătrundere δ = πfµσ<br />

portul dintre semilăt¸imea t<br />

2<br />

care are valori dependente de frecvent¸ă ca în Tabelul 5.3. Ra-<br />

a conductorului s¸i adâncimea de pătrundere are valorile din<br />

Tabelul 5.4 (valorile supraunitare indică de câte ori cres¸te rezistent¸a în c.c.). În concluzie<br />

pentru frecvent¸e mai mari decât 1.6GHz, la care t = δ trebuie luat în considerare efectul<br />

2<br />

pelicular.<br />

Frecvent¸a 1GHz 10GHz 40GHz 60GHz<br />

Material δ [µm]<br />

alum1 1.96 0.62 0.31 0.25<br />

Tabelul 5.3: Adâncimea de pătrundere la diferite frecvent¸e pentru tronsoanele inductorului<br />

Frecvent¸a 1GHz 10GHz 40GHz 60GHz<br />

Material t/2δ<br />

alum1 0.80 2.50 5.00 6.13<br />

Tabelul 5.4: Raportul dintre semilăt¸imea t a conductorului s¸i adâncimea de pătrundere<br />

2<br />

pentru tronsoanele inductorului<br />

Figura 5.6: Circuitul echivalent pentru inductorul integrat (LTSpice)<br />

Pasul următor reprezintă simularea circuitului din Figura (5.6) în SPICE . Ecuat¸iile ce<br />

caracterizează circuitul liniar sunt:<br />

I1 = Y11V1 + Y12V2<br />

I2 = Y21V1 + Y22V2 .<br />

83<br />

(5.10)


5. Studii de caz - rezultate numerice s¸i validarea lor experimentală<br />

Pentru obt¸inerea caracteristicii în frecvent¸ă din SPICE, circuitul trebuie simulat de două ori<br />

astfel:<br />

1. cu V2 = 0 se obt¸ine I1 = Y11V1 s¸i I2 = Y21V1, adică Y11 s¸i Y21;<br />

2. cu V1 = 0 se obt¸ine I1 = Y12V1 s¸i I2 = Y22V1, adică Y12 s¸i Y22.<br />

Pentru a se studia efectul diferitelor variat¸ii parametrice asupra caracteristicii de frecvent¸ă,<br />

au fost efectuate mai multe simulari, pentru diferite valori ale parametrilor circuitului (Tabelul<br />

5.5). În acest tabel au fost marcate cu bold valorile modificate la fiecare simulare fat¸ă<br />

de cea de referint¸ă (nr. 1).<br />

Nr. Rs [Ω] Ls [nH] Cs [fF] COx [fF] CSi [fF] RSi [Ω]<br />

1 1.42 1.053 5.35 139.60 690.40 45.05·10 −3<br />

2 8.705 1.053 5.35 139.60 690.40 45.05·10 −3<br />

3 1.42 1.000 5.35 139.60 690.40 45.05·10 −3<br />

4 1.42 1.053 13.81 139.60 690.40 45.05·10 −3<br />

5 1.42 1.053 5.35 91.13 690.40 45.05·10 −3<br />

6 1.42 1.053 5.35 139.60 3.58 7.353 ·10 3<br />

7 3.5 1.053 5.35 139.60 690.40 45.05·10 −3<br />

8 3.5 1.053 5.35 139.60 3.58 7.353·10 3<br />

Tabelul 5.5: Valorile parametrilor concentrat¸i pentru fiecare simulare<br />

Rezultatele simulărilor au fost comparate cu simularea de referint¸ă numărul 1 s¸i cu<br />

măsurătorile.<br />

Simularea 1<br />

Interesează doar Y11 = Y22 s¸i Y 12 = Y21 care din circuit rezultă:<br />

Dacă ω ≈ 0 atunci<br />

1<br />

Y11 ≈ jω(Cs + Cox) +<br />

Rs + jωLs<br />

= −ω2Ls(Cs + COx) + jω(Cs + COx)Rs + 1<br />

,<br />

Rs + jωLs<br />

1<br />

Y12 ≈ jωCs +<br />

Rs + jωLs<br />

= −ω2LsCs + jωCsRs + 1<br />

.<br />

Rs + jωLs<br />

Y11 ≈ Y12 ≈ 1<br />

Pulsat¸iile teoretice de rezonant¸ă au expresiile:<br />

Y11 : ωr =<br />

Rs<br />

(5.11)<br />

(5.12)<br />

, (5.13)<br />

(5.14)<br />

1<br />

, (5.15)<br />

Ls(Cs + COx)<br />

Y12 : ωr =<br />

84<br />

1<br />

√ LsCs<br />

. (5.16)


5.1. Inductorul spiralat pătrat - CDST-SP-MIDDLE<br />

Din caracteristica de frecvent¸ă rezultă că frecvent¸a de rezonant¸ă este la 450MHz pentru<br />

măsurători s¸i la 250MHz pentru simularea nr. 1 (Figura 5.7).<br />

(a) Y11 Real (b) Y11 Imaginar<br />

(c) Y21 Real (d) Y21 Imaginar<br />

Figura 5.7: Simularea 1 - Y11 s¸i Y21<br />

La frecvent¸a minimă de 50MHz, Re(Y11) = 1<br />

Rs<br />

= 1<br />

1.42<br />

= 0.704 este aproximativ egală<br />

cu valoarea simulată SPICE 0.667, însă aceste valori sunt de aproximativ 2 ori mai mari<br />

decât valaorea măsurată 0.329. Asta înseamnă că rezistent¸a Rs din modelul cu parametri<br />

concentrat¸i ar trebui să fie de două ori mai mare. Explicat¸ii posibile: efectul pelicular<br />

s¸i de pierderi prin curent¸i turbionari, neomogenitatea trecerii via3, abateri geometrice ale<br />

conductivităt¸ii sau erori de procesarea rezultatelor experimentale, inclusiv rezistent¸a de<br />

contact.<br />

La frecvent¸a maximă de 40GHz, Re(Y11) = Rs<br />

(ωLs) 2 = 5.37e-3 valoarea simulată SPICE<br />

fiind 7.57e-5, iar valoarea măsurată 5.511e-3. O explicat¸ie posibilă a acestor discrepant¸e<br />

este efectul pelicular (creste rezistent¸a de 6.13 ori), iar datorită frecvent¸ei foarte mari s¸i<br />

efectul pierderilor prin curent¸i turbionari în substrat.<br />

Frecvent¸ele de rezonant¸ă teoretice sunt:<br />

Y11 : fr = ωr<br />

2 · π =<br />

1<br />

1<br />

·<br />

1.053 · 10−9 · (5.35 + 139.6) · 10−15 2π<br />

Y12 : fr = ωr<br />

2 · π =<br />

1<br />

1<br />

√ ·<br />

1.053 · 10−9 · 5.35 · 10−15 2π<br />

= 67GHz , (5.17)<br />

= 13GHz . (5.18)<br />

Rezultatele simulărilor sunt mai apropiate de măsurători decât aceste estimări teoretice,<br />

85


5. Studii de caz - rezultate numerice s¸i validarea lor experimentală<br />

însă tot există o diferent¸ă de circa 2 ori. Pentru a avea o concordant¸ă mai bună a frecvent¸ei<br />

de rezonant¸ă ar trebui ca teoretic valorile capacităt¸ilor să fie de circa 4 ori mai mici. Nu este<br />

prea clară nici influent¸a subsratului de Si s¸i dacă parametrii RSi s¸i CSi trebuie calculat¸i cu<br />

caracteristicile stratului de nwell.<br />

Pentru a identifica mai exact care este parametrul care generează inadvertent¸ele fată de<br />

măsurători au fost efectuate mai multe simulări, conform Tabelului 5.6.<br />

f [Hz]<br />

Măsurat Simulat SPICE<br />

Y11 Y12 Y11 Y12<br />

Re Im Re Im Re Im Re Im<br />

5e7 3.299e-1 -3.966e-2 3.297e-1 4.058e-2 6.675e-1 -1.553e-1 -6.675e-1 1.554e-1<br />

5e8 1.340e-1 -1.670e-1 -1.130e-1 1.680e-1 1.096e-1 -2.547e-1 -1.096e-1 2.551e-1<br />

40e9 5.511e-3 6.077e-3 5.551e-4 3.984e-3 7.573e-5 3.265e-2 -2.028e-5 2.433e-3<br />

Tabelul 5.6: Valorile admitant¸elor pentru simularea nr.1 la diferite frecvent¸e<br />

Simularea 2: a fost considerată rezistent¸a ce t¸ine cont de efectul pelicular de la frecvent¸a<br />

maximă de 40GHz:Rs2 = 6.13Rs. Din cauza efectului pelicular, Rs are valori variabile<br />

între (1 ÷ 6.13)Rs. Surpriza pozitivă constă în faptul că graficele simulărilor 1 s¸i 2 (Figurile<br />

5.8 s¸i 5.9) încadrează la frecvent¸e mici caracteristica de frecvent¸ă măsurată s¸i că are loc<br />

o cres¸tere a frecvent¸ei de ”rezonant¸ă” de la 250Mz la 1050Mhz, depăs¸ind chiar s¸i valoarea<br />

măsurată de 450MHz. Pentru o valoare mai bună a acestei frecvent¸e ar trebui ca Rs să fie<br />

între limitele de 1.4 s¸i 8.73 Ω, de exemplu să aibă valoarea Rs = 3.5 Ω, corespunzătoare<br />

mediei lor geometrice. Cu această valoare s-ar îmbunătăt¸i foarte mult comportarea de la<br />

frecvent¸e mici.<br />

(a) Real (b) Imaginar<br />

Figura 5.8: Simularea 1 s¸i 2 - Y11<br />

Simularea 3: studiază scăderea inductivităt¸ii Ls cu aproximativ 5%. Se constată din<br />

Figura 5.10 că această modificare nu influent¸ează sensibil carcteristica de frecvent¸ă.<br />

86


5.1. Inductorul spiralat pătrat - CDST-SP-MIDDLE<br />

(a) Real (b) Imaginar<br />

Figura 5.9: Simularea 1 s¸i 2 - Y21<br />

(a) Y11 Real (b) Y11 Imaginar<br />

(c) Y21 Real (d) Y21 Imaginar<br />

Figura 5.10: Simularea 1 s¸i 3 - Y11 s¸i Y21<br />

87


5. Studii de caz - rezultate numerice s¸i validarea lor experimentală<br />

Simularea 4: se studiază influent¸a modificării capacităt¸ii Cs. Se constat din Figura 5.11<br />

că modificarea acestui parametru (cres¸terea lui de 2.5 ori) nu aduce schimbări relevante în<br />

caracteristica de frecvent¸ă.<br />

(a) Y11 Real (b) Y11 Imaginar<br />

(c) Y21 Real (d) Y21 Imaginar<br />

Figura 5.11: Simularea 1 s¸i 4 - Y21<br />

(a) Real (b) Imaginar<br />

Figura 5.12: Simularea 1 s¸i 5 - Y11<br />

Simularea 5: se studiază influent¸a modificării capacităt¸ii COx. Se constată din Figurile<br />

5.12 s¸i 5.13 că acestui parametru cu circa 50% nu modifică sensibil caracteristica de<br />

frecvent¸ă. La frecvent¸e mari se ameliorează parte imaginară a admitant¸ei Y11.<br />

88


5.1. Inductorul spiralat pătrat - CDST-SP-MIDDLE<br />

(a) Real (b) Imaginar<br />

Figura 5.13: Simularea 1 s¸i 5 - Y21<br />

Simularea 6: se studiază influent¸a stratului de Si (simulările precedente au considerat<br />

doar partea se Si − nwell) care duce la modificării capacităt¸ii CSi s¸i a rezitent¸ei RSi.<br />

Din Figura 5.14 se constată că modificarea parametrilor CSi s¸i RSi aduce o îmbunătăt¸ire a<br />

caracteristicii părt¸ii imaginare a lui Y11 la frecvent¸e înalte.<br />

(a) Y11 Real (b) Y11 Imaginar<br />

(c) Y21 Real (d) Y21 Imaginar<br />

Figura 5.14: Simularea 1 s¸i 6 - Y11 s¸i Y21<br />

89


5. Studii de caz - rezultate numerice s¸i validarea lor experimentală<br />

Simularea 7 s¸i 8: Pentru aceste două simulări se va studia modificarea rezistent¸ei Rs<br />

folosind parametrii simulărilor 1, respectiv 6. Din Figura 5.15 se constată că modificare<br />

modificare a rezistent¸ei Rs aduce o îmbunătăt¸ire a caracteristicii lor de frecvent¸ă atât la<br />

frecvent¸e joase s¸i medii, cât s¸i la fecvent¸e înalte (în cazul Im(Y11). Eroarea relativa globala<br />

în normă euclidiană fat¸ă de măsurători este de 4% pentru simularea 7 s¸i 2% pentru<br />

simularea 8.<br />

(a) Y11 Real (b) Y11 Imaginar<br />

(c) Y21 Real (d) Y21 Imaginar<br />

Figura 5.15: Simularea 1 s¸i 7 - Y11 s¸i Y21<br />

Concluzia generală a acestui studiu este că valorile parametrilor Rs, RSi s¸i CSi sunt<br />

esent¸iale pentru modelarea corectă a inductorului. Rezistent¸a Rs este dependentă de frecvent¸ă<br />

s¸i puternic afectată de efectele câmpului electromagnetic la frecvent¸e înalte, deci valoarea<br />

ei influent¸ează caracteristica în toata gama de frecvent¸e. Din simulările efectuate s-a putut<br />

observa că rezistet¸a RSi s¸i capacitatea CSi substratului influent¸ează comportamentul dispozitivului<br />

la frecvent¸e înalte. În consecint¸ă, modelul cu parametri concentrat¸i independent¸i<br />

de frecvent¸ă nu poate da rezultate foarte precise pe o gamă largă de frecvent¸e.<br />

5.1.2 Modelarea numerică<br />

Modelarea numerică este următoarea etapă în procesul de modelare electromagnetică a<br />

inductorului CDST-SP-MIDDLE (Figura 5.16a), care va fi făcută cu ajutorul programului<br />

Chamy, bazat pe metoda FIT. Această etapă presupune obt¸inerea modelului discretizat pentru<br />

câmpul electrodinamic din domeniului de calcul de tip EMCE, domeniu care cont¸ine<br />

90


5.1. Inductorul spiralat pătrat - CDST-SP-MIDDLE<br />

(a) Geometria dispozitivului în Chamy (b) Ret¸ea de discretizare minimală (planul xy)<br />

Figura 5.16: Inductorul integrat CDST-SP-MIDDLE<br />

inductorul s¸i are dimensiunile de 400 microni dupa axele Ox, Oz, s¸i 10+2×725 microni<br />

dupa axa Oy.<br />

În funct¸ie de elementele cont¸inute de dispozitivul modelat, respectiv conductoare s¸i<br />

straturi, programul generează în mod automat o ret¸ea de discretizare minimală (Figura<br />

5.16b), care trebuie îndesită, în limita resurselor hardware, pentru a obt¸ine rezultate cât mai<br />

exacte. Se impune, deci, dezvoltarea unei strategii de alegere a ret¸elei de discretizare (ret¸ea<br />

adaptată).<br />

În primă fază se va studia discretizarea de-a lungul axei Oy. Ret¸eaua minimală, cu<br />

10 × 11 × 11, are majoritatea nodurilor de pe axa Oy concentrate în stratul de oxid (Figura<br />

5.16b). Se vor evalua două strategii de îndesire a ret¸elei, prin adăugare de noduri în straturile<br />

de Si s¸i Aer (Tabel 5.7). Prima strategie este de a adăuga noduri uniform distribuite,<br />

iar a doua constă în adăugarea unor noduri distribuite neuniform, în progresie geometrică.<br />

Aceste noduri sunt mai dese în apropierea planului inductorului, unde câmpul este mai<br />

intens s¸i mai neuniform, dar mai rare în zona îndepărtată de inductor (Figura 5.17b).<br />

Nr. Tip discretizare<br />

Ret¸ea de discretizare<br />

x y z<br />

1 minimal 10 11 11<br />

2 uniform pe y 10 29 11<br />

3 uniform pe y 10 89 11<br />

4 neuniform pe y 10 29 11<br />

Tabelul 5.7: Strategii de alegerea ret¸elei de discretizare<br />

Din Figura 5.18 se observă că rezultatele sunt mai bune pentru ret¸ele de discretizare cu<br />

mai multe noduri (ceea ce era de as¸teptat). O a doua concluzie este că distribut¸ia neuniformă<br />

cu 29 de noduri dă rezulate la fel de bune ca distribut¸ia uniformă cu 89 de noduri.<br />

Suplimentar, s-a testat cres¸terea numărului de noduri, distribuite în mod neuniform,<br />

de la 29 la 49, însă rezultatele nu s-au modificat sensibil, deci adăugarea de noi noduri<br />

91


5. Studii de caz - rezultate numerice s¸i validarea lor experimentală<br />

(a) Uniform distribuite (b) Neuniform distribuite<br />

(a) Partea reală Y11<br />

Figura 5.17: Ret¸ea de discretizare pe axa Oy<br />

(b) Partea imaginară Y11<br />

Figura 5.18: Caracteristicile de frecvent¸ă pentru diferite distribut¸ii ale nodurilor pe Oy<br />

nu aduce îmbunătăt¸iri relevante. Din acest motiv, în continuare va fi folosită discretizarea<br />

neuniformă cu 29 noduri pe axa Oy, fără a specifica explicit acest lucru.<br />

Pentru discretizarea în planul xOz se vor testa, pe lângă ret¸eaua minimală, două strategii<br />

cu ret¸ea aproximativ uniformă s¸i una neuniformă, mai exact adaptată, confom Tabelului<br />

5.8 (în care cazurile vor fi numerotate în continuarea Tabelului 5.7).<br />

Nr. Tip discretizare<br />

Ret¸ea de discretizare<br />

x y z<br />

4 minimal pe xz 10 29 11<br />

5 uniform pe xz 27 29 27<br />

6 adaptat pe xz 23 29 22<br />

Tabelul 5.8: Strategii de alegerea ret¸elei de discretizare<br />

92


5.1. Inductorul spiralat pătrat - CDST-SP-MIDDLE<br />

(a) Minimal (b) Uniform distribuit<br />

(a) Partea reală Y11<br />

(c) Adaptat<br />

Figura 5.19: Ret¸ea de discretizare pe axa xz<br />

(b) Partea imaginară Y11<br />

Figura 5.20: Caracteristicile de frecvent¸ă pentru diferite ret¸ele în planul xOz<br />

93


5. Studii de caz - rezultate numerice s¸i validarea lor experimentală<br />

Din rezultate (Figura 5.20), se observă că discretizarea uniformă în planul xOz nu reprezintă<br />

o solut¸ie acceptabilă. Principala cauză a acestor rezultate foarte slabe o reprezintă<br />

modificarea nodurilor ret¸elei minimale, care trec prin puncte cheie ale dispozitivului, respectiv<br />

extremităt¸ile inductorului. Prima concluzie este că orice ret¸ea de discretizare adaptată,<br />

trebuie să pornească de la distribut¸ia minimală a nodurilor de discretizare. Cazul 6<br />

t¸ine cont de acestă observat¸ie (Figura 5.19c) s¸i după cum se poate observa în Figura 5.20<br />

rezultatele pentru această ret¸ea adaptată sunt cele mai bune de până acum, în comparat¸ie cu<br />

măsurătorile. Ca s¸i în cazul axei Oy, noile noduri din ret¸eaua adaptată au fost adăugate la<br />

ret¸eaua minimală, mai ales în apropierea inductorului: în progresie geometrică, pe măsura<br />

depărtării de conductor. Sect¸iunea conductorului a fost împartită în patru celule, de un nod<br />

plasat în mijlocul acestuia. Un nod intermediar a fost plasat s¸i în mijlocului interstit¸iului<br />

dintre spire. În continuare, pentru simulările din cazurile 7 s¸i 8 va fi folosită ret¸eaua neu-<br />

(a) Partea reală Y11<br />

(b) Partea imaginară Y11<br />

Figura 5.21: Caracteristicile de frecvent¸ă pentru diferite ret¸ele în planul xOz<br />

niformă, adaptată cu 23 × 29 × 22 noduri. Cazul numărul 8 t¸ine cont de neomogenizarea<br />

conductivităt¸ii materialului tun1 (stratul via3), considerând conductivitatea sa echivalentă<br />

de valoare σtun1 = 6e3 S/m. Rezulatele sunt prezentate în Figura 5.21. Se constată o<br />

îmbunătăt¸ire a caracteristicii de frecvent¸ă, mai ales la frecvent¸e mici s¸i medii, atunci când<br />

se t¸ie cont de neomogenizarea materialului tun1.<br />

(a) Partea reală Y11<br />

(b) Partea imaginară Y11<br />

Figura 5.22: Efectul tehnicii FredHo asupra caracteristicii de frecvent¸ă<br />

94


5.1. Inductorul spiralat pătrat - CDST-SP-MIDDLE<br />

Cazul numărul 9 ia în considerare efectul pelicular din conductor, folosind metoda FredHo<br />

[149]. Rezultatele sunt prezentate în Figura 5.22. Se constată că rezulatele nu sunt<br />

îmbunătăt¸ite sensibil.<br />

În Figura 5.23 sunt prezentate comparativ caracteristicile de frecvent¸ă rezultate în urma<br />

măsurătorilor s¸i cele rezultate în urma simulărilor modelului cu parametri distribuit¸i (Chamy<br />

nr. 8) s¸i concentrat¸i (SPICE nr. 8). Eroarea medie pătratică relativă, calculată folosind<br />

, este de circa 2% pentru ambele simulări, SPICE<br />

norma Frobenius rmsYi simulat−Yi masurat<br />

maxYi..n masurat<br />

s¸i Chamy, însă se poate observa că modelul cu parametri distribuit¸i are o comportare mai<br />

apropiată de măsurători decât modelul cu parametri concentrat¸i, mai ales în pozit¸ia minimului/maximului<br />

părt¸ilor imaginare Y11 s¸i Y12. Partea imaginară are mare iportant¸ă pracatică<br />

pentru proiectant, deoarece ea descrie fenomenul de rezonant¸ă s¸i factorul de calitate<br />

al dispozitivului.Partea imaginară are mare iportant¸ă pracatică pentru proiectant, deoarece<br />

ea descrie fenomenul de rezonant¸ă s¸i factorul de calitate al dispozitivului. Acest lucru este<br />

evident¸iat s¸i de Tabelul 5.9 care cont¸ine valorile simulate s¸i cele măsurate pentru diferite<br />

frecvent¸e s¸i abaterile dintre ele (cu bold erorile cele mai mici).<br />

(a) Partea reală Y11<br />

(b) Partea imaginară Y11<br />

Figura 5.23: Caracteristicile de frecvent¸ă Y11: măsurate, simulate ale modelului cu parametri<br />

concentrat¸i s¸i distribuit¸i<br />

Studiul prezentat în acest capitol validează procedura de modelare cu parametri distribuit¸i<br />

propusă de autor în această teză de doctorat. Rezulatele simulării modelului extras se abat<br />

doar cu 2% fat¸ă de rezulatatele experimentale, ceea ce este pe deplin satisfăcător, conform<br />

cerint¸elor industriale s¸i preciziei solicitate de proiectant¸ii de circuite integrate. O astfel<br />

de acuratet¸e este net superioară celei obt¸inută în cadrul proiectelor europene Codestar s¸i<br />

Chameleon RF. Progresele se datorează atât evolut¸iei performant¸elor componentelor hardware<br />

ale sistemeleor de calcul (viteză s¸i memorie), dar s¸i dezvoltării unor noi metode de<br />

modelare s¸i a algoritmilor, precum s¸i programelor (paralele s¸i distribuite) asociate.<br />

Chiar dacă modelul cu parametri concentrat¸i propus de autor are un ordin de mărime<br />

al erorii tot de 2%, totus¸i procedura de extract¸ie a sa este mai put¸in robustă. După cum s-a<br />

văzut, s¸i fundamentarea sa teoretică nu este la fel de solidă ca a modelului cu parametri<br />

distribuit¸i.<br />

95


5. Studii de caz - rezultate numerice s¸i validarea lor experimentală<br />

Măsurat<br />

SPICE<br />

Chamy<br />

Frecvent¸a 50MHz 450MHz 40GHz<br />

Y11 M 0.32999-0.03966j 0.14743-0.17131j 0.0055114+0.00607j<br />

Y12 M -0.32972+0.04058j -0.14713+0.17165j 0.0005551+0.00398j<br />

Y11 S 0.28311-0.02670j 0.16602-0.14087j 0.0000179-0.00155j<br />

Y12 S -0.28310+0.02674j -0.16591+0.14092j -0.0000499+0.00243j<br />

Y11 C 0.36724-0.04045j 0.19816-0.17535j 0.0009145+0.00716j<br />

Y12 C -0.36724+0.04047j -0.19805+0.17564j -0.0000624-0.00245j<br />

Abateri Y11 S − Y11 M -0.0469+0.0130j 0.0186+0.0304j -0.0055-0.0076j<br />

SPICE Y12 S − Y12 M 0.0466-0.0138j -0.0188-0.0307j -0.0006- 0.0016j<br />

Abateri Y11 C − Y11 M 0.0373-0.0008j 0.0507-0.0040j -0.0046+0.0011j<br />

Chamy Y12 C − Y12 M -0.0375-0.0001j -0.0509+ 0.0040j -0.0006-0.0064j<br />

Tabelul 5.9: Valorile admitant¸elor la diferite frecvent¸e s¸i abaterile lor<br />

(a) Partea reală Y12<br />

(b) Partea imaginară Y12<br />

Figura 5.24: Caracteristicile de frecvent¸ă Y12: măsurate, simulate ale modelului cu parametri<br />

concentrat¸i s¸i distribuit¸i<br />

5.1.3 Performant¸ele procedurii de extract¸ie a modelului<br />

Pe lângă acuratet¸e, un alt aspect important al modelării numerice îl reprezintă timpul<br />

de calcul consumat pentru extract¸ia modelului s¸i necesarul de memorie. În cazul de test<br />

CDST-SP-MIDDLE, ret¸eaua adaptată cu 23×29×22 noduri a dus la obt¸inerea unui model<br />

discretizat cu 78363 grade de libertate (DoFs). Timpul de rezolvare pentru un singur sistem<br />

liniar cu aceste necunoscute complexe a fost este de 34s pe un nod din clusterul ATLAS,<br />

iar cantitatea de memorie necesară a fost de 3.3GB.<br />

Algoritmul de rezolvare AFS-VF a avut nevoie de 3 iterat¸ii (Tabelul 5.10) pentru a<br />

obt¸ine modelul final, care are ordinul q = 7. Implementarea serială a obt¸inut modelul de<br />

ordin redus în 580s, pe când implementarea paralelă cu două nivele de granularitate a avut<br />

nevoie doar de 194s, adică s-a obt¸inut cu o accelerare de 3. Implementarea cu un nivel<br />

de granularitate nu a putut executa acest test deoarece necesarul de memorie (3.3 · 8 =<br />

96


εAF S εV F Nr. pct. Convergent¸a<br />

iterat¸ie 1 2 3<br />

1e-2 1e-4 4<br />

ordin<br />

S<br />

3 6 7<br />

′ 3 6 4<br />

S + S ′ 7 13 17<br />

Tabelul 5.10: Convergent¸a algoritmului AFS-VF<br />

5.2. Inductorul spiralat hexagonal - CHRF217<br />

26.4GB) depăs¸este memoria fizic instalată (24GB). Pentru execut¸ia implementării paralele<br />

au fost folosite 4 noduri din clusterul Atlas, ceea ce înseamnă că ideal se poate obt¸ine o<br />

accelerare maximă de valoare 4. Având în vedere accelerarea obt¸inută, se poate spune<br />

că implementarea paralelă exploatează eficient resursele de calcul. Desigur, accelerarea<br />

depinde foarte mult de convergent¸a algoritmului respectiv numărul de iterat¸ii s¸i numărul de<br />

sisteme de rezolvat la fiecare iterat¸ie.<br />

Concluzia acestei analize este că paralelizarea calculului reduce timpul de execut¸ie s¸i<br />

permite în consecint¸ă extragerea unor modele mai precise. Dacă timpul de extract¸ie necesar<br />

pentru procedura paralelă AFS-VF este comparat cu cel init¸ial solicitat de algoritmul VF<br />

secvential (fără AFS) se constată o scădere a acestui timp de circa 16 ori, atunci când<br />

se foloses¸te un cluster alcătuit din patru noduri interconectate [150]. Această observat¸ie<br />

evident¸iază cres¸terea performant¸elor procedurii de modelare electromagnetică.<br />

5.2 Inductorul spiralat hexagonal - CHRF217<br />

Problema CHRF217 cont¸ine un inductor spiralat hexagonal ce are un terminal excitat<br />

în tensiune, iar celălat conectat la masă. Geometria 2D, în coordonate xOz, a dispozitivului<br />

care provine din fis¸ierul .GDS este prezentată în Figura 5.25 s¸i 5.26. Dispunerea<br />

straturilor pe axa Oy (Figura 5.1 s¸i Tabelul 5.1) provine din fis¸ierul de tehnologie. Pentru<br />

(a) Layout (b) Vedere 3D<br />

Figura 5.25: Problema CHRF217 - Inductor spiralat hexagonal<br />

97


5. Studii de caz - rezultate numerice s¸i validarea lor experimentală<br />

clasa de probleme CHRF sunt folosite aproape aceleas¸i materiale ca în cazul problemelor<br />

CO<strong>DE</strong>STAR, în Tabelul 5.11 se găsesc materialele ale căror proprietăt¸i sunt diferite. Dimensiunile<br />

inductorului spiralat (Figura 5.27) sunt: s = 2µm, w = 13µm, dout = 186µm,<br />

din = 100µm, p1 = 50µm s¸i p2 = 69µm. Inductorul se află în stratul met4.<br />

Material Tip µr εr σ [S/m]<br />

alum1 Al-conductor 1 1 3.23 · 10 7<br />

alum2 Al-conductor 1 1 2.15 · 10 7<br />

tun1 W-conductor 1 1 5.21 · 10 6<br />

SUB2 (Si) semi-conductor 1 11.7 2.38 · 10 6<br />

SUB5 (Si) semi-conductor 1 11.7 3.33 · 10 3<br />

Tabelul 5.11: Materialele problemelor CHAMELEON<br />

Figura 5.26: Modelarea geometrică 3D a structurii CHRF217<br />

Figura 5.27: Dimensiunile inductorului spiralat hexagonal<br />

98


5.2.1 Modelarea aproximativă<br />

5.2. Inductorul spiralat hexagonal - CHRF217<br />

Modelarea aproximativă se va face folosind acelas¸i model propus in subcapitolul anterior.<br />

Parametri concentrat¸i ai modelului sunt definit¸i astfel:<br />

• rezistent¸a serie de curent continuu:<br />

1<br />

3.23·107 · 1019 · 10−6 13 · 10−6 1<br />

2.15·10 +<br />

· 3.1 · 10−6 7 · 315 · 10−6 13 · 10−6 +<br />

· 0.64 · 10−6 1<br />

5.21·10 +4 ·<br />

6 · 1 · 10−6 13 · 10−6 1<br />

5.21·10 + 2 ·<br />

· 13 · 10−6 6 · 1 · 10−6 13 · 10−6 · 20 · 10−6 = 0.782 + 1.76 + 0.0044 + 0.0015 = 2.55Ω<br />

Rs =<br />

(5.19)<br />

• inductivitatea serie este calculată folosind calculatorul on-line [147], ce are la bază<br />

formula Wheeler modificată [148]:<br />

• capacitatea serie:<br />

• capacitatea stratului de oxid:<br />

• capacitatea stratului de Si:<br />

Cs = (3 − 1) · (13 · 10 −6 ) 2 ·<br />

Ls = 1.754nH (5.20)<br />

4.1 · 8.85 · 10−12<br />

4 · 10 −6<br />

= 3.066fF ,<br />

COx = 1<br />

2 · 1338 · 10−6 · 13 · 10 −6 ·<br />

· 4.1 · 8.85 · 10−12<br />

5 · 10 −6<br />

= 63.11fF ,<br />

CSi = 1<br />

2 · (186 · 10−6 ) 2 · 178.820 · 10 −9<br />

= 3.093fF ,<br />

unde capacitatea substratului pe unitatea de suprafat¸ă Csub = 178.820nF/m 2 ;<br />

• rezistent¸a stratului de Si(nwell):<br />

RSi =<br />

2<br />

(186 · 10 −6 ) 2 · 6.8 · 10 3<br />

(5.21)<br />

(5.22)<br />

(5.23)<br />

(5.24)<br />

= 8.5kΩ , (5.25)<br />

unde conductant¸a substratului de Si pe unitatea de suprafat¸ă Gsub = 6.8 · 10 3 S/m 2<br />

99


5. Studii de caz - rezultate numerice s¸i validarea lor experimentală<br />

Nr. Rs [Ω] Ls [nH] Cs [fF] COx [fF] CSi [fF] RSi [kΩ]<br />

1 2.55 1.754 3.066 63.11 3.093 8.5<br />

2 5.89 1.754 3.066 63.11 3.093 8.5<br />

Tabelul 5.12: Valorile parametrilor concentrat¸i pentru fiecare simulare<br />

Adâncimea de pătrundere la 60GHz este δ = 0.11µm, astfel că există efect pelicular.<br />

Raportul dintre semilăt¸imea conductorului s¸i adâncimea de pătrundere este t/2δ = 13.63,<br />

deci rezistent¸a Rs cres¸te de aproximativ 13 ori la frecvent¸e înalte. Conform procedurii<br />

aplicate în cazul inductorului pătrat, se adoptă într-una din simulări rezistent¸ă inductorului<br />

egală cu media geometrică a valorilor limită, adică Rs = 5.89Ω.<br />

Au fost făcute două teste folosind datele din Tabelul 5.12. Din dispozitivul modelat în<br />

problema CHRF217, interesează doar bobina hexagonală, element dipolar caracterizat de<br />

admitant¸a complexă Y11. Se constată din rezultatele simulărilor SPICE (Figura 5.28), ca s¸i<br />

în cazul inductorului spiralat pătrat, că pentru rezistent¸a Rs nou calculată se obt¸in rezultate<br />

mai bune, ea fiind mai apropiată de rezistent¸a reală a inductorului de circa 12.5 Ω obt¸inută<br />

când se t¸ine cont de nomogenitatea trecerii via3.<br />

(a) Real (b) Imaginar<br />

Figura 5.28: Simularea modelului aproximativ 1 s¸i 2 - Y11<br />

5.2.2 Modelarea numerică<br />

Deoarece metoda FIT folosita de Chamy se aplică problemelor cu geometrie rectangulară<br />

de tip Manhattan, forma conductorului a fost aproximată cu structură de blocuri<br />

rectangulare prezentată în Figura 5.26 s¸i 5.29. Pentru discretizarea problemei CHRF217<br />

au fost folosite strategiile dezvoltate în subcapitolul anterior, în final fiind folosită o ret¸ea<br />

adaptată cu 47 × 21 × 39 noduri (Figura 5.30).<br />

100


5.2. Inductorul spiralat hexagonal - CHRF217<br />

Figura 5.29: Geometria Manhattan a problemei CHRF217 - Vedere în planul xOz<br />

(a) Planul xOy (b) Planul xOz<br />

Figura 5.30: Problema CHRF217 - Ret¸eaua de discretizare adaptată<br />

(a) Real (b) Imaginar<br />

Figura 5.31: Simularea SPICE s¸i Chamy - Y11<br />

101


5. Studii de caz - rezultate numerice s¸i validarea lor experimentală<br />

Pentru o modelare numerică corectă, trebuie să se t¸ină cont de neomogenitatea conductivităt¸ii<br />

trecerii via3, considerând conductivitatea sa echivalentă de valoare σtun1 =<br />

3e3S/m. În Figura 5.31 sunt prezentate comparativ caracteristicile de frecvent¸ă rezultate în<br />

urma simulărilor modelului cu parametri distribuit¸i (Chamy) s¸i concentrat¸i (SPICE).<br />

Se constată, as¸a cum era de as¸teptat, că modelul Chamy obt¸ine rezultate mai bune decât<br />

modelul SPICE. Concluzia finală a acestui studiu este că modelul cu parametri concentrat¸i<br />

nu poate modela cu acuratet¸e efectele de înaltă frecvent¸ă, una din principalele cauze fiind<br />

faptul că nu se t¸ine cont de stratul de nwell care apare în substrat. Eroarea medie părtatică<br />

globală este de 22% la modelul cu parametri concentrat¸i s¸i 15% la modelul cu parametri<br />

distribuit¸i, însă modelul cu parametri distribuit¸i mai poate fi îmbunătăt¸it, îndesind ret¸eaua<br />

de discretizare.<br />

5.2.3 Performant¸ele procedurii de extract¸ie a modelului<br />

Modelul discretizat cu ret¸eaua adaptată cu 47 × 21 × 39 noduri, a generat un sistem cu<br />

209346 grade de libertate. Timpul de rezolvare pentru un astfel de sistem liniar cu necunoscute<br />

complexe a fost de 198s pe un nod din clusterul ATLAS, iar cantitatea de memorie<br />

necesară a fost de 12GB. Algoritmul de rezolvare AFS-VF a avut nevoie de 3 iterat¸ii (Ta-<br />

εAF S εV F Nr. pct. Convergent¸a<br />

iterat¸ie 1 2 3<br />

1e-3 1e-5 4<br />

ordin<br />

S<br />

3 6 10<br />

′ 3 6 10<br />

S + S ′ 7 13 23<br />

Tabelul 5.13: Convergent¸a algoritmului AFS-VF<br />

belul 5.13) pentru a obt¸ine modelul final, care are ordinul q = 10. Implementarea serială a<br />

obt¸inut modelul de ordin redus în 4554s. Implementărea cu un singur nivel de granularitate<br />

nu a putut rezolva această problemă din cauza limitării memoriei. Implementarea paralelă<br />

cu două nivele de granularitate a avut nevoie doar de 1386s, obt¸inându-se o accelerare de<br />

3.3. La fel ca în cazul precedent, pentru execut¸ia implementării paralele au fost folosite 4<br />

noduri din clusterul Atlas. Accelerarea obt¸inută se apropie de accelerarea maximă teoretică,<br />

deci, se poate spune că implementarea paralelă exploatează s¸i de această dată eficient<br />

resursele de calcul.<br />

5.3 Inductoare spiralate cuplate - CHRF201<br />

Problema CHRF201 cont¸ine două inductoare spiralate pătrate cuplate aflate la distant¸a<br />

de 14µm. Fiecare inductor are un terminal excitat în tensiune iar celălalt conectat la masă,<br />

rezultând un element diport de circuit electric. Geometria dispozitiviului este reprezentată<br />

în Figurile 5.32a) s¸i 5.32b.<br />

Straturile de material ale dispozitivului sunt dispuse în mod similar cu cele ale inductorului<br />

hexagonal CHRF217. Cele două inductoare sunt identice, cu câte cinci spire, s¸i<br />

dimensiunile: s = 3µm, w = 5µm, dout = 300µm, din = 226µm, p1 = 51µm s¸i<br />

102


5.3. Inductoare spiralate cuplate - CHRF201<br />

(a) Layout (b) Vedere 3D<br />

Figura 5.32: Problema CHRF201 - Inductoare spiralate cuplate<br />

p2 = 91µm, grosimea t = 3.1µm, iar distant¸a dintre inductoare este de h = 14µm. Inductoarele<br />

se află în stratul met4, iar conductoarele de aduct¸ie în stratul met3.<br />

5.3.1 Modelarea aproximativă<br />

Pentru modelarea aproximativă a problemei CHRF201 se vor folosi două modele cu<br />

parametri concentrat¸i de tip Pi, pentru fiecare inductor, la care se adaugă două elemente:<br />

un condensator C12, care modelează efectele capacitive apărute între cele două inductoare,<br />

s¸i o inductivitate mutuală, care modelează cuplajul între cele două inductoare. În cazul<br />

câmpului electric uniform, capacitatea condensatorului este egală cu C12 = εOx∗S<br />

, unde<br />

h<br />

A = t · dout aria comună spirelor s¸i h distant¸a dintre spire.<br />

În literatura de specialitate sunt prezentate mai multe metode pentru calculul inductivităt¸ii<br />

mutuale [21]:<br />

• formula lui Neumann - inductivitatea mutuală între două conductoare filiforme cu<br />

m1, respectiv m2 segmente înfăs¸urate în n1 s¸i respectiv n2 spire, se calculează cu<br />

formula:<br />

m1 m2 <br />

Mij = n1n2 Lij<br />

i=1<br />

j=1<br />

(5.26)<br />

unde Lij este inductivitatea part¸ială între segmentele Ci s¸i Cj, calculată astfel: Lij =<br />

<br />

µ<br />

4π<br />

Ci<br />

Cj<br />

dri·drj<br />

|dRij| ;<br />

• formularea lui Grover - inductivitatea part¸ială mutuală între două fire paralele are<br />

expresia:<br />

Lij = mu<br />

4π [αsinh−1<br />

<br />

α<br />

<br />

− βsinh<br />

d<br />

−1<br />

<br />

β<br />

− γsinh<br />

d<br />

−1<br />

<br />

γ<br />

<br />

+ δsinh<br />

d<br />

−1<br />

<br />

δ<br />

d<br />

− √ α2 − d2 + β2 − d2 + γ2 − d2 − √ δ2 − d2 (5.27)<br />

]<br />

considerând sinh −1 = ln(x + √ x 2 + 1), α = l + m + δ, β = l + δ s¸i γ = m + δ,<br />

unde l s¸i m lungimile conductoarelor, d distant¸a între conductoare s¸i δ spat¸iul dintre<br />

conductoare (Figura 5.33);<br />

103


5. Studii de caz - rezultate numerice s¸i validarea lor experimentală<br />

Figura 5.33: Pozit¸ionarea conductoarelor paralele<br />

• formularea Kalantarov [151] reduce expresia anterioară la inductivitatea dintre două<br />

conductoare paralele, identice, de lungime l aflate la distant¸a h = d (Figura 5.33),<br />

care are expresia:<br />

M = µl<br />

2π<br />

<br />

ln l + √ l 2 + h 2<br />

h<br />

−<br />

√ l 2 + h 2<br />

l<br />

+ h<br />

<br />

l<br />

. (5.28)<br />

În [151] este prezentată o metodă mai simplă de calcul a inductivităt¸ii mutuale între<br />

doă inductoare dreptunghiulare, bazată pe teorema celor patru dreptunghiuri. Pentru a<br />

putea aplica această metodă, în primă fază, se aproximează fiecare bobină cu o înfăs¸urare<br />

mediană cu dimensiunile:<br />

• latura medie spirei echivalente<br />

a = dout + din<br />

2<br />

• noua distant¸a între inductoarele mediate<br />

b = h + dout − din<br />

2<br />

= 300 + 226<br />

2<br />

300 − 226<br />

= 14<br />

2<br />

= 263µm ; (5.29)<br />

= 51µm . (5.30)<br />

Figura 5.34: Problema CHRF201 echivalentă cu inductoare medii<br />

Problema se va reduce la două inductoare pătrate de latură a aflate la distant¸a b (Figura<br />

5.34). Conform acestei metode inductivitatea mutuală se calculează ca:<br />

Mki = Nki − Gki . (5.31)<br />

104


5.3. Inductoare spiralate cuplate - CHRF201<br />

Dacă circuitele dreptunghiulare considerate k s¸i i nu au port¸iuni care se suprapun, as¸a cum<br />

este cazul problemei CHRF201, atunci valorile Gki sunt egale cu zero. Mărimea Nki se<br />

calculează ca sume algebrice de termeni de forma:<br />

Nk = µlk<br />

2π (ln2Sk<br />

lk<br />

− ϕk) , (5.32)<br />

unde lk este perimetrul dreptunghiului k, Sk aria sa, iar ϕ mărime ce se determină pe baza<br />

raportului dintre lungimea s¸i lăt¸imea dreptunghiului (α = L<br />

l ).<br />

Astfel, pentru problema CHRF201 avem<br />

N13 = 1<br />

[N(123) + N(2) − N(12) − N(23)] . (5.33)<br />

2<br />

În Tabelul 5.14 se găsesc valorile calculate ale celor 4 termeni Nki, iar în final inductivitatea<br />

mutuală dintre cele două înfăs¸urări este M = n1n2N13 = 25 · (−0.04085) =<br />

1.02125nH.<br />

ki l [µm] S [µm 2 ] α ϕ N [nH]<br />

123 1680 151751 2.19 0.0689 -2.9191<br />

2 628 13413 5.15 0.0438 -1.2691<br />

12 1154 82582 1.19 0.0739 -2.0532<br />

23 1154 82582 1.19 0.0802 -2.0532<br />

Tabelul 5.14: Calculul inductivităt¸ii mutuale<br />

Revenind la problema init¸ială, inductivitatea mutuală satisface relat¸ia<br />

M = k Ls1Ls2 . (5.34)<br />

unde k este coeficientul de cuplaj inductiv. Având inductoarele identice, acest coeficient<br />

este determinat ca raportul dintre inductivitatea mutuală M s¸i cea proprie Ls (k = M<br />

Ls )<br />

Circuitul echivalent SPICE al inductoarelor cuplate este prezentat în Figura 5.35, iar<br />

parametri lui se calculează folosind formulele adoptate în subcapitolul anterior:<br />

• rezistent¸a serie de curent continuu:<br />

Rs =<br />

1<br />

3.23·107 · 5034 · 10−6 5 · 10−6 +<br />

· 3.1 · 10−6 1<br />

2.15·107 · 142 · 10−6 5 · 10−6 1<br />

5.21·10 + 2 ·<br />

· 0.64 · 10−6 6 · 1 · 10−6 5 · 10−6 · 4.5 · 10−6(5.35) = 6.93 + 2.06 + 0.0044 + 0.017 = 9Ω<br />

• inductivitatea serie este calculată folosind calculatorul on-line [147], ce are la bază<br />

formula Wheeler modificată [148]:<br />

iar factorul de cuplaj inductiv este k = 1.02125<br />

13.94<br />

Ls = 13.94nH (5.36)<br />

105<br />

= 0.0732;


5. Studii de caz - rezultate numerice s¸i validarea lor experimentală<br />

Figura 5.35: Circuitul echivalent pentru inductoare integrate cuplate (LTSpice)<br />

• capacitatea serie:<br />

• capacitatea stratului de oxid:<br />

• capacitatea stratului de Si:<br />

Cs = (5 − 1) · (5 · 10 −6 ) 2 ·<br />

4.1 · 8.85 · 10−12<br />

4 · 10 −6<br />

= 0.907fF ,<br />

COx = 1<br />

2 · 5178 · 10−6 · 5 · 10 −6 ·<br />

· 4.1 · 8.85 · 10−12<br />

5 · 10 −6<br />

= 93.941fF ,<br />

CSi = 1<br />

2 · (300 · 10−6 ) 2 · 178.820 · 10 −9<br />

= 8.047fF ,<br />

unde capacitatea substratului pe unitatea de suprafat¸ă Csub = 178.820nF/m 2 ;<br />

• rezistent¸a stratului de Si(nwell):<br />

RSi =<br />

(5.37)<br />

(5.38)<br />

(5.39)<br />

2<br />

(300 · 10−6 ) 2 · 6.8 · 103 (5.40)<br />

= 3.268kΩ , (5.41)<br />

unde conductant¸a substratului de Si pe unitatea de suprafat¸ă Gsub = 6.8 · 10 3 S/m 2 ;<br />

106


• capacitatea condensatorului adăugat între inductoare:<br />

C12 = 4.1 · 8.85 · 10−12 · 3.1 · 10 −6 · 30010 −6 ·<br />

14 · 10 −6<br />

= 2.410fF .<br />

5.3. Inductoare spiralate cuplate - CHRF201<br />

(5.42)<br />

Adâncimea de pătrundere la 60GHz este δ = 0.11µm, astfel că există efect pelicular.<br />

Raportul dintre semilăt¸imea conductorului s¸i adâncimea de pătrundere este t/2δ = 13.63,<br />

deci rezistent¸a Rs cres¸te de aproximativ 13 ori la frecvent¸e înalte. Conform procedurii<br />

aplicate în cazul inductorului pătrat, se adoptă într-una din simulări rezistent¸ă inductorului<br />

Rs = 12Ω.<br />

Nr. Rs [Ω] Ls [nH] Cs [fF] COx [fF] CSi [fF] RSi [kΩ] k C12 fF<br />

1 9 13.94 0.907 93.941 8.047 3.268 0.0732 2.410<br />

2 12 13.94 0.907 93.941 8.047 3.268 0.0732 2.410<br />

Tabelul 5.15: Valorile parametrilor concentrat¸i pentru fiecare simulare<br />

Folosind datele din Tabelul 5.15 s¸i circuitul SPICE din Figura 5.35, au fost făcute două<br />

simulări. Din rezultatele simulărilor (Figura 5.36), se constată că în cazul rezistent¸ei Rs<br />

nou calculate se obt¸in rezultate mai bune. De asemenea, se mai observă că modelul cu parametri<br />

concentrat¸i nu poate modela efectele de înaltă frecvent¸ă datorate efectului pelicular,<br />

curent¸ilor turbionari sau neomogenităt¸ii substratului sau distribuirii spat¸iale a fenomenelor<br />

inductive, capacitive s¸i rezistive.<br />

5.3.2 Modelarea numerică<br />

Pentru discretizarea problemei CHRF201 a fost folosită o ret¸ea adaptată cu 62×22×38<br />

noduri (Figura 5.37).<br />

Modelarea numerică a t¸inut cont de neomogenitatea materialului trecerii via3, considerând<br />

conductivitatea σtun1 = 6e3S/m. Rezultatele simulărilor, prezentate în Figura 5.38,<br />

arată clar superioritatea modelului Chamy, mai ales la frecvent¸e înalte, unde surprinde<br />

comportarea specifică a caracteristicii de frecvent¸ă a dispozitivului. Modelul cu parametri<br />

concentrat¸i nu reus¸es¸te să faca acest lucru, nici măcar din punct de vedere calitativ. Eroarea<br />

medie pătratică globală pentru modelul SPICE este de 20%, pe când modelul Chamy are<br />

o eroare de 14%. Concluzia este că, în acest caz, numai, un model cu parametri distribuit¸i<br />

poate modela cu acuratet¸e efectele de înaltă frecvent¸ă. Rezulatatele obt¸inute cu Chamy ar<br />

fi s¸i mai bune la frecvente mici, dacă s-ar adăuga la model rezistenta de contact, care ar<br />

face ca Re(Y11) = 1 să coincidă cu cea măsurată la frecvent¸a minimă de 50MHz.<br />

Rs<br />

107


5. Studii de caz - rezultate numerice s¸i validarea lor experimentală<br />

(a) Y11 Real (b) Y11 Imaginar<br />

(c) Y12 Real (d) Y12 Imaginar<br />

Figura 5.36: Simularea modelului aproximativ 1 s¸i 2 - Y11 s¸i Y12<br />

(a) Planul xOy (b) Planul xOz<br />

Figura 5.37: Problema CHRF201 - Ret¸eaua de discretizare adaptată<br />

108


5.3. Inductoare spiralate cuplate - CHRF201<br />

(a) Y11 Real (b) Y11 Imaginar<br />

(c) Y12 Real (d) Y12 Imaginar<br />

Figura 5.38: Rezultate Chamy s¸i SPICE - Y11 s¸i Y12 - pentru CHRF201<br />

(a) Y11 Real (b) Y11 Imaginar<br />

Figura 5.39: Rezultate Chamy s¸i Fredho - Y11 - pentru CHRF201<br />

109


5. Studii de caz - rezultate numerice s¸i validarea lor experimentală<br />

În Figurile 5.39 s¸i 5.40 sunt prezentate rezultatele obt¸inute, folosind în Chamy metoda<br />

Fredho. Se observă că aceeas¸i ret¸ea de discretizare adaptivă, ce generează un sistem linear<br />

cu acelas¸i număr de grade de libertate, reduce eroarea medie pătratică globală de la 14% la<br />

10%. Cel mai probabil, rezultatele mai pot fi îmbunătăt¸ite îndesind gridul în planul xOz,<br />

însă această tehnică este limitată de memoria RAM avută la dispozit¸ie în sistemul de calcul<br />

pe care se face modelarea.<br />

(a) Y12 Real (b) Y12 Imaginar<br />

Figura 5.40: Rezultate Chamy s¸i Fredho - Y12 - pentru CHRF201<br />

5.3.3 Performant¸ele procedurii de extract¸ie a modelului<br />

Folosind ret¸eaua adaptată cu 62 × 22 × 38 noduri, a fost obt¸inut modelul discretizat, un<br />

sistem cu 283733 grade de libertate. Timpul de rezolvare pentru un astfel de sistem liniar<br />

cu necunoscute complexe a fost de 324s pe un nod din clusterul ATLAS, iar cantitatea de<br />

memorie necesară a fost de 16GB.<br />

εAF S εV F Nr. pct. Convergent¸a<br />

iterat¸ie 1 2 3 4<br />

1e-2 1e-4 4<br />

ordin<br />

S<br />

3 6 12 15<br />

′ 3 6 12 4<br />

S + S ′ 7 13 25 29<br />

Tabelul 5.16: Convergent¸a algoritmului AFS-VF<br />

Algoritmul de rezolvare AFS-VF a avut nevoie de 4 iterat¸ii (Tabelul 5.16) pentru a<br />

obt¸ine modelul final, care are ordinul q = 15. Implementarea serială a obt¸inut modelul de<br />

ordin redus în 9399s. Implementarea paralelă cu două nivele de granularitate a avut nevoie<br />

doar de 2598s, obt¸inându-se o accelerare de 3.61. Pentru acest test au fost folosite 4 noduri<br />

din clusterul Atlas. Accelerarea obt¸inută se apropie de accelerarea maximă teoretică, deci,<br />

se poate spune că implementarea paralelă exploatează s¸i de această dată eficient resursele<br />

de calcul.<br />

110


5.4 Concluzii<br />

5.4. Concluzii<br />

Studiul celor trei probleme de test reprezintă validarea experimentală a procedurii de<br />

modelare cu parametri distribuit¸i prezentată în teză, dar, în acelas¸i timp, demonstrează<br />

eficient¸a folosirii implementărilor paralele propuse de autor. În ceea ce prives¸te modelarea<br />

cu parametri concentrat¸i, au fost propuse îmbunătăt¸iri pentru un model al inductoarelor<br />

integrate existent în literatura de specialitate. El a fost validat pentru inductoare pătrate<br />

s¸i hexagonale. Totus¸i acest model cu parametri concentrat¸i nu reus¸es¸te să modeleze cu<br />

acuratet¸e efectele de înaltă frecvent¸ă, as¸a cum s-a văzut mai ales la ultima structură de test.<br />

În schimb, procedura de modelare electromagnetică bazată pe rezolvarea ecuat¸iilor lui<br />

Maxwell cu FIT permite extragerea în mod robust a unor modele de ordin redus, care au o<br />

acuratet¸e acceptabilă din punct de vedere industrial, t¸inând cont s¸i de abaterile geoemetriei<br />

s¸i parametrilor de material, inerente în tehnologiile micro- s¸i nano- electronice s¸i care au<br />

ordine de mărime de circa 10%.<br />

111


Această pagină este lăsată goală în mod intent¸ionat.


Concluzii finale s¸i contribut¸ii originale<br />

CAPITOLUL 6<br />

Modelarea electromagnetică a componentelor pasive din circuitele integrate de înaltă<br />

frecvent¸ă (până la 60GHz), folosind metode numerice, se reduce în final la rezolvarea unor<br />

sisteme de ecuat¸ii algebrice liniare de foarte mari dimensiuni. În bibliotecile matematice<br />

disponibile, comercial sau în domeniul public, există sute chiar s¸i mii de rutine pentru<br />

rezolvarea unor astfel de sisteme. Acestea au fost dezvoltate de persoane sau colective cu<br />

cele mai avansate competente în domeniul matematic s¸i/sau al calculatoarelor. Fiecare din<br />

aceste rutine este potrivită pentru o anumită clasă de matrice.<br />

Observând aceasta realitate, obiectivul tezei nu a constat în dezvoltarea unei rutine suplimenatre,<br />

fat¸ă de cele disponibile, ci a fost acela de a pune la punct o tehnologie eficientă<br />

de modelare s¸i simulare a bobinelor spiralate din circuitele integrate, care sa poată fi executată<br />

pe sisteme de calcul multiprocesor cu arhitecturi ierarhice, hibride (cluster, CPU,<br />

GPU). O astfel de tehnologie este solicitată de proiectant¸ii de circuite integrate de foarte<br />

înalta frecvent¸ă, angajat¸i de partenerii nos¸tri industriali.<br />

Eficient¸a diverselor metodele de rezolvare a sistemelor liniare depinde de caracteristicile<br />

s¸i proprietăt¸ile matricei sistemului. Încercarea de a alege rutinele fără studierea acestor<br />

caracteristici, ca s¸i paralelizarea automată, fără întelegerea granulat¸iei intrinseci a algoritmului<br />

de modelare, s-a dovedit a fi sortita es¸ecului. Trebuie să mai remarcam, că proprietăt¸ile<br />

matricelor obtinut¸e prin discretizarea ecuat¸iilor câmpului electromagnetic sunt în<br />

strânsă legătură cu modul în care este formulată problema, condit¸iile ei de frontieră s¸i metodele<br />

numerice folosite pentru discretizare. De regulă, se obtin matrice rare cu aproape 1<br />

milion de necunoscute.<br />

Dacă toate acestea au fost stabilite anterior, atunci trebuie, în principiu, identificate din<br />

bibliotecile matematice, acele rutine potrivite pentru proprietăt¸ile concrete. În perspectivă<br />

inversă, dacă se alege o metoda directă sau iterativa s¸i de precondit¸ionare recunoscută ca<br />

fiind foarte eficientă, ar trebui ca atunci când se formulează problema de câmp s¸i se decide<br />

metoda de discretizare, să se urmarească obt¸inerea proprietăt¸ilor cerute de metoda de<br />

rezolvare aleasă. Această corelat¸ie între formularea problemei de câmp electromagnetic<br />

s¸i tehnica de rezolvare numerică de rezolvare a ei, în paralel, presupune cunos¸tint¸e de inginerie<br />

electrică ce nu sunt la îndemana matematicienilor sau a informaticienilor, care au<br />

dezvoltat rutinele de rezolvare. Pe de altă parte inginerul, care se ocupă de modelarea electromagnetică,<br />

trebuie să înteleagă nu doar aspectele fizice s¸i ingineres¸ti, să poată identifica<br />

113


6. Concluzii finale s¸i contribut¸ii originale<br />

ipotezele simplificatoare acceptabil, ci să aibă cunos¸tint¸ele de matematică s¸i informatică,<br />

necesare întelegerii modului de funct¸ionare s¸i utilizare a acestor rutine de rezolvare.<br />

Tehnologia de modelare electromagnetică a bobineleor spiralate din circuitele integrate<br />

de înaltă frecvent¸ă, prezentată în teză, a fost pusă la punct s¸i validată experimental folosind<br />

rezultatele măsurătorilor puse la dispozit¸ie de partenerii nos¸tri industriali, pentru structuri<br />

de test proiectate s¸i realizate de aces¸tia. Dintre toate alternativele evaluate, în final, s-a<br />

dovedit a fi cea mai eficientă s¸i precisă, tehnologia care se bazează pe rezolvarea numerică<br />

a ecuat¸iilor lui Maxwell, cu condit¸ii de frontieră de tip EMCE, folosind metoda FIT<br />

în domeniul frecvent¸ei s¸i extragând modelul de ordin redus cu tehnica Es¸antionării Adaptive<br />

a Frecvent¸ei AFS-VF. Ea a fost impelementată pe sistemul hibrid ATLAS, folosind<br />

tehnicile de paralelizare cele mai potrivite pentru etapele acestei tehnologii. Pentru acesta<br />

s-au folosit paradigme de programare, adecvate arhitecturii sistemului de calcul: progrmare<br />

distribuita (MPI pentru cluster), programare paralelă (Open MP, LAPACK pentru<br />

CPU multicore), dar s¸i programare masiv paralela (CUDA, Open CL pentru GPU).<br />

Procedurile de modelare electromagnetică dezvoltate în LMN s¸i prezentate în teză au<br />

condus la accelerarea procesului de 5-10 s¸i chiar de 100 ori, fat¸ă de situat¸ia existentă înainte<br />

de a începe aceste cercetări. În concluzie, putem afirma fără dubiu, că obiectivele tezei au<br />

fost pe deplin realizate.<br />

Principalele contribut¸ii originale aduse prin teza de doctorat:<br />

1. Realizarea unui studiu critic asupra metodelor de modelare elctromagnetică a inductoarelor<br />

din circuitelele integrate de înaltă frecvent¸ă.<br />

2. Modelarea folosind un program dezvoltat în cadrul LMN (Chamy) s¸i un program<br />

comercial (COMSOL) a unui set de structuri inductive de test, virtuale s¸i reale, în<br />

vederea identificarii celei mai eficiente tehnologii TCAD de modelare electromagnetică.<br />

Pe nivelul inferior, cele două programe au fost folosite doar pentru generarea<br />

matricelor sistemului liniar, care au fost rezolvate apoi cu diverse metode, pe sisteme<br />

de calcul multiprocesor. Pe nivelul cel mai înalt, frecvent¸ele, pentru care se<br />

realizează simularea, au fost generate de un algoritm adaptiv distribuit implementat<br />

de autor. S-au identificat s¸i caracterizat subdomeniile omogene ale problemei de<br />

câmp s¸i condit¸iile ei de frontieră, de tip EMCE, rezultând terminalele electrice s¸i<br />

cele magnetice (hooks), prin care dispozitivele analizate interactionează cu mediul<br />

electromagnetic zgomotos.<br />

3. S-a studiat eficient¸a diferitelor metode directe s¸i iterative cu s¸i fără preconditionare,<br />

pentru rezolvarea în paralel (pe sisteme cu arhitecturi ierarhice hibride: cluster, CPU,<br />

GPU) a sistemelor de mari dimensiuni, cu matrice rare generate prin discretizarea<br />

ecuat¸iilor câmpului elctromagnetic s¸i s-au identificat solut.iile cele mai eficiente pentru<br />

tehnologia de modelare propusă. Acestea au fost incluse în programul TCAD<br />

numit Chamy, dezvoltat în cadrul LMN. Testele efectuate pe sistemul de calcul multiprocesor<br />

ATLAS au dovedit o o accelerare substant¸iala¸ a procesului de modelare.<br />

4. A fost dezvoltat, în MATLAB, un program distribuit de extragerea a modelului de<br />

ordin redus. Metoda cea mai eficientă s-a dovedit a fi AFS-VF - Es¸antionarea Adaptivă<br />

a Frecvent¸elor cu Vector Fitting - AFS-VF. Acestea au fost incluse în programul<br />

114


TCAD Chamy, dezvoltat de echipa LMN. Chiar dacă numărul de terminale ale componenetelor<br />

inductive este redus (3 -10), modelul original are sute de mii de grade de<br />

libertate, ceea ce evidentiază complexitatea fenomenelor interne (nu numai inductive<br />

ci s¸i rezistive s¸i capacitive distribuite), dar face ca acest model să fie de neutilizat fără<br />

proiectant¸i. Metoda AFS-VF a reusit să reducă numarul variabilelor de stare la 5-20,<br />

ceea ce evidentază eficient¸a sa extraordinară.<br />

5. A fost modelată structura de test CDST-SP-MIDDLE, constând dintr-o bobină spiralată<br />

cu spire pătrate, realizată în tehnologia CMOS. Rezultatele au fost validate prin<br />

comparat¸ie cu rezultatele măsurătorilor efectuate de partenerii nos¸tri industriali. Fat¸ă<br />

de rularea secvent¸ială, folosind 4 noduri din cluster, s-a obt¸inut o accelerare de 3.<br />

6. A fost modelată structura de test CHRF217, constând dintr-o bobină spiralată cu<br />

spire hexagonale realizată în tehnologia CMOS. Rezultatele au fost validate prin<br />

comparat¸ie cu rezultatele măsurătorilor efectuate de partenerii nos¸tri industriali.<br />

7. A fost modelată structura de test CHRF201, constând dintr-o pereche de bobine cuplate,<br />

realizate în tehnologia CMOS. Rezultatele au fost validate prin comparat¸ie cu<br />

rezultatele măsurătorilor efectuate de partenerii nos¸tri industriali. Rezultatele numerice<br />

au acuratet¸e mai mare decât cele obtinut¸e init¸ial, în cadrul proiecteleor, s¸i sunt<br />

obt¸inute mult mai rapid.<br />

Contribut¸iile orginale aduse de autor au fost comunicate în lucrări publicate împreună<br />

cu alt¸i membri ai echipei de cercetare LMN.<br />

Lista lucrărilor publicate de autor<br />

1. I. Andrei, E. Căciulan, D. Dan, G. Ciuprina and D. Ioan, ”Matlab Based Parallel<br />

Deterministic Optimization of the Loneys Solenoid”, Acta Electrotehnica – Special<br />

Issue – Selected papers from the 3 rd International Conference of Modern Power Systems<br />

(MPS 2010), Vol. 51, No. 5, pp. 9-14, Mediamira Science Publisher, Cluj-<br />

Napoca, Romania, 2010, ISSN 1841-3323.<br />

2. I. Andrei, E. Căciulan and D. Dan, ”Parallel and Distributed Computations Applied<br />

to the Deterministic Optimization of the Loney’s Solenoid”, Proceedings of the 11 th<br />

International Workshop on Optimization and Inverse Problems in Electromagnetism<br />

(OIPE 2010), pp:90-91, September 14-18, 2010, Sofia, Bulgaria, ISBN 978-954-<br />

438-855-3.<br />

3. G. Ciuprina, D. Ioan, I.A. Lazăr, M.I. Andrei, ”Adaptive Frequency Sampling for the<br />

Effective Extraction of Reduced Models for HF-ICs Passive Components”, Proceedings<br />

of National Symposium of Theoretical Electrical Engineering (SNET 2010),<br />

Bucharest, 2010, ISSN 2067-4147.<br />

4. I.A. Lazăr, M.I. Andrei, E. Căciulan, G. Ciuprina and D. Ioan, ”Parallel algorithms<br />

for the efficient extraction of fitting based reduced order models”, Proceedings of the<br />

7 th International Symposium on Advanced Topics in Electrical Engineering (ATEE<br />

2011), pp:1-6, 12-14 May, Bucharest, 2011, ISSN: 2068-7966<br />

115


6. Concluzii finale s¸i contribut¸ii originale<br />

5. D. Ioan, G. Ciuprina, C.B. Dit¸ă and M.I. Andrei, ”Electromagnetic Models of Integrated<br />

Circuits with Coupled Magnetic Circuits”, Proceedings of the International<br />

Conference on Electromagnetics in Advanced Applications (ICEAA 2012), September<br />

2-7, 2012, Cape Town, South Africa.<br />

6. G. Ciuprina, D. Ioan, C.B. Dit¸ă and M.I. Andrei, ”Frequency Dependent Models for<br />

Planar On-Chip Inductors”, Book of Abstracts, Scientific Computing in Electrical<br />

Engineering (SCEE 2012), 11-14 September, 2012, Zurich, Switzerland.<br />

7. G. Ciuprina, D. Ioan, C.B. Dit¸ă and M.I. Andrei, ” Optimal terminals identification<br />

for domain partitioning of electro-magnetic circuit elements”, Proceedings of 12 th<br />

International Workshop on Optimization and Inverse Problems in Electromagnetism<br />

(OIPE 2012), 19-21 September, 2012, Ghent, Belgium.<br />

Lucrări trimise pentru publicare:<br />

1. G. Ciuprina, C.B. Dit¸ă, M.I. Andrei and D. Ioan, ”Hierarchical Sparse Circuits for<br />

the Modeling of Homogeneous Domains in High Frequency ICs”, în curs de publicare<br />

la Editura Politehnica Press<br />

2. M.I. Andrei and C.B. Dit¸ă, ”Using Multiprocessors Systems for Electromagnetic<br />

Modelling of Spiral Inductors”, lucrare trimisă pentru Buletinul UPB, ID 1698.<br />

Lucrări în pregătire:<br />

1. Parallel extraction of reduced order models for integrated inductors by AFS-VF<br />

2. Parallel iterative electromagnetic modeling of spiral inductors<br />

116


Definire schedulere<br />

ANEXA A<br />

În această anexă se prezintă modul în care se pot defini schedulere pentru folosirea MATLAB<br />

paralel (versiunea 2012a). Scheduler-ul ”local” este predefinit s¸i permite folosirea calculului paralel<br />

prin MATLAB PCT. ”JobManager”-ul este cel livrat cu MATLAB DCS, iar ”Torque” este un<br />

scheduler open-source [152].<br />

Observat¸ia 2 Înainte de a defini schedulere trebuie pornit¸i workersii din Control Center (cc.lmn.pub.ro).<br />

A.1 Definire scheduler JobManager<br />

Pentru a defini un Job Manager (1 worker = 1 core) merget¸i la meniul Parallel −→ Manage<br />

Cluster Profiles −→ New −→ MATLAB Job Scheduler (MJS). Putet¸i redenumi numele schedulerului<br />

(click dreapta −→ Rename). Butonul Edit permite accesul la modificarea scheduler-ului nou<br />

definit. Modificat¸i câmpurile astfel:<br />

• Hostname of the machine where MJS is running:<br />

tau-ib:28000<br />

• The name of MJS:<br />

Greeks<br />

• Range of number of workers to run job:<br />

[1 32]<br />

Numărul maxim de workersi poate fi cel mult 64 sau numărul de workers¸i pornit¸i, altfel primit¸i<br />

eroare la Validare. Done, apoi revenit¸i s¸i selectat¸i scheduler-ul nou definit s¸i validati-l (click dreapta<br />

Validate).<br />

117


A. Definire schedulere<br />

A.2 Definire scheduler Torque<br />

Pentru a defini un Torque (1 worker = 1 nod) merget¸i la meniul Parallel −→ Manage Cluster<br />

Profiles −→ New-¿ Torque. Putet¸i redenumi numele scheduler-ului (click dreapta −→ Rename).<br />

Butonul Edit permite accesul la modificarea scheduler-ului nou definit. Modificat¸i câmpurile astfel:<br />

• Number of workers available on cluster:<br />

4 (num\u arul de noduri pornite)<br />

• Root of MATLAB installation for wrokers:<br />

/usr/local/matlab<br />

• Range of number of workers to run job:<br />

[1 32] sau puteti lasa necompletat<br />

• Remote shell command to call UNIX:<br />

ssh<br />

• Remote copy command:<br />

scp<br />

Administrarea scheduler-ului Torque se poate face executaând comenzi numai pe nodul Tau.<br />

Comanda:<br />

pbsnodes<br />

listează toate nodurile. Interesează doar opt¸iunea STATE, care poate fi DOWN (atunci când schedulerul<br />

Torque nu îl consideră worker), FREE (starea normală) sau OFFLINE.<br />

Pentru a scoate un nod din grupul celor care primesc joburi Torque trebuie marcat ca OFFLINE:<br />

sudo pbsnodes -o nume_nod.lmn.pub.ro<br />

unde nume nod se înlocuies¸te cu numele nodului (Beta, Delta, ...).<br />

Pentru a activa un nod ca worker (FREE) se execută comanda:<br />

sudo pbsnodes -c nume_nod.lmn.pub.ro<br />

118


AFS-VF paralel<br />

În această anexă sunt prezentate funct¸iile ce formează algoritmul AFS-VF paralel.<br />

B.1 Cod pm sys2snp vf3 v*.m<br />

ANEXA B<br />

%% ============================<br />

% Aceasta este versiunea paralela a functiei "sys2snp_vf3"<br />

%scrisa de dna. prof. Gabriela Ciuprina<br />

% <strong>Mihail</strong>-<strong>Iulian</strong> <strong>ANDREI</strong><br />

% iulian@lmn.pub.ro<br />

% Ultima verificare 18 Iul 2012<br />

%% ============================<br />

function [frequency_response,frequency_data,trfct] = pm_sys2snp_vf3_v3 ...<br />

(matrices, frequency_data, method, snp_info, avfitParams, sched, ...<br />

sched_type, nr_workers, solver_used);<br />

%% No of terminals<br />

B = matrices.nominal.B;<br />

trfct = [];<br />

m = size(B,2);<br />

nofreq = length(frequency_data.frequency_points); % no of frequency points<br />

% check is the frequencies are in rad/sec<br />

switch lower(frequency_data.frequency_unit)<br />

case ’hz’<br />

omega = 2*pi*frequency_data.frequency_points;<br />

case ’khz’<br />

omega = 2*pi*frequency_data.frequency_points*1e3;<br />

case ’mhz’<br />

omega = 2*pi*frequency_data.frequency_points*1e6;<br />

case ’ghz’<br />

omega = 2*pi*frequency_data.frequency_points*1e9;<br />

otherwise % rad/sec<br />

119


B. AFS-VF paralel<br />

end<br />

omega = frequency_data.frequency_points;<br />

%% ====================Matlapool=================================<br />

matlabpool (’open’, sched, nr_workers, ’FileDependencies’,...<br />

{’compute_list_frequencies_v2.m’ ’compute_list_frequencies_v3.m’});<br />

sourcespath = genpath(’/home/iulian/library_sol/taux2’);<br />

addpath(sourcespath);<br />

% matlabpool (’open’, sched, nr_workers);<br />

tic;<br />

tt = cputime;<br />

%% %%%%%%%%%%%%%%%%%%%%%%%%%% COMPUTE THE ANSWER %%%%%%%%%%%%%%%%%%%<br />

disp(’Compute the answer ...... wait’);<br />

if frequency_data.AFS.flag<br />

doafs = 1;<br />

else<br />

doafs = 0;<br />

end<br />

if isempty(frequency_data.AFS.max)<br />

doafs = 0;<br />

elseif frequency_data.AFS.max == 0<br />

doafs = 0;<br />

end<br />

if ˜doafs<br />

disp(’Compute the answer for exactly the frequencies’);<br />

% compute the answer for exactly the frequencies that are in<br />

% frequency_data.frequency_points<br />

if m == 1<br />

frequency_response = zeros(nofreq,1); %SISO<br />

else<br />

frequency_response = zeros(m,m,nofreq); %MIMO<br />

end<br />

for k = 1:nofreq<br />

y = compute_one_frequency(matrices,method,omega(k));<br />

if m == 1 % SISO<br />

if ˜isempty(y)<br />

frequency_response(k) = y;<br />

else<br />

frequency_response(k) = 0;<br />

end<br />

else % MIMO<br />

if ˜isempty(y)<br />

frequency_response(:,:,k) = y;<br />

else<br />

120


B.1. Cod pm sys2snp vf3 v*.m<br />

frequency_response(:,:,k) = 0;<br />

end<br />

end<br />

end<br />

else<br />

disp(’Adaptive Frequency Sampling (AFS) is used. <strong>Iulian</strong>’);<br />

listf = sort(omega);<br />

%==============Crearea listei de frevente===========================<br />

listf_new = frequency_list(omega);<br />

if strcmp(solver_used,’umfpack’)<br />

fprintf(’=======>umfpack used \n’);<br />

yf = compute_list_frequencies_v2(matrices, listf_new,...<br />

m, nr_workers, sched_type);<br />

elseif strcmp(solver_used,’taucs’)<br />

fprintf(’=======>taucs used \n’);<br />

yf = compute_list_frequencies_v3(matrices, listf_new, m,...<br />

nr_workers, sched_type);<br />

else<br />

fprintf(’=======>ERROR Unknown solver \n’);<br />

end<br />

matrices.nominal<br />

if m ==1<br />

i_2 = 0;<br />

for i_1=1:2:length(yf)<br />

i_2=i_2+1;<br />

yf_1(i_2) = yf(i_1);<br />

end<br />

i_2 = 0;<br />

for i_1=2:2:length(yf)<br />

i_2=i_2+1;<br />

yf_2(i_2) = yf(i_1);<br />

end<br />

resp = yf_1;<br />

resp_rest = yf_2;<br />

else<br />

i_2 = 0;<br />

for i_1=1:2:length(yf)<br />

i_2=i_2+1;<br />

yf_1(:,:,i_2) = yf(:,:,i_1);<br />

end<br />

i_2 = 0;<br />

for i_1=2:2:length(yf)<br />

i_2=i_2+1;<br />

yf_2(:,:,i_2) = yf(:,:,i_1);<br />

121


B. AFS-VF paralel<br />

end<br />

end<br />

resp = yf_1;<br />

resp_rest = yf_2;<br />

[listf,listy,trfct] = do_afs_nerecursiv(omega, resp, ...<br />

frequency_data.AFS, matrices, method, snp_info, avfitParams, ...<br />

nr_workers, resp_rest, sched_type, solver_used);<br />

nop = length(listf);<br />

frequency_response = listy;<br />

if m == 1<br />

frequency_response = conj(frequency_response’);<br />

end<br />

frequency_data.frequency_points = listf/(2*pi)*1e-9;<br />

frequency_data.frequency_unit = ’GHz’;<br />

if nop >= frequency_data.AFS.max<br />

fprintf(’************** WARNING **************: ...<br />

afs - max no of iterations = %d reached \n’, frequency_data.AFS.max);<br />

fprintf(’No of computed points = %d \n’,nop);<br />

end<br />

nofreq = length(listf);<br />

end<br />

t2=toc;<br />

tt2 = cputime;<br />

fprintf(’Time for computing frequency response = %e \n’, t2);<br />

fprintf(’Time for computing frequency response = %e \n’, tt2-tt);<br />

fprintf(’Number of computed frequencies = %d \n’, nofreq);<br />

disp(’sys2snp - FINISHED’);<br />

matlabpool close;<br />

end<br />

%% do_afs_nerecursiv Function<br />

function [listx,listy,trfct] = do_afs_nerecursiv(listx, listy,...<br />

AFSinfo, matrices, method, snp_info, avfitParams, nr_workers, ...<br />

resp_rest, sched_type, solver_used);<br />

lx = length(listx);<br />

interval_flags = ones(1,lx-1);<br />

% 1 inseamna interval "verde", trebuie pus<br />

% in interiorul lui un punct<br />

no_test = nnz(interval_flags);<br />

idx_iter = 0;<br />

flag_ordin = 0;<br />

mm = size(matrices.nominal.B,2);<br />

iteratie = 0;<br />

122


while and(lx 1<br />

old_poles = poles;<br />

old_residues = residues;<br />

old_kinf = kinf;<br />

old_prop = prop;<br />

end<br />

frequency_data.frequency_unit = freq_unit;<br />

frequency_data.frequency_points = frequency_points;<br />

123


B. AFS-VF paralel<br />

response = value;<br />

avfitParams.idx = idx_iter;<br />

transferFunction = auto_vfit3_fromfreqdata(frequency_data,...<br />

response,snp_info,avfitParams);<br />

ordin(idx_iter) = transferFunction.order;<br />

poles = transferFunction.poles;<br />

residues = transferFunction.residues;<br />

kinf = transferFunction.kinf;<br />

prop = transferFunction.prop;<br />

if idx_iter > 1<br />

if ordin(idx_iter) == ordin(idx_iter - 1)<br />

flag_ordin = 1;<br />

end<br />

end<br />

end<br />

%% =======================Partea paralela======<br />

idx_2 = 0;<br />

test_yinterpp = [];<br />

for idx_1=1:lx-1<br />

if interval_flags(idx_1) ˜= 0<br />

idx_2 = idx_2+1;<br />

x1 = listx(idx_1);<br />

x2 = listx(idx_1+1);<br />

if mm == 1 % SISO<br />

y1 = listy(idx_1);<br />

y2 = listy(idx_1+1);<br />

else<br />

y1 = listy(:,:,idx_1);<br />

y2 = listy(:,:,idx_1+1);<br />

end<br />

if strcmpi(AFSinfo.type,’vfitlinf’)%<br />

test_omega(idx_2) = (x1+x2)/2;<br />

if mm == 1 %SISO<br />

yinterp = 0;<br />

omega_crt = test_omega(idx_2);<br />

for k2 = 1:transferFunction.order<br />

yinterp = yinterp + residues(k2)/...<br />

(1i*omega_crt - poles(k2));<br />

end<br />

yinterp = yinterp + kinf + 1i*omega_crt*prop;<br />

test_yinterpp(idx_2) = yinterp;<br />

else<br />

yinterp = zeros(mm,mm);<br />

omega_crt = test_omega(idx_2);<br />

for k2 = 1:transferFunction.order<br />

124


end<br />

end<br />

end<br />

end<br />

B.1. Cod pm sys2snp vf3 v*.m<br />

yinterp = yinterp + residues(:,:,k2)./...<br />

(1i*omega_crt - poles(k2));<br />

end<br />

yinterp = yinterp + kinf + 1i*omega_crt*prop;<br />

%yinterp = reshape(yinterp,mm,mm);<br />

test_yinterpp = [test_yinterpp yinterp];<br />

if mm == 1<br />

test_yinterp = test_yinterpp;<br />

else<br />

idx_2 = 0;<br />

for idx_1=1:2:length(test_yinterpp)<br />

idx_2 = idx_2+1;<br />

test_yinterp(:,1,idx_2) = test_yinterpp(:,idx_1);<br />

test_yinterp(:,2,idx_2) = test_yinterpp(:,idx_1+1);<br />

end<br />

end<br />

if iteratie == 1<br />

test_resp = resp_rest<br />

else<br />

if strcmp(solver_used,’umfpack’)<br />

fprintf(’=======>umfpack used \n’);<br />

test_resp = compute_list_frequencies_v2 (matrices,...<br />

test_omega, mm, nr_workers, sched_type);<br />

elseif strcmp(solver_used,’taucs’)<br />

fprintf(’=======>taucs used \n’);<br />

test_resp = compute_list_frequencies_v3 (matrices,...<br />

test_omega, mm, nr_workers, sched_type);<br />

else<br />

fprintf(’=======>ERROR Unknown solver \n’);<br />

end<br />

end<br />

for idx_1=1:length(test_resp)<br />

if interval_flags(idx_1) ˜= 0<br />

if mm == 1<br />

norm1 = norm(test_resp(idx_1)-test_yinterp...<br />

(idx_1),’fro’);<br />

norm2 = norm(test_resp(idx_1),’fro’);<br />

if ˜and(AFSinfo.err*norm2 < eps, norm1 < eps)<br />

if norm1 > AFSinfo.err*norm2<br />

flag_test(idx_1) = 1;<br />

125


B. AFS-VF paralel<br />

end<br />

end<br />

end<br />

else<br />

norm1 = norm(test_resp(:,:,idx_1)-test_yinterp...<br />

(:,:,idx_1),’fro’);<br />

norm2 = norm(test_resp(:,:,idx_1),’fro’);<br />

if ˜and(AFSinfo.err*norm2 < eps, norm1 < eps)<br />

if norm1 > AFSinfo.err*norm2<br />

flag_test(idx_1) = 1;<br />

end<br />

end<br />

end<br />

end<br />

listx_test = test_omega;<br />

listy_test = test_resp;<br />

%=======================Sfarsit Partea paralela======<br />

%%<br />

% asambleaza noua lista de frecventa si flagurile intervalelor<br />

lx_new = lx + no_test;<br />

listx_new = zeros(1,lx_new);<br />

if mm == 1 % SISO<br />

listy_new = zeros(1, lx_new);<br />

else<br />

listy_new = zeros(mm,mm,lx_new);<br />

end<br />

interval_flags_new = zeros(1,lx_new - 1);<br />

idx = 0;<br />

idx_test = 0;<br />

for k = 1:lx-1<br />

if interval_flags(k) == 1<br />

% adauga capatul din stanga si pct intermediar<br />

idx_test = idx_test + 1;<br />

idx = idx + 1;<br />

listx_new(idx) = listx(k);<br />

if mm == 1 % SISO<br />

listy_new(idx) = listy(k);<br />

else<br />

listy_new(:,:,idx) = listy(:,:,k);<br />

end<br />

interval_flags_new(idx) = flag_test(idx_test);<br />

% flagul acestui noi interval depinde de flagul pct de test<br />

idx = idx + 1;<br />

listx_new(idx) = listx_test(idx_test);<br />

if mm == 1 % SISO<br />

listy_new(idx) = listy_test(idx_test);<br />

126


end<br />

B.1. Cod pm sys2snp vf3 v*.m<br />

else<br />

listy_new(:,:,idx) = listy_test(:,:,idx_test);<br />

end<br />

interval_flags_new(idx) = flag_test(idx_test);<br />

else % pastreaza doar capatul din stanga<br />

idx = idx + 1;<br />

listx_new(idx) = listx(k);<br />

if mm == 1 % SISO<br />

listy_new(idx) = listy(k);<br />

else<br />

listy_new(:,:,idx) = listy(:,:,k);<br />

end<br />

interval_flags_new(idx) = 0;<br />

% acest interval nu a fost si nu va mai fi divizat<br />

end<br />

% adauga ultimul punct<br />

idx = idx + 1;<br />

listx_new(idx) = listx(lx);<br />

if mm == 1 % SISO<br />

listy_new(idx) = listy(lx);<br />

else<br />

listy_new(:,:,idx) = listy(:,:,lx);<br />

end<br />

lx = lx_new;<br />

listx = listx_new;<br />

listy = listy_new;<br />

interval_flags = interval_flags_new;<br />

no_test = nnz(interval_flags);<br />

if flag_ordin == 1<br />

if no_test ˜= 0<br />

er_poles = norm(old_poles - poles)/norm(poles);<br />

er_tf = snp_info.tol_poles;<br />

if er_poles < er_tf<br />

no_test = 0;<br />

% se va opri, atentie ultimul vfit e...<br />

% facut pe penultimul set de puncte<br />

disp(’ =============================...<br />

=========================================================<br />

disp(’ - STOP DUE TO THE UNCHANGE OF...<br />

THE REDUCED OR<strong>DE</strong>R MO<strong>DE</strong>L FOR TWO CONSECUTIVE ITERATIONS -<br />

disp(’ - and relative difference of ...<br />

the poles vector less than 1 % - ’);<br />

disp(’ =============================...<br />

=========================================================<br />

else<br />

127


B. AFS-VF paralel<br />

end<br />

end<br />

end<br />

end<br />

flag_ordin = 0;<br />

%%%% vector fit final + sinteza<br />

frequency_data.frequency_unit = ’rad/s’;<br />

frequency_data.frequency_points = listx;<br />

response = listy;<br />

avfitParams.idx = idx_iter+1;<br />

if mm == 1<br />

response = conj(response’);<br />

end<br />

%avfitParams.minOrder = 1;<br />

trfct = auto_vfit3_fromfreqdata(...<br />

frequency_data,response,snp_info,avfitParams);<br />

if or(strcmpi(AFSinfo.type,’vfit’),strcmpi(AFSinfo.type,’vfitlinf’))<br />

disp(’ordin’);<br />

disp(ordin);<br />

end<br />

disp(’nr puncte noi evaluate’);<br />

disp(nr_pct_noi_testate);<br />

disp(’nr total puncte’);<br />

disp(nr_pct_testate);<br />

disp(’Polii functiei de transfer pentru modelul final’);<br />

disp(trfct.poles);<br />

end<br />

B.2 Cod compute list frequencies v*.m<br />

%% ============================<br />

% <strong>Mihail</strong>-<strong>Iulian</strong> <strong>ANDREI</strong><br />

% iulian@lmn.pub.ro<br />

% Ultima verificare 22 Sep 2011<br />

% testat pe Matlab 2011<br />

% solver folosit umfpack<br />

%% ============================<br />

function [y] = compute_list_frequencies_v2(matrices, list_test, mm, ...<br />

nr_workers, sched_type)<br />

% y - vectorul ce retine raspunsul obtinut in urma rezolvarii sistemelor<br />

% matrices - contine matricele sistemului de semi-stare (C,G,B,L,D)<br />

% list_test - contine lista frecventelor pentru care trebuie rezolvat<br />

128


% sistemul (de fapt lista contine 2*pi*f)<br />

% mm - numarul de intrari<br />

% nr_workers - numarul de workersi<br />

B.2. Cod compute list frequencies v*.m<br />

fprintf(’---------------compute_list_frequencies_v2--------------------’);<br />

% matricele sistemului de semi-stare<br />

n = length(list_test);<br />

C = matrices.nominal.C;<br />

G = matrices.nominal.G;<br />

B = matrices.nominal.B;<br />

L = matrices.nominal.L;<br />

D = matrices.nominal.D;<br />

tic;<br />

%% Partea paralela<br />

spmd<br />

res =[];<br />

res_frec =[];<br />

% In cazul folosirii scheduler-ului "Torque" numarul<br />

% de threads-uri se seteaza pe numarul de core-uri disponibile (8),<br />

% in cazul scheduler-ului "Jobmanager" numarul de threads-uri<br />

% ramane setat pe 1.<br />

sched_type_lab = sched_type<br />

if strcmp(sched_type_lab,’Torque’)<br />

maxNumCompThreads(8);<br />

maxNumCompThreads(8);<br />

else<br />

maxNumCompThreads(1);<br />

maxNumCompThreads(1);<br />

end<br />

maxNumCompThreads<br />

%% Distributia frecventelor<br />

list_testt = list_test; %aduce lista de frecvente in memoria workersilor<br />

dist = codistributor1d(); % stabilirea schemei de distributie<br />

% distributia frecventelor<br />

list_test_distributed = codistributed (list_testt);<br />

% crearea unui vector local pe fiecare worker, care contine<br />

% una sau mai multe frecvente primite in urma distributiei frecventelor<br />

list_test_local = getLocalPart(list_test_distributed);<br />

%% Rezolvarea sistemelor<br />

for i=1:1:length(list_test_local)<br />

K = 1i*list_test_local(i)*C+G;<br />

tic<br />

129


B. AFS-VF paralel<br />

end<br />

toc<br />

end<br />

x = K\B;<br />

toc<br />

xx = L*x+D;<br />

res = [res xx];<br />

res_frec = [res_frec list_test_local(i)];<br />

%% Asamblarea raspunsului<br />

end<br />

% Aducerea raspunsului in spatiul local<br />

ff=[];<br />

fff=[];<br />

for i=1:nr_workers<br />

ff = [ff res{i}];<br />

fff = [fff res_frec{i}];<br />

end<br />

% Asamblarea raspunsului sub forma de vector de matrice<br />

y= [];<br />

k=0;<br />

if mm == 1<br />

for i=1:n<br />

y(i) = ff(1,i);<br />

end<br />

else<br />

for i=1:2:2*n<br />

k=k+1;<br />

y(1,1,k) = ff(1,i);<br />

y(1,2,k) = ff(1,i+1);<br />

y(2,1,k) = ff(2,i);<br />

y(2,2,k) = ff(2,i+1);<br />

end<br />

end<br />

fprintf(’---------------END compute_list_frequencies_v2---------’);<br />

%% Eliberarea memoriei<br />

% Stergerea tuturor variabilelor folosite in aceasta functie<br />

clear functions<br />

B.3 Funct¸ie profilare<br />

Cu ajutorul acestei funct¸ii se pot măsura timpii de execut¸ie ai unei alte funt¸ii atât cei paraleli, cât s¸i<br />

cei secvent¸iali, folosind profiler-ul MATLAB.<br />

130


%%%%%%%%%%%%%%%%%%%%%%%<br />

%% <strong>Mihail</strong>-<strong>Iulian</strong> <strong>ANDREI</strong><br />

% iulian@lmn.pub.ro<br />

% 28 Jun 2011<br />

%%%%%%%%%%%%%%%%%%%%%%%<br />

B.3. Funct¸ie profilare<br />

%% Instructions<br />

% Step 1: put ’profile on -timer real’ before profiled function.<br />

% Step 2: put ’profile off’<br />

% ’profiled_info = profile(’info’);’<br />

% after profiled function.<br />

% Step 3: assign the name of profiled function ’func_name = ’name_of_your_fun<br />

% Step 4: call this function ’t = profile_function(func_name, profiled_info);<br />

% WARNING: If the following message is received ’The profiler has already<br />

% been started. TIMER cannot be changed.’ call ’profile off’ in command<br />

% line of MATLAB.<br />

function [t_profile] = profile_function (func_name, profiled_info);<br />

for i=1:length(profiled_info.FunctionTable)<br />

if strcmpi(profiled_info.FunctionTable(i).FunctionName, func_name)<br />

t_profile = profiled_info.FunctionTable(i).TotalTime;<br />

end<br />

end<br />

clear functions;<br />

end<br />

131


Această pagină este lăsată goală în mod intent¸ionat.


Solver iterativ paralel GPU<br />

ANEXA C<br />

Această anexă cont¸ine suita de programe ce ofera accesul la solvere iterative paralele cu GPU.<br />

C.1 Readme file<br />

CUDA Programs<br />

1. Requirements<br />

- Matlab<br />

- CUDA Driver (and additional software)<br />

- CUDA (tested on 4.1 version) along with Thrust 1.5<br />

- CUSP library<br />

- gcc ver. 3.6 (see specifications for Matlab Mex if you want to use other<br />

version<br />

and modify "make_install.m" file)<br />

2. Install<br />

In the "make_install.m" file, specify the path of "nvcc" compiler for<br />

every command and the path for CUDA libraries. Then, execute<br />

"make_install.m" file.<br />

3. Using CUDA Programs<br />

Include the CUDA Programs folder to your Matlab sources, by adding<br />

the following code to your programs:<br />

sourcespath = genpath(’specify you PATH to cuda_programs’);<br />

addpath(sourcespath);<br />

You can call iterative solvers by this command:<br />

x = iterative_solver (A, b, no_it, rel_tol, solver_used);<br />

where<br />

x - solution<br />

A - Coefficient matrix A (A must be sparse real or complex)<br />

b - right hand side b<br />

133


C. Solver iterativ paralel GPU<br />

no_it - number of iterations<br />

rel_tol - tolerance<br />

solver_used - choose solver:<br />

1 - GMRES<br />

2 - GMRES with PRECONDITIONER<br />

3 - BiCGstab<br />

4 - CG<br />

OBS: For GMRES and GMRES with PRECONDITIONER you can modify the<br />

restart value and after run "make_install.m" file. See cuda files<br />

for more details about monitor.<br />

4. Uninstall<br />

Remove all files.<br />

C.2 Installation file<br />

%============================<br />

%<strong>Mihail</strong>-<strong>Iulian</strong> <strong>ANDREI</strong><br />

% iulian@lmn.pub.ro<br />

% Last check 24 Feb 2012<br />

%============================<br />

%% Run this m-file to install all functions<br />

current_path = pwd;<br />

%% Complie solver files<br />

install_folder = strcat(current_path, ’/cuda_programs/solvers’);<br />

chdir(install_folder);<br />

%%Matlab 2011<br />

%system(sprintf(’/home/iulian/cuda_local/cuda/bin/nvcc ...<br />

--compiler-bindir /usr/lib64/ccache/gcc34 -I"%s/extern/include"...<br />

--cuda "solver_complex_mex.cu" --output-file "solver_complex_mex.cpp"’...<br />

, matlabroot));<br />

%mex -I/home/iulian/cuda_local/cuda/include/<br />

-L/home/iulian/cuda_local/cuda/lib64 -lcudart -lcusparse<br />

-largeArrayDims solver_complex_mex.cpp<br />

%%Matlab 2012<br />

% system(sprintf(’/home/iulian/cuda_41/cuda/bin/nvcc<br />

-I"%s/extern/include" --cuda "solver_complex_mex.cu"<br />

--output-file "solver_complex_mex.cpp"’, matlabroot));<br />

%mex -I/home/iulian/cuda_41/cuda/include/<br />

-L/home/iulian/cuda_41/cuda/lib64 -lcudart -lcusparse<br />

-largeArrayDims solver_complex_mex.cpp<br />

%%Matlab 2012, Cuda 4.1, Cusp 0.3.0<br />

134


C.2. Installation file<br />

system(sprintf(’/usr/local/cuda/bin/nvcc -I"%s/extern/include"<br />

--cuda "solver_complex_mex.cu" --output-file "solver_complex_mex.cpp"’<br />

, matlabroot));<br />

mex -I/usr/local/cuda/include/ -L/usr/local/cuda/lib64 -lcudart<br />

-lcusparse -largeArrayDims solver_complex_mex.cpp<br />

fprintf(’----------->Complex solver DONEreal solver DONEsolvers DONE


C. Solver iterativ paralel GPU<br />

C.3 Example file<br />

clear all;<br />

clc;<br />

%% Add source programs path<br />

sourcespath = genpath(’/home/iulian/cuda_solvers_poland/cuda_programs’);<br />

addpath(sourcespath);<br />

%% Load matrices from a file<br />

chdir(’/home/iulian/cuda_solvers_poland/matrices’);<br />

load ’utm300.mat’;<br />

chdir(’..’);<br />

%% Data<br />

% Coefficient matrix A and right hand side b (Ax=b)<br />

A=Problem.A;<br />

b = Problem.b;<br />

%% Choosing solver<br />

% 1 - GMRES<br />

% 2 - GMRES with PRECONDITIONER<br />

% 3 - BiCGstab<br />

% 4 - CG<br />

n=length(A);<br />

solver_used = 1;<br />

k=1;<br />

no_it = n*k;<br />

rel_tol = 1e-11;<br />

%% Solver from MATLAB<br />

tic<br />

%x0= bicgstab(A,b, rel_tol, no_it);<br />

%x0= gmres(A,b, [], rel_tol, no_it);<br />

toc<br />

%% GMRES solver with CUDA<br />

x1 = iterative_solver (A, b, no_it, rel_tol, solver_used);<br />

%% Compute norm<br />

%norm(b-A*x0)/norm(b)<br />

norm(b-A*x1)/norm(b)<br />

C.4 Solver call file<br />

%% ============================<br />

136


% <strong>Mihail</strong>-<strong>Iulian</strong> <strong>ANDREI</strong><br />

% iulian@lmn.pub.ro<br />

% Last check 02 July 2012<br />

%% ============================<br />

C.4. Solver call file<br />

function [x] = iterative_solver (A, b, no_it, rel_tol, solver_used, M)<br />

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%<br />

% solves Ax=b<br />

%%Input data<br />

% A - coeffcient matrix<br />

% b - vector<br />

% no_it - number of iterations<br />

% rel_tol - tolerance<br />

% solver_used - 1 GMRES with restart<br />

% 2 Preconditioned GMRES with restart<br />

% 3 BiCGSTAB<br />

% 4 Conjugate Gradients<br />

% OBS. GMRES and BiCGSTAB for unsymmetric A matrix and CG for symmetric<br />

% M - preconditioner matrix (if M is missing identity matrix is used)<br />

%% Output data<br />

% x - solution vector<br />

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%<br />

% check the preconditioner<br />

if (nargin < 6) || isempty(M)<br />

M = sparse([0]);<br />

end<br />

[i, j, x, no_nonzeros_A, no_cols_A, no_rows_A] = csc2coo_matrix(A);<br />

[i_M, j_M, x_M, no_nonzeros_M, no_cols_M, no_rows_M] = csc2coo_matrix(M);<br />

% Check conversion only<br />

%%TO FIX if the last line is zero you will get an error<br />

% ver = sparse(i_M,j_M,x_M);<br />

% ver=full(ver)<br />

% if ver==M<br />

% 1<br />

% else<br />

% 2<br />

% end<br />

if isreal(A)<br />

%Call real solver<br />

% rows and cols vectors from 0 index<br />

tic<br />

x = solver_real_mex(i-1, j-1, x, no_nonzeros_A, b, no_it,...<br />

rel_tol, solver_used, i_M-1, j_M-1, x_M, no_nonzeros_M);<br />

toc<br />

137


C. Solver iterativ paralel GPU<br />

else<br />

% Call complex solver<br />

% rwos and cols vectors from 0 index<br />

tic<br />

[x_re, x_im] = solver_complex_mex(i-1, j-1, x, no_nonzeros_A, b,...<br />

no_it, rel_tol, solver_used, i_M-1, j_M-1, x_M, no_nonzeros_M);<br />

toc<br />

% assembly solution<br />

x = x_re+1i*x_im;<br />

end;<br />

clear functions<br />

end<br />

C.5 CSC to COO convert procedure<br />

function [j, i, x, no_nonzeros_A, no_cols_A, no_rows_A] = csc2coo_matrix(A)<br />

if ˜issparse(A)<br />

error(’A matrix must be sparse’);<br />

end;<br />

A = A’;<br />

[i, j, x] = find(A);<br />

no_nonzeros_A = nnz(A);<br />

no_cols_A = size(A(1,:),2);<br />

no_rows_A = size(A(:,1),1);<br />

if ˜isreal(A)<br />

x = x’;<br />

end<br />

clear functions;<br />

end<br />

C.6 Complex solvers file<br />

/*============================<br />

<strong>Mihail</strong>-<strong>Iulian</strong> <strong>ANDREI</strong><br />

iulian@lmn.pub.ro<br />

Last check 02 July 2012<br />

============================ */<br />

/* This mex-file was written in order to call Cusp based on<br />

CUDA solvers. Cusp is a library which contains real and<br />

complex sparse solvers (GMRES, BiCGSTAB and CG) based on<br />

CUDA computations (http://code.google.com/p/cusp-library/). */<br />

138


#include "mex.h"<br />

#include "matrix.h"<br />

#include <br />

#include <br />

#include <br />

#include <br />

#include <br />

#include <br />

#include <br />

#include <br />

#include <br />

#include <br />

#include <br />

#include <br />

#include <br />

#include <br />

#include <br />

// where to perform the computation<br />

typedef cusp::host_memory host_MemorySpace;<br />

typedef cusp::host_memory gpu_MemorySpace;<br />

// which ing point type to use<br />

typedef double ValueType_real;<br />

typedef cusp::complex ValueType_complex;<br />

//sparse_matrix<br />

typedef struct sparse_matrix {<br />

int *row;<br />

int *col;<br />

double *val_re; //Real Part<br />

double *val_im; //Imaginary Part<br />

int* csr_row;<br />

int nnz;<br />

} sparse_matrix;<br />

//global variable<br />

sparse_matrix A_gpu;<br />

/*C code*/<br />

void print_sparse_complex_matrix(sparse_matrix x){<br />

int i;<br />

139<br />

C.6. Complex solvers file


C. Solver iterativ paralel GPU<br />

for (i=0; i


C.6. Complex solvers file<br />

/* solve system */<br />

// set stopping criteria:<br />

// iteration limit "no_it"<br />

// relative tolerance "rel_tol"<br />

// default_monitor - no information<br />

// verbose_monitor - display information<br />

cusp::default_monitor monitor(b, no_it, rel_tol);<br />

int restart = 50;<br />

mexPrintf("restart =%d\n",restart);<br />

// solve the linear system A*x=b with the GMRES<br />

cusp::krylov::gmres(A, x, b,restart, monitor);<br />

/* default_monitor */<br />

// if (monitor.converged()){<br />

// std::cout


C. Solver iterativ paralel GPU<br />

cusp::coo_matrix<br />

C(dimension, dimension, AA.nnz);<br />

for (i=0;i


}<br />

//cusp::print(D);<br />

C.6. Complex solvers file<br />

// conver matrix from COO to CSR or HYB<br />

cusp::csr_matrix M = D;<br />

//cusp::print(M);<br />

mexPrintf("Custom M PRECONDITIONER.\n");<br />

// solve the linear system A*x=b with the GMRES<br />

cusp::krylov::gmres(A, x, b,restart, monitor, M);<br />

/* save solution */<br />

//cusp::print(x);<br />

for (i=0;i


C. Solver iterativ paralel GPU<br />


C.6. Complex solvers file<br />

/* solve system */<br />

// set stopping criteria:<br />

// iteration limit "no_it"<br />

// relative tolerance "rel_tol"<br />

// default_monitor - basic information<br />

// verbose_monitor - display information<br />

cusp::default_monitor monitor(b, no_it, rel_tol);<br />

// set preconditioner (identity)<br />

cusp::identity_operator<br />

M(A.num_rows, A.num_rows);<br />

// cusp::precond::diagonal M(A);<br />

// solve the linear system A*x=b with BiCGstab<br />

cusp::krylov::bicgstab(A, x, b, monitor, M);<br />

/* default_monitor */<br />

// if (monitor.converged()){<br />

// std::cout


C. Solver iterativ paralel GPU<br />

/* create Ax=b data */<br />

// create an empty sparse matrix structure (COO format)<br />

cusp::coo_matrix<br />

C(dimension, dimension, AA.nnz);<br />

for (i=0;i


C.6. Complex solvers file<br />

// std::cout


C. Solver iterativ paralel GPU<br />

//cusp::print(b);<br />

// allocate storage for solution "x"<br />

cusp::array1d x(dimension,<br />

ValueType_complex(0,0));<br />

//cusp::print(x);<br />

//TO DO return 0<br />

/*save solution*/<br />

for (i=0;i A matrix<br />

v1 = mxGetPr(prhs[0]);<br />

v2 = mxGetPr(prhs[1]);<br />

148


A_host.val_re = mxGetPr(prhs[2]);<br />

A_host.val_im = mxGetPi(prhs[2]);<br />

A_host.nnz = (int)mxGetScalar(prhs[3]);<br />

// mem alloc<br />

A_host.row = (int *)malloc(A_host.nnz*sizeof(int));<br />

A_host.col = (int *)malloc(A_host.nnz*sizeof(int));<br />

// convert vector from double to int<br />

for (i=0; i M matrix<br />

v3 = mxGetPr(prhs[8]);<br />

v4 = mxGetPr(prhs[9]);<br />

M_host.val_re = mxGetPr(prhs[10]);<br />

M_host.val_im = mxGetPi(prhs[10]);<br />

M_host.nnz = (int)mxGetScalar(prhs[11]);<br />

// mem alloc<br />

M_host.row = (int *)malloc(M_host.nnz*sizeof(int));<br />

M_host.col = (int *)malloc(M_host.nnz*sizeof(int));<br />

// convert vector from double to int<br />

for (i=0; i


C. Solver iterativ paralel GPU<br />

/* Choosing solver */<br />

// 1 - GMRES<br />

// 2 - GMRES with PRECONDITIONER<br />

// 3 - BiCGstab<br />

// 4 - CG<br />

// 5 - CG_m not ready yet<br />

if (solver_used==1) {<br />

mexPrintf("GMRES complex solver.\n");<br />

if (M_host.nnz != 0){<br />

mexPrintf("Solver without preconditioner.\n");<br />

}<br />

solve_gmres(A_host, b_host, b_length, no_it_r, rel_tol_r,<br />

result_re, result_im);<br />

}<br />

else if (solver_used==2){<br />

mexPrintf("GMRES with PRECONDITIONER complex solver.\n");<br />

solve_gmres_pre(A_host, b_host, b_length, no_it_r, rel_tol_r,<br />

result_re, result_im, M_host);<br />

}<br />

else if (solver_used==3){<br />

mexPrintf("BiCGstab complex solver.\n");<br />

solve_bicgstab(A_host, b_host, b_length, no_it_r, rel_tol_r,<br />

result_re, result_im);<br />

}<br />

else if (solver_used==4){<br />

mexPrintf("CG complex solver.\n");<br />

solve_cg(A_host, b_host, b_length, no_it_r, rel_tol_r,<br />

result_re, result_im);<br />

}<br />

else if (solver_used==5){<br />

mexPrintf("WARNING CG-M complex solver is not ready yet.\n");<br />

solve_cg_m(A_host, b_host, b_length, no_it_r, rel_tol_r,<br />

result_re, result_im);<br />

}<br />

else {<br />

mexPrintf("Invalid solver.");<br />

}<br />

}<br />

C.7 Real solvers file<br />

/*============================<br />

<strong>Mihail</strong>-<strong>Iulian</strong> <strong>ANDREI</strong><br />

iulian@lmn.pub.ro<br />

Last check 02 July 2012<br />

============================ */<br />

/* This mex-file was written in order to call Cusp based<br />

on CUDA solvers. Cusp is a library which contains real and<br />

150


C.7. Real solvers file<br />

complex sparse solvers (GMRES, BiCGSTAB and CG) based on CUDA<br />

computations (http://code.google.com/p/cusp-library/). */<br />

#include "mex.h"<br />

#include "matrix.h"<br />

#include <br />

#include <br />

#include <br />

#include <br />

#include <br />

#include <br />

#include <br />

#include <br />

#include <br />

#include <br />

#include <br />

#include <br />

#include <br />

// where to perform the computation<br />

typedef cusp::host_memory host_MemorySpace;<br />

typedef cusp::host_memory gpu_MemorySpace;<br />

// which ing point type to use<br />

typedef double ValueType;<br />

//sparse_matrix<br />

typedef struct sparse_matrix {<br />

int *row;<br />

int *col;<br />

double *val;<br />

int* csr_row;<br />

int nnz;<br />

} sparse_matrix;<br />

//global variable<br />

sparse_matrix A_gpu;<br />

/*C code*/<br />

void print_sparse_matrix(sparse_matrix x){<br />

int i;<br />

for (i=0; i


C. Solver iterativ paralel GPU<br />

}<br />

}<br />

void print_full_vector(double *x, int n){<br />

int i;<br />

for (i=0; i Option 1<br />

void solve_gmres(sparse_matrix AA, double *bb, int dimension,<br />

int no_it, double rel_tol, double *x_res) {<br />

int i;<br />

/* create Ax=b data */<br />

// create an empty sparse matrix structure (COO format)<br />

cusp::coo_matrix<br />

C(dimension, dimension, AA.nnz);<br />

for (i=0;i


(see Examples for more infos)<br />

cusp::default_monitor monitor(b, no_it, rel_tol);<br />

int restart = 200;<br />

// solve the linear system A*x=b with the GMRES<br />

cusp::krylov::gmres(A, x, b,restart, monitor);<br />

// print info - convergenge_monitor and default_monitor<br />

// convergenge_monitor<br />

//monitor.print();<br />

/* default_monitor */<br />

if (monitor.converged()){<br />

std::cout


C. Solver iterativ paralel GPU<br />

C.row_indices[i] = AA.row[i];<br />

C.column_indices[i] = AA.col[i];<br />

C.values[i] = AA.val[i];<br />

}<br />

cusp::csr_matrix A = C;<br />

// cusp::print(C);<br />

cusp::array1d<br />

b(dimension, ValueType(0));<br />

for (i=0;i


solve the linear system A*x=b with the GMRES<br />

cusp::krylov::gmres(A, x, b,restart, monitor, M);<br />

//save solution<br />

//cusp::print(x);<br />

for (i=0;i


C. Solver iterativ paralel GPU<br />

}<br />

}<br />

// BiCGstab solver ====> Option 3<br />

void solve_bicgstab(sparse_matrix AA, double *bb,<br />

int dimension, int no_it, double rel_tol, double *x_res) {<br />

int i;<br />

/* create Ax=b data */<br />

// create an empty sparse matrix structure (COO format)<br />

cusp::coo_matrix<br />

C(dimension, dimension, AA.nnz);<br />

for (i=0;i


gpu_MemorySpace> M(A, .1);<br />

// cusp::precond::smoothed_aggregation M(A);<br />

// solve the linear system A*x=b with BiCGstab<br />

cusp::krylov::bicgstab(A, x, b, monitor, M);<br />

// print info - convergenge_monitor and default_monitor<br />

// convergenge_monitor<br />

//monitor.print();<br />

// default_monitor<br />

if (monitor.converged()){<br />

std::cout


C. Solver iterativ paralel GPU<br />

for (i=0;i


std::cout


C. Solver iterativ paralel GPU<br />

cusp::array1d<br />

x(dimension, ValueType(0));<br />

//TO DO return 0<br />

/*save solution*/<br />

for (i=0;i A matrix<br />

v1 = mxGetPr(prhs[0]);<br />

v2 = mxGetPr(prhs[1]);<br />

A_host.val = mxGetPr(prhs[2]);<br />

160


A_host.nnz = (int)mxGetScalar(prhs[3]);<br />

/*mem alloc*/<br />

A_host.row = (int *)malloc(A_host.nnz*sizeof(int));<br />

A_host.col = (int *)malloc(A_host.nnz*sizeof(int));<br />

/*convert vector from double to int*/<br />

for (i=0; i M matrix<br />

v3 = mxGetPr(prhs[8]);<br />

v4 = mxGetPr(prhs[9]);<br />

M_host.val = mxGetPr(prhs[10]);<br />

M_host.nnz = (int)mxGetScalar(prhs[11]);<br />

// mem alloc<br />

M_host.row = (int *)malloc(M_host.nnz*sizeof(int));<br />

M_host.col = (int *)malloc(M_host.nnz*sizeof(int));<br />

// convert vector from double to int<br />

for (i=0; i


C. Solver iterativ paralel GPU<br />

// 5 - CG_m not ready yet<br />

if (solver_used==1) {<br />

mexPrintf("GMRES real solver.\n");<br />

solve_gmres(A_host, b_host, b_length, no_it_r, rel_tol_r,result);<br />

}<br />

else if (solver_used==2){<br />

mexPrintf("GMRES with PRECONDITIONER real solver.\n");<br />

solve_gmres_pre(A_host, b_host, b_length, no_it_r,<br />

rel_tol_r,result, M_host);<br />

}<br />

else if (solver_used==3){<br />

mexPrintf("BiCGstab real solver.\n");<br />

solve_bicgstab(A_host, b_host, b_length, no_it_r,<br />

rel_tol_r,result);<br />

}<br />

else if (solver_used==4){<br />

mexPrintf("CG real solver.\n");<br />

solve_cg(A_host, b_host, b_length, no_it_r, rel_tol_r,<br />

result);<br />

}<br />

else if (solver_used==5){<br />

mexPrintf("CG-M real solver is not ready yet.\n");<br />

solve_cg_m(A_host, b_host, b_length, no_it_r, rel_tol_r<br />

,result);<br />

}<br />

else {<br />

mexPrintf("Invalid solver.");<br />

}<br />

}<br />

162


Save state space function<br />

ANEXA D<br />

Cu ajutorul acestei funct¸ii se exportă sistemul matriceal de stare din modelul COMSOL, în mediul<br />

MATLAB.<br />

%%============================<br />

%<strong>Mihail</strong>-<strong>Iulian</strong> <strong>ANDREI</strong><br />

% iulian@lmn.pub.ro<br />

% Last check 02 July 2012<br />

%%============================<br />

%% 1 - Add State Space to your Comsol model.<br />

% Open Study tree, open Solver Configuration, right click on Solver -> Othe<br />

% State Space parameters: Input parameters V0<br />

% Output parameters mod1.V<br />

% Check MA, MB, C, D, Static Off, and Mc<br />

% then right click on Study and choose Compute<br />

% Save model as m-file: File -> Save as m-file<br />

% 2 - Start Comsol server on the same machine with Matlab (consol server -ckl<br />

% 3 - Start MATLAB and go to your folder (be sure that you have a copy of thi<br />

% 4 - Write the name of your model and run the save_state_v*.m file.<br />

clear all;<br />

clc;<br />

% Add to sources Matlab-Comsol interface files.<br />

sourcespath = genpath(’/usr/local/comsol/mli/’);<br />

addpath(sourcespath);<br />

% Connect to Comsol Server.<br />

mphstart(2036);<br />

% Put your m-file name here.<br />

model = test<br />

%% MA<br />

x_MA = model.sol(’sol1’).feature(’sp1’).getSparseMatrixVal(’MA’);<br />

163


D. Save state space function<br />

i_MA = model.sol(’sol1’).feature(’sp1’).getSparseMatrixRow(’MA’);<br />

j_MA = model.sol(’sol1’).feature(’sp1’).getSparseMatrixCol(’MA’);<br />

M_MA = model.sol(’sol1’).feature(’sp1’).getM(’MA’);<br />

N_MA = model.sol(’sol1’).feature(’sp1’).getN(’MA’);<br />

nnz_MA = model.sol(’sol1’).feature(’sp1’).getNnz(’MA’);<br />

x_MA = double(x_MA);<br />

i_MA = double(i_MA);<br />

% indicii i si j sunt indexati de la 0 iar Matlabul lucreaza cu indici pornind d<br />

i_MA =i_MA+1;<br />

j_MA = double(j_MA);<br />

j_MA = j_MA+1;<br />

MA_res = sparse(i_MA, j_MA, x_MA, M_MA, N_MA, nnz_MA);<br />

%% MB<br />

x_MB = model.sol(’sol1’).feature(’sp1’).getSparseMatrixVal(’MB’);<br />

i_MB = model.sol(’sol1’).feature(’sp1’).getSparseMatrixRow(’MB’);<br />

j_MB = model.sol(’sol1’).feature(’sp1’).getSparseMatrixCol(’MB’);<br />

M_MB = model.sol(’sol1’).feature(’sp1’).getM(’MB’);<br />

N_MB = model.sol(’sol1’).feature(’sp1’).getN(’MB’);<br />

nnz_MB = model.sol(’sol1’).feature(’sp1’).getNnz(’MB’);<br />

x_MB = double(x_MB);<br />

i_MB = double(i_MB);<br />

i_MB =i_MB+1;<br />

j_MB = double(j_MB);<br />

j_MB = j_MB+1;<br />

MB_res = sparse(i_MB, j_MB, x_MB, M_MB, N_MB, nnz_MB);<br />

%% Mc<br />

x_Mc = model.sol(’sol1’).feature(’sp1’).getSparseMatrixVal(’Mc’);<br />

i_Mc = model.sol(’sol1’).feature(’sp1’).getSparseMatrixRow(’Mc’);<br />

j_Mc = model.sol(’sol1’).feature(’sp1’).getSparseMatrixCol(’Mc’);<br />

M_Mc = model.sol(’sol1’).feature(’sp1’).getM(’Mc’);<br />

N_Mc = model.sol(’sol1’).feature(’sp1’).getN(’Mc’);<br />

nnz_Mc = model.sol(’sol1’).feature(’sp1’).getNnz(’Mc’);<br />

x_Mc = double(x_Mc);<br />

i_Mc = double(i_Mc);<br />

i_Mc =i_Mc+1;<br />

j_Mc = double(j_Mc);<br />

j_Mc = j_Mc+1;<br />

Mc_res = sparse(i_Mc, j_Mc, x_Mc, M_Mc, N_Mc, nnz_Mc);<br />

%% C<br />

x_C = model.sol(’sol1’).feature(’sp1’).getSparseMatrixVal(’C’);<br />

i_C = model.sol(’sol1’).feature(’sp1’).getSparseMatrixRow(’C’);<br />

j_C = model.sol(’sol1’).feature(’sp1’).getSparseMatrixCol(’C’);<br />

M_C = model.sol(’sol1’).feature(’sp1’).getM(’C’);<br />

164


N_C = model.sol(’sol1’).feature(’sp1’).getN(’C’);<br />

nnz_C = model.sol(’sol1’).feature(’sp1’).getNnz(’C’);<br />

x_C = double(x_C);<br />

i_C = double(i_C);<br />

i_C =i_C+1;<br />

j_C = double(j_C);<br />

j_C = j_C+1;<br />

C_res = sparse(i_C, j_C, x_C, M_C, N_C, nnz_C);<br />

%% D<br />

x_D = model.sol(’sol1’).feature(’sp1’).getSparseMatrixVal(’D’);<br />

i_D = model.sol(’sol1’).feature(’sp1’).getSparseMatrixRow(’D’);<br />

j_D = model.sol(’sol1’).feature(’sp1’).getSparseMatrixCol(’D’);<br />

M_D = model.sol(’sol1’).feature(’sp1’).getM(’D’);<br />

N_D = model.sol(’sol1’).feature(’sp1’).getN(’D’);<br />

nnz_D = model.sol(’sol1’).feature(’sp1’).getNnz(’D’);<br />

x_D = double(x_D);<br />

i_D = double(i_D);<br />

i_D =i_D+1;<br />

j_D = double(j_D);<br />

j_D = j_D+1;<br />

D_res = sparse(i_D, j_D, x_D, M_D, N_D, nnz_D);<br />

C = Mc_res;<br />

G = -MA_res;<br />

B = MB_res;<br />

L = C_res;<br />

D = D_res; %% D=0<br />

%% Save the matrices into a file<br />

save(’state_space_matrices.mat’, ’C’, ’G’,’B’, ’L’, ’D’);<br />

%% Disconnect from Comsol Server<br />

import com.comsol.model.*<br />

import com.comsol.model.util.*<br />

ModelUtil.disconnect;<br />

165


Această pagină este lăsată goală în mod intent¸ionat.


Bibliografie<br />

[1] E. Commission, “Vision 2020 - Nanoelectronics at the Centre of Change,”<br />

2004. ftp://ftp.cordis.europa.eu/pub/nanotechnology/docs/<br />

e-vision-2020.pdf.<br />

[2] ITRS, “International technology roadmap for semiconductors.” http://www.itrs.<br />

net/.<br />

[3] Leibniz-Institut for innovative Microelectronics, “Innovations for High Perfommance Microelectronics<br />

- Annual report,” 2011. http://www.ihp-microelectronics.com/<br />

downloads/94/IHP_AR_2011.pdf.<br />

[4] G. E. Moore, “Cramming more components onto integrated circuits,” Electronics, vol. 38,<br />

April 1965. Reprinted 10.1109/N-SSC.2006.4785860.<br />

[5] W. Arden, M. Brillouet, P. Cogez, M. Graef, B. Huizing, and R. Mahnkopf,<br />

“More than Moore - white paper.” http://www.itrs.net/Links/2010ITRS/<br />

IRC-ITRS-MtM-v2%203.pdf.<br />

[6] E. Commission, “Vision 2020 - Nanoelectronics at the Centre of Change,”<br />

2004. ftp://ftp.cordis.europa.eu/pub/nanotechnology/docs/<br />

e-vision-2020.pdf.<br />

[7] IBM, “Sequoia - Bluegene/Q.” http://en.wikipedia.org/wiki/IBM_Sequoia.<br />

[8] Fujitsu, “K computer- SPARC64.” http://en.wikipedia.org/wiki/K_<br />

computer.<br />

[9] TOP500.Org, “TOP 500 Supercomter sites.” http://http://top500.org/.<br />

[10] A. M. Niknejad, Electromagnetics for High-Speed Analog and Digital Communication Circuits.<br />

Cambridge University Press, 2007.<br />

[11] A. Manolescu, A. Manolescu, T. Muresan, L. Turic, and I. Mihut, Circuite liniare integrate.<br />

Editura Didactica si Pedagogica, 1983. http://www.scribd.com/doc/45193777/<br />

Circuite-Integrate-Liniare.<br />

[12] R. J. Baker, CMOS Circuit Design, Layout, and Simulation, 3rd Edition. Wiley-IEEE Press,<br />

2010. http://books.google.ro/books?id=kxYhNrOKuJQC&printsec=<br />

frontcover&hl=ro&source=gbs_ge_summary_r&cad=0#v=onepage&q&f=<br />

false.<br />

167


BIBLIOGRAFIE<br />

[13] A. R. Alvarez, BiCMOS Technology and Applications. Kluwer Academic Publishers,<br />

1993. http://books.google.ro/books?id=jrQhYxzZ0gwC&printsec=<br />

frontcover&hl=ro&source=gbs_ge_summary_r&cad=0#v=onepage&q&f=<br />

false.<br />

[14] X. Huo, P. C. H. Chan, K. J. Chen, and H. C. Luong, “The design of CMOS radio-frequency<br />

integrated circuits,” Communications Engineer, vol. 2, Aug.-Sep 2004. http://lmn.<br />

pub.ro/˜iulian/files/bibliografie/1_1_Yue.pdf.<br />

[15] C. Mocanu, Teoria Circuitelor Electrice. Editura Didactica si Pedagogica, 1979.<br />

[16] C. P. Yue, C. Ryu, J. L. T. H. Lee, and S. S. Wong, “A physical model for planar spiral<br />

inductors on silicon,” International Electron Devices Meeting, 1996. http://iulian.<br />

lmn.pub.ro/wiki_iulian/bibliografie/1996_Yue.pdf.<br />

[17] C. P. Yue and S. Simon, “Physical modeling of spiral inductors on silicon,” IEEE Transactions<br />

on Electron Devices, vol. 47, March 2000. http://iulian.lmn.pub.ro/<br />

wiki_iulian/bibliografie/2000_Yue200_ED.pdf.<br />

[18] H. Greenhouse, “Design of planar rectangular microelectronic inductors,” IEEE Transactions<br />

on Parts, Hybrids and Packaging, vol. 10, no. 2, pp. 101–109, 1974. http:<br />

//ieeexplore.ieee.org/xpl/articleDetails.jsp?tp=&arnumber=<br />

1134841&contentType=Journals+%26+Magazines&queryText%<br />

3DDesign+of+Planar+Rectangular+Microelectronic+Inductors.<br />

[19] S. Mohan, M. Hershenson, S. Boyd, and T. Lee, “Simple Accurate Expressions for Planar<br />

Spiral Inductances,” IEEE Journal of Solid-State Circuits, vol. 34, no. 10, pp. 1419–1424,<br />

1999. http://smirc.stanford.edu/papers/JSSC99OCT-mohan.pdf.<br />

[20] S. University, “Integrated Spiral Inductor Calculator.” http://www-smirc.<br />

stanford.edu/spiralCalc.html.<br />

[21] H. Kim and C. C.-P. Chen, “Be Careful of Self and Mutual Inductance Formulae,” 2001.<br />

http://ccf.ee.ntu.edu.tw/˜cchen/research/CompInduct9.pdf.<br />

[22] C.-J. Chao, S.-C. Wong, C.-H. Kao, M.-J. Chen, L.-Y. Leu, and K.-Y. Chiu, “Characterization<br />

and modeling of on-chip spiral inductors for Si RFICs,” IEEE Transactions on Semiconductor<br />

Manufacturing, vol. 15, February 2002. http://iulian.lmn.pub.ro/wiki_<br />

iulian/bibliografie/2002_Chao2002_SM.pdf.<br />

[23] J. N. Burghartz and B. Rejaei, “On the design of RF spiral inductors on silicon,” IEEE Transactions<br />

on Electron Devices, vol. 50, March 2003. http://iulian.lmn.pub.ro/<br />

wiki_iulian/bibliografie/2003_Burghartz2003_ED.pdf.<br />

[24] Y. Cao, R. A. Groves, X. Huang, N. D. Zamdmer, J.-O. Plouchart, R. A. Wachnik,<br />

T.-J. King, and C. Hu, “Frequency-independent equivalent-circuit model for<br />

on-chip spiral inductors,” IEEE Journal of Solid-State Circuits, vol. 38, March<br />

2003. http://iulian.lmn.pub.ro/wiki_iulian/bibliografie/2003_<br />

Cao2003_IEEESolidStateCircuits.pdf.<br />

[25] A. C. Watson, D. Melendy, P. Francis, K. Hwang, and A. Weisshaar, “A comprehensive<br />

compact-modeling methodology for spiral inductors in silicon-based RFICs,” IEEE Transactions<br />

on Microwave Theory and Techniques, vol. 52, March 2004. http://iulian.lmn.<br />

pub.ro/wiki_iulian/bibliografie/2004_Watson2004_IEEEMTT.pdf.<br />

168


BIBLIOGRAFIE<br />

[26] K.-Y. Lee, S. Mohammadi, P. Bhattacharya, and L. Katehi, “Scalable compact models for<br />

embedded passives,” European Microwave Conference, vol. 1, Oct. 2005. http://lmn.<br />

pub.ro/˜iulian/files/bibliografie/2005_Lee-CC38.pdf.<br />

[27] I. Lai and M. Fujishima, “A New On-Chip Substrate-Coupled Inductor Model Implemented<br />

With Scalable Expressions,” IEEE Journal of Solid-State Circuits, vol. 41, no. 11,<br />

pp. 2491–2499, 2006. http://mmw.dsl.hiroshima-u.ac.jp/files/activ_<br />

lit/2006/01717672.pdf.<br />

[28] H.-H. Chen, H.-W. Zhang, S.-J. Chung, J.-T. Kuo, and T.-C. Wu, “Accurate systematic<br />

model-parameter extraction for on-chip spiral inductors,” IEEE TRANSACTIONS ON<br />

ELECTRON <strong>DE</strong>VICES, vol. 55, Nov. 2008. http://iulian.lmn.pub.ro/wiki_<br />

iulian/bibliografie/1_Yue200_ED.pdf.<br />

[29] B.-J. Huang, C.-H. Wang, C.-C. Chen, M.-F. Lei, P.-C. Huang, K.-Y. Lin, and H. Wang,<br />

“Design and Analysis for a 60-GHz Low-Noise Amplifier with RF ESD Protection,”<br />

IEEE Transactions on Microwave Theory and Techniques, vol. 57, no. 2, pp. 298–305,<br />

2009. http://ieeexplore.ieee.org/xpl/login.jsp?tp=&arnumber=<br />

4738429&url=http%3A%2F%2Fieeexplore.ieee.org%2Fxpls%2Fabs_<br />

all.jsp%3Farnumber%3D4738429.<br />

[30] A. K. Goel, High-Speed VLSI Interconnections. Wiley-IEEE Press, 2007.<br />

http://www.google.ro/books?id=A4VB1aH2-LEC&dq=High+Speed+<br />

VLSI+Interconnections.+Wiley+Series&lr=&hl=ro&source=gbs_<br />

navlinks_s.<br />

[31] J.-W. Kim1, H. Takao, K. Sawada, and M. Ishida, “Integrated Inductors for RF Transmitters<br />

in CMOS/MEMS Smart Microsensor Systems,” Sensors, vol. 7, pp. 1387–1398, 2007.<br />

http://www.mdpi.com/1424-8220/7/8/1387.<br />

[32] A. Bondeson, T. Rylander, and P. Ingelstrom, Computational Electromagnetics. Springer,<br />

2005. http://read.pudn.com/downloads163/sourcecode/math/740254/<br />

Computational%20Electromagnetics.pdf.<br />

[33] M. Salazar-Palma, T. K. Sarkar, L.-E. Garcia-Costillo, and T. Roy,<br />

Iterative and Self-Adaptive Finite-Elements in Electromagnetic Modeling.<br />

Arctech House, 1998. http://www.amazon.com/<br />

Iterative-Self-Adaptive-Finite-Elements-Electromagnetic-Modeling/<br />

dp/089006895X.<br />

[34] P. Monk, Finite Element Methods for Maxwells Equations. Oxford:<br />

Clarendon Press, 2003. http://www.amazon.de/<br />

Maxwells-Equations-Numerical-Scientific-Computation/dp/<br />

0198508883.<br />

[35] S. Zaglmayr, “High Order Finite Element Methods for Electromagnetic<br />

Field Computation.” http://www.amazon.de/<br />

Maxwells-Equations-Numerical-Scientific-Computation/dp/<br />

0198508883.<br />

[36] I. Munteanu, G. Ciuprina, and F. Tomescu, Modelarea numerica a campului electromagnetic<br />

prin programe Scilab. Printhech Bucuresti, 2000.<br />

169


BIBLIOGRAFIE<br />

[37] J.-M. Jin, The Finite Element Method in Electromagnetics. John Wiley<br />

and Sons. New York, 2002. http://www.amazon.com/<br />

The-Finite-Element-Method-Electromagnetics/dp/0471438189.<br />

[38] Nedelec, J., “Mixed finite element in 3D in H(div) and H(curl),” vol. 1192, pp. 321–325,<br />

1986. http://www.springerlink.com/content/q2345243722w3g22/.<br />

[39] R. F. Harrington, Field Computation by Moment Methods. Wiley-IEEE Press, April 2007.<br />

http://eu.wiley.com/WileyCDA/WileyTitle/productCd-0780310144.<br />

html.<br />

[40] A. H. Mohammadian, V. Shankar, and W. F. Hall, “Computation of electromagnetic scattering<br />

and radiation using a time-domain finite-volume discretization procedure,” Computer<br />

Physics Communications, vol. 68, no. 13, pp. 175–196, 1991. http://www.<br />

sciencedirect.com/science/article/pii/001046559190199U.<br />

[41] G. Pelosi, “The finite-element method, Part I: R. L. Courant - Historical Corner,” IEEE<br />

Antennas and Propagation Magazine, vol. 49, no. 2, pp. 180–182, 2007. http://<br />

ieeexplore.ieee.org/xpl/articleDetails.jsp?arnumber=4263187.<br />

[42] T. Weiland, “A discretization method for the solution of Maxwells equations for sixcomponent<br />

fields,” Electronics and Communications, vol. 31, no. 3, 1977.<br />

[43] A. Ruehli, T. J. Watson, and Y. Heights, “Inductance Calculations in a Complex Integrated<br />

Circuit Environment,” IBM Journal of Research and Development, vol. 16,<br />

no. 5, pp. 470 – 481, 1972. http://ieeexplore.ieee.org/xpl/login.jsp?<br />

tp=&arnumber=1128204&url=http%3A%2F%2Fieeexplore.ieee.org%<br />

2Fxpls%2Fabs_all.jsp%3Farnumber%3D1128204.<br />

[44] A. Ruehli, “Equivalent Circuit Models for Three-Dimensional Multiconductor Systems,”<br />

IEEE Transactions on Microwave Theory and Techniques, vol. 22, no. 3, pp. 216 – 221,<br />

1974. http://ieeexplore.ieee.org/xpl/login.jsp?tp=&arnumber=<br />

1128204&url=http%3A%2F%2Fieeexplore.ieee.org%2Fxpls%2Fabs_<br />

all.jsp%3Farnumber%3D1128204.<br />

[45] M. Kamon, M. J. Tsuk, and J. White, “FastHenry: A Multipole-Accelerated<br />

3-D Inductance Extraction Program,” 30th Conference on Design Automation,<br />

pp. 678 – 683, 14-18 June, 1993. http://ieeexplore.ieee.org/<br />

xpl/articleDetails.jsp?tp=&arnumber=1600305&contentType=<br />

Conference+Publications&queryText%3DA+multipole-accelerated+<br />

3-d+inductance+extraction+program.<br />

[46] A. Devgan, H. Ji, and W. Dai, “How to efficiently capture on-chip inductance effects:<br />

introducing a new circuit element K,” IEEE/ACM International Conference on Computer<br />

Aided Design ICCAD-2000, pp. 150 – 155, 2000. http://ieeexplore.ieee.<br />

org/xpl/articleDetails.jsp?tp=&arnumber=896465&contentType=<br />

Conference+Publications&queryText%3DHow+to+Efficiently+<br />

Capture+On-Chip+Inductance+Effects%3A+Introducing+a+New+<br />

Circuit+Element+K.<br />

[47] H. Ji, A. Devgan, and W. Dai, “KSim: a stable and efficient RKC simulator for capturing<br />

on-chip inductance effect,” IBM Journal of Research and Development, vol. 16, no. 5,<br />

170


BIBLIOGRAFIE<br />

pp. 470 – 481, 1972. http://ieeexplore.ieee.org/xpl/login.jsp?tp=<br />

&arnumber=913336&url=http%3A%2F%2Fieeexplore.ieee.org%2Fxpls%<br />

2Fabs_all.jsp%3Farnumber%3D913336.<br />

[48] T.-H. Chen, C. Luk, H. Kim, and C. C.-P. Chen, “INDUCTWISE: Inductance-<br />

Wise Interconnect Simulator and Extractor,” IEEE/ACM International Conference<br />

on Computer Aided Design ICCAD 2002. , pp. 215 – 220, 10-14 Nov.,<br />

2002. http://ieeexplore.ieee.org/xpl/login.jsp?tp=&arnumber=<br />

913336&url=http%3A%2F%2Fieeexplore.ieee.org%2Fxpls%2Fabs_all.<br />

jsp%3Farnumber%3D913336.<br />

[49] A. Pacelli, “A local circuit topology for inductive parasitics,” IEEE/ACM International Conference<br />

on Computer Aided Design ICCAD 2002. , pp. 208 – 214, 10-14 Nov., 2002. http:<br />

//ieeexplore.ieee.org/xpl/articleDetails.jsp?tp=&arnumber=<br />

905676&contentType=Journals+%26+Magazines&queryText%<br />

3<strong>DE</strong>quipotential+shells++for+efficient+inductance+extraction.<br />

[50] H. Yu and L. He, “Vector potential equivalent circuit based on PEEC inversion,” Proceedings<br />

Design Automation Conference, pp. 718 – 723, 2003. http://ieeexplore.ieee.<br />

org/xpl/articleDetails.jsp?tp=&arnumber=1219113&contentType=<br />

Conference+Publications&queryText%3DVector+Potential+<br />

Equivalent+Circuit++Based+on+PEEC+Inversion.<br />

[51] D. Ioan, G. Ciuprina, C. B. Dita, and <strong>Mihail</strong>-<strong>Iulian</strong> Andrei, “Electromagnetic Models of Integrated<br />

Circuits with Coupled Magnetic Circuits,” Proceedings of International Conference<br />

on Electromagnetics in Advanced Applications ICEEA 2012, pp. 768 – 771, 2-7 September<br />

2012.<br />

[52] D. Ioan, G. Ciuprina, and M. Radulescu, “Algebraic Sparsefied Partial Equivalent Electric<br />

Circuit (aspeec),” Scientific Computing in Electrical Engineering, vol. 9, no. 1, 2006.<br />

[53] G. Ciuprina, D. Ioan, D. Mihalache, and A. Stefanescu, “The Electromagnetic Circuit Element<br />

- Key of Modelling EM Coupled Integrated Components,” Revue Roumaine de sciences<br />

techniques - electrotechnique et energetique, vol. 54, no. 1, pp. 37 – 46, 2009.<br />

[54] D. Ioan, G. Ciuprina, and L. M. Silveira, “Effective Domain Partitioning With<br />

Electric and Magnetic Hooks,” IEEE Transactions on Magnetics, vol. 45, no. 3,<br />

2009. http://ieeexplore.ieee.org/xpl/login.jsp?tp=&arnumber=<br />

4787316&url=http%3A%2F%2Fieeexplore.ieee.org%2Fiel5%2F20%<br />

2F4787272%2F04787316.pdf%3Farnumber%3D4787316.<br />

[55] ANSYS, “ANSYS HFSS.” http://www.ansys.com/Products/Simulation+<br />

Technology/Electromagnetics/High-Performance+Electronic+<br />

Design/ANSYS+HFSS.<br />

[56] ANSYS, “Getting Started with HFSS: A Silicon Spiral Inductor.” http:<br />

//www.egr.uh.edu/courses/ECE/ECE6351-5317/SectionJackson/<br />

5113/HFSS%20spiral%20inductor.pdf.<br />

[57] Ansoft, “AnsoftLinks for EDA CAD.” http://www.ansys.com/Products/<br />

Simulation+Technology/Electromagnetics/Product+options/<br />

AnsoftLinks+for+ECAD.<br />

171


BIBLIOGRAFIE<br />

[58] Ansoft, “AnsoftLinks for Mechanical CAD.” http://www.ansys.com/Products/<br />

Simulation+Technology/Electromagnetics/Product+options/<br />

AnsoftLinks+for+MCAD.<br />

[59] S. S. Inc, “Sonnet - high frequency electromagnetic software.” http://www.<br />

sonnetsoftware.com/.<br />

[60] SONNET, “SONNET Tutorial.” http://www.rit.edu/˜w-eta/docs/<br />

Project-2-SONNET-tutorial-Planar%20Inductor.pdf.<br />

[61] J. C. Rautio and R. F. Harrington, “An Electromagnetic Time-Harmonic Analysis of Shielded<br />

Microstrip Circuits,” IEEE Transactions on Microwave Theory and Techniques, vol. 35,<br />

pp. 726–730, 1987. http://www.sonnetsoftware.com/products/em/pdf/<br />

sonnet_theory.pdf.<br />

[62] Autodesk, “Drawing eXchange Format.” http://www.faqs.org/faqs/graphics/<br />

fileformats-faq/part3/section-45.html.<br />

[63] Juspertor, “Graphic Database System ii.” http://www.layouteditor.net/.<br />

[64] Ucamco, “Gerber Format Specification,” 2012. http://www.ucamco.com/<br />

downloads.aspx.<br />

[65] I. P. Computing, “Platform LSF.” http://www.platform.com/<br />

workload-management/high-performance-computing.<br />

[66] A. EEsof EDA Design Software, “Advanced Design System ADS.” http://www.home.<br />

agilent.com/agilent/product.jspx?nid=-34346.0.00&cc=RO&lc=eng.<br />

[67] A. EEsof EDA Design Software, “Momentum 3D Planar EM Simulator for ADS.”<br />

http://www.home.agilent.com/agilent/product.jspx?nid=-33748.<br />

0.00&cc=RO&lc=eng.<br />

[68] “Spiral Inductor Design.” http://bmf.ece.queensu.ca/mediawiki/index.<br />

php/Spiral_Inductor_Design.<br />

[69] A. C. S. INC, “Translators and Processors for ODB++.” http://www.artwork.com/<br />

odb++/odb++_overview.htm.<br />

[70] EE Times, “ODB++ spec tapped for CAD-to-CAM data exchang.”<br />

http://www.eetimes.com/electronics-news/4042914/<br />

ODB--spec-tapped-for-CAD-to-CAM-data-exchange.<br />

[71] A. M. Nicknejad, “Asitic: Analysis and simulation of spiral inductors and transformers for<br />

ics.” http://rfic.eecs.berkeley.edu/˜niknejad/asitic.html.<br />

[72] A. M. Nicknejad and R. G. Meyer, “Analysis, Design, and Optimization of Spiral Inductors<br />

and Transformers for Si RF ICs,” IEEE Journal of Solid-State Circuits, vol. 33, no. 10, 1998.<br />

http://rfic.eecs.berkeley.edu/files/jssc_oct98.pdf.<br />

[73] A. M. Niknejad, “Sample ASITIC Sessions.” http://rfic.eecs.berkeley.edu/<br />

˜niknejad/doc-05-28-01/sample.html.<br />

[74] Netlib, “BLAS: Basic Linear Algebra Subprograms).” http://www.netlib.org/<br />

blas/.<br />

172


BIBLIOGRAFIE<br />

[75] Netlib, “LAPACK - Parallel Basic Linear Algebra Subprograms.” http://www.netlib.<br />

org/scalapack/pblas_qref.html.<br />

[76] M. Frigo and S. G. Johnson, “FFTW: an adaptive software architecture for the<br />

FFT,” IEEE International Conference on Acoustics, Speech and Signal Processing,<br />

vol. 3, pp. 1381–1384, 1998. http://ieeexplore.ieee.org/<br />

xpl/articleDetails.jsp?tp=&arnumber=681704&contentType=<br />

Conference+Publications&queryText%3DFftw%3A+an+adaptive+<br />

software+architecture+for+the+%EF%AC%80t.<br />

[77] R. Piessens, “Quadpack: A Subroutine Package for Automatic Integration,” Springer Series<br />

in Computational Mathematics, 1983.<br />

[78] A. M. Nicknejad, “PhD thesys Analysis, Simulation and Applications of Passive Devices on<br />

Conductive Substrates.” http://rfic.eecs.berkeley.edu/˜niknejad/pdf/<br />

NiknejadPhD.pdf.<br />

[79] “COMSOL Multiphysics.” http://www.comsol.com/.<br />

[80] COMSOL Model Gallery, “Integrated Square-Shaped Spiral Inductor.” http://www.<br />

comsol.com/showroom/gallery/129/.<br />

[81] K. Juethner, “White paper: Dramatically Improve Compute-Intense Applications in the Supercomputing<br />

Cloud,” 2011.<br />

[82] CO<strong>DE</strong>STAR, “Compact modelling of on-chip passive structures at high frequencies.”<br />

http://magwel.com/codestar/.<br />

[83] EST3, “Early Stage Research Training at an EaSTern European Site with Tradition in Computational<br />

Science and Engineering.” http://est3.lmn.pub.ro/.<br />

[84] ToK4nEDA, “Transfer of Knowledge for nano-Electronic Design Automationy.” http:<br />

//tok.lmn.pub.ro/.<br />

[85] COMSON, “COupled Multiscale Simulation and Optimization in Nanoelectronics.” http:<br />

//comson.org/.<br />

[86] “Comprehensive high-accuracy modeling of electromagnetic effects in complete nanoscale<br />

rf blocks.” http://www.hitech-projects.com/euprojects/chameleon%<br />

20RF/.<br />

[87] T. Weiland, “Time domain electromagnetic field computation with finite difference methods,”<br />

International Journal of Numerical Modelling: Electronic Networks, Devices and Fields,<br />

vol. 9, 1996.<br />

[88] O. Podabrad, M. Clemens, and T. Weiland, “New flexible subgridding scheme for the finite<br />

integration technique,” IEEE Transactions on Magnetics, vol. 39, May 2003.<br />

[89] T. A. Davis, “Algorithm 832: UMFPACK, an unsymmetric-pattern multifrontal method,”<br />

ACM Transactions on Mathematical Software, vol. 30, no. 2, pp. 196–199, 2004.<br />

[90] D. Ioan, Modelarea dispozitivelor electromagnetice. http://www.lmn.pub.ro/<br />

˜daniel/cursmde.pdf.<br />

173


BIBLIOGRAFIE<br />

[91] D. Ioan, G. Ciuprina, M. Radulescu, and M. Piper, “All Levels Strategy to Reduce the<br />

Model Order of On-chip Passive Components,” IEEE Conference on Electromagnetic Field<br />

Computation - CEFC 2004, June 6-9 Seoul, Korea, 2004. http://www.lmn.pub.<br />

ro/˜gabriela/BookMOR/MORbook_draft_25ian2008_IoanCiuprina.pdf.<br />

[92] G. Ciuprina, D. Ioan, and D. Mihalache, “Reduced Order Electromagnetic Models based<br />

on dual Finite Integrals Technique,” Mathematics in Industry, vol. 11, no. 3, 2007. http:<br />

//www.springerlink.com/content/w7877p3776778735/.<br />

[93] Fernández Villena, Jorge and Ciuprina, Gabriela and Ioan, Daniel and Silveira, Luis Miguel,<br />

“On the efficient reduction of complete EM based parametric models,” pp. 1172–1177, Nice,<br />

France 2009.<br />

[94] A. Stefanescu, D. Ioan, and G. Ciuprina, “Parametric Models of Transmission Lines Based<br />

on First Order Sensitivities,” Mathematics in Industry, vol. 14, no. 1, 2008. http://www.<br />

springerlink.com/content/j5m5852775350123/.<br />

[95] I. A. Lazar, G. Ciuprina, and D. Ioan, “Effective extraction of accurate reduced order models<br />

for hf-ic using multi-CPU arhitectures,” Inverse Problems in Science and Engineering,<br />

vol. 20, no. 1, 2010.<br />

[96] G. Ciuprina, D. Ioan, I.-A. Lazar, and C. B. Dita, “Vector Fitting Based Adaptive Frequency<br />

Sampling for Compact Model Extraction on HPC Systems,” IEEE Transactions on Magnetics,<br />

vol. 48, no. 2, 2012. http://ieeexplore.ieee.org/xpl/login.jsp?<br />

tp=&arnumber=6136613&url=http%3A%2F%2Fieeexplore.ieee.org%<br />

2Fiel5%2F20%2F6136479%2F06136613.pdf%3Farnumber%3D6136613.<br />

[97] G. Ciuprina, D. Ioan, D. Mihalache, and E. Seebacher, “Domain Partitioning Based Parametric<br />

Models for Passive On-Chip Components,” Mathematics in Industry, vol. 14, no. 1,<br />

2008. http://www.springerlink.com/content/u752673865q282h5/.<br />

[98] D. Ioan, W. Schilders, G. Ciuprina, N. van der Meijs, and W. Schoenmaker, “Models for<br />

integrated components coupled with their EM environment,” COMPEL: The International<br />

Journal for Computation and Mathematics in Electrical and Electronic Engineering, vol. 27,<br />

no. 4, 2008. http://www.emeraldinsight.com/journals.htm?articleid=<br />

1733474&show=html.<br />

[99] D. Ioan, M. Radulescu, and G. Ciuprina, “Fast Extraction of Static Electric Parameters with<br />

Accuracy Control,” MATHEMATICS IN INDUSTRY, vol. 4, 2004. http://direct.bl.<br />

uk/bld/PlaceOrder.do?UIN=188206874&ETOC=RN&from=searchengine.<br />

[100] FastImp, “A Fast Impedance Extraction Tool.” http://www.mit.edu/people/<br />

zhzhu/fastImp.html.<br />

[101] Zhenhai Zhu and Ben Song and Jacob White, “Algorithms in FastImp: A fast and wideband<br />

impedance extraction program for complicated 3-D geometries,” IEEE Transaction on<br />

Computer Aided Design of Integrated Circuits and Systems, vol. 24, no. 4, pp. 981–998,<br />

2005. http://ieeexplore.ieee.org/xpl/login.jsp?tp=&arnumber=<br />

1458927&url=http%3A%2F%2Fieeexplore.ieee.org%2Fxpls%2Fabs_<br />

all.jsp%3Farnumber%3D1458927.<br />

174


BIBLIOGRAFIE<br />

[102] D. Ioan and G. Ciuprina and M. Rdulescu, “Algebraic Sparsefied Partial Equivalent<br />

Electric Circuit (ASPEEC),” vol. 9, pp. 45–50, 2006. http://www.springer.<br />

com/mathematics/computational+science+%26+engineering/book/<br />

978-3-540-32861-2?cm_mmc=Google-_-Book%20Search-_-Springer-_<br />

-0.<br />

[103] J. R. Reitz and F. J. Milford, “Foundations of Electromagnetic theory,” 1960. http:<br />

//books.google.ro/books/about/Foundations_of_electromagnetic_<br />

theory.html?id=Au8Y9Dcw4VgC&redir_esc=y.<br />

[104] Ranjit Gharpurey, “PhD thesis: Modeling and Analysis of Substrate Coupling in Integrated<br />

Circuits,” 1995. http://citeseerx.ist.psu.edu/viewdoc/summary?doi=<br />

10.1.1.22.453.<br />

[105] T. Smedes and N. P. Van Der Meijs and A.J. van Genderen, “Boundary Element Methods<br />

for Capacitance and Substrate Resistance Calculations in a VLSI Layout Verification Package,”<br />

International Conference on Software for Electrical Engineering Analysis and Design,<br />

pp. 337–344, 1993.<br />

[106] G. Veronis, Y.-C. Lu, and R. Dutton, “Modeling of wave behavior of substrate noise coupling<br />

for mixed-signal ic design,” Proceedings of the 5th International Symposium on Quality<br />

Electronic Design, pp. 303–308, 2004. http://ieeexplore.ieee.org/xpl/<br />

login.jsp?tp=&arnumber=1283690&url=http%3A%2F%2Fieeexplore.<br />

ieee.org%2Fxpls%2Fabs_all.jsp%3Farnumber%3D1283690.<br />

[107] C. Mocanu, Bazele electrotehnicii - Teoria câmpului electromagnetic. Editura Didactica si<br />

Pedagogica, Bucuresti, 1991.<br />

[108] A. Timotin, “Elementul electromagnetic pasiv de circuit,” Revue Roumaine des sciences techniques,<br />

vol. 21, no. 2, 1971.<br />

[109] D. Ioan and I. Munteanu, “Missing link rediscovered: The electromagnetic circuit element<br />

concept,” JSAEM Studies in Applied Electromagnetics and Mechanics, vol. 8, Oct. 1999.<br />

http://lmn.pub.ro/˜iulian/files/bibliografie/IoanJSAEM99.pdf.<br />

[110] A. R. Stefanescu, “Teza de doctorat: modele parametrice pentru interconexiunile din circuitele<br />

analogice de inalta frecventa.”<br />

[111] M. Clemens and T. Weiland, “Discrete Electromagnetism with the Finite Integration Technique,”<br />

Progress In Electromagnetics Research, vol. 32, pp. 65–87, 2001. http:<br />

//www.jpier.org/PIER/pier.php?citedby=00080103.<br />

[112] B. Gustavsen and A. Semlyen, “Rational approximation of frequency domain responses by<br />

vector fitting,” IEEE Transactions on Power Delivery, vol. 14, July 1999. http://lmn.<br />

pub.ro/˜iulian/files/bibliografie/vector_fitting1.pdf.<br />

[113] B. Gustavsen, “Improving the pole relocating properties of vector fitting,” IEEE Transactions<br />

on Power Delivery, vol. 21, July 2006. http://lmn.pub.ro/˜iulian/files/<br />

bibliografie/vector_fitting2.pdf.<br />

[114] D. Deschrijver, M. Mrozowski, T. Dhaene, and D. D. Zutter, “Macromodeling of multiport<br />

systems using a fast implementation of the vector fitting method,” IEEE Microwave and<br />

Wireless Components Letters, vol. 18, June 2008. http://lmn.pub.ro/˜iulian/<br />

files/bibliografie/vector_fitting3.pdf.<br />

175


BIBLIOGRAFIE<br />

[115] A. Semlyen and B. Gustavsen, “A half-size singularity test matrix for fast and reliable passivity<br />

assessment of rational models,” IEEE Transactions on Power Delivery, vol. 24, Jan<br />

2009.<br />

[116] B. Gustavsen, “Fast passivity enforcement for pole-residue models by perturbation of residue<br />

matrix eigenvalues,” IEEE Transactions on Power Delivery, vol. 23, Oct. 2008. http:<br />

//lmn.pub.ro/˜iulian/files/bibliografie/vector_fitting5.pdf.<br />

[117] B. Gustavsen and A. Semlyen, “Fast passivity assessment for s-parameter rational models via<br />

a half-size test matrix,” IEEE Transactions on Microwave Theory And Techniques, vol. 56,<br />

Dec. 2008. http://lmn.pub.ro/˜iulian/files/bibliografie/vector_<br />

fitting6.<br />

[118] B. Gustavsen, “Fast passivity enforcement for s-parameter models by perturbation of residue<br />

matrix eigenvalues,” IEEE Transactions on Advanced Packaging, vol. 39, May 2003. http:<br />

//lmn.pub.ro/˜iulian/files/bibliografie/vector_fitting7.<br />

[119] G. Ciuprina, D. Ioan, I.-A. Lazar, and Mihai-<strong>Iulian</strong> Andrei, “Adaptive frequency sampling<br />

for the effective extraction of reduced models for hf-ics passive components,” Lucrarile<br />

Simpozionului National de Electrotehnica Teoretica, Dec 2010. http://lmn.pub.ro/<br />

˜iulian/files/bibliografie/SNET2010_LMN_final_v2.pdf.<br />

[120] A. Chinea, “A parallel Vector Fitting implementation for fast macromodeling of highly complex<br />

interconnects,” IEEE 19th Conference on Electrical Performance of Electronic Packaging<br />

and Systems (EPEPS), 25-27 Oct. 2010. http://ieeexplore.ieee.org/xpl/<br />

login.jsp?tp=&arnumber=5642556&url=http%3A%2F%2Fieeexplore.<br />

ieee.org%2Fxpls%2Fabs_all.jsp%3Farnumber%3D5642556.<br />

[121] T. Palenius and J. Roos, “Comparison of reduced-order interconnect macromodels for timedomain<br />

simulation,” IEEE Transactions on Microwave Theory and Techniques, vol. 52,<br />

no. 9, pp. 2240 – 2250, 2004. http://direct.bl.uk/bld/PlaceOrder.do?UIN=<br />

188206874&ETOC=RN&from=searchengine.<br />

[122] M. J. Flynn, “Some computer organizations and their effectiveness,” IEEE Transactions on<br />

Computers, vol. C-21, Sept. 1972.<br />

[123] U. of Illinois, “Introduction to MPI.” http://www.citutor.org.<br />

[124] U. of Illinois, “Multilevel Parallel Programming.” http://www.citutor.org.<br />

[125] “ATLAS Cluster.” http://atlas.lmn.pub.ro/index.php/Main_Page.<br />

[126] MathWorks, “Matlab.” http://www.mathworks.com.<br />

[127] MathWorks, “Matlab Parallel Computing Toolbox.” http://www.mathworks.com/<br />

products/parallel-computing/?s_cid=HP_FP_ML_parallel.<br />

[128] MathWorks, “Matlab Distributed Computing Server.” http://www.mathworks.com/<br />

products/parallel-computing/?s_cid=HP_FP_ML_parallel.<br />

[129] ARB, “The OpenMP - API specification for parallel programming.” http://openmp.<br />

org/wp/.<br />

[130] Netlib, “LAPACK - Linear Algebra PACKage.” http://www.netlib.org/lapack/.<br />

176


BIBLIOGRAFIE<br />

[131] MPI, “The Message Passing Interface standard.” http://www.mcs.anl.gov/<br />

research/projects/mpi/.<br />

[132] NVIDIA, “Tesla C1060.” http://www.nvidia.co.uk/object/tesla_c1060_<br />

uk.html.<br />

[133] A. Stefanescu, R. Popescu, and G. Ciuprina, “Evaluation of LMN solving capabilities for<br />

sparse complex linear systems of equations, arising from the modeling of passive on-chip<br />

components,” tech. rep., 2009. internal report.<br />

[134] T. Davis, Direct Methods for Sparse Linear Systems. SIAM, 2006.<br />

[135] Y. Saad and M. H. Schultz, “GMRES: A Generalized Minimal Residual Algorithm for Solving<br />

Nonsymmetric Linear Systems,” SIAM Journal on Scientific and Statistical Computing,<br />

vol. 7, July 1986. http://dx.doi.org/10.1137/0907058.<br />

[136] H. A. van der Vorst, “Bi-CGSTAB: A Fast and Smoothly Converging Variant of Bi-CG for<br />

the Solution of Nonsymmetric Linear Systems,” SIAM Journal on Scientific and Statistical<br />

Computing, vol. 13, no. 2, 1992. http://dx.doi.org/10.1137/0913035.<br />

[137] ATLAS, “Automatically Tuned Linear Algebra Software.” http://math-atlas.<br />

sourceforge.net/.<br />

[138] NVIDIA, “CUBLAS: CUDA Basic Linear Algebra Subroutines.” http://developer.<br />

nvidia.com/cublas.<br />

[139] NVIDIA, “CUSPARSE: CUDA Sparse Matrix library.” http://developer.nvidia.<br />

com/cusparse.<br />

[140] N. Bell and M. Garland, “Cusp: Generic parallel algorithms for sparse matrix and graph<br />

computations,” 2012. Version 0.3.0, http://cusp-library.googlecode.com.<br />

[141] D. B. Kirk and W. mei W. Hwu, Programming Massively Parallel Processors: A Hands-on<br />

Approach. Morgan Kaufmann Publishers, 2010.<br />

[142] MathWorks, “Livelink for matlab, user’s guide,” 2011. Version 4.2.<br />

[143] K. Chen, Matrix Preconditioning Techniques and Applications. Cambridge University Press,<br />

2005.<br />

[144] T. C. Henk, T. F. Chan, Henk, A. Van, and D. Vorst, Approximate And Incomplete Factorizations.<br />

1994. http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.<br />

1.1.45.946.<br />

[145] M. Bollhfer and Y. Saad, “Multilevel preconditioners constructed from inverse-based ILUs,”<br />

Journal of Scientific Computing, vol. 27, pp. 1627–1650, 2006. http://www.icm.<br />

tu-bs.de/˜bolle/ilupack/.<br />

[146] I.-A. Lazar, <strong>Mihail</strong>-<strong>Iulian</strong> Andrei, E. Caciulan, G. Ciuprina, and D. Ioan, “Parallel algorithms<br />

for the efficient extraction of fitting based reduced order models,” Proceedings of the<br />

7th International Symposium on ADVANCED TOPICS IN ELECTRICAL ENGINEERING,<br />

vol. 7, May 2011.<br />

[147] S. University, “Integrated Spiral Inductor Calculator.” http://www-smirc.<br />

stanford.edu/spiralCalc.html.<br />

177


BIBLIOGRAFIE<br />

[148] S. S. Mohan, M. del Mar Hershenson, S. P. Boyd, and T. H. Lee, “Simple Accurate Expressions<br />

for Planar Spiral Inductances,” IEEE Journal of Solid-State Circuits, vol. 34, no. 10,<br />

1999. http://smirc.stanford.edu/papers/JSSC99OCT-mohan.pdf.<br />

[149] G. Ciuprina, D. Ioan, C. Dita, and M.I. Andrei, “Frequency Parametrized Dependent Models<br />

for Planar On-Chip Inductors,” Book of Abstracts, Scientific Computing in Electrical<br />

Engineering (SCEE 2012), 11- 14 Sept., 2012, Zurich, Switzerland.<br />

[150] M.I. Andrei and C. Dita, “Using Multiprocessor Systems for Electromagnetic Modelling of<br />

Spiral Inductors,” Buletinul Stiintific, Seria C, Inginerie Electrica si Stiina Calculatoarelor.<br />

trimis pentru publicare.<br />

[151] P. Kalantarov and L. Teitlin, Calculul inductant¸elor- Indreptar. Printhech Tehnica, Bucuresti,<br />

1958.<br />

[152] Adaptive Computing, “TORQUE Resource Manager.” http://www.<br />

adaptivecomputing.com/products/open-source/torque/.<br />

178

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!