Arquitetura de Computadores · Ibmec RJ

Cap. 3 — Nível de
Lógica Digital

leitura ~50 min Prof. Clayton J A Silva Rev 2026.2

Objetivos de aprendizagem

  • Situar o nível de lógica digital no modelo de máquina multinível como o nível de menor abstração
  • Definir proposição, valor lógico e operadores lógicos primitivos (AND, OR, NOT)
  • Construir e interpretar tabelas-verdade para expressões booleanas, inclusive funções de três variáveis
  • Reconhecer tautologias, contradições e equivalências lógicas
  • Identificar as portas lógicas básicas e seus respectivos fabricantes/datasheets
  • Descrever algebricamente circuitos lógicos combinacionais e sequenciais
  • Analisar o meio-somador, o somador completo e um somador de 2 bits, porta a porta
  • Relacionar a análise do somador ao aumento de abstração nos níveis superiores do modelo

Introdução: o nível de lógica digital na máquina multinível

No Capítulo 2, o computador foi apresentado como uma máquina multinível: uma hierarquia de máquinas virtuais em que cada nível Mn oferece uma linguagem Ln ao nível superior e executa seus programas por tradução ou interpretação com o auxílio do nível imediatamente inferior. No modelo de seis níveis (TANENBAUM; AUSTIN, 2013), cada degrau acima esconde detalhes do degrau de baixo e oferece uma interface mais simples e mais próxima do raciocínio humano.

Este capítulo trata do degrau da base: o nível 0 — lógica digital. Ele é o nível mais primitivo do modelo, ou seja, o de menor abstração. Nele não existem instruções, variáveis nem programas; existem apenas sinais binários (0 e 1) e portas lógicas que os combinam segundo funções booleanas. Tudo o que os níveis superiores realizam — somar, comparar, deslocar, armazenar — precisa, em última instância, ser executado por redes de portas.

Figura 3.1 – Máquina multinível de seis níveis, com destaque para o nível de lógica digital

5Nível 5 · Linguagem orientada a problemas↓ tradução (compilador)4Nível 4 · Linguagem de montagem↓ tradução (montador)3Nível 3 · Máquina do sistema operacional↓ interpretação parcial (SO)2Nível 2 · Arquitetura do conjunto de instruções (ISA)↓ interpretação (microprograma) ou execução direta1Nível 1 · Microarquitetura↓ hardware0Nível 0 · Lógica digitalNível de dispositivo · transistores (fora do modelo)abstração crescente

Fonte: adaptada de Tanenbaum e Austin (2013).

nível de lógica digital

Nível 0 do modelo de máquina multinível. É a máquina real formada por portas lógicas interligadas, cuja “linguagem” são os valores lógicos 0 e 1 e as funções booleanas que as portas implementam. É o ponto de contato entre a abstração lógica e a realidade física do circuito eletrônico.

Abaixo do nível 0 situa-se o nível de dispositivo — transistores, tensões, correntes e física dos semicondutores —, domínio da engenharia eletrônica e, por isso, fora do escopo do modelo. O nível de lógica digital funciona como uma primeira abstração sobre ele: em vez de tensões contínuas, interessa apenas se o sinal é alto (1) ou baixo (0).

Roteiro do capítulo. Primeiro, o ferramental matemático do nível 0: a álgebra booleana (3.1) e as tabelas-verdade (3.2). Em seguida, os elementos físicos: as portas lógicas (3.3). Por fim, um primeiro bloco aritmético — o somador de 2 bits (3.4) — e a análise de como essa mesma soma é vista, com abstração crescente, em cada um dos níveis superiores (3.5).

Álgebra Booleana

3.1.1 Proposição e valor lógico

proposição

Oração declarativa afirmativa ou negativa, sobre a qual se pode atribuir um e somente um valor lógico: (F) falso ou (V) verdadeiro. Abstraímos F como 0 e V como 1. Também chamada de sentença fechada.

Sentenças interrogativas, exclamativas e imperativas não são proposições.

