Fundamentalmente, todos os circuitos são analógicos. O problema ao realizar cálculos com tensões ou correntes analógicas é uma combinação de ruído e distorção. Os circuitos analógicos estão sujeitos a ruído e é muito difícil linearizar circuitos analógicos em grandes ordens de magnitude. Cada estágio de um circuito analógico adicionará ruído e / ou distorção ao sinal. Isso pode ser controlado, mas não pode ser eliminado.
Os circuitos digitais (ou seja, o CMOS) basicamente desviam esse problema usando apenas dois níveis para representar informações, com cada estágio regenerando o sinal. Quem se importa se a saída estiver desativada em 10%, ela só deve estar acima ou abaixo de um limite. Quem se importa se a produção é distorcida em 10%, novamente só precisa estar acima ou abaixo de um limite. Em cada comparação de limiar, o sinal é basicamente regenerado e problemas de ruído / não linearidade / etc. retirados. Isso é feito amplificando e cortando o sinal de entrada - um inversor CMOS é apenas um amplificador muito simples, feito com dois transistores, operados em circuito aberto como um comparador. Se o nível for pressionado acima do limite, você receberá um pequeno erro. Os processadores geralmente são projetados para ter taxas de erro de bits da ordem de 10 ^ -20, IIRC. Por causa disso, os circuitos digitais são incrivelmente robustos - eles são capazes de operar em uma ampla gama de condições, porque a linearidade e o ruído são basicamente problemas. É quase trivial trabalhar com números de 64 bits digitalmente. 64 bits representa 385 dB de faixa dinâmica. São 19 ordens de magnitude. Não há nenhuma maneira no inferno de você chegar perto disso com circuitos analógicos. Se a sua resolução for de 1 picovolt (10 ^ -12) (e isso será basicamente inundado instantaneamente por ruído térmico), será necessário suportar um valor máximo de 10 ^ 7. Qual é 10 megavolts. Não há absolutamente nenhuma maneira de operar sobre esse tipo de faixa dinâmica em analógico - é simplesmente impossível. Outro trade-off importante nos circuitos analógicos é a largura de banda / velocidade / tempo de resposta e o ruído / faixa dinâmica. Circuitos de largura de banda estreitos calcularão a média do ruído e terão bom desempenho em uma ampla faixa dinâmica. A desvantagem é que eles são lentos. Os circuitos de largura de banda são rápidos, mas o ruído é um problema maior, portanto a faixa dinâmica é limitada. Com o digital, você pode jogar bits no problema para aumentar o alcance dinâmico ou obter um aumento na velocidade fazendo as coisas em paralelo, ou ambos.
No entanto, para algumas operações, o analógico tem vantagens - mais rápido, mais simples, menor consumo de energia, etc. O digital deve ser quantizado em nível e em tempo. O analógico é contínuo em ambos. Um exemplo em que as vitórias analógicas estão no receptor de rádio da sua placa wifi. O sinal de entrada chega a 2,4 GHz. Um receptor totalmente digital precisaria de um ADC executando pelo menos 5 gigasamples por segundo. Isso consumiria uma enorme quantidade de energia. E isso nem sequer considera o processamento após o ADC. No momento, os ADCs dessa velocidade são realmente usados apenas para sistemas de comunicação de banda base de alto desempenho (por exemplo, modulação óptica coerente de alta taxa de símbolos) e em equipamentos de teste. No entanto, um punhado de transistores e passivos pode ser usado para converter os 2.
A conclusão é que existem vantagens e desvantagens na computação analógica e digital. Se você puder tolerar ruído, distorção, baixa faixa dinâmica e / ou baixa precisão, use analógico. Se você não puder tolerar ruído ou distorção e / ou precisar de alta faixa dinâmica e alta precisão, use o digital. Você sempre pode jogar mais bits no problema para obter mais precisão. No entanto, não há equivalente analógico.