1 UVOD Pri načrtovanju digitalnega vezja načrtovalci uporabljajo osnovne gradnike ali bloke [1] kot so medpomnilniki, logična vrata, seštevalniki, zatiči, flip-flopi itd. Knjižnico z digitalnimi gradniki za vsak proces izdelave integri- ranih vezij priskrbi izdelovalec integriranih vezij. Na- vadno je podanih več različic posameznega gradnika, skupaj z opisom karakteristik posamezne različice. Med postopkom načrtovanja digitalnega integriranega vezja načrtovalec simulacij [2], [3], [4], [5] na tranzistorskem nivoju ne izvaja. Za izračun odziva vezja se uporabljajo opisi gradnikov na višjem nivoju [6], [7]. Posamezne različice nekega gradnika imajo v večini primerov enako topologijo. Razlikujejo se le v dimenzi- Prejet 19. oktober, 2010 Odobren 4. februar, 2011 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 knjižnice izdelovalca integriranih vezij. Zanima nas, ali je možno 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 točno določene razmere v vezju. Proces načrtovanja digitalnega vezja ASIC (Appli- cation Specific Integrated Circuit) se začne z opisom specifikacij vezja na nivoju RTL (Register Transfer Level). Nato načrtovalec vezje opisano z opisnim jezi- kom HDL (Hardware Description Language) simulira in popravlja, dokler odziv vezja ni zadovoljiv glede na podane zahteve. Končen opis vezja v jeziku HDL se reducira na logični nivo. Vezje na logičnem nivoju se na nivoju osnovnih gradnikov optimizira, dokler ustreznost vezja glede na zahteve v časovnem prostoru ni dosežena. Redukcijo na logični nivo in optimizacijo na nivoju gra- dnikov imenujemo sinteza. Sintezo načrtovalec izvede s pomočjo sintezacijskega orodja, ki pri tem izbira med osnovnimi gradniki iz knjižnice proizvajalca integriranih vezij. Delovanje končnega vezja načrtovalec preveri pred in po razporeditvi (ang. layout) tranzistorjev na rezini. V kolikor med preverjanjem ugotovi napake, ali neza- dovoljivo delovanje vezja, mora proces sinteze ponoviti s strožjimi zahtevami. Idejo uvedbe optimizacijskega postopka na nivoju 32 PUHAN, FAJFAR, TUMA, BŰRMEN tranzistorjev v tok sinteze vezja prikazuje slika 1. Rezul- tat sinteze A je opis vezja na nivoju osnovnih gradnikov skupaj s časovnimi zahtevami za posamezen gradnik. Iz knjižnice so izbrane ustrezne različice posameznih gradnikov. Sledi predlagana optimizacija na nivoju tran- zistorjev. Optimizacija s spreminjanjem velikosti tranzi- storjev prilagodi posamezen gradnik točno na njegove časovne zahteve. Nekateri izmed izbranih gradnikov v koraku A komaj zadovoljujejo podane časovne zahteve, medtem ko imajo drugi veliko rezerve. Gradnike, ki komaj izpolnjujejo postavljene zahteve, bi lahko optimi- zirali na hitrost, gradnike z rezervo pa na porabo, brez da bi pri tem poslabšali lastnosti vezja. Rezultat optimi- zacije na nivoju tranzistorjev so razmeram prilagojeni gradniki, iz katerih bi lahko sestavili novo knjižnico. Sinteza B bi prvotno knjižnico gradnikov zamenjala s prilagojeno. Uspešna sinteza B bi tudi potrdila pravilno delovanje vezja zgrajenega iz prilagojenih gradnikov. prilagojena knjiznicasinteza B simulacija HDL casovne zahteve preverjanje optimizacija gradnikov sinteza A knjiznica Slika 1: Uvedba optimizacijskega postopka na nivoju tranzi- storjev v tok sinteze 2 KRITERIJSKA FUNKCIJA Kriterijska funkcija (KF) je mera, ki meri kvaliteto predlaganega vezja. Bolj kot vezje ustreza postavljenim zahtevam, nižja je vrednost KF. Z določitvijo KF postane odločitev, katero vezje je boljše, nedvoumna [10]. Lastnosti predlaganega vezja so določene z vrednote- njem rezultatov ene ali več tranzientnih analiz. V našem primeru so zanimive naslednje lastnosti: površina na re- zini (določena z dimenzijami tranzistorjev), obnašanje v časovnem prostoru (strmine, zakasnitve, itd.) in poraba. K končni vrednosti KF prispeva vsaka izmerjena lastnost xi svoj delež. Dokler želena vrednost gi lastnosti ni dosežena je prispevek ci(xi) v KF proporcionalen oddaljenosti od želene vrednosti. Ko lastnost doseže, ali celo preseže želeno vrednost, postane njen delež negativen. Definicija prispevka lastnosti v KF je podana v enačbi (1). ci(xi) = { ti gi (xi − gi) xi ≤ gi pi gi (xi − gi) xi > gi (1) Ker morajo biti vse zanimive lastnosti x = [x1, x2, . . .] T čimmanjše, potrebujemo le en način vrednotenja prispevka lastnosti. Enačba (1) zadošča. Končna vrednost KF je vsota vseh prispevkov podana v enačbi (2). c(x) = ∑ ci(xi) (2) KF v enačbi (2) ima globalni minimum dolčen z enačbo (3), ki ustreza optimalnim parametrom vezja wopt. Z različnimi želenimi vrednostmi gi, trgovalnimi (ti) in kazenskimi (pi) utežmi optimizacijski postopek privede do več globalnih minimumov KF. Torej do nabora vezij z različno uravnoteženimi lastnostmi. c(x(wopt)) ≤ c(x(w)) (3) 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 6= j veljati ti � pj . Tako bo prispe- vek lastnosti, ki ne dosega želene vrednosti, mnogo večji od absolutne vrednosti vsote negativnih prispevkov vseh drugih lastnosti, ki presegajo svoje želene 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 cmaxi . 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 tran- zientna 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 izraža pričakovane funkcije vezja, je dodatno kaznovano s pomožnimi la- stnostmi. Pomožne lastnosti, oziroma meritve preverjajo odziv v časovnih trenutkih, kjer je stanje digitalnega vezja določeno. Imajo velike kazenske uteži, kar vodi v visoke prispevke v KF za vezja z nepričakovanim od- zivom. Pomožne meritve k KF ne prispevajo (trgovalne uteži so nič), ko ima predlagano vezje pričakovan odziv. S tem pomožne meritve silijo k pravilnemu odzivu vezja in tako pomagajo optimizacijskemu procesu. 3 TESTNO VEZJE Kot testni gradnik je bil uporabljen D flip-flop prikazan na sliki 2. Vzet je iz knjižnice osnovnih digitalnih gradnikov podanih s strani proizvajalca integriranih ve- zij za 350nm CMOS proces. V kolikor optimizacijski 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 zagota- vlja vhodne signale, obremenitve izhodov in napajanje gradnika. Strmine vhodnih signalov, bremenske kapaci- tivnosti in napajalna napetost se spreminjajo od kota do kota. OPTIMIZACIJA DIGITALNIH GRADNIKOV NA NIVOJU TRANZISTORJEV 33 c1 c d rn q qs qm qn zadrzi d nizek postavitev d visok c c1 d rn q qm qn qs strmina min rn min c nizek min c visok zakasnitev zadrzi d visok zagon postavitev d nizek 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 xi, 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 zadrževalni č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 doseže 50% končne vrednosti, do trenutka, ko izhodni signal doseže 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 čemer 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 čimmanjša poraba, pri čemer so morale časovne lastnosti gradnika ostati najmanj enako dobre, kot pri osnovnem proizvajalčevem gradniku (optimizacija na porabo). Lastnosti osnovnega proizvajalčevega gradnika so služile kot želene vrednosti gi. Visoke kazenske uteži pi so zagotovile, da so bile vse lastnosti osnovnega gradnika dosežene v obeh tekih. Teka sta se razlikovala v trgovalnih utežeh ti, ki so v prvem teku poudarjale hitrost, v drugem pa nizko porabo. Gradnik je bil optimiziran za različne pogoje procesa izdelave in delovanja. V poštev so biti vzeti štirje proce- sni 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) 34 PUHAN, FAJFAR, TUMA, BŰRMEN 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 ana- lize opraviti v štirih kritičnih kotih. Določevanje la- stnosti gradnika v ostalih 61-ih kotih ni potrebno. To pomembno zmanjša število kotov na štiri, in sicer: wp/−25 ◦C/3.6V/220fF/4ns, ws/105 ◦C/3V/10fF/60ps, ws/105 ◦C/3V/220fF/60ps in ws/105 ◦C/3V/220fF/4ns. Lastnosti optimiziranega gradnika so bile preverjene preko vseh 65-ih kotov. Neodvisne optimizacijske spremenljivke so bile širine in dolžina kanalov tranzistorjev. Dolžina kanala je bila za vse tranzistorje enaka in je predstavljala eno optimizacij- sko spremenljivko. Vseh optimizacijskih spremenljivk je bilo 33. Eksplicitne meje optimizacijskega postopka so bile postavljene od 400nm do 2µm za širine in od 350nm do 2µm za dolžino kanalov. Ker je dolžina kanalov navadno najmanjša možna, je bilo pričakovati, da bo optimizirana dožina na spodnji dovoljeni meji. Navkljub pričakovanjem se je izkazalo, da temu ni vedno tako. Uporabljeno je bilo vzporedno simulirano ohlajanje z diferencialno evolucijo (ang. Simulated Annealing with Differential Evolution, ali PSADE) [11]. Optimizacijska metoda je tekla na osmih procesorjih 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 optimizacijskih tekih, ter lastnosti gradnika iz knjižnice proizvajalca so zbrane v tabeli 1. V stolpcu hitrost so lastnosti gradnika po optimizaciji 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 celo za 5.8% manjšo porabo, kar pri optimizaciji na hitrost ni bilo pričakovano. Pričakovana pa je končna dolžina kanala tranzistorjev, ki je najmanjša možna (350nm). Za dosego minimuma je optimizacijski postopek potreboval 149689 določitev KF. Prvi gradnik z boljšimi lastnostmi od proizvajalčevega se pojavi v 3285-ti določitvi KF. V stolpcu poraba v tabeli 1 so zbrani rezultati optimi- zacije 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 dolžina kanala tran- zistorjev optimiziranega gradnika ni najmanjša možna (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. Kapacitivnosti vhodov gradnika na vrednost KF niso imele vpliva. Ne glede na to se v obeh optimizacij- skih tekih zaradi manjših dimezij vhodnih tranzistorjev Tabela 1: Rezultati optimizacije D flip-flopa lastnost original hitrost poraba površina [pm2] 59.1 59.1 48.5 c na q↑ zakasnitev [ns] 5.17 2.95 4.19 c na q↓ zakasnitev [ns] 6.71 2.78 5.97 c na qn↑ zakasnitev [ns] 4.80 2.67 4.76 c na qn↓ 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 q↑ strmina [ns] 6.49 4.45 6.47 c na q↓ strmina [ns] 9.96 2.61 7.88 c na qn↑ strmina [ns] 6.41 3.03 6.38 c na qn↓ 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 d↑ na c postavitev [ns] 1.23 0.625 1.03 d↓ na c postavitev [ns] 0.984 0.983 0.982 d↑ na c zadrži [ns] 0.566 0.324 0.548 d↓ na c zadrži [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 clow [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 ↑ in ↓ pomenita naraščajočo in padajočo fronto optimiziranih gradnikov kapacitivnosti vhodov vseeno zmanjšajo. V obeh optimizacijskih tekih je bilo potrebnih le nekaj tisoč določitev KF, da je bil najden prvi gradnik boljši od proizvajalčevega. To pomeni, da je bila večina določitev KF porabljenih za fino določanje končne rešitve, za kar je navadno uporabljena hitra lokalna optimizacijska metoda, npr. [12]. Žal poskusi pospešitve optimizacij- skega teka s pomočjo lokalne metode niso bili uspešni. Neuspeh gre pripisati negladkosti poteka KF [13]. Za ponazoritev so na sliki 3 narisani preseki KF po treh optimizacijskih parametrih, t.j. širinah kanalov tranzi- storjev. Na sliki 3 je jasno viden numeričen šum, ki je posle- dica končnega časovnega koraka v tranzientni analizi. Z zmanjševanjem časovnega koraka postaja numeričen šum manjši. Vendar fino določanje končne rešitve z lokalno optimizacijsko metodo ne uspe, neglede na to kako majhen je časovni korak. Zato je potrebno celoten optimizacijski tek izvesti z robustno globalno metodo. Za zagotovitev točnosti mora biti časovni korak kljub temu relativno majhen, kar pomeni dolge tranzientne OPTIMIZACIJA DIGITALNIH GRADNIKOV NA NIVOJU TRANZISTORJEV 35 vrednost KF gradnika proizvajalca 1 sirina [ m]m sirina 2 sirina 1 KF sirina 3 .5 2.4 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 knjižnici proizva- jalca predstavljajo nabor gradnikov, ki naj jih načrtovalec integriranih vezij na tranzistorskem nivoju ne bi spre- minjal. Primer v članku pokaže znatno izoljšanje la- stnosti osnovnega gradnika z uporabo optimizacij- skega postopka na tranzistorskem nivoju. Doseženo je bilo do 77% izboljšanje časovnih lastnosti gradnika brez povečanja porabe. Oziroma na drugi strani 20% zmanjšanje porabe ob enakih časovnih lastnostih. Upo- raba gradnikov prirejenih na specifične zahteve v vezju bi lahko vodila k hitrejšim digitalnim vezjem z nižjo po- rabo. Da bi predlagan postopek postal učinkovit, bi bilo potrebno optimizacijo na tranzistorskem nivoju vključiti v orodja za sintezo. Dolžina optimizacijskih tekov ostaja zaradi šumnosti poteka kriterijske funkcije glavna ovira. Ponovna preveritev optimiziranih gradnikov v sintezacij- skem orodju zaradi nedostopnosti (plačljivosti) slednjih, kakor tudi zaradi nedostopnosti orodij za ekstrakcijo opisa gradnika iz tranzistorskega na višji nivo (proizva- jalci integriranih vezij ekstrakcijskih orodij ne podajajo), ni bila narejena. ZAHVALA Raziskavo je omogočilo Ministrstvo za visoko šolstvo, znanost in tehnologijo Republike Slovenije v okviru pro- grama P2-0246 - Algoritmi in optimizacijski postopki v telekomunikacijah.