A proposição que só contém uma afirmação ou negação é chamada de proposição simples. As proposições simples podem ser concatenadas, gerando as proposições compostas, através de operadores lógicos, que indicam operações lógicas.

As operações lógicas primitivas são: conjunção, disjunção e negação.

3.1.2 Operação lógica de conjunção — AND

A proposição composta S resultante da conjunção de duas proposições simples p e q é indicada por:

S = p . q

Lê-se "S é igual a p e q", cujo resultado depende dos valores lógicos de p e q:

pqp.q
000
010
100
111

3.1.3 Operação lógica de disjunção — OR

A proposição composta S resultante da disjunção de duas proposições simples p e q é indicada por:

S = p + q

Lê-se "S é igual a p ou q":

pqp+q
000
011
101
111

3.1.4 Operação de inversão lógica, negação — NOT

A proposição S resultante da operação unária (um só operando) de negação de uma proposição simples p é indicada por:

S = ~p

Lê-se "S é igual a não p":

p~p
01
10
OperaçãoOutros operadores usados
Conjunção$\land$, e
Disjunção$\lor$, ou
Negação$\bar{X}$, não

3.1.5 Expressões lógicas ou booleanas

As expressões lógicas consistem na operação de proposições por meio de operadores lógicos, cujo resultado depende do valor lógico de cada proposição constituinte. Termos importantes:

procedimento

Calculando o valor de uma expressão lógica

  1. Substituir cada variável pelo seu valor lógico correspondente
  2. Resolver primeiro os símbolos especiais — precedência: () (), depois [], depois {}
  3. Aplicar as operações por precedência: negação (maior), conjunção, disjunção
  4. O resultado final será sempre 0 ou 1
CaracterísticaDefinição
TautologiaExpressão que sempre resulta em valor lógico verdadeiro (1), para todas as combinações de suas variáveis
ContradiçãoExpressão que sempre resulta em valor lógico falso (0), para todas as combinações
Equivalência lógicaDuas proposições compostas que produzem resultados iguais para todas as combinações possíveis de variáveis
Se uma expressão booleana utiliza n variáveis, é possível elaborar 2n combinações possíveis para determinar o valor da expressão.

Tabela-verdade

As tabelas-verdade representam todas as combinações de saída das funções de variáveis. São formadas por colunas das variáveis, colunas intermediárias (facultativas) e uma coluna de saída.

Dada uma função de n variáveis, a tabela deve possuir n colunas de entrada e 2n linhas de combinações. A tabela possui somente uma coluna de saída — uma função só admite um valor para cada combinação de entradas.
n colunas de entradacolunas intermediárias1 coluna de saída
Combinação 0...Saída 0
.........
Combinação 2n−1...Saída 2n−1

3.2.1 Exemplos de funções de três variáveis

Com três variáveis, A, B e C, há 23 = 8 combinações. Por convenção, as linhas são listadas na ordem da contagem binária de 000 a 111, com A como bit mais significativo. As colunas intermediárias registram os termos da expressão e facilitam a verificação do resultado.

exemplo 1

$F = A \cdot B + \bar{C}$

A saída vale 1 quando A e B valem 1 simultaneamente ou quando C vale 0. Pela precedência, resolve-se primeiro a negação, depois a conjunção e, por fim, a disjunção.

Tabela 3.1 – Tabela-verdade de F = A·B + C̄

ABC$A\cdot B$$\bar{C}$F
000011
001000
010011
011000
100011
101000
110111
111101

Fonte: elaborada pelo autor (2026).

exemplo 2

Função maioria: $M = A\cdot B + A\cdot C + B\cdot C$

A saída vale 1 quando a maioria das entradas — isto é, pelo menos duas das três — vale 1. É a lógica de um sistema de votação com três votantes.

Tabela 3.2 – Tabela-verdade da função maioria

ABC$A\cdot B$$A\cdot C$$B\cdot C$M
0000000
0010000
0100000
0110011
1000000
1010101
1101001
1111111

Fonte: elaborada pelo autor (2026).

exemplo 3

Função paridade ímpar: P

