Rakendus-spetsiifiline integraallülitus

Rakendusspetsiifiline integraallülitus (ingl k Application Specific Integrated Circuit, lühend ASIC) on integraallülitus, mis ei ole üldotstarbeline, vaid omab kindlat eesmärki.

Tegemist on väga keeruliste kiipidega, mis kasutavad üle 100 miljoni loogikalülituse.
ASIC kiibid on tihti süsteemikiibid, mis koosnevad suurtest plokkidest nagu mikroprotsessorid ja mälud. 
Nende funktsionaalsuse defineerimiseks kasutatakse tihti riistvarakirjelduse keeli nagu näiteks VHDL või Verilog.
Kuna eesmärgipärased integraallülitusi on kulukas toota kasutatakse prototüüpimisel enamasti FPGA-sid. Alles seadme masstootmisel muutub efektiivsemaks eesmärgipärase integraallülituse kasutamine.

Kasutusalad 
Rakendus-spetsiifiliste integraallülituste kasutusala on väga lai, aga peamiselt kasutatakse neid kõrgtasemeliste kiipide masstootmisel, kus on oluline elektriline jõudlus, kiibi suurus ja transistorite tihedus.

Levinud kasutusvaldkonnad:
 Kommunikatsioon
 Krüptograafia
 Meditsiin
 Autotööstus ja avioonika
 Robootika

Rakendus-spetsiifilised integraallülitused on laialdaselt levinud ka tarbeelektroonikas erinevates kaamerates ja mängukonsoolides.

Disaini voog 
Rakendus-spetsiiflilise integraallülituse kavandamine ja arendamine koosneb mitmest protseduurist:
 

 Nõuete loomine - esimene samm, mis loob riistvarakirjelduse keele abil kogu loogika disaini 
 Loogika süntees - loogikaelementide ja nende ühenduste kirjeldamine
 Süsteemi partitsioonid - süsteemi jagamine plokkideks
 Paigutuse eelne simulatsioon - simulatsiooni test vigade otsimiseks
 Alus planeerimine - kõigi vooluahela plokkide paigutamine kiibil
 Paigutamine - elementide paigutamine ploki sees
 Ühendamine - plokkide ja elementide vahele ühenduste loomine
 Paigutuse järgne simulatsioon - simulatsiooni test süsteemi töö korrektsuse hindamiseks
 Disainireeglite kontrollimine - viimane samm, mis kontrollib kogu vooluahela paigutust ning selle vastavust seatud reeglitele

Disaini tehnoloogiad 

Rakendus-spetsiifilisi integraallülitusi jaotatakse vastavalt sellele kui palju saab programmeerija kiipi kohandada. 
Sellest tuleneb ka esimene suurem jagunemine programmeeritavateks ja mitteprogrammeeritavateks integraallülitusteks. 
Prototüüpimise etapis kasutatakse programeeritavaid integraallülitusi, et vigade korral võimaldada parandamist samal kiibil. 
Programmeeritavate rakendus-spetsiifiliste integraallülituste alla kuuluvad FPGA-d ja programmeeritavad loogikaseaded.

Mitteprogrammeeritavad seadmed jagunevad edasi selle põhjal kui üldise disainiga on tegu. 
Kui disain koosneb üldkasutatavatest osadest, siis loetakse seda pool-kohandatud disainiks, aga kui disain luuakse algusest lõpuni eesmärgist lähtuvalt, siis on tegemist kohandatud disainiga.

Pool-kohandatud disainiga seadmete puhul eristatakse kahe peamist disaini tehnoloogiat: standardsed loogikaplokkid ja väratite massiiv. 
Mõlemad jagunevad omakorda erinevateks alamtehnoloogiateks nagu kanaliga ja kanalita standardsed loogikaplokid, Standard ja makro plokkidega väratite massiivid

Täielikult kohandatud disainiga seadmed on väga erinevad, kuna neil puuduvad ühiselt kasutatavad alusplokkid. 
Sellepärast on ka nende tootmine ajakulukam, aga tänu sellele on võimalik saada maksimaalselt optimeeritud disaini. 
Täielikult kohandatud seadete alla kuuluvad ka mitme projekti toorikud.

Programmeeritav vantiilmaatriks ehk FPGA 
ingl k Field Programmable Gate Array

FPGA on programmeeritav rakendus-spetsiifiline integraallülitus, mis võimaldab kasutajal ise loogikaplokkide vahelisi ühendusi programmeerida. Need koosnevad programmeeritavatest loogikakomponentidest ja ühendustest, millega on võimalik luua keerulisi arhitektuure. FPGA-del ei ole valmistamise ajal kindlat funktsiooni, aga kuna nende programmeerimisel muutub lisaks tarkvarale ka riistvara, siis loetakse neid tihti rakendus-spetsiifiliste integraallülituste hulka.

