Sistemas digitais e transístores

Dos níveis elétricos às portas CMOS e ao computador programável.

TLDR

Perguntar sobre esta página

ChatGPTClaudePerplexityGrokGeminiCopiar e abrirDeepSeekCopiar e abrir

Bits e níveis elétricos

Um bit tem dois valores lógicos, 0 e 1. Num circuito elétrico, cada valor corresponde a um intervalo de tensão: uma tensão dentro do intervalo baixo significa 0, e dentro do intervalo alto significa 1. A zona intermédia não é um terceiro valor lógico válido.

Uma perturbação pequena pode alterar a tensão sem alterar o bit reconhecido, porque existe margem entre os intervalos. Esta margem permite regenerar sinais digitais. Não implica que o circuito aceite qualquer ruído, nem que o sinal físico mude instantaneamente.

Um sistema analógico representa uma grandeza por uma variável contínua, como a tensão proporcional à temperatura; um conversor analógico-digital amostra e quantifica essa grandeza. Com 8 bits há 256 códigos, pelo que valores próximos podem receber o mesmo código, e o erro de quantificação resulta desta discretização.

NMOS e PMOS

Um transístor FET tem gate, source e drain. A tensão entre gate e source controla a formação de um canal condutor entre source e drain. Escrevemos VGS=VG−VSV_{GS}=V_G-V_S e VSG=VS−VGV_{SG}=V_S-V_G. Num NMOS, a condução começa quando VGSV_{GS} excede a tensão de limiar VtV_t. Num PMOS, a polaridade é inversa e a condição usa VSG>∣Vt∣V_{SG}>|V_t|.

Por exemplo, com limiar NMOS de 0,5 V, VGS=0,3V_{GS}=0{,}3 V não abre o canal, enquanto 1,2 V o abre. A corrente depende também da tensão entre drain e source, por isso o transístor real não é um interruptor de resistência constante; ao trabalhar com portas, abstraímos esses pormenores nos níveis lógicos e nos atrasos.

No modelo de interruptor ideal, um NMOS conduz quando a entrada de controlo é 1, e um PMOS quando essa entrada é 0. Chamamos pull-up à rede que liga a saída à alimentação e pull-down à rede que a liga à massa.

Num inversor CMOS, um PMOS fica entre alimentação e saída, e um NMOS entre saída e massa, ambos com a mesma entrada AA:

AAPMOSNMOSSaída YY
0ConduzNão conduz1
1Não conduzConduz0

Logo Y=A‾Y=\overline A. Em estado estável ideal não há caminho condutor direto entre alimentação e massa; durante uma transição há consumo e atraso, por isso o modelo de interruptor serve para obter a função lógica, não para calcular esse consumo.

Construir NAND e NOR

Para uma NAND de duas entradas, colocamos dois NMOS em série. A saída só chega à massa quando A=B=1A=B=1. Os PMOS ficam em paralelo: qualquer entrada 0 liga a saída à alimentação. O resultado é Y=AB‾Y=\overline{AB}.

Para uma NOR, os NMOS ficam em paralelo: qualquer entrada 1 puxa a saída para 0. Os PMOS ficam em série, por isso só A=B=0A=B=0 permite uma ligação à alimentação, e assim Y=A+B‾Y=\overline{A+B}.

Por exemplo, na NAND com A=1,B=0A=1,B=0, o NMOS de BB interrompe o caminho série para a massa e o PMOS de BB conduz, por isso a saída é 1; o NMOS de A conduz, mas não basta fechar apenas uma parte da série. A tabela segue os dois caminhos:

A,BA,BNMOS em sériePMOS em paraleloYY
00A e B interrompemA e B conduzem1
01A interrompeA conduz1
10B interrompeB conduz1
11A e B conduzemnenhum conduz0

Só com A=B=1A=B=1 há caminho até à massa e nenhum até à alimentação. Verifica cada linha pelos transístores que conduzem antes de decorares a tabela.

Composição e abstração

Podemos esconder os transístores atrás de uma porta lógica, as portas atrás de um somador e os somadores atrás de uma ALU, a unidade que faz operações aritméticas e lógicas. Cada nível expõe entradas, saídas e regras suficientes para o nível seguinte.

Um computador tem CPU, memória e dispositivos de entrada e saída; a memória guarda dados e instruções. O CPU lê uma instrução, identifica a operação e altera registos ou memória, e o programa muda a sequência destas operações sem exigir alteração das ligações físicas.

Considera um sistema que recebe aa e bb, calcula a+ba+b e depois mostra o resultado. O somador é combinatório, o registo de resultado é sequencial e um controlador determina quando capturar e quando enviar para a saída; se trocarmos o programa para calcular a−ba-b, o mesmo circuito aritmético pode ser reutilizado.

Num circuito combinatório, a saída depende das entradas atuais, enquanto num circuito com memória pode continuar igual depois de as entradas mudarem, porque o estado e o instante de atualização também contam.

Exercícios

Reconstruir uma NAND

Desenha as redes NMOS e PMOS de uma NAND de duas entradas. Para A=0,B=1A=0,B=1, indica que caminho conduz e a saída.

Pista

Começa pela condição que liga a saída à massa, ou seja, pelos NMOS em série.

Solução

Os NMOS ficam em série e os PMOS em paralelo. Com A=0, o NMOS de A está desligado, interrompendo o caminho para a massa. O PMOS de A conduz e liga a saída à alimentação. Portanto Y=1. O PMOS de B está desligado, mas o ramo paralelo de A é suficiente.

Confere a tua resposta:

  • NMOS em série e PMOS em paralelo.
  • Com A=0,B=1, saída 1 pelo PMOS de A.

Erros frequentes

Não copies a ligação em série da rede NMOS para a PMOS. As redes devem produzir condições complementares.

Voltar à explicação
Quantificar uma medição

Um conversor divide [0,4[[0,4[ V em intervalos iguais, um por código de 6 bits. O intervalo k inclui o seu limite inferior e exclui o superior. A reconstrução usa o ponto médio do intervalo. Determina o passo, os códigos de 1,01 V, 1,04 V e 1,0625 V e os valores reconstruídos. Explica o que se perde.

Pista

Divide a amplitude pelo número de códigos e procura o intervalo de cada tensão.

Mais uma pista

O índice do intervalo é a parte inteira de tensão/passo. A reconstrução acrescenta meio passo ao limite inferior.

Solução

Há 26=642^6=64 códigos, por isso o passo é 4/64=0,06254/64=0{,}0625 V. O intervalo 16 vai de 16×0,0625=116\times0{,}0625=1 V até 1,0625 V, excluindo esse extremo. As duas primeiras tensões recebem o código 16, 010000, e são reconstruídas como 1+0,0625/2=1,031251+0{,}0625/2=1{,}03125 V. Os erros reconstruído menos original são +0,02125 V e -0,00875 V. O código já não permite distinguir estas duas medições.

1,0625 V está exatamente no limite inferior do intervalo 17: recebe 010001 e é reconstruído como 1,0625+0,03125=1,093751{,}0625+0{,}03125=1{,}09375 V. A escolha de incluir o limite inferior decide este caso de fronteira.

Confere a tua resposta:

  • 64 intervalos de 0,0625 V.
  • 1,01 V e 1,04 V recebem o código 16; 1,0625 V recebe 17.
  • Valores reconstruídos 1,03125 V e 1,09375 V.

Erros frequentes

O número de códigos só permite calcular o passo quando também conheces o intervalo e a regra. Aqui 4 V é excluído, por isso o maior intervalo continua a ter código 63.

Voltar à explicação
Qual bloco guarda o passado?

Um somador recebe entradas que mudam entre dois flancos, mas o valor apresentado só muda no flanco seguinte. Identifica o papel do somador e do registo de saída.

Pista

Distingue calcular um resultado de o capturar.

Solução

O somador é combinatório e recalcula a partir das entradas atuais, após o seu atraso. O registo é sequencial: conserva o resultado anterior entre flancos e captura a entrada no flanco ativo, desde que setup e hold se cumpram. A saída apresentada tem memória por causa do registo.

Confere a tua resposta:

  • Somador calcula a partir das entradas atuais.
  • Registo conserva entre flancos e captura no flanco ativo.
Voltar à explicação

À tua maneira

Aparência

Modo de cor
Tema
Cor de destaque

Leitura

Fonte de leitura

Álgebra, lógica e uma ideia de cada vez.

Código

Fonte do código

Navegação

Cursor de leitura, sem edição. h, j, k, l movem; / pesquisa nesta página. v seleciona caracteres; V seleciona linhas; y copia. Tab permite destacar ou comentar. Espaço ou Enter abre blocos recolhíveis. Nos cartões, h, j, k, l mudam o foco.

CSS personalizado

Ativa uma sugestão ou guarda o teu CSS. Só muda este navegador.

Usa --page, --text e --accent para acompanhar o tema.

Seletores e recuperação

.site-header, .prose, .course-card, [data-reading-history], [data-playground] e .page-actions.

Abre a aparência com a tecla vírgula ou no rodapé. Se o CSS esconder os controlos, abre esta página sem CSS personalizado.

Pesquisar

Escreve para pesquisar em todo o site.

para escolher · Enter para abrir · Esc para fechar

Copiar fórmula

A cópia automática não está disponível. Copia o LaTeX abaixo.

Pesquisar nesta página

Enter procura · n / N repetem · Esc cancela. Ctrl / Cmd K pesquisa todo o site.

Atalhos de teclado

Clica numa tecla para a mudar. Esc cancela. Backspace desativa.

PesquisarCtrl / Cmd K

Os atalhos não interferem enquanto escreves. Tab e Enter funcionam sempre.