A saída vale 1 quando um número ímpar de entradas vale 1. Aqui a função é dada por uma descrição verbal; a tabela-verdade é construída diretamente pela contagem de uns em cada linha. Lendo as linhas em que P = 1, obtém-se a expressão $P = \bar{A}\bar{B}C + \bar{A}B\bar{C} + A\bar{B}\bar{C} + ABC$.

Tabela 3.3 – Tabela-verdade da função paridade ímpar

ABCnº de unsP
00000
00111
01011
01120
10011
10120
11020
11131

Fonte: elaborada pelo autor (2026).

Guarde estes resultados. As funções maioria e paridade ímpar reaparecem na seção 3.4: elas são, respectivamente, o vai-um (Cout) e o bit de soma (S) do somador completo. Uma tabela-verdade aparentemente abstrata descreve, de fato, um circuito aritmético.

princípio fundamental

Os circuitos eletrônicos digitais implementam funções lógicas.

Portas lógicas

Os circuitos digitais são circuitos elétricos com elementos básicos que operam com dois níveis de sinais lógicos: H (high, alto) e L (low, baixo). O nível H é abstraído como 1, e o nível L, como 0.

De ponto de vista elétrico, os valores de H e L variam conforme a tecnologia de construção do componente. Além dos sinais lógicos, os circuitos usam sinal de alimentação (VCC) e referência de terra (GROUND).

As portas lógicas (gates) são dispositivos eletrônicos com duas ou mais entradas e uma saída, resultante da operação lógica das entradas em um instante. As portas básicas são: AND, OR e NOT.

3.3.1 Portas OR

Implementam a operação de disjunção.

ABS
000
011
101
111

Figura 3.2 – Símbolo da porta OR

ABSS = A + B

Fonte: elaborada pelo autor (2026).

Fabricantes como a Texas Instruments produzem portas OR como a SN54HC32/SN74HC32.

Para usar as portas lógicas, é necessário consultar o datasheet do componente, que especifica pinagem, características elétricas (tensão/corrente, pois são componentes ativos) e características mecânicas (temperatura, umidade etc.).

3.3.2 Portas AND

Implementam a operação de conjunção.

ABS
000
010
100
111

Figura 3.3 – Símbolo da porta AND

ABSS = A·B

Fonte: elaborada pelo autor (2026).

A Motorola fabrica portas AND como a MC14081/MC14082 (variam pelo número de entradas). A Philips também fabrica, como a 74HC08N.

3.3.3 Inversor NOT

Implementa a operação de negação.

AS
01
10

Figura 3.4 – Símbolo do inversor NOT

ASS = Ā

Fonte: elaborada pelo autor (2026).

A Philips produz os inversores 7404.

3.3.4 Os circuitos lógicos digitais

Os circuitos lógicos classificam-se em dois tipos:

TipoCaracterística
CombinacionaisA saída depende unicamente da combinação das entradas em um instante
SequenciaisPossuem memória — a saída em um instante depende das entradas naquele instante e da saída em um instante anterior
método

Descrição algébrica de circuitos lógicos

  1. Todo circuito lógico pode ser descrito algebricamente
  2. Numerar todas as portas lógicas e inversores
  3. Identificar todas as variáveis de entrada pela sua representação simbólica
  4. Definir, na saída de cada porta e inversor, sua expressão lógica em função das respectivas entradas — usar (), [] ou {} se necessário
  5. Proceder da entrada do circuito até a saída

Exemplo ilustrativo: um circuito com duas entradas A e B, em que a porta 1 (AND) combina A e B, a porta 2 (NOT) inverte B, e a porta 3 (OR) combina as saídas das portas 1 e 2:

Figura 3.5 – Exemplo de circuito combinacional descrito porta a porta, da entrada até a saída

123ABS1 = A·BS2 = B̄SS = S1 + S2 = A·B + B̄

Fonte: elaborada pelo autor (2026).

Cada saída pode ser definida como uma função das entradas. Logo, a cada saída corresponde uma tabela-verdade.

Circuito somador de um número de 2 bits

