Elektrotehniški vestnik 78(1-2): 31-35, 2011 Existing separate English edition Optimizacija digitalnih gradnikov na nivoju tranzistorjev Janez Puhan, Iztok Fajfar, Tadej Tuma, Arpad BUrmen Univerza v Ljubljani, Fakulteta za elektrotehniko, Tržaška 25, 1000 Ljubljana, Slovenija E-pošta: janez.puhan@fe.uni-lj.si Povzetek. Izdelovalci integriranih vezij za svoje procese podajajo knjižnice osnovnih digitalnih gradnikov, ki se uporabljajo pri načrtovanju digitalnih integriranih vezij. Izvedbe posameznih gradnikov na tranzistorskem nivoju so s tem določene in se med načrtovanjem vezja ne spreminjajo več. Gradniki, kot npr. medpomnilniki, logična vrata, seštevalniki, flip-flopi itd., se uporabljajo brez sprememb, kjerkoli jih načrtovalec potrebuje. Zaradi tega posamezen gradnik ni povsem prilagojen na specifično okolje v vezju, kjer se nahaja. To odpira prostor optimizaciji gradnika točno na zahteve v katerih deluje. članek opisuje primer optimizacije digitalnega gradnika na tranzistorskem nivoju. Zaradi šumnosti kriterijske funkcije je bila uporabljena robustna globalna optimizacijska metoda. Rezultati pokazejo znatno izboljšanje zelenih lastnosti glede na splošni gradnik izdelovalca integriranih vezij. Ključne besede: načrtovanje digitalnih integriranih vezij, splošni osnovni gradniki, sinteza digitalnih vezij, optimizacija na tranzistorskem nivoju Transistor level optimisation of digital cells Integrated circuit manufacturers provide libraries of predesigned digital cells for digital circuit design. The transistor level implementation of the cells is not considered during the design procedure. The cells, such as buffers, logic gates, adders, flip-flops, etc. are used without modifications wherever needed. For that reason the cells are not fine tuned to their unique surrounding conditions in the circuit. This leaves space for cell optimisation to be used as a tool for achieving arbitrary customisation. This paper describes a case study of transistor level digital cell optimisation. Since the landscape of the cost function used in the process of optimisation proved to be too noisy, the optimisation runs were performed using a robust global optimisation method. The results show that a substantial improvement of cell properties with respect to the manufacturer-supplied pre-designed cells can be obtained. 1 Uvod Pri načrtovanju digitalnega vezja načrtovalci uporabljajo osnovne gradnike ali bloke [1] kot so medpomnilniki, logicna vrata, seštevalniki, zatici, flip-flopi itd. KnjiZnico z digitalnimi gradniki za vsak proces izdelave integriranih vezij priskrbi izdelovalec integriranih vezij. Navadno je podanih vecš razlicšic posameznega gradnika, skupaj z opisom karakteristik posamezne razlicice. Med postopkom nacrtovanja digitalnega integriranega vezja nacrtovalec simulacij [2], [3], [4], [5] na tranzistorskem nivoju ne izvaja. Za izracun odziva vezja se uporabljajo opisi gradnikov na višjem nivoju [6], [7]. Posamezne razlicice nekega gradnika imajo v vecini primerov enako topologijo. Razlikujejo se le v dimenzi- jah tranzistorjev, navadno v širinah in dolžinah kanalov. So rezultat prilagoditve gradnika na različne pogoje delovanja. V članku je opisana optimizacija gradnika iz knjiznice izdelovalca integriranih vezij. Zanima nas, ali je mozno s pomočjo optimizacijskega postopka iz standardnega gradnika iztisniti še boljše lastnosti. S tem bi dobili tudi odgovor na vprašanje, ali je optim-mizacija gradnikov na tranzistorskem nivoju smiselna, oziroma ali bi kazalo v prihodnosti z avtomatizacijo optimizacijskega postopka gradnikov na tranzistorskem nivoju generirati poljubne gradnike prilagojene na tocno dolocene razmere v vezju. Proces nacrtovanja digitalnega vezja ASIC (Application Specific Integrated Circuit) se zacne z opisom specifikacij vezja na nivoju RTL (Register Transfer Level). Nato nacrtovalec vezje opisano z opisnim jezikom HDL (Hardware Description Language) simulira in popravlja, dokler odziv vezja ni zadovoljiv glede na podane zahteve. Koncen opis vezja v jeziku HDL se reducira na logicni nivo. Vezje na logicnem nivoju se na nivoju osnovnih gradnikov optimizira, dokler ustreznost vezja glede na zahteve v casovnem prostoru ni dosezena. Redukcijo na logicni nivo in optimizacijo na nivoju gradnikov imenujemo sinteza. Sintezo nacrtovalec izvede s pomocjo sintezacijskega orodja, ki pri tem izbira med osnovnimi gradniki iz knjiznice proizvajalca integriranih vezij. Delovanje koncnega vezja nacrtovalec preveri pred in po razporeditvi (ang. layout) tranzistorjev na rezini. V kolikor med preverjanjem ugotovi napake, ali nezadovoljivo delovanje vezja, mora proces sinteze ponoviti s strozjimi zahtevami. Idejo uvedbe optimizacijskega postopka na nivoju tranzistorjev v tok sinteze vezja prikazuje slika 1. Rezultat sinteze A je opis vezja na nivoju osnovnih gradnikov skupaj s časovnimi zahtevami za posamezen gradnik. Iz knjiznice so izbrane ustrezne različice posameznih gradnikov. Sledi predlagana optimizacija na nivoju tranzistorjev. Optimizacija s spreminjanjem velikosti tranzistorjev prilagodi posamezen gradnik tocno na njegove casovne zahteve. Nekateri izmed izbranih gradnikov v koraku A komaj zadovoljujejo podane casovne zahteve, medtem ko imajo drugi veliko rezerve. Gradnike, ki komaj izpolnjujejo postavljene zahteve, bi lahko optimizirali na hitrost, gradnike z rezervo pa na porabo, brez da bi pri tem poslabšali lastnosti vezja. Rezultat optimizacije na nivoju tranzistorjev so razmeram prilagojeni gradniki, iz katerih bi lahko sestavili novo knjizšnico. Sinteza B bi prvotno knjiznico gradnikov zamenjala s prilagojeno. Uspešna sinteza B bi tudi potrdila pravilno delovanje vezja zgrajenega iz prilagojenih gradnikov. simulacija HDL casovne zahteve sinteza A knjižnica sinteza B preverjanje optimizacija gradnikov .1 _ prilagojena knjiznica ci ( xi ) ti 9i) xi — gi (1) — (xi gi) xi > gi Ker morajo biti vse zanimive lastnosti x = [xi,x2,...]T cimmanjše, potrebujemo le en nacin vrednotenja prispevka lastnosti. Enacba (1) zadošca. Koncna vrednost KF je vsota vseh prispevkov podana v enacbi (2). c(x) = ^ °i(Xi) (2) KF v enacšbi (2) ima globalni minimum dolcšen z enacbo (3), ki ustreza optimalnim parametrom vezja wopt. Z razlicnimi zelenimi vrednostmi gi, trgovalnimi (ti) in kazenskimi (pi) utezmi optimizacijski postopek privede do vec globalnih minimumov KF. Torej do nabora vezij z razlicšno uravnotezšenimi lastnostmi. c(x(wopt)) < c(x(w)) (3) Slika 1: Uvedba optimizacijskega postopka na nivoju tranzistorjev v tok sinteze 2 Kriterijska funkcija Kriterijska funkcija (KF) je mera, ki meri kvaliteto predlaganega vezja. Bolj kot vezje ustreza postavljenim zahtevam, nizšja je vrednost KF. Z dolocšitvijo KF postane odlocitev, katero vezje je boljše, nedvoumna [10]. Lastnosti predlaganega vezja so dolocene z vrednotenjem rezultatov ene ali vec tranzientnih analiz. V našem primeru so zanimive naslednje lastnosti: površina na rezini (dolocšena z dimenzijami tranzistorjev), obnasšanje v cšasovnem prostoru (strmine, zakasnitve, itd.) in poraba. K koncni vrednosti KF prispeva vsaka izmerjena lastnost xi svoj delez. Dokler zelena vrednost gi lastnosti ni dosezena je prispevek ci(xi) v KF proporcionalen oddaljenosti od zšelene vrednosti. Ko lastnost dosezše, ali celo preseze zeleno vrednost, postane njen delez negativen. Definicija prispevka lastnosti v KF je podana v enacšbi (1). Nedoseganje posamezne želene vrednosti je lahko po definiciji KF izničeno s preseganjem drugih. Da se to ne zgodi in so želene vrednosti vseh lastnosti dosežene, mora za vsak par i = j veljati ti C p j. Tako bo prispevek lastnosti, ki ne dosega zelene vrednosti, mnogo večji od absolutne vrednosti vsote negativnih prispevkov vseh drugih lastnosti, ki presegajo svoje zelene vrednosti. Predlaganim vezjem, za katera tranzientna analiza ne uspe, vektorja lastnosti x ni mogoče določiti. V primeru, ko posamezna lastnost xi ni znana, je njen prispevek v KF ci(xi) postavljen na neko veliko vrednost cmax.. Predlagano vezje, za katerega tranzientna analiza ne uspe ima tako visoko vrednost KF in zato predstavlja slab poskus. Enako velja za predlagana vezja, za katera tranzientna analiza sicer uspe, vendar je odziv neuporaben in ene ali več lastnosti ni mogoče določiti (npr. v odzivu ni pričakovane naraščajoče fronte, zaradi česar ni mogoče izmeriti njene strmine). Predlagano vezje z odzivom, ki ne izraza pričakovane funkčije vezja, je dodatno kaznovano s pomoznimi lastnostmi. Pomozne lastnosti, oziroma meritve preverjajo odziv v časovnih trenutkih, kjer je stanje digitalnega vezja določeno. Imajo velike kazenske utezi, kar vodi v visoke prispevke v KF za vezja z nepričakovanim odzivom. Pomozšne meritve k KF ne prispevajo (trgovalne utezi so nič), ko ima predlagano vezje pričakovan odziv. S tem pomozne meritve silijo k pravilnemu odzivu vezja in tako pomagajo optimizačijskemu pročesu. 3 Testno vezje Kot testni gradnik je bil uporabljen D flip-flop prikazan na sliki 2. Vzet je iz knjizšniče osnovnih digitalnih gradnikov podanih s strani proizvajalča integriranih vezij za 350nm CMOS pročes. V kolikor optimizačijski postopek na tranzistorskem nivoju uspe izboljšati testni gradnik, je podobne izboljšave pričakovati tudi na drugih proizvajalčevih gradnikih. Testni gradnik je vstavljen v testno vezje, ki zagotavlja vhodne signale, obremenitve izhodov in napajanje gradnika. Strmine vhodnih signalov, bremenske kapači-tivnosti in napajalna napetost se spreminjajo od kota do kota. c1 d qs qm qn qn Slika 2: D flip-flop (d = podatek, c = ura, rn = reset, q = izhod, qn = izhod) Na sliki 2 so prikazani tudi časovni poteki vhodnih testnih signalov s ponazoritvami lastnosti vezja, oziroma meritev. Časovne lastnosti skupaj s površino na rezini in porabo predstavljajo lastnosti vezja xj, ki prispevajo v KF iz enačbe (2). Na primeru testnega gradnika je bilo merjenih dvajset časovnih lastnosti. Poleg zakasnitev in strmin so v KF pripevali še izhodni postavitveni časi (ang. setup time), vhodni zadrzevalni časi (ang. hold time), zagonski čas po resetu, najmanjša perioda ure, ter najmanjša širina reset impulza. Na sliki 2 sta v ponazoritev označšeni le ena zakasnitev in ena strmina. Zakasnitve so bile merjene kot čas, ki preteče od trenutka, ko vhodni signal doseze 50% končne vrednosti, do trenutka, ko izhodni signal doseze 50% končne vrednosti. Strmine so bile merjene kot čas v katerem se opazovani signal spremeni od 10% do 90% končne vrednosti. 4 Optimizaciski postopek Narejena sta bila dva optimizacijska teka. Cilj prvega je bil najti čimhitrejši gradnik, pri cemer ni bilo dovoljeno povečanje porabe glede na osnovni gradnik podan s strani proizvajalca integriranih vezij (optimizacija na hitrost). V drugem teku je bil cilj cimmanjša poraba, pri cemer so morale casovne lastnosti gradnika ostati najmanj enako dobre, kot pri osnovnem proizvajalcevem gradniku (optimizacija na porabo). Lastnosti osnovnega proizvajalcevega gradnika so sluzile kot zelene vrednosti gi. Visoke kazenske utezi pi so zagotovile, da so bile vse lastnosti osnovnega gradnika dosezšene v obeh tekih. Teka sta se razlikovala v trgovalnih utezeh ti, ki so v prvem teku poudarjale hitrost, v drugem pa nizko porabo. Gradnik je bil optimiziran za razlicšne pogoje procesa izdelave in delovanja. V poštev so biti vzeti štirje procesni koti (ang. worst power, worst speed, worst one, worst zero), dve temperaturi (-25 °C, 105 °C), dve napajalni napetosti (3V, 3.6V), dve izhodni bremeni (10fF, 220fF) c rn q q d rn c in dva naklona vhodnega signala (60ps, 4ns). K vsem 64-im skrajnim kombinacijam naštetih parametrov je bil dodan še tipični kot. Za izračun najslabših vrednosti lastnosti gradnika v navedenem območju delovanja je bilo potrebno analize opraviti v štirih kritičnih kotih. Določevanje lastnosti gradnika v ostalih 61-ih kotih ni potrebno. To pomembno zmanjša število kotov na štiri, in sičer: wp/-25 oC/3.6V/220fF/4ns, ws/105 oC/3V/10fF/60ps, ws/105 oC/3V/220fF/60ps in ws/105 oC/3V/220fF/4ns. Lastnosti optimiziranega gradnika so bile preverjene preko vseh 65-ih kotov. Neodvisne optimizačijske spremenljivke so bile širine in dolzšina kanalov tranzistorjev. Dolzšina kanala je bila za vse tranzistorje enaka in je predstavljala eno optimizačij-sko spremenljivko. Vseh optimizačijskih spremenljivk je bilo 33. Ekspličitne meje optimizačijskega postopka so bile postavljene od 400nm do 2pm za širine in od 350nm do 2|jm za dolzino kanalov. Ker je dolzina kanalov navadno najmanjsša mozšna, je bilo pričšakovati, da bo optimizirana dozina na spodnji dovoljeni meji. Navkljub pričakovanjem se je izkazalo, da temu ni vedno tako. Uporabljeno je bilo vzporedno simulirano ohlajanje z diferenčialno evolučijo (ang. Simulated Annealing with Differential Evolution, ali PSADE) [11]. Optimizačijska metoda je tekla na osmih pročesorjih AMD Athlon 3GHz. Začetna točka metode je naključna. Metoda je bila ustavljena po 150000 določitvah KF. 5 Rezultati Lastnosti testiranega gradnika po obeh optimizačijskih tekih, ter lastnosti gradnika iz knjizniče proizvajalča so zbrane v tabeli 1. V stolpču hitrost so lastnosti gradnika po optimizačiji na hitrost. Optimiziran gradnik je v vseh lastnostih vsaj tako dober, ali boljši, kot proizvajalčev gradnik. Časovne lastnosti gradnika se izboljšajo za do 77%. Zanimivo je, da ima optimiziran hitrejši gradnik čelo za 5.8% manjšo porabo, kar pri optimizačiji na hitrost ni bilo pričšakovano. Pričšakovana pa je končna dolzina kanala tranzistorjev, kije najmanjša mozna (350nm). Za dosego minimuma je optimizačijski postopek potreboval 149689 določitev KF. Prvi gradnik z boljšimi lastnostmi od proizvajalčevega se pojavi v 3285-ti določšitvi KF. V stolpču poraba v tabeli 1 so zbrani rezultati optimi-začije na porabo. Optimiziran gradnik ima vse lastnosti zopet vsaj tako dobre kot proizvajalčev. Poraba gradnika je zmanjšana za 20%, pri čemer se časovne lastnosti izboljšajo za 43%. Zanimivo je, da dolzina kanala tranzistorjev optimiziranega gradnika ni najmanjša mozna (390nm). Za dosego minimuma je bilo potrebnih 121406 določitev KF. Prvi gradnik z boljšimi lastnostmi od proizvajalčevega se pojavi v 3398-ti določitvi KF. Kapačitivnosti vhodov gradnika na vrednost KF niso imele vpliva. Ne glede na to se v obeh optimizačijskih tekih zaradi manjših dimezij vhodnih tranzistorjev Tabela 1: Rezultati optimizačije D flip-flopa lastnost original hitrost poraba povrsšina [pm2] 59.1 59.1 48.5 c na qt zakasnitev [ns] 5.17 2.95 4.19 c na qi zakasnitev [ns] 6.71 2.78 5.97 c na qnt zakasnitev [ns] 4.80 2.67 4.76 c na qnl zakasnitev [ns] 7.27 2.84 6.54 rn na qn zakasnitev [ns] 4.19 1.82 3.28 rn na q zakasnitev [ns] 6.03 1.60 4.17 c na qt strmina [ns] 6.49 4.45 6.47 c na qi strmina [ns] 9.96 2.61 7.88 c na qn\ strmina [ns] 6.41 3.03 6.38 c na qnl strmina [ns] 9.95 3.11 9.60 rn na qn strmina [ns] 6.41 3.03 6.37 rn na q strmina [ns] 9.95 2.32 7.77 dt na c postavitev [ns] 1.23 0.625 1.03 ¿1 na c postavitev [ns] 0.984 0.983 0.982 dt na c zadrzi [ns] 0.566 0.324 0.548 ¿1 na c zadrzi [ns] 0.560 0.325 0.559 rn na c zagon [ns] 1.27 0.665 1.08 min. širina chigh [ns] 1.71 1.54 1.70 min. širina ciow [ns] 1.30 0.970 1.30 min. širina rn [ns] 0.811 0.375 0.463 poraba [pAs] 6.22 5.86 4.96 t in 4 pomenita naraščajočo in padajočo fronto optimiziranih gradnikov kapačitivnosti vhodov vseeno zmanjšajo. V obeh optimizačijskih tekih je bilo potrebnih le nekaj tisoč določitev KF, daje bil najden prvi gradnik boljši od proizvajalčevega. To pomeni, daje bila večina določitev KF porabljenih za fino določanje končne rešitve, za kar je navadno uporabljena hitra lokalna optimizačijska metoda, npr. [12]. Žal poskusi pospešitve optimizačij-skega teka s pomočšjo lokalne metode niso bili uspesšni. Neuspeh gre pripisati negladkosti poteka KF [13]. Ža ponazoritev so na sliki 3 narisani preseki KF po treh optimizačijskih parametrih, t.j. širinah kanalov tranzistorjev. Na sliki 3 je jasno viden numeričšen sšum, ki je posle-diča končnega časovnega koraka v tranzientni analizi. Ž zmanjševanjem časovnega koraka postaja numeričen šum manjši. Vendar fino določanje končne rešitve z lokalno optimizačijsko metodo ne uspe, neglede na to kako majhen je časovni korak. Žato je potrebno čeloten optimizačijski tek izvesti z robustno globalno metodo. Ža zagotovitev točšnosti mora biti čšasovni korak kljub temu relativno majhen, kar pomeni dolge tranzientne Slika 3: Preseki kriterijske funkcije po treh širinah kanalov analize in posledično dolge optimizacijske teke. En optimizacijski tek traja pet dni na osmih paralelnih procesorjih. 6 Zaključek Osnovni digitalni gradniki podani v knjiZnici proizvajalca predstavljajo nabor gradnikov, ki naj jih nacrtovalec integriranih vezij na tranzistorskem nivoju ne bi spreminjal. Primer v clanku pokaze znatno izoljšanje lastnosti osnovnega gradnika z uporabo optimizacij-skega postopka na tranzistorskem nivoju. Dosezeno je bilo do 77% izboljšanje casovnih lastnosti gradnika brez povecanja porabe. Oziroma na drugi strani 20% zmanjšanje porabe ob enakih casovnih lastnostih. Uporaba gradnikov prirejenih na specificne zahteve v vezju bi lahko vodila k hitrejšim digitalnim vezjem z nizjo porabo. Da bi predlagan postopek postal ucšinkovit, bi bilo potrebno optimizacijo na tranzistorskem nivoju vkljuciti v orodja za sintezo. Dolzina optimizacijskih tekov ostaja zaradi šumnosti poteka kriterijske funkcije glavna ovira. Ponovna preveritev optimiziranih gradnikov v sintezacij-skem orodju zaradi nedostopnosti (placljivosti) slednjih, kakor tudi zaradi nedostopnosti orodij za ekstrakcijo opisa gradnika iz tranzistorskega na višji nivo (proizvajalci integriranih vezij ekstrakcijskih orodij ne podajajo), ni bila narejena. Zahvala Raziskavo je omogocilo Ministrstvo za visoko šolstvo, znanost in tehnologijo Republike Slovenije v okviru programa P2-0246 - Algoritmi in optimizacijski postopki v telekomunikacijah. Literatura [1] H. Kaeslin, Digital integrated circuit design: from VLSI architectures to CMOS fabrication, Cambridge University Press, 2008. [2] HSPICE® simulation and analysis user guide, Synopsys®, 2005. [3] K.S. Kunderth, The designer's guide to SPICE and Spectre, Kluwer Academic Publishers, 1995. [4] Virtuoso® Spectre® circuit simulator user guide, Cadence Design Systems, Inc., 2008. [5] T. Tuma, A. Burmen, Circuit simulation with SPICE Opus, theory and practice, Birkhauser, 2009. [6] D.E. Thomas, P.R. Moorby, The Verilog hardware description language, 5th ed. Kluwer Academic Publishers, 2003. [7] V.A. Pedroni, Circuit design with VHDL, Massachusetts Institute of Technology, 2004. [8] P. Kurup, T. Abbasi, Logic synthesis using Synopsys®, 2nd ed. Kluwer Academic Publishers, 1997. [9] H. Bhatnagar, Advanced ASIC chip synthesis using Synopsys® Design Compiler™Physical Compiler™and PrimeTime®, 2nd ed. Kluwer Academic Publishers, 2002. [10] A. Burmen et al., "Automated robust design and optimization of integrated circuits by means of penalty functions," AEU, International Journal of Electronics and Communications, vol. 57, no. 1, pp. 47-56, 2003. [11] J. Olensek, A. Burmen, J. Puhan, T. Tuma, "DESA: a new hybrid global optimization method and its application to analog integrated circuit sizing," Journal of Global Optimization, vol. 44, no. 1, pp. 1-25, 2008. [12] R. Hooke, T. Jeeves, "Direct search solutions of numerical and statistical problems," Journal of the Association for Computing Machinery, vol. 8, no. 2, pp. 212-229, 1961. [13] A. Burmen, I. Fajfar, T. Tuma, "Combined Simplex-Trust-Region optimization algorithm for automated IC design," Proceedings of ECCTD07 European Conference on Circuit Theory and Design, pp. 543-546, 2007. Janez Puhan je leta 2000 doktoriral s področja elektrotehnike na Univerzi v Ljubljani. Je asistent na Fakulteti za elektrotehniko. Njegovo področje raziskovanja obsega modeliranje, simulacijo in optimizacijske postopke pri računalniškem načrtovanju vezij. Iztok Fajfar je diplomiral (1991), magistriral (1994) in doktoriral (1997) s področja elektrotehnike na Fakulteti za elektrotehniko Univerze v Ljubljani. V letu 1991 je bil raziskovaleč na Inštitutu Jozef štefan v Ljubljani, nakar je koneč leta zasedel raziskovalno mesto na Fakulteti za elektrotehniko Univerze v Ljubljani. Trenutno na fakulteti zaseda mesto izrednega profesorja. Poučuje več uvodnih in nadaljevalnih predmetov s področja računalniškega programiranja. Pri razvoju programske opreme je sodeloval v večš industrijskih projektih s podjetji Adačta in ICE Telečom. Njegovo področje raziskovanja vključšuje načšrtovanje in optimizačijo elektronskih vezij. Tadej TUma je diplomiral (1988), magistriral (1991) in doktoriral (1995) na Fakulteti za elektrotehniko Univerze v Ljubljani. Na isti fakulteti je redni profesor, kjer poučšuje sštiri dodiplomske in tri podiplomske predmete. Njegovi raziskovalni interesi so predvsem na področšju račšunalnisške analize in načšrtovanja vezij. Arpad BUrmen se je rodil leta 1976 v Murski Soboti. Leta 2003 je na Univerzi v Ljubljani doktoriral s področja elektrotehnike. Od leta 2005 dalje je dočent na fakulteti za elektrotehniko. Njegovo raziskovalno področje vključuje zvezno in dogodkovno simulačijo vezij in sistemov, optimizačijske metode, njihovo konvergenčo in uporabo, ter algoritme za vzporedno in porazdeljeno račšunanje. Je eden vodilnih razvijalčev simulatorja vezij SPICE OPUS. Objavil je preko 20 čšlankov v rečenziranih revijah.