Fondamentalmente, tutti i circuiti sono analogici. Il problema con l'esecuzione di calcoli con tensioni o correnti analogiche è una combinazione di rumore e distorsione. I circuiti analogici sono soggetti a rumore ed è molto difficile rendere i circuiti analogici lineari su enormi ordini di grandezza. Ogni stadio di un circuito analogico aggiungerà rumore e / o distorsione al segnale. Questo può essere controllato, ma non può essere eliminato.
I circuiti digitali (vale a dire CMOS) fondamentalmente affiancano l'intero problema usando solo due livelli per rappresentare le informazioni, con ogni stadio che rigenera il segnale. Chi se ne frega se l'uscita è disattivata del 10%, deve solo essere al di sopra o al di sotto di una soglia. Chi se ne frega se l'uscita è distorta del 10%, di nuovo deve solo essere al di sopra o al di sotto di una soglia. Ad ogni confronto di soglia, il segnale viene sostanzialmente rigenerato e problemi di rumore / non linearità / ecc. spogliato. Questo viene fatto amplificando e tagliando il segnale di ingresso: un inverter CMOS è solo un amplificatore molto semplice realizzato con due transistor, gestiti ad anello aperto come comparatore. Se il livello viene superato oltre la soglia, viene visualizzato un errore un po '. I processori sono generalmente progettati per avere tassi di errore in bit dell'ordine di 10 ^ -20, IIRC. A causa di ciò, i circuiti digitali sono incredibilmente robusti: sono in grado di funzionare in una vasta gamma di condizioni perché la linearità e il rumore sono fondamentalmente senza problemi. È quasi banale lavorare in digitale con numeri a 64 bit. 64 bit rappresentano 385 dB di gamma dinamica. Sono 19 ordini di grandezza. All'inferno non c'è modo di avvicinarsi a questo con i circuiti analogici. Se la tua risoluzione è 1 picovolt (10 ^ -12) (e questo sarà sostanzialmente sommerso all'istante dal rumore termico) allora devi supportare un valore massimo di 10 ^ 7. Che è di 10 megavolt. Non c'è assolutamente modo di operare su quel tipo di gamma dinamica in analogico: è semplicemente impossibile. Un altro importante compromesso nei circuiti analogici è la larghezza di banda / velocità / tempo di risposta e rumore / gamma dinamica. I circuiti a larghezza di banda ridotta eliminano il rumore e si comportano bene in un ampio intervallo dinamico. Il compromesso è che sono lenti. I circuiti ad ampia larghezza di banda sono veloci, ma il rumore è un problema più grande, quindi la gamma dinamica è limitata. Con il digitale, puoi lanciare bit sul problema per aumentare la gamma dinamica o aumentare la velocità facendo cose in parallelo o entrambi.
Tuttavia, per alcune operazioni, l'analogico presenta dei vantaggi: più veloce, più semplice, un consumo di energia più basso, ecc. Il digitale deve essere quantizzato a livello e nel tempo. L'analogico è continuo in entrambi. Un esempio di vincite analogiche è nel ricevitore radio nella tua scheda wifi. Il segnale di ingresso arriva a 2,4 GHz. Un ricevitore completamente digitale avrebbe bisogno di un ADC che esegua almeno 5 gigasample al secondo. Ciò consumerebbe un'enorme quantità di energia. E questo non sta nemmeno considerando l'elaborazione dopo l'ADC. Al momento, gli ADC di quella velocità sono realmente utilizzati solo per sistemi di comunicazione in banda base ad altissime prestazioni (ad es. Modulazione ottica coerente ad alta velocità di simboli) e nelle apparecchiature di prova. Tuttavia, una manciata di transistor e passivi può essere utilizzata per convertire i 2.
La linea di fondo è che ci sono vantaggi e svantaggi per il calcolo analogico e digitale. Se è possibile tollerare rumore, distorsione, bassa gamma dinamica e / o bassa precisione, utilizzare analogico. Se non riesci a tollerare rumore o distorsione e / o hai bisogno di un'elevata gamma dinamica e un'alta precisione, usa il digitale. Puoi sempre lanciare più bit al problema per ottenere più precisione. Tuttavia, non esiste un equivalente analogico di questo.