A soma binária é a operação aritmética fundamental de qualquer processador. Somar dois números de 2 bits, A = A1A0 e B = B1B0, produz um resultado de até 3 bits, CoutS1S0, pois o maior resultado possível é 3 + 3 = 6 = 1102. O procedimento é o mesmo da soma decimal feita à mão: coluna a coluna, da direita para a esquerda, levando o vai-um (carry) para a coluna seguinte.

  vai-um:   1 1  
       A:     1 1    (3)
       B:   + 0 1    (1)
            -----
            1 0 0    (4)

Na coluna 0, 1 + 1 = 102: escreve-se 0 e vai 1. Na coluna 1, 1 + 0 + 1 (o vai-um) = 102: escreve-se 0 e vai 1, que se torna o bit mais significativo do resultado. Nota-se que a coluna 0 soma dois bits, enquanto a coluna 1 soma três (os dois bits e o vai-um). Essa diferença define os dois blocos do somador: o meio-somador e o somador completo. Antes, porém, convém apresentar uma porta adicional.

3.4.1 Porta XOR (ou-exclusivo)

A porta XOR produz 1 quando as entradas são diferentes: $S = A \oplus B = A\cdot\bar{B} + \bar{A}\cdot B$. Ela não é uma operação primitiva — pode ser construída com AND, OR e NOT —, mas é tão frequente que é fabricada como componente próprio, por exemplo o circuito integrado 74HC86, com quatro portas XOR de duas entradas.

Tabela 3.4 – Tabela-verdade da porta XOR

ABS
000
011
101
110

Fonte: elaborada pelo autor (2026).

Figura 3.6 – Símbolo da porta XOR

ABSS = A ⊕ B

Fonte: elaborada pelo autor (2026).

Figura 3.7 – Porta XOR construída com portas básicas

34215ABA·B̄Ā·BSS = A·B̄ + Ā·Bbloco XOR = 2 NOT + 2 AND + 1 OR

Fonte: elaborada pelo autor (2026).

A Figura 3.7 já ilustra a ideia central deste capítulo: o símbolo XOR é uma abstração que encapsula cinco portas básicas. Quem usa o símbolo raciocina apenas com a sua tabela-verdade e ignora a estrutura interna.

3.4.2 Meio-somador (half adder)

Soma dois bits, A e B, e produz o bit de soma S e o vai-um C. Pela tabela-verdade, S vale 1 quando as entradas diferem (XOR) e C vale 1 apenas quando ambas valem 1 (AND).

Tabela 3.5 – Tabela-verdade do meio-somador

ABCS
0000
0101
1001
1110

Fonte: elaborada pelo autor (2026).

S = A ⊕ B   ·   C = A·B

Figura 3.8 – Meio-somador

12ABSCS = A ⊕ BC = A·Bmeio-somador (half adder)

Fonte: elaborada pelo autor (2026).

3.4.3 Somador completo (full adder)

Soma três bits: A, B e o vai-um de entrada Cin, vindo da coluna anterior. A tabela-verdade mostra que S é a paridade ímpar das três entradas (Exemplo 3) e que Cout é a função maioria (Exemplo 2). A implementação usual reaproveita o sinal intermediário $P = A \oplus B$:

S = A ⊕ B ⊕ Cin   ·   Cout = A·B + Cin·(A ⊕ B)

Tabela 3.6 – Tabela-verdade do somador completo

ABCinCoutSsoma (decimal)
000000
001011
010011
011102
100011
101102
110102
111113

Fonte: elaborada pelo autor (2026).

Figura 3.9 – Somador completo implementado com duas portas XOR, duas AND e uma OR

13245ABCinSCoutP = A⊕BG = A·BT = P·CinS = P⊕CinCout = G + T

Fonte: elaborada pelo autor (2026).

A expressão $A\cdot B + C_{in}\cdot(A\oplus B)$ é logicamente equivalente à função maioria $A\cdot B + A\cdot C_{in} + B\cdot C_{in}$: basta comparar a coluna Cout da Tabela 3.6 com a coluna M da Tabela 3.2. A forma com P é preferida porque reaproveita a porta XOR que já calcula a soma.

