Portas Lógicas Básicas

Fundamentos de Circuitos Digitais

Introdução às Portas Lógicas

Portas lógicas são os blocos fundamentais dos circuitos digitais. Elas realizam operações booleanas básicas (AND, OR, NOT, etc.) e são implementadas em hardware usando transistores.

  • Porta AND: Saída é 1 apenas se todas as entradas forem 1.
  • Porta OR: Saída é 1 se pelo menos uma entrada for 1.
  • Porta NOT: Inverte o valor da entrada (0 para 1, 1 para 0).
Exemplo de Verilog: Porta AND
module and_gate (
  input wire a, b,
  output wire y
);
  assign y = a & b;
endmodule

Tabela Verdade: Porta AND

A B Y (A AND B)
0 0 0
0 1 0
1 0 0
1 1 1
Atividade: Construa a tabela verdade para uma porta OR com duas entradas. Qual é a saída quando A=1 e B=0?
A B Y (A OR B)
0 0 0
0 1 1
1 0 1
1 1 1

Quando A=1 e B=0, a saída Y da porta OR é 1.

Nota: As portas lógicas são a base para construir circuitos mais complexos, como somadores, multiplexadores e memórias.

Álgebra Booleana

Manipulação de Expressões Lógicas

Fundamentos da Álgebra Booleana

A álgebra booleana é usada para simplificar expressões lógicas e projetar circuitos digitais eficientes. Ela opera com valores binários (0 e 1) e segue leis específicas.

  • Lei da Identidade: A AND 1 = A, A OR 0 = A
  • Lei da Anulação: A AND 0 = 0, A OR 1 = 1
  • Lei da Idempotência: A AND A = A, A OR A = A
  • Lei de De Morgan:
    • NOT(A AND B) = (NOT A) OR (NOT B)
    • NOT(A OR B) = (NOT A) AND (NOT B)
Exemplo: Simplificação Booleana
Expressão: Y = A AND (B OR NOT B)
Passo 1: B OR NOT B = 1 (Lei do Complemento)
Passo 2: Y = A AND 1
Passo 3: Y = A (Lei da Identidade)
Atividade: Simplifique a expressão Y = (A AND B) OR (A AND NOT B). Mostre os passos.

Passos para simplificação:

  1. Y = (A AND B) OR (A AND NOT B)
  2. Y = A AND (B OR NOT B) [Fatoração]
  3. Y = A AND 1 [Lei do Complemento]
  4. Y = A [Lei da Identidade]

Resposta: Y = A

Circuitos Combinacionais

Construindo Lógica Digital

O que são Circuitos Combinacionais?

Circuitos combinacionais são aqueles cuja saída depende apenas das entradas atuais, sem memória de estados anteriores. Exemplos incluem somadores, multiplexadores e decodificadores.

  • Somador de 1 bit: Combina A, B e carry-in para produzir soma e carry-out.
  • Multiplexador: Seleciona uma entrada com base em um sinal de controle.
Exemplo de Verilog: Somador de 1 bit
module full_adder (
  input wire a, b, cin,
  output wire sum, cout
);
  assign sum = a ^ b ^ cin;
  assign cout = (a & b) | (b & cin) | (a & cin);
endmodule

Circuitos Sequenciais

Lógica com Memória

Introdução aos Circuitos Sequenciais

Circuitos sequenciais possuem saídas que dependem tanto das entradas atuais quanto dos estados anteriores, armazenados em elementos de memória como flip-flops.

  • Contadores: Geram sequências de números (ex.: contador binário).
  • Registradores: Armazenam dados temporariamente.

Flip-Flops e Latches

Elementos de Memória

Flip-Flops vs. Latches

Flip-flops e latches são elementos de memória usados em circuitos sequenciais. A principal diferença é que flip-flops são controlados por clock (síncronos), enquanto latches são assíncronos.

  • Latch SR: Armazena um bit com entradas Set e Reset.
  • Flip-Flop D: Armazena um bit com base em um sinal de clock.

Laboratório Virtual

Simulação de Circuitos

Ferramentas de Simulação

Ferramentas como Verilog e VHDL permitem simular circuitos digitais antes da implementação em hardware. Experimente simular as portas lógicas no laboratório virtual!

Atividade: Use um simulador online (como EDA Playground) para implementar uma porta XOR usando apenas portas AND, OR e NOT.

1. Tabela-verdade da XOR

ABY = A ⊕ B
000
011
101
110

2. Expressão Booleana

Y = (A AND ¬B) OR (¬A AND B) – ou seja, a saída só é '1' quando exatamente uma das entradas for '1'.

3. Desenho do Circuito

A B ¬B ¬A AND AND OR Y

4. Código em Verilog

Verilog: Porta XOR
module xor_gate (input wire a, b, output wire y);
assign y = (a & ~b) | (~a & b);
endmodule

5. Passo a Passo no Simulador

  1. Abra o EDA Playground e selecione “Icarus Verilog”.
  2. Copie o código acima e simule para verificar a onda de saída.
  3. Altere manualmente as entradas A e B na linha de teste para cada combinação (00,01,10,11).
  4. Confira se a saída Y segue a tabela-verdade da XOR.