**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-spetsiiflisiste integraallülituste alamjaotus
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. 

Rakendus-spetsiifilise integraallülituse ja FPGA võrdlus|  | Rakendus-spetsiifiline integraallülitus | FPGA |
| --- | --- | --- |
| Programmeeritav | Ei | Jah |
| Võimaldab funktsionaalsust muuta | Ei | Jah |
| Tootmiskogus | Suur | Väike |
| Energiakulu | Väiksem | Suurem |
| Kasutusvaldkond | Spetsiifilistes rakendustes | Prototüüpimiseks |

### 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

Renderdus standardse loogikaelemendi sisemusest. Beežid tähistab metallühendusi, punane tähistab polüsilikonist värateid ja nende all on kristallne räni
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

Mikroskoobiga tehtud pilt väratite massiivi tüüpi rakendus-spetsiifilisest integraallülitusest. Disain kasutab alla 20% saadaolevatest loogikaväratitest
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

Mikroskoobiga tehtud pilt kohandatud disainiga rakendus-spetsiifilisest integraallülitusest. Kiibi ülemises osas on väratite massiiv.
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
------

1. ↑  McFadden, Christopher. "ASIC: Discover the power of the application-specific integrated circuit". *Interesting Engineering*. Vaadatud 7. mai 2023.
2. ↑  "Introduction to Application Specific Integrated Circuit (ASIC)". *elprocus*. Vaadatud 7. mai 2023.
3. ↑  "Introduction to ASIC Technology: Different Types, Design Flow, Applications". *ElectronicsHub*. Vaadatud 7. mai 2023.