3.4.4 Somador de 2 bits

O somador de 2 bits resulta da composição dos dois blocos: um meio-somador na coluna 0 e um somador completo na coluna 1, cuja entrada Cin recebe o vai-um C1 gerado na coluna 0. Como o vai-um “ondula” de uma coluna para a seguinte, essa organização é chamada de somador com propagação de vai-um (ripple-carry adder). Ao todo, são 7 portas e 11 sinais.

Figura 3.10 – Somador de 2 bits porta a porta (interativo)

A =
B =
0 + 0 = 000 (0)
12A0B0S0S0 = A0⊕B0C1 = A0·B0bit 0 · meio-somador35467A1B1S1CoutPGTS1 = P⊕C1Cout = G + Tbit 1 · somador completo (Cin = C1)0000000

Fonte: elaborada pelo autor (2026). Clique nas entradas para alterar seus valores; os fios em amarelo estão em nível lógico 1.

O painel abaixo do circuito mostra a análise porta a porta: cada porta é avaliada a partir dos valores presentes em suas entradas, seguindo o método da seção 3.3.4, da entrada até a saída. A Tabela 3.7 resume alguns casos.

Tabela 3.7 – Alguns casos do somador de 2 bits

ABCoutS1S0A + B
01 (1)10 (2)0113
10 (2)11 (3)1015
11 (3)01 (1)1004
11 (3)11 (3)1106

Fonte: elaborada pelo autor (2026).

atraso de propagação

Cada porta leva um tempo finito — o atraso de propagação, tpd, da ordem de nanossegundos na família 74HC — para refletir na saída uma mudança nas entradas. No somador de 2 bits, o caminho mais longo é A0/B0 → porta 2 → porta 6 → porta 7: Cout só se estabiliza após três atrasos de porta. Em um somador ripple-carry de n bits, esse atraso cresce proporcionalmente a n.

Do nível de lógica digital aos demais níveis

A resposta do somador pode ser analisada com graus crescentes de abstração. Em cada passo, o observador deixa de enxergar parte dos detalhes do passo anterior e passa a raciocinar com objetos mais complexos. Os três primeiros passos ainda ocorrem dentro do nível 0; os demais percorrem os níveis superiores do modelo.

3.5.1 Dentro do nível 0: das portas à caixa-preta

  1. Porta a porta. É o grau mais fino de análise. Conhece-se cada uma das 7 portas e cada um dos 11 sinais; a saída é obtida propagando valores pela rede, como no painel da Figura 3.10. Esse é o único ponto de vista em que o atraso de propagação e o caminho crítico são visíveis.
  2. Blocos funcionais. As portas são agrupadas em meio-somador e somador completo, cada qual descrito apenas por sua tabela-verdade. O observador passa a contar 2 blocos, não 7 portas, e já não precisa saber como cada bloco foi construído (Figura 3.11a).
  3. Caixa-preta aritmética. O circuito inteiro passa a ser visto como uma função sobre números: entram A e B, sai A + B. O raciocínio deixa de ser sobre bits isolados (Figura 3.11b). Ampliado para n bits e combinado com outros blocos — operações lógicas bit a bit, deslocadores e um multiplexador que seleciona a operação —, o somador torna-se o núcleo da Unidade Lógica e Aritmética (ULA).

Figura 3.11 – Somador de 2 bits visto como blocos funcionais e como caixa-preta aritmética

SCsomador completoMSmeio-somadorA1B1S1A0B0S0C1Cout(a) blocos funcionaisencapsularΣsomador 2 bits2A2B3A+B(b) caixa-preta aritmética

Fonte: elaborada pelo autor (2026).

