Budapesti Műszaki és Gazdaságtudományi Egyetem Logi-termikus szimuláció Dr. Timár András BME, Elektronikus Eszközök Tanszéke 2014. április 22. Dr. Timár András (BME, EET) Logi-termikus szimuláció 2014. április 22. 1 / 70
Bevezetés Bevezetés Dr. Timár András (BME, EET) Logi-termikus szimuláció 2014. április 22. 2 / 70
Bevezetés Mit jelent a logi-termikus? Logikai szimuláció Termikus szimuláció Tisztán digitális Nem foglalkozik a hőmérséklettel Pl. QuestaSim Tisztán termikus szimuláció Teljesítmény, anyagjellemzők, topológia Logi-termikus szimuláció Dr. Timár András (BME, EET) Logi-termikus szimuláció 2014. április 22. 3 / 70
Bevezetés Miért van szükség logi-termikus szimulációra? A melegedés elronthatja a működést Az elektro-termikus szimulációk túl hosszúak Digitális cellás áramköröknél jó megoldás a logi-termikus szimuláció Dr. Timár András (BME, EET) Logi-termikus szimuláció 2014. április 22. 4 / 70
Bevezetés Logikai szimulátorok QuestaSim, ModelSim (Mentor Graphics R ) NCSim (Cadence R ) VCS (Synopsys R ) ISE Webpack (Xilinx R ) Ingyenes szimulátorok Icarus ActiveHDL (csak Windows) Dr. Timár András (BME, EET) Logi-termikus szimuláció 2014. április 22. 5 / 70
Termikus szimulátorok Bevezetés AnSYS COMSOL Multiphysics FloTherm HeatWave HotSpot LayTherm, SISSI, SunRed Tanszéki fejlesztés Előny: tokozás és NYHL hatásainak figyelembe vétele mérési eredmények alapján Dr. Timár András (BME, EET) Logi-termikus szimuláció 2014. április 22. 6 / 70
Bevezetés Mire használható a logi-termikus szimulátor? Már a tervezés fázisban meghatározható, hogy hol lesznek a meleg pontok az áramkörön (hot-spot) Place & Route befolyásolható a hőmérsékleti térkép alapján Hőmérsékletfüggő időzítések szimulálhatóak, vizsgálni lehet a melegedés hatásait szimuláció közben Intel P3 floating-point unit Dr. Timár András (BME, EET) Logi-termikus szimuláció 2014. április 22. 7 / 70
Bevezetés A saját melegedés hatása t nand t inv t inv t inv t inv NAND kapu inverter inverter inverter inverter f ki 1. 2. 5. 10. f ki = 1 2 (t nand + N t i ) 6 5 4 Id [ma] 3 2 1 Egy nmos tranzisztor transzfer karakterisztikája különböző hőmérsékleten. 0-1 20 C 85 C 0 1 2 3 4 5 Ugs [V] t nand és t i hőmérsékletfüggő Dr. Timár András (BME, EET) Logi-termikus szimuláció 2014. április 22. 8 / 70
Bevezetés Logi-termikus folyamat A logi-termikus szimuláció folyamata Áramkör leírás (.v) Termikus szimulátor Fogyasztási adatbázis Tesztkörnyezet (.v) Hullámformák, ido zítések Logikai szimulátor Kapcsolási aktivitás Késleltetések CellTherm xbuf1 Ho mérséklet eloszlás xinv5 xinv4 xinv6 xinv7 xinv8 xinv1 xinv2 xinv3 xinv10 xinv9 xnand xbuf2 xbuf4 xbuf3 Topológia (layout) Dr. Timár András (BME, EET) Logi-termikus szimuláció 2014. április 22. 9 / 70
Bevezetés Logikai szimuláció Sztenderd cellás áramkörök Több ezer cella egy áramkörön A cellák egymáshoz a föld és táp síneken csatlakoznak RTL szintű építőelemek (logikai kapuk, multiplexer, tároló, stb.) A cella szintű felbontás elegendő gyorsabb szimuláció Dr. Timár András (BME, EET) Logi-termikus szimuláció 2014. április 22. 10 / 70
Termikus szimuláció Termikus szimuláció Dr. Timár András (BME, EET) Logi-termikus szimuláció 2014. április 22. 11 / 70
Termikus szimuláció Tokozás Tipikus mikroelektronikai tokozás Kvázi-1D hőterjedés, mert oldalfalak felé nem tud menni Flip-chip miatt a hő a hűtőborda felé távozik (a Si fejjel lefelé van) Dr. Timár András (BME, EET) Logi-termikus szimuláció 2014. április 22. 12 / 70
Disszipáló alakzatok Termikus szimuláció Lehetnek a cellák, vagy teljes műveletvégző egységek is Pl. ALU, cache, stb Dr. Timár András (BME, EET) Logi-termikus szimuláció 2014. április 22. 13 / 70
Termikus szimuláció A termikus modell előállítása 1 Elő kell állítani a termikus válaszfüggvényeket 2 Meg kell oldani a hővezetés Laplace egyenletét (1) 3 Egységugrás gerjesztésre adott ugrásválasz a(t) 4 Minden cellára kiszámoljuk a saját és a többi cella válaszát N cella esetén N 2 válaszfüggvény Adatok: anyagparaméterek (c, λ), disszipációk helye, méretek, peremfeltételek Cél: a struktúrát modellező ekvivalens RC hálózat elkészítése SPICE analóg szimulátorral számíthatóak a hőmérsékletek 2 T x 2 + 2 T y 2 + 2 T z 2 = c T λ t (1) Dr. Timár András (BME, EET) Logi-termikus szimuláció 2014. április 22. 14 / 70
Termikus szimuláció Időállandó-spektrumok meghatározása Időállandó-spektrum Az a(t) ugrás-válaszokból kiszámoljuk a termikus időállandóspektrumot R(z) Széles időtartomány (ms óra), ezért z = ln(t) helyettesítés (logaritmikus x tengely) Hálózati identifikáció dekonvolúcióval (NID) Dr. Timár András (BME, EET) Logi-termikus szimuláció 2014. április 22. 15 / 70
Termikus szimuláció Diszkretizáció Időállandó-spektrumok diszkretizációja Az ekvivalens RC modellhez véges számú értékre kell redukálni a folytonos időállandó-spektrumot Dr. Timár András (BME, EET) Logi-termikus szimuláció 2014. április 22. 16 / 70
Termikus szimuláció RC modell Az RC modell elemértékei R 1 R 2 R k U I U 1 U 2 U k C 1 C 2 C k τ i = e z i R i = K i C i = τ i R i U = hőmérséklet, I = fűtőteljesítmény (disszipáció) A hőmérsékletek meghatározhatóak SPICE analóg szimulációval Dr. Timár András (BME, EET) Logi-termikus szimuláció 2014. április 22. 17 / 70
CellTherm szimulátor CellTherm szimulátor Dr. Timár András (BME, EET) Logi-termikus szimuláció 2014. április 22. 18 / 70
CellTherm szimulátor CellTherm logi-termikus szimulátor EET fejlesztés Tetszőleges szabványos logikai szimulátort használ Tanszéki fejlesztésű termikus szimulátor Logikai és termikus szimulátor közötti összeköttetés Szabványos interfészen kommunikál: Verilog PLI Dr. Timár András (BME, EET) Logi-termikus szimuláció 2014. április 22. 19 / 70
CellTherm szimulátor Részletes folyamat A logi-termikus szimuláció részletes folyamata Magasszintű leírás (Verilog, SystemC, VHDL, stb.) Eldo egyedi netlista szimuláció cellára, bemeneti komb.-ra Szintézis Szintetizált Verilog strukturális leírás Logikai szimulátor (QuestaSim) Energiaértékek kigyűjtése Layout, P&R GDSII, LEF/DEF, XML kimenet Layout adatok Tesztkörnyezet készítés, bemenő vektorok, PLI inic. Verilog PLI eseménykezelők Adatbázis készítés <cella típus>: <Emax >: <E min > Teljesítmény adatok Liberty teljesítmény információ Teljesítmény adatok CellTherm Külső hívás Verilog PLI LayTherm termikus szimulátor SDF időzítések Visszahelyettesítés PLI rutinokkal Hőmérséklet eloszlás Hőmérsékletés layout-függő késleltetések Dr. Timár András (BME, EET) Logi-termikus szimuláció 2014. április 22. 20 / 70
CellTherm szimulátor Verilog PLI Verilog PLI Minden HDL nyelv (VHDL, Verilog) támogatja a felhasználó által írt bővítményeket Verilog PLI: Programming Language Interface Saját függvények készíthetőek, amik meghívhatóak a HDL kódból (pl. $display(), $finish(), stb.) Ezek C/C++ modulok, dinamikusan betölthetőek (.dll/.so) A logikai szimulátor ezeket a felhasználói függvényeket meghívhatja Ki lehet egészíteni a logikai szimulátort akár egy termikus szimulátorral is Dr. Timár András (BME, EET) Logi-termikus szimuláció 2014. április 22. 21 / 70
A PLI használata CellTherm szimulátor Verilog PLI module testpli; i n i t i a l $hellovilag(); 5 //{usertask, 0, 0, 0, hello, 0, "$hellovilag"} endmodule 1. kódrészlet. Verilog kód Fordítás gcc -fpic -shared -I/questasim/include -o pli.so pli.c #include <veriuser.h> #include <acc_user.h> PLI_INT32 hello(pli_int32 data, PLI_INT32 reason) 5 { io_printf("hello Vilag!"); return 0; } 10 s_tfcell veriusertfs[] = { {usertask, 0, 0, 0, hello, 0, "$hellovilag"}, {0} /* last entry must be 0 */ }; 15 void init_usertfs() { p_tfcell usertf = veriusertfs; while (usertf->type) mti_registerusertf(usertf++); 20 } 2. kódrészlet. PLI C kód Dr. Timár András (BME, EET) Logi-termikus szimuláció 2014. április 22. 22 / 70
CellTherm szimulátor Verilog PLI QuestaSim indítása saját PLI rutinnal Munkakönyvtár létrehozása $> vlib munka Munkakönyvtár hozzárendelés $> vmap work munka Verilog forrás fordítása $> vlog pli.v QuestaSim indítása $> vsim -pli pli.so testpli Dr. Timár András (BME, EET) Logi-termikus szimuláció 2014. április 22. 23 / 70
CellTherm szimulátor A szimulátor kimenete Verilog PLI Reading /soft/mentor/ams/questasim/v10.1/tcl/vsim/pref.tcl # 10.1 # vsim -c -pli pli.so testpli # Loading./pli.so # // Questa Sim-64 # // Version 10.1 linux_x86_64 Dec 5 2011... # // # Loading work.testpli # VSIM 1> run # Hello Vilag! Dr. Timár András (BME, EET) Logi-termikus szimuláció 2014. április 22. 24 / 70
CellTherm szimulátor Logi-termikus tesztkörnyezet Tesztkörnyezet include "ringosc.v" define TH_TIMESTEP 1e6 // = 1ms timescale 1ns / 1ps module testbench; reg clk; reg run; wire ring_out; top dut (clk, run, ring_out); i n i t i a l begin clk = 0; run = 1; end always #1000 clk = ~clk; endmodule Dr. Timár András (BME, EET) Logi-termikus szimuláció 2014. április 22. 25 / 70
CellTherm szimulátor Logi-termikus tesztkörnyezet Tesztkörnyezet include "ringosc.v" define TH_TIMESTEP 1e6 // = 1ms timescale 1ns / 1ps module testbench; reg clk; reg run; wire ring_out; top dut (clk, run, ring_out); i n i t i a l begin $celltherm_initlayout(dut,10,10,"ringosc.lib","ringosc.lef","ringosc.def"); $celltherm_init(dut,1, TH_TIMESTEP); clk = 0; run = 1; end always #1000 clk = ~clk; // Termikus motor hivasa, pl. dt = 1 ms // #1e6 = 1ms always begin # TH_TIMESTEP $celltherm_calc( TH_TIMESTEP, 25); end endmodule Dr. Timár András (BME, EET) Logi-termikus szimuláció 2014. április 22. 25 / 70
CellTherm szimulátor Teljesítmény karakterizáció Teljesítmény karakterizáció Bemenő feszültség (n). félperiódus (n + 1). félperiódus Félperiódus 2 Félperiódus 2 P(t) Helyi maximum Helyi maximum 1%-a t t Minden cellára Bemeneti meredekséggel és terhelő kapacitással paraméterezve Analóg SPICE szimulátorral P(t) alatti terület energia CMOS-nál jó T 1 T 2 Dr. Timár András (BME, EET) Logi-termikus szimuláció 2014. április 22. 26 / 70
CellTherm szimulátor Teljesítmény karakterizáció A teljesítmény-sűrűség számítása Logikai szimulátorból kapcsolási aktivitás t idő alatti jelváltások száma (n) Kapcsolási (dinamikus) energia E kapcs = T 2 T 1 P(t)dt P t = E kapcs t t alatt fogyasztott teljesítmény minden cellára P átlag = n P t P átlag -gal hívjuk meg a termikus szimulátort A termikus szimulátor minden t-re ad egy hőmérsékletet t milliszekundumos nagyságrendű Dr. Timár András (BME, EET) Logi-termikus szimuláció 2014. április 22. 27 / 70
CellTherm szimulátor Liberty Liberty adatbázis A cellakönyvtárral jön (általában) Ha nincs ilyenünk, akkor kézzel kell karakterizálni (lásd teljesítmény karakterizáció) Időzítések és fogyasztások minden cellára Bemeneti jelmeredekséggel és terhelő kapacitással paraméterezve Szöveges fájl, könnyen olvasható Mi is tudunk ilyet csinálni SPICE szimulációk alapján pin(co) { direction : output; max_capacitance : 0.32; internal_power() { rise_power(power_outputs_0) { values( " 0.078, 0.054, -0.029, -0.358, -0.798",\ " 0.085, 0.061, -0.023, -0.352, -0.796",\ " 0.096, 0.072, -0.013, -0.344, -0.798",\ " 0.123, 0.097, 0.009, -0.323, -0.837"); } Dr. Timár András (BME, EET) Logi-termikus szimuláció 2014. április 22. 28 / 70
CellTherm szimulátor Particionálás Particionálás N cella, modell generálási idő N 2 N 2 darab modell Cellák helyett hálószerű felbontás Termikus modell számítása gyorsabb Több ezer cellánál is működik, RC hálózat generálása konstans idő DFFR dffr1 DFFR dffr2 nandgate nandgate1 inverter: inv1 DFFR DFFR dffr3 dffr4 inverter: inv2 inverter: inv3 inverter: inv4 inverter: inv5 inverter: inv6 DFFR dffr1 inverter: inv7 inverter: inv8 inverter: inv9 DFFR dffr2 inverter: inv10 DFFR DFFR dffr3 dffr4 Kisebb felbontás, a felbontás növeléséhez a partíciók tovább oszthatók nandgate nandgate1 inverter: inv1 inverter: inv2 inverter: inv3 inverter: inv4 inverter: inv5 inverter: inv6 inverter: inv7 inverter: inv8 inverter: inv9 inverter: inv10 Dr. Timár András (BME, EET) Logi-termikus szimuláció 2014. április 22. 29 / 70
CellTherm szimulátor Particionálás Teljesítmény számítása a partíciókban Egy partícióban fogyasztott teljesítmény a benne található cellák teljesítményével arányos 10% 5% p00 p01 p02 P(p00) = 0,05 P(c1) 21% p10 c1 p11 p12 64% P(p01) = 0,10 P(c1) P(p10) = 0,21 P(c1) p20 p21 p22 P(p11) = 0,64 P(c1) Dr. Timár András (BME, EET) Logi-termikus szimuláció 2014. április 22. 30 / 70
CellTherm szimulátor A particionálás által bevitt hiba Particionálás 0.18 0.16 0.14 0.12 xbuf1 xbuf2 xbuf3 xbuf4 xinv10 xinv2 xinv3 xinv4 xinv5 xinv6 xinv7 xinv8 xinv9 xnand Hiba [%] 0.1 0.08 0.06 0.04 0.02 0 0 0.2 0.4 0.6 0.8 1 Szimulációs idő [s] Dr. Timár András (BME, EET) Logi-termikus szimuláció 2014. április 22. 31 / 70
CellTherm szimulátor Gyorsítás A szimuláció gyorsítása Gigahertzes működésnél a tiszta logikai szimuláció is lassú A nagy termikus időállandók miatt sokáig kell szimulálni (1-10 sec) Egy skálafaktorral (pl. f = 10 vagy 100 ) növeljünk meg minden késleltetést és kapcsolási energiát Késleltetés, frekvencia (ν), kapcsolási energia E = C U 2 P = C U 2 ν P = E ν = 10E P = P 1 10 ν = E ν Dr. Timár András (BME, EET) Logi-termikus szimuláció 2014. április 22. 32 / 70
CellTherm szimulátor A skálázással bevitt hiba Gyorsítás Nem jelentős 0.25 1 10 skálázás relatív eltérése 1600 1474.9 Relatív eltérés [%] 0.248 0.246 0.244 0.242 0.24 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.1 Idő [s] A szimuláció időtartama [s] 1400 1200 1000 800 600 400 200 0 217.9 40.0 1 10 100 Skálázási faktor Dr. Timár András (BME, EET) Logi-termikus szimuláció 2014. április 22. 33 / 70
Hőmérsékletfüggő késleltetések Hőmérsékletfüggő késleltetések Dr. Timár András (BME, EET) Logi-termikus szimuláció 2014. április 22. 34 / 70
Időzítési problémák Hőmérsékletfüggő késleltetések Logi-termikus szimulációval meghatározhatóak a hot-spot-ok Az időzítések megváltoznak a melegedés miatt Szélsőséges hőmérsékletnél a megfelelő logikai működés meghiúsulhat. (pl. setup és hold time nem teljesül) Dr. Timár András (BME, EET) Logi-termikus szimuláció 2014. április 22. 35 / 70
Hőmérsékletfüggő késleltetések Késleltetés-hőmérséklet függések Minden cellára meg lehet határozni Az inv cella késleltetése [ps] 19.2 19 18.8 18.6 18.4 18.2 18 17.8 17.6 17.82 18.36 19.01 A nand cella késleltetése [ps] 32 31 30 29 28 27 26 31.51 31.67 17.4 25 24.11 17.2-20 -10 0 10 20 30 40 50 60 70 80 Hőmérséklet [ C] INV cella 24-20 -10 0 10 20 30 40 50 60 70 80 Hőmérséklet [ C] NAND cella Dr. Timár András (BME, EET) Logi-termikus szimuláció 2014. április 22. 36 / 70
Hőmérsékletfüggő késleltetések SDF SDF Standard Delay Format A szintézer elkészíti a pre- és post-layout időzítési adatbázist SDF Standard Delay Format Szöveges fájl, késleltetések minden cellára, setup/hold idők definíciója, stb. Pontos időzítési értékek az elhelyezéstől és vezetékezéstől függően Csak 3 sarokpontban tárolja el az időzítéseket, ezzel baj lesz később! (DELAYFILE (SDFVERSION "2.0") (DESIGN "ringosc") (TIMESCALE 1 ns) 5... (CELL (CELLTYPE "dffr") (INSTANCE dffr1) (DELAY 10 (ABSOLUTE (PORT D (::0.00) (::0.00)) (PORT CLK (::0.00) (::0.00)) (PORT R (::0.00) (::0.00)) (IOPATH CLK Q (::0.49) (::0.53)) 15 (IOPATH R Q (::0.00) (::0.58)) (IOPATH CLK QB (::0.39) (::0.30)) (IOPATH R QB (::0.44) (::0.00)))) (TIMINGCHECK (SETUP D (posedge CLK) (0.47)) 20 (HOLD D (posedge CLK) (0.06)))) Dr. Timár András (BME, EET) Logi-termikus szimuláció 2014. április 22. 37 / 70
Hőmérsékletfüggő késleltetések SDF Az SDF használata logikai szimulációban A logikai szimulátor támogatja az SDF formátumot A cellák késleltetéseit az SDF-ből helyettesíti be Valós késleltetések Dr. Timár András (BME, EET) Logi-termikus szimuláció 2014. április 22. 38 / 70
Hőmérsékletfüggő késleltetések Időzítési problémák detektálása Setup- és hold időzítés A logikai szimulátor jelzi, ha a setup vagy hold feltételek nem teljesülnek. Ez be van építve minden logikai szimulátorba Pontos időzítési vizsgálatok végezhetők Adat Órajel Adat Órajel előkészítés tartás Dr. Timár András (BME, EET) Logi-termikus szimuláció 2014. április 22. 39 / 70
Hőmérsékletfüggő késleltetések D flip-flop cella időzítései Időzítési problémák detektálása Egy D flip-flop cella késleltetése több hőmérsékleten Bizonyos hőmérséklet felett a setup-time nem teljesül A bemeneti változás nem jut ki a kimenetre 5 4 Feszültség [V] 3 2 1 Órajel (CLK) 0 8.0 9.0 10.0 11.0 12.0 13.0 14.0 15.0 16.0 17.0 Q kimenet feszültsége [V] 5 4 3 2 1 40 C 30 C 20 C 10 C 0 C 10 C 20 C 30 C 40 C 50 C 60 C 70 C 80 C 90 C 0 8.0 9.0 10.0 11.0 12.0 13.0 14.0 15.0 16.0 17.0 Idő [ns] Dr. Timár András (BME, EET) Logi-termikus szimuláció 2014. április 22. 40 / 70
Hőmérsékletfüggő késleltetések D flip-flop cella késleltetése Időzítési problémák detektálása Cella késleltetés a hőmérséklet függvényében Az analóg szimulációt 40 +90 C között futtattuk Csak 40 +50 C tartományban értelmezhető 50 C felett nem jut ki a bemenet a kimenetre a késleltetés nem értelmezett CLK Q késleltetés CLK QB késleltetés 4,5 4 Késleltetés [ns] 3,5 3 2,5 2 1,5-40 -30-20 -10 0 10 20 30 40 50 Hőmérséklet [ C] Dr. Timár András (BME, EET) Logi-termikus szimuláció 2014. április 22. 41 / 70
Hőmérsékletfüggő késleltetések Időzítési problémák detektálása SDF értékek a DFFR cellára (D flip-flop tároló) Setup time: 470 ps Hold time: 60 ps 1800 ps 1500 ps = 300 ps 300 ps < 470 ps Dr. Timár András (BME, EET) Logi-termikus szimuláció 2014. április 22. 42 / 70
Hőmérsékletfüggő késleltetések Időzítési problémák detektálása Konzekvenciák A hőmérsékleti eloszlást le kell képezni késleltetés értékekre Szükséges a hőmérséklet-késleltetés görbék kinyerése A megváltozott késleltetések a szimuláció közben visszahelyettesíthetők, a szimulátor a megváltozott értékekkel számol tovább Ha ebből adódóan időzítési hiba lép fel, a szimulátor ezt jelzi! Dr. Timár András (BME, EET) Logi-termikus szimuláció 2014. április 22. 43 / 70
Demonstrációs áramkör Demonstrációs áramkör Dr. Timár András (BME, EET) Logi-termikus szimuláció 2014. április 22. 44 / 70
Demonstrációs áramkör Teszt áramkör gyu ru s oszcillátor Felület: 0,518 mm 0,355 mm 4 puffer cella, 10 inverter, 1 NAND kapu Gyu ru s oszcillátor: 1 NAND + 10 inverter xbuf1 xbuf4 xbuf3 xinv5 xinv4 xinv6 xinv7 xinv8 xinv1 xinv2 xinv3 xinv10 xinv9 xnand xbuf2 A ring oszcillátor frekvenciája eltolódik a változó ho mérséklet miatt Dr. Timár András (BME, EET) Logi-termikus szimuláció 2014. április 22. 45 / 70
Demonstrációs áramkör Ring oszcillátor Verilog leírása timescale 1ns / 1ps module top(run, data, osc, buf_out); input run; input [3:0] data; output osc; output [3:0] buf_out; wire w1, w2, w3, w4, w5, w6, w7, w8, w9, w10; buf02 xbuf1 (.Y(buf_out[0]),.A(data[0]) ); buf02 xbuf2 (.Y(buf_out[1]),.A(data[1]) ); buf02 xbuf3 (.Y(buf_out[2]),.A(data[2]) ); buf02 xbuf4 (.Y(buf_out[3]),.A(data[3]) ); nand02 xnand (.Y(w1),.A0(run),.A1(osc) ); inv01 xinv1 (.Y(w2),.A(w1) ); inv01 xinv2 (.Y(w3),.A(w2) ); inv01 xinv3 (.Y(w4),.A(w3) ); inv01 xinv4 (.Y(w5),.A(w4) ); inv01 xinv5 (.Y(w6),.A(w5) ); inv01 xinv6 (.Y(w7),.A(w6) ); inv01 xinv7 (.Y(w8),.A(w7) ); inv01 xinv8 (.Y(w9),.A(w8) ); inv01 xinv9 (.Y(w10),.A(w9) ); inv01 xinv10 (.Y(osc),.A(w10) ); endmodule Dr. Timár András (BME, EET) Logi-termikus szimuláció 2014. április 22. 46 / 70
Kézi számítás Demonstrációs áramkör Kézi számítás Jelölés Érték Felület A 1,841 10 7 m 2 Si réteg vastagsága d 5 10 5 m Si termikus vezetőképessége λ 156,3 W m K Fűtőteljesítmény P 4,022 mw Alsó hűtés HTC 500 W m 2 K Környezeti hőmérséklet T amb 0 C P R th R hűtés R th = 1 λ d A = 1 156,3 G hűtés = 500 W m 2 K R hűtés = 1 500 1 1,841 10 7 5 10 5 [ m K 1,841 10 7 W [ m 2 K W T = P (R th + R hűtés ) = 4,022 10 3 ] m m 2 = 1,737 K W ] 1 m 2 = 10,863 10 3 K W ( ) 10,863 10 3 + 1,737 = 43,7 C Dr. Timár András (BME, EET) Logi-termikus szimuláció 2014. április 22. 47 / 70
Demonstrációs áramkör Szükséges adatok Milyen adatok kellenek egy logi-termikus szimulációhoz? Layout leírás (LEF/DEF) Teljesítmények adatbázisa (Liberty) A sztenderd cellák Verilog viselkedési leírása SDF késleltetéseket tartalmazó fájl Verilog testbench Dr. Timár András (BME, EET) Logi-termikus szimuláció 2014. április 22. 48 / 70
Demonstrációs áramkör Szükséges adatok Layout leírás (LEF/DEF) Sztenderd cellás áramköröknél szabványos leírási mód LEF/DEF formátum, szöveges fájlok Minden szintézer szoftver által ismert ki- és bemeneti formátum LEF Minden cella prototípusát tartalmazza Méret, belső összeköttetések Rétegek leírása, viák helyzete Belső elektromos összeköttetések DEF A cella prototípusok példányosítása Pl. inverter cella: inv1, inv2,..., inv10 Megadja a cellák pontos helyét a layout-on Összeköttetések, vezetékek a cellák között Dr. Timár András (BME, EET) Logi-termikus szimuláció 2014. április 22. 49 / 70
Demonstrációs áramkör Szükséges adatok Teljesítmények adatbázisa (Liberty) Szabványos, nyílt formátum a cellakönyvtár jellemzőinek tárolására Szöveges formátum Időzítések Késleltetések Cella kapacitások Teljesítmények Egy jelváltás egy bizonyos cella egy portján hány Joule energia fogyasztással jár (ezt fogjuk felhasználni!) Minden adat táblázatos formában van jelen, pl: A fogyasztott teljesítmény függ a terhelő kapacitástól... és a gerjesztő jelek felfutási/lefutási idejétől Ez egy 3 dimenziós táblázat Dr. Timár András (BME, EET) Logi-termikus szimuláció 2014. április 22. 50 / 70
Demonstrációs áramkör Szükséges adatok Verilog viselkedési leírás A cellakönyvtár tartalmazza minden cella viselkedési leírását Így lehet logikai szimulációt végezni celldefine timescale 1ns / 1ps module nandgate(out, A, B); input A; input B; output OUT; specify specparam delaya = 1; specparam delayb = 1; (A => OUT) = (delaya); (B => OUT) = (delayb); endspecify assign OUT = ~(A===1 bx? 0 : A & B===1 bx? 0 : B); endmodule endcelldefine Dr. Timár András (BME, EET) Logi-termikus szimuláció 2014. április 22. 51 / 70
Demonstrációs áramkör Szükséges adatok SDF késleltetések A szintézer program generálja Tartalmazza minden cella késleltetését és a setup/hold feltételeket (DELAYFILE (SDFVERSION "2.0") (DESIGN "ringosc") (TIMESCALE 1 ns)... (CELL (CELLTYPE "dffr") (INSTANCE dffr1) (DELAY (ABSOLUTE (PORT D (::0.00) (::0.00)) (PORT CLK (::0.00) (::0.00)) (PORT R (::0.00) (::0.00)) (IOPATH CLK Q (::0.49) (::0.53)) (IOPATH R Q (::0.00) (::0.58)) (IOPATH CLK QB (::0.39) (::0.30)) (IOPATH R QB (::0.44) (::0.00)))) (TIMINGCHECK (SETUP D (posedge CLK) (0.47)) (HOLD D (posedge CLK) (0.06)))) Dr. Timár András (BME, EET) Logi-termikus szimuláció 2014. április 22. 52 / 70
Demonstrációs áramkör Eredmények Teljesítmény térkép A puffer cellák fogyasztása 1 mw/billenés Az inverterek fogyasztása 1 µw/billenés Teljesítménysu ru ség a 3,4. másodpercben xinv5 xinv4 xinv6 xinv7 xinv8 xbuf4 xbuf3 xbuf2 60 40 Dr. Timár András (BME, EET) 0.516 0.464 0.413 0.361 0.31 0.258 0.206 0.155 0.103 20 Teljesítménysu ru ség [ mw cm 2 ] xinv1 xinv2 xinv3 xinv10 xinv9 100 80 0.0516 0 120 xbuf1 xnand 140 Magasság [mm] 0.353 0.318 0.283 0.247 0.212 0.177 0.141 0.106 0.0707 0.0353 0 0 Szélesség [mm] Logi-termikus szimuláció 2014. április 22. 53 / 70
Demonstrációs áramkör Eredmények Ho mérsékleti térkép xbuf1 xbuf4 xbuf3 xinv5 xinv4 xinv6 xinv7 xinv8 xbuf2 xinv1 xinv2 xinv3 xinv10 xinv9 xnand A fogyasztási eloszlás alapján kialakult ho mérsékleti térkép Dr. Timár András (BME, EET) Logi-termikus szimuláció 2014. április 22. 54 / 70
Demonstrációs áramkör Hőmérsékleti diagram Eredmények A DFFR( cellák és ) az inv5 cella hőmérsékletei f (t) = A 1 e t τ A hőmérséklet megegyezik a kézzel számolttal (43,7 C) Temperature [ C] 50 45 40 35 30 25 20 15 10 5 buf1 nand inv5 43.59 0 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 Time [s] Dr. Timár András (BME, EET) Logi-termikus szimuláció 2014. április 22. 55 / 70
Demonstrációs áramkör A ring oszcillátor frekvenciája Eredmények Frekvencia és periódusidő időfüggése 1.52 1.50 Oszcillációs frekvencia Periódusidő 720 710 Frekvencia [GHz] 1.48 1.46 1.44 1.42 700 690 680 670 660 Periódusidő [ps] 1.40 0 1 2 3 4 5 650 Idő [s] Dr. Timár András (BME, EET) Logi-termikus szimuláció 2014. április 22. 56 / 70
Demonstrációs áramkör A ring oszcillátor frekvenciája Eredmények Frekvencia és periódusidő az inv5 cella hőmérsékletének függvényében 1.52 1.5 Oszcillációs frekvencia Periódusidő 720 710 Frekvencia [GHz] 1.48 1.46 1.44 1.42 700 690 680 670 660 Periódusidő [ps] 1.4 0 5 10 15 20 25 30 35 40 650 Az inv5 cella hőmérséklete [ C] Dr. Timár András (BME, EET) Logi-termikus szimuláció 2014. április 22. 57 / 70
Verifikáció Verifikáció Dr. Timár András (BME, EET) Logi-termikus szimuláció 2014. április 22. 58 / 70
Verifikáció SPICE logi-termikus verifikáció Hőmérséklet [ C] 45 40 35 30 25 20 15 10 5 CellTherm szimuláció SPICE szimulació 0 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 Idő [s] Hiba [%] Az eltérés 3,5 % alatti 3.5 3 2.5 2 1.5 1 0.5 0 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 Idő [s] Dr. Timár András (BME, EET) Logi-termikus szimuláció 2014. április 22. 59 / 70
Verifikáció A frekvenciamenet SPICE verifikációja 1.52 1.5 SPICE CellTherm 3.45 Az eltérés 3,5 % alatti 1.48 3.4 Frekvencia [GHz] 1.46 1.44 1.42 1.4 1.38 1.36 5 10 15 20 25 30 35 40 Hőmérséklet [ C] Relatív hiba [%] 3.35 3.3 3.25 3.2 3.15 3.1 3.05 3 5 10 15 20 25 30 35 40 Hőmérséklet [ C] Dr. Timár András (BME, EET) Logi-termikus szimuláció 2014. április 22. 60 / 70
Verifikáció CellTherm és LogiTherm összahasonlítás A LogiTherm szintén az EET tanszéken fejlesztett más elvű logitermikus szimulátor 31 Logitherm CellTherm 1 Az eltérés 1 % alatti 30 0.8 Hőmérséklet [ C] 29 28 27 26 25 0 10 20 30 40 50 60 70 80 Idő [s] Relatív hiba [%] 0.6 0.4 0.2 0-0.2-0.4-0.6 0 10 20 30 40 50 60 70 80 Idő [s] Dr. Timár András (BME, EET) Logi-termikus szimuláció 2014. április 22. 61 / 70
Ipari áramkör Ipari áramkör Dr. Timár András (BME, EET) Logi-termikus szimuláció 2014. április 22. 62 / 70
Ipari áramkör Ipari méretű és bonyolultságú áramkör POLITO torinoi műszaki egyetem fejlesztése Jelfeldolgozó áramkör, 1490 cella Dr. Timár András (BME, EET) Logi-termikus szimuláció 2014. április 22. 63 / 70
Ipari áramkör POLITO áramkör szimulációja Magasság [mm] Teljesítmény eloszlás 4,56 másodperc után 0.12 6.00 0.11 5.00 0.096 0.084 4.00 0.072 0.06 3.00 0.048 2.00 0.036 0.024 1.00 0.012 0 0.00 0 0.012 0.024 0.036 0.048 0.06 0.072 0.084 0.096 0.11 0.12 Szélesség [mm] cm 2 ] Teljesítménysűrűség [ µw Magasság [mm] Hőmérséklet eloszlás 4,56 másodperc után 0.12 0.189 0.11 0.188 0.096 0.084 0.072 0.06 0.048 0.036 0.024 0.012 0 0 0.012 0.024 0.036 0.048 0.06 0.072 0.084 0.096 0.11 0.12 Szélesség [mm] 0.187 0.186 0.185 0.184 0.183 Hőmérséklet különbség [ C] Dr. Timár András (BME, EET) Logi-termikus szimuláció 2014. április 22. 64 / 70
Új modell Új hőmérsékletfüggő időzítési modell Dr. Timár András (BME, EET) Logi-termikus szimuláció 2014. április 22. 65 / 70
Új modell Probléma az SDF modellel Csak a sarokpontoknál (design corners) pontos A sarokpontok között lineáris interpoláció kell Nem a pontos késleltetés-hőmérséklet görbével számolunk! Késleltetés (inverter cella) [ns] 1.95 1.9 1.85 1.8 1.75 1.78 ns 1.84 ns 1.90 ns Pontos hőmérsékletfüggő késleltetés SDF interpolált késleltetés 1.7-20 0 20 40 60 80 Hőmérséklet [ C] Késleltetés (NAND cella) [ns] 3.2 3 2.8 2.6 2.4 3.15 ns 3.17 ns 2.41 ns 2.2 Pontos hőmérsékletfüggő késleltetés SDF interpolált késleltetés 2-20 0 20 40 60 80 Hőmérséklet [ C] Dr. Timár András (BME, EET) Logi-termikus szimuláció 2014. április 22. 66 / 70
Új modell Szimuláció SDF késleltetések alapján Törés 0,144 s-nál Itt lesz 25 C fokos a hőmérséklet Töréspont a linearizált SDF karakterisztikában! Pontatlan! 43.2 43 0,144 s Oszcillátor periódusidő [ns] 42.8 42.6 42.4 42.2 42 41.8 0 0.5 1 1.5 2 2.5 3 3.5 4 Szimulációs idő [s] Dr. Timár András (BME, EET) Logi-termikus szimuláció 2014. április 22. 67 / 70
Új modell Szimuláció a tényleges hőfüggő késleltetésekkel Sokkal pontosabb eredmények! 43.4 43.2 Oszcillátor periódusidő [ns] 43 42.8 42.6 42.4 42.2 42 41.8 0 0.5 1 1.5 2 2.5 3 3.5 4 Szimulációs idő [s] Dr. Timár András (BME, EET) Logi-termikus szimuláció 2014. április 22. 68 / 70
Új modell A pontos és a linearizált SDF eredmények eltérése 43.4 43.2 Pontos késleltetések SDF késleltetések Oszcillátor periódusidő [ns] 43 42.8 42.6 42.4 42.2 42 41.8 0 0.5 1 1.5 2 2.5 3 3.5 4 Szimulációs idő [s] Dr. Timár András (BME, EET) Logi-termikus szimuláció 2014. április 22. 69 / 70
Összegzés Összegzés A CellTherm a BME EET tanszéken fejlesztett logi-termikus szimuláció futtatására alkalmas eszköz Digitális standard cellás áramkörök szimulációjára alkalmas Ipari logikai és termikus szimulátorokat kapcsol össze szabványos interfészekkel Az IC tervezőknek nem kell új eszközöket megismerniük A hőmérsékletfüggő késleltetések figyelembe vételével képes jelezni, ha a megváltozott hőmérsékletek miatt az áramkör funkcionálisan működésképtelenné válik Dr. Timár András (BME, EET) Logi-termikus szimuláció 2014. április 22. 70 / 70