Um circuito integrado de aplicação específica (do inglês application-specific integrated circuit; ASIC) é um circuito integrado projetado para executar uma função ou um conjunto de funções definido para determinada aplicação. Diferentemente de componentes de uso geral, seu projeto é adaptado aos requisitos do produto em que será utilizado.
Os ASICs são empregados, entre outras áreas, em equipamentos de telecomunicações e de rede, eletrônicos de consumo, processamento de sinais e sistemas embarcados. Conforme a aplicação, um circuito pode integrar lógica digital, memória, interfaces, circuitos analógicos ou núcleos de processamento. A configuração concreta depende das necessidades funcionais do produto.
O desenvolvimento de um ASIC pode exigir investimento inicial significativo em engenharia, projeto físico, verificação e fabricação. Em contrapartida, a especialização do circuito pode reduzir o custo por unidade e o consumo de energia ou aumentar o desempenho em comparação com soluções de uso geral. Esses resultados não são automáticos: dependem da arquitetura, do processo de fabricação, do volume produzido e dos requisitos de cada projeto.
Os ASICs digitais podem ser descritos por meio de uma linguagem de descrição de hardware (HDL), como Verilog ou VHDL. Essas linguagens permitem representar o comportamento e a estrutura lógica do circuito. O fluxo de desenvolvimento pode incluir simulação, verificação funcional, síntese lógica, implementação física, posicionamento e roteamento dos componentes, fabricação e testes.
Os métodos de projeto de ASIC são frequentemente classificados em três categorias: projeto totalmente personalizado, projeto baseado em células padrão e matriz de portas (*gate array*). Elas diferem sobretudo no grau de personalização do circuito, no aproveitamento de blocos previamente definidos e nos custos e prazos de desenvolvimento.
No projeto totalmente personalizado (full custom), a estrutura e o leiaute do circuito são desenvolvidos especificamente para a aplicação, com possibilidade de personalização em nível de transistores. Essa abordagem permite otimizar aspectos como área ocupada, desempenho e consumo de energia, e pode ser utilizada em circuitos digitais, analógicos ou mistos.
A liberdade de projeto também aumenta a complexidade do desenvolvimento e pode exigir mais recursos de engenharia, verificação e implementação física. O custo e o tempo necessários dependem da complexidade do circuito e do nível de otimização pretendido; por isso, essa abordagem não é necessariamente a opção mais vantajosa para todos os projetos.
No projeto baseado em células padrão (standard cell), o circuito é construído a partir de uma biblioteca de células lógicas previamente projetadas e caracterizadas. Entre os elementos possíveis estão portas lógicas, multiplexadores e flip-flops. Ferramentas de automação de projeto eletrônico (EDA) são utilizadas para sintetizar a lógica e auxiliar na implementação física, incluindo o posicionamento das células e o roteamento das interconexões.
O uso de bibliotecas reutilizáveis e ferramentas automatizadas permite reduzir o esforço de projeto em comparação com uma implementação inteiramente personalizada. O resultado depende, entre outros fatores, das características da biblioteca, das restrições de projeto e do processo de fabricação escolhido.
A matriz de portas (*gate array*) utiliza uma estrutura de base previamente fabricada, que contém uma disposição definida de transistores ou de elementos básicos. A personalização do circuito ocorre principalmente pela definição das interconexões metálicas necessárias à aplicação.
Como parte da estrutura já está preparada antes da personalização, essa técnica pode reduzir etapas de fabricação e determinados custos iniciais em comparação com um circuito totalmente personalizado. Em contrapartida, a disposição predefinida limita as possibilidades de otimização e pode tornar o resultado menos eficiente em área ou desempenho do que outras abordagens, conforme o projeto.
Um sistema em um chip (system-on-chip, SoC) integra em um único circuito integrado diversos componentes necessários a um sistema eletrônico, como processadores, memórias, interfaces e outros blocos funcionais. Muitos SoCs são desenvolvidos como ASICs, mas os termos não são sinônimos: ASIC destaca a especialização do circuito para uma aplicação, enquanto SoC descreve a integração de subsistemas em um único chip.
Na utilização contemporânea do termo, um ASIC costuma designar um circuito cujo comportamento de hardware é definido durante o projeto e a fabricação. Já um dispositivo lógico programável, como um FPGA, permite configurar sua lógica e suas interconexões depois de fabricado.
A terminologia nem sempre é uniforme: algumas obras técnicas empregam classificações mais abrangentes, que incluem categorias de ASIC programável. Por isso, a distinção deve ser entendida no contexto da terminologia usada pela fonte. Na comparação prática entre ASICs e FPGAs, fatores relevantes incluem flexibilidade, prazo de desenvolvimento, custo inicial, custo por unidade, consumo de energia e volume de produção.
Um exemplo histórico de integração de funções lógicas em um circuito especializado é a matriz lógica não comprometida, conhecida pela sigla ULA (uncommitted logic array). O computador pessoal ZX81, lançado em 1981, utilizava uma ULA fabricada pela Ferranti. Segundo o Centre for Computing History, essa integração contribuiu para reduzir o número de circuitos integrados necessários em relação ao modelo anterior, o ZX80.