3.5.2 Acima do nível 0: a mesma soma em cada nível

  1. Nível 1 — microarquitetura. A ULA é um componente do caminho de dados (datapath): registradores fornecem os operandos por barramentos, a ULA executa a operação e o resultado é gravado em outro registrador. As perguntas mudam: quais registradores alimentam a ULA, qual sinal de controle seleciona a soma e em que ciclo de clock o resultado é armazenado. O atraso de propagação das portas reaparece aqui de forma indireta, limitando a frequência máxima do clock.
  2. Nível 2 — ISA. A soma é uma instrução de máquina, por exemplo ADD R3, R1, R2, codificada como uma palavra binária. O programador desse nível enxerga registradores, formato de instrução e flags; não enxerga a ULA nem o caminho de dados. O vai-um final (Cout) reaparece como a flag de carry. Uma mesma ISA pode ser implementada por microarquiteturas diferentes — com somador ripple-carry ou com somadores mais rápidos, como o carry-lookahead —, o que concretiza a distinção entre arquitetura e organização vista no Capítulo 2.
  3. Nível 3 — máquina do sistema operacional. A instrução de soma é executada diretamente pelo nível 2, pois o SO realiza apenas uma interpretação parcial: acrescenta chamadas de sistema, memória virtual e gerência de processos. Para o SO, a soma é parte de um processo; ao trocar de processo, ele salva e restaura os registradores e as flags no contexto.
  4. Nível 4 — linguagem de montagem. A instrução aparece em forma simbólica e legível, ADD R3, R1, R2, que o montador traduz para o binário do nível 2.
  5. Nível 5 — linguagem orientada a problemas. O programador escreve simplesmente c = a + b;. O compilador escolhe os registradores e a instrução; o tipo da variável (por exemplo, inteiro de 32 bits) determina a largura do somador utilizado. O vai-um final, que no nível 0 era apenas um fio, aparece aqui como o fenômeno do estouro (overflow) da aritmética de inteiros.

Figura 3.12 – A mesma operação de soma vista em cada nível do modelo

5Linguagem orientada a problemasvariáveis e tiposc = a + b;4Linguagem de montagemmnemônicos e registradores nomeadosADD R3, R1, R23Máquina do SOprocessos, chamadas de sistemaprocesso P · contexto (R1…R3, flags)2ISAinstrução binária, registradores, flag C0001 011 001 010 0001Microarquiteturacaminho de dados, sinais de controle, clockR1,R2 → ULA[op=soma] → R30Lógica digitalportas, sinais 0/1, atraso de propagaçãoS0=A0⊕B0 · C1=A0·B0 · S1=P⊕C1 …abstração ↑ · detalhe ↓

Fonte: elaborada pelo autor (2026). A codificação binária do nível 2 é hipotética.

Quadro 3.1 – Síntese da escalada de abstração no somador

NívelUnidade de análiseComo a soma apareceO que fica oculto
0Portas → blocos → somadorSinais S0, S1, Cout em função de A1A0 e B1B0Transistores e tensões elétricas
1Registradores, ULA, barramentos, controleOperação da ULA selecionada por sinal de controle em um ciclo de clockPortas e atraso individual de cada porta
2Instrução de máquinaADD R3, R1, R2 em binário; flag de carryCaminho de dados e sinais de controle
3ProcessoInstrução executada diretamente; contexto salvo na troca de processoComo a instrução é executada pelo hardware
4MnemônicoADD R3, R1, R2 em forma simbólicaCodificação binária
5Expressão e variáveisc = a + b;Registradores e instruções

Fonte: elaborado pelo autor (2026).

síntese

Cada nível oculta os detalhes do nível imediatamente inferior e oferece ao superior uma interface mais simples. Os detalhes, porém, não desaparecem: o atraso das portas do nível 0 reaparece como limite de clock no nível 1; o vai-um final reaparece como flag no nível 2 e como overflow no nível 5. Compreender o nível de lógica digital é compreender a origem dessas restrições.

Referências

TANENBAUM, Andrew S.; AUSTIN, Todd. Organização estruturada de computadores. 6. ed. São Paulo: Pearson Prentice Hall, 2013.

TOCCI, Ronald J.; WIDMER, Neal S.; MOSS, Gregory L. Sistemas digitais: princípios e aplicações. 11. ed. São Paulo: Pearson Prentice Hall, 2011.

← anteriorCap. 2 — Arquitetura, Organização e Modelos de Níveis