ASIC
Från Rilpedia
ASIC (engelska Application Specific Integrated Circuit) är en integrerad krets (IC) som har en specifik funktion snarare än en allmän uppgift. Denna funktion är ofta mer specialiserad än vad man kan åstadkomma i till exempel en grindmatris men mindre generell än en mikroprocessor. En integrerad krets som är designad för att styra en kassaapparat är ett exempel på en ASIC. Ett mikroprocessorchip är däremot inte applikationsspecifikt, eftersom användare kan anpassa det till många olika användningsområden.
En ASIC kan tillverkas både som en analog, digital och blandat analog och digital (mixed signal) krets. En rent digital ASIC är dock idag ojämförligt vanligast.
Historia
De första exemplen på ASIC utnyttjade grindmatristeknologi. Det brittiska företaget Ferranti producerade sannolikt den första grindmatrisen, en ULA (Uncommited Logic Array), ungefär 1980. Användaranpassningen av en grindmatris sker genom att man ändrar metallmasken som bestämmer hur transistorerna på kislet kopplas ihop. ULA:er hade en komplexitet på ett par tusen grindar. Senare versioner blev mer generella med olika baskisel anpassade med både metallmask och polysilikonmasker. En del baskisel innehåller RAM-element.
I den senare delen av 80-talet gjorde tillgängligheten av logiksyntesverktyg (som exempelvis Design Compiler) som kunde läsa ett hårdvarubeskrivande språk i VHDL eller Verilog och kompilera en högnivåbeskrivning till en optimerad grindnätlista att standardcelldesign hamnade i frontlinjen. Ett standardcellbibliotek innehåller karakteriserade modeller av grindar (såsom två ingångar NOR, två ingångar NAND, inverterare et cetera) som kiselkompilatorn använder för att översätta källkoden till en grindnätlista. Denna nätlista matas sedan in i ett place & route-verktyg för att skapa en fysisk layout. Routingverktyg placerar sedan de karakteriserade cellerna i en matris och kopplar ihop dem genom matrisen. Det slutliga resultatet från denna process består av en databas som representerar olika lager och polygoner i ett GDS-II format svarande mot de olika masklagren för chipet man vill bygga.
Slutligen kan en designer också välja “full-custom” design för att implementera en ASIC. Då skapas en individuell beskrivning av varje transistor i kretsen. En ”full-custom” design kan fungera många gånger snabbare än en standardcellimplementation. En standardcellimplementation är oftast mycket snabbare att bygga och med mycket mindre risk för fel än en ”full-custom”.
Efterhand som storleken på ledare och transistorer har minskat (se Moores lag) och designverktygen utvecklats har den möjliga komplexiteten (och därmed också funktionaliteten) ökat från 5000 grindar till 20 miljoner eller fler. Moderna ASIC:ar innehåller ofta en eller flera olika 32-bitars processorer, RAM-minnen och annan funktionalitet i färdiga byggblock. Sådana ASIC:ar kallas SoC – System on a Chip.
Användningen av intellektuell designvara (Intellectual property – IP) i ASIC:ar är en ökande trend. Många ASIC-hus har haft standardcellbibliotek i många år. IP tar återanvändning av design till en ny nivå. Konstruktörer som beskriver större komplexa kretsar använder idag programspråk som beskriver elektronik snarare än kod. Många företag säljer idag färdiga fungerande byggblock i dessa programspråk. Man kan exempelvis köpa CPU:er, Ethernet, byggblock och telefoninterface.
Fördelar med en ASIC är bland annat följande:
- All funktion får plats i samma kapsel. Ett kretskort med funktionen utspridd är då inte nödvändigt. Man kan ofta få in ett helt kretskort i en ASIC. En hel samling kretskort kan på detta sätt krympas till att bara finnas på ett kort med några ASIC:ar.
- Kretsen innehåller bara det som verkligen behövs och blir därför mindre till storleken och mindre effektkrävande än en motsvarande lösning i exempelvis en FPGA.
- Kretsen får det mesta av sin funktion i tillverkningen. Programmering i efterhand kan begränsas till de delar som absolut behöver vara programmerbara.
- Den är billig vid stora tillverkningsvolymer, exempelvis till konsumentprodukter.
För mindre konstruktioner och mindre volumer i produktion, är ASIC:ar idag inte lika attraktiva eftersom FPGA:er blivit större, snabbare och mer kapabla. En SoC kan idag bestå av en eller flera CPU:er, minnen (RAM och FLASH) och en stor FPGA.