Programmeeritav loogikaseade 
ingl k Programmable Logic Device ehk PLD

Programmeeritav loogikaseade on teine programmeeritav rakendus-spetsiifiline integraallülitus, mis on valmistamise ajal määramata funktsiooniga. PLD programmeerimisel muudetakse seadmes olevate väratite vahelisi ühendusi ning sellega programmeeritakse ümber ka loogikaseade eesmärk. Komplekssed programmeeritavad loogikaseadmed sarnanevad FPGA-dega, aga neil on vähem loogikaväratite jadasid ja loogikaelementide vahelisi ühendusi.

Standardsed loogikaelemendid 

ingl k Standard Cell

Standardsetel loogikaelementidel põhinevad rakendus-spetsiifilised integraallülitused kasutavad varem disainitud loogikaelemente, mis kannavad endas Boole’i loogika või salvestusfunktsioone.
Boole'i loogika edasiandmiseks kasutatakse erinevaid loogikavärateid, mis võimaldavad teha aritmeetilisi operatsioone (liitmine, lahutamine, täiendkood), bitipõhiseid loogilisi operatsioone (NING, VÕI, eksklusiivne-VÕI, pöördkood) ja bitinihke toiminguid (aritmeetiline ja loogiline nihe, pööramine). Salvestusfunktsioonina mälu tekitamiseks kasutatakse trigereid (ingl k flip-flop). 

Üldiselt kasutatavad funktsioonid on standardsete loogikaelementidena kataloogi salvestatud, kust neid saab integraallülitusi disainides importida ja sisenditena kasutada. Kiipi disainides paigutatakse samasuguse suurusega standardsed loogikaelemendid korrektselt ridadena üksteise kõrvale ning ühendatakse omavahel keeruliste funktsioonide loomiseks.

Väratite massiiv 

ingl k Gate Array

Väratite massiivid on rakendusspetsiifilised integraallülitused, mis kasutavad eelnevalt defineerutud ränikettal paiknevaid n- ja p-tüüpi transistoride massiive. Kasutaja ei saa ränikettal olevate transistoride paigutust muuta, aga ta saab nende peal oma soovitud ühendused defineerida, mille põhjal lõplikud plaadid toodetakse.

Väratite massiivid jagunevad kanalitega ja kanaliteta massiivideks, mis erinevad üksteisest ühenduste paiknemise poolest. Kanalitega väratite massiividel luuakse loogikaelementide vahelised ühendused loogikaelementide ridade vahel asuvates kanalites. See tähendab, et transistori ridade vahele jäetakse rohkem ruumi ühenduste vedamiseks. Kanaliteta väratite massiivide puhul paiknevad ühendused loogikaelementide peal asuvas metallikihis. Tänu sellele ei pea transistoride vahele vaba ruumi jätma, aga kasutamata jäävad transistorid, mille peal paiknevad teiste ühendused.

Kohandatud disain 

ingl k Custom design 

Kohandatud disainiga rakendus-spetsiifilistel integraallülitustel on kohandatud loogikaelemendid ning kõik kohandatud kihid. Kohandatud disain võtab palju rohkem aega kui pool-kohandatud disain kuna ei ole valmisolevaid tükke millest kiip kokku panna, vaid kõik osad disainitakse käsitsi. Terve integraallülituse käsitsi disainimisel on võimalik lisada analoog komponente, optimeeritud mäluelemente ja mehaanilise struktuuri osasid, mida poleks võimalik ainult ühendustega lisada. Pika disainiaja ja käsitsi disainitud komponentide kasutamine muudab kohandatud disaini pool-kohandatud disainist palju kallimaks.
Üheks sobivaks kohandatud disaini näiteks on mikroprotsessorid.

Mitme projekti toorik 
ingl k Multi-Project Wafers

Mitme projekti toorikud on ränikettad, millel integreeritakse mitu erinevat rakendus-spetsiifilist disaini. See aitab vähendada disainide maksuvust jagades maskikomplekti kulud tellijate vahel ära. Soodsama disain muudab kohandatud disaini tavakasutajale kergemini kättesaadavaks tänu mitme prokjekti toorikute kasutamisele.

Vaata ka 
 FPGA
 Integraallülitus
 Mikroprotsessor
 Programmeeritav loogikaseade
 Riistvarakirjelduse keel
 Süsteemikiip

Viited