Budapesti Műszaki és Gazdaságtudományi Egyetem Villamosmérnöki és Informatikai Kar Elektronikus Eszközök Tanszéke
MIKROELEKTRONIKA LABORATÓRIUMI SEGÉDANYAG 1. rész Elméleti összefoglaló
Szerkesztette: Horváth Péter, Dr. Szabó Péter Gábor
2016
Tartalomjegyzék Tartalomjegyzék .............................................................................................................................. 2 1.
Bevezetés ................................................................................................................................ 7 1.1.
A VLSI áramkörök tervezésének folyamata .................................................................... 7
1.2.
A VLSI áramkörök gyártatása ........................................................................................ 13
1.3.
VLSI áramkörök termikus kérdései ................................................................................ 15
1.3.1. 1.4. 2.
Modern VLSI áramkörök fogyasztáscsökkentési törekvései ................................. 17
Ajánlott irodalom............................................................................................................. 19
Az integrált áramkörök gyártástechnológiája I. – Alapfogalmak........................................... 20 2.1.
A szilícium technológia (Silicon manufacturing process) .............................................. 20
2.2.
A szilícium mechanikai és kristálytani tulajdonságai ..................................................... 21
2.3.
Egykristályos szilícium szelet előállítása ....................................................................... 24
2.3.1.
A szilícium szelet előállítása ................................................................................... 26
2.4.
Kristályhibák ................................................................................................................... 29
2.5.
A szilícium szennyező és adalék atomjai ...................................................................... 32
2.6. Az egykristályos szilícium szelet kialakítását követő alapvető gyártástechnológiai lépések ...................................................................................................................................... 33 2.7.
Adalékolás ...................................................................................................................... 36
2.7.1.
Diffúzió .................................................................................................................... 36
2.7.2.
Ionimplantáció ......................................................................................................... 39
2.8.
Ajánlott irodalom............................................................................................................. 40
3. Az integrált áramkörök gyártástechnológiája II. - Félvezető gyártástechnológia minősítése és a tisztatér felépítése ................................................................................................................. 41 3.1.
Integrált áramkörök mikroszkópi vizsgálata ................................................................... 41
2
3.1.1.
Célkitűzés ................................................................................................................ 41
3.1.2.
A méréshez szükséges optikai mikroszkópiai ismeretek ....................................... 41
3.1.3.
Egy bipoláris integrált áramkör alkatrészeinek felismerése ................................... 44
3.2.
Adalékolt félvezetők minősítése..................................................................................... 47
3.2.1.
Adalékolás típusának és a négyzetes ellenállásnak meghatározása.................... 47
3.2.3.A p-n átmenetek helyzetének mérése ......................................................................... 50
4.
5.
6.
3.3.
Tisztatéri ismeretek ........................................................................................................ 52
3.4.
Feladatok: ....................................................................................................................... 56
3.5.
Ajánlott irodalom............................................................................................................. 56
Analóg áramkörtervezés I. - CMOS komplex kapu............................................................... 58 4.1.
MOS tranzisztorok felépítése és karakterisztikái ........................................................... 58
4.2.
CMOS komplex kapu tervezése .................................................................................... 63
4.3.
Ajánlott irodalom............................................................................................................. 66
Analóg áramkörtervezés II. - Ring-oszcillátor ....................................................................... 67 5.1.
A ring-oszcillátor felépítése és működése ..................................................................... 67
5.2.
A ring-oszcillátor frekvenciájának hőmérsékletfüggése ................................................ 69
5.3.
Ajánlott irodalom............................................................................................................. 70
Digitális rendszertervezés I. - RTL modellezés és szimuláció ............................................. 71 6.1.
RTL modellezés VHDL nyelven ..................................................................................... 72
6.1.1.
Első példacsoport - Logikai kapuk .......................................................................... 72
6.1.2.
Második példacsoport - Összeadó áramkörök ....................................................... 74
6.1.3.
Harmadik példacsoport - Szinkron számlálók ........................................................ 78
6.1.4.
Negyedik példacsoport - Shift&Add szorzó egység ............................................... 82
6.2.
HDL-alapú lineáris tesztkörnyezet készítése................................................................. 85 3
6.3. 7.
Digitális rendszertervezés II. - Szintézis standard cellás ASIC technológiára ..................... 89 7.1.
A standard cellák ............................................................................................................ 89
7.2.
Speciális célú cellák ....................................................................................................... 91
7.3.
A cellákat leíró adatbázis ............................................................................................... 92
7.3.1.
Layout...................................................................................................................... 92
7.3.2.
A cellák időzítési és fogyasztási tulajdonságai ...................................................... 94
7.3.3.
A cellák HDL modelljei ............................................................................................ 96
7.4.
Az RTL szintézis ..................................................................................................... 99
7.4.2.
A fizikai szintézis ................................................................................................... 101
Ajánlott irodalom........................................................................................................... 110
Digitális rendszertervezés III. - Szintézis FPGA technológiára .......................................... 111 8.1.
9.
A standard cellás szintézis folyamata ............................................................................ 99
7.4.1.
7.5. 8.
Ajánlott irodalom............................................................................................................. 87
Az FPGA áramkörök architektúrája ............................................................................. 111
8.1.1.
Konfigurálható huzalozási erőforrások ................................................................. 112
8.1.2.
Konfigurálható logikai blokkok .............................................................................. 116
8.1.3.
Konfigurálható I/O blokkok.................................................................................... 117
8.1.4.
Speciális célú erőforrások..................................................................................... 118
8.2.
Az FPGA-alapú áramkörszintézis folyamata ............................................................... 119
8.3.
FPGA-specifikus tervezési megfontolások .................................................................. 120
8.4.
Ajánlott irodalom........................................................................................................... 122
Digitális rendszertervezés IV. - Nios II beágyazott processzoros rendszerek ................... 123 9.1.
Beágyazott rendszerek tervezési szempontjai ............................................................ 123
9.2.
A beágyazott rendszerek komponensei ...................................................................... 124 4
Beágyazott rendszerek újrakonfigurálható technológián ............................................ 126
9.3.
9.3.1.
Soft-core mikroprocesszorok ................................................................................ 126
9.3.2.
A Nios II mikroprocesszoros rendszer .................................................................. 127
9.3.3.
A fejlesztés folyamata ........................................................................................... 130
Ajánlott irodalom........................................................................................................... 132
9.4.
10. Digitális rendszertervezés V. - Esettanulmány - Ring-oszcillátor-alapú hőmérsékletérzékelő ....................................................................................................................................... 133 10.1.
10.1.1.
Hőmérsékletfüggő elem .................................................................................... 135
10.1.2.
Frekvenciamérő elem ........................................................................................ 136
10.1.3.
Adatfeldolgozó elem .......................................................................................... 139
10.1.4.
Disszipáló elem ................................................................................................. 140
10.1.5.
Lábkiosztás........................................................................................................ 140
10.2.
11.
A rendszer hardver komponensei ............................................................................ 133
A rendszer szoftver komponensei ............................................................................ 140
10.2.1.
A főprogram ....................................................................................................... 140
10.2.2.
A megszakítási rutin .......................................................................................... 143
Termikus I. - VLSI áramkörök termikus viselkedése – hőtranszfer a tokon belül........... 147
11.1.
Termikus rendszerek leírása kompakt modellel – konduktív hőtranszfer ............... 147
11.2.
VLSI áramkörök tokozási kérdései........................................................................... 149
11.3.
VLSI áramkörök hűtése és termikus karakterizációja .............................................. 152
11.4.
Ajánlott irodalom ....................................................................................................... 153
12.
Termikus II. - Érintésmentes termikus karakterizáció – hőtranszfer a tokon kívül ......... 154
12.1.
Bevezetés ................................................................................................................. 154
12.2.
Hőátadás konvekcióval............................................................................................. 155 5
12.3. Hőátadás sugárzással, az érintésmentes hőmérsékletmérés és hőtérkép készítés lehetőségei .............................................................................................................................. 156 12.4.
Ajánlott irodalom ....................................................................................................... 157
6
1. Bevezetés Szerző: Dr. Bognár György
1.1.
A VLSI áramkörök tervezésének folyamata
A mikroelektronikai technológia rohamos fejlődésének következtében drasztikusan megnövekedett az egy chipre integrálható áramköri elemek száma. A számítógépek, a mobilkommunikációt lehetővé tevő eszközök, szórakoztató elektronikai berendezések mind tartalmaznak legalább egy nagybonyolultságú integrált áramkört. Ezen eszközök hatékony működését lehetővé tevő, hatalmas számítási erőforrást jelentő processzorok manapság több millió logikai kapuból épülnek fel és több százmilliónyi tranzisztort tartalmaznak akár 1cm 2 felületen. Az első – az 1980-s években – elterjedt processzorok még csak néhányszor 10000 tranzisztort tartalmaztak. Ezen eszközök tervezéséhez kezdetben magas fokú elektronikai, gyártástechnológiai és félvezető fizikai ismeretek együttesére volt szükség. Érthető, hogy már a kezdetek kezdetén is felvetődött az automatizált tervezés iránti igény. Többtízezer darab tranzisztor vagy akár pár ezer logikai kapu optimális elhelyezését, elrendezését és összeköttetését ugyanis nem lehet manuálisan végezni, nem beszélve a mai kor többmilliós tranzisztor számáról. A megbízhatóság és az integráció növelése érdekében a ‘90-es években kezdett megnövekedni az igény a különböző funkciókat megvalósító digitális és analóg áramkörök, illetve különböző szerkezeti elemek (érzékelők, beavatkozók) közös félvezető hordozón (egy chipen) való megvalósítására. Kezdetben ennek számos technológiai (CMOS kompatibilitás, tokozási és kivezetési kérdések, stb.) és gyakorlati korlátja volt (nem álltak rendelkezésre megfelelő CAD eszközök). Manapság azonban egy komplett rendszer kialakítása és megvalósítása egy chipen (ún. System On Chip vagy SoC rendszerek) szokásosnak mondható. A modern processzorokban egy közös félvezető hordozón akár integrált DDR3 memóriavezérlő, gigabites hálózati csatoló, grafikus processzor (GPU) mag(ok) is kerülhetnek a hagyományos értelemben vett általános célú processzor (CPU) mag(ok) mellé! Hordozható eszközökben ("okos" mobiltelefonok, tablet eszközök) a modern processzor mellé gyakran különböző érzékelő mikroszerkezetek (gyorsulásérzékelők, hőmérsékletérzékelők, giroszkóp) kerülnek kialakításra egy félvezető hordozón! Ezeket a mikroszerkezeteket MEMS (Micro-Electro-Mechanical System) eszközöknek nevezzük.
7
1-1. ábra Vegyes jelű System-On-Chip integrált áramkör tervezésének lépései
Az 1-1. ábra a vegyes jelű System-on-chip áramkörök tervezési lépéseit mutatja be. Vegyes jelű tervezéskor az áramkör egyes részei digitális, más részei analóg működésűek. A két tartomány együttműködésének tervezéséhez, verifikációjához fejlett tervezőrendszerekre van szükség. Rendszerszintű leírás A rendszerszintű leírás megalkotásakor a tervező a specifikáció megfogalmazásához olyan nyelvezetet használ, amivel a lehető legkönnyebben tudja „gépi” nyelven megfogalmazni a szöveges specifikációt. Az ilyen leírások általában ismert és széles körben használt rendszerszintű leíró nyelveken (System Description Language) készülnek. Ilyenek például a C/C++, UML, SystemC, AlgorithmicC, SystemVerilog, SystemVHDL. Ezek a nyelvek közvetlenül támogatják a specifikációk magas szintű megfogalmazását, a tervezőnek nem kell törődnie a megvalósítás részleteivel. Viselkedési modellezés A rendszerszintű leírásból ma már modern CAD eszközökkel lehetséges közvetlenül elkészíteni az integrált áramkör fizikai tervét. Ennek ellenére még mindig gyakori, hogy a rendszerszintű 8
tervek alapján egy választott hardver leíró nyelv (Verilog vagy VHDL) segítségével készítik el a megvalósítani kívánt hardver működését reprezentáló regiszter-transzfer szintű (RTL) leírást. Ezen leírás alapján lehet logikai szimulációt elvégezni, melynek segítségével ellenőrizhető, hogy helyesen működik-e a megtervezett áramkör (azaz a hardver-leíró nyelven reprezentált áramkör). RTL szintézis A szintézis eljárások a rendszer különböző szintű reprezentációi között végeznek transzformációt. Ha a logikai szimuláció alapján az áramkör megfelelőnek bizonyul, akkor a RTL leírásból kiindulva ún. RTL szintézis program segítségével lehet előállítani az áramkör kapuszintű leírását (1-2. ábra).
1-2. ábra Logikai szintézis eredménye
9
Kapuszintű leírás, kapcsolási rajz A kapuszintű leírást logikai szimulátor segítségével szimuláljuk, ellenőrizzük a működés helyességét (1-3. ábra). Az áramkör digitális részének kapuszintű leírása VHDL vagy Verilog hardver leíró nyelven készül el. A logikai szintű leírás szimulációja során minden kapu késleltetést nullának vagy egységnyinek veszünk, azaz ezen szimulációk során akár már számolhatunk a kapuk késleltetésével is. Így nyílik lehetőség az áramkör ún. kritikus szakaszainak (critical path) meghatározására. Természetesen nem minden kapu késleltetése egyforma, és főleg nem egységnyi, de ezeknek a kritikus szakaszoknak a meghatározásához bőven elegendő számunkra egy ilyen módú becslés. Ha valamilyen időzítési hiba állna elő (egy szükséges operandus például egy órajel ciklussal később érkezik meg) akkor szükség van a terv módosítására, amihez szükség van az áramköri időzítéskritikus részeinek ismeretére.
1-3. ábra Logikai szimuláció eredménye
10
Layout generálás, elhelyezés, huzalozás A logikai szintű leírás már alap logikai egységekből, illetve logikai alapkapukból épül fel. Nyilvánvaló, hogy egy-egy ilyen alapkaput elég fizikailag egyszer megtervezni és utána ezeket a már elkészült alapkapukat, alapcellákat többször is fel lehet használni. Ennek megfelelően minden integrált áramkör gyártó cég rendelkezik egy-egy saját maga által fejlesztett, már előzőekben legyártott, tesztelt, ellenőrzött és bemért logikai alapkapu és alap logikai funkciókat megvalósító ún. cellakönyvtárral. Ezt hívjuk standard cellakönyvtárnak. Az áramkör gyártója ezen cellák terveit, méreteit, késleltetési és időzítési adatait a tervező rendelkezésére bocsátja. Így a digitális integrált áramkör tervezőjének nem kell egy invertert vagy egy tárolót megvalósítani tranzisztor szinten – minden egyes alkalommal –, hanem a gyártó által elkészített, adott technológiára és tápfeszültségre optimalizált komplett könyvtárat kap, melynek egyes elemeit szabadon felhasználhatja saját áramköre fejlesztése érdekében.
1-4. ábra A fizikai szintézis eredménye
Layout terv, extrakció A layout tehát digitális áramkörök esetén a fizikai szintézis során áll elő. Azonban analóg áramkörök esetén a fizikai terv megtervezése kézzel történik egy layout szerkesztő (layout editor) program segítségével (1-5. ábra). A tervező azonban az újabb CAD programoktól az 11
analóg áramkör elrendezésére és az összeköttetések kialakításához kap automatikus segítséget (pl.: egy differenciál erősítő tranzisztorainak elrendezésére ad javaslatot, a még ki nem alakított összeköttetéseket jelöli).
1-5. ábra Egy a tanszéken tervezett és legyártásra is került RF frekvenciaosztó áramkör layout terve XFAB 0,6µm 2 fémrétegű BiCMOS technológia, működési frekvencia 1.4GHz
MEMS eszközök tervezése Az eddigiekben bemutatott Top-Down tervezési stílussal (a magas szintről haladunk lefelé, egyre jobban belemenve a részletekbe) szemben a MEMS eszközök tervezése a Bottom-Up tervezési szemléletet követi. Először a MEMS eszköz fizikai tervét, pontosabban az előállításához szükséges maszkok terveit készítjük el, amiből automatikusan generálható a valóságos 3D struktúra (1-6. ábra). Ezt a 3D struktúrát használjuk fel, hogy ún. multiphysics végeselem (FEM) szimulátor eszközökkel a MEMS eszköz működését és viselkedését (elektromos, termikus, mechanikai, dinamikus, stb.) vizsgáljuk. Ha a struktúra megfelel az előzetes várakozásoknak, akkor a viselkedést leíró modellt (kvázi a viselkedést leíró egyenletek halmaza) generálunk egy olyan hardverleíró nyelven, amit utána a integrált áramkör tervezőrendszerhez lehet csatolni. Általában Verilog-A nyelvű leírás keletkezik, amivel a viselkedési szintű áramkörleírásunkat kiegészítve a komplett SoC viselkedésszintű szimulációjára lehetőség nyílik a már megismert eszközökkel.
12
1-6. ábra MEMS eszköz tervezése
1.2.
A VLSI áramkörök gyártatása
Érdekesnek tűnhet az a tény, hogy az integrált áramkör tervezőnek nem szükséges a gyártósor mellett dolgoznia, a gyártásnak és a tervezésnek nem kell egy helyen lennie. A mai szimulátor és verifikációs programok olyan fejlettségűek, hogy segítségükkel a megtervezett áramkör rendkívül sok szempontból tesztelhető, így nincs szükség a gyártósor közelében történő tervezésre. A tervező az elkészült és verifikált terveket elektronikus úton küldi el a gyártó cégnek. Sokszor egy integrált áramkör több kontinenst is bejár, amíg a tervezőhöz visszajut tokozott formában. A 1-7. ábra jól szemlélteti, hogy az internet korában a terveket a gyártócégnek elküldve (pl.: UMC, TSMC, AMS, ST, AMIS, XFAB, Jazz Semiconductor, stb.) az integrált áramkör gyártása megkezdődik és még akár a tokozás művelete is más kontinensen hajtódik végre. A Szilícium-völgyben is sok gyártósor nélküli integrált áramkör tervező cég (ún. fabless design company) működik nagyon sikeresen. Ennek élő példája a 2009 óta ugyancsak fabless IC tervező cégként működő AMD (Advanced Micro Devices Inc.).
13
1-7. ábra Egy chip útja a tervezőasztaltól a tokozásig
A megtervezett integrált áramkörök legyártatása – nagy példányszám esetén – több millió dolláros nagyságrendbe esik. Ebben az esetben processzorokat, különböző funkciókat megvalósító áramköröket milliós nagyságrendben, többtízezer szeleten készítik el. A tömeggyártásban alkalmazott szelet átmérője 30 cm, egy modern processzor (2 magos esetben) kb. 145 mm 2 nagyságú, amiből maximum kb. 500 darab fér el egy szeleten. Ennek az 500 darab processzornak kb. csak a 30‑ 40 %-a lesz működőképes a gyártástechnológiai szórások miatt. Az integrált áramkörök gyártásánál a legdrágább technológiai lépések a maszk elkészítése, az elkészült áramkör tesztelése és a tokozás. Alacsonyabb darabszám esetén, tipikusan prototípus gyártatásnál ez az ár a töredékére eshet vissza. Ebben az esetben akár egyetlen szelet elegendő az összes integrált áramkör legyártására Költségcsökkentő tényező lehet, hogy a kutatóhelyek, oktatási intézmények prototípus illetve oktatási célra készülő integrált áramkörei nem a legmodernebb, legkisebb csíkszélességű és ezért nem a legdrágább technológiára vannak tervezve. Tipikusan alkalmazott csíkszélesség a 0,35 µm, rádiófrekvenciás áramkörök esetén a 0,18 µm. Az árcsökkentés további lehetséges módja, ha egy szeleten több kutatóhely, egyetem osztozik (Multi Project Wafer, MPW vagy Multi Project Chip, MPC). Ebben az esetben egyetlen szeletre különböző integrált áramkörök kerülnek (1-8. ábra), és az áramkörök megrendelői közösen viselik a maszk előállítás és a gyártatás költségeit. Így egy kb. 2x2 mm-es chip 50 darabos prototípus gyártatása 0,35 µm csíkszélességű CMOS technológián kb. millió forintos nagyságrendű beruházást igényel.
14
1-8. ábra Multi-Project Chip Egy RF frekvenciaosztó áramkör és egy feszültségreferencia került egy közös hordozóra
1.3.
VLSI áramkörök termikus kérdései
A Moore törvénynek megfelelően az integrált áramkörökben másfél-, kétévente megduplázódik az egységnyi felületre integrálható tranzisztorok száma. Gordon Moore jóslata 1965-től (amikor még csak 64 tranzisztor volt integrálható egy félvezető felületén) mind a mai napig helytállónak bizonyult [2]. Az egyre nagyobb integráltsági fok csak úgy valósítható meg, hogy közben a csíkszélesség, a tranzisztorok csatornahosszúsága folyamatosan csökken. Jelenleg 32nm 1 CMOS technológiával készült processzorok 1 cm 2 felületére kb. 300 millió tranzisztor integrálható. Az integráltság növekedése azonban nem csak a félvezetők felületén valósul meg, hanem térben is az ún. 3D tokozásoknak köszönhetően. Ez utóbbi esetben egy tokon belülre több félvezető lapka kerül, akár egymásra helyezve. Látható, hogy ebben az esetben az egységnyi felületre jutó disszipáció jelentősen megnövekedhet. Ez további, termikus szempontból is optimalizált áramkörtervezési megoldások (elektrotermikus szimuláció, termikus
Egy Angström 10-10m (0.1nm) a hidrogén molekulában a két hidrogén atommag távolsága. A szilícium egykristályban a rácspontokat alkotó Si atomok közötti távolság (rácsállandó) kb. 0.5 nm. Tehát kb. 64 Si atom fér el a hosszában 32 nm csatornahosszúságú MOS FET tranzisztor csatornája mentén! 1
15
szempontú elrendező algoritmusok, stb.) alkalmazását, újfajta mérési és karakterizációs eljárások kidolgozását követeli meg egyben. A fokozatosan növekvő egységnyi felületre eső disszipáció következtében keletkező hő legkisebb hőellenállású úton történő elszállítása, azaz az integrált áramkör hatékony hűtése kulcskérdéssé vált az elmúlt években. Az 1-9. ábrán látható az elektronikai berendezések termikus problémák miatti meghibásodásának aránya az összes meghibásodási fajtához viszonyítva. Ez a magas arány egyértelműen indokolja, hogy mért fontos foglalkozni az elektronikai és mikroelektronikai eszközök termikus kérdéseivel.
1-9. ábra A fő meghibásodási okok elektronikai eszközökben
Processzorok, digitális jelfeldolgozó (DSP) áramkörök tervezésekor nagyon nagy figyelemmel kell lennünk a hőtechnikai tervezési szempontokra! Az integrált áramköreink túlmelegedése ugyanis hosszú, de akár rövidtávon is az áramkör tönkremeneteléhez vezethet. Példának okáért 180..210 °C feletti hőmérséklet esetén a hozzávezetések megolvadhatnak. Elektromos szempontból a túl magas vagy éppen a túl alacsony hőmérséklet (100 °C feletti, vagy -20°C alatt) a munkapontok eltolódását, az egyes funkcionális blokkok késleltetéseinek megváltozását okozza, ami végső soron meghiúsíthatja az áramkör üzemszerű funkcionális működését. Az 1-10. ábrán látható a különböző félvezető technológián megvalósított Intel processzorok maximális disszipációja a gyártástechnológia függvényében [3]. A nagy processzorgyártó cégek körülbelül három évente jelennek meg a piacon egy-egy újabb processzorcsaláddal. Ezek az új processzorok az akkori legmodernebb technológián gyártódnak és kerülnek eladásra. Mindeközben, ha kidolgozásra kerül egy újabb félvezető technológia (kisebb csíkszélesség, nagyobb kihozatal, stb.), akkor a már gyártás alatt lévő processzorokat – architekturális változtatás nélkül – elkezdik az új technológián gyártani. Mivel ugyanaz az áramkör egy kisebb csíkszélességű technológián kerül megvalósításra, így csökken a processzor fogyasztása. Így lehetséges például, hogy ugyanolyan architektúrájú, ugyanolyan sebességű Intel Pentium 4 processzorok különböző félvezető technológián megvalósítva csökkenő disszipációt mutattak. Például a 130 nm technológiájú Pentium 4 processzor disszipációja 81 W, míg az ugyanolyan felépítésű, de 90 nm megvalósított processzor disszipációja ”csupán” 57 W. Tegyük hozzá, 16
hogy a kisebb csíkszélesség miatt az adott architektúrájú processzor mérete csökken, ezzel nő a kihozatal. Természetesen az új technológiára kidolgozott, új architektúrájú (párhuzamosított, több mag egy félvezetőn, hosszabb pipeline szál, nagyobb utasításkészlet, integrált memória és/vagy 3D videovezérlő stb.) processzorok számítási teljesítménye növekszik, de ezzel a fajlagos disszipációja is nő az előző processzorgenerációhoz viszonyítva. Történik ez annak ellenére, hogy a fogyasztás csökkentése érdekében számos technológiai újdonságnak számító lépést vezetnek be a tervezés és gyártás során (például hafnium alapú high-k anyagok alkalmazása a gate dielektrikumban, változó magfeszültség, SOI (Silicon on Insulator) technológia alkalmazása, változó (on-demand, Intel SpeedStep) órajelállítás, különböző standby üzemmódok kidolgozása, stb.).
1-10. ábra Processzorok disszipációja az integrált áramkör gyártástechnológiája függvényében
Összefoglalva tehát úgy fogalmazhatunk, hogy a folyamatosan növekvő számítási teljesítmény és a gyártástechnológiai csíkszélesség csökkentésének együttes hatásaként az új generációs digitális áramkörök teljesítmény disszipációja fokozatosan növekvő tendenciát mutat. Ezt súlyosbíthatja a 3D tokozás és a több processzormag egy félvezető felületén való elhelyezése. Ezen okok miatt kiemelkedően fontos a termikus problémák megfelelő kezelése a mikroelektronikában már a tervezés fázisában is!
1.3.1.
Modern VLSI áramkörök fogyasztáscsökkentési törekvései
A mai modern processzorok CMOS gyártástechnológián készülnek, és digitális blokkjaik és funkcionális egységeik CMOS kapcsolástechnikával kerülnek megvalósításra. CMOS digitális áramkörök fogyasztása négyzetesen függ a tápfeszültségtől és arányos a működési 17
frekvenciával és a CL kapacitás értékkel (ennek jelentésére később visszatérünk): . Így látható, hogyha ezt a két értéket csökkentjük, akkor jelentős energia megtakarítást érhetünk el. Ezzel természetesen egyidejűleg növekszik a funkcionális blokkok késleltetése, így tehát lassul a processzor működése is, de ebből az átlag felhasználó irodai alkalmazások használatakor nem vesz észre semmit. A modern digitális integrált áramkörök (processzorok, jelfeldolgozó áramkörök) néhány cm 2 félvezető felületen disszipálnak 10…100 W teljesítményt. A processzorok adatlapján található TDP értéke a különböző kereskedelmi programok használata során fellépő maximális pillanatnyi teljesítményfelvételek átlagát jelenti, ami a processzor valóságos maximális teljesítményfelvételénél általában kb. 20 %...30 %-al kisebb. Ez az érték irányadásul szolgál a processzor-hűtőrendszereket tervező és gyártó cégeknek. Intel Core i7 esetén ez az érték 130 W, tehát a maximális teljesítményfelvétele a processzornak akár 170 W is lehet. Tekintve, hogy például egy modern processzor 2 maximális magfeszültsége (core voltage) 1,3 V körüli, a TDP (Thermal Design Power) értéke pedig 130 W, adódik, hogy az integrált áramkör maximális pillanatnyi áramfelvétele kb. 100 A is lehet! Nyilvánvaló, hogy ekkora áramot egy pár cm 2 felületű félvezető darabba nem egy „vezetékkel” juttatnak be! Fogyasztás csökkentése érdekében (így a hőmérséklet csökkentése érdekében is) a processzortervező és gyártó cégek számos újszerű megoldást mutattak be. Ennek egyik példája a működési frekvencia és a magfeszültség menet közbeni dinamikus változtatása (Intel Enhanced Speed Step Technology Vcore=0.8…1,375 V). Megfigyelték ugyanis, hogy alapszintű (főleg irodai) alkalmazások során a processzor terhelése kb. 10 % körül alakul és egy átlag felhasználó csak nagyon ritkán használja ki a processzor teljes erőforrását (tipikusan játékok, hang/videó szerkesztés, konvertálás és CAD szimulációk esetén terheljük a processzort 100%ban). A fogyasztáscsökkentés másik módja a gyártástechnológia megváltoztatása, fejlesztése. A CMOS áramkörök esetén a CL értéke a kimenetet terhelő kapacitások összességéből tevődik össze: a következő kapu(k) bemeneti kapacitása(i) és a hozzávezető vezetékek szórt kapacitásai. A CL érték csökkentésére a csökkenő csíkszélesség 3 kínál megoldást. Az ezredfordulón még a 180...250 nm csíkszélességű technológiák voltak elterjedve, manapság már 32nm csíkszélességű technológián valósítanak meg processzorokat. A csíkszélesség fokozatos csökkentésével azonban újabb és újabb problémák léptek és lépnek fel. Például a szivárgó áram csökkentésére új gate dielektrikumot (ún. hafnium alapú high-K anyagot) kellett választani, illetve visszatértek a fém alapú gate elektródák használatához.
A továbbiakban az Intel Core i7 Extreme Edition I7-980X processzor tulajdonságait tekintjük át A legkisebb technológiailag megvalósítható méret (Minimal Feature Size). CMOS technológián a vezérlőelektróda (Gate) alatti csatorna hossza (L). 2 3
18
Multi-VT technika is széles körben elterjedt fogyasztáscsökkentési módszer, amelynek célja a küszöbalatti áram csökkentése. Az elv az ún. bulk effektus (vagy más néven szubsztrát visszahatás) jelenségén alapul. Ha egy MOS FET tranzisztor bulk elektródájának feszültségét megváltoztatjuk, akkor változik a küszöbfeszültség (V Th – threshold voltage) értéke. A küszöbalatti áram nagysága pedig exponenciálisan függ a V Th értékétől: növekvő V Th feszültséghez, exponenciálisan kisebb a küszöbalatti áram érték társul! Sajnos a bulk feszültség ilyen irányú megváltoztatásával a source-bulk és drain-bulk közötti diódák szivárgási árama növekszik. Erre kínál megoldást a SOI (Silicon on Insulator) technológia. Az Intel cég új architektúrájú Core i7 processzoraiba a teljesítmény fokozására egy új funkciót (ún. TurboBoost technológia) vezettek be. A TurboBoost célja, hogy a processzor működési frekvenciáját megemeljük 4…8%-al (3333 MHz helyett 3600 MHz frekvencián fog az áramkör üzemelni), de csak addig, amíg a processzor a biztonságos hőmérséklettartományban üzemel. Abban a pillanatban, ahogy a maximális megengedett hőmérsékletet kezdjük elérni, a működéi frekvenciát visszaszabályozzuk. Ennek az elgondolásnak főleg akkor van előnye, ha olyan felhasználói programokat futtatnunk, amelyek nem képesek kihasználni a processzor architektúrája által kínált párhuzamosítást (tipikusan a régi programok, de akár a játék programok is ilyenek lehetnek). Ebben az esetben csak egyetlen processzor magot használunk, a többi mag terhelése pár % körül alakul (operációs rendszer egyes processzei futhatnak más magokon).
1.4.
Ajánlott irodalom
[1] Gy Bognár, A. Timár, CAD eszközök az IC tervezésben az Elektronikus Eszközök Tanszékén, ELEKTRONET 9:(5) pp. 14-16. (2011) [2] M. Gordon, Cramming more components onto integrated circuits, Journal of Electronics, 38:(8), (1965) [3] Bruce Guenin, When Moore Is Less: Exploring the 3rd Dimension in IC Packaging, Electronics Cooling 15:(1), (2009)
19
2. Az integrált áramkörök gyártástechnológiája I. – Alapfogalmak Szerző: Dr. Szabó Péter Gábor, Plesz Balázs, Dr. Bognár György, Takács Gábor, dr. Végh Gerzson
2.1.
A szilícium technológia (Silicon manufacturing process)
A mai integrált áramkörök túlnyomó többsége szilícium alapanyagú horodozón készül. Egyéb célokra (pl.: optoelektronikai, nagyfrekvenciás, teljesítményelektronikai eszközök) készülhetnek más, legtöbbször vegyületfélvezető anyagból (pl. szilícium-karbid, gallium-arzenid stb.), melyek azonban inkább diszkrét vagy alacsony integráltságú eszközök. A szilícium alapú integrált áramköri gyártástechnológia eleinte a szilícium jó elektromos tulajdonságainak köszönhette a széles körű elterjedését, melyhez hozzájárult a könnyen növeszthető, jó szigetelő és maszkoló rétegként egyaránt használható oxidja: a szilícium dioxid (SiO2). Mindezek eredményeképpen mára a szilícium alapanyagra épülő gyártástechnológia annyira fejletté vált, hogy a mai IC-k integráltsági szintjét és gyártási költségét más félvezetőkkel egyelőre megközelíteni se lehet. Azért, hogy erről a területről teljesebb képet kapjunk a következőkben a szilíciummal, mint félvezető alapanyaggal, és a szilícium alapanyagú hordozóra planártechnológiával készült integrált áramkörök gyártástechnológiájának néhány fontos aspektusával ismerkedhetünk meg. Az integrált áramkörökben az áramkör összes tranzisztorát és egyéb elektronikus alkatrészét (dióda, ellenállás, stb.) egy chipen, azaz egyetlen egy darab szilícium chip-ben alakítják ki. Ehhez a kezdetben egységes szilíciumtömb anyagtulajdonságait lokálisan meg kell változtatni, hiszen csak így alakulhatnak ki a különböző elektronikus alkatrészekhez (pl.: tranzisztorok, diódák) szükséges, eltérő anyagtulajdonságokkal rendelkező rétegek. Integrált áramkörökben nagyszámú eszközt alakítanak ki (modern processzorokban akár több milliárd tranzisztor lehet egy chip-en), és az egyes eszközök elválasztása is eltérő anyagparaméterű részekkel történik. A monolit (azaz egy alapanyagtömbben kialakított) integrált áramkörök kialakításához tehát szükségünk van egy olyan technológiára, amelynek segítségével a tömbi szilícium anyagi (főként elektromos) paramétereit csak és kizárólag a kívánt helyen változtathatóak meg. Az alapanyag villamos paramétereit általában adalékolással, azaz idegen atomok szándékos, célzott és kontrolált bevitelével változtatjuk meg lokálisan, így kialakítva az aktív eszközökhöz szükséges donor és akceptor adalékolású (n és p-típusú) régiók, melyek a félvezető elektron és lyukvezetési képességeit határozzák meg. [1] Szilícium félvezető esetén adalékanyagnak leggyakrabban foszfor (P) és bór (B) anyagot alkalmaznak. Az adalékolás mellet léteznek további technológia lépések, amelyeket csak lokálisan szeretnénk végrehajtani, mint például a tömbi szilícium vagy egyéb rétegek lokális eltávolítása, marása vagy éppen ennek az ellentéte, egyes rétegek lokális növesztése. Ahhoz, hogy ezeket a lépéseket csak lokálisan végezhessük el (tehát mintázatot tudjunk kialakítani), szükség van 20
egy olyan ún. maszkoló rétegre, amely megvédi az alatta lévő alapanyagot azokon a helyeken, ahol az egyes folyamatokat nem szeretnénk végrehajtani. Ennek a maszkoló rétegnek tehát nem a teljes felületen, hanem csak meghatározott helyeken (lokálisan) kell a felületen lennie, ezért a maszkoló rétegeken is mintázatot kell kialakítani. Ez általában úgy történik, hogy a maszkoló réteget a teljes felületre felviszik (például SiO2 esetén növesztéssel), majd fotolitográfiával (2.6. fejezet) jelölik ki azokat a helyeket, ahol nincs szükség maszkoló rétegre, és innen egy szelektív (például csak a megvilágított maszk anyagot támadó) marószer segítségével eltávolítjuk a nem kívánt részeket. A megfelelő mintázattal rendelkező maszkoló réteggel borított félvezetőn pedig már elvégezhetjük az adott – mintázatnak megfelelően, csak lokálisan – elvégzendő gyártástechnológiai lépéseket (adalékolás, maratás, rétegnövesztés stb.). A különböző adalékolású részeket (2.7. fejezet), felületen futó vezetékeket, stb. tehát gyakorlatilag a kész integrált áramkört az előzőekben vázolt folyamat (maszkolás, fotolitográfia, mintakialakítás) gondosan megtervezett sorrendben történő ismétlésével alakíthatjuk ki. A szilícium alapú integrált áramkörök gyártástechnológiája így különböző részfolyamatokból épül fel, ahol minden egyes részfolyamat lényegében a maszkoló réteg felviteléből, maszkoló réteg mintázásából és az alapanyag jellemzőinek változtatására szolgáló technológia lépésből áll.
2.2.
A szilícium mechanikai és kristálytani tulajdonságai
A szilícium a periódusos rendszer 14-es rendszámú eleme, kb. 1400°C fokig szilárd halmazállapotú. Négy vegyértékű, így a kristályrácsában minden atomnak négy legközelebbi szomszédja van, ezek a vegyérték elektronok segítségével kapcsolódnak össze. Elemi cellája egy felületen középpontos, köbös szerkezet, amelybe egy hasonló szerkezet van beleágyazva a testátló irányában 1/4 rácsállandóval eltolva. Ez a gyémántrács, amelynek a szilícium a kiváló mechanikai tulajdonságait köszönheti. Az elemi cellát és a szilícium legfontosabb kristálysíkjait a 2-1. ábra mutatja. A szilícium rácsálandója, azaz az elemi cellájának (2-1. ábrán látható kocka) élhossza 0,543 nm, ami azt jelenti, hogy az egykristály szilícium rácsában az egyes szilícium atommmagok egymástól kb. 5 Angström távolságban helyezkednek el. Kovalens kötés
<111> Si atom
<110> <100>
2-1. ábra Szilícium kristályrács elemi cellája, és a legfontosabb kristálysíkok
21
A rácsszerkezet a szilícium egyik legfontosabb tulajdonsága, mely meghatározza villamos és mechanikai paramétereit egyaránt. Jó félvezető alapanyagként csakis a kevés hibával rendelkező, egykristályos szilícium jöhet számításba. A szilícium egy fontos tulajdonsága, hogy egyes kristálytani irányokban a gyártástechnológia során másképp viselkedik (például különböző az adalékatamok behatolási mélysége), ezért nem mindegy, hogy milyen orientációjú a szeletünk (azaz a szelet felületét melyik kristálytani sík alkotja). A három leggyakrabban használt orientáció kristálysíkjait a 2-1. ábra mutatja be. Egyes lúgos marószerek pl. lényegesen gyorsabban marják az <100> kristálysíkokat, mint az <111> síkot, amelyet alakzatok marására szokás kihasználni. Bipoláris integrált áramkörökhöz előszeretettel használnak <111>-es orientációjú szeleteket, mivel ezeken a szeleteken könnyebben és gyorsabban növeszthető epitaxiális réteg. CMOS áramkörök gyártásához azonban elterjedtebb az <100> orietációjú szeletek, mert ezeknél az ionimplantálás (2.7.2. fejezet) végezhető el könnyebben.
<100>
<110>
<111>
2-2.ábra A szilícium kristályrács különböző kristálytani irányokból nézve
Ha a szilícium mechanikai tulajdonságait tekintjük, akkor az 1. táblázatból láthatjuk, hogy egy rendkívül kemény és nagy szakítószilárdságú anyagról van szó. Sűrűsége ezzel ellentétben igen alacsony. Összehasonlításképpen láthatjuk, hogy annak ellenére, hogy könnyebb, mint az alumínium, szakítószilárdsága meghaladja a titánét. Ezen tulajdonsága miatt előszeretettel alkalmazzák mikromechanikai rendszerekben alapanyagként. Egyetlen rossz mechanikai tulajdonsága a ridegsége, melynek következtében már igen csekély alakváltozás esetén is törik, amelyet a mikrorendszerek tervezésekor figyelembe kell venni. Ezzel szemben a megengedett tartományon belüli tartós és ismételt igénybevétel esetén sincs szerkezeti, illetve szilárdsági változás, vagyis sem rugalmatlan alakváltozás, sem pedig fáradás nem lép fel. További jó fizikai tulajdonságai közé tartozik a viszonylag magas hővezetése, ami megkönnyíti a szilíciumból készült chipek hűtését.
22
1. táblázat Különféle anyagok mechanikai tulajdonságai
Keménység (Mohs skála)
Young modulus [GPa]
Sűrűség [g/cm3]
Hővezetés [W/(m·K)] @ 300 K
Hőtágulás [µm/(m·K)]
Alumínium
2,7
70
2,7
237
23,6
Réz
3
110-130
8,93
398
16,5
Nikkel
4
200
8,91
90,5
13,3
Vas
4
196
7,87
80,3
11,8
Rozsdamentes acél
5,5–6,0
200
7,9
32,9
17,3
Molibdén
5,5
343
10,22
138
4,8
Titán
6
102,7
4,5
21,9
8,6
Szilícium
7
130
2,33
148
2,5
Volfrám
7,5
410
19,25
178
4,6
Szilícium-nitrid
9
250-325
3,2
30,1
2,9
Szilícium-karbid
9,2
302
3,2
360
4,8
Gyémánt
10
1220
3,5
900 - 2320
1
23
Felvezető-gyártástechnológiai szempontból különösen fontos, hogy a szilícium felületén egyszerűen alakítható ki szilícium-dioxid réteg, amelynek elektromos és mechanikai tulajdonságai kiválóak. A szilícium-dioxid (azaz a kvarcüveg) kiváló szigetelő, jól tapad a szilícium felületére. A felületen tömör védőréteget képez, amely mechanikai behatásoknak és a hidrogén-fluorid kivételével vegyszereknek is jól ellenáll, ezért használható kíváló maszkoló rétegként. Az említett hidrogén-fluorid egy szelektív marószer, csak magát a szilícium-dioxidot marja, a szilíciumot azonban nem. Ezen tulajdonságok tették lehetővé a szilícium alapú planártechnológia gyors fejlődését és elterjedését.
2.3.
Egykristályos szilícium szelet előállítása
A szilícium alapú félvezető gyártástechnológia alapja a kellően tiszta, megfelelő orientáltságú, kristálytani hibáktól lehetőleg mentes egykristályos szilícium szelet. A szilícium szeletek előállításhoz először létre kell hoznunk magát az egykristályos szilícium tömböt a rendelkezésre álló polikristályos alapanyagból. A polikristályos kristályszerkezetű anyag a gyakorlatban leggyakrabban apró méretű egykristály darabkákból (kristallitokból) épül fel. Integrált áramkörök elkészítésére nem alkalmas. IC-k készítésére alkalmas egykristályos szilícium előállítására az iparban két elterjedt eljárást alkalmaznak, a Czochralski féle kristályhúzást, illetve a zónás újrakristályosítást. Mind a két eljárás egy egykristályos szilícium tömböt eredményez, amelyből huzalfűrésszeléssel és a felület polírozással állítják elő a megfelelő felületi orientációjú és szinte atomosan sík felületű szilícium szeleteket. Léteznek olyan eljárások is, ahol rögtön szelet formájában állítják elő a szilíciumot, az ilyen szeleteket azonban jellemzően csak a napelemipar alkalmazza, és nem felelnek meg az integrált áramkörök szigorú gyártástechnológiai követelményeinek. Czochralski egykristály növesztési eljárás Első lépésben polikristályos Si-ot olvasztanak meg egy kvarc tégelyben. (Si olvadáspontja 1414 °C.) Ezt követően az olvadékba egy meghatározott orientációjú indítókristályt helyeznek, majd állandó forgatás közben meghatározott húzási sebességgel (0,5-1,2 mm/perc) mozgatják felfelé. A húzási sebesség az egykristályrúd átmérőjét határozza meg.Az olvadékot már ekkor adalékolják n vagy p-típusú adalékkal, így az elkészült egykristály rúd meghatározott típusú és orientációjú lesz.
24
2-3. ábra Czochralski egykristály növesztési eljárás
Zónás újrakristályosítás Az adalékolt polikristályos rudat ebben az esetben egy lassan mozgó tekerccsel induktív módon olvasztják meg, majd a részek, amelyeken a tekercs túlhaladt újra megszilárdulnak, de ekkor a már szilárd részekhez kristályosodnak hozzá, és követik a szilárd fázisok orientációját, így a teljes rúd egy azonos fázisú, egykristállyá alakítható át. A rúd orientációját it is egy indítókristállyal határozzák meg. Ez a módszer alkalmazható a Czochralski-féle kristályhúzással készült egykristályrúd további tisztítására is, kihasználva az anyagok szegregációját az olvadt és a szilárd fázisok között. Az adalékanyagok homogén módon kerülnek a szilárd fázisba, míg a szennyező anyagok inkább az olvadt fázisban maradnak. Ezáltal a szennyező atomok a rúd végébe kerülnek, amelyet egyszerűen levágnak.
2-4. ábra Zónás újrakristályosítás
25
2.3.1.
A szilícium szelet előállítása
Mint korábban említettük, az alapanyag gyártása során először egykristályos szilícium tömböket készítenek, majd ezeket felfűrészelve állítják elő a megfelelő vastagságú szeleteket. Ahhoz, hogy a fűrészelés utáni szeletekből integrált áramkörök készítésére alkalmas alapanyag legyen, az egyes szeleteknek azonban még számos megmunkálási fázison kell átesniük. Egy tipikus szeletelőállítási technológiai sort mutat be a 2-5. ábra.
2-5. ábra Szilícium szelet előállítása [2]
A kristályhúzás (1) során kapott egykristályhengereket (öntecseket) először feldarabolják rövidebb darabokra (2), majd meghatározzák az alapanyag kristálytani irányait, és ennek megfelelően belecsiszolnak a palástfelületükbe egy vagy kettő sík felületet ("flat"), vagy nagyobb átmérők esetében egy hornyot ("notch"). Ezek a jelölések arra szolgálnak, hogy a kész szeletek IC-gyártásban történő felhasználásakor akár ránézésre is be lehessen azonosítani az egyes kristálysíkokat és az adalékolásuk típusát. Ezt követi a tömbök szeletelése, jellemzően huzalfűrészeléssel (3). A huzalfűrészelésnél egy gyémántrészecskékkel ellátott huzallal vágják fel a szilíciumtömböt, miközben természetesen gondoskodnak a megfelelő hűtésről is. A huzalfűrész előnye, hogy megfelelő vezetőtárcsákkal vagy vezetőhengerekkel, a huzallal sok párhuzamos vágást végezhet egyszerre, ami gyorsítja a vágási folyamatot. A szelet átmérőjétől függően a szeleteket különböző vastagságúra vágják, 26
jelenleg a legvékonyabb szeletvastagságok 100-150 µm között mozognak, ezeket azonban általában csak napelemek előállítására használják (az integrált áramkörök gyártásánál használt szeletméretekhez tartozó vastagságokat lásd lentebb). Ezen vastagságok alatt már nagyon gyakori a szeletek törése a vágás során, ezért jelenleg a 100 µm-es vastagságot tekintik a fűrészelés technológiai határának. A huzalfűrészelés másik hátránya, hogy a drágán előállított egykristályos anyagunknak a fűrészelés során számottevő része elvész. Minél vékonyabbak a szeletek, annál jelentősebb részét teszi ki a vágási szélesség a szeletelendő anyagnak, így még igen vékony huzalok esetén is jelentős veszteségek keletkeznek. Az integrált áramkörök készítésére manapság használt 300 mm átmérőjű szeletek esetében a 0,7-0,8 mm-es szeletvastagságnak köszönhetően ez a fűrészelési veszteség még elfogadható, azonban 150 µm vastag napelemalapanyagok esetében a vágási veszteség elérheti az 50 %-ot is. A tömbök felszeletése után következik a szeletek élének lekerekítése (4), majd az egyes szeletek azonosítóinak gravírozása lézerrel (5). Kisebb átmérőjű (2, 3, 4 inch-es) szeleteken inkább csak egyes sorozatokat jelölnek egyértelműen beazonosíthatóan. A jelenleg használt, 300 mm-es átmérőjű szeletek azonban már önmagukban is jelentős értéket képviselnek, ezen felül pedig rengeteg integrált áramkör alakítható ki egy szeleten, így minőségbiztosítási okokból minden egyes szeletet egyértelmű azonosítóval látnak el. A fűrészeléssel nem lehet teljesen sík, azaz mindenhol egyenletesen vastag szeleteket előállítani. Ráadásul a fűrészeléstől karcolások maradnak vissza a szeletek felületén. Ahhoz azonban, hogy jó integrált elemeket tudjunk kialakítani, a szilícium szelet felületének szinte tökéletesen síknak kell lennie. Amennyiben a szeletek érdessége összemérhető az áramköri elemek legkisebb jellemző méreteivel, akkor az azonos alkatrészek között óriási szórások alakulnak ki, és az áramkörünk gyakorlatilag használhatatlan lesz. Korszerű gyártástechnológiáknál a legkisebb méretek 10 nm-es nagyságrendbe esnek, ezért a szeleteknek szinte atomosan síknak kell lenniük (egy atomnyi távolság kb. 0,5 nm). Ehhez a szeletek többlépcsős polírozási folyamaton mennek keresztül. Az első, pusztán mechanikus megmunkálási lépésben síkba csiszolják a szeleteket (6), ekkor eltűnnek a felületről a fűrészelésből visszamaradt karcolások. A másidik lépésben kémia marással lemarják a síkbacsiszolás által keletkezett, finomabb repedéseket karcolásokat (7), majd ezt követi a végső, együttes mechanikus és kémiai polírizás (CMP – chemical-mechanical polishing), amellyel eltávolítják a legapróbb felületi érdességeket és esetleg visszamaradt szemcséket (8). Ezen utolsó lépés már úgy nevezett tisztatérben történik (3.3. fejezet). Az elkészült szeleteket ezután különböző tisztítási folymatoknak vetik alá (9), ezt követi szintén tisztatéri körülmények között a szeletek minőségellenőrzése (11) elektronikus és optikai mérőműszerekkel (3. fejezet). Ezt követően megfelelő méretű szelettartóba helyezik (12), és légzáróan becsomagolják a szeleteket, amelyek így felhasználásra készen érkeznek az ICgyártóhoz.
27
Szilícium szeletek orientációja A félvezető iparban csak meghatározott orientációkban készítik el az egykristályos Si szeleteket. A lehetséges orientációk közül általában kétfélét használnak: az <100> orientációt alkalmazzák, MOSFET és MEMS (Micro-Electromechanical Systems) eszközök esetén, a <111> orientációt pedig bipoláris eszközök estén részesítik előnyben.
2-6. ábra Különböző orientációjú szeletek
Az elkészült Si rudakon mielőtt szeletelnék, megjelölik a fő kristálytani irányt (primary flat), valamint ahhoz, hogy a későbbiekben az adalékolás típusát is könnyen meg lehessen határozni érintésmentesen, alkalmaznak egy másodlagos bevágást (secondary flat). Ezek egymáshoz viszonyított helyzetét szemlélteti a 2-6. ábra. Szilícium szeletek méretei A kristálynövesztési technológiák fejlődésével az iparnak egyre nagyobb átmérőjű kristálytömböket sikerült előállítania. Az egyre nagyobb átmérőjű szeleteken egyre több chip helyezhető el, így egyre több chip gyártható egyszerre, ami jelentősen csökkenti a gyártásköltségeket. A jelenleg legfejlettebb gyártástechnológiák 300 mm átmérőjű szeleteket alkalmaznak, egyes gyártók régebbi, nagyobb csíkszélességű technológiáiknál azonban még 150, illetve 200 mm-es szeletméretekkel dolgoznak. A következő tervezett szeletméret a 450 mm, amelyet a jelenlegi előrejelzések szerint 2018-ban fognak bevezetni.
28
12” wafer
Átmérő
2"
4"
6"
8"
12"
Vastagság [μm]
275
525
675
725
775
2-7. ábra Különböző méretű szilícium szeletek [3]
Ahhoz hogy a szeletek a technológiai folyamatok alatt ne törjenek el, a szilícium szeletek átmérőinek növekedésével a szeletek vastagságát is növelni kell.
2.4.
Kristályhibák
Az egykristályhúzás során nagymennyiségű oxigén, szén, hidrogén és különböző fém atomok kerülnek a Si tömbbe. A gyártástechnológia későbbi lépéseiben, például különböző reaktív anyagokat (például DRAM kialakításnál SF 6) használó technológiai műveletek során is szennyezők jutnak a szilícium egykristályba. A bejutott különféle szennyezők és adalékatomok a kristályrács eldeformálását és különféle kristályhibák megjelenését okozzák. Az adalék valamint a szennyező atomok alapvetően három féle képpen épülhetnek be és okozhatnak kristályhibákat az egykristályrácsban: 1. Szubsztitúció: A szennyező atom egy szilíicium atom helyére (kristályrácspontba) ül be. 2. Intersticiális: Az adalék- vagy szennyező atom nem a rácspontba ül be. 3. Vakancia: Szennyező atom hatására a szilícium atom hiányzik a rácspontból. A létrejövő kristályhibák lehetnek:
29
●
Egydimenziós hibák Úgy nevezett ponthibák keletkezhetnek például magától a Si atomokból fakadóan, amikor az atom nem rácspontba ül be (intersticiális Si i), vagy egy adott rácspontból hiányzik, mely vakanciát okoz (Si v). Mindezek mellett a Czochralski eljárás során a tégelyből származó O i atomok is képesek intersticiálisan elhelyezkedni a rácsban. Ismeretes még, hogy a grafit szuszceptorból szén atomok a rácsba a Si helyére szubsztitúciósan ülnek be (C s), valamint a fém szennyezők intersticiálisan és szubsztitúciósan is elhelyezkedhetnek (metal, M i,s) a rácsban.
●
Kétdimenziós hibák Tipikus kétdimenziós a diszlokáció. Diszlokáció alakulhat ki, amikor sok intersticiális Si épül be egy vonal mentén például epitaxiális rétegnövesztés esetén. A diszlokációk egy egész atomsor, vagy egy teljes sík eltolódását eredményezhetik.
●
Térbeli hibák A kezdetben intersticiálisan beült oxigén atomok a hőkezelések hatására szubstitúciós szennyezővé válnak, később pedig egy részük hibakomplexeket, vagy precipitátumokat (kiválás) alkotnak. Oxigén donorok esetén az ilyenféle többdimenziós hibák SiO x komplexeket eredményeznek.
Bővebb magyarázat nélkül a 2-8. ábrán számos további egy-, illetve kétdimenziós hiba látható, ahol a kék színű atomok Si atomokat ábrázolnak, míg a kisebb, ugyanakkora és nagyobb méretű fekete színű atomok a méretnek megfelelő tömegszámú atomokat jelentenek.
30
2-8. ábra A Si-egykristályban előforduló hibák
31
2.5.
A szilícium szennyező és adalék atomjai
Amint láttuk az előállított egykristályban ideális esetben csak Si atomok foglalnak helyet a gyémántrácsban. A szilícium szeletek gyártása során azonban az egykristályba más atomok is bekerülnek. Egy részüket szándékosan visszük be, azért, hogy megváltoztassuk például az alapanyag vezetési tulajdonságait. Ezeket adalékoknak nevezzük és tipikusan III. és V. vegyértékű atomok pl. B, P, As, felhasználásával történik. Más atomok (tipikusan C, Fe, O) a kristálynövesztés alatt kerülnek bele rácsba, de mivel jelenlétük nemkívánatos, ezért szennyezőknek hívjuk őket. Mit okoznak a szennyezők? A ponthibák nem annyira veszélyesek a kialakított áramkörökre. Azonban, amint az írtuk a gyártástechnológiai hőkezelések nagyobb méretű hibakomplexeket eredményezhetnek. A hibák egyrészt az adott térrész elektromos paramétereinek megváltozását okozzák. Például a szilíciumban lévő vasatomok mélynívókat hoznak létre a Si tiltott sávjában, és így jelentősen csökkentik a kisebbségi töltéshordozók élettartamát. A p-típusú adalékokkal ugyanis már szobahőmérsékleten is párokat alkotnak. Ezekből a hőkezelések hatására precipitátumok alakulnak ki. Másrészt a magas oxigéntartalom a precipitátumok növekedésével a szelet görbületét is okozhatják. Ez pedig a fotolitográfia során az elemek mérettorzulását okozza. Hogyan védekezhetünk a szennyezőkkel szemben? Ha teljesen egzakt megfogalmazást szeretnénk, akkor azt kéne mondanunk, hogy lehetetlen elérni, hogy egyetlen szennyező atom se kerüljön az egykristályos szilícium szeletünkbe. Mindezek ellenére, azonban elfogadható mértékűre csökkenthetjük a „nemkívánatos” atomok számát. Azt tudjuk, hogy a gyártás során mindenképpen kerülnek be szennyező atomok, vagyis a szeletünkben úgymond, mint veleszületett tulajdonság jelen lesznek. Számunkra ideális lenne, ha abban a rétegben (általában a felső 2-30 µm-ben), ahol az áramköreink elhelyezkednek, mégsem lennének jelen. Ezért egy belső getterezési eljárással (félvezető szelet felületét védőanyagokkal kezelik) a szelet belsejében mesterségesen alakítunk ki hibahelyeket, amelyeket hőkezelésekkel hibakomplexekké alakítunk. A megfelelő hőkezelési ciklusok alkalmazásával elérhető, hogy ezek a nagyobb méretű komplexek a kialakult erőtér következtében magukhoz vonzzák a kisebb hibákat. Ezáltal elérhető, hogy a szelet felső rétege, amelyben az áramkörök elhelyezkednek, hibamentes legyen. Adalékok Az adalékolatlan (intrinsic) Si fajlagos ellenállása szobahőmérsékleten elég nagy 250 kΩ∙cm. A vezetőképességet ugyan javíthatjuk, ha emeljük a hőmérsékletet (ugyanis a termikus generáció 32
következtében növekszik a töltéshordozók száma), de ez nem célravezető megoldás. Adalékokat használhatunk, a periódusos rendszer III. főcsoportjából (B, Al, Ga, In, tipikusan a bórt használjuk). Ezeknek az atomoknak 3 vegyértékeletronja van, így a rácspontba ülve egy elektron hiány, vagy lyuk keletkezik. Az így keletkezett adalékolt szilíciumot „p-típusú” vagy akceptor adalékolt félvezetőnek nevezzük (2-9. a.) ábra). Amennyiben a periódusos rendszer V. főcsoportjából (P, As, Sb, de tipikusan a foszfor) használunk elemeket, amelyeknek 5 vegyértékeletronja van, akkor a rácspontba ülve egy elektron többlet fog keletkezni. Az így keletkezett adalékolt szilíciumot „n-típusú” vagy donor adalékolt félvezetőnek nevezzük (2-9. b.) ábra). Az intrinsic anyagban az elektronok és a lyukak aránya megegyezik ni=pi=1010 atom/cm3. Az adalékolás során ezt az arányt kell elmozdítani úgy, hogy a donor vagy akceptor alapanyagok adalékolása tipikusan kb. 1015 atom/cm 3 legyen. Az adalékolásnak a szilárd oldékonyság szab határt, melynek maximális értéke kb.~1021 atom/cm 3.
a.)
b.) 2-9. ábra „p-típusú” és „n-típusú” szilícium
2.6.
Az egykristályos szilícium szelet kialakítását követő alapvető gyártástechnológiai lépések
Azt követően, hogy kialakítottunk egy n vagy p-típusú Si szeletet, adott mintázatnak vagy topológiának (úgynevezett layout rajzolatnak) megfelelően tranzisztorokat és egyéb félvezető elemeket szeretnénk kialakítani, elhelyezni a szeleten, melyet később megfelelő mintázatban létrehozott fémvezetékekkel kapcsolnánk össze. A tranzisztorok kialakításához azonban a szelet adott pontjaiban, lokálisan meg kell változtatnunk az alapanyag anyagi tulajdonságait: bizonyos régiókat erősebben kell adalékolni, illetve szigetelő vagy vezető rétegeket kell felvinni a szelet tetejére. Ahhoz, hogy lássuk, hogy mennyi különféle régiót kell kialakítani a szilícium szeleten példaként nézzük meg a 2-10. ábrát, melyen egy alap n csatornás, növekményes MOSFET (Metal-Oxide-Semiconductor Field Effect Transistor) látható.
33
2-10. ábra MOSFET felülnézete és keresztmetszete
Azt, hogy csak adott helyeken adalékoljuk a szeletet vagy válasszunk le rá különböző (oxid, fém, stb.) rétegeket különféle maszkolási technikákkal érjük el. Ennek lényege, hogy egy maszkkal vonjuk be a szeletet, mely védi - vagy pont nem fogja védeni - az adott helyen a szeletet a külső behatástól (adalékolás, UV fénnyel történő megvilágítás, marás stb.). Mivel azonban egyféle maszk nem áll ellen az összes megmunkálás lépésnek, továbbá mivel minden réteg másik mintázatot igényel, ezért a gyártás során több, különféle mintájú és anyagú maszkot használunk. Mindegyik maszkkal más és más megmunkálási lépést végzünk el, melyeket az egyes fázisok között kicserélünk. A maszkolás fontossága jól látható a 2-11. ábrán, mely a MOS IC-k gyártásának egyszerűsített lépéseit mutatja be.
34
2-11. ábra MOSFET előállításának egyszerűsített lépései
Amint látható számos gyártástechnológia lépés szükséges, ahhoz, hogy a szilícium szeleten létrehozzunk egy tranzisztort. A méretek csökkenésével számos további lépést is be kellett vezetni, hogy a nagyobb méretben még elhanyagolható, de a nanométeres mérettartományban már számottevő, parazita, illetve másodlagos effektusok ellenére is működőképes tranzisztorokat tudjuk előállítani. Ezek nagyrésze ma még ipari titoknak számít és a gyártók csupán apróbb utalásokat szoktak adni arra vonatkozóan, hogy milyen technológiai újításokat vezettek be [4][5][6]. Az alapvető és gyártástechnológiailag meghatározóbb lépéseket (fotolitográfia, adalékolás: diffúzió és ionimplantáció) azonban érdemes külön részletezni. Fotolitográfia Az alakzat kialakításának egyik módja a nedveskémiai technológiában a fotolitográfia. Ennek során egy fotoreziszt anyagot viszünk fel a szelet felületére megfelelő vastagságban. Ennek a szerves anyagnak az oldhatósága erősen lecsökken, vagy nagymértékben javul UV fénnyel való megvilágítás hatására. Negatív lakkok amelyek megvilágítás hatására oldhatatlanná 35
válnak, míg a pozitív lakkok – éppen ellenkezőleg – a fény hatására oldhatóvá válnak. A megvilágítást egy maszkon keresztül végezzük, amely tartalmazza a kialakítani kívánt struktúra mintázatát. (2-5.ábra)
2-12. ábra A fotolitográfia lépései negatív és pozitív lakk esetén
2.7.
Adalékolás
Alapvetően két féle adalékolási eljárást különböztetünk meg. Egyiknél a magas hőmérsékletre hevítés hatására felgyorsuló, koncentrációgradiens következtében létrejövő, anyagáramlást használjuk ki. Ezalatt azt értjük, hogy a felületre jutatott nagy koncentrációjú (jelen esetben n vagy p-típusú) adalékanyagunk magas hőmérsékleten bediffundál a szilícium szeletebe ezáltal a maszkolás következtében - lokálisan erősen adalékolt régiókat hozva létre. Másik módszer az ionimplantáció, melynek során nagysebességű ionokkal bombázzuk a felületet, így juttatva be az adalékatomokat a szelet belsejébe.
2.7.1.
Diffúzió
A diffúzió olyan anyagáramlás, amely koncentrációkülönbség hatására jön létre. Amennyiben az egyik anyag koncentrációja egy másik anyagban a hely függvényében változik, az adott anyag 36
a nagyobb koncentrációjú helyről az alacsonyabb koncentrációjú hely felé áramlik. Ezt a transzportfolyamatot nevezzük diffúziónak. A félvezető technikában gyakran alkalmazzuk a diffúziós technikát p-n átmenet vagy n+, illetve p+ régiók létrehozására. A diffúzió általános mechanizmusát a Fick-törvények írják le. 𝑗 = −𝐷
𝜕𝑁 𝜕𝑡
𝛿𝑁 𝛿 2𝑁 =𝐷∙ 2 𝛿𝑡 𝛿𝑥
(2 − 1)
(2 − 2)
ahol: j- egységnyi keresztmetszeten egységnyi idő alatt áthaladó atomok száma D – diffúziós állandó N – adalék atomok koncentrációja t – diffúziós idő x- a felülettől mért távolság A félvezető technológiában két alapvető diffúziós eljárást alkalmaznak. Állandó felületi koncentrációjú adalékolás
2-13. ábra Állandó felületi koncentrációjú adalékolás
Ebben az esetben valamilyen diffuzáns forrás segítségével biztosítjuk, hogy a felületi 37
koncentráció állandó legyen. A forrás lehet szilárd, folyadék vagy gáz halmazállapotú. A félvezető gyártás szempontjából kedvező, legjobban szabályozható és a legegyenletesebb eloszlást gáz halmazállapotú adalékkal lehet elérni. Az adalékkoncentráció hely- és időfüggését a Fick egyenletekből lehet számolni. 𝑁(𝑥, 𝑡) = 𝑁0 ∙ 𝑒𝑟𝑓𝑐
𝑥
(2 − 3)
2 ∙ √𝐷 ∙ 𝑡
N0 a felületi adalékkoncentráció, NB a hordozó szilícium koncentrációja. Állandó anyagmennyiség diffúziója
2-14. ábra Állandó anyagmennyiségű adalékolás
Állandó anyagmennyiséget feltételezve a Fick egyenletek megoldásaként az alábbi egyenletet kapjuk: 𝑁(𝑥, 𝑡) =
𝑄 √𝜋 ∙ 𝐷 ∙ 𝑡
∙ exp [− (
𝑥 2 ∙ √𝐷 ∙ 𝑡
2
) ]
(2 − 4)
ahol Q - az egységnyi felületen felhalmozott adalék atomok száma. Ebben az esetben már bevitt adalékatomokat juttatják a kívánt mélységbe. A 2-14. ábrán látható, hogy mivel az adalékatomok mennyisége már nem változik, ezért a felületi adalékkoncentráció csökken. No az induló felületi adalékkoncentráció, N B a hordozó szilícium koncentrációja. A gyakorlatban a p-n átmenetek diffúzióval történő kialakítására a kétlépéses diffúziót alkalmazzuk. Az első lépésben egy állandó felületi koncentrációjú ún. elődiffúziót kell csinálni, amelyet alacsony hőmérsékleten (1000-1100 oC) hajtunk végre. A második lépésben egy magas hőmérsékletű (kb. 1200 oC) diffúzió készül, amikor az elődiffúzió során a Si szeletbe 38
került adalékokat megfelelő mélységbe juttatjuk. Ezt a lépést oxigén gázban végezük, így a felületen fog SiO2 réteg növekedni. Ezt nevezzük behajtásnak. Az adalékanyagoknak eltérő a diffúziós állandójuk a szilíciumban, így a kívánt profil elérése, külön tervezést igényel. Mindezek mellett, figyelni kell a tervezésnél arra is, hogy a korábbi lépések során bevitt adalékok szintén tovább fognak diffundálni. Ez igaz minden hőkezelési lépésre is, így törekedni kell arra, hogy egyre alacsonyabb hőmérsékletű lépéseket alkalmazzunk a technológiai lépések előrehaladtával.
2.7.2.
Ionimplantáció
Az ionimplantáció olyan eljárás, melynek során direkt fizikai behatással módosítjuk az anyagok elemi tulajdonságait. Az eljárás során a bejuttatni kívánt adalékatomokat először egy ionforrásban ionizáljuk, majd egy elektromos téren áthaladva, a felgyorsított ionokkal bombázzuk a szilárd anyagot, hogy őket bejuttassuk a szelet belsejébe. Az eljárás alkalmazása igen széleskörű. A hétköznapi életben használt tárgyakat általában N-, Mo-, Ti-, Co- stb. ionokkal bombázzák azért, hogy a kopásállóságuk, illetve az élettartamuk megnövekedjen. Ilyen eszközök lehetnek pl. szerszámacélok, vagy akár protézisek is, melyek élettartamát ionimplantációval könnyen megduplázhatjuk, de extrém esetben akár százszorosára is megnövelhetjük. A félvezető iparban a szilícium alapanyagban alkalmazott adalékok bejuttatására használhatjuk ezt az eljárást. Az ionok behatolásának mechanizmusa elsősorban az energiájuktól és a folyamatban szereplő valamennyi atom tömegének arányától függ. Mivel az implanterek zömében az ionokat tömegszeparátoron is átvezetik, az adalékatomok nyalábja akár spektroszkópiai tisztaságú is lehet. Az ionok behatolásának mértékét alapvetően a gyorsítófeszültség szabja meg. Ionimplantációval tehát szabályozható mélységi eloszlást lehet elérni. Az energia változtatásával lényegében tetszésszerinti mélységi profilok állíthatók elő, tehát olyanok is, amelyek kizárólag termikus diffuzióval elképzelhetetlenek (például olyan eloszlás, ahol a koncentráció a felülettől befelé növekszik).
2-15. ábra Ionimplenter sematikus felépítése
39
Az ionimplantáció során a részecskék fékeződésekor az átadott energia következtében a rácspontokon lévő Si atomok elmozdulnak, így a rács kristálytani szempontból károsodást szenved. Ezért az implantáció után mindig egy helyreállító hőkezelés szükséges, amely során a rács visszanyeri eredeti szerkezetét és az adalékok is rácsponti helyre kerülnek. A félvezető alkalmazásoknál a dózisok a 109 ion/cm 2 -től 1015 ion/cm 2 -ig terjednek.
2.8.
Ajánlott irodalom
[1] Székely Vladimír, Elektronika I. – Félezető eszközök, Műegyetem Kiadó, 2001 [2] SunEdison Semiconductor, Semiconductor wafer manufacturing, http://www.sunedisonsemi.com/index.php?view=wafer-solutions&l1=25&l2=155 [3] Samsung, Eight Major Steps to Semiconductor Fabrication, Part 1: Creating the Wafer, https://news.samsung.com/global/eight-major-steps-to-semiconductor-fabrication-part-1creating-the-wafer [4] Kelin J. Kuhn, Mark Y. Liu and Harold Kennel, Technology Options for 22nm and Beyond, 2010 International Workshop on Junction Technology (IWJT), Sanghai, China pp. 1-6, 2010 [5] K. Mistry, et al., A 45nm Logic Technology with High-k+Metal Gate Transistors, Strained Silicon, 9 Cu Interconnect Layers, 193nm Dry Patterning, and 100% Pb-free Packaging, IEEE International Electron Devices Meeting, IEDM 2007, Washington, USA, pp. 247-250, 2007 [6] S. Natarajan, et al., A 32nm Logic Technology Featuring 2nd-Generation High-K + Metal-Gate Transistors, Enhanced Channel Strain and 0.171μm 2 SRAM Cell Size in a 291Mb Array, IEEE International Electron Devices Meeting, IEDM 2008, San Francisco, USA, pp. 1-3, 2008 [7] Giber János, Vargáné Josepovits Katalin, Gyulai József, Biró László Péter, Diffúzió és implantáció szilárdtestekben, Műegytemi Kiadó, 1997
40
3. Az integrált áramkörök gyártástechnológiája II. Félvezető gyártástechnológia minősítése és a tisztatér felépítése Szerző: Dr. Földváry-Bándy Enikő, Dr. Juhász László
3.1.
Integrált áramkörök mikroszkópi vizsgálata 3.1.1.
Célkitűzés
A továbbiakban az integrált áramkörök belső felépítésének megismerésével foglalkozunk. Fontos lehet ugyanis az alkalmazás során, hogy a teljes áramkörről legyenek ismereteink, s az IC ezekben ne csak mint egy fekete doboz szerepeljen. Az áramköri számítások során (modellezés) az egyes alkatrészeket rendszerint viszonylag egyszerű rétegszerkezetekkel veszik figyelembe. Ez általában nem okoz hibát az eszközök fontosabb jellemzőinek (pld. statikus karakterisztika) kiszámításakor, de a pontosabb modellezéshez lényeges lehet a felépítés pontosabb ismerete. A belső felépítés, a technológia ismeretében megalapozottabb döntések születhetnek a legmegfelelőbb alkatrészek kiválasztásával kapcsolatban, a szokásostól eltérő alkalmazás pedig szinte minden esetben lényegessé teszi legalább a kimeneti és bemeneti fokozatok bizonyos fokú ismeretét. Ugyanakkor lényeges lehet a belső felépítés megismerése egy hibaanalízis során is. A fentiekben részletezettek mellett a fejezet lehetőséget ad a mikroszerkezetek mikroszkópos vizsgálati eljárásának és minősítésének megismerésére is.
3.1.2.
A méréshez szükséges optikai mikroszkópiai ismeretek
Az egyszerű, kevés és nagyméretű elemet tartalmazó áramkörök esetén lehetőség nyilíik az integrált áramkör optikai mikroszkópos vizsgálatára. Ebben az esetben elkülöníthetőek a diszkrét alakotóelemek, illetve meghatározható a környező elemekhez való elektromos kontaktus csíkok útvonala is. Általában az optikai vizsgálatokat az áramkörvisszafejtő vagy a hibaanalízishez köthető módszereknél alkalmazzák a gyakorlaban. A vizsgálatot megkönnyíti az a tény, hogy a planáris technológia során azonos, illetve eltérő kezelést kapott felületelemek azonos, illetve eltérő színűek (az eltérő oxidvastagság különböző interferencia színeket eredményez).
41
3-1. ábra Bipoláris technológiával készített IC keresztmetszete
A bipoláris technológia esetén az ezüstösen csillogó alumínium réteg alatt megtalálható legkisebb alakzat rendszerint a kontaktus ablak. Ennek belsejéből indulva a kontúrok leszámlálásával (3-1. és 3-2. ábra) sorban el lehet jutni az n+ emitter-diffúzió, a bázisdiffúzió és az n sziget határáig. A bázisdiffúzió alatt esetenként az eltemetett réteg kontúrjai is felismerhetık. Ha a kontaktus ablakból indulva kevesebb számolható össze az elszigetelő p+ területig, akkor a kontaktus ablak nem emitter diffúzióhoz csatlakozik, hanem a bázisdiffúzióhoz, illetve az n szigetbe készített n+ réteghez. Az alábbiakban a bipoláris integrált áramkörök alkatrészkészletéből pár képes példát mutatunk be a laboratóriumban elvégezhető áramkör-visszafejtő gyakorlat megkönnyebbítésére. [1]
a.)
b.)
3-2. ábra Vertikális NPN tranzisztor: a.) felülnézeti kép, b.) keresztmetszeti rajz
42
a.)
b.)
3-3. ábra Laterális PNP tranzisztor: a.) felülnézeti kép, b.) keresztmetszeti rajz
a.)
b.)
3-4. ábra Bázis ellenállás: a.) felülnézeti kép, b.) keresztmetszeti rajz
a.)
b.)
3-5. ábra Megnyomott ellenállás: a.) felülnézeti kép, b.) keresztmetszeti rajz
43
a.)
b.)
3-6. ábra E-B dióda: a.) felülnézeti kép, b.) keresztmetszeti rajz
3.1.3.
Egy bipoláris integrált áramkör alkatrészeinek felismerése
A 3-7. ábra egy bipoláris integrált fényérzékelő áramkör egy kis részének fényképe. A fenti ábrák útmutatást adnak az egyes alkatelemek azonosításához. Az emitter diffúziót fedő SiO2 színe a képen almazöld, a bázisdiffúzióé barna, a zsebek oxidja sötétzöld. Az eltérő színeket a már említett oxidvastagság-különbség okozza.
3-7. ábra Bipoláris fényérzékelő áramkör egy részlete
44
A bal felső sarokban látható egy bázisdiffúzióval készített, meander alakú (nagy értékű) ellenállás. Mellette, a jobb felső sarokban egy nagy felületű kondenzátor egy részletét találjuk. A kettő között megfigyelhető egy bújtatott átvezetés a fémes kereszteződés elkerülése érdekében, melyet kis ellenállású emitter diffúzióval oldották meg. Jól megfigyelhetőek az „n” zsebek kontúrjai, melyekben az alkatelemek elhelyezkednek. Egy zsebben természetesen több alkatrész is elhelyezhető, de akkor ezek alulról, az „n” zseben keresztül rövidre vannak zárva. (Rövidzárat, összeköttetést speciális esetekben tehát a felületen megfigyelhető fémezés nélkül is meg lehet oldani.) Az ábrán lent középen látható egy NPN tranzisztor, tőle balra egy laterális PNP tranzisztor. Az ábra jobb alsó részén egy multiemitteres NPN tranzisztort találunk (4 emitterrel, melyek itt most össze vannak kötve). Megfigyelhetjük, hogy az NPN tranzisztorok esetében, az egyenletesebb árameloszlás érdekében, a bázis kontaktusa két oldalról vezérli az emitteráramot. A teljes bipoláris fényérzékelő áramkör vizsgálata a gyakorlaton történik, a fenti példák segítségével az alkatrészek önállóan felismerhetőek, az áramkör „visszafejthető”. Ha az áramkör felületét vastag passziváló üvegréteg borítja, akkor az interferenciaszínek gyengülhetnek, vagy teljesen eltűnhetnek. Ha pásztázó elektronmikroszkóppal vizsgálunk, nem kapunk színinformációt. Ekkor a különböző felületek a domborzat, valamint a topológia alapján, többé-kevésbé egyszerű szabályok alapján azonosíthatók. Nagybonyolultságú, kisméretű elemeket tartalmazó áramkörök esetén az optikai mikroszkópos vizsgálatot felváltja az elektronmikroszkópos (SEM), transzmissziós elektronmikroszkópos (TEM) vagy atomerőmikroszkópos (AFM) vizsgálat. A felsorolt vizsgálati módszerek alkalmasak a különálló eszközök (pl. tranzisztorok, diódák, kapacitások, ellenállások) azonosításán túl akár komplex struktúrák vagy eszközök minősítésére is. Az eredmények elősegítik a kialakított rétegszerkezet megismerését illetve lehetőség nyílik a félvezető eszközök egyes rétegvastagságainak mérésére is. Az alkalmazható eljárások általában idő- és gépigényesek, ezért a gyakorlatok során ezek alkalmazására nem nyílik lehetőség.
45
3-8. ábra Samsung gyártmányú 32nm-es technológiával készült NMOS és PMOS tranzisztorok SEM felvételei [2]
3-9. ábra 14 nm technológiával készített FinFET SEM felvétele [3]
46
3-10. ábra Beágyazott DRAM SEM felvétele [4]
3.2.
Adalékolt félvezetők minősítése 3.2.1. Adalékolás típusának és a négyzetes ellenállásnak meghatározása
Az alapanyag típusa a gyakran alkalmazott meleg-tűs módszerrel (3-11. ábra), míg az alapanyag vagy diffúzióval kialakított réteg adalékolása négyzetes ellenállás méréssel minősíthető. A meleg-tűs módszer során a két mérőtű egyikét magas hőmérsékletre hevítjük, annak érdekében, hogy a két tű közti hőmérsékletkülönbség ΔT=25-100°C legyen. A meleg tű alatti területben a többségi töltéshordozók nagyobb sebességre tesznek szert, létrejön a hideg tű felé irányuló többségi töltéshordozó áramlás. Ennek előjele a többségi töltéshordozók előjelének függvénye. Az áramirány mérésével vagy a fellépő feszültség (Seebeck feszültség, termoelektromos feszültség) előjelének meghatározásával a szelet vezetési típusa adódik. A mérés során n-típusnál pozitív, p-típusnál negatív feszültséget mérhetünk a meleg tűn.
47
3-11. ábra Rétegek minősítése melegtűs méréssel, az ábra n-típusú félvezetőre vonatkozik
Az adalékolás típusát az elterjedt meleg-tűs módszeren kívül egy a Semilab Zrt. által kifejlesztett műszerrel is meg lehet határozni. A P\N tester az egyszerűsített felületi fotofeszültség (SPV, surface photovoltage) mérési elvén működik. A működés alapja, hogy a ultravékony szigetelővel borított félvezetők felületi tartománya kiürítéses állapotba kerül, vagyis a felületi potenciálgát ellentétes előjelű. Tehát n-típusú félvezető esetén az energiasávok felfelé görbülnek, p-típusú félvezető esetén lefelé. A szaggatott lézerfénnyel való gerjesztés periodikus fotofeszültség ingadozást eredményez, amely kapacitív úton csatolódik egy fázisérzékeny és frekvenciaszelektív erősítőhöz. A mért SPV jel fázisa a potenciálgát előjelén keresztül a szilícium szelet vezetési típusától függ. A mérés alkalmas nem erősen adalékolt félvezetők vizsgálatára, amennyiben a felületüket alagúthatással átjárható szigetelő réteg borítja. Erős adalékolás esetén a felületi potenciálgát nagyon kis értéke nehezíti a mérést. Alagúthatással nem átjárható, vastag oxid a pozitív határfelületi töltései miatt n-típusú szeleten akkumulációt eredményez ami meghamisítja a mérést, csakúgy mint a felület alatt kialakított p-n átmenet. A mérési módszer előnye, hogy érintésmentes és gyors. A műszeren levő piros led a p-típusú alapanyagot jelzi, míg a zöld led az n-típusút. Egyszerűbben fogalmazva: az alagúthatással átjárható oxiddal borított felület környezetében erőteljesen lecsökken a szabad töltéshordozók koncentrációja. Így az n-típusú félvezetők esetében negatív, a p-típusú félvezetők esetén pozitív előjelű potenciálgát jelentkezik. A potenciálgát előjelét fotofeszültség mérésével tudjuk érintésmentesen meghatározni. A szaggatott megvilágítás során töltéshordozók generálódnak és a potenciálgát magassága megváltozik, melynek következtében periodikus fotofeszültség változás jön létre. A toll alakú műszer kapacitív úto érzékeli ezt a változást. A kapacitív érzékelésben az egyik elektróda a teszter háza és a másik elektróda meg egy átlátszó vékony vezetőréteg a toll alsó felületén. Meg kell említeni, hogy vastag oxiddal borított felület vagy erős adalékolású alapanyag esetén a mérés téves eredményt mutathat.
48
3-12. ábra P\N tester - Semilab Zrt. [5]
A félvezető technológiában a különböző adalékolású részek szilárd fázisú diffúzióval alakíthatók ki. Az adalékolás mértéke meghatározható négyzetes ellenállás méréssel. A mérés során négy mérőtűt érintkeztetve a félvezető felülettel a két szélső tűn konstans áramot kell átvezetni. A két középső tűn létrejövő feszültségből meghatározható az adalékolt réteg négyzetes ellenállása (3-13. ábra). A négyzetes ellenállás értéke a korrekció elhanyagoláshoz szükséges geometriai feltételek esetén (rétegvastagság<
𝜋 𝑈 ⋅ 𝑙𝑛2 𝐼
ahol: R□–négyzetes ellenállás, U–mért feszültség, I–két szélső tűn átfolyó áram
3-13. ábra Rétegek minősítése négyzetes ellenállás méréssel [6][7]
49
(3 − 1)
A fajlagos ellenállás megállapításához szükséges a szeletek vastagságának mérése is, melynek meghatározása a legegyszerűbben mérőórával végezhető el. A laboratórium során felhasznált mérőóra végkitérése 1 mm, a mutató leolvasási pontossága 1 µm. Ismervén a szeletek vastagságát, meghatározható a szelet fajlagos ellenállása is: 𝑅□ =
𝜌 → 𝜌 = 𝑅□ ⋅ 𝑡 𝑡
(3 − 2)
ahol: R□–négyzetes ellenállás, ρ–fajlagos ellenállás, t–szelet vastagsága.
3.2.3.A p-n átmenetek helyzetének mérése A diffúziós mélység vagy a diffúzió után létrejött behajtási mélységet legegyszerűbb gömbcsiszolással meghatározni. A szeletbe a 3-14. ábra szerint gömbcsiszolatot készítünk, így a p-n átmenet kis szög alatt fut a felületre, tehát hozzáférhetővé válik. Az átmenetet mikroszkóppal láthatóvá tehetjük átmenetelőhívó használatával. A csiszolatban a p és n rétegek elektrokémiai tulajdonságainak különbözősége miatt az előhívószer ezüst tartalma az n rétegen válik ki. Az így kapott gyűrűs kép méreteit mikroszkópról olvassuk le, mely alapján a diffúziós mélység (xj): 𝑥𝑗 =
𝑎2 − 𝑏2 4𝐷
(3 − 3)
ahol: a - külső kör átmérője, b- belső kör átmérője, D- csiszoló gömb átmérője
3-14. ábra Diffúziós mélység meghatározása gömbcsiszolással [8]
Abban az esetben, ha csekély az átmenet mélysége illetve pontosabb minősítési eljárás vagy a diffundáltatott rétegek adalékprofilja is szükséges, akkor a terjedési ellenállásmérést (SRP, spreading resistance profiling) lehet alkalmazni. Ilyenkor a szilícium szelet felületét meg kell 50
mechanikusan csiszolni egy ferde szögben. A csiszolási szöget az átmenet mélysége határozza meg. A minősítés során a műszer a csiszolási éltől kiindulva adott lépésközönként minden pontban megméri a rétegellenállást a két mérőtű között. A mérőprogram a mért rétegellenállásokat összehasonlítva a kalibrációs minták adataival meghatározza a minta adalékprofilját. A kirajzolt profilról leolvasható a felületi adalékkoncentráció és a diffúziós mélység értéke is.
3-15. ábra Terjedési ellenállásmérés sematikus rajza
3-16. ábra SRP műszer - Semilab Zrt. [9]
51
3.3.
Tisztatéri ismeretek
A félvezető technológiában a tisztaság szerepe kulcsfontosságú. Jó példa ennek szemléltetésére egy porszem, amely néhány µm átmérőjű, míg a mai korszerű VLSI technológiában a legkisebb csíkszélesség (Minimum Feature Size – MFS vagy Critical Dimension – CD) a néhányszor 10 nm-es tartományba esik. Ha egy porszem rákerül az integrált áramköri hordozóra (szeletre), akkor az egy teljes chip tökremeneteléhez vezet. Az iparban alkalmazott tisztatereket – megfelelő szabvány szerint – különböző osztályokba sorolják a tisztaságuknak megfelelően (2. táblázat).
52
2. táblázat Félvezető iparban használt tisztatéri szabványok, tisztatéri osztályok
ISO 14644-1 („új” szabvány) maximális lebegő részecskeszám/m³
Osztály (Class)
≥0,1 µm
≥0,2 µm
ISO 1
101
2
ISO 2
102
ISO 3
FED STD 209E („régi” szabvány)
≥0,3 µm
≥0,5 µm
≥1 µm
≥5 µm
≥0,5 µm/köbláb Osztály (Class)
24
10
4
103
237
102
35
8
1
ISO 4
104
2 370
1 020
352
83
10
ISO 5
105
23 700
10 200
3 520
832
29
100
ISO 6
106
237 000
102 000
35 200
8 320
293
1000
ISO 7
107
2 370 000
1 020 000
352 000
83 200
2 930
10 000
ISO 8
3 520 000
832 000
29 300
100 000
ISO 9
35 200 000 8 320 000
293 000
(szobalevegő)
Az US FED STD 209E (a „régi”) szabványt 2001. november 29-ével visszavonták, de a félvezető ipari gyakorlatban még mindig ez az elterjedt. 1 ft3 (köbláb) ≈ 28,3 l (liter); 1 m3 ≈ 35,2 ft3, így a kiemelt sorok nagyjából megfelelnek egymásnak.
53
A táblázatban látható szabványok közül jelenleg a régi az elterjedtebb, amely alapján pl.: a 100-as tér (Class 100) azt jelenti, hogy 0,5µm-es részecskéből 100 darab lehet egy köbláb (~28,3 liter) levegőben. A normál utcai és szobalevegő nagyjából 10 000 000–1 000 000-s osztályba lenne sorolható. Egy tisztatéri komplexum légtechnikai rendszerének általános elvi felépítése a 3-17. ábrán látható. A különféle részecske átbocsátó képességű légszűrőket különféle sűrűségű cikkcakkos vonalak, a lamináris, ill. kevert áramlású tereket jellegzetes nyilak mutatják be. Lamináris térben a levegő részecskéi (beleértve a fennmaradó porszemeket is) egymással párhuzamosan mozognak, a kevert áramlásúban ilyen megkötés nincs. A porszemek kiszűrése általában három fokozatban történik (elő-, közép- és finomszűrő) a hatékonyság és a gazdaságos üzemeltetés érdekében. A szűrő fokozatok között kapnak helyet a fűtésre és hűtésre szolgáló hőcserélők, szükség esetén a páratartalom beállítására szolgáló berendezések. A tiszta levegő áramlása minden esetben fentről lefelé történik, a külvilág és a különböző tisztaságú térrészek között kis mértékű túlnyomás uralkodik: mindig a tisztább térrész felől nagyobb a nyomás (tipikusan néhány, max. néhányszor 10 Pa a nyomáslépcső).
3-17. ábra Tisztatéri komplexum légtechnikai rendszerének általános elvi felépítése
54
Egy lamináris áramlású tér felépítését mutatja be a 3-18. ábra. A lamináris áramlást a rácsozatosan perforált („lyukacsos”) álmennyezetben kialakított befúvás, és a perforált álpadlóban kialakított elszívás teszi lehetővé. A befúvott levegő utolsó, finomszűrő fokozataként használt HEPA szűrő (High Efficiency Particulate Air, nagy hatásfokú lebegő részecske: min. 99,97% @ 0,3 µm), vagy ULPA szűrő (Ultra-Low Penetration Air, ultraalacsony áthatoló képességű: min. 99,999% @ 0,12 µm) közvetlenül az álmennyezetben, vagy hely hiányában egy (minél rövidebb) megelőző légcsatorna szakaszban helyezkednek el.
3-18. ábra Példa tisztatér felépítésére: lamináris tisztatér
A félvezető technológiában a levegő minőségén kívül kulcsfontosságú szerepe van a felhasznált eszközök, vegyszerek, víz, gázok tisztaságának is. Mivel a legnagyobb szennyező forrás maga az ember, az ipari tisztaszobai környezetben csak speciális, antisztatikus védőruhában lehet dolgozni és be kell tartani a speciális mozgási szabályokat is a légáramlás minimális megzavarása érdekében. A gyakorlat során a hallgatók megismerkednek a BME VIK EET tisztatéri laboratóriumban végzett műveletekkel, a tisztatér belső felépítésével és a kiszolgáló rendszer alapvető elemeivel. A Mikroelektronika tárgy keretei sajnos nem teszik lehetővé, hogy a hallgatók a tisztatéri laboratóriumban (3-19. ábra) demonstrációs vagy önálló mérésben vegyenek részt (erre a választható tárgyaink keretében, önálló laboratóriumi, szakdolgozat és diplomaterv készítési, valamint doktoranduszi témákhoz kapcsolódóan nyílik mód). A gyakorlaton a betekintő ablakok segítségével kaphatnak képet a laboratórium belső 55
felépítéséről és az ott folyó munkáról. Emellett bejárhatják a külső, kiszolgáló rendszerekhez tartozó helyiségeket, ahol azok felépítését és működését ismertetjük.
3-19. ábra BME VIK EET tisztatéri képek gyakorlat közben: bal oldalt fotoreziszt lakk centrifugálás, jobb oldalt Si szeletek betolása a diffúziós csőbe
3.4.
Feladatok:
1. Különböző technológiákkal készült monolitikus integrált áramkörök szemrevételezése mikroszkópon keresztül, az eltérő gyártási technológiákhoz (bipoláris, MOS) kapcsolódó jellegzetes vonások felismerése. 2. Teszt mintákon a szelet típusának, négyzetes ellenállásának és diffúziós mélységének meghatározása. 3. Ismerje meg a BME VIK EET tisztatéri laboratórium felépítését, működését és a kiszolgáló rendszerének alapvető jellegzetességeit!
3.5.
Ajánlott irodalom
[1] W. Maly, Atlas of IC technologies: An Introduction to VLSI Processes, The Benjamin/Cummings Publishing Company, Inc., 1987 [2] Kevin Gibb, Tracing Samsung’s Road to 14nm, EETimes, 2015.05.12. http://www.eetimes.com/author.asp?doc_id=1326397 [3] Kevin Gibb, Samsung catches up with Intel, delivers its 14nm, EETAsia, 2015.04.14 http://m.eetasia.com/ART_8800711554_480200_NT_f67583a1_2.HTM#.VrB5lFIqdI4 [4] Arabinda Das, Intel's eDRAM and the new age of cache memory, 2014.08.25 http://www.eetindia.co.in/ART_8800700545_1800009_TA_7532c78c.HTM [5] Semilab Zrt., PN-100, https://www.semilab.hu/products/pvi/pn-100 [6] D.K. Schroder: Semiconductor material and device characterization, 3rd edition, John Wiley & Sons, 2006 56
[7] Christiana Honsberg, Stuart Bowden, Four Point Probe Resistivity Measurements, http://www.pveducation.org/pvcdrom/characterisation/four-point-probe-resistivitymeasurements [8] R. Elbersen , R.M. Tiggelaar , A. Milbrat , G. Mul ,H. Gardeniers , J. Huskens, Controlled Doping Methods for Radial p/n Junctions in Silicon, Advanced Energy Materials (5): 1-8, 2015 [9] Semilab Zrt., SRP-2100, https://www.semilab.hu/products/rd/srp-2100 [10] Dr. Mojzes Imre szerk., Mikroelektronika és technológia, Műegyetem kiadó, 2005, ISBN 9634208479 (85-116.old.) [11] Mikrorendszerek (IC-k) további képei a hálózaton: http://www.eet.bme.hu/publications/e_books/mikroszkop/mikro.html
57
4. Analóg áramkörtervezés I. - CMOS komplex kapu Szerző: Takács Gábor Az alábbi fejezetben MOS tranzisztorokból felépített komplex logikai kapuk működését és tervezését mutatjuk be. Az első alfejezet a MOS tranzisztorok felépítésével és karakterisztikáival foglalkozik, viszont csak olyan mélységben, amely a laboratóriumi feladat megoldásához feltétlenül szükséges, és nem helyettesíti az előadásokon elhangzottakat. A második alfejezetben az adott logikai függvényt megvalósító CMOS komplex kapu tervezési lépései ismerhetők meg.
4.1.
MOS tranzisztorok felépítése és karakterisztikái
A MOS tranzisztor gate kapcsára adott feszültség nagyságától és irányától függően a félvezetőben létrejöhet kiürülés, akkumuláció és inverzió. A gate-oxid alatti tartományt, ahol az áramvezetés megvalósul nevezzük csatornának. A vezető csatornában mozgó töltéshordozók típusa szerint bármelyik lehet p- vagy n-csatornás. Ma nagy többségben CMOS integrált áramköröket használunk, ahol általában növekményes nMOS és pMOS tranzisztorokat alkalmazunk. A felépítést a 4-1. ábra egy n-csatornás tranzisztoron szemlélteti.
4-1. ábra nMOS tranzisztor vázlatos felépítése és szimbóluma
A kiindulás egy akceptorokkal gyengén adalékolt (π vezetési típusú) szubsztrát. Ebben diffúzióval vagy implantációval két, donorokkal erősen adalékolt (n+ vezetési típusú) zónát hozunk létre. Ezek lesznek a tranzisztor source-a (S), és drain-je (D). Ezek a π-típusú szubsztrát környezettel egy-egy pn átmenetet képeznek, ahol megfelelő előfeszítés mellett kialakul a kiürített réteg. A szubsztrátot, amelyet ebben a vonatkozásban tömbnek (bulk-nak, B) neveznek, a legnegatívabb potenciálra (GND-re vagy VSS-re) kötik, így tehát mind a drain, mind a source átmenet záróirányú előfeszítést kap. Ohmikus kontaktust csak erősen adalékolt félvezetővel lehet létrehozni, ezért a bulk csatlakozás számára p+ zónát állítunk elő. A source és drain között ilyenformán külső beavatkozás nélkül nincs számottevő vezetés. 58
A két elektróda között azonban a leendő vezetési csatorna fölött ott van a vékony oxidréteg és rajta a gate elektróda (G). Ez korábban fém volt, innen a MOS (metal-oxidesemiconductor) elnevezés. Később poliszilícum gate-es technológiára tértek át, ahol a gate anyaga polikristályos szilíciumra cserélték. Ennek a módszernek az volt a legnagyobb előnye, hogy az gate-oxid-ra leválasztott poliszilícium maszkolórétegként szolgált a kövektkező technológiai lépések során, így a maszkillesztésből származó hiba nem befolyásolta a tranzisztor méretét. A módszert önillesztő technológiának nevezik. A gate-elektródaként használt polikristályos szilíciumot a drain és source régiókkal egyszerre adalékolják, így csökkentve annak négyzetes ellenállását. A legújabb, szubmikronos technológián a gyártók ismét visszatértek a fém gate-re, viszont a technológiai lépéssorban a fém gate-t is önillesztő módszerrel készítik el. (Ennek részletes magyarázata azonban túlmutat a jelenlegi tananyagon.) Ha a gate-re a bulk-hoz képest pozitív feszültséget kapcsolunk, akkor a π-típusú félvezetőben először a lyukak koncentrációja csökken, majd elektronok gyűlnek össze és a vezetés típusa átfordul n-típusúra (bekövetkezik az inverzió jelensége) – itt definiálják a VT küszöbfeszültséget. Ezzel a csatorna két végén a source és drain felé megszűnik a pn átmenet és megindulhat az elektromos vezetés. A drain-re pozitív feszültséget adva megindul az elektronok áramlása a source-tól a drain felé. Egészen kis feszültségeknél a rendszer úgy viselkedik, mintha egy ellenállás lenne. UDS növelése azonban ellene dolgozik az inverziót létrehozó potenciálkülönbségnek a gate-oxid két oldalán. Ha UDS és UGS különbsége VT alá kerül, a drain-nél megszűnik az inverzió, megjelenik a kiürített réteg, elzáródik a csatorna. A kiürített rétegben jelen levő nagy térerő azonban átsodorja rajta a töltéshordozókat. Az áram növekedése itt megszűnik, mert UDS ettől kezdve első közelítésben nem befolyásolja a csatorna elektromos állapotát. Beáll a telítés. Az n-csatornás tranzisztor komplementer párja a p-csatornás, amit elvileg az előzőből szisztematikus előjel-fordítással lehet nyerni. Nem szabad azonban elfelejteni, hogy a CMOS integrált áramkörben egy közös szubsztrátra építkezünk. Ha az n-csatornás tranzisztorokat egy π-típusú szubsztráton építjük fel, akkor ugyanitt a p-csatornás tranzisztorok számára előbb egy donorokkal gyengén adalékolt ν-típusú zsebet kell létrehozni. Ezt a felépítést szemlélteti a 4-2. ábra. A p-csatornás tranzisztor bulk-ja a zseb lesz, amihez itt egy n+ zóna közvetítésével hozunk létre ohmikus kontaktust, és ezt többnyire a legpozitívabb potenciálra (VDD-re) kötjük. A π-típusú szubsztrátot (Sub) a legnegatívabb potenciálra kötik, így azt a zsebtől egy lezárt pn átmenet választja el.
59
4-2. ábra pMOS tranzisztor vázlatos felépítése és szimbóluma
A 4-3. ábrán látható egy szubmikronos (<100nm) csíkszélességű technológián készített poliszilícium gate-es tranzisztor keresztmetszeti képe.
4-3. ábra Modern, szubmikronos tranzisztor felépítése
A korábban bemutatott változathoz képest lényegesen bonyolultabb, több technológiai lépéssel készíthető el ez az eszköz. A legfeltűnőbb változás a drain és source tartománynál található, azonos típusú (n-csatornás tranzisztornál n+, p-csatornásnál p+) kiterjesztés, amely egy sekély, kisebb adalékkoncentrációjú, ugrásszerű félvezető-átmenettel rendelkező tartomány. Ennek az a célja, hogy a source és a drain kiürített rétege nem a bulk-ban, hanem 60
ebben a rétegben terjed ki, így növelhető az átszúráshoz tartozó határfeszültség. A HALO tartomány egy, a csatorna adalékolásával egyező típusú, ám annál nagyobb koncentrációjú, ionimplantációval készített zseb, amelyben a kiürített réteg szélessége kisebb, mint a csatornában lenne, így a drain potenciál növekedésével az effektív csatornahossz kevésbé fog csökkenni, ezzel az úgynevezett rövidcsatornás effektust lehet csökkenteni, és a küszöbfeszültség is kevésbé fog függeni a csatornahossztól. A csatorna adalékolásával a gyártás során állítják be a küszöbfeszültséget, valamint a 4-3. ábrán látható módon a felszíntől lejjebb is meg kell adalékolni a bulk-ot, hogy megakadályozzuk a kiürített réteg kiterjedését. A source és drain tartomány szintén erősen adalékoltak, illetve mefelelően mélyek ahhoz, hogy a felületen az úgynevezett salicide (self-aligned silicid, azaz önillesztett fémfélvezető intermetallikus átmenet) réteget lehessen létrehozni annak érdekében, hogy a drain és source kontakt tisztán ohmikus legyen (ne alakuljon ki Schottky-dióda). A tranzisztorok fejlődésének [2] ajánlott iradalomban lehet részletesebb információkat találni. Inverziós nMOS tranzisztor karakterisztikáit mutatja be a 4-4. ábra: ● ● ●
a transzfer karakterisztikát a telítési tartományban, a kimenő karakterisztikát, valamint a küszöb(feszültség) alatti áramokra is kiterjesztett transzfer karakterisztikát logaritmikus léptékben.
4-4. ábra nMOS tranzisztor karakterisztikái
E karakterisztikák a következő egyszerű közelítő összefüggésekkel írhatók le, (amelyek lényegében megfelelnek a ma már elavultnak tekintett SPICE Level-2 modellnek [1]). A transzfer karakterisztika a telítéses tartományban, UGS > VT esetére:
61
𝐼𝐷 = 𝐾 ∙
𝑊 ∙ (𝑈𝐺𝑆 − 𝑉𝑇 )2 𝐿
(4 − 1)
A trióda tartományban az áram függ UDS-től is: 𝐼𝐷 = 𝐾 ∙
𝑊 2 } ∙ {2 ∙ (𝑈𝐺𝑆 − 𝑉𝑇 ) ∙ 𝑈𝐷𝑆 − 𝑈𝐷𝑆 𝐿
(4 − 2)
Itt VT a küszöbfeszültség, W és L a csatorna szélessége és hossza, K pedig egy konstans: 𝐾=𝜇∙
𝐶𝑜𝑥 2
(4 − 3)
ahol µ az elektronok mozgékonysága a csatornában, Cox pedig a vékonyoxid fajlagos kapacitása. Felhívjuk azonban a figyelmet, hogy a K konstans használata meglehetősen rugalmas. A felhasználás körülményeitől függően gyakran a kétszeresét (K=µCox) értjük alatta, más esetekben pedig, amikor a W/L viszony nem változik, azt is beleértjük. A MOS tranzisztorok matematikai kezelése könnyebb és szemléletesebb a hatásos vezérlőfeszültség, röviden a hatásos feszültség segítségével: 𝑈ℎ = 𝑈𝐺𝑆 − 𝑉𝑇
(4 − 4)
amely megmondja, hogy a gate feszültség mennyivel van a küszöbfeszültség fölött. Tulajdonképpen ez a feszültség nyitja, vezérli a tranzisztort. Ezzel a karakterisztika egyenlete egyszerűbbé válik: 𝐼𝐷 = 𝐾 ∙
𝑊 2 ∙ 𝑈ℎ 𝐿
(4 − 5)
A kimenő karakterisztika telítéses részében a csatorna a drain-nél elzáródik. A drain feszültség növelésével a kiürített réteg növekedése az effektív csatornahossz csökkenését eredményezi. Ez a csatornahossz-moduláció, amelynek az a következménye, hogy a drain áram enyhén növekszik a drain-source feszültség növelésével. Minél rövidebb a csatorna, annál jelentősebb a csatorna-moduláció hatása, annál jobban növekszik a drain-áram a drain feszültség emelkedésével (rövidcsatornás effektus). Ezt a telítési tartományban az alábbi formulával vesszük figyelembe: 𝐼𝐷 = 𝐾 ∙
𝑊 2 ∙ 𝑈ℎ ∙ (1 + 𝜆 ∙ 𝑈𝐷𝑆 ) 𝐿
(4 − 6)
Itt a λ konstans reciprok feszültség (1/V) dimenziójú, 1/λ értéke 20-30V körül szokott lenni. Ezzel a karakterisztika olymódon alakul, hogy a telítéses tartomány ferde szakaszait meghosszabbítva azok a feszültségtengelyt az UDS = -1/λ értéknél metszik.
62
Amint a 4-4. ábra harmadik karakterisztikája mutatja, az áram alakulása a VT küszöbfeszültség környezetében nem követi a négyzetes összefüggést, hanem a lezáródás helyett átmegy egy exponenciális karakterisztikába. Ez a küszöb alatti tartomány: 𝐼𝐷 = 𝐼𝑜𝑛 ∙ exp (
𝑈ℎ ) 𝑛 ∙ 𝑈𝑇
(4 − 7)
Itt Ion a küszöbfeszültségnél folyó áram, n pedig egy 1,2 körüli konstans. Az egyszerű négyzetes összefüggéseket a technológia és a modellezés korai fázisában alkották meg. 5-10 µm-es technológia mellett a csatorna rövidülés csak csekély mértékben módosította a karakterisztikát, így a kimenő karakterisztika jó közelítéssel független volt az UDS feszültségtől. A technológia mai állása mellett ez már durva közelítés, ma többnyire a BSIM modelleket használják helyettük. Arra viszont nagyon jók, hogy a tervező segítségükkel az áramkör működését – éppen egyszerűségüknél fogva – jól át tudja tekinteni, és becsléseket tudjon tenni. Segítségükkel könnyen lehet kézzel, papíron közelítő számításokat “felskiccelni”, és az áramkör beállítását nagy vonalakban felvázolni. A tervező láthatja, hogy mely paraméterek változására érzékeny az áramkör, és ennek megfelelően készítheti elő a szimulációt. A többi már a jó minőségű modellekkel (és modellparaméterekkel) felszerelt szimulátor dolga [3].
4.2.
CMOS komplex kapu tervezése
CMOS (Complementary Metal-Oxide Semiconductor) digitális kapcsolástechnikában a kapuáramkörök n-csatornás és p-csatornás MOS tranzisztorokból állnak [3]. Az analóg áramkörökkel szemben a tranzisztorok jó közelítéssel kapcsolóként működnek. Az n-csatornás tranziszor gate kapcsára tápfeszültséget kapcsolva azt mondjuk, hogy a tranzisztor “ki van nyitva” (a drain és source között áram folyhat). A p-csatornás tranzisztor gate kapcsára viszont logikai alacsony jelet kell kényszeríteni ahhoz, hogy az eszköz képes legyen áramvezetésre. Ezt az elvet kihasználva lehetséges logikai kapukat építeni növekményes MOS tranzisztorok felhasználásával. A logikai kapu kimenete alapvetően két feszültségértéket vehet fel állandósult állapotban: vagy a pozitív tápfeszültséget (VDD), vagy a nulla feszültséget (GND). A kapuban lévő alkatrészeknek kell biztosítaniuk az alacsony impedanciás áramutat a tápfeszültség kapcsai és a kimenet között. Tervezéskor biztosítani kell azt, hogy egyszerre csak az egyik áramút álljon elő. Ha mindkét áramút egyszerre lenne jelen, akkor a kapun keresztül rövidzár alakulna ki a tápfeszültség és a föld között, ami végzetes lenne az áramkör számára. (Érdemes megemlíteni, hogy ez az úgynevezett keresztirányú vezetés átkapcsoláskor is létrejöhet, ha a tápfeszültség nagyobb, mint a két tranzisztor küszöbfeszültségének összege.) Azt az n-csatornás tranzisztorokból álló hálózatot, amely a kimenet és a föld között teremt áramutat a logikai függvény 0 értékeinél pull-down network (PDN) hálózatnak nevezzük. Azt a p-csatornás tranzisztorokból álló kapcsolást, amely a logikai függvény 1 értékeinél hoz létre 63
áramutat a tápfeszültség pozitív kapcsa és a kimenet között pull-up network (PUN) hálózatnak nevezzük. Mindkét hálózatnak annyi bemenete van, ahány változója van a logikai függvénynek. A PDN-nek és PUN-nek megfelelő CMOS logikai kapu black-box szintű elvi rajza az 4-5. ábrán látható.
4-5. ábra n-bementű komplex CMOS logikai kapu elvi rajza
A PUN hálózat pontosan annyi p-csatornás MOS tranzisztorból áll, ahány változója van a logikai függvénynek (n darab). A PDN hálózat pedig n-csatornás tranzisztorból tartalmaz annyit, amennyi változó van a logikai függvényben (n darab). Az össz tranzisztorigény tehát a bemeneti logikai változók számának kétszerese (2n) Tekintsük példaként a kétbemetű NAND kaput, amelynek logikai függvénye 𝑌 = ̅̅̅̅̅̅ 𝐴 ∙ 𝐵.
(4 − 8)
Első lépésként tervezzük meg a PDN hálózatot, amely a függvény logikai 0 értékénél kapcsolja a kimenetet a tápfeszültség GND szintjére. A logikai ÉS kapcsolat az n-csatornás tranzisztorok soros kapcsolatának felel meg, így a PDN hálózat elvi kapcsolási rajza az 4-6. ábra szerinti.
64
4-6. ábra CMOS NAND-kapu pull-down network áramköre
A felhúzó-hálózatot (PUN) legegyszerűbben a lehúzó ágból (PDN) kiindulva tervezhetjük meg úgynevezett duális topológai kialakításával. Első lépésként az nMOS tranzisztorokat azok duálisára, tehát p-csatornás tranzisztorokra kell cserélni. A duális topológiában a hurkokból vágatokat, a vágatokból pedig hurkokat kell kialakítani. Ez azt jelenti, hogy amely tranzisztorok egymással korábban soros kapcsolásban álltak, azokat egymással párhuzamosan kell kötni. Ugyanez fordítva is igaz: a párhuzamosan kapcsolt tranzisztorok soros kapcsolást fognak alkotni az új topológiában. Ez a NAND kapu esetén a 4-7. ábrán látható kapcsolást eredményezi.
4-7. ábra CMOS NAND-kapu pull-up network áramköre
A két részáramkörből áll össze a CMOS NAND kapu, amelynek kapcsolási rajza az 4-8. ábrán látható.
65
4-8. ábra CMOS NAND-kapu kapcsolási rajza
4.3.
Ajánlott irodalom
[1] Foty, Daniel P. MOSFET modeling with SPICE: principles and practice. Prentice-Hall, Inc., 1997. [2] Sah, R.L-Y., Evolution of the MOS transistor-from conception to VLSI, in Proceedings of the IEEE , vol.76, no.10, pp.1280-1326, Oct 1988 [3] Baker, R. Jacob. CMOS: circuit design, layout, and simulation. Vol. 1. John Wiley & Sons, 2008.Richard S. Sandige, Michael L. Sandige, Fundamentals of Digital and Computer Design with VHDL, McGraw-Hill Companies, Inc., 2012 [4] Sheu, Bing J., et al. BSIM: Berkeley short-channel IGFET model for MOS transistors. Solid-State Circuits, IEEE Journal of 22.4 (1987): 558-566.
66
5. Analóg áramkörtervezés II. - Ring-oszcillátor Szerző: Takács Gábor
5.1.
A ring-oszcillátor felépítése és működése
Az elektronikában - így az integrált áramköri technikában is - sokszor szükséges valamilyen állandó vagy változó frekvenciájú órajelet előállítani. Korábbi tanulmányok során számos periodikus (színuszos vagy négyszög) jelet előállító kapcsolással találkoztunk (RC, Wien-hidas, Miller, Clapp, Collpits, Hartley, Meissner, Pierce, stb. [1]). Ebben a fejezetben egy, az integrált áramköri technológia előnyeit kihasználó áramkörrel, az úgynevezett ring-oszcillátorral (magyarul gyűrűs rezgéskeltővel) ismerkedünk meg. Az oszcillációhoz két feltételnek kell teljesülnie: az áramkör hurokerősítésének nagyobb, vagy egyenlőnek kell lenni mint egy (amplitúdófeltétel), valamint a visszacsatolásnak pozitívnak kell lennie (fázisfeltétel). A visszacsatolás frekvenciafüggése következtében csak bizonyos frekvencián teljesül az utóbbi kritérium, így az oszcillátor adott frekvencijú jelet képes előállítani. A ring-oszcillátor páratlan számú inverter soros kapcsolásából áll. Az inverter nemlineáris áramköri elem, az erősítése a komparálási feszültség környezetében egynél lényegesen nagyobb. A sorba kapcsolt inverterek összerősítése az egyes inverterek erősítésének szorzata (decibel-ben számolva: összege). Ha az így kapott eredő erősítés nagyobb egynél, akkor az amplitúdófeltétel teljesül. A fázisfeltételhez kielégítéséhez páratlan számú inverterre és a visszacsatoló hálózat véges késleltetésére van szükség. A páratlan számú inverter biztosítja, hogy az utolsó fokozat kimeneti jelszintje és az első fokozat bemeneti jelszintje eltérő legyen. Három fokozat esetén a jelszintek az 5-1. ábrán látható módon alakulnak.
5-1. ábra Három inverterből felépített ring-oszcillátor
Késleltetés nélkül a jelszintek egymásnak ellentmondanak, hiszen a visszacsatoló vezeték két végén más jelszint szerepel. Az egyes fokozatok késleltetése megegyezik a fokozatokat felépítő inverterek késleltetésével, tehát az oszcilláció frekvenciája: 𝑓=
1 2∙𝑛∙𝑇
ahol n a fokozatok (inverterek) száma, T a fokozatok késleltetése.
67
(5 − 1)
A fenti összefüggés alapján az oszcillátor frekvenicáját két paraméter befolyásolja: az inverterek száma és azok késleltetése. Mindkét paraméterrel fordítottan arányos a frekvencia. Az inverterek számának növelésével tervezéskor lehet a kívánt frekvenciát beállítani, viszont gyártás után ez a frekvencia nem változtatható. Az inverterek teljes késleltetése azonban jóval összetetebb, több paramétertől függ. A megértéshez tekintsünk egy CMOS invertert, melynek kimenetét egy kis értékű kapacitás terheli.
5-2. ábra CMOS inverter kapacitív terheléssel a kimenetén
A bemeneti gerjesztés legyen egy egységugrás-jel, amely t=0 időpillanatban vált 0 V és a tápfeszültség között. A kapcsolás előtti időben, amikor a bemeneti jelszint 0 V volt, akkor az inverter kimeneti feszültsége megegyezik a tápfeszültséggel (a felső tranzisztor vezet, a kimeneti kapacitás fel van töltve tápfeszültségre). Jelváltáskor a felső tranzisztor gate-bulk kapacitásából a töltés a bemenetre kapcsolt generátor irányába távozik, míg az alsó ncsatornás tranzisztor gate kapacitása el kezd feltöltődni. Másként fogalmazva: a p-csatornás tranzisztor inverziós csatornája megszűnik, míg az alsó tranzisztor inverziós csatornája kialakul, amely hatására a drain és source kapcsok között áram kezd folyni az n-csatornás tranzisztorokban, mialatt a pMOS tranzisztorok kapcsai között szakadás alakul ki. Ez az áram fogja a kimeneten lévő kapacitást (és a MOS tranzisztor parazitakapacitásait) “kisütni”. Amíg a kimeneti feszültség magasabb, mint a hatásos feszültség, addig a tranzisztor áramgenerátorként viselkedik (a kapacitáson a feszültség az idővel lineárisan csökken), viszont ahogy kisebb lesz, mint a hatásos feszültség (Uh), akkor a tranzisztor trióda tartományba kerül, a feszültség-idő karakterisztika exponenciálisan lecsengő lesz. Azt az időt, ami alatt a kimenet feszültség a tápfeszültség 0 értékét 10%-ra megközelíti nevezzük késleltetésnek. A késleltetés nagysága függ: az alkalmazott tranzisztorok gate kapacitásától, a kimenetet terhelő kapacitástól, és a tranzisztorok kisütő/töltő áramától.
68
5.2.
A ring-oszcillátor frekvenciájának hőmérsékletfüggése
A ring oszcillátort alkotó n-csatornás és p-csatornás tranzisztorok árama hőmérsékletfüggő. Emlékeztetőül: a MOS tranzisztor drain árama szaturációs tartományban és trióda tartományban: 𝐼𝐷 =
𝐾 𝑊 ∙ ∙ (𝑈𝐺𝑆 − 𝑉𝑡ℎ )2 2 𝐿
(5 − 2)
és 𝐼𝐷 = 𝐾 ∙
𝑊 2 ] ∙ [(𝑈𝐺𝑆 − 𝑉𝑡ℎ ) ∙ 𝑈𝐷𝑆 − 𝑈𝐷𝑆 𝐿
(5 − 3)
Hőmérsékletfüggése két paraméterből származik [1]: 1. A küszöbfeszültség hőmérsékletfüggése. A MOS tranzisztor küszöbfeszültségét az alábbi összefüggés szerint definiáljuk: 𝛾 (5 − 4) 𝑉𝑡ℎ = 𝑉𝐹𝐵 + 2 ∙ Φ𝐹 + √Φ𝐹 ahol VFB a gate-szubsztrát kontaktpotencállal korrigált flat-band feszültség, ΦF pedig a Fermi-szint. Ez utóbbi a Φ𝐹 =
𝑘∙𝑇 𝑞
∙ ln
𝑁𝐴 𝑛𝑖
összefüggésből számítható, ahol az abszolút
hőmérséklet a nevezőben szereplő paraméter. Ez azt jelenti, hogy a Fermi-potenciál a hőmérséklettel fordítottan arányos, így a küszöbfeszőltség hőmérsékletfüggése: Δ𝑉𝑡ℎ 𝑚𝑉 (5 − 5) = −1 … 2 Δ𝑇 𝐾 2. Az inverziós csatornában lévő töltéshordozók mozgékonyságának hőmérsékletfüggése. 1 𝑑𝑢 1 (5 − 6) ∙ = −0,003 … − 0,006 𝜇 𝑑𝑇 𝐾 A töltéshordozók adott elektromos tér hatására történő mozgását (drift áram) a töltéshordozó-mozgékonyság (𝜇, 𝑐𝑚2 /𝑉𝑠) adja meg. Kis és közepes nagyságú elektromos térben a driftsebesség és az elektromos térerősség között egyenes arányosság van, az arányossági tényező a mozgékonyság (𝜇 = 𝑣𝑑 ⁄𝐸 ). MOS tranzisztorok esetén az inverziós csatornában lévő töltések mozgékonysága négy tényezőből tevődik össze: a fonon szóródásból, a felületi egyenetlenségből származó szóródásból, a bulk töltéséből származó Coulomb szóródásból és a félvezető - oxid határréteg töltéséből származó Coulomb szóródásból. A négy felsorolt paraméter mindegyike függ a hőmérséklettől. A tranziszorok BSIM (Berkeley Short-Channel IGFET Model [2]) modelljében ezen hatások kombinációból számolódik az effektív mozgékonyság az úgynevezett Matthiessen-szabály szerint [3]. A hőmérséklet növekedésével a kristályrács rezgése nő, ezzel együtt annak a valószínűsége, hogy a töltéshordozó szóródik a kristályon nagyobb lesz. Ez azt jelenti, hogy
69
a töltéshordozó-mozgékonység a hőmérséklet növekedésével csökken az alábbi arányoság szerint (5 − 7) 𝜇~𝑇 −3⁄2 Extrém alacsony hőmérsékleten (30 Kelvin alatt) a töltéshordozók mozgékonysága annak ellenére csökken, hogy a kristályrácson való ütközés valószínűsége a kisebb rezgés miatt alacsony. Az effektív mozgékonyság csökkenése adalékatomból származó töltéshordozók “befagyása” miatt következik be. Az általunk vizsgált hőmérsékleti tartományban (300 Kelvin környéke) a fonon-szóródás hatása a domináns. Ez azt fogja eredményezni, hogy a tranzisztor árama a hőmérséklet növekedésével csökken, amely hatására a tranzisztorból készített kapcsolás sebessége szintén csökken. A fent említett két hatás egymással ellentétes. Az, hogy közülük melyik domináns erősen függ a felhasznált technológiától, de általánosságban elmondható, hogy a töltéshordozómozgékonyságának csökkenése van nagyobb hatással a modern áramkörök sebességére.
5.3.
Ajánlott irodalom
[1] Rudolf F Graf, Oscillator circuits. Elsevier, 1996. [2] Simon M. Sze, and Kwok K. Ng. Physics of semiconductor devices. John Wiley & Sons, 2006. [3] Sheu, Bing J., et al. BSIM: Berkeley short-channel IGFET model for MOS transistors. Solid-State Circuits, IEEE Journal of 22.4 (1987): 558-566. [4] Wolpert, David, and Paul Ampadu. Managing temperature effects in nanoscale adaptive systems. Springer Science & Business Media, 2011.
70
6. Digitális rendszertervezés I. - RTL modellezés és szimuláció Szerző: Horváth Péter Az RTL modellezés és szimuláció c. laboratóriumi gyakorlat során egyszerű logikai és szinkron szekvenciális hálózatok RTL modelljeit készítjük el VHDL nyelven, majd elvégezzük azok funkcionális verifikációját HDL-alapú lineáris testbench segítségével. E rövid elméleti összefoglalónak nem célja a VHDL nyelv részletes ismertetése, ezért csak a legalapvetőbb nyelvi szerkezetek bemutatására kerül sor, amelyek megfelelő kombinálásával azonban már egészen összetett funkciót megvalósító áramkörök is modellezhetők 4. A legfontosabb VHDL nyelvi konstrukciókon túlmenően az elméleti összefoglaló néhány egyszerű példa segítségével betekintést nyújt a HDL-alapú lineáris tesztkörnyezetek készítésébe is. A digitális integrált áramkörök tervezése ma már - a nagyon egyszerű részáramköröktől eltekintve - szinte mindig valamilyen hardverleíró nyelvre (Hardware Description Language, HDL) épülő módszerrel történik. A HDL-ek (VHDL, Verilog, SystemC, SystemVerilog stb.) többféle elvonatkoztatás (absztrakció) modellezésére képesek; segítségükkel készíthetők időzítési információktól mentes viselkedési leírások, automatizált szintézisre optimalizált regiszter-transzfer szintű (Register-Transfer Level, RTL) és akár kapuszintű modellek is egyazon nyelvi eszköztár felhasználásával. A modern VLSI áramkörök fejlesztése során a kézi HDL modellezésnek az RTL elvonatkoztatási szinten van a legnagyobb jelentősége. Az RTL tervezőnek a specifikáció általában valamilyen magas szintű programozási nyelven megfogalmazott algoritmus formájában (futtatható specifikáció, executable specification) áll rendelkezésére. Az ő feladata az algoritmus egyes fázisainak végrehajtásához szükséges műveletvégző erőforrások (tároló elemek, pl. regiszterek, regisztertömbök, valamint aritmetikai/logikai elemek), valamint azok összeköttetéseinek meghatározása, figyelembe véve az áramkörrel szemben támasztott, erőforrásigényre, számítási teljesítményre és fogyasztásra vonatkozó követelményeket. Gondoskodnia kell továbbá az összekapcsolt erőforrások megfelelően időzített vezérlő jeleinek előállításáról. Ezt a feladatot általában állapotgép-alapú vezérlő logikák végzik. Az RTL tervezés fontos aspektusa az egyes erőforrások működésének szinkronizációjához elengedhetetlen fázisjelséma, amely legegyszerűbb esetben egyetlen órajel 5. Általános
4
A VHDL nyelv teljeskörű bemutatását a [6] forrás tartalmazza. Egyes források úgy hivatkoznak az RTL elvonatkoztatású tervezésre, mint az a tervezési lépés, amelynek feladata annak meghatározása, hogy a rendszerben mi történjen az órajel két felfutó éle között. Mivel a fázisjelséma egy funkcionális egységen (makrocellán) belül is több, eltérő fázisú és frekvenciájú órajelet tartalmazhat, a pontosabb megfogalmazás inkább úgy hangzana, hogy “...mi történjen a fázisjelséma két aktív éle között.” 5
71
esetben a VLSI áramkörök egyes részáramkörei (makrocellái) más-más frekvenciájú órajeleket igényelnek, amelyek fázisviszonya sem feltétlenül kötött. Az ilyen, egyedi fázisjelsémát alkalmazó makrocellák ún. aszinkron órajeltartományokat (clock domain) alkotnak, amelyek között a megbízható adatcserét megvalósító áramköri részletek megtervezése (Clock Domain Crossing, CDC) ugyancsak az RTL tervező feladata.
6.1.
RTL modellezés VHDL nyelven
E laboratórium témája az RTL modellezés és RTL szimuláció. Az alkalmazott HDL esetünkben a VHDL (Very High Speed Integrated Circuit Hardware Description Language) lesz, amelynek RTL modellezésben használatos eszközeit ezen elméleti összefoglaló lépésenként, az egyszerű logikai kapukat leíró nyelvi szerkezetektől kezdve mutatja be. ●
Az első példacsoportban bemutatjuk az egyszerű logikai kapuk VHDL modellezését. A példák szemléltetik a VHDL tervezési egységek szerkezetét (egyed deklaráció és architektúra), a standard logikai vektor típus, valamint a konkurens értékadás használatát. ● A második példacsoport összeadó áramkörök modellezésének lehetőségeit mutatja be, felhasználva az első példacsoport logikai kapuit. Az itt tárgyalt VHDL nyelvi elemek a komponensbültetés (példányosítás), értékhordozó-példányosítás (jelek), az aritmetikai könyvtárak, a többszörös implementáció és a típuskonverziók. ● A harmadik példacsoport témája a szinkron szekvenciális hálózatok modellezése. Az alkalmazott VHDL nyelvi eszközök a folyamat (process), az érzékenységi lista, a feltételes utasítás, a generikus interfész és a statikus kiértékelésű ciklus. Itt vezetjük be a delta-delay fogalmát is. ● A negyedik példacsoport egy Shift&Add elvű szorzó egység RTL modelljének egy lehetséges VHDL megvalósítását mutatja be. E példaáramkör célja az állapotgéppel megvalósított adatfeldolgozó rendszerek bevezetése. Az RTL elvonatkoztatás fent bemutatott tulajdonságai alapján az első két példacsoport modelljei természetesen nem tekinthetők RTL szintűnek, a szükséges nyelvi szerkezeteket azonban jól szemléltetik.
6.1.1.
Első példacsoport - Logikai kapuk
A VHDL tervezési egységek két fő alegységből, az egyed-deklarációból (entity) és a funkcionális leírásból, más néven architektúrából (architecture) állnak. Az egyed-deklaráció tartalmazza a tervezési egység interfészét, amely azt az információt foglalja magában, amelyre a modul felhasználójának szüksége van a modul példányosításakor: ● ●
portlista: az egyed ki- és bemeneti kapcsai, azok típusa és mérete generikus paraméterek listája: az egyed beültetésekor (példányosításakor) megadható paraméterek, amelyek az egyed alapvető funkciójára nincsenek hatással, de
72
a kód újrafelhasználhatóságát jelentősen javítják (pl. egy regiszter bitjeinek száma, egy logikai kapu késleltetése stb.). Az egyed funkcionális leírása (implementációja) a generikus paramétereket és a portlista elemeit felhasználva leírja az egyed működését. A 6-1. ábra egy AND logikai kapu példáján mutatja be a VHDL tervezési egységek szerkezetét.
6-1. ábra A VHDL tervezési egység szerkezeti elemei
Az AND kapu két bemeneti porttal rendelkezik (a és b), amelyek típusa std_logic. A kapu egyetlen kimenete (y) ugyancsak std_logic típusú. Az std_logic típus szabványos ugyan, de nem a VHDL beépített típusa. Lehetséges értékei 6, valamint az ilyen típusú értékhordozókon (jeleken, változókon) végzett műveletek (pl. logikai és aritmetikai műveletek) az ieee könyvtár csomagjaiban vannak definiálva. Ha csak logikai műveletekre és egyenlőségvizsgálatra van szükségünk, akkor elegendő az std_logic_1164 csomagot használni, de aritmetikai műveletek esetén már egyéb csomagokra is szükség van (lásd harmadik példacsoport). A 6-2. ábrán az OR, az XOR és a NAND kapuk VHDL modellje látható. Az std_logic_1164 csomag természetesen több logikai műveletet is definiál (not, xnor stb.). Az ábrán látható három alapkapu-típusra a következő példákban szükségünk lesz; segítségükkel összetettebb funkciót megvalósító áramköröket fogunk modellezni.
A szokásos logikai alacsony és magas szinten kívül az std_logic további 7 értéket képes ábrázolni, amelyek a különböző meghajtóképességű áramkör-kimeneteket hivatottak modellezni. Pl. egy arány típusú logikai kapu (pl. egy TTL kapu) kimenete ún. erős alacsony (strong low) és gyenge magas (weak high) logikai értékeket tud előállítani. A kifejezések arra utalnak, hogy egy ilyen áramkör kimenetét terhelve a logikai alacsony szint a terhelés értékétől független, a magas szint viszont nagy terhelőáram esetén “leromlik”, lecsökken. 6
73
6-2. ábra OR, XOR és NAND logikai kapuk VHDL modellje
Az XOR kapu modelljében látható, miként írható le egy logikai kapu késleltetése. Fontos megjegyezni, hogy a késleltetés effajta leírása az ún. nem szintetizálható nyelvi elemek közé tartozik; az automatizált RTL szintézis eszköz az ilyen és ehhez hasonló, explicit időzítési információt teljesen figyelmen kívül hagyja. Az áramkör késleltetése a szintézis során a megvalósítás alapjául szolgáló technológiától függően alakul ki. Az explicit késleltetés leírásának lehetőségét az RTL modellezés során gyakorlatilag nem használjuk ki, ugyanakkor a tervezés alatt álló áramkör modelljének funkcionális verifikációja során jelentős szerepük van az ilyen jellegű utasításoknak (lásd 6.2 pont).
6.1.2.
Második példacsoport - Összeadó áramkörök
Az első példacsoport logikai kapuit felhasználva összetettebb áramkörök állíthatók össze, kihasználva a VHDL tervezési egységek moduláris felépítését és a komponensbeültetés (példányosítás) lehetőségét. A 6-3. ábra egy 1-bites fél-összeadó kapcsolási sémáját és VHDL modelljét mutatja be.
74
6-3. ábra Fél-összeadó kapuszintű VHDL modellje és kapcsolási sémája
A VHDL többféle módon képes leírni a hierarchikus felépítésű terveket. A 6-3. ábrán látható megoldás az ún. közvetlen beültetés, amely során a beépítendő komponensek nevét (xor_gate, and_gate), implementációjuk nevét (x1, a1), az aktuális tervezési egységen belüli példánynevet (L_XOR, L_AND), valamint azt a könyvtárnevet kell megadni, amelyben a beültetendő komponens megtalálható. Esetünkben ez az alapértelmezett work könyvtár. Minden általunk készített VHDL komponens automatikusan ennek a könyvtárnak a része lesz. A 6-3. ábra egy fontos tanulsága a következő: a VHDL modell architecture részében az egyes utasítások sorrendje nem kötött. A két logikai kapu sorrendjének felcserélésével ugyanazt a modellt kapjuk. Ez az állítás nem csak akkor igaz, ha az utasítások komponensek beültetését írják le. A VHDL modell architecture mezője egy ún. konkurens utasításblokkot képez, ami azt jelenti, hogy az itt felsorolt utasítások párhuzamosan működő áramköri részleteket írnak le. Az utasítások sorrendje nem befolyásolja a funkcionalitást. FONTOS: a konkurens utasításblokkon kívül a VHDL ún. sorrendi (szekvenciális) utasításblokkokat is definiál (ilyen például a harmadik példacsoportban bemutatott process), amelyeken belül az utasítások sorrendjének fontos szerepe van.
75
Hasonló módon készíthető el a teljes összeadó VHDL modellje is. A terjedelmi korlátokra való tekintettel ennek az áramkörnek már csak a kapcsolási sémáját és VHDL modelljének egyes részleteit mutatjuk be7 (6-4. ábra).
6-4. ábra Teljes összeadó kapuszintű VHDL modelljének részlete és kapcsolási sémája
A következő példa a tervezési hierarchia egy további szintjét mutatja be. A 6-5. ábrán egy 4bites, ripple-carry típusú összeadó áramkör VHDL modellje látható, amelyben felhasználtuk az előző példa teljes összeadóját.
7
A teljes kód megtalálható a kiadott forrásfájlokban.
76
6-5. ábra 4-bites ripple-carry összeadó VHDL modelljének részlete és kapcsolási sémája (FA: Full-Adder)
A fenti példákból látható, hogy a kapuszintű modellezéssel már egy viszonylag egyszerű funkció leírásához is rengeteg kódsorra van szükség, ráadásul a modellben nagyon sok a hibalehetőség, a hibák felderítése pedig nehézkes. A fejlesztés gyorsításához magasabb elvonatkoztatású modellekre van szükségünk. A HDL-eket ezért általában nem kapuszintű, hanem RTL szintű modellezésre használják. Egy RTL modellben az összeadás funkció egy előre elkészített és általában szabványosított könyvtár valamely csomagjában megtalálható, a kívánt típusra túlterhelt operátorként jelenik meg. Ezt szemlélteti a 6-6. ábrán látható példa, amely a 4-bites összeadót az std_logic típusra definiálja. Egy egyed-deklarációhoz (interfészhez) több implementáció (architecture) is tartozhat. A példában az látható, hogy a szabványos ieee könyvtár numeric_std csomagjának felhasználásával az összeadó áramkör modellezéséhez csupán egyetlen utasításra van szükség, amelyben felhasználjuk az std_logic_vector (az std_logic típus több-bites változata) típusra túlterhelt + operátort.
77
6-6. ábra 4-bites összeadó RTL modellje
A 6-6. ábrán látható példában tetten érhető a VHDL nyelv erősen típusos jellege. Az aritmetikai műveletek a numeric_std csomagban csak bizonyos, jól meghatározott típusú operandusokra vannak értelmezve. Ennek következtében az std_logic_vector típusú operandusokat először az ugyancsak a numeric_std csomagban definiált unsigned típusra kell konvertálni, majd az unsigned típusú eredményt vissza kell alakítani std_logic_vector típusra ahhoz, hogy az érték hozzárendelhető legyen az std_logic_vector típusú kimeneti porthoz. Az aritmetikai csomagok, mint amilyen a numeric_std, funkcionálisan teljesek, tehát tartalmazzák mindazokat a konverziós függvényeket, amelyek lehetővé teszik a csomag önálló használatát.
6.1.3.
Harmadik példacsoport - Szinkron számlálók
A harmadik példacsoport bemutatja a szinkron hálózatok VHDL modellezésének módját két egyszerű számláló áramkör példáján keresztül. A szinkron hálózatok modellezésének elsődleges eszköze a VHDL nyelvben az ún. folyamat (process), amely egy érzékenységi listából8, egy deklarációs részből és egy sorrendi jellegű utasítástörzsből áll: ● ●
●
8
érzékenységi lista: Jelek (signal) listája. A listán szereplő jelek bármelyikének megváltozásakor a folyamat törzsének utasításai sorban lefutnak. deklarációs rész: A folyamat törzsén belül, és csak ott használt erőforrások, pl. változók, függvények, eljárások stb. deklarációit tartalmazza. Példáinkban nem lesz szükségünk olyan erőforrásokra, amelyek csak a folyamaton belülről hozzáférhetők. utasítástörzs: A folyamat - mivel a VHDL architektúrának, tehát egy konkurens utasításblokknak a részét képezi - egy önálló áramköri részletként fogható fel, amelynek
Az érzékenységi lista nélküli folyamatot a 6.2 pontban mutatjuk be.
78
funkcióját az utasítástörzs írja le. Az utasítástörzs sorrendi blokkot képez, a benne foglalt utasítások egymás után hajtódnak végre. Bár a folyamat törzsének utasításai sorban, de még egyazon szimulációs cikluson belül hajtódnak végre. Ennek az a következménye, hogy az n. utasítás eredményét az n+1. utasítás “még nem látja”9. Tegyük fel, hogy két, egymást követő utasítás mindegyike egy egyszerű értékadás. Ha az n+1. értékadás az n. értékadás eredményét olvassa, akkor mindig az előző szimulációs ciklusban - tulajdonképpen a folyamat előző lefutásakor - érvényes értéket fogja látni. Ennek az a magyarázata, hogy a szimulációs cikluson belül az értékadások végrehajtása két lépésben, egy jobbérték-kiértékelési és egy balérték-frissítési lépésben hajtódik végre. A balértékek frissítésére csak akkor kerül sor, ha már minden jobbérték kiértékelődött. Egy jobbérték kiértékelése és a hozzá tartozó balérték frissítése között tehát több esemény is lezajlik. Ezt a jelenséget delta-késleltetésnek (delta-delay) nevezzük. FONTOS: Az elnevezés félrevezető lehet: a delta-késleltetésnek nincs semmiféle “idő jellegű” fizikai tartalma, a kétlépéses értékadás-kiértékelés egyazon szimulációs időpillanatban megy végbe, a VHDL szimulátorokban az eseményeknek ez a fajta sorrendisége nem, csak kumulált eredményük figyelhető meg. A 6-7. ábra egy általános célú fel-le számlálót mutat be, amelyben a funkcionalitás megvalósításának alapja a VHDL folyamat (process) utasítása.
9
A kijelentés csak a signal típusú értékhordozókra igaz. A VHDL másik értékhordozó-típusa, a változó (variable) esetén az érték “azonnal látható”. Példáinkban nem használunk változó típusú értékhordozókat.
79
6-7. ábra Egy általános célú fel-le számláló áramkör RTL szintű VHDL modellje
A 6-7. ábra VHDL modellje két részáramkört ír le, amelyek mindegyike egy-egy címkével (L_COUNTER, L_OUTPUT) van ellátva10. Az első összetevő magát a számláló értékét állítja elő a különböző vezérlő bemenetek alapján, a második pedig csupán egy vezetéket modellez, amely a belső számláló regiszter értékét a kimeneti porttal kapcsolja össze. A számlálót leíró folyamat az órajelre (clk) és a reset bemenetre (reset_n) érzékeny. E két jel bármelyikének megváltozásakor a folyamat törzsében foglalt utasítássorozat lefut. Reset esetén nincs más
10
A konkurens utasítások különálló áramköri részleteket modelleznek, ezért mindig érdemes őket elnevezni egy-egy címkével, amelyeket a szimulációs és szintézis szoftverek is az adott kódrészlet/részáramkör azonosítására használnak. Hiányukban ezek a programok csak a VHDL kódsor száma alapján tudják az adott utasítást azonosítani, ami nagyon megnehezíti a hibakeresést.
80
dolgunk, mint nullázni a számlálót. Az órajel tetszőleges megváltozásakor a folyamat lefut, ezért annak érdekében, hogy az áramkör csak a felfutó élek esetén reagáljon a külvilág változásaira, az órajelbemenet változásait tovább kell szűrni. Erre szolgál a rising_edge() függvény. A reset bemenetnél is megfigyelhető egy hasonló szűrés. A kétféle szűrés között annyi a különbség, hogy míg a reset esetén bármely változás, ami logikai alacsony szinten ér véget, érvényes átmenetnek bizonyul (pl. a határozatlan értékről logikai alacsony szintre lépés), míg a rising_edge() függvény csak azokat a változásokat tekinti érvényes átmenetnek, amelyek erős logikai alacsony szinten (strong low) indulnak és logikai magas szinten (strong high) érnek véget. Ez a finom különbségtétel a flip-flopok élérzékeny órajelbemenetét hivatott modellezni. A példacsoport második tagja (6-8. ábra) egy generikus gyűrűs számlálót mutat be.
6-8. ábra Egy generikus gyűrűs számláló áramkör RTL szintű VHDL modellje
A 6-8. ábra VHDL modellje a 6-7. ábrán láthatóhoz hasonló. Különbség csak abban van, hogy a számláló “mit csinál két órajel-felfutóél között”. Az egyszerű fel/le számláló esetén nem okoz gondot annak értelmezése, hogy mi történik az áramkörben két felfutóél között, mert a vezérlő 81
bemenetektől függetlenül mindig csak egy értékadás valósul meg. A gyűrűs számláló esetében azonban, ha a párhuzamos betöltést jelző vezérlő bemenet inaktív, akkor egy egész sor műveletnek kell végrehajtódnia, hiszen a belső számláló regiszter minden flip-flop-jának értékét frissíteni kell. Az egyes bitek értékének frissítését megfogalmazhatnánk a bitszámnak megfelelő számú értékadással. Nem tudjuk azonban, hogy pontosan hány bitről is van szó, hiszen az csak a példányosítás pillanatában derül ki. Ilyen esetekben alkalmazható a VHDL ciklus utasítása, amely - a fentinek megfelelő környezetben - úgy értelmezendő, hogy az órajel felfutó élénél a ciklustörzs n-szeri lefutása megtörténik egyazon szimulációs cikluson belül. Ebben az esetben a ciklus tulajdonképpen nem több, mint egy egész sor esemény tömör megfogalmazási módja (statikusan kiértékelt ciklus). Figyeljük meg a lényeges különbséget egy a programozási nyelvekben megszokott ciklushoz képest: Jelen esetben a ciklus n. lefutásakor a counter regiszter i. bitje az i-1. bitet kapja értékül. Egy ilyen ciklus egy programozási nyelv esetén csak azt eredményezheti, hogy végül minden bit ugyanazt az értéket tárolja. A delta-késleltetés miatt azonban a folyamat kiértékelése során előbb minden jobbérték kiértékelésére kerül sor, majd csak az összes jobbérték-kiértékelést követően indul el a balértékek frissítése. Ezt gyakorlatilag azt jelenti, hogy a ciklus törzsében a jobbérték kifejezés mindig az i-1. bit előző szimulációs ciklusbeli, tehát az előző órajelciklusbeli értékét adja át az i. bitnek. Tehát pontosan azt írtuk le, amit egy gyűrűs számlálótól elvárunk.
6.1.4.
Negyedik példacsoport - Shift&Add szorzó egység
Az utolsó példa azt mutatja be, hogy miként lehet egyszerű adatfeldolgozási feladatot ellátó rendszereket modellezni VHDL segítségével. A példa egy Shift&Add elvű, generikus szorzó egység ún. FSMD (Finite State Machine with Datapath) modelljét írja le. Az elnevezés azt jelenti, hogy a rendszer egy vezérlési funkciót ellátó állapotgépből (FSM) és adatfeldolgozó elemeket tartalmazó műveletvégző elemekből (datapath) áll. Az alábbi példában ezek a szerkezeti elemek nem különülnek el egymástól a kód szintjén, de bonyolultabb esetekben az egyes vezérlő és műveletvégző erőforrásokat érdemes külön-külön tervezési egységekként megvalósítani. Az ilyen strukturált HDL modellek túlmutatnak e segédlet keretein. A Shift&Add szorzás. A feladat az, hogy a szorzandó értékét annyiszor adjuk hozzá önmagához, amennyi a szorzó értéke (ez tulajdonképpen a szorzás definíciója). A probléma ezzel a naiv megközelítéssel, hogy a számítás időtartama erősen függ a szorzó értékétől, ami nemcsak azt jelenti, hogy bizonyos esetekben nagyon lassan kapjuk meg az eredményt, hanem azt is, hogy a számítási idő nem determinisztikus. A Shift&Add szorzás során a szorzó egyes helyiértékein jobbról balra (az LSB-től az MSB felé) végiglépkedünk. Ha a szorzó n. helyiértékén egyest találunk, akkor a kezdetben 0 értékű kimeneti regiszterhez hozzáadjuk a szorzandó 2nszeresét. Ez úgy valósul meg, hogy a szorzón való végiglépdelés során az akkumuláláson kívül a szorzandó eggyel való balra shiftelését (kettővel való szorzását) is elvégezzük. Így az n. lépésben előáll a szorzandó 2(n+1)-szerese, amelyet a következő (n+1). iterációban felhasználhatunk az akkumulálás során (feltéve, hogy a szorzó megfelelő bitje logikai 1). Ennek az algoritmusnak az előnye, hogy így a szorzás művelet időigénye csak az operandusok bitszámától, nem pedig azok értékétől függ. Mivel az áramkörnek egy konkrét példánya csak 82
egyféle operandusmérettel tud dolgozni, a végrehajtási idő mindig ugyanannyi. Az itt bemutatott áramkör hand-shake jellegű kommunikációt valósít meg beágyazó környezetével; a hívó a request vonalon jelzi, hogy a bemeneteken elhelyezte az operandusokat és a szorzás művelet elkezdődhet. Ha a szorzó egység a műveletet befejezte, a szorzatot a megfelelő kimeneti portra kapcsolta, a ready vonalon jelzi, hogy a szorzat kiolvasható. A 6-9. ábra a szorzó áramkör egyed-deklarációját mutatja.
6-9. ábra A Shift&Add szorzó áramkör VHDL modelljének egyed-deklarációja
A 6-10. ábrán a szorzó áramkör belső erőforrásainak deklarációja látható. Az állapotgépek megvalósításának legelterjedtebb módja - nemcsak VHDL-ben, hanem szinte bármilyen formális nyelven - a saját felsorolt típuson alapuló megoldás.
6-10. ábra A Shift&Add szorzó áramkör VHDL modelljének belső erőforrásai
Az egyedileg definiált felsorolt típus (6-10. ábra: 18. sor) lehetséges értékei az állapotgép egyes állapotait reprezentálják. Magának a típusnak a létrehozása után természetesen szükségünk 83
van egy értékhordozó erőforrásra is, amelynek típusaként az új felsorolt típust adjuk meg. Esetünkben ez egy jel (signal) lesz (6-10. ábra: 19. sor), amely az áramkör belső állapotát reprezentálja. Az áramkör belső működését egyetlen, az órajelre és a reset bemenetre érzékenyített folyamat írja le, amely szerkezetét tekintve hasonló ahhoz, amit a számláló áramkörök példájában láthattunk; a reset bemenet aktiválásának hatására minden belső erőforrás (beleértve a belső állapotot reprezentáló state jelet) és kimenet alapállapotba kerül (6-11. ábra: 29-31. sor).
6-11. ábra A Shift&Add szorzó áramkör VHDL modelljének implementációja
Az órajel felfutó élére való érzékenyítés a számlálóknál látottakkal azonos módon történik. Jelentős különbség van azonban az órajel felfutó éle esetén végbemenő folyamatok leírásában. Mivel az áramkör a szorzás művelet különböző fázisaiban más-más viselkedést kell hogy 84
megvalósítson, ezért az elvégzendő műveleteket is a számítás fázisától, vagyis a rendszer állapotától tesszük függővé. A rendszer állapotát a state jel írja le, tehát ezzel a jellel kell létrehoznunk egy feltételes szerkezetet, amelyre - sok lehetséges feltétel esetén - a case utasítás (a jól ismert programozási nyelvek switch-case szerkezetével azonos nyelvi elem) a kézenfekvő megoldás. Az áramkör tehát az órajel felfutó élénél a state jeltől - vagyis a rendszer állapotától - függően más-más műveletsort végez el.
6.2.
HDL-alapú lineáris tesztkörnyezet készítése
A hardverleíró nyelvű RTL modellek funkcionális verifikációjának eszköze egy ugyancsak hardverleíró nyelven specifikált tesztkörnyezet, ún. testbench, amelynek feladata, hogy példányosítsa a verifikálandó tervezési egységet (Design Under Test, DUT11), előállítsa annak gerjesztő jeleit és megfigyelhetővé tegye az egység kimeneteit. Attól függően, hogy a verifikálandó modul belső állapota és belső jelei milyen mértékben figyelhetők meg, a következő esetekről beszélhetünk: ●
●
●
Black-box verifikáció esetén a DUT belső állapota és belső jelei nem hozzáférhetők. Ez akkor fordulhat elő, ha a DUT egy ún. IP (Intellectual Property), az azt készítő cég “szellemi terméke”. Grey-box verifikáció esetén a DUT belső jeleinek egy részhalmaza megfigyelhető. A megfigyelhető jelek általában éppen a verifikáció megkönnyítése céljából férhetőek hozzá. White-box verifikáció esetén a DUT belső állapota, jelei és működése teljes mértékben megfigyelhető.
Esetünkben természetesen white-box verifikációról van szó, hiszen magát a DUT-t is mi készítettük, rendelkezésre áll a teljes RTL modell. A tesztkörnyezet a DUT-hez hasonlóan egy VHDL egyed lesz, amelynek legfőbb jellegzetessége, hogy deklarációja teljesen üres, nem tartalmaz sem generikus paramétereket, sem portokat. Ennek oka, hogy a testbench tulajdonképpen a DUT-t körülvevő külvilágot modellezi, így interfészjelekről nem beszélhetünk, és mivel ennek a modulnak a példányosítására sosem kerül sor, ezért a generikus paraméter fogalma is értelmét veszti12.
11
A DUT kifejezés elterjedten használt, bár pontatlan. Szigorúan véve nem tesztelésről, hanem verifikációról van szó. Tesztelés alatt a gyártás utáni, példányonkénti kipróbálást, verifikáció alatt pedig az absztakt modellek funkcióinak leellenőrzését értjük. Ennek ellenére e két fogalmat a verifikációval foglalkozó szakirodalom is gyakran szinonímaként használja. 12 Úgy is fogalmazhatnánk, hogy a testbench az univerzumnak egy erősen leegyszerűsített modellje :).
85
A 6-1. ábra AND kapujának verifikációjára alkalmas testbench modult a 6-12. ábra mutatja. A tesztvektorokat előállító nyelvi elem általában az érzékenységi lista nélküli folyamat, amely egy egyetlen szimulációs ciklusban végtelenül ismétlődő utasítássorozatként értelmezendő. A ciklikus ismétlődés azonban ebben az esetben gyakorlatilag nem valósul meg, mivel a futást a wait utasítás különböző változatai felfüggesztik. A folyamat utolsó wait utasítása végleg felfüggeszti a futást, így az egyébként végtelen ciklust leíró folyamat tulajdonképpen egyszer sem fut le teljesen.
6-12. ábra Az AND kapu verifikációjára alkalmas tesztkörnyezet
A fenti példából jól látható, miért nevezzük a tesztkörnyezetek e típusát lineáris testbench-nek. Az egyes tesztvektorok megadása egyesével, egymás után történik. A verifikáció alatt álló modul válaszának megvizsgálása után a következő tesztvektor előállítása manuálisan történik. Ez a fajta verifikációs módszer a hullámforma-megjelenítőkkel együtt alkalmazva viszonylag egyszerű rendszerek esetén hatékonyan alkalmazható, de összetett SoC áramkörök teljes funkcionalitásának verifikációjára a szükséges tesztvektorok óriási száma miatt már nem alkalmas. Az ilyen rendszerek magas szintű verifikációs módszerei (regressziós tesztek futtatására alkalmas, ún. "öntesztelő" self-checking tesztkörnyezetek, eRM, UVM stb.) kívül esnek e segédlet témakörén. A HDL-alapú lineáris testbench-ekben alkalmazott nyelvi elemek természetesen az egyszerű értékadásnál bonyolultabbak is lehetnek. A negyedik példacsoport Shift&Add szorzó egységének tesztkörnyezetét mutatja a 6-13. ábra. 86
6-13. ábra A Shift&Add szorzó tesztkörnyezete
A szorzó áramkör tesztkörnyezetében megfigyelhető, hogy a DUT-vel való kölcsönhatás megfogalmazására az egyszerű értékadásnál “intelligensebb” nyelvi szerkezetek is használhatók. Az is látható, hogy egy DUT gerjesztő jeleit nem feltétlenül egyetlen folyamat állítja elő. A testbench továbbá egyéb tervezési egységeket is példányosíthat. A szorzó áramkör egyszerű hand-shake kommunikációjának modellezésére elegendő egyetlen folyamat definiálása, de bonyolultabb kommunikációs protokollok esetén (pl. UART, SPI, PCI stb.) indokolt lehet különálló VHDL modulok kifejlesztése kifejezetten a kommunikációs interfészek verifikálása céljából. Ezeket a verifikáció komponenseket példányosítva és a DUT-vel összekapcsolva olyan testbench-et kapunk, amely a DUT-t egy a későbbi felhasználásának helyét szimuláló környezetbe helyezi. Ez a megoldás már kevéssé nevezhető lineáris testbench-nek, és már a korábban említett magas szintű verifikációs módszerek irányába mutat.
6.3.
Ajánlott irodalom
[1] Peter J. Ashenden, Digital Design - An Embedded Systems Approach Using VHDL, ELSEVIER, 2008 87
[2] David Money Harris, Sarah L. Harris, Digital Design and Computer Architecture, 2nd Edition, ELSEVIER, 2012 [3] Richard S. Sandige, Michael L. Sandige, Fundamentals of Digital and Computer Design with VHDL, McGraw-Hill Companies, Inc., 2012 [4] Sanjay Churiwala, Sapan Garg, Principles of VLSI RTL Design - A Practical Guide, SPRINGER, 2011 [5] Pong P. Chu, RTL Hardware Design Using VHDL - Coding for Efficiency, Portability, and Scalability, John Wiley and Sons, Inc., 2006 [6] Peter J. Ashenden, Jim Lewis, The Designer’s Guide to VHDL, 3rd Edition, ELSEVIER, 2008
88
7. Digitális rendszertervezés II. - Szintézis standard cellás ASIC technológiára Szerző: Horváth Péter A Szintézis standard cellás ASIC technológiára c. laboratóriumi gyakorlat során egy digitális áramkör szintetizálható RTL modelljéből kiindulva ún. automatizált RTL szintézis útján standard cellás kapuszintű reprezentációt állítunk elő, felhasználva az AMS (Austria Microsystems) 350 nm-es cellakönyvtárát. Az így kapott, immár technológiafüggő modellt felhasználva elkészítjük az áramkör fizikai tervét, amelyet azután DRC (Design Rule Check) és LVS (Layout vs. Schematic) ellenőrzésnek vetünk alá. Végül a cellakönyvtár adataiból és a fizikai tervből visszafejtett késleltetési információ ismeretében ún. post-layout szimulációt végzünk, hogy meggyőződjünk róla, hogy az áramkör eleget tesz az időzítési követelményeknek. Az RTL modellezés és szimuláció c. laboratóriumi gyakorlat során a digitális áramkörök olyan reprezentációival foglalkoztunk, amelyek teljesen függetlenek a megvalósítás alapjául szolgáló technológiától (ún. technológiafüggetlen modellek). A digitális rendszerek tervezési folyamata ettől a ponttól kezdve tulajdonképpen teljesen automatizált, hiszen minden egyes lépést valamilyen EDA (Electronic Design Automation) eszközzel fogunk elvégezni, de a továbblépéshez már tudnunk kell, hogy az adott áramkör kapuszintű modelljét teljesen kézi úton (full-custom, ez ma már nagyon ritka digitális rendszerek esetén), standard cellakönytár segítségével vagy valamilyen programozható logikai eszköz felhasználásával kívánjuk megvalósítani. E laboratóriumi gyakorlat témája a standard cellás áramkörök szintézise, ezért az alábbi segédlet röviden összefoglalja ezeknek az áramköröknek a legfontosabb tulajdonságait, beleértve azok szerkezeti felépítését, összetevőit és az azokat leíró adathalmaz legfontosabb részleteit.
7.1.
A standard cellák
A standard cellás áramkörök alapvető építőelemei a standard cellák, amelyek a logikai áramkörök összetevőinek (alapkapuk, komplex kapuk, flip-flop-ok, latchek, bufferek stb.) fullcustom módszerrel tervezett, optimalizált megvalósításai. Az ilyen építőelemek gyűjteményét standard cellakönyvtárnak nevezzük. A cellakönyvtárak egy-egy funkcionális egységnek nemcsak egy, hanem egy egész sor változatát tartalmazzák, amelyek elsősorban fizikai méretben, fogyasztásban és időzítési tulajdonságaikban térnek el egymástól. E sokszínűség célja, hogy az ilyen cellák millióiból felépülő, összetett áramkörök optimalizációja során a fenti tulajdonságok tekintetében kompromisszumos megoldások széles skálája álljon rendelkezésre. Nagy meghajtóképességű (nagy méretű) cellákból felépítve az áramkört magas órajel-frekvencia és nagy számítási kapacitás érhető el, de a fizikai méret és a fogyasztás megengedhetetlenül nagyra adódhat. Kis meghajtóképességű (kis méretű) cellákból építkezve
89
az áramkör fogyasztása és mérete kedvező lesz, de a maximálisan megengedhető órajelfrekvencia alacsonyabb. Természetesen a kis és nagy meghajtóképességű cellák egymással tetszőlegesen kombinálhatók egy áramkörön belül, ezért a gyakorlatban az jellemző, hogy az időzítés szempontjából kevésbé jelentős részáramköröket kis meghajtóképességű, a kritikus út elemeit azonban nagy meghajtóképességű cellákból építik fel. A standard cellák elhelyezését és a köztük lévő összeköttetések létrehozását automatizált úton végzik az e célra kifejlesztett szoftver eszközök. Az automatizált folyamatok hatékonyságának és megbízhatóságának növelése érdekében az egyes cellák fizikai tulajdonságaira és egymáshoz viszonyított helyzetükre korlátozásokat vezettek be. A standard cellás áramkörökben a cellák azonos magasságú sorokban, az ún. cellasorokban helyezkednek el, amelyek között az összeköttetések számára fentartott hely, huzalozási csatorna foglal helyet. Ebből az következik, hogy az egyes cellák - funkciójuktól és meghajtóképességüktől függetlenül - mind azonos magasságúak. Továbbá, a cellasorok felső és alsó részén, meghatározott helyen húzódik a csatorna táp- és földsínje, amelynek folytonosságát az adott sorban elhelyezett celláknak nem szabad megszakítaniuk. A táp- és földsínek pozíciója tehát a cellán belül ugyancsak kötött. A 7-1. ábra egy standard cella (NAND kapu) kapcsolási sémáját és egy lehetséges layout-rajzolatát mutatja.
7-1. ábra Egy NAND kapu kapcsolási sémája és layout rajzolat
A standard cellakönyvtár az egyes cellákat sokféle szempontból leírja. Az egyazon cellára vonatkozó, más-más tulajdonságot leíró adathalmazokat a cella nézeteinek nevezzük. A cella egy nézete pl. a 7-1. ábra bal oldalán látható kapcsolási séma, egy másik a jobb oldalon
90
látható layout-rajzolat. További nézetek írják le a cella időzítési tulajdonságait, fogyasztását, a layout parazita összetevőit, a viselkedését leíró szimulációs modelljeit (SPICE, Verilog), valamint a cella által előírt tervezési szabályokat annak érdekében, hogy a cella belső szerkezete és a felhasználó által készített huzalozás ne zavarja egymást 13.
7.2.
Speciális célú cellák
A cellakönyvtár olyan cellákat is tartalmaz(hat), amelyek célja nem a logikai funkció megvalósítása. Ezek a cellák elvileg nem nélkülözhetetlenek, de gyakorlatilag minden cellakönyvtár tartalmazza őket, vagy legalább néhányat közülük. Az áramkörök összetettségének növekedésével és a csíkszélesség csökkenésével jelentőségük egyre nő. ●
TIE cellák: Ha egy standard cella valamelyik tranzisztorának gate-jét a logikai funkcióból adódóan föld- vagy tápfeszültségre kell kapcsolni, akkor a föld- és tápsínek potenciáljának esetleges ingadozása funkcionális hibákhoz (pl. a flip-flopok metastabil állapotba kerülése) vagy - kis csíkszélesség esetén - a tranzisztor gate-oxidjának átütéséhez vezethet. A táp- és földsínek feszültségingadozása elleni védekezés céljából a standard cellák gate-jeit nem közvetlenül, hanem e speciális cellákon keresztül kapcsolják földre vagy tápra. A 7-2. ábra egy olyan TIE cella logikai szintű kapcsolási sémáját mutatja, amely a logikai magas és alacsony szint előállítására egyaránt alkalmas.
7-2. ábra Egy TIE cella logikai szintű kapcsolási sémája
●
SPARE cellák: A standard cellák elhelyezése után a cellasorokban általában marad üres hely. Ezeket az üres helyeket funkció nélküli, be nem kötött (földre vagy tápra kapcsolt) standard cellákkal töltik fel annak érdekében, hogy ha gyártás után valamilyen apróbb funkcionális hibára derül fény, akkor e cellák felhasználásával - mindössze a huzalozási rétegekhez tartozó maszkok újragyártásával - az kijavítható legyen. A
13
A cella belső felépítését a felhasználó nem láthatja olyan részletességgel, mint ahogy azt a 7-1. ábra szemlélteti, mert a cellakönyvtár általában egy külön cég szellemi terméke. A felhasználó csak a kivezetések helyét és a fent említett egyéb tulajdonságokat és absztrakt modelleket (a cella “absztraktját”) ismeri.
91
●
●
● ●
standard cellák bármelyikét elhelyezhetjük SPARE cellaként az üresen maradt helyekre, de létrehozhatunk külön erre a célra ún. SPARE blokkokat, amelyek csak ilyen funkció nélküli, “tartalék” cellákat tartalmaznak. DECAP cellák: A digitális áramkörökben a tápsín terhelése meglehetősen dinamikus. Az órajel felfutó élénél a rengeteg jelváltozás hatására a tápsínen nagy áram folyik, ami a feszültség “beeséséhez” vezethet, ami pedig funkcionális hibákat eredményez. A cellasorokban egymástól adott távolságra elhelyezett kapacitások alkalmasak ennek a tápfeszültség-ingadozásnak a kiegyenlítésére. ENDCAP cellák: A standard cellák önmagukban nem feltétlenül gondoskodnak saját zsebeik megfelelő előfeszítéséről (p-zsebek földpotenciálra, n-zsebek tápfeszültségre a parazita pn-átmenetek záró irányú előfeszítése céljából). Ebben az esetben a cellasorok zsebeit folytonossá kell tenni (lásd FILLER cellák) és azokat az ENDCAP cellákkal megfelelő potenciálra kell kapcsolni. FILLER cellák: A cellasorok zsebeinek, valamint a táp- és földsíneknek a folyatonosságát biztosítják. PAD cellák: Az áramkör bemenetei és kimenetei PAD cellákon keresztül kapcsolódnak a külvilághoz. A legegyszerűbb PAD cella az ESD-védelmet biztosító áramköröket és a mikrohuzal-kötéshez szükséges fémfelületet tartalmazza.
7.3.
A cellákat leíró adatbázis 7.3.1.
Layout
Az ún. LEF (Library Exchange Format) fájlok a technológia által rendekezésre bocsátott rétegekre (layer) és rétegek közötti átvezetésekre (via) vonatkozó információt, valamint az egyes cellák felépítését írják le. A technológiát leíró LEF fájl. Meghatározza az egyes rétegek fizikai méreteire vonatkozó korlátozásokat (pl. legalsó fémréteg minimális szélessége, két fémcsík közötti minimális távolság stb.), azok felületegységre eső kapacitását, négyzetes ellenállását, orientációját stb. Definiálja továbbá a rétegek közötti átvezetések paramétereit. A 7-3. ábrán az AMS 350 nmes technológiájához tartozó LEF fájlnak a MET1 fémréteghez, valamint a MET1 és MET2 rétegek közötti átvezetéshez tartozó részlete látható.
92
7-3. ábra LEF “techfile” részlete (AMS 350 nm)
A cellákat leíró LEF makrók. Leírják az egyes cellák fizikai méreteit, valamint a kivezetéseik elhelyezkedését (ennél többet a felhasználó nem láthat). A 7-4. ábra egy inverter LEF makróját mutatja az AMS 350 nm-es cellakönyvtárából.
93
7-4. ábra Egy inverter LEF makrója az AMS 350 nm-es cellakönyvtárából
7.3.2.
A cellák időzítési és fogyasztási tulajdonságai
A standard cellák időzítési és fogyasztási tulajdonságainak leírására az ún. Liberty formátum használatos. Ez a szöveges formátumú fájl definiálja a cellák késleltetését, a kimeneteik felfutási és lefutási idejét, az egyes bemenetekhez tartozó időzítési feltételeket (pl. setuptime, max. jelváltozási idő), a kimenetek különböző állapotváltásaihoz tartozó dinamikus, valamint a cellára jellemző statikus fogyasztási adatokat. A Liberty formátum összetettsége abból adódik, hogy az általa leírt paraméterek nagymértékben függenek egymástól és egyéb, a cella beágyazó környezetére jellemző paraméterektől. Ebből adódóan a Liberty formátum egy ún. look-up-table alapú megoldás, ami azt jelenti, hogy egy-egy tulajdonság nem csupán egy számként, hanem egy táblázatként jelenik meg benne. A táblázat két tulajdonsággal “címezhető”, amelyek a Liberty fájl fejlécében vannak definiálva. Minden táblázathoz megadjuk, hogy melyik ún. look-up-table sablon alapján értelmezendők a benne foglalt számadatok. A 7-5. ábra annak az inverternek a Liberty leírását mutatja, amelynek LEF makrója a 7-4. ábrán látható.
94
7-5. ábra A korábban látott inverter Liberty leírása
A fenti leírás két look-up-table sablonra hivatkozik, amelyek definíciója ugyanannak a Liberty fájlnak a fejlécében van definiálva (7-6. ábra).
95
7-6. ábra Look-up-table sablonok a Liberty fájlban
Látható, hogy e két sablon az inverter kimenetének jelváltozási sebességét, valamint a kimenet megváltozásához tartozó dinamikus fogyasztási adatokat a bemenet jelváltozási sebességétől és a kapacitív terhelés értékétől teszi függővé. A konkrét számadatok tehát a következőképpen értelmezendők: Az inverter kimenetének felfutó éléhez tartozó dinamikus fogyasztás 0,662 pJ, ha a bemenet jelváltozási ideje 50 ps és a kimenetet terhelő kapacitás 15 fF 14.
7.3.3.
A cellák HDL modelljei
Az RTL szintézis és a fizikai tervezés során többször is szükség van annak ellenőrzésére, hogy az automatizált úton előállított kapuszintű modellek ugyanazt a funkcionalitást valósítják meg, amit az RTL terv, továbbá a kapukésleltetések - majd később a vezetékezés által okozott többlet késleltetések - ismeretében arról is meg kell győződni, hogy a leszintetizált áramkör képes-e az előírt frekvencián működni. Az immár alapcellákból álló áramköri modell eseményvezérelt logikai szimulátorral vizsgálható, ha rendelkezésre áll minden cella HDL modellje. A cellák alacsony szintű HDL modelljei a cellakönyvtár részét képezik. Ezek az alapvető funkcionális elemeket leíró modellek csak nagyon egyszerű nyelvi eszközöket alkalmaznak, amelyekkel az RTL tervezés során tipikusan nem találkozunk. A hardverleíró nyelveken belül külön szabványok rögzítik, hogy ezeknek a modelleknek mit és milyen formában kell tartalmazniuk. Verilog esetén ezek az alacsony szintű modellek az ún. UDP-k (User-Defined Primitive), VHDL esetén pedig a VITAL (VHDL Initiative Toward ASIC Libraries) modellek. Közös jellemzőjük, hogy valamilyen táblázatos formában adják meg a cellák ki- és bemenetei közötti kapcsolatot. A 7-7. ábrán egy D-flip-flop-ot leíró UDP látható. A cellakönyvtár alapcelláinak HDL modellje ezeket az UDP-ket (és a nyelv további beépített primitívjeit) példányosítja és definiál egy sor időzítési paramétert, amelyek konkrét értékét a logikai
14
A különböző dimenziójú számadatok mértékegységét, valamint a felfutási és lefutási idő értelmezését (a jelszinteket) szintén a Liberty fájl fejléce tartalmazza.
96
szimulációhoz ugyancsak definiálni kell. A 7-8. ábrán a DFC3 jelű alapcella Verilog modellje látható az AMS 350 nm-es cellakönyvtárából.
7-7. ábra D-flip-flop-ot leíró UDP
97
7-8. ábra A DFC3 cella Verilog modellje
A 7-8. ábrán látható, időzítéssel kapcsolatos tulajdonságokat az RTL szintézis eszköz vagy a fizikai szintézis eszköz határozza meg és bocsájtja rendelkezésre egy szabványos formátumú szöveges fájlban, az ún. SDF (Standard Delay Format) fájlban (lásd 7-9. ábra).
98
7-9. ábra Egy SDF fájlnak a DFC3 cellára vonatkozó részlete
Az SDF fájl és a cellakönyvtár HDL modelljeinek felhasználásával időzítési szimulációt végezhetünk bármilyen logikai szimulátor segítségével. Ez a gyakorlatban ugyanazt a szimulációs környezetet jelenti, mint amit az RTL modellezés során használtunk. Az SDF nemcsak a cella késleltetéseit írja le, hanem ún. időzítési peremfeltételeket (timing check) is definiál, amelyek megsértése esetén a szimuláció leáll. Ez azt jelenti, hogy a tesztkörnyezet által definiált órajel-frekvencián az áramkör nem tud működni.
7.4.
A standard cellás szintézis folyamata 7.4.1.
Az RTL szintézis
Az RTL szintézis egy csaknem teljesen automatizált folyamat, amelynek bemenetei a következők: ● ●
Az áramkör szintetizálható RTL modellje: A megvalósítani kívánt funkcionalitás formális nyelvű leírása (lásd 6. fejezet, RTL modellezés és szimuláció c. laboratórium). Az RTL modellhez tartozó tesztkörnyezet: A szintézis során többször kerül sor a félkész áramkör különböző modelljeinek funkcionális verifikációjára. E verifikációs lépések során a részben vagy teljesen elkészült áramkör modelljeinek funkcionálisan ugyanazt a viselkedést kell produkálniuk, mint az RTL modellnek. Ennek ellenőrzéséhez az RTL modellhez készített tesztkörnyezet a kézenfekvő megoldás. 99
●
Peremfeltételek (design constraints): A funkcionalitáson kívül a specifikáció részét képezik a leendő áramkör működési feltételei is. Ezek közül elsődleges jelentőségűek az időzítéssel kapcsolatos megkötések (órajel-frekvencia, amelyen az áramkörnek működnie kell). E megkötések formális megfogalmazására az ún. SDC (Synopsys Design Constraints) formátumot használjuk. A 7-10. ábra egy SDC fájlt mutat, amely egy 10 MHz-es órajelet és 0,5 ns-os bemeneti és kimeneti késleltetéseket definiál.
7-10. ábra Időzítési megkötéseket tartalmazó SDC fájl 15
Az SDC fájl szerepe kettős: az ún. timing-driven szintézis során - amikor az RTL szintézis célja nem a lehető legkisebb és nem is a lehető leggyorsabb áramkör, hanem az az áramkör, ami minimális erőforrásigénnyel képes teljesíteni az időzítési követelményket - peremfeltételkét szolgál a szintézist végző szoftver számára, másrészt felhasználható az ún. statikus időzítés-analízis (Static Timing Analysis, STA) során a szintetizált áramkör időzítési viszonyainak ellenőrzésére. A szintetizált áramkör kapuinak - és a fizikai szintézis előrehaladottságától függően a vezetékezésnek - a késleltetése ismert. Ezt az ismert késleltetést összevetve az SDC fájlban megfogalmazott megkötések által indikált maximálisan megengedhető késleltetésekkel könnyen megállapítató, hogy a leszintetizált áramkör megfelel-e az elvárásoknak. E módszer előnye, hogy sokkal gyorsabb, mint az időzítési szimuláció, hátránya, hogy csak azokat a lokális adatutakat képes ellenőrizni, amelyeket az SDC fájl “lefed”. Ha a leszintetizált áramkörben olyan lokális adatúton van időzítési hiba, amelyről az SDC fájl “nem nyilatkozott”, akkor a hiba rejtve marad. ●
Cellakönyvtár: Standard cellák gyűjteménye és a hozzájuk tartozó adatbázis (lásd 7.3. pont). ● Szintézis parancsfájlok (script-ek): Az automatizált RTL szintézist végző szoftverek vezérlésére szolgáló, általában TCL (Tool Command Language) nyelven megfogalmazott szöveges állományok, amelyek előállításához a konkrét szoftver ismerete szükséges. A szintézis a HDL forrásfájlok beolvasásával és azok szintaktikai ellenőrzésével kezdődik. Ha a teljes kódbázis szintaktikailag helyesnek bizonyul, akkor a szintézis eszköz egy belső reprezentációt készít a HDL modellről (elaborate), amely során további, immár szemantikai ellenőrzésekre is sor kerül. E lépés eredménye a HDL modell struktúráját tükröző elvont, a
15
Az ábra a Cadence RC tervezőrendszerben érvényes SDC parancsokat mutat be.
100
szintézis eszközre jellemző modell, amely egy könyvtárszerkezetre emlékeztető formában tárolja a terv egyes elemeinek, tervezési egységeinek hierarchiáját. Maga az áramkörszintézis, amely során az RTL reprezentációból kapuszintű modell készül, két lépésben valósul meg. Az első lépés az ún. generikus szintézis, amelynek kimenete egy kapuszintű netlista. Ennek legfőbb jellegzetessége, hogy a benne található alapelemek (logikai kapuk, flip-flopok, latch-ek) függetlenek a megvalósítás alapjául szolgáló technológiától (innen az elnevezés). Bár a gyakorlatban nem jellemző, ezen a ponton már generálható egy kapuszintű HDL modell a szintetizált áramkörről. Ezt az eredeti tesztkörnyezetbe visszahelyezve a funkcionalitás ellenőrizhető, de itt még a logikai kapuk egyedi késleltetési adatai nem ismertek (nulla késleltetést feltételező, ún. zero-delay szimuláció, vagy minden kapu esetén egységnyi késleltetéssel számoló, ún. unit-delay szimuláció végezhető). A második lépés az mapping 16, amely során a generikus áramköri elemeknek a felhasznált cellakönyvtár elemeit feletetjük meg. Ha ezen a ponton kimeneti HDL modellt, ún. post-mapping modellt generálunk, akkor a logikai szimulációs környezet már figyelembe tudja venni a cellakönyvtár elemeinek ismert késleltetését, így az időzítési viszonyokról már pontosabb képet kaphatunk. Az időzítések szimulációjához a logikai szimulációs eszköznek szüksége van a 7-9. ábrán látható SDF fájlra is, amelyet a post-mapping modellel együtt az RTL szintézis eszköz generál. A csíkszélesség és a tranzisztorok méretének csökkenésével egy összetett áramkör részét képező logikai kapu késleltetésének meghatározása során magának a kapukésleltetésnek egyre kisebb, a kaput terhelő kapacitásnak pedig egyre nagyobb szerepe van. Ebből adódóan a post-mapping szimuláció időzítés tekintetében egyre kevésbé tekinthető megbízhatónak. Az időzítési viszonyok pontos vizsgálatához el kell készíteni az áramkör fizikai tervét. Ezt a folyamatot erősen leegyszerűsítve place&route-nak (elhelyezés és huzalozás, P&R) nevezzük, bár ahogy a 7.4.2. pontban látható, a fizikai szintézis kifejezés e két részfolyamatnál többet takar. A fizikai terv elkészítése után ugyancsak generálható HDL modell (post-layout modell), amely már képes figyelembe venni az egymáshoz kapcsolódó cellák viszonylagos pozíciójából és a köztük lévő vezetékezésből adódó késleltetéseket is.
7.4.2.
A fizikai szintézis
Az alábbi pontban a standard cellás áramkörök szerkezetét a fizikai tervezés lépésein keresztül mutatjuk be. A példaként bemutatott áramkör az RTL modellezés és szimuláció c. laboratóriumi gyakorlat második példacsoportájának teljes összeadója kiegészítve egy-egy regiszterrel a sum és carry_out kimeneteken. Megjegyzendő, hogy ez az áramkör túl egyszerű ahhoz, hogy külön chip, vagy akár önálló makrocella készüljön belőle (valójában a cellakönyvtár standard cellaként
16
A kifejezés ebben a kontextusban leképezést jelent. A folyamatnak semmi köze a térképészethez :).
101
is tartalmaz ehhez hasonló, egyszerű aritmetikai áramköröket), azonban a standard cellás áramkörök szerkezetének demostrálására alkalmas. Floorplan A chip nagyobb szerkezeti egységeinek méreteit az ún. floorplan definiálja. Egy összetett, több részegységből (makrocellából) álló áramkör esetén a floorplan célja a globális huzalozás optimalizálása, minimalizálása. Ebben a tervezési lépésben határozzuk meg a makrocellák egymáshoz viszonyított helyzetét. Egyszerűbb esetekben, amikor az áramkör összetettsége nem igényel hierarchikus fizikai tervet (flat design), akkor a floorplan alatt a chip méretére, valamint a cellasorok és huzalozási csatornák méreteire vonatkozó információt értjük. A 7-11. ábra a példaáramkör floorplan-jét mutatja.
7-11. ábra A példaáramkör floorplan-je
Tápellátás A floorplan elkészítése után a chip tápellátásának megtervezése következik. A táp- és földhozzávezetés ún. táp- és földgyűrűkön keresztül történik, amelyek körülveszik a cellaterületet. A tápvonalak impedanciájának - ezáltal az IR-dropnak -, valamint áramsűrűségének csökkentése céljából a gyűrűkön kívül további tápvonalak (stripe) beépítésére is szükség lehet. A cellasorok tápellátását az azok felső és alsó részén végigfutó tápsínek végzik (7-12. ábra).
102
7-12. ábra Tápellátás: táp- és földgyűrűk, stripe-ok és a cellasorok tápsínjei
Elhelyezés (placement) A tápellátás megtervezése után a cellák elhelyezése (placement) következik. Többféle cella (lásd 7.1. és 7.2. pont) elhelyezéséről kell gondoskodnunk, ennek megfelelően ez a lépés részfolyamatokra bontható: ● ● ●
Fix pozíciójú cellák elhelyezése Standard cellák elhelyezése Kitöltő (FILLER) és tartalék (SPARE) cellák elhelyezése
Az ENDCAP és DECAP-cellák fix pozíción helyezkednek el. Az ENDCAP cellák mindig a cellasorok két végén, a DECAP cellák pedig általában a chip mérete által meghatározott fix távolságonként a cellasorok mentén (7-13. ábra). A DECAP cellák használata - funkciójukból adódóan (lásd 7.2. pont) - csak összetett, nagy méretű rendszerek esetén indokolt, és helyzetük kevésbé helyhez kötött, mint az ENDCAP celláké.
103
7-13. ábra Fix pozíciójú ENDCAP és DECAP cellák
A fix pozíciójú speciális cellák elhelyezése után kerül sor a logikai funkciót megvalósító standard cellák elhelyezésére (7-14. ábra).
7-14. ábra Standard cellák elhelyezése
104
A cellasorokban a standard cellák között általában marad némi kihasználatlan hely. Ezeket a helyeket SPARE és FILLER cellákkal töltjük fel (7-15. ábra).
7-15. ábra SPARE és FILLER cellák elhelyezése
Huzalozás (routing) Ha minden belső cella a helyére került, következhet azok összeköttetéseinek megvalósítása, a huzalozás. A cellasorokon belül érdemes a huzalozást úgy megoldani, hogy a legalsó fémezési réteget ne használjuk fel cellák közötti összeköttetések megvalósítására, mivel arra a cellák belső vezetékezéséhez van szükség (7-16. ábra). A cellasorokon kívül viszont arra kell törekedni, hogy csak akkor “jöjjünk fel magasabb huzalozási rétegre”, ha az valóban indokolt. A magasabb huzalozási rétegek nagyobb méretei miatt ezek a vezetékek nagyobb terhelő kapacitást jelentenek, ami a jelutak késleltetését növeli.
105
7-16. ábra Összeköttetések megvalósítás a cellák között
PAD-gyűrű (PAD-ring) A huzalozás elkészítése után a kivezetések PAD áramköreit tartalmazó PAD cellák elhelyezése és bekötése következik (7-17. ábra).
106
7-17. ábra PAD cellák elhelyezése és bekötése
A PAD cellák közötti üresen maradt helyeket a már említett FILLER cellákhoz hasonló, de a PAD cellákkal azonos méretű cellákkal töltjük fel. A chip sarkaiba helyezett FILLER cellák az ún. CORNER cellák (7-18. ábra).
107
7-18. ábra PAD FILLER és CORNER cellák elhelyezése
A chip fizikai tervének elkészülte után újabb időzítési szimuláció végezhető, amely a postmapping kapuszintű időzítési szimulációnál pontosabban képes visszaadni az áramkör időzítési viszonyait, mivel ezen a ponton már az összes kapu kimeneti terhelése pontosan ismert. A vezetékezés kapacitásának layout-ból való visszafejtése után a fizikai szintézis szoftver segítségével újabb HDL modellt és egy újabb SDF fájlt generálhatunk. Ezek segítségével az elkészült áramkört egy logikai szimulációs környezetben, az eredeti testbench felhasználásával funkcionálisan verifikálhatjuk. Ezt az eljárást post-layout szimulációnak nevezzük. A 7-19. ábra a standard cellás ASIC szintézis folyamatát foglalja össze.
108
7-19. ábra A standard cellás ASIC szintézis folyamata
Az elkészült tervet a logikai funkción túlmenően további teszteknek kell alávetni, amelyek közül a legfontosabbak a technológia által szabott korlátozásokat (fémezési csíkok, diffúziós tartományok közötti távolság, via-k mérete stb.) ellenőrző DRC (Design Rule Check) és a layoutból visszafejtett, parazita elemeket is tartalmazó hálózat kapuszintű netlistával való egyezőségét ellenőrző LVS (Layout vs. Schematic) teszt. Az elkészült fizikai tervet dokumentáló formátum az ún. GDSII (Graphic Database System). Ez a fájl minden információt tartalmaz, amely az áramkör legyártásához szükséges.
109
7.5.
Ajánlott irodalom
[1] Prakash Gopalakrishnan, Rob A. Rutenbar, Direct Transistor-Level Layout for Digital Blocks, Kluwer Academic Publishers, 2005 [2] Hubert Kaeslin, Digital Integrated Circuit Design - From VLSI Architecture to CMOS Fabrication, Cambridge University Press, 2008
110
8. Digitális rendszertervezés III. - Szintézis FPGA technológiára Szerző: Horváth Péter A Szintézis FPGA technológiára c. laboratóriumi gyakorlat során nagymértékben támaszkodunk a standard cellás szintézisről tanultakra. A kétféle szintézis eljárás nagyrészt megegyezik, tulajdonképpen nincs is különbség közöttük egészen a generikus kapuszintű modellt a megvalósítás alapjául szolgáló technológia erőforrásaira leképező mapping-ig. Ettől a lépéstől kezdve azonban a két folyamat jócskán eltér egymástól. Az eltérés oka a standard cellás ASIC és az FPGA (Field Programmable Gate Array) áramkörök architektúrájának különbözőségében rejlik. A standard cellás ASIC áramkörök szerkezetét az előző laboratóriumi gyakorlat során megismertük, a következő pont pedig részletesen bemutatja az FPGA-k felépítését.
8.1.
Az FPGA áramkörök architektúrája
Az FPGA-k olyan, általános célú, újrakonfigurálható eszközök, amelyek programozható erőforrásaik segítségével tetszőleges digitális funkciót képesek megvalósítani. A rendelkezésre álló erőforrások természetesen eszközről eszközre változnak, de az alábbi három típus mindegyik FPGA-ban megtalálható: ● ● ●
konfigurálható logikai blokkok (Basic Logic Element, BLE): Kombinációs és szekvenciális hálózatok alapelemeit tartalmazó funkcionális egységek. konfigurálható I/O blokkok: A külvilággal való összeköttetést biztosító funkcionális egységek. konfigurálható huzalozási erőforrások: A logikai blokkok és I/O blokkok összekapcsolását megvalósító elemek.
Az FPGA konfigurálása alatt ezeknek az erőforrásoknak az elvárt logikai funkció alapján való beállítását értjük. A 8-1. ábrán az FPGA áramkörök felépítése figyelhető meg. A bal oldali ábrán jól elkülöníthetők a különböző funkcionális egységek. Az I-vel (Interconnect block) jelölt blokkok az egyes huzalozási csatorna-szakaszok összeköttetéseit valósítják meg, míg a C-vel (Connection block) jelölt blokkok a BLE-ket kapcsolják a huzalozási csatornákhoz. A jobb oldali ábra az egyes erőforrások egymáshoz viszonyított fizikai méretét szemlélteti. Egy FPGA áramkörben a rugalmas konfigurálhatóságot biztosító erőforrások a chipnek mintegy 90-95%-át foglalják el.
111
8-1. ábra Az FPGA áramkörök felépítése
A különböző konfigurálható erőforrások állapotát a működés során tárolni kell. Erre szolgál az ún. konfigurációs memória, amelynek fizikai megvalósítása többféle lehet. A legelterjedtebb megoldás az SRAM típusú memória, amelynek legfőbb jellegzetessége, hogy illékony, vagyis tartalmát kikapcsolás után nem őrzi meg. Ha a konfigurációt a tápfeszültség elvétele után is meg kell őrizni, EEPROM, FLASH vagy antifuse-alapú konfigurációs memóriára van szükség. Ezek a megoldások az SRAM-alapúnál drágábbak, de bizonyos esetekben alkalmazásuk elkerülhetetlen.
8.1.1. 8.1.1.1.
Konfigurálható huzalozási erőforrások Konfigurálható kapcsolók
Minden konfigurálható technológia alapja a két vezeték között megvalósított, konfigurálható összeköttetés. Technológiailag a probléma sokféleképpen kezelhető, a legfontosabb megoldásokat a 8-2. ábra mutatja be.
112
8-2. ábra Konfigurálható összeköttetések megvalósítási lehetőségei: maszk-programozás (a), transmission-gate (b), anti-fuse (c)
Az ún. maszkprogramozás a konfigurálhatóság legkorlátozottabb formája. A layout-ot úgy alakítjuk ki, hogy vezetékek közötti összeköttetés meglétét/hiányát csupán egyetlen maszk határozza meg. Ilyenkor az összes technológiai lépés előre elvégezhető, majd egyetlen maszk testreszabásával a teljes áramkör egyedivé tehető. A megoldás nem túl rugalmas, hiszen egyrészt a testreszabást nem közvetlenül a felhasználó, hanem a gyártó végzi, továbbá a legyártott eszköz konfigurációja nem módosítható. Az ún. antifuse technológia esetén a konfigurálható kapcsolat két vezeték között úgy alakul ki, hogy két vezető réteg közé (pl. a 8-2. ábrán látható példában poly-Si és n+ diffúzió) vékony szigetelő réteget helyezünk el, amely a két vezető réteg közé kapcsolt megfelelő potenciálkülönbség hatására átüt, egy maradandó vezető csatornát képezve (innen az elnevezés, “anti-biztosíték”). A módszer előnye, hogy az összeköttetések létrehozása a gyártás után, a felhasználó által történik, hátránya, hogy a maszkprogramozáshoz hasonlóan a konfiguráció ez esetben sem módosítható. Rugalmasság szempontjából az ún. transmission-gate-alapú kapcsoló technológia a legelőnyösebb. Ebben az esetben a 8-2. ábrának megfelelően összekapcsolt p- és n-csatornás MOS tranzisztorok csatornái valósítják meg az összeköttetést a két vezeték között. A módszer előnye, hogy a transmission-gate vezérlő feszültsége tetszőlegesen módosítható. Az összeköttetés maradandósága tehát attól függ, hogy a vezérlő bitet milyen típusú memóriában tároljuk. A 8-2. ábrán látható megoldásban SRAM cellát használtunk, amely kikapcsoláskor elveszíti tartalmát, tehát az összeköttetések sem maradandók. Ha a vezérlő bitet EEPROM vagy FLASH memóriában tároljuk, akkor az ezzel a megoldással megvalósított összeköttetések a tápfeszültség elvételekor is megmaradnak. 8.1.1.2.
Globális huzalozási architektúra
A huzalozási csatornák és logikai blokkok egymáshoz viszonyított helyzete alapján hierarchikus és sziget típusú architektúrákat különböztetünk meg. A 8-3. ábrán ez utóbbira láthatunk példát. A hierarchikus huzalozási architektúrát a 8-3. ábra mutatja be. Ezen az ábrán 113
a jobb áttekinthetőség céljából kihagytuk a huzalozási csatornák és logikai blokkok összekapcsolását megvalósító erőforrásokat.
8-3. ábra A hierarchikus huzalozási architektúra sémája
A hierarchikus huzalozási architektúra előnye a sziget típusúval szemben, hogy a vezetékek késleltetése jobban prediktálható, ugyanakkor a logikai modell erőforrásainak leképezése az eszköz erőforrásaira problémás lehet, ha a logikai hierarchia nem követi a huzalozás hierarchiáját, és a huzalozási hierarchia által meghatározott logikai blokk-csoportok mérete nincs összhangban a logikai terv blokkjainak erőforrásigényével. A hierarchikus vezetékezésben az áttérés az egyik logikai blokk-csoportból egy másikba jelentős késleltetésnövekedést jelent. E problémák miatt a mai modern FPGA-k inkább a sziget típusú globális huzalozási architektúrát alkalmazzák. A sziget típusú huzalozási architektúrában - ahogy az a 8-1. ábrán is látható - a logikai blokkok egy kétdimenziós mátrix rácspontjaiban helyezkednek el. A közöttük futó huzalozási csatornákban különböző hosszúságú vezeték-szegmensek és az azokat összekapcsoló kapcsolómátrixok helyezkednek el. 8.1.1.3.
Kapcsolómátrixok
A 8-1. ábrán I-vel jelölt kapcsolómátrixok a lehetséges összeköttetéseknek csak egy részét képesek megvalósítani, mivel a tetszőleges vezetékpár összekapcsolására képes szerkezet erőforrásigénye megengedhetetlenül nagy lenne. A 8-4. ábra a Disjoint és a Wilton típusú kapcsolómátrixok által megvalósított összeköttetéseket mutatja be.
114
8-4. ábra Disjoint (a) és Wilton (b) típusú kapcsolómátrixok
A kapcsolómátrixokon belüli összeköttetéseket irányuk alapján is megkülönböztethetjük. A 8-5. ábrán látható a kétirányú és a csak egyirányú összeköttetések megvalósítására alkalmas, multiplexer-alapú kapcsolómátrixok egyszerűsített kapcsolási sémája.
8-5. ábra Kétirányú (a) és egyirányú (b) összeköttetések a kapcsolómátrixon belül. A piros négyzetek a konfigurációs memóriabeli biteket szimbolizálják
A BLE-k és a vezetékszegmensek közötti összeköttetésekett ugyancsak konfigurálható, bemeneti és kimeneti kapcsolóblokkok valósítják meg.
115
8.1.2.
Konfigurálható logikai blokkok
A konfigurálható logikai blokkok a digitális áramkörök alapelemeit, kombinációs hálózatok felépítéséhez szükséges logikai kapukat és tároló elemeket, flip-flopokat tartalmaznak. Azt a tulajdonságot, hogy egy FPGA logikai blokkjai mennyire összetett funkciót képesek önmagukban megvalósítani (pl. egy logikai blokk csak egyetlen logikai kaput tartalmaz, vagy egy teljes számlálót, esetleg több-bites aritmetikai/logikai áramköröket), az architektúra granularitásának nevezzük. A mai modern FPGA-k finom granularitásúak, ami azt jelenti, hogy egy logikai blokk önmagában kevés funkciót lát el, azonban e kisméretű blokkokból a teljes eszköz nagyon sokat tartalmaz. A 8-6. ábra egy logikai blokk leegyszerűsített kapcsolási sémáját mutatja be. Bár a valós eszközökben a logikai blokkok lényegesen összetettebbek, az ábra jól szemlélteti, hogy melyek azok az erőforrástípusok, amelyek egyetlen konfigurálható logikai blokkból sem hiányozhatnak.
8-6. ábra Egy konfigurálható logikai blokk egyszerűsített kapcsolási sémája
Az ábrán 4-LUT-ként jelölt áramköri elem a kombinációs logikák megvalósítására szolgáló 16bites memória. Tetszőleges négy, vagy annál kevesebb bemenetű logikai függvény megvalósítható vele (a bemenetek száma eszközről eszközre változik). A carry-logika néhány kiegészítő kombinációs hálózatot tartalmaz, amelyek az összeadó áramkörök megvalósításának hatékonyságát növelik. A 8-7. ábrán látható, miként alakítható minden egyes BLE egy-egy teljes összeadóvá a megfelelő carry-logika segítségével.
8-7. ábra A carry-logika feladata az összeadók kritikus részáramköreinek hatékony megvalósítása
116
Minden BLE tartalmaz továbbá egy konfigurálható 1-bites kimeneti regisztert, amely a LUT vagy a carry-logika kimenetét képes tárolni. A konfigurálható logikai blokkokra a 8-1. ábrán a BLE (Basic Logic Element) elnevezést használtuk. Ezeket az elemeket általános célú FPGA erőforrásnak is nevezik (a speciális célú erőforrásokat lásd: 8.1.4. pont). A különböző gyártók más-más mozaikszót használnak saját termékeik összetevőinek megnevezésére. Ez megnehezíti a különböző gyártóktól származó eszközökre szintetizált áramkörök erőforrásigényének összehasonlítását. Tovább bonyolítja a helyzetet, hogy a BLE-ket az egyes gyártók más-más hierarchiába szervezik és az egyes hierarchiaszinteket is másképpen nevezik el. A Xilinx LC-nek (Logic Cell) nevezi a legalsó hierarchiaszintet, ami kb. a 8-6. ábrán látható összetettségű áramkörnek felel meg. Két LC alkot egy slice-ot, 4 slice pedig egy CLB-t (Configurable Logic Block). Az Altera LE-nek (Logic Element) nevezi a legalsó szintet, amelyből (pl. a Cyclone eszközcsalád esetén) 16 db alkot egy LAB-et (Logic Array Block).
8.1.3.
Konfigurálható I/O blokkok
Az FPGA áramkörök általános célú eszközök, ami azt jelenti, hogy sokféle áramköri környezetbe beilleszthetőnek kell lenniük. Ezt a rugalmasságot a konfigurálható ki- és bemeneti blokkok, az ún. I/O blokkok biztosítják. A 8-8. ábrán egy I/O blokk egyszerűsített sémája látható.
8-8. ábra Egy I/O blokk egyszerűsített kapcsolási sémája
Ezek a blokkok határozzák meg az FPGA általános célú kivezetéseinek tulajdonságait, pl. irányát, kimenet esetén annak típusát (tri-state, open-collector), a jelszintet és az esetlegesen differenciális jelvezetést, amelyekkel az eszköz képes alkalmazkodni a különböző kapcsolástechnikával készült beágyazó környezetek igényeihez (TTL, CMOS, ECL stb.). Ha az FPGA zajra érzékeny környezetbe kerül, szükség lehet a kimenetek fel- és lefutási sebességének korlátozására a környező áramköri komponensekbe indukált zaj mértékének csökkentése céljából. Erre szolgálnak az ún. slew-rate control áramkörök, amelyek ugyancsak részét képezik az I/O blokkoknak.
117
8.1.4.
Speciális célú erőforrások
Az általános célú FPGA erőforrásokból tetszőleges digitális funkció kialakítható, azonban egyes, gyakran alkalmazott konstrukciók nem valósíthatók meg hatékonyan. A probléma kiküszöbölésére a mai modern FPGA-k ún. heterogén architekturális elemeket is tartalmaznak a BLE-k mellett, amelyek ugyan kizárólag valamilyen speciális funkció elvégzésére alkalmasak, de azt a funkciót nagyon hatékonyan valósítják meg. A legelső ilyen erőforrások - az FPGA áramkörök elsődleges alkalmazási területe, a digitális jelfeldolgozás igényeinek megfelelően - a blokk RAM és DSP modulok voltak. A BLE-kből létrehozható ugyan tetszőleges méretű memória, hiszen minden BLE tartalmaz egy tároló elemet, de éppen amiatt, hogy egy BLE mindössze egyetlen bit tárolására képes, egy nagy méretű memória összeállítása megengedhetetlenül sok BLE-t igényelne, ráadásul a tárkapacitás növekedésével az egyes bitek közötti összeköttetések megvalósítása is egyre nehezebbé válik. E probléma megoldására az FPGA-kba blokk RAM modulokat építenek be, amelyek nagysebességű és a BLE-kből felépíthetőhöz képest nagy kapacitású (MBit nagyságrend) memóriák. Bár funkciójuk alapvetően kötött, a rugalmas felhasználhatóság érdekében számtalan tulajdonságuk konfigurálható. Általában single- vagy dual-port működésre képesek, kimeneteik szinkron működésűek, az általuk tárolt vektorok mérete és száma gyakorlatilag tetszőlegesen megválasztható (természetesen vannak eszközről eszközre változó felső korlátok). Ugyancsak nagyszámú BLE-re lenne szükség a DSP alkalmazásokban igen gyakran előforduló szorzás műveletet megvalósító áramkörök megvalósításához, ezért az FPGA-k viszonylag nagy számban tartalmaznak ún. DSP slice-okat, vagyis olyan BLE-ket, amelyek blokk szorzó, szorzó-akkumulátor, barrel-shifter és ezekhez hasonló áramköri részleteket tartalmaznak. A nagy kapacitású FPGA-k általában egy vagy több, hard-makróként beépített mikroprocesszor magot is tartalmaznak. Ezek a mikroprocesszorok általában nagy számítási teljesítményű RISC magok, amelyek rendszerint adminisztratív és vezérlési feladatokat látnak el. Az FPGA erőforrásokból megvalósított alkalmazás-specifikus adatfeldolgozó rendszerek és hard-makróként beépített mikroprocesszorok ún. SoPC (System on a Programmable Chip) rendszert alkotnak, amelyeknek a feladattól függően adott esetben a külvilággal is nagy sávszélességű kapcsolatot kell megvalósítaniuk. E célból az FPGA-k a nagysebességű kommunikációs interfészek (high-speed transceiver) bizonyos áramköreit is tartalmazzák, amelyek nemcsak összetettségük miatt nem lennének megvalósíthatók BLE-kből, hanem a nagy átviteli sebességből adódó magas órajelfrekvenciák miatt bizonyos részleteik analóg megoldásokat igényelnek. Az FPGA-k kizárólag digitális rendszerek megvalósítására képesek, amelyekben kiemelt szerepe van az egyes regiszterek szinkronitását biztosító órajelnek és a reset jeleknek.
118
Speciális célú erőforrásnak tekinthetők az e két globális jel előállítását végző PLL-ek (Phase Locked Loop) és az azok terjesztéséért felelős órajel- és reset hálózat, amelyek külön erre a célra szolgáló, impedenciaillesztett és kiegyensúlyozott (az órajel-elcsúszást, az ún. clock skew-t minimalizáló) vezetékezési hálózatok. A 8-9. ábra egy mai modern FPGA sematikus ábráját mutatja, feltüntetve a speciális célú erőforrásokat (az áttekinthetőség céljából az ábra nem tartalmazza a huzalozási erőforrásokat).
8-9. ábra Erőforrástípusok egy mai modern FPGA-ban
8.2.
Az FPGA-alapú áramkörszintézis folyamata
A szintézis FPGA technológia esetén ugyanazokat a részfolyamatokat foglalja magában, mint standard cellás ASIC esetén, de a generikus kapuszintű leírás elemeinek egy technológiai könyvtár elemeire való leképezése, illetve a fizikai tervezés lépései az eltérő célarchitektúra miatt mást jelentenek. ● ●
Mapping: A generikus kapuszintű modell egyes elemeinek (kapuk, flip-flopok) az alkalmazott FPGA eszköz erőforrásait (LUT, FF) feleltetjük meg. Csoportképzés (packing): Az FPGA erőforrások csoportokat alkotnak. Az egyazon csoportba tartozó erőforrások egymáshoz közel helyezkednek el és kis késleltetésű, rövid vezetékekkel egymáshoz kapcsolhatók. Ha két összekapcsolandó logikai kapu más-más csoportban van, akkor a köztük lévő vezeték késleltetése lényegesen nagyobb. Hierarchikus huzalozási architektúrát alkalmazó FPGA-k esetén különösen
119
●
●
●
nagy szerepe van a packing algoritmusnak, amely igyekszik minimalizálni a csoportok közötti vezetékezés mennyiségét. Elhelyezés (placement): Az elhelyezés során a már technológiafüggő, LUT-okból és flip-flopokból álló kapuszintű modell egyes elemeihez a kiválasztott eszköz egy-egy konkrét erőforrását rendeljük. Huzalozás (routing): A huzalozás során meghatározzuk a kapcsolómátrixok megfelelő konfigurációját, amelyek így a kívánt összeköttetéseket létrehozzák a LUT-ok és flipflopok között. Konfigurációs memória tartalmának előállítása (bitstream generation): A kapcsolómátrixok és egyéb konfigurálható erőforrások beállításait tartalmazó adathalmaz egy soros interfészen (általában JTAG) keresztül kerül az eszközbe. A szintézis utolsó lépésében tehát előállítjuk az eszközre jellemző bitfolyamot.
8.3.
FPGA-specifikus tervezési megfontolások
Az FPGA áramkörök konfigurálhatóságukból adódóan nagy rugalmasságot biztosítanak, de speciális felépítésüknek köszönhetően az általuk megvalósított áramkörök bizonyos tulajdonságai kedvezőtlenek egy standard cellás ASIC megoldáshoz képest. A logikai alapelemek közötti összeköttetéshálózat hatalmas terhelő kapacitást képvisel. A nagy méretű ez által nagy kapacitású - vezetékek potenciálja - meghatározott töltő- és kisütőáramok mellett csak jelentős idő alatt változtatható meg, ami nagy késleltetésű összeköttetéseket jelent. Mindezek mellett az absztrakt kapuszintű modell egy-egy összeköttetése fizikailag akár több vezetékszegmenst is tartalmazhat, amelyek között az összeköttetést a 8-5. ábrán láthatóhoz hasonló struktúrák valósítják meg. Az ilyen multiplexer-alapú kapcsolómátrixokban a vezetékszegmensek határán lévő transmission-gate-ek tovább növelik a késleltetést. Mindezek a jellegzetességek azt eredményezik, hogy az FPGA-val megvalósított áramkörök lassabb működésre képesek, mint az azonos funkciót ellátó, standard cellás technológián megvalósított megfelelőik. Fogyasztás tekintetében - ugyancsak az óriási mennyiségű vezetékezési erőforrás miatt - az FPGA-k szintén alulmaradnak a standard cellás áramkörökkel szemben 17. Mivel az FPGA áramkörök fizikai terve már rendelkezésre áll, a felhasználónak nincs lehetősége az egyes logikai elemek közötti késleltetés explicit befolyásolására. Ez azt jelenti, hogy egyes, standard cellás ASIC technológián szokásos tervezési módszerek nem használhatók FPGA technológia esetén. Ilyen tervezési fogások pl. a késleltető láncok,
17
A standard cellás ASIC és FPGA-alapú áramkörök effajta összehasonlítása természetesen csak akkor jogos, ha azonos technológiát feltételezünk. Egy 14 nm-es tri-gate technológián megvalósított FPGA nagyságrendekkel jobb lehet, mint egy 350 nm-es standard cellás ASIC, akár fogyasztásról, akár sebességről van szó.
120
aszinkron részáramkörök és kombinációs hurkok. Ezek mindegyike a logikai kapuk közötti vezetékezés késleltetésének finomhangolásán alapul. Standard cellás ASIC esetén ezeket a késleltetéseket a fizikai tervezés során kézben lehet tartani, de FPGA esetén - bár maga a szintézis eszköz rákényszeríthető e struktúrák leszintetizálására (lásd Digitális rendszertervezés V.: ring-oszcillátor) - a szintézis többszöri lefuttatása mindig más és más eredményt ad a vezetékkésleltetésekre vonatkozóan, ami ilyen esetekben a funkcionalitás megváltozását is jelentené. Ugyancsak a fizikai tervezés hiánya miatt FPGA technológián általában erőteljesebben alkalmazzák a pipeline technikát, vagyis a mély, sokszintű logikai szerkezetek regiszter rétegekkel való felbontását kisebb késleltetésű, kevesebb logikai kaput tartalmazó részlogikákra. Standard cellás ASIC technológia esetén nem ritka az akár 15 szintű logikai hálózat, mert a fizikai tervezés során gondoskodni lehet arról, hogy az azt alkotó kapuk közel legyenek egymáshoz. FPGA szintézis esetén a kapuk közötti távolság nem determinisztikus. Érdekes különbség a standard cellás ASIC és FPGA-alapú áramkörszintézis között, hogy míg standard cellás esetben az egyazon funkciót megvalósító áramkörök maximális órajelfrekvencia és erőforrásigény szempontjából sokféleképpen megvalósíthatók, addig FPGA esetén e paraméterek tekintetében a mozgástér lényegesen szűkebb. Ennek oka, hogy egy standard cellakönyvtár egy adott logikai funkcióhoz egy egész sor cellát kínál, amelyek méretükben (meghajtóképességükben) és sebességükben nagymértékben eltérhetnek. A maximális órajel-frekvenciát meghatározó kritikus út optimalizációja során egy standard cellás szintézis eszköznek a cellakönyvtár nagy mozgásteret biztosít, míg FPGA esetén egy regiszter meghajtóképessége legfeljebb annak duplikálásával növelhető. A regiszterduplikálás azonban a regiszterszám növekedésével egyre kevésbé hatékony a beiktatandó vezetékezés miatt. Standard cellás ASIC áramkörökben a különböző órajeltartományok száma általában nagyobb, mint FPGA esetén. Ennek oka, hogy az FPGA-kban az órajel terjesztését előre elkészített, erre a célra dedikált vezetékhálózat, az órajelfa végzi. Az órajelfa elemei (bufferek, deskew áramkörök, kis késleltetésű vezetékszegmensek), illetve a különböző órajelek előállítását végző PLL-ek is korlátozott mennyiségben állnak rendelkezésre, így FPGA esetén célszerű az aszinkron órajeltartományok számát minimalizálni. A fenti felsorolás korántsem teljeskörű (további részletek: [5][6]), de jól mutatja azt, hogy a technológia jellegzetességei már az RTL modellezés szintjén figyelembe veendők, így az az állítás, mely szerint az RTL modell még teljesen technológiafüggetlen, csak részben bizonyul igaznak. Tetszőleges RTL modell szintetizálható ugyan standard cellás ASIC és FPGA technológiára egyaránt, azonban a szintetizált áramkör minősége és megbízhatósága nagymértékben függ attól, hogy az RTL tervező mennyire veszi figyelembe a két technológia eltéréseiből adódó különbségeket.
121
8.4.
Ajánlott irodalom
[1] Clive “Max” Maxfield, FPGAs: Instant Access, 1st edition, ELSEVIER, 2008 [2] Gina R. Smith, FPGAs 101, ELSEVIER, 2010 [3] Ian Kuon, Russel Tessier, Jonathan Rose, FPGA Architecture: Survey and Challenges, Foundations and Trends in Electronic Design Automation, vol. 2, no. 2, pp. 135-253, 2007 [4] Roger Woods, John McAllister, Gaye Lightbody, Ying Yi, FPGA-based Implementation of Signal Processing Systems, John Wiley and Sons, Ltd., 2008 [5] Jari Nurmi (ed.), Processor Design - System-On-Chip Computing for ASICs and FPGAs, Springer, 2007 [6] Steve Kilts, Advanced FPGA Design - Architecture, Implementation, and Optimization, John Wiley & Sons, Inc., 2007
122
9. Digitális rendszertervezés IV. - Nios II beágyazott processzoros rendszerek Szerző: Horváth Péter
9.1.
Beágyazott rendszerek tervezési szempontjai
A beágyazott rendszerek olyan alkalmazás-specifikus számítógépek, amelyek a bennük megtalálható hardver erőforrások tekintetében egy specifikus feladatra optimalizáltak. Ellentétben egy általános célú számítógépes rendszerrel (pl. PC) nem önállóan használható funkcionális egységek, hanem valamilyen nagyobb rendszer részét képezik (innen az elnevezés). Tervezésük során az elsődleges célkitűzés, hogy a szükséges számítási kapacitást a lehető legkevesebb erőforrás felhasználásával biztosítsák, azonban a számítási kapacitáson és a felhasznált erőforrások mennyiségén túlmenően e rendszerek megtervezése során egyéb szempontokat is figyelembe kell venni: ●
●
● ●
Speciális célú hardverelemek: Van-e a rendszerben olyan hardver egység, amely kifejezetten valamilyen szűk alkalmazási terület igényeinek megfelelően képes többlet számítási teljesítményt biztosítni (pl. DSP, titkosítás, tömörítés, mintafelismerés stb.). Valósidejűség: A rendszer válaszideje a külvilág eseményeire egyes esetekben kritikus szempont. Ezek az ún. valós idejű rendszerek (real-time system), amelyek speciális hardver- és szoftvermegoldásokat igényelnek. Megbízhatóság Fogyasztás
Természetesen azt szeretnénk elérni, hogy a felsorolt tulajdonságok mindegyike szempontjából optimális rendszert állítsunk elő, de ezek a tulajdonságok csak egymás rovására javíthatók. Pl. egy mikroprocesszor számítási teljesítménye növelhető az órajel frekvenciájának megnövelésével, ez azonban a fogyasztást is megnöveli. A megbízhatóság redundáns hardverelemek hozzáadásával javítható, de ez az erőforrásigény megnövekedését is jelenti. Az egyes tervezési szempontok viszonylagos fontosságát - amelyet ún. radardiagramokkal szemléltethetünk - a beágyazó környezet határozza meg (9-1. ábra).
123
9-1. ábra Radar diagramok a beágyazott rendszerekkel szemben támasztott követelmények szemléltetésére
Egy mikrohullámú sütő beágyazott processzoros rendszerében a valós idejű működés nem követelmény, azonban a termék ára minimalizálandó (9-1. ábra: a). Egy digitális fényképezőgép esetén - annak hordozható jellegéből adódóan - fontos szempont a fogyasztás, és a képfeldolgozási és adattárolási feladatok miatt a speciális célú hardverelemek számítási teljesítménye is meghatározó jelentőségű (9-1. ábra: b). Egy autó ESC (Electronic Stability Control) rendszere esetén a valós idejű működés elengedhetetlen, és a megbízhatóság is kulcsfontosságú, míg a fogyasztás nem kritikus szempont (9-1. ábra: c). Egy általános célú számítógép esetén (pl. asztali PC) nincs kiemelkedő jelentőségű, a többinél fontosabb optimalizációs szempont 9-1. ábra: d).
9.2.
A beágyazott rendszerek komponensei
A beágyazott rendszerek központi adatfeldolgozó alrendszerei áramkörök, de szerkezetük általában követi a 9-2. ábrán látható mintát.
124
alkalmazás-specifikus
9-2. ábra A beágyazott rendszerek hardverelemei
Master egységek ●
●
● ●
A különböző hardverelemek egy központi mikroprocesszor köré vannak szervezve. Ezek az általános célú mikroprocesszorok (General Purpose Central Processing Unit, GPCPU) a mikrokontroller-alapú rendszereknél megszokottakhoz képest nagyobb számítási teljesítményű RISC (Reduced Instruction Set Computer) magok. A leggyakoribb ad-hoc ipari szabványok az ARM, a PowerPC és a MIPS architektúrákra épülnek. Feladatkörük a beágyazott operációs rendszer (ha szükséges) futtatása, a többi hardverelem vezérlése és egyes, kevésbé számításigényes adatfeldolgozási feladatok ellátása. Alkalmazás-specifikus mikroprocesszorok (Application-Specific Instruction Set Processor, ASIP): Tárolt programú mikroprocesszorok, amelyek utasításkészlete és /vagy mikroarchitektúrája egy adott alkalmazás igényei szerint optimalizált. DMA-vezérlő (Direct Memory Access): Közvetlen, blokkos adatátvitelt biztosít a memória és a slave egységek között a mikroprocesszor tehermentesítése céljából. Memória. Az on-chip memória általában hierarchikus, többszintű gyorsítótár (cache), amelyet a gyors működés szükségessége miatt SRAM vagy beágyazott DRAM (eDRAM) cellákkal valósítanak meg. Az operatív- és/vagy háttértárként működő külső memória SRAM- és klasszikus DRAM-alapú egyaránt lehet.
Chipen belüli kommunikáció ●
Rendszerbusz. Az újrafelhasználhatóság érdekében a belső összeköttetéseket megvalósító buszrendszerek szabványos megoldások. A nagy sávszélesség-igényű és a kevésbé sebességkritikus egységek általában két külön buszon keresztül érhetők el. A két buszrendszert ún. híd (bridge) modulok kapcsolják össze A legelterjedtebb onchip rendszerbusz-szabványok az ARM AMBA, a MIPS EC és az IBM CoreConnect. 125
●
Pont-pont interfészek. Közvetlen összeköttetések, amelyek időzítéskritikus alkalmazásokban a lehető legnagyobb sávszélességet, vagy kis adatforgalom esetén a közös busz tehermentesítését biztosítják (a 9-2. ábrán szaggatott vonallal jelölve).
Slave egységek ● ● ● ●
Általános célú be- és kimeneti portok (General Purpose I/O, GPIO). Nagysebességű soros kommunikációs csatornák (pl. RocketIO). Szabványos kommunikációs interfészek (pl. USB, SPI, I2C, UART, PCI-X stb.) fizikai rétegének és ad-hoc vagy szintén szabványos protokolljainak implementációja. Alkalmazás-specifikus funkcionális egységek. Tipikusan nagy számításigényű, nagyfokú párhuzamosságot igénylő algoritmusok hardver implementációi, pl. video codec (JPEG, MPEG), titkosítás (AES, DES).
9.3.
Beágyazott rendszerek újrakonfigurálható technológián
A beágyazott rendszerek egyetlen chipre integrált megvalósításait System-on-Chip (SoC) áramköröknek nevezzük. Az integráltság fokának növelése, a lehető legtöbb komponens egyazon chipen való megvalósítása a számítási teljesítmény szempontjából előnyös, hiszen a chipen kívüli kommunikáció sokkal lassabb technológiákat igényel, mint a chipen belüli. Azonban az integráció elsődleges hajtóereje nem a számítási kapacitás, hanem a megbízhatóság növelése. Az integrált áramköri technológia lényegesen megbízhatóbb, mint az egyes chipeket körülvevő, az azok közötti összeköttetéseket megvalósító áramköri környezet technológiája (PCB). A mai modern újrakonfigurálható áramkörök, FPGA-k kapacitása és sebessége lehetővé teszi, hogy egy beágyazott rendszer minden komponensét az általános célú erőforrások (BLE-k) és heterogén architekturális elemek (blokk szorzók, blokk RAM-ok, hard-core mikroprocesszorok, kommunikációs interfészek áramkörei) segítségével valósítsuk meg. Az újrakonfigurálható technológián megvalósított beágyazott processzoros rendszereket System on a Programmable Chip (SoPC) rendszereknek nevezzük. Ezek fő előnye, hogy a klasszikus SoC rendszerekhez képest, a mikroprocesszor(ok)on futó szoftveren kívül maga a hardverplatform is rugalmasan módosítható az esetlegesen változó specifikáció igényeinek megfelelően.
9.3.1.
Soft-core mikroprocesszorok
Ahhoz, hogy egy FPGA-n belül egy komplett mikroprocesszoros rendszert hozhassunk létre, nem szükséges, hogy az adott FPGA tartalmazzon hard-core mikroprocesszor magot. A nagyobb FPGA gyártók mindegyike kínál a saját eszközeire optimalizált, ún. soft-core mikroprocesszorokat a hozzá tartozó buszrendszerrel, I/O komponensekkel, hardver gyorsítókkal és az ilyen összetevőkből álló hardverplatform hatékony kifejlesztéséhez szükséges szoftver eszközökkel együtt. A soft-core kifejezés azt jelenti, hogy a mikroprocesszor és az egyéb komponensek fizikai tervei nem állnak rendelkezésre, az FPGA 126
gyártó azoknak csak szintetizálható, nagymértékben generikus RTL modelljeit bocsátja a felhasználó rendelkezésére. A felhasználó feladata az általa szükségesnek vélt architekturális erőforrások kiválasztása és az RTL modellek szintetizálása egy konkrét FPGA eszközre. A két legnagyobb FPGA gyártó, a Xilinx és az Altera soft-core rendszerei a MicroBlaze (Xilinx) és a Nios II (Altera). A laboratórium során Altera eszközt használunk, ezért az alábbi pontban a Nios II-re épülő rendszert mutatjuk be részletesen.
9.3.2.
A Nios II mikroprocesszoros rendszer
A Nios II mikroprocesszor A Nios II az Altera által fejlesztett, a saját FPGA eszközeire optimalizált soft-core mikroprocesszor. Load-store jellegű RISC utasításkészlete fix, 32-bites utasításokból áll. Legfontosabb architekturális jellemzői a következők: ● ● ● ● ● ● ●
32-bites adatút 32-bites lineáris címtartomány a memória-címtartományra leképzett I/O rendszer (memory-mapped I/O) 32 szintű megszakítási rendszer 32x32-bites általános célú regisztertömb utasítás- és adatcache (opcionális) MMU (Memory Management Unit): az operációs rendszerekben a virtuális tárkezelés hatékony megvalósítátához szükséges hardverelem ● MPU (Memory Protection Unit): ugyancsak az operációs rendszerekben a különböző privilégiumszintek implementálására ● JTAG debug modul (opcionális) A Nios II mikroprocesszor opcionális hardverelemei a szintézist megelőző konfigurációs lépésben választhatók ki az adott feladat igényeinek megfelelően. Magának a mikroprocesszornak három, erőforrásigény, számítási teljesítmény és fogyasztás szempontjából lényegesen eltérő változata áll rendelkezésre: ●
Nios II / f (fast): A Nios II utasításkészlet legnagyobb számítási teljesítményű, ugyanakkor legdrágább és legnagyobb fogyasztású megvalósítása. Legfontosabb hardverelemei: ○ 6 fokozatú pipeline ○ utasításcache (0,5 KB - 64 KB) ○ adatcache (0,5 KB - 64 KB) ○ dinamikus elágazásbecslés ○ hardver szorzó (1 órajelciklus késleltetés) ○ hardver osztó ○ barrel shifter (1 órajelciklus késleltetés) ○ opcionális MMU/MPU
127
●
Nios II / s (standard): Erőforrásigénye kb. 20%-kal, számítási teljesítménye mintegy 40%-kal kisebb, mint az “f” verzióé. Legfontosabb hardverelemei: ○ 5 fokozatú pipeline ○ utasításcache (0,5 KB - 64 KB) ○ statikus elágazásbecslés ○ hardver szorzó (3 órajelciklus késleltetés) ○ hardver osztó ○ barrel shifter (3 órajelciklus késleltetés) ● Nios II / e (economy): A Nios II utasításkészlet legolcsóbb megvalósítása. Erőforrásigénye csupán fele az “s” verzióénak. Az adatút nem pipeline szervezésű. A három verzió pontosan ugyanazt az utasításkészletet valósítja meg, programozói nézetük tehát teljesen azonos, tehát az egyik verzióra megírt szoftver változtatás nélkül képes futni bármelyik másik verzión. Memória A Nios II rendszer lehetővé teszi cache memória implementálását, amely a mikroprocesszorhoz közel elhelyezkedő, kis méretű ideiglenes tároló a gyakran használt utasítások és adatok számára. Hozzáférési ideje lényegesen alacsonyabb, mint az operatív memóriáé, mivel fizikailag az FPGA eszköz belső blokk RAM moduljai valósítják meg. A cache memória a címzési mód szempontjából transzparens, vagyis a futó alkalmazás a fizikai - vagy operációs rendszer esetén a virtuális - memóriabeli címeket használja. A transzparens cache memória alkalmazásának hátránya, hogy egy konkrét adathoz való hozzáférés ideje nem állandó, a program végrehajtása során változik. Ha egy adat nem található meg a cache memóriában, akkor a hozzáférés lényegesen lassabb és a transzparens címzés miatt a futó alkalmazás nem tudhatja előre, hogy mikor melyik adat van benne a cacheben. Időzítéskritikus alkalmazások esetén ez a bizonytalanság nem mindig engedhető meg, ezért ilyen esetekben ún. szorosan csatolt memóriát alkalmazunk, amely fizikailag a cachehez hasonlóan blokk RAM-ban valósul meg, de címzését tekintve nem transzparens. A címtartománynak egy a futó alkalmazás által is ismert tartománya van leképezve erre a memóriára, amelynek válaszideje állandó, így az időzítéskritikus kódrészletek futásideje jól prediktálható.
128
I/O szervezés A Nios II rendszerben a perifériavezérlők a memória-címtartományra vannak leképezve. Ez az ún. memory-mapped I/O szervezés azt jelenti, hogy az egyes perifériaelemek ugyanazokkal a load és store utasításokkal érhetők el, mint a memória18. Az egyes perifériák interfésze általában néhány regiszterből áll, amelyek vezérlő- és státuszmezőkből, valamint adatmezőkből állnak. A perifériára jellemző regiszterhalmaz minden eleme a lineáris címtartomány egy meghatározott címén írható és olvasható. Az Avalon rendszerbusz A Nios II rendszerben a mikroprocesszor és a perifériavezérlő áramkörök egy közös buszon kommunikálnak egymással. Ez a rendszerbusz az Avalon, amely a Nios II processzorhoz hasonlóan az Altera saját fejlesztésű buszrendszere. Az Avalon hat különböző interfészt specifikál, amelyek vezérlési és adatvonalak halmazát és a hozzájuk tartozó időzítési kritériumokat jelentik. Bármely egyedi hardver egység, amely kompatibilis e hat interfészspecifikáció valamelyikével, integrálható a Nios II mikroprocesszoros rendszerbe: ●
● ● ●
● ●
Avalon MM (Memory Mapped). Egy memóriacím-alapú master-slave kapcsolatot definiál. A master egység a cím segítségével azonosítja a megszólítandó slave egységet, amelynek aztán adatot küldhet, vagy onnan adatot olvashat. Avalon-ST (streaming). Dedikált, egyirányú adatkapcsolat két egység között. Az AvalonST source (forrás) folyamatos adatfolyamot küld az Avalon-ST sink-nek (nyelő). Avalon MM tristate. Az Avalon MM interfész kiterjesztése az FPGA-n kívüli, háromállapotú buszrendszerre kapcsolt komponensek felé. Avalon clock. A globális jelek (órajel és reset) továbbításáért felelős interfész. Az Avalon clock output interfész órajelet és reset-et generál, míg az Avalon clock input interfész fogadja azokat. Avalon interrupt. Ez az interfész teremti meg a kapcsolatot a megszakítást generáló (Avalon interrupt sender) és azt fogadó (Avalon interrupt receiver) egységek között. Avalon conduit. Lehetővé teszi az interfészjelek kivezetését a mikroprocesszoros rendszeren kívülre. Ez az az interfész, amely segítségével a mikroprocesszoros
18
Ha a rendszerben van cache memória, akkor gondoskodni kell arról, hogy a perifériákhoz való hozzáférés esetén a cache memóriát megkerülve, közvetlenül a megcímzett periféria regisztereihez férjünk hozzá. Ezért az utasításkészlet külön a perifériákra vonatkozó load és store utasításokkal is rendelkezik, amelyeket azonban a C fordító eltakar a programozó elől. Assembly szinten tehát van különbség az egyszerű memória írás/olvasás és a periféria írás/olvasás között.
129
rendszer (beleértve a processzoron kívül az összes perifériavezérlőt) kommunikálhat beágyazó környezetével.
könyvtári
és
egyedi
Megszakítások és kivételek kezelése A megszakítás és kivétel kifejezéseket sokféle értelemben használja a szakirodalom. E jegyzetben megszakítás alatt azt a mechanizmust értjük, amikor egy külső forrás egy megszakítási vonalon (vezetéken) jelzi a processzornak egy esemény bekövetkeztét, amelyre a rendszernek reagálnia kell. Kivétel alatt azt értjük, amikor a mikroprocesszoron futó szoftver idéz elő eseményt (pl. nullával osztás, ismeretlen utasítás beolvasása stb.). A rendszerhívás (a felhasználói szoftver által egy magasabb privilégiumszintű, pl. az operációs rendszer részét képező rutin hívása), vagy más néven szoftver-megszakítás a kivételek közé tartozik. A Nios II mikroprocesszor 32 külső, szintérzékeny megszakítási vonallal rendelkezik. A megszakítást előidéző esemény azonosítása szempontjából a megszakítási rendszer lekérdezéses, vagyis bármely megszakítási vonal aktiválódása esetén a végrehajtás egy közös megszakításkiszolgáló rutin (Interrupt Service Routine, ISR) első utasítására ugrik. E rutin lekérdezi a megszakítás generálására képes perifériaelemek megfelelő flag-jeit, ami alapján eldöntheti, hogy melyik periféria kért megszakítást. Azután a végrehajtás az immár azonosított megszakítási forrás kiszolgáló rutinjának adódik át. A JTAG debug modul A debug modul feladata, hogy monitorozza a mikroprocesszor belső erőforrásainak állapotát és kapcsolatot teremtsen egy host számítógéppel, amelyen a fejlesztés és hibakeresés folyik. A Nios II rendszerben a debug modul az FPGA eszköz JTAG interfészét használja e kommunikációs csatorna megvalósítátára. Az összes többi hardverelemhez hasonlóan a debug modul is opcionális és konfigurálható. Alkalmas a programtár feltöltésére, töréspontok elhelyezésére a programkódban, a regiszterek és az adatmemória tartalmának monitorozására és a programvégrehajtással kapcsolatos egyéb adatok gyűjtésére.
9.3.3.
A fejlesztés folyamata
A Nios II beágyazott processzoros rendszerek fejlesztése az alábbi részfeladatokat foglalja magában: ●
Hardver/szoftver particionálás. Egy beágyazott rendszer sokféle eltérő feladatot végez párhuzamosan. A specifikációban lefektetett, főként az erőforrásigényre és a számítási teljesítményre vonatkozó követelmények alapján eldöntendő, hogy melyik részfunkciókat végzi a központi mikroprocesszor (szoftver) és melyik az, amelyik a szigorú teljesítménykritériumok miatt hardveres megvalósítást igényel.
130
●
●
●
Hardverplatform fejlesztése. A hardver/szoftver particionálás után kerül sor a hardverkörnyezet kifejlesztésére, amelyhez az FPGA gyártók egyedi, integrált fejlesztői környezetet kínálnak. Az Altera Nios II rendszere esetén ez a fejlesztői környezet a Qsys, amely a Szintézis FPGA technológiára c. laboratóriumi gyakorlat során megismert Quartus II környezetbe épül be. A hardverplatform kifejlesztése magában foglalja a Nios II mikroprocesszor megfelelő verziójának, valamint a szükséges perifériaelemeknek a kiválasztását és felkonfigurálását, a szintetizálható HDL modellek generálását, beleértve az egyes komponensek összekapcsolását megvalósító Avalon rendszerbuszt is. A hardverplatform generálása során állnak elő a felhasznált perifériaelemekhez tartozó szoftver könyvtárak (Hardware Abstraction Layer, HAL) és fejállományok is, amelyek az adott periféria kezeléséhez szükséges alacsony szintű drivereket és magasabb szintű API (Application Programming Interface) függvényeket tartalmazzák. Szoftveralkalmazás fejlesztése. A hardverplatform leíró fájljainak generálása után - az RTL szintézissel párhuzamosan - elkezdődhet a szoftver alkalmazás fejlesztése, amelyhez ugyancsak egyedi, a Quartus II-be beépülő, integrált fejlesztői környezet áll rendelkezésre (Nios II Software Build Tools for Eclipse). Funkcionális verifikáció. Az FPGA felkonfigurálása után az integrált szoftverfejlesztői környezetből a JTAG debug modulon keresztül a szoftver alkalmazás a programtárba tölthető és teljeskörű hibakeresés végezhető.
A Nios II rendszer fejlesztésének folyamatát a 9-3. ábra szemlélteti.
9-3. ábra Nios II design flow
131
9.4.
Ajánlott irodalom
[1] Carl Hamacher, Zvonko Vranesic, Safwat Zaky, Naraig Manjikian, Computer Organization and Embedded Systems, 6th Edition, McGraw-Hill Companies, Inc., 2012 [2] Pong P. Chu, Embedded SoPC Design with Nios II Processor and VHDL Examples, John Wiley and Sons, Inc., 2011 [3] Michael Keating, Pierre Bricaud, Reuse Methodology Manual for System-on-Chip Designs, 3rd Edition, Kluwer Academic Publishers, 2002
132
10. Digitális rendszertervezés V. - Esettanulmány - Ringoszcillátor-alapú hőmérséklet-érzékelő Szerző: Horváth Péter A Ring-oszcillátor-alapú hőmérséklet-érzékelő c. laboratóriumi gyakorlat során egy előre elkészített rendszert vizsgálunk meg, amelynek összetevői a korábbi laboratóriumok során megismert módszerekkel készültek és amelynek elsődleges célja, hogy egy kézzelfogható példán keresztül szemléltesse a CMOS áramköröknek az Analóg áramkörtervezés II. - Ringoszcillátor c. laboratóriumi gyakorlat keretein belül tárgyalt hőmérsékletfüggő viselkedését. Az FPGA-t felépítő CMOS áramkörök hőmérsékletfüggését arra fogjuk felhasználni, hogy egy hőmérséklet-érzékelő szenzort hozzunk létre. Mivel maga a hőmérsékletfüggő elem és a hozzá tartozó kiolvasó és adatfeldolgozó rendszer egyaránt egy FPGA-n belül valósul meg, egyszerűsége ellenére a példarendszer SoC áramkörnek tekinthető.
10.1. A rendszer hardver komponensei A hardverplatform öt komponensből áll, amelyek közül egy a rendszer órajeleit előállító PLL, három a hőmérséklet-érzékelést és kiolvasást valósítja meg, egy pedig - egyfajta on-chip tesztkörnyezetként - a chip hőmérsékletének nagymértékű befolyásolására képes disszipáló elem, amely a mérés során ki/be kapcsolható. A 10-1. ábra a rendszer felépítését szemlélteti. A 10-1. ábra jobb oldalán az egyes komponensek fizikai elhelyezkedése figyelhető meg a Quartus II fejlesztőkörnyezet Chip Planner felületén. A rendszer összetevői színük alapján azonosíthatók.
133
10-1. ábra A példarendszer felépítése
A hőmérsékletfüggő elem egy ring-oszcillátor, amelynek hőmérsékletfüggő működése az Analóg áramkörtervezés II. - Ring-oszcillátor c. laboratóriumi gyakorlat témája volt. A ringoszcillátor által előállított négyszögjelnek (oscillator_input) a hőmérséklettől függő frekvenciáját egy egyedi funkcionális egység, a frekvenciamérő elem (frequency measurement) alakítja a Nios II rendszer által feldolgozható formára a következőképpen: A frekvenciamérő elem egy 10 ms-os időablakban megszámolja a ring-oszcillátor által generált négyszögjel felfutó éleit, majd a számláló értékét a Nios II rendszer megfelelő bementi portjára (number of edges) kapcsolja. Ezután megszakítást generál a Nios II processzor felé, amely ennek hatására a számláló értékét beolvassa, majd a JTAG UART modulon keresztül a host számítógép terminálablakában jeleníti meg azt. A megjelenített érték természetesen további feldolgozást és karakterizációt igényel, ha az abszolút hőmérsékletértékekre vagyunk kíváncsiak. Ezt az utófeldolgozást a példarendszer nem implementálja, mivel a hőmérsékletfüggő viselkedés kvalitatív szemléltetéséhez ez már nem elengedhetetlen.
134
10.1.1. Hőmérsékletfüggő elem A rendszer alapja egy ring-oszcillátor, amelynek kimeneti frekvenciája a hőmérséklettel változik. A ring-oszcillátor egy visszacsatolt inverterlánc, amely megvalósítható az FPGA általános célú erőforrásainak részét képező LUT-ok felhasználásával. A 10-2. ábra a ring-oszcillátor VHDL modelljét mutatja.
10-2. ábra A ring-oszcillátor VHDL modellje
A ring-oszcillátor frekvenciája nemcsak a hőmérséklettől, hanem a benne található inverterek számától is függ. A 10-2. ábrán bemutatott implementációban az inverterlánc hossza generikus paraméter. Az általunk használt FPGA-ban az egyes invertereket megvalósító LUT-ok késleltetése annyira kicsi, hogy a MHz nagyságrendű kimenti frekvencia eléréséhez többszáz példányt kell láncba kapcsolnunk. Ennek a rengeteg áramköri elemnek a VHDL modellben való példányosítása körülményes lenne - és mert a generikus inverterszám miatt nem is ismerjük az elhelyezendő inverterek pontos számát -, ezért a példányosítást a VHDL generate utasításával végezzük, amely tulajdonképpen egy statikusan kiértékelt ciklus, amelynek törzsében parametrikusan megfogalmazott példányosítás utasítások vannak. Az osc_wires azonosítóval az inverterek közötti vezetékek halmazára hivatkozunk. Mivel egy aszinkron módon visszacsatolt hálózat (kombinációs hurok) az alapvetően digitális funkció megvalósítására kifejleszett FPGA környezetben funkcionálisan értelmetlen (valójában kritikus hibának számít a kombinációs hurok létrehozása, ezt látni fogjuk a szintézer által generált log fájlban is), a szintézis eszköz az áramkört teljes egészében kioptimalizálná. Annak érdekében, hogy a szintézis algoritmust rákényszerítsük az általunk leírt áramkör megvalósítására, ún.
135
attribútumokat rendelünk az érintett vezetékekhez. Ezeket az attribútumokat (vagy más néven szintézis pragmákat) - jelentésüket és lehetséges értékeiket - a szintézis szoftver határozza meg. Az inverterek közül az egyik valójában egy NAND kapu, amely tulajdonképpen egy engedélyezhető inverter. Ha A bemenetére logikai alacsony szintet kapcsolunk, akkor a kimenete a B bemenet értékétől függetlenül logikai magas szint. Ha azonban az A bemenetre logikai magas szintet kapcsolunk, akkor a kimenet a B bementre vonatkoztatva inverterként viselkedik. A NAND kaput az inverterláncba beiktatva a NAND kapu A bemenetének változtatásával válthatunk stabil és instabil, vagyis kikapcsolt és oszcilláló állapot között. A 10-3. ábra a 10-2. ábra által leírt ring-oszcillátor logikai kapcsolási sémáját mutatja.
10-3. ábra A ring-oszcillátor logikai kapcsolási sémája
10.1.2. Frekvenciamérő elem A ring-oszcillátor kimeneti jelének éleit egy 10 ms-os időablakban megszámláló frekvenciamérő elem három almodulból áll. A 10 ms-os időablakot és az élszámlálást egy-egy számláló valósítja meg, amelyeket egy órajelszinkronizáló egység kapcsol össze egymással. Ez utóbbira azért van szükség, mivel az élszámlálást az időablak-generátor engedélyezi/tiltja és az élszámláló értékét az időablak-generátor az időablak végén kiolvassa. A két számláló között tehát adatcsere történik. A probléma az, hogy a két számláló áramkör egymástól független, ún. aszinkron órajeltartományokban működik (Clock Domain Crossing, CDC). Az élszámlálót a mérendő jel hajtja, míg az időablak-generátor egy ismert frekvenciájú órajelről jár. A két órajel közötti frekvencia- és fázisviszonyok előre nem ismertek, ráadásul a mérendő jel változása miatt folyamatosan változnak is. A problémát a 10-4. ábra szemléteti.
136
10-4. ábra Metastabil állapot kialakulása az aszinkron órajeltartományok határán
Mivel a két órajeltartomány (clk, osc_output) frekvencia- és fázisviszonya folyamatosan változik, nem garantálható az, hogy amikor az időablak-generátor mintavételezi az élszámlálót, akkor ez utóbbi nem változik meg, megsértve ezzel az időablak-generátorban az élszámláló értékét eltároló regiszterek valamelyikének (number_of_edges) Tsetup kritériumát. Ha megsérti, akkor a number_of_edges érintett regiszterei metastabil állapotba kerülhetnek, ami azt jelenti, hogy kimenetük feszültségszintje nem tekinthető sem logikai alacsony, sem magas szintnek. Az e regisztereket olvasó egyéb áramköri elemek egy része nullaként, más része egyként értelmezheti a metastabil állapotban lévő regiszter kimenetét, ami értelemszerűen hibás működéshez vezethet. A metastabil állapot - ahogy neve is mutatja - nem stabil, tehát a környezeti zaj hatására hamar stabilizálódik, és az érintett regiszter beáll valamelyik logikai szintre. A probléma megoldására a bemutatott rendszer hand-shake kapcsolatot valósít meg az élszámláló és az időablak-generátor között. A hand-shake kommunikáció lehetővé teszi, hogy az élszámláló kimeneti regiszetereinek értéke semmiképpen se változzon meg, mialatt az időablak-generátor mintavételezi őket. Ezzel azonban a probléma nem szűnt meg teljesen, hiszen most a hand-shake jelekre vonatkozóan lehet ugyanazt elmondani, amit korábban a mintavételezett buszról állítottunk, hiszen mindegyik jel két aszinkron órajeltartomány határán visz át információt. A probléma az ún. double-flopping technikával kezelhető, amelyet a 10-5. ábra szemléltet.
137
10-5. ábra Double-flopping
A 10-5. ábrán látható megoldás lényege, hogy az egyik órajeltartományból a másikba adatot átvivő jeleket két szinkronizáló flip-flopon vezetjük keresztül. Figyeljük meg, hogy a szinkronizáló flip-flopok mindig a fogadó oldal órajelét kapják. Valójában ez a megoldás nem akadályozza meg a metastabil állapot kialakulását, hiszen – a 10-4. ábra felső ágának példáját vizsgálva - az enable_edge_counter_ack jelen előállhat metastabil állapot, amit azonban CSAK EGY áramköri elem, az első szinkronizáló flip-flop olvas be, így nem áll fenn az a veszély, hogy más-más áramköri elemek különbözőképpen értelmezik a metastabil állapotra jellemző feszültségszintet. Az első szinkronizáló flip-flop vagy logikai nullaként, vagy egyként értelmezi azt. Természetesen előfordulhat, hogy a komparálási szinthez közeli érték miatt a szinkronizáló flip-flop maga is metastabil állapotba kerül, de ennek nagyon kicsi a valószínűsége, mivel az enable_edge_counter_ack vonalon kialakult metastabil állapotnak egy egész órajelciklus áll rendelkezésére, hogy stabilizálódjon, ami általában elég. Ha mégis előfordulna, hogy az első szinkronizáló flip-flop is metastabil állapotba kerül, akkor a második fokozat további egy órajelciklust biztosít a stabilizálódáshoz, még tovább csökkentve annak esélyét, hogy a metastabil állapot kijusson a szinkronizáló egység kimenetére. Nagy megbízhatóságú rendszerekben előfordul, hogy a két szinkronizáló flip-flop helyett négyet használnak. Ekkor a metastabilitásból eredő hibák valószínűsége gyakorlatilag nulla. Felmerülhet a kérdés, hogy miért volt szükség egyáltalán a hand-shake kommunikáció megvalósítására, miért nem alkalmaztuk a double-flopping technikát közvetlenül az átvitt adatbuszon? Figyeljük meg, hogy a double-flopping technika miatt az átviendő adat - attól függően, hogy az első szinkronizáló flip-flop az esetlegesen előforduló metastabil állapotra jellemző feszültségszintet logikai magas vagy alacsony szintként értelmezi - egy órajelciklus késleltetést iktathat be a kommunikációba. A többlet órajelciklus megléte nem prediktálható! Ha az átviendő adatbusz minden bitjére kiépítjük a double-flopping rendszert, akkor nem biztosítható, hogy a busz egyes bitjei a fogadó oldalon is összetartozó adatokat képviseljenek.
138
A frekvenciamérő elem VHDL modellje a tempsensor.vhd forrásállományban található.
10.1.3. Adatfeldolgozó elem A frekvenciamérő elem kimenete egy 16-bites adatbusz, amely mindig az oszcillátor kimeneti jelének a legutóbbi időablakban előforduló felfutó éleinek a számát jelenti. Ennek az értéknek az ismeretében az oszcillátor frekvenciája kiszámítható. A 16-bites adatbuszt egy Nios II processzoros rendszer olvassa be az ugyancsak a frekvenciamérő elem által az időablak végén generált megszakítás hatására. A Nios II rendszer felépítsét a 10-6. ábra mutatja be.
10-6. ábra A Nios II processzoros rendszer komponensei
A Nios II beágyazott processzoros rendszerek c. laboratóriumi gyakorlat során készített rendszerhez hasonlóan ez a példarendszer is tartalmaz egy JTAG UART modult a host számítógéppel való kapcsolattartás céljából, valamint egy 32 KB-os on-chip memóriát az adatok és utasítások számára. A rendszer I/O prifériái a Nios II rendszer általános célú I/O vezérlőjével (PIO) vannak megvalósítva. Feladatuk a következő: ● ● ● ● ●
enable_diss: A disszipáló elem engedélyezése/tiltása. enable_measure: A frekvenciamérő elem engedélyezése/tiltása. enable_osc: Az oszcillátor engedélyezése/tiltása. fmeas_trigger: Megszakításkérő bemenet, amelyet a frekvencimérő elem hajt meg. fmeas [15:0]: A frekvenciamérő elem 16-bites kimeneti busza.
139
10.1.4. Disszipáló elem Annak érdekében, hogy szemléltetni tudjuk az áramköri elemek egymásra hatását egy chipen belül, a rendszer tartalmaz egy ki/be kapcsolható, visszacsatolt, 4096-bites shift-regisztert. A regiszterben tárolt érték az “101010…” mintát követi a kapcsolási aktivitás maximalizálása érdekében. Az elektromos és termikus hatás mértékének növelése érdekében a shiftregiszternek saját, nagyfrekvenciás órajelet állítunk elő (400 MHz). A shift-regiszter VHDL modellje a dissipator.vhd fájlban található.
10.1.5. Lábkiosztás A példarendszer toplevel modulja az alábbi kievzetésekkel rendelkezik: ● ● ●
clk: Globális órajel bemenet, amelyet a DE0 fejlesztőkártyán lévő kristályoszcillátor hajt meg. reset_n: Globális reset bemenet, amely a DE0 fejlesztőkártya BUTTON0 jelű nyomógombjára van kapcsolva. leds [7:0]: 8-bites kimenet, amelynek egyes bitjei a DE0 fejlesztőkártya LEDG0-LEDG7 jelű LED-jeire vannak kapcsolva. A Nios II processzoron futó példaalkalmazás csak az alsó 3 bitet használja a következőképpen: ○ LEDG0: Oszcillátor engedélyezve (1) / tiltva (0). ○ LEDG1: Frekvenciamérő elem engedélyezve (1) / tiltva (0). ○ LEDG2: Disszipáló elem engedélyezve (1) / tiltva (0).
10.2. A rendszer szoftver komponensei A Nios II processzoron futó program egy főprogramból (tempsensor.c: int main()) és egy megszakítási rutinból (isr.h: void isr_read_counter(void* context)) áll.
10.2.1. A főprogram A főprogram a rendszer erőforrásainak inicializálása és a frekvenciamérő elemhez tartozó megszakítási rutin bejegyzése után egy üres végtelen ciklusba lép. A végtelen ciklusba való belépés után a mikroprocesszor funkciója tulajdonképpen a megszakítási rutin időnkénti - a frekvenciamérő elem által küldött, kb. 10 ms-onkénti megszakításkérés hatására történő lefuttatására korlátozódik. A főprogram folyamatábráját a 10-7. ábra mutatja.
140
10-7. ábra A főprogram folyamatábrája
A főprogram négy fordítási idejű paramétert tartalmaz, amelyeket preprocesszor-makrók valósítanak meg: ●
AVERAGE_ON: Ha értéke 1, akkor a frekvenciamérő elem által mért adatokon a processzoron futó program átlagolást végez, mielőtt az értékeket a kimenetre írná. ● WINDOW_SIZE: Az átlagolás során használt ablakméretet határozza meg. ● SAMPLE_LIMIT: A program számon tartja, hogy hány mintát olvasott ki a frekvenciamérő elemből. Ha a beolvasott minták száma eléri az e makró által definiált értéket, akkor a program letiltja a frekvenciamérő elem megszakítási vonalát, ami egyúttal a mérés végét is jelenti. ● DISSIPATOR_ON: Ha értéke 1, akkor a mérés negyedénél (SAMPLE_LIMIT/4) a processzor aktiválja a disszipáló elemet, a mérés háromnegyedénél (3*SAMPLE_LIMIT/4) pedig deaktiválja azt. Így mind a bekapcsolás, mind a kikapcsolás hatása megfigyelhető a kimenetre írt mérési adatok megfelelő megjelenítésével. A fenti funkciók mindegyikét a megszakítási rutin valósítja meg. A Nios II processzor esetén a megszakítási rutinok void visszatérési értékű függvények, amelyeknek paraméterlistája egyetlen, void* típusú változót tartalmaz. Ez a változó nem más, mint a megszakítási rutin kontextusára, vagyis a megszakítási rutin által igényelt információhalmazra mutató pointer.
141
Mivel maga a változó void* típusú általános mutató, a mögöttes adatszerkezet bármi lehet. A frekvenciamérő elemhez tartozó megszakítási vonalhoz tartozó rutin esetén ez egy struktúra (isr_context), amely minden olyan információt magában foglal, amelyre a megszakítás kiszolgálása során szükség van 19. A megszakítási rutin bejegyzése az alt_irq_register() függvénnyel történik, amely a Nios II rendszerhez tartozó alacsony szintű driver-eket és magasabb szintű API funkciókat tartalmazó könyvtár, a HAL (Hardware Abstraction Layer) része. E függvénynek három paramétere van: ●
alt_u32 id: A Qsys alkalmazásban összeállított rendszer generálásakor minden megszakítási vonal egyedi azonosítót kap. Ez az azonosító egy makróként szerepel a mikroprocesszoros rendszer generálásakor előállított system.h fejállományban. A megszakítási rutin bejegyzésekor meg kell adnunk, hogy az éppen bejegyzett rutin melyik megszakítási vonalhoz tartozik. ● void* context: Mivel a megszakítási rutint nem mi magunk fogjuk meghívni, hanem egy központi megszakításkezelő (main ISR), amely mindegyik megszakítási vonal aktiválódásakor lefut, ezért előre meg kell adnunk, hogy az éppen bejegyzett, valamelyik konkrét megszakítási vonalhoz tartozó megszakításkezelő rutin hívásakor a központi megszakításkezelő milyen paramétereket (kontextust) adjon át az éppen bejegyzett megszakításkezelő rutinnak. ● alt_isr_func handler: Maga a megszakításkezelő rutin egy függvénypointeren keresztül adódik át a bejegyzést végző függvénynek. A frekvenciamérő elem által generált megszakítéskérés kiszolgálásának előkészítése (a megszakítási rutin bejegyzése és a megfelelő megszakítás-engedélyező maszk beállítása) a főprogramban a 10-8. ábrán látható módon történik.
19
Megjegyzendő, hogy a megszakítási rutin kontextusa globális változók segítségével is átadható lenne, de összetett, sok fordítási egységből álló rendszerek esetén ezek használata kerülendő.
142
10-8. ábra A frekvenciamérő elem által küldött megszakításkérés lekezelésének előkészítése
10.2.2. A megszakítási rutin A megszakítási rutin kontextusának elemei a következők: ●
alt_u16* value_base: A frekvenciamérő elem által szolgáltatott 16-bites érték címe. Az e memóriacímről beolvasott adat az oszcillátor kimenetének a legutóbbi időablakban érzékelt felfutó éleinek számát jelenti. ● alt_u16* fmeas_values: A főprogram által létrehozott, WINDOW_SIZE méretű tömbre mutató pointer. Ez az a tömb, amelyet a megszakítási rutin FIFO tárolóként használ fel a frekvenciamérő elemtől kapott értékek ideiglenes megőrzésére. ● short window_size: A WINDOW_SIZE makróban meghatározott érték. ● char average_on: Az AVERAGE_ON makróban meghatározott érték. ● alt_u16* calls: Ebben a változóban tárolódik, hogy a program futása során hányszor hívódott meg a megszakítási rutin. Gyakorlatilag az eddig beolvasott minták számát tárolja. ● short sample_limit: A SAMPLE_LIMIT makróban meghatározott érték. ● char dissipator_on: A DISSIPATOR_ON makróban meghatározott érték. ● char* enable_dissipator_base: Az ENABLE_DISSIPATOR makróban meghatározott érték. A megszakítási rutin egyszerűsített folyamatábrája a 10-9. ábrán látható.
143
10-9. ábra A megszakítási rutin folyamatábrája
A 10-10. ábrán a megszakítási rutinnak a 10-9. ábrán 1-gyel jelölt lépése látható.
10-10. ábra Lokális változók létrehozása a kontextus adattagjai számára
A paraméterlistán kapott struktúra (a megszakítási rutin kontextusa) minden elemét a magában a megszakítási rutinban létrehozott lokális változókba másoljuk. A lokális változók létrehozása nem elengedhetetlen. A kontextus adattagjait a megszakítási rutinban közvetlenül a paraméterlistából is kiolvashatnánk, a lokális változók létrehozása tehát csak a kód olvashatóságát javítja. Időzítéskritikus esetben az ilyen többlet műveletek beiktatása kerülendő.
144
A 10-11. ábrán a megszakítási rutinnak a 10-9. ábrán 2-vel jelölt lépése látható. A mozgóátlag kiszámításához a FIFO tároló teljes tartalmát összegezzük.
10-11. ábra A FIFO tartalmának összegzése az acc változóban
A 10-12. ábrán a megszakítási rutinnak a 10-9. ábrán 3-mal jelölt lépése látható. Az AVERAGE_ON makrótól függően (amelyet immár az average_on változón keresztül olvashatunk) vagy a FIFO-ban tárolt értékek átlagát, vagy magát a legfrissebb adatot írjuk ki a standard kimenetre. Jelen esetben a standard kimenet a JTAG UART modul. Az ide írt adatokat a fejlesztőkörnyezet a Console ablakban jeleníti meg. A HAL-beli IORD() függvény a paraméterlistáján megadott báziscím és az ugyancsak paraméterlistán megadott címeltolás alapján számított memóriacmről olvas be adatot. Mivel a PIO perifériatípushoz tartozó regiszterhalmaz első eleme maga az adat, ezért az eltolás ebben az esetben 0.
10-12. ábra Mérési adat kiírása a standard kimenetre
A 10-13. ábrán a megszakítási rutinnak a 10-9. ábrán 4-gyel jelölt lépése látható. A FIFO teljes tartalmát frissítjük (a benne tárolt értékeket eggyel shifteljük), majd a legújabb mérési adatot is eltároljuk benne.
10-13. ábra A FIFO tartalmának frissítése
A 10-14. ábrán a megszakítási rutinnak a 10-9. ábrán 5-tel jelölt lépése látható. Az eddig beérkezett mérési adatok számát a calls változó tárolja. Ha a már eltárolt és feldolgozott mérési adatok száma elérte a SAMPLE_LIMIT makró értékét (amit a sample_limit változón keresztül érünk el), akkor a frekvenciamérőhöz tartozó megszakítási vonalat a HAL-beli alt_irq_disable() függvénnyel letiltjuk és a standard kimenetre egy a mérés befejezéséről szóló üzenetet helyezünk.
10-14. ábra A megszakítási vonal tiltása a mérés végén
145
A 10-15. ábrán a megszakítási rutinnak a 10-9. ábrán 6-tal jelölt lépése látható. A megszakítási rutin a disszipáló elemet automatikusan kapcsolja be/ki a mérés során. A teljes mérés időtartamának negyedénél aktiválja, háromnegyedénél pedig deaktiválja azt.
10-15. ábra A disszipáló elem be/kikapcsolása
A 10-16. ábrán a megszakítási rutinnak a 10-9. ábrán 7-tel jelölt lépése látható. A frekvenciamérő elemhez tartozó megszakítási vonal élérzékeny, ami úgy valósul meg, hogy a megszakítási bemenetet a Nios II rendszeren belül egy éldetektáló áramkör fogadja. Az éldetektáló áramkör a megszakítási vonal felfutó élénél egy flip-flopot beállít, amelynek értékét a Nios II processzor már a belső, szintérzékeny megszaktási rendszerrel is érvényes megszakításként kezel. A megszakítási rutin végén ezt az éldetektáló flip-flopot törölni kell. A törlés a 10-16. ábrán látható függvényhívással lehetséges.
10-16. ábra Az éldetektáló flip-flop törlése
146
11. Termikus I. - VLSI áramkörök termikus viselkedése – hőtranszfer a tokon belül Szerző: Dr. Bognár György, Dr. Szabó Péter Gábor
11.1. Termikus rendszerek leírása kompakt modellel – konduktív hőtranszfer Integrált áramkörök tervezése során törekedni kell arra, hogy az egyes alkatrészek (tranzisztor aktív zónája, ellenállás) disszipálódó teljesítménye miatt ne melegedjen túl a chip. Ezért gondosan meg kell tervezni a tok hőátadását, tartani kell a különböző anyagokra megengedhető üzemi hőmérséklettartományt. A hőátadás jellemzésére a hővezetési ellenállást (hőellenállás, thermal resistance) használjuk (11-1. ábra). Ha egy hővezető ”hasáb” két vége között Δ𝑇 = 𝑇𝐻 − 𝑇𝐶 hőmérséklet különbség van, és ennek hatására P hőteljesítmény (disszipálódó teljesítmény) áramlik át rajta, akkor a hőellenállás 𝑅𝑡ℎ =
Δ𝑇 𝑃
(11 − 1)
A hővezetési ellenállás mértékegysége K/W. Értékét a hővezető közeg geometriája és fajlagos hővezetési együtthatója határozza meg: 𝑅𝑡ℎ =
1 𝐿 ∙ 𝜆 𝐴
- ahol A a hővezetési szakasz keresztmetszete, L a hosszúsága. Figyeljük meg a nyilvánvaló analógiát az elektromos vezetéssel!
11-1. ábra A hőellenállás magyarázatához
147
(11 − 2)
A hőtárolás jellemzésére a hőkapacitás (heat capacitance) fogalmát használjuk. Ha egy test hőmérsékletének DT-vel való emeléséhez W hőenergia szükséges, akkor a hőkapacitás 𝐶𝑡ℎ =
𝑊 Δ𝑇
(11 − 3)
A hőkapacitás mértékegysége Ws/K. Értékét a hővezető közeg geometriája és fajlagos hőkapacitása határozza meg: 𝐶𝑡ℎ = 𝑐𝑣 ∙ 𝐴 ∙ 𝐿
(11 − 4)
Egy félvezető eszköz egyszerű termikus jellemzésére a környezet felé mutatott hőellenállását és a hőkapacitását adhatjuk meg. A kettő szorzata az eszköz termikus időállandója: 𝜏 = 𝑅𝑡ℎ ∙ 𝐶𝑡ℎ
(11 − 5)
A félvezető eszköz és környezete közötti hőátadás jósága két tényezőn múlik, ennek megfelelően a hőellenállást két részre bonthatjuk: 1. az eszköz aktív (hőtermelő) zóna és az eszköztok közötti belső hőellenállás (tokkonstrukció) – Rthjc (junction-case) 2. az eszköztok és a környezet közötti hőátadás (javítása érdekében hűtő szerelvény – méret, nagyság, bordázat, forszírozott légáram…) – Rthca (case-amibent) Rthjc általában jóval kisebb, mint Rthca . A félvezető eszközök belső hőátadása szinte mindig hővezetéssel történik. A hűtő szerelvénynek hővezetéssel adja át az eszköztok a hőt, abban (pl. egy hűtőszárnyban) vezetéssel terjed tovább, majd annak felületét természetes vagy mesterséges folyadék/légáramlás hűti (konvekció). Az eszköz belső hőmérsékletét (Tj) a környezet hőmérséklete és a disszipált teljesítmény határozza meg: 𝑇𝑗 = 𝑇𝑎 + 𝑃 ∙ (𝑅𝑡ℎ𝑗𝑐 + 𝑅𝑡ℎ𝑐𝑎 )
(11 − 6)
Az integrált áramköröknél az IC alkatrészei eltérő mértékben disszipálnak, azaz a chip felületi hőmérséklet-eloszlása nem egyenletes. (A felület disszipáló elemekkel való átlagos kitöltése általában maximum 20-30%-os.) A kialakuló hőmérséklet- és hőáram eloszlás vizsgálatára alkalmasak a termikus szimulációs programok. A hővezetési ellenállás ismerete csak stacionárius esetben elegendő számításához.
148
a melegedés
Időfüggő igénybevételnél (egységugrás, periodikusan ismétlődő, szinuszos jelek) számolni kell azzal a ténnyel, hogy az eszköz véges hőkapacitása miatt a felmelegedés nem követi azonnal a hőtermelést. Ha az igénybevétel rövid idejű (a struktúra termikus időállandójához képest), akkor a belső hőmérséklet nem feltétlenül megy a maximálisan megengedhető érték fölé, még akkor sem, ha a stacionáriusan megengedettnek sokszorosa az igénybevétel.
11.2. VLSI áramkörök tokozási kérdései Félvezető eszközök egyre növekvő fogyasztása következtében a disszipált hő elvezetése magáról a félvezető felületéről, és így magának a hőátadás jóságának a minősége a félvezető és a környezete között központi kérdéssé vált. A félvezető eszközök belső hőátadása szinte kizárólag hővezetéssel történik. Így nagyon fontos, hogy a hőt minél gyorsabban, a lehető legkisebb hőellenállású úton sikerüljön elvezetni, mert ellenkező esetben a megnövekedett hőmérséklet a félvezető eszköz túlmelegedéséhez, esetleges meghibásodásához vagy legrosszabb esetben leégéséhez vezethet. Ezért is nagyon fontos a tervezés során és a már meglévő, legyártott eszközökben is a hővezetési utak pontos feltérképezése, vizsgálata. Félvezető eszközök kiszerelése során, még a tokozás előtt az eszközt általában kovarból készült tartólemezre (leadframe) rögzítik fel (ez a művelet a die-attach) (11-2. ábra), majd a kivezetésit aranyhuzallal (kb. 90µm vastagságú) a tok lábaihoz kötik.
11-2. ábra Félvezető eszköz elhelyezkedése egy DIL tokban [1]
A modern tokozási és szerelési technológiáknál azonban (11-3. ábra) a tokozott integrált áramkörök „fejjel lefelé” kerülnek a foglalatba és a félvezető aktív felülete van a foglalat felé.
149
11-3. ábra Modern processzorok tokozási technológiája [2]
A félvezető szubsztrátja felfelé néz, annak érdekében, hogy ide lehessen illeszteni különböző passzív és aktív hűtőeszközöket. Látható azonban, hogy a hővezetés minősége nemcsak a tokozás és a hűtőszerkezet közötti hőátadástól (Rthca), hanem a félvezető felülete és a fémtok közötti hőellenállástól is jelentősen függ (Rthjc). [1] Mivel a disszipált hőt a lehető legkisebb hőellenállású úton kell elvezetni, ezért nagyon fontos ennek a felrögzítésnek a minősége, hiszen az áramköri tok ilyen kialakítása mellett a fémtokon keresztül futó hőút biztosítja a legkisebb hőellenállást. Ha felrögzítés során légbuborék kerül a félvezető és a tartólemez közé (11-4. ábra), vagy a két felület között ún. rétegelválás (delaminálódás) következik be, akkor a hőellenállás oly mértékben megnőhet, hogy az így megnövekedő üzemi hőmérséklet akár az eszköz meghibásodásához is vezethet.
11-4. ábra légbuborékok a felrögzítésben
150
11-5. ábra multichip tokozott struktúra [3]
Különösen kellemetlen ez a probléma az ún. 3D multichip tokozás vagy stacked-die struktúra esetén [4]. Ennek egyik módja „vertikális” multichip tokozás, amikor is a lapkákat egymásra ragasztják a kivezetések kényelmes bekötése céljából lépcsősen csökkenő lapkaméretet alkalmazva (piramis szerkezet) (11-5. ábra). Ebben az esetben a félvezető lapkák közötti hőátadás minősége központi kérdéssé válik. Modern kivezetési és tokozási technológiáknál (pl.: flip-chip, FCBGA tokozás lásd. 11-3. ábra) a fő hővezetési út kiegészül egy parallel ággal: hővezetés a félvezető felületétől az interposer rétegen (pl.: FR5 HDI vagy Through-Silicon-Via hordozó) és a forraszgolyókon (bump) át az alaplap felé. Egy modern processzornak tokozástól függően manapság több mint 1000 kivezetése van. Az Intel Core i7 processzorcsalád tokozásának (1366-land Flip Chip Land Grid Array) 1366 kivezetésének majdnem 45%-át a táp (295) és földkivezetések (310) részére használjuk fel. A processzor különböző területeit, különböző funkcionális egységeit (akár az egyes magokat) eltérő táppal ellátva lehetővé válik, hogy működés közben bizonyos nem használt területek áramellátását akár le is kapcsolhatjuk, ezzel is elősegítve a fogyasztás csökkentését. Régebben (Socket 478, illetve LGA 775 tokozás esetén) a processzor lábszámának kb. 80%-át fordították a tápellátásra. A címbuszon, az adatbuszon és pár tucat vezérlőjelen kívül ugyanis nem volt szükség magasabb kivezetés számra. Azonban az a tendencia vált uralkodóvá, hogy a megbízhatóság, a számítási teljesítmény növelése illetve az adatfeldolgozás gyorsítása érdekében minél több funkciót integráljunk magába a processzorba. Így a legtöbb processzorgyártó új processzoraiba már bekerül a közvetlen többcsatornás memóriavezérlés és a processzorok egymás közötti kommunikációját lehetővé tevő busz (ami a processzor belső órajelén működik – jelen példánkban 3GHz frekvencián üzemel az Intel QPI busza).
151
11.3. VLSI áramkörök hűtése és termikus karakterizációja Termikus karakterizációs eljárás során a hővezetési út tulajdonságait határozzuk meg mérésekkel és szimulációkkal. Az eljárással megvizsgálható, hogy a felrögzítésbe nem került -e légbuborék, illetve nem történt e rétegelválás. Egy ilyen rétegszerkezeti eltérés megnövekedett hőellenállást okoz a hővezetési útban Felvetődik a kérdés, hogy miként tudnánk kideríteni, hogy a szerkezeten belül hol történtek ezek az eltérések. A tokozás szerkezetének minden rétege (pl. chip, lead frame, TIM anyag, kerámia, hűtőborda stb...) jellemezhető egy hőellenálláshőkapacitás párossal (Rth, Cth). Tehát nem a teljes rendszer környezet felé mutatott hőellenállására vagyunk kíváncsiak (Rthca+Rthcj), hanem ezekre a parciális hőellenálláshőkapacitás értékekre, hiszen ebből egyértelműen látszik, hogy a hővezetési út melyik részén (melyik rétegek határán) növekedett meg a hőellenállás. Erre kínál megoldást az Elektronikus Eszközök Tanszékén kidolgozott ún. Termikus Tranziens tesztelés elve és módszere. Fontos megjegyezni a processzorok növekvő disszipációja mellett, a jelenleg alkalmazott hűtőeszközök kezdik elérni a hűtőteljesítményük maximumát, ezért az új típusú hűtőeszközök kifejlesztése iránti igény megnövekedett [5][6]. Egyes irodalmi források szerint a lehetséges megoldás a mikroméretű hűtőeszközökben keresendő [7]. Ennek egyik megvalósítása az integrált áramkörök hordozójában kialakított mikroméretű csatornák hálózata, melyben folyadékot keringetve igen jó hatásfokú hűtőrendszert lehetne kifejleszteni. Az elgondolás alapja az, hogy igazából a kb. 150…200 µm vastag szilícium hordozónak csak a felső 1..2 %-át használjuk az áramköri funkció megvalósítására, azaz a félvezető eszközök létrehozására. Az alsó kb. 98% szinte teljesen kihasználatlan marad (eltekintve egyes MEMS eszközökkel egybeintegrált megoldásoktól). Egyes nagyfrekvenciás alkalmazásokban ráadásul ezt az ún. aktív réteget egy szigetelő választja el a hordozó többi részétől (SOI – Silicon on insulator technika), ezáltal teljesen különválasztva ezt a két tartományt. Egyelőre azonban problémás ezen csatornák MEMS technológiával való kialakításának a CMOS gyártási technológiával való összeillesztése. Az Elektronikus Eszközök Tanszékén zajló kutatások célja egy új mikrofluidikai elven alapuló hűtőrendszerek kialakítása. A tanszéki félvezető laborban ún. utólagos hátoldali megmunkálással (bulk-micromachining) csatornákat alakítanak ki a Si hordozó hátoldalában nedves marással (TMAH szelektív marószer alkalmazásával). Ennek nagy előnye, hogy az eljárás teljesen CMOS kompatibilis. Azonban ez a megoldás egyrészt a hordozó szilárdságát gyengítheti (pl. egy 1cm 2 felületű félvezető esetén ez a hatás már jelentős lehet) másrészt, ha a mikroméretű csatornák száma és a sűrűsége nem elég nagy, akkor nem lehet a hőátadási felületet annyira megnövelni, hogy a hőelvezetés igazán hatékony legyen. A kutatások során adódott az az ötlet, hogy ha nem az integrált áramköri hordozóban valósítjuk meg közvetlenül a csatornákat, akkor helyezzünk egy mikroméretű csatornákkal ellátott kvázi hűtőbordát a félvezető chip hátoldalára. Természetesen ilyen közvetlenül a félvezetőre történő elhelyezésre, csak chip-on-board technikánál nyílik lehetőségünk. Egyéb esetekben az integrált áramkör tokjára lehet közvetlenül ráhelyezni. Egyes az irodalomban említett ilyen integrált 152
hűtőrendszerek segítségével akár 300W/cm 2 hőáram is elérhető [8]. (Egy hagyományos aktív hűtőrendszer – réz hűtőborda és ventilátor – maximális hőárama kb. 50…100 W/cm 2).]
11.4. Ajánlott irodalom [1] Darrel R. Frear, Materials Issues in Area-Array Microelectronic Packaging, JOM, 51:(3), pp. 22-27, 1999 [2] Intel Corporation, Your Source for Intel® Product Specifications, http://ark.intel.com/ [3] RX Solutions, http://www.rxsolutions.fr [4] M. Rencz, V. Székely, B. Courtois, L. Zhang, N. Howard, L. Nguyen, Die attach quality control of 3D stacked dies, In the Proceedings of Semicon West, pp78-84, (2004) [5] Sauciuc et al., Air-cooling extension – performance limits for processor cooling applications, Proceedings of the XXth SEMI-THERM Symposium, pp. 74-80, (2003) [6] Chen Li and R.A. Wirtz, Development of a high performance heat sink based on screen-fin technology, Proceedings of the XXth SEMI-THERM Symposium, pp. 55-60, (2003) [7] S.V. Garimella, Advances in mesoscale thermal management technologies for microelectronics, Proceedings of the 10th THERMINIC Workshop, pp. 185-206, (2004) [8] G. Jeffrey Snyder et al, Hot Spot Cooling using Embedded Thermoelectric Coolers, Proceedings of the XXIIth SEMI-THERM Symposium, (2006)
153
12. Termikus II. - Érintésmentes termikus karakterizáció – hőtranszfer a tokon kívül Szerző: Dr. Bognár György, Dr. Szabó Péter Gábor
12.1. Bevezetés Elektronikai berendezések belsejében uralkodó hőmérsékleti, hőeloszlási viszonyok működés közben történő feltérképezése egyre fontosabb feladattá válik. Az elektronikai eszközökben alkalmazott tokozott integrált áramkörök – digitális processzorok, jelfeldolgozó áramkörök, nagy teljesítményű erősítők, nagyfeszültségű kapcsoló elektronikák, stb. – egyre nagyobb disszipáció sűrűsége miatt szükségessé válik már a tervezés fázisában – mind rendszerszinten, mind áramkörszinten – a termikus problémák kezelése. Az áramkörön található félvezető eszközök, alkatrészek működési paramétereit nem csak a technológiai szórások, hanem az áramkör aktuális hőmérséklete is befolyásolja. Ennek figyelembevételével születtek elektrotermikus szimulációs eszközök és különböző a hőmérsékleti eloszlásokat, az aktív illetve passzív hűtőeszközök hatásait szimulálni képes programok, melyek segítségével a tervező az áramkör valósághűbb működését tudja ellenőrizni még a gyártatás előtt. A különböző elektrotermikus szimulációs eszközök és modellek [1][3] alkalmazásával az esetek zömében jó közelítést kapunk az áramkör későbbi működéséről. Azonban egy-egy áramkör szimulációja – főleg elektrotermikus szimulációja – akár több órát is igénybe vehet. Ráadásul ha bármilyen paraméteren – elrendezés, hordozóanyag, disszipáció, stb. – változtatunk, a szimulációt meg kell ismételni. Nagyon fontos kérdés, hogy a szimulációban alkalmazott modellek valóban jól közelítik e valóságot? A szimulációs eredmények ellenőrzéséhez illetve a szimulációban alkalmazott modellek előállításához mindenképp ellenőrző és karakterizáló mérésekre van szükség. A kész áramkörök (integrált áramkörök, áramköri kártyák) tesztelése többnyire valamilyen tesztáramkörben esetleg tesztberendezésben történik. Előfordulhat azonban, hogy a tesztek alatt tökéletesen működő áramkör a valódi működési környezetébe helyezve mégis meghibásodik. Ekkor szükségessé válik a hiba pontos okának és helyének méréssel való feltárása, meghatározása. Nagy nehézséget jelent, hogy ha a méréseket az eredeti környezetben szeretnénk végrehajtani, akkor maga az általunk behelyezett mérőrendszer is módosítja a valóságos működési körülményeket. Például egy hőmérsékletérzékelő áramkör aktív eszközre való ráhelyezésével egy újabb paralel hővezetési utat viszünk a rendszerbe, aminek következtében az aktív eszköz működés közbeni hőmérséklete csökkenhet. A mérések sikeres elvégzésével lehetséges az áramkörök működési zavarait okozó kritikus részeket lokalizálni, így ezen részletek újratervezésével elérhető a hibamentes működés. Rack szekrényekben, számítógépházakban az áramköri kártyák (pl.: PCI, AGP kártyák) hőmérsékleti térképének és a legmelegebb pont (ún. hot-spot) meghatározása és lokalizálása
154
segítséget nyújthat az áramkör lehetséges hibahelyeinek meghatározására. Nagyon fontos, hogy ez érintésmentesen történjen. Az érintésmentes hőmérséklet érzékelés az áramköri kártyán található passzív– illetve aktív eszközök hőmérsékletével arányos intenzitású hősugárzás érzékelésén alapszik. Az érintésmentes hőmérséklet érzékelés egyik lehetséges módja az infrakamerás térképezés. A speciális kamera képfelvevő egysége a távoliinfravörös tartományba eső fotonokra érzékeny, így láthatóvá válik a testek hőkibocsátása. Működő rendszerben azonban a kártyák olyan szorosan helyezkednek el (20mm távolságban PCI aljazatok esetén), hogy oda hagyományos infrakamerával nem lehet belátni. Egy mérőrendszer tervezésekor ugyanakkor nagyon fontos döntési tényező a gazdasági szempont is, hiszen infrakamerák vagy különböző mikroelektromechanikus eszközök (MEMS) alkalmazásával a mérőrendszer ára nagyon magas lenne.
12.2. Hőátadás konvekcióval Konvektív hőátadásról beszélünk, amikor egy adott hőmennyiség átszállítása egyik helyről a másikra a közeg (valamely gáz vagy folyadék) mozgása által valósul meg. A konvektív hőtranszfer ma is használt elméletének alapjait Prandtl [1] fektette le. Megfigyelései szerint konvektív esetben maga a hőtranszfer csak a szilárd test közvetlen közelében, az úgynevezett termikus határrétegben folyik. Ez az eredmény tette először lehetővé a probléma gyakorlatban is használható matematikai modellezését. A konvekciós hőtranszfer két komponensből tevődik össze: először a szilárd testben tárolt hőmennyiség hődiffúzió (kondukció) útján kerül az áramló közegbe, és ott a magasabb energiaállapotba került molekulák mozgásával halad tovább. Ezt követően a szállított hőmennyiség ismét diffúzió útján kerül a környezetbe vagy a szilárd testbe. A környezeti peremfeltételek függvényében a konvekció két fajtátát különítjük el: Szabadkonvekció esetén a hőszállító közeg áramlását a felhajtóerők okozzák, amit a közeg hőmérsékletváltozás következtében létrejövő sűrűségkülönbségei hoznak létre. A magasabb hőmérsékletű test feletti közeg felmelegszik, és a molekulák szabadúthossza megnő. Ezzel lokálisan csökken a közeg sűrűsége, és sűrűséggradiens jön létre. A rendszer igyekszik kiegyenlíteni a gradienst, így egy folyamatos áramlás indul a meleg test normálisa irányában. Tipikus példa egy radiátor felett kialakuló felfelé irányuló légáramlás. Kényszerkonvekció esetén a hőszállító közeg egy külső erő hatására áramlik. Ezt a külső erőt például egy szivattyú, pumpa, ventillátor hozza létre. Gondoljuk meg, hogy ebben az esetben a hőtranszfernek a közeg áramlása okozta összetevője a külső kényszerítő erő függvényében megnövelhető. Így kényszerkonvekcióval lényegesen nagyobb hőmennyiség szállítható el a meleg testtől, mint szabadkonvekció esetében. A konvektív hőtranszfer matematikai leírása meglehetősen összetett feladat, mivel a legtöbb gyakorlati esetben az áramlási mező is csak analitikusan adható meg. A helyzetet tovább 155
bonyolítja, hogy az áramló közeg hőmennyiség-felvevő képessége is távolságfüggő. Ha azonban a vizsgált geometria és az áramlás a rendszer egy adott keresztmetszetében állandónak tekinthető, az anyagjellemző paraméterek állandóak, valamint a test hőkapacitása elhanyagolható az áramló közeg hőkapacitásához képest, a probléma az úgynevezett Newton féle hűlési törvénnyel közelíthető az alábbi formában: 𝑑𝑄 = ℎ ∙ 𝐴 ∙ (𝑇𝑒𝑛𝑣 − 𝑇(𝑡)) 𝑑𝑡
(12 − 1)
ahol Q[J] a hőmennyiség, h[W/(m2K)] az áramló közeg és a test közti hőátadási tényező (amit ebben az esetben állandónak veszünk), A[m2 ] a felület, ahol a hő áramlik, Tenv[K] a környezeti hőmérséklet, ami szintén állandónak veszünk és T(t) a test felületén kialakuló időfüggő hőmérséklet. A h hőtranszfer tényező távolságfüggésének gyakorlatban is használható elméletét Reynolds dolgozta ki. A precízebb vizsgálatnál természetesen azt is figyelembe kell venni, hogy az elszállított hő révén a környezet hőmérséklete növekszik.
12.3. Hőátadás sugárzással, az érintésmentes hőmérsékletmérés és hőtérkép készítés lehetőségei Induljunk ki a Planck-féle sugárzási törvényből, amely egy T hőmérsékletű, abszolút fekete test egységnyi felületéről, adott idő alatt kibocsátott λ hullámhosszúságú sugárzás energiáját adja meg: 𝐸(𝜆, 𝑇) =
2 ∙ ℎ ∙ 𝑐2 ∙ 𝜆5
1 𝑐 ℎ∙ 𝜆 −1 𝑒 𝑘∙𝑇
[
𝑊 ∙ 𝜇𝑚] 𝑚2
(12 − 2)
ahol h=6,6256·10-34 [Js] a Planck állandó, k=1,38065·10-23 [J/K] a Boltzmann állandó és c=3·108 [m/s] a fénysebesség. Az abszolút fekete test egy olyan hipotetikus test, amely minden ráeső sugárzást elnyel, és emisszió képessége valamennyi test közül a legnagyobb. Planck törvény alapján látható, hogy a fekete test hőmérsékletének növelésével a sugárzás intenzitása is növekszik és a Wien eltolódási törvény értelmében a hőmérsékleti sugárzási spektrumon található intenzitáscsúcs a kisebb hullámhosszak felé tolódik: 𝜆 ∙ 𝑇 = 2897,8 [𝜇𝑚 ∙ 𝐾]
(12 − 3)
Például a 6000°C fokos Nap sugárzási spektrumának a csúcsa közel az 550nm hullámhosszúságnál van, ami éppen az emberi látótartomány közepe. Azon testeknek, amik közel szobahőmérsékletűek (23°C) a sugárzási spektrumuk csúcsa a távoli infravöröstartományba (10um hullámhossz) esik.
156
A távoli infravörös-tartományú sugárzás (Far Infrared Radiation Detector vagy FIR Detector) érzékelésére alapvetően két fajta félvezető alapú érzékelő szolgál [5][6]: A foton abszorpción alapuló érzékelőkben működésük során az elnyelődő foton egy szabad elektron-lyuk párt generál. A generálódott szabad töltéshordozók száma arányos az elnyelt sugárzás intenzitásával, elmozdulásra képesek, így a beeső sugárzás intenzitásával arányos áram mérésével egy távoli test hőmérséklete meghatározhatóvá válik. Előállításuk – köszönhetően az ún. egzotikus félvezetők alkalmazásának – rendkívül drága és működésük során hűtést igényelnek, ugyanis fontos, hogy a beeső hősugárzás hatására keletkezzenek elektron-lyuk párok és ne a szenzor saját működési hőmérsékletének köszönhetően (termikus generáció). Termikus elvű detektorok esetén a beeső és elnyelődő foton hőmérsékletváltozást idéz elő a szenzorban, amit közvetve a detektor anyagának valamilyen hőmérsékletfüggő paraméterének a mérésével határozunk meg (pl.: ellenállás változás). Ezeknek, a hűtést nem igénylő, félvezető alapú, termikus elvű szenzor mátrixoknak jóval olcsóbb az előállítása, kompaktabbak és általában alacsonyabb a fogyasztásuk is. Számos fajtájuk létezik a beeső foton által okozott hőmérsékletváltozás érzékelésének elve szerint: bolometer elvű, termoelektromos elvű, piroelektromos elvű, folyadék kristály elszíneződésén alapuló, stb.[7] A hűtést nem igénylő infravörös tartományú hőmérsékletérzékelő (uncooled IR detectors) szenzorok felépítése a CCD szenzorok mátrixos felépítéséhez hasonló. Ezeknél a szenzormátrix egyes pontjaiban egy-egy piroelektromos, mikrobolométer vagy Seebeck hatáson alapuló MEMS szenzor található. Ezen MEMS eszközök alkalmazásával gyorsan (tipikusan 10ms-on belül) lehet megállapítani egy távoli test hőmérsékletét/hőmérséklet-eloszlását.
12.4. Ajánlott irodalom [1] L. Prandtl , Über Flüssigkeitsbewegung bei sehr kleiner Reibung, Verhandlungen des dritten internationalen Mathematiker Kongress in Heidelberg, 1904 [2] V. Székely, A. Páhi, A. Poppe, M. Rencz, Electro-Thermal Simulation with the SISSI Package, Analog Integrated Circuits and Signal Processing, Vol.21., Issue 1, pp. 21-31 , (1999) [3] Wunsche, S. Clauss, C. Schwarz, P. Winkler, F., Electro-thermal circuit simulation using simulator coupling, IEEE Transactions on Very Large Scale Integration (VLSI) Systems, Vol.5., Issue 3., pp.277-282, (1997) [4] AGA Thermovision 782, termékleírás, http://64.201.62.190/HTML/ aga_thermovision_780_782.htm [2008.Október] [5] Yang Zhao, Minyao Mao, Roberto Horowitz, et al., Optomechanical Uncooled Infrared Imaging System: Design, Microfabrication, and Performance, Journal of Microelectromechanical Systems, 11 (2), pp.136-146., (2002) [6] Paul W. Kruse, David D. Skatrud, Uncooled Infrared Imaging Arrays and Systems, Academic Press, ISBN 978-0127521558, (1997) 157
[7] Mulller M., Budde W., Gotffried-Gottfried R., et al., A thermoelectric infrared radiation sensor with monolithically integrated amplifier stage and temperature sensor, Journal of Solid-state Sensors and Actuators, 54 (1-3), pp.601-605., (1996) [8] B Charlot, V Székely, M Rencz, Gy Bognar, B Courtois, An 8X8 Thermopile based uncooled infrared sensor, In: EMN04, European Micro and Nanosystems 2004, Esiee. &, &, 2004.01.01-2004.01.01., (2004). pp. 131-135. [9] A. Poppe A, G. Farkas G, M. Rencz, Zs. Benedek , L. Pohl, V. Székely, K. Torki, S. Mir, B. Courtois., Design Issues of a Multi-functional Intelligent Thermal Test Die, 17th IEEE Semiconductor Thermal Measurement and Management Symposium (SEMITHERM'01), pp.50-57., (2001) [10] Wavelength Technology, elérhető: http://www.wavelength-tech.com/MaterialGe_Polished.htm [2009. május 25.] [11] Galvoptics Ltd. Germanium Convex Lenses, http://www.galvoptics.fsnet.co.uk/ge.htm [2009. május 25.] [12] Borsos Balázs, Hőmérsékletérzékelő mátrix integrált áramköreinek tervezése, BME Elektronikus Eszközök Tanszéke, Diplomaterv (2002) [13] John R. Howell, A Catalog of Radiation Heat Transfer Configuration Factors, 2nd Edition, Mcgraw-Hill College, University of Texas at Austin, (2001) [14] Yunus A Cengel, Robert H. Turner, Fundamentals of Thermal-Fluid Sciences, McGrawHill, ISBN 007-245426-1, (2005) [15] Catalogue of Material emissivity, http://www.electro-optical.com/ html/bb_rad/emissivity/matlemisivty.asp [2009.május] [16] V. Székely, SUNRED: a new thermal simulator and typical applications, Proceedings of the 3rd THERMINIC Workshop, September 21-23, 1997, Cannes, France, pp. 84-90 (1997) [17] Z. Szűcs, G. Nagy, S. Hodossy, M. Rencz, A. Poppe, 2007. Vibration Combined High Temperature Cycle Tests for Capacitive MEMS Accelerometers, Proceedings of the 13th International Workshop on THERMal INvestigation of ICs and Systems (THERMINIC'07), Budapest, Hungary 17-19 Sept. (2007)
158