\mathbf{1 5}^{\mathbf{0}} questão: Explique a principal diferença de funcionamento entre os latches do tipo SR implementado com portas NOR, SR implementado com portas NAND e o latch do tipo D. Em seguida, apresente e compare as tabelas-verdade de cada um desses latches.
Passo 1
O enunciado pede duas coisas claramente:
Explicar a principal diferença de funcionamento entre os três latches: SR implementado com portas NOR, SR implementado com portas NAND e o latch do tipo D.
Apresentar e comparar as tabelas-verdade de cada um desses latches.
Informações úteis que o enunciado fornece implicitamente (e que vou usar):
Cada latch tem dois estados principais armazenados: Q e \overline{Q}.
No latch SR há duas entradas chamadas S (set) e R (reset).
No latch D há entrada de dado D e uma entrada de habilitação (chamada aqui de En — enable ou nível do clock para latch nível-sensível).
Precisa-se tanto da explicação conceitual (diferença de funcionamento) quanto das tabelas-verdade (comportamento em cada combinação de entradas).
Passo 2
Primeira coisa: o que é um latch, de modo bem direto e sem jargão complicado.
Um latch é um circuito que armazena 1 bit enquanto certas condições se mantêm. Ele tem entradas que determinam se o bit vai ser colocado em 1, em 0 ou mantido igual.
A diferença prática entre os tipos que pediram está em como as entradas controlam essa escrita/retenção e em qual nível lógico ativa a ação (nível alto ou nível baixo).
Vou explicar cada tipo individualmente, começando pelos SR com portas NOR.
Passo 3
SR latch implementado com portas NOR (implementação clássica, entradas ativas em nível alto).
Estrutura: duas portas NOR cruzadas — a saída de cada NOR vai para uma entrada da outra.
Entradas: S e R. São ativas em nível lógico alto: quando S=1 tenta-se forçar Q=1; quando R=1 tenta-se forçar Q=0.
Comportamento verbal:
Se S=1 e R=0 então a saída Q é colocada em 1 (estado SET).
Se S=0 e R=1 então Q é colocada em 0 (estado RESET).
Se S=0 e R=0 então o latch “segura” o valor anterior (estado HOLD).
Se S=1 e R=1 então ambas as saídas ficam 0 (para o latch NOR clássico isso resulta em Q=\overline{Q}=0), o que é uma condição inválida porque as saídas não são complementares; além disso, ao voltar para S=R=0 pode ocorrer indeterminação (ambos transitam para valores dependentes do atraso), por isso chamamos de condição proibida/indeterminada.
Observação prática para prova: memorize que em latch-NOR as entradas são “ativas em 1” e o par S=1,R=1 é proibido.
Passo 4
SR latch implementado com portas NAND (entrada ativa em nível baixo).
Estrutura: duas portas NAND cruzadas (análoga ao caso NOR, mas com NAND).
Importante: aqui normalmente as entradas são sinais ativos baixos, anotados às vezes como \overline{S} e \overline{R}. Para facilitar, vou chamar as entradas físicas de S_N e R_N (onde um nível 0 ativa a ação).
Comportamento verbal (usando S_N,R_N):
Se S_N=0 e R_N=1 então Q vai para 1 (set) — atenção: aqui o zero ativa o set.
Se S_N=1 e R_N=0 então Q vai para 0 (reset).
Se S_N=1 e R_N=1 então o latch segura o valor anterior (hold).
Se S_N=0 e R_N=0 então ambas as saídas ficam 1 (estado inválido porque Q=\overline{Q}=1), condição proibida/indeterminada ao soltar as entradas.
Observação prática: NAND-SR é essencialmente o mesmo comportamento lógico do NOR-SR, mas com polaridade invertida nas entradas (ativa por nível baixo em vez de ativo por nível alto). Em prova, quando virem SR-NAND pense: “entradas ativas em 0; 00 proibido”.
Passo 5
LATCH tipo D (Data latch) — ideia e por que existe.
Objetivo: eliminar a condição proibida do SR e simplificar o uso para armazenamento de dados. O D latch garante que as entradas de set e reset nunca sejam ativas simultaneamente.
Entradas: D (dados) e En (enable). Em latches nível-sensíveis: enquanto En estiver no nível ativo (por exemplo En=1), o latch é transparente — a saída Q segue D. Quando En volta ao nível inativo (En=0), o latch “trava” e mantém o último D lido.
Implementação típica (com SR-NOR): gera-se S e R a partir de D e En assim:
S = D \land En
R = \overline{D} \land En
Dessa forma, quando En=1 temos S=D e R=\overline{D} — impossibilidade simultânea de S=R=1. Quando En=0, S=R=0 e o SR-NOR fica em modo HOLD.
Comportamento verbal:
En=1: Q acompanha D (transparente).
En=0: Q mantém o último valor (latch fechado).
Observação prática: o D latch é muito usado porque é fácil de usar em registros — você aplica o dado em D e controla exatamente quando ele entra com En. Não há condição proibida.
Passo 6
Agora vou escrever as tabelas-verdade pedindo no enunciado. Vou apresentar-as de forma clara e compacta. Em todas as tabelas vou colocar Q_{next} para denotar o valor que Q atinge após a aplicação das entradas (ou o comportamento imediato para latch nível-sensível).
Tabela-verdade do SR latch com portas NOR (entradas ativas em nível alto):
Compare com a tabela NOR: as polaridades estão invertidas (os casos de ação ocorrem com zeros).
(1,1) é old-hold (sem ação).
(0,0) é proibido (ambas saídas = 1 no circuito NAND), leads a indeterminação ao retornar.
Passo 8
Tabela-verdade do latch tipo D com entrada D e habilitação En. Aqui assumo que o nível ativo de En é 1 (caso comum — se o circuito tiver enable ativo em 0 basta inverter a lógica):
Quando En=0: o latch está fechado e mantém o Q anterior (independente de D).
Quando En=1: Q se torna igual a D (latch transparente).
Passo 9
Comparação direta e dicas para prova (resumindo e destacando o ponto que mais importa):
Polaridade das entradas:
SR-NOR: entradas ativas em 1. Proibido S=R=1.
SR-NAND: entradas ativas em 0. Proibido S_N=R_N=0.
D latch: entrada D com En controla, não há condição proibida (porque S e R internos são gerados como complementares).
Condição proibida:
Presente no SR (tanto NOR quanto NAND) — é um caso que causa indeterminação.
Eliminada pelo D latch.
Uso prático:
SR (NOR/NAND): conceito básico de armazenamento set/reset; útil para entender memória básica.
D latch: usado para capturar dados com controle de habilitação; bloco fundamental para registros e flip-flops.
Comportamento temporal:
SR puro é armazenamento assíncrono (sem clock) controlado diretamente por S e R.
D latch é nível-sensível: enquanto En ativo, Q segue D; quando En inativo, Q é mantido. Para comportamento sincronizado por borda usa-se flip-flop (master-slave ou edge-triggered), que são construídos a partir de latches D.
Passo 10
Exemplos rápidos (para fixar na cabeça — exercícios pequenos que você pode usar na prova):
Se pedirem: “num SR-NOR, qual entrada devo colocar em 1 para forçar Q=1?” — responda: S=1, R=0.
Se pedirem: “num SR-NAND com sinais ativos baixos, como faço para forçar Q=0?” — responda: coloque R_N=0 (e S_N=1).
Se perguntarem a diferença entre D-latch e SR-latch em uma frase curta: “D-latch evita a condição proibida do SR ao garantir que as entradas de set e reset nunca sejam ativas ao mesmo tempo; além disso permite controlar quando o dado entra por En.”
Resposta
Diferença principal: SR-NOR e SR-NAND são latches SR que diferem na polaridade das entradas (SR-NOR tem entradas ativas em 1; SR-NAND tem entradas ativas em 0); ambos possuem uma condição proibida (respectivamente S=R=1 para NOR e S_N=R_N=0 para NAND) que causa indeterminação. O latch tipo D remove essa condição proibida gerando internamente sinais S e R complementares a partir de D e de uma entrada de habilitação En, de modo que com En=1 o latch é transparente (Q segue D) e com En=0 o latch mantém o valor.