Upload
others
View
4
Download
0
Embed Size (px)
Citation preview
Budapesti Muszaki é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ó
Tisztán digitálisNem foglalkozik a ho-mérséklettelPl. QuestaSim
Termikus szimuláció
Tisztán termikus szimu-lációTeljesítmény, anyagjel-lemzok, 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 muködéstAz elektro-termikus szimulációk túl hosszúakDigitá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
IcarusActiveHDL (csak Windows)
Dr. Timár András (BME, EET) Logi-termikus szimuláció 2014. április 22. 5 / 70
Bevezetés
Termikus szimulátorok
AnSYSCOMSOL MultiphysicsFloThermHeatWaveHotSpotLayTherm, SISSI, SunRed
Tanszéki fejlesztésElony: tokozás és NYHL hatásainak figyelembe vétele mérési ered-mé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 me-leg pontok az áramkörön (hot-spot)Place & Route befolyásolható a homérsékleti térkép alapjánHomérsékletfüggo idozítések szimulálhatóak, vizsgálni lehet amelegedés hatásait szimuláció közbenIntel 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
NANDkapu
tnand
inverter
tinv
1.
inverter
tinv
2.
inverter
tinv
5.
inverter
tinv
10.
fki
fki =1
2 · (tnand + N · ti)
Egy nMOS tranzisztortranszfer karakterisztikájakülönbözo homérsékleten.
−20 ◦C85 ◦C
-1
0
1
2
3
4
5
6
0 1 2 3 4 5
I d[m
A]
Ugs [V]
tnand és ti homérséklet-függo
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
Termikusszimulátor
Logikaiszimulátor
CellTherm
Homérsékleteloszlás
Fogyasztásiadatbázis
Topológia(layout)
xbuf2
xbuf4
xbuf3
xbuf1
xnand
xinv1
xinv2
xinv3
xinv10
xinv9
xinv5
xinv4
xinv6
xinv7
xinv8
Hullámformák,idozítések
Áramkörleírás (.v)
Tesztkörnyezet(.v)
Kapcsolásiaktivitás Késleltetések
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önA cellák egymáshoz a föld és táp síneken csatlakoznakRTL szintu építoelemek (logikai kapuk, multiplexer, tároló, stb.)A cella szintu felbontás elegendo→ 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ásKvázi-1D hoterjedés, mert oldalfalak felé nem tud menniFlip-chip miatt a ho a hutoborda felé távozik (a Si fejjel lefelé van)
Dr. Timár András (BME, EET) Logi-termikus szimuláció 2014. április 22. 12 / 70
Termikus szimuláció
Disszipáló alakzatok
Lehetnek a cellák, vagy teljes muveletvégzo egységek isPl. 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 eloállítása
1 Elo kell állítani a termikus válaszfüggvényeket2 Meg kell oldani a hovezeté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 N2 válaszfüggvényAdatok: anyagparaméterek (c, λ), disszipációk helye, méretek,peremfeltételekCél: a struktúrát modellezo ekvivalens RC hálózat elkészítéseSPICE analóg szimulátorral számíthatóak a homérsékletek
∂2T∂x2 +
∂2T∂y2 +
∂2T∂z2 =
cλ
∂T∂t
(1)
Dr. Timár András (BME, EET) Logi-termikus szimuláció 2014. április 22. 14 / 70
Termikus szimuláció Idoállandó-spektrumok meghatározása
Idoállandó-spektrum
Az a(t) ugrás-válaszokból kiszámoljuk a termikus idoállandó-spektrumot R(z)
Széles idotartomány (ms–óra), ezért z = ln(t) helyettesítés (loga-ritmikus 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ó
Idoállandó-spektrumok diszkretizációja
Az ekvivalens RC modellhez véges számú értékre kell redukálni afolytonos idoá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
I
U
R1
C1
U1
R2
C2
U2
Rk
Ck
Uk
τi = ezi
Ri = Ki
Ci =τi
RiU = homérséklet, I = futoteljesítmény (disszipáció)A homé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ésTetszoleges szabványos logikai szimulátort használTanszéki fejlesztésu termikus szimulátorLogikai és termikus szimulátor közötti összeköttetésSzabvá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 folyamataMagasszintu leírás
(Verilog, Sys-temC, VHDL, stb.)
SzintézisSzintetizált
Verilog struk-turális leírás
Layout,P&R
GDSII,LEF/DEF,
XML kimenet
Logikai szimulá-tor (QuestaSim)
Tesztkörnyezetkészítés, bemenovektorok, PLI inic.
CellTherm
Verilog PLI
Energiaértékekkigyujtése
Eldo egyedi netlistaszimuláció ∀cellára,∀bemeneti komb.-ra
Adatbáziskészítés
<cella típus>:<Emax >:<Emin>
Liberty tel-jesítményinformáció
LayTherm termi-kus szimulátor
Homérsékleteloszlás
Homérséklet-és layout-függokésleltetések
SDF idozítések
Layout adatok
VerilogPLI
esemény-kezelok Teljesítmény
adatok
Külso hívás
VisszahelyettesítésPLI rutinokkal
Teljesítményadatok
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 bovítményeketVerilog PLI: Programming Language InterfaceSaját függvények készíthetoek, amik meghívhatóak a HDL kódból(pl. $display(), $finish(), stb.)Ezek C/C++ modulok, dinamikusan betölthetoek (.dll/.so)A logikai szimulátor ezeket a felhasználói függvényeket meghív-hatjaKi lehet egészíteni a logikai szimulátort akár egy termikus szimu-látorral is
Dr. Timár András (BME, EET) Logi-termikus szimuláció 2014. április 22. 21 / 70
CellTherm szimulátor Verilog PLI
A PLI használata
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ásgcc -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 Verilog PLI
A szimulátor kimenete
Reading/soft/mentor/ams/questasim/v10.1/tcl/vsim/pref.tcl
# 10.1# vsim -c -pli pli.so testpli# Loading ./pli.so
5 # // Questa Sim-64# // Version 10.1 linux_x86_64 Dec 5 2011...# //# Loading work.testpli
10 #VSIM 1> run# Hello Vilag!
Dr. Timár András (BME, EET) Logi-termikus szimuláció 2014. április 22. 24 / 70
CellTherm szimulátor Tesztkörnyezet
Logi-termikus tesztkörnyezet
‘include "ringosc.v"‘define TH_TIMESTEP 1e6 // = 1ms‘timescale 1ns / 1psmodule testbench;
5 reg clk;reg run;wire ring_out;
top dut (clk, run, ring_out);10
i n i t i a lbegin
15clk = 0;run = 1;end
20 always #1000 clk = ~clk;
25
endmodule
Dr. Timár András (BME, EET) Logi-termikus szimuláció 2014. április 22. 25 / 70
CellTherm szimulátor Tesztkörnyezet
Logi-termikus tesztkörnyezet
‘include "ringosc.v"‘define TH_TIMESTEP 1e6 // = 1ms‘timescale 1ns / 1psmodule testbench;
5 reg clk;reg run;wire ring_out;
top dut (clk, run, ring_out);10
i n i t i a lbegin$celltherm_initlayout(dut,10,10,"ringosc.lib","ringosc.lef","ringosc.def");$celltherm_init(dut,1,‘TH_TIMESTEP);
15clk = 0;run = 1;end
20 always #1000 clk = ~clk;
// Termikus motor hivasa, pl. dt = 1 ms// #1e6 = 1ms
always25 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ó
t
Bemenofeszültség
(n). félperiódus(n + 1).
félperiódus
Félperiódus2
Félperiódus2
t
P(t)
Helyi maximum 1%-a
T1 T2
Helyi maximum
Minden celláraBemeneti meredekség-gel és terhelo kapacitás-sal paraméterezveAnalóg SPICE szimulá-torralP(t) alatti terület energiaCMOS-nál jó
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-suruség számítása
Logikai szimulátorból→ kapcsolási aktivitás∆t ido alatti jelváltások száma (n)
Kapcsolási (dinamikus) energia Ekapcs =T2∫T 1
P(t)dt
P∆t =Ekapcs
∆t∆t alatt fogyasztott teljesítmény minden celláraPátlag = n · P∆t
Pátlag-gal hívjuk meg a termikus szimulátortA termikus szimulátor minden ∆t-re ad egy homérsékletet∆t milliszekundumos nagyságrendu
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ít-mény karakterizáció)Idozítések és fogyasztások minden celláraBemeneti jelmeredekséggel és terhelo kapacitással paraméterez-veSzöveges fájl, könnyen olvashatóMi is tudunk ilyet csinálni SPICE szimulációk alapjánpin(CO) {
direction : output;max_capacitance : 0.32;
internal_power() {5 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");
10 }
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 ido ∼ N2
N2 darab modellCellák helyett hálószerufelbontás
Termikus modell szá-mítása gyorsabbTöbb ezer cellánál ismuködik, RC hálózatgenerálása konstansido
Kisebb felbontás, a fel-bontás növeléséhez apartíciók tovább osztha-tók
DFFRdffr1
DFFRdffr2
DFFRdffr3
DFFRdffr4
nand
gate
nand
gate
1
inve
rter
: inv
1in
vert
er: i
nv1
inve
rter
: inv
2
inve
rter
: inv
3
inve
rter
: inv
4
inve
rter
: inv
5
inve
rter
: inv
6
inve
rter
: inv
7
inve
rter
: inv
8
inve
rter
: inv
9
inve
rter
: inv
10
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ákteljesítményével arányos
p20
p10
p00
p21
p11
p01
p22
p12
p02
c1
5%
21%
10%
64%
P(p00) = 0,05 · P(c1)
P(p01) = 0,10 · P(c1)
P(p10) = 0,21 · P(c1)
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 Particionálás
A particionálás által bevitt hiba
xbuf1xbuf2xbuf3xbuf4
xinv10xinv2xinv3
xinv4xinv5xinv6xinv7xinv8xinv9
xnand
0
0.02
0.04
0.06
0.08
0.1
0.12
0.14
0.16
0.18
0 0.2 0.4 0.6 0.8 1
Hib
a[%
]
Szimulációs ido [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 muködésnél a tiszta logikai szimuláció is lassúA nagy termikus idoállandók miatt sokáig kell szimulálni (1-10sec)Egy skálafaktorral (pl. f = 10× vagy 100×) növeljünk meg mindenkésleltetést és kapcsolási energiátKésleltetés ↑, frekvencia (ν) ↓, kapcsolási energia ↑
E = C · U2
P = C · U2 · ν
P ′ = E ′ · ν ′ = 10E · 110ν = E · ν
P ′ = P
Dr. Timár András (BME, EET) Logi-termikus szimuláció 2014. április 22. 32 / 70
CellTherm szimulátor Gyorsítás
A skálázással bevitt hiba
Nem jelentos
1×–10× skálázás relatív eltérése
0.24
0.242
0.244
0.246
0.248
0.25
0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.1
Rel
atív
elté
rés
[%]
Ido [s]
1474.9
217.9
40.0
0
200
400
600
800
1000
1200
1400
1600
1 10 100
Asz
imul
áció
idot
arta
ma
[s]
Skálázási faktor
Dr. Timár András (BME, EET) Logi-termikus szimuláció 2014. április 22. 33 / 70
Homérsékletfüggo késleltetések
Homérsékletfüggokésleltetések
Dr. Timár András (BME, EET) Logi-termikus szimuláció 2014. április 22. 34 / 70
Homérsékletfüggo késleltetések
Idozítési problémák
Logi-termikus szimulációval meghatározhatóak a hot-spot-okAz idozítések megváltoznak a melegedés miattSzélsoséges homérsékletnél a megfelelo logikai mukö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
Homérsékletfüggo késleltetések
Késleltetés-homérséklet függések
Minden cellára meg lehet határozni
17.82
18.36
19.01
17.2
17.4
17.6
17.8
18
18.2
18.4
18.6
18.8
19
19.2
-20 -10 0 10 20 30 40 50 60 70 80
Az
inv
cella
késl
elte
tése
[ps]
Homérséklet [◦C] INV cella
31.51
31.67
24.11
24
25
26
27
28
29
30
31
32
-20 -10 0 10 20 30 40 50 60 70 80
Ana
ndce
llaké
slel
teté
se[p
s]
Homérséklet [◦C] NAND cella
Dr. Timár András (BME, EET) Logi-termikus szimuláció 2014. április 22. 36 / 70
Homérsékletfüggo késleltetések SDF
SDF – Standard Delay Format
A szintézer elkészíti a pre- éspost-layout idozítési adatbá-zistSDF – Standard Delay FormatSzöveges fájl, késleltetésekminden cellára, setup/holdidok definíciója, stb.Pontos idozítési értékek az el-helyezéstol és vezetékezéstolfüggoenCsak 3 sarokpontban tárolja elaz idozítéseket, ezzel baj leszkésobb!
(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
Homérsékletfüggo késleltetések SDF
Az SDF használata logikai szimulációban
A logikai szimulátor támogatja az SDF formátumotA cellák késleltetéseit az SDF-bol helyettesíti beValós késleltetések
Dr. Timár András (BME, EET) Logi-termikus szimuláció 2014. április 22. 38 / 70
Homérsékletfüggo késleltetések Idozítési problémák detektálása
Setup- és hold idozítés
A logikai szimulátor jelzi, ha a setup vagy hold feltételek nem tel-jesülnek.Ez be van építve minden logikai szimulátorbaPontos idozítési vizsgálatok végezhetok
elokészítés
Adat
Órajel
tartás
Adat
Órajel
Dr. Timár András (BME, EET) Logi-termikus szimuláció 2014. április 22. 39 / 70
Homérsékletfüggo késleltetések Idozítési problémák detektálása
D flip-flop cella idozítései
Egy D flip-flop cella késleltetése több homérsékletenBizonyos homérséklet felett a setup-time nem teljesülA bemeneti változás nem jut ki a kimenetre
Órajel (CLK)
−40 ◦C−30 ◦C−20 ◦C−10 ◦C
0 ◦C10 ◦C20 ◦C
30 ◦C40 ◦C50 ◦C60 ◦C70 ◦C80 ◦C90 ◦C
0
1
2
3
4
5
8.0 9.0 10.0 11.0 12.0 13.0 14.0 15.0 16.0 17.0
Fesz
ülts
ég[V
]
0
1
2
3
4
5
8.0 9.0 10.0 11.0 12.0 13.0 14.0 15.0 16.0 17.0
Qki
men
etfe
szül
tség
e[V
]
Ido [ns]
Dr. Timár András (BME, EET) Logi-termikus szimuláció 2014. április 22. 40 / 70
Homérsékletfüggo késleltetések Idozítési problémák detektálása
D flip-flop cella késleltetése
Cella késleltetés a homérséklet függvényébenAz analóg szimulációt −40–+90 ◦C között futtattukCsak −40–+50 ◦C tartományban értelmezheto50 ◦C felett nem jut ki a bemenet a kimenetre→ a késleltetés nemértelmezett
CLK→ Q késleltetésCLK→ QB késleltetés
1,5
2
2,5
3
3,5
4
4,5
-40 -30 -20 -10 0 10 20 30 40 50
Kés
lelte
tés
[ns]
Homérséklet [◦C]
Dr. Timár András (BME, EET) Logi-termikus szimuláció 2014. április 22. 41 / 70
Homérsékletfüggo késleltetések Idozítési problémák detektálása
SDF értékek a DFFR cellára (D flip-flop tároló)Setup time: 470 psHold time: 60 ps
1800 ps− 1500 ps = 300 ps300 ps < 470 ps
Dr. Timár András (BME, EET) Logi-termikus szimuláció 2014. április 22. 42 / 70
Homérsékletfüggo késleltetések Idozítési problémák detektálása
Konzekvenciák
A homérsékleti eloszlást le kell képezni késleltetés értékekreSzükséges a homérséklet-késleltetés görbék kinyeréseA megváltozott késleltetések a szimuláció közben visszahelyette-síthetok, a szimulátor a megváltozott értékekkel számol továbbHa ebbol adódóan idozí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 – gyurus oszcillátor
Felület: 0,518 mm× 0,355 mm4 puffer cella, 10 inverter, 1 NAND kapuGyurus oszcillátor: 1 NAND + 10 inverterA ring oszcillátor frekvenciája eltolódik a változó homérséklet mi-att
xbuf2
xbuf4
xbuf3
xbuf1
xnand
xinv1
xinv2
xinv3
xinv10
xinv9
xinv5
xinv4
xinv6
xinv7
xinv8
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 / 1psmodule top(run, data, osc, buf_out);
input run;input [3:0] data;
5 output osc;output [3:0] buf_out;
wire w1, w2, w3, w4, w5, w6, w7, w8, w9, w10;
10 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]) );
15 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) );
20 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) );
25 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
Demonstrációs áramkör Kézi számítás
Kézi számításJelölés Érték
Felület A 1,841 · 10−7 m2
Si réteg vastagsága d 5 · 10−5 mSi termikus vezetoképessége λ 156,3 W
m KFutoteljesítmény P 4,022 mW
Alsó hutés HTC 500 Wm2 K
Környezeti homérséklet Tamb 0 ◦C
P Rth Rhutés
Rth =1λ·
dA
=1
156,3·
5 · 10−5
1,841 · 10−7
[m KW·
mm2
]= 1,737
KW
Ghutés = 500W
m2 K
Rhutés =1
500·
11,841 · 10−7
[m2 K
W·
1m2
]= 10,863 · 103 K
W
T = P · (Rth + Rhutés) = 4,022 · 10−3 ·(
10,863 · 103 + 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-termikusszimulációhoz?
Layout leírás (LEF/DEF)Teljesítmények adatbázisa (Liberty)A sztenderd cellák Verilog viselkedési leírásaSDF késleltetéseket tartalmazó fájlVerilog 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ódLEF/DEF formátum, szöveges fájlokMinden szintézer szoftver által ismert ki- és bemeneti formátumLEF
Minden cella prototípusát tartalmazzaMéret, belso összeköttetésekRétegek leírása, viák helyzeteBelso elektromos összeköttetések
DEFA cella prototípusok példányosításaPl. inverter cella: inv1, inv2, . . ., inv10Megadja 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 jellemzoinek tárolásá-raSzöveges formátumIdozítésekKésleltetésekCella kapacitásokTeljesítményekEgy jelváltás egy bizonyos cella egy portján hány Joule energiafogyasztá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 terhelo kapacitástól. . . és a gerjeszto jelek felfutási/lefutási idejétolEz 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 / 1psmodule nandgate(OUT, A, B);
input A;5 input B;
output OUT;
specifyspecparam delayA = 1;
10 specparam delayB = 1;
(A => OUT) = (delayA);(B => OUT) = (delayB);
endspecify15
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áljaTartalmazza minden cella késleltetését és a setup/hold feltételeket
(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. 52 / 70
Demonstrációs áramkör Eredmények
Teljesítmény térkép
A puffer cellák fogyasztása 1 mW/billenésAz inverterek fogyasztása 1 µW/billenés
Teljesítménysuruség a 3,4. másodpercben0
0.05
16
0.10
3
0.15
5
0.20
6
0.25
8
0.31
0.36
1
0.41
3
0.46
4
0.51
6
Szélesség [mm]
00.03530.0707
0.1060.1410.1770.2120.2470.2830.3180.353
Mag
assá
g[m
m]
0
20
40
60
80
100
120
140
Telje
sítm
énys
urus
ég[m
Wcm
2]
xbuf2
xbuf4
xbuf3
xbuf1
xnand
xinv1
xinv2
xinv3
xinv10
xinv9
xinv5
xinv4
xinv6
xinv7
xinv8
Dr. Timár András (BME, EET) Logi-termikus szimuláció 2014. április 22. 53 / 70
Demonstrációs áramkör Eredmények
Homérsékleti térkép
A fogyasztási eloszlás alapján kialakult homérsékleti térkép
xbuf2
xbuf4
xbuf3
xbuf1
xnand
xinv1
xinv2
xinv3
xinv10
xinv9
xinv5
xinv4
xinv6
xinv7
xinv8
Dr. Timár András (BME, EET) Logi-termikus szimuláció 2014. április 22. 54 / 70
Demonstrációs áramkör Eredmények
Homérsékleti diagram
A DFFR cellák és az inv5 cella homérsékleteif (t) = A
(1− e−
tτ
)A homérséklet megegyezik a kézzel számolttal (43,7 ◦C)
buf1nandinv5
43.59
0
5
10
15
20
25
30
35
40
45
50
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
Tem
pera
ture
[◦C
]
Time [s]
Dr. Timár András (BME, EET) Logi-termikus szimuláció 2014. április 22. 55 / 70
Demonstrációs áramkör Eredmények
A ring oszcillátor frekvenciája
Frekvencia és periódusido idofüggéseOszcillációs frekvencia
Periódusido
1.40
1.42
1.44
1.46
1.48
1.50
1.52
0 1 2 3 4 5650
660
670
680
690
700
710
720
Frek
venc
ia[G
Hz]
Perió
dusi
do[p
s]
Ido [s]
Dr. Timár András (BME, EET) Logi-termikus szimuláció 2014. április 22. 56 / 70
Demonstrációs áramkör Eredmények
A ring oszcillátor frekvenciája
Frekvencia és periódusido az inv5 cella homérsékletének függ-vényében
Oszcillációs frekvenciaPeriódusido
1.4
1.42
1.44
1.46
1.48
1.5
1.52
0 5 10 15 20 25 30 35 40650
660
670
680
690
700
710
720
Frek
venc
ia[G
Hz]
Perió
dusi
do[p
s]
Az inv5 cella homé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ó
CellTherm szimulációSPICE szimulació
0
5
10
15
20
25
30
35
40
45
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
Hom
érsé
klet
[◦C
]
Ido [s]
Az eltérés 3,5 % alatti
0
0.5
1
1.5
2
2.5
3
3.5
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5H
iba
[%]
Ido [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
SPICECellTherm
1.36
1.38
1.4
1.42
1.44
1.46
1.48
1.5
1.52
5 10 15 20 25 30 35 40
Frek
venc
ia[G
Hz]
Homérséklet [◦C]
Az eltérés 3,5 % alatti
3
3.05
3.1
3.15
3.2
3.25
3.3
3.35
3.4
3.45
5 10 15 20 25 30 35 40R
elat
ívhi
ba[%
]Homé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 elvu logi-termikus szimulátor
LogithermCellTherm
25
26
27
28
29
30
31
0 10 20 30 40 50 60 70 80
Hom
érsé
klet
[◦C
]
Ido [s]
Az eltérés 1 % alatti
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
0 10 20 30 40 50 60 70 80
Rel
atív
hiba
[%]
Ido [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éretu és bonyolultságú áramkör
POLITO torinoi muszaki egyetem fejlesztéseJelfeldolgozó á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
Teljesítmény eloszlás 4,56 másodperc után
0
0.01
2
0.02
4
0.03
6
0.04
8
0.06
0.07
2
0.08
4
0.09
6
0.11
0.12
Szélesség [mm]
0
0.012
0.024
0.036
0.048
0.06
0.072
0.084
0.096
0.11
0.12
Mag
assá
g[m
m]
0.00
1.00
2.00
3.00
4.00
5.00
6.00
Telje
sítm
énys
urus
ég[µW cm
2]
Homérséklet eloszlás 4,56 másodperc után
0
0.01
2
0.02
4
0.03
6
0.04
8
0.06
0.07
2
0.08
4
0.09
6
0.11
0.12
Szélesség [mm]
0
0.012
0.024
0.036
0.048
0.06
0.072
0.084
0.096
0.11
0.12
Mag
assá
g[m
m]
0.183
0.184
0.185
0.186
0.187
0.188
0.189
Hom
é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 homérsékletfüggo idozítésimodell
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) pontosA sarokpontok között lineáris interpoláció kellNem a pontos késleltetés-homérséklet görbével számolunk!
Pontos homérsékletfüggo késleltetésSDF interpolált késleltetés
1.78 ns
1.84 ns
1.90 ns
1.7
1.75
1.8
1.85
1.9
1.95
-20 0 20 40 60 80
Kés
lelte
tés
(inve
rter
cella
)[ns
]
Homérséklet [◦C]
Pontos homérsékletfüggo késleltetésSDF interpolált késleltetés
3.15 ns
3.17 ns
2.41 ns
2
2.2
2.4
2.6
2.8
3
3.2
-20 0 20 40 60 80
Kés
lelte
tés
(NAND
cella
)[ns
]
Homé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álItt lesz 25 ◦C fokos a homérsékletTöréspont a linearizált SDF karakterisztikában!Pontatlan!
41.8
42
42.2
42.4
42.6
42.8
43
43.2
0 0.5 1 1.5 2 2.5 3 3.5 4
Osz
cillá
torp
erió
dusi
do[n
s]
Szimulációs ido [s]
0,144 s
Dr. Timár András (BME, EET) Logi-termikus szimuláció 2014. április 22. 67 / 70
Új modell
Szimuláció a tényleges hofüggo késleltetésekkel
Sokkal pontosabb eredmények!
41.8
42
42.2
42.4
42.6
42.8
43
43.2
43.4
0 0.5 1 1.5 2 2.5 3 3.5 4
Osz
cillá
torp
erió
dusi
do[n
s]
Szimulációs ido [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
Pontos késleltetésekSDF késleltetések
41.8
42
42.2
42.4
42.6
42.8
43
43.2
43.4
0 0.5 1 1.5 2 2.5 3 3.5 4
Osz
cillá
torp
erió
dusi
do[n
s]
Szimulációs ido [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 szi-muláció futtatására alkalmas eszközDigitális standard cellás áramkörök szimulációjára alkalmasIpari logikai és termikus szimulátorokat kapcsol össze szabványosinterfészekkelAz IC tervezoknek nem kell új eszközöket megismerniükA homérsékletfüggo késleltetések figyelembe vételével képes je-lezni, ha a megváltozott homérsékletek miatt az áramkör funkcio-nálisan muködésképtelenné válik
Dr. Timár András (BME, EET) Logi-termikus szimuláció 2014. április 22. 70 / 70