Conteúdos da cadeira

Circuitos combinatórios

Módulos, multiplexadores, descodificadores, desmultiplexadores e o somador ripple-carry.

Markdown

Perguntar sobre esta página

ChatGPTClaudePerplexityGeminiCopiar e abrir

Envia o link e pede à IA para ler a página. No Gemini, cola a pergunta copiada.

Ver pergunta para copiar
Nesta página

Portas isoladas não chegam longe. O passo seguinte é encapsular grupos de portas em módulos com uma função clara e combinar módulos e portas para construir circuitos maiores. Um módulo pode repetir-se: um circuito iterativo é constituído por repetições de um mesmo módulo, e os barramentos (feixes de fios desenhados como um só traço) simplificam os diagramas.

Multiplexador

O multiplexador (MUX) seleciona uma de várias entradas de dados e copia-a para a saída. Um MUX 2:12{:}1 tem duas entradas de dados I0I_0 e I1I_1, uma entrada de seleção S0S_0 e uma saída YY:

Y=Sˉ0I0+S0I1Y = \bar{S}_0 I_0 + S_0 I_1

Quando S0=0S_0 = 0, sai I0I_0; quando S0=1S_0 = 1, sai I1I_1. Um MUX 2N:12^N{:}1 tem NN entradas de controlo SN1,,S1,S0S_{N-1}, \ldots, S_1, S_0 e existem multiplexadores 4:14{:}1, 8:18{:}1 e por aí fora. Há um resultado que deves reter: todas as expressões lógicas se podem implementar com multiplexadores 2:12{:}1, bastando ligar as entradas de dados a constantes ou a variáveis e usar as variáveis como seleção.

Descodificador binário

O descodificador binário faz o trabalho inverso: transforma um código com poucos bits em sinais individuais. Um descodificador N:2NN{:}2^N tem NN entradas e 2N2^N saídas, e ativa exatamente a saída cujo índice corresponde ao código de entrada. Um descodificador 2:42{:}4 com entrada 10 ativa a saída Y2Y_2 e desativa as restantes.

O descodificador tem ainda uma entrada de habilitação (enable, EN): com EN desativada, nenhuma saída ativa. Um facto útil: um descodificador binário N:2NN{:}2^N seguido de uma porta OR permite realizar todas as funções de NN variáveis, porque cada saída é um mintermo e a OR soma os mintermos pretendidos.

Desmultiplexador

O desmultiplexador (DEMUX) 1:2N1{:}2^N tem uma entrada de dados, NN entradas de controlo e 2N2^N saídas. A entrada é copiada para a saída selecionada; as restantes ficam a zero. Podes vê-lo como um descodificador binário com uma entrada adicional de dados: em vez de ativar a saída selecionada com valor fixo, copia para ela o valor da entrada.

O somador ripple-carry

O full adder (FA) soma três bits, dois operandos e um transporte de entrada, e produz a soma e o transporte de saída. Encadeando um FA por cada posição, com o transporte a passar de um módulo para o seguinte, obtém-se o somador ripple-carry, que soma duas palavras de nn bits. É o exemplo canónico de circuito iterativo.

Soma 10111011 (1111) com 01110111 (77) com um somador de 4 bits, seguindo o transporte da direita para a esquerda:

  Posição:     3 2 1 0
  A:           1 0 1 1
  B:           0 1 1 1
  Transporte:  1 1 1 0 1 (entra 0 na posição 0)
  Soma:        0 0 1 0

Posição 0: 1+1+0=101 + 1 + 0 = 10, escreve 0 e transporta 1. Posição 1: 1+1+1=111 + 1 + 1 = 11, escreve 1 e transporta 1. Posição 2: 0+1+1=100 + 1 + 1 = 10, escreve 0 e transporta 1. Posição 3: 1+0+1=101 + 0 + 1 = 10, escreve 0 e transporta 1. O resultado é 0010 com transporte final 1, ou seja, 100102=1810010_2 = 18. Confirma: 11+7=1811 + 7 = 18.

O nome conta a fraqueza: o transporte propaga-se (ripple) posição a posição, por isso somar palavras largas demora. Somadores rápidos calculam os transportes em paralelo, mas pagam com mais portas.

Experimenta: soma 1100 (1212) com 1010 (1010) pelo mesmo método e confirma que obténs `10110_2 = 22$.

Ver o ficheiro no GitHub

À tua maneira

Escolhe como preferes ler.

Aparência
Ajustar cores e largura
Cor de destaque do tema FEUP
Tipo de letra

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

As tuas escolhas ficam guardadas neste navegador.

Pesquisar

Escreve para pesquisar em todo o site.

para escolher · Enter para abrir · Esc para fechar

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.