# Circuito digital

Os circuitos digitais ou circuitos lógicos são definidos como circuitos eletrônicos que empregam a utilização de sinais elétricos em apenas dois níveis de corrente (ou tensão) para definir a representação de valores binários.
Circuitos lógicos baseiam seu funcionamento na lógica binária, que consiste no fato de que toda informação deve ser expressa na forma de dois dígitos (tanto armazenada, como processada), sendo tais dígitos 0 (zero) ou 1 (um). A partir disto surge a nomeação “digital” (dois dígitos).
Este fato auxilia para a representação de estados de dispositivos que funcionam em dois níveis distintos, sendo estes: ligado/desligado (on/off), alto/baixo (high/low), verdadeiro/falso (true/false) entre outros.
Os computadores, telefones celulares e leitores de DVD ou blu-ray são alguns exemplos de aparelhos que baseiam parte do seu funcionamento em circuitos digitais.

## Etimologia

A palavra digital vem do latim digitalis, que significa "relacionado aos dedos".
Desde que a humanidade desenvolveu o processo de contagem, os dedos foram os instrumentos mais simples e eficientes para contar pequenos valores. O sistema de numeração indo-arábico, o mais usado atualmente, é um sistema de base dez, pois são dez os dedos das duas mãos dos seres humanos. Muitos outros sistemas de numeração usam a base decimal, pois serviam para simbolizar a contagem com os dedos.
Normalmente com os dedos só é possível contar valores inteiros. Por causa dessa característica, a palavra digital também é usada para se referir a qualquer objeto que trabalha com valores discretos. Ou seja, entre dois valores considerados aceitáveis existe uma quantidade finita de valores aceitáveis.
Digital não é sinônimo de eletrônico: por exemplo, o computador eletrônico pode ser chamado de digital porque trabalha com o sistema binário, que é simbolizado por uma sequência finita de zeros e uns, qualquer que seja o tipo de dados.
Hoje em dia, porém, não se consegue desvincular a palavra "digital" do sistema informático e de tecnologias ligadas à computação, como, por exemplo, "transmissão digital".

## Construção

Circuitos são constituídos pela associação de blocos lógicos.
Os blocos lógicos são divididos em 7 classes:
* E (AND)
* OU (OR)
* NÃO (NOT)
* NE (NAND)
* NOU (NOR)
* OU EXCLUSIVO (XOR)
* NÃO-OU EXCLUSIVO (XNOR)
A partir destes blocos lógicos é possível construir praticamente todas as outras associações necessárias.
Exemplos:
* Contadores Binários (flip-flops).
* Unidades lógico-aritméticas (ULA, em inglês, ALU).

## Circuitos digitais e circuitos analógicos

Circuitos digitais apresentam diversas vantagens se comparados aos circuitos analógicos, tais como:
* Facilidade de projetar e armazenar informações;
* Extensa programabilidade;
* Maior exatidão e integração;
* São menos afetados por ruídos originários de flutuações de tensão de alimentação por não dependerem do valor exato da tensão elétrica recebida, e sim da diferença entre os níveis alto e baixo.
Uma desvantagem dos circuitos digitais é que o mundo é de natureza analógica, melhor representada em valores contínuos com extensa variação de frequência, o que faz com que todo circuito digital que lide com variáveis físicas de natureza analógica necessite converter tal informação para o meio digital, para então processar, e posteriormente fazer o fluxo inverso, convertendo da natureza digital para a analógica.

## Circuitos combinatórios

Um circuito digital é dito combinatório ou combina se a saída depende única e exclusivamente das combinações das variáveis de entrada recebidas em um dado momento, ou seja, o circuito combinacional não é capaz de armazenar valores em "memória", para uso posterior.
O funcionamento de todas as portas lógicas básicas e a lógica booleana que descrevem e analisam os circuitos feitos a partir da combinação de portas lógicas podem ser classificados como circuitos lógicos combinacionais porque, em qualquer instante de tempo, o nível lógico da saída do circuito depende da combinação dos níveis lógicos presente nas entradas. Um circuito combinacional não possui a característica de memória, portanto sua saída depende apenas dos valores atuais das entradas.
O circuito combinacional realiza um conjunto de equações booleanas realizando uma determinada operação de processamento da informação, ou seja, a combinação de valores de entrada é vista como uma informação distinta das outras e o conjunto de valores de saídas das operações representa o resultado da operação. Em cada circuito pode ser usada a simplificação de circuitos lógicos pelo método de mapeamento ou teoremas da álgebra booleana.

## Circuitos integrados em sistemas digitais

Os circuitos integrados permitiram a implementação de sistemas digitais mais simples e seguros em relação a sistemas implementados com componentes discretos pois exigem menor manutenção, consomem menos energia e têm menor custo, peso e tamanho.
Existem diversas tecnologias usadas atualmente para a produção de circuitos integrados, dentre elas, as mais comuns são:
* Lógica Transistor-Transistor.
* CMOS (Complementary Metal-óxido-semicondutor).
* NMOS (N-type Metal-oxide-semiconductor Logic).
* ECL (Emitter-Coupled Logic)

### Transferência de informações

De maneira geral, existem duas formas de transferência de dados em CIs, sendo elas:
* Paralela — os bits são transferidos simultaneamente, ou seja, várias filas de dados sofrem transição todas ao mesmo tempo, em um mecanismo de múltiplas filas;
* Serial — os bits são transferidos um de cada vez no mesmo fluxo de dados, em um mecanismo de única fila.

## Performance de circuitos digitais

Circuitos digitais possuem atrasos na propagação de seus sinais. Estes atrasos podem ocorrer devido ao tempo que cada porta lógica leva para gerar um sinal de saída, dada uma mudança no sinal de entrada, e devido à propagação dos sinais através dos fios do circuito. $^{:p.57}$
A velocidade de um circuito digital é sempre limitada de acordo com o maior atraso do circuito, causado pelas portas lógicas. O caminho com maior tempo de atraso entre dois pontos do circuito é chamado de caminho crítico.$^{:p.271}$