( \mathbf{4 p}, \mathbf{0 . 5 p} cada) Avalie as seguintes alternativas. Assinalar V (verdadeiro) ou F (falso). Respostas F só serão consideradas se houver justificativa totalmente correta.
V
F
Justificativa, no caso de assinalar F :
a
Instruções SET (S) e RESET (R) memorizam o estado
de um bit, o que as torna adequadas para
implementar estados de uma máquina sequencial
simples.
Passo 1
O enunciado pede para avaliar a afirmação: “Instruções SET (S) e RESET (R) memorizam o estado de um bit, o que as torna adequadas para implementar estados de uma máquina sequencial simples.”
Informações dadas que vamos usar:
Existem as instruções/entradas S (SET) e R (RESET).
A afirmação diz que elas “memorizam o estado de um bit”.
A conclusão proposta é que, por memorizarem, são adequadas para implementar estados de uma máquina sequencial simples.
Passo 2
O que significa “memorizam o estado de um bit”? Vou explicar com calma. Um elemento de memória básico em lógica digital é um biestável (bistable) que tem duas saídas complementares Q e \overline{Q} e que pode ficar armazenando um valor 0 ou 1 até que uma entrada force a mudança. O latch SR (ou biestável SR) é o exemplo clássico controlado por entradas S e R. Uma implementação comum usa duas portas NOR cruzadas. A tabela de funcionamento típica (versão NOR) é:
S=0,\,R=0: nenhuma entrada força mudança, então o latch mantém o valor atual Q (memória).
S=1,\,R=0: força Q=1 (SET).
S=0,\,R=1: força Q=0 (RESET).
S=1,\,R=1: condição inválida/indeterminada na versão NOR (ambas saídas podem tender a 0 e causam ambiguidade quando liberadas).
Portanto, de fato as entradas S e R permitem armazenar (memorizar) um bit: existe um estado estável Q que persiste enquanto não for alterado por S ou R.
Passo 3
Por que isso torna S e R adequadas para implementar estados de uma máquina sequencial simples? Conceito chave: uma máquina de estados finitos (FSM) precisa de memória para guardar o estado atual; cada estado pode ser representado por um ou mais bits de memória. Se a máquina tem até 2 estados, um único biestável que guarda um bit é suficiente. Para máquinas com mais estados usa-se mais biestáveis (flip-flops/latches) formando um vetor de estado.
Exemplo simples (conceitual): uma FSM com dois estados A e B pode codificar A\to Q=0 e B\to Q=1. Para mudar de A para B o circuito de lógica de transição ativa S (coloca Q em 1); para mudar de B para A ativa R (coloca Q em 0). Enquanto nenhum sinal de transição for ativo, S=R=0 e o bit Q permanece — ou seja, o estado é memorizado. Logo, funcionalmente, um latch SR implementa exatamente a função de armazenar o estado de uma FSM simples.
Passo 4
Agora as limitações e observações importantes (porque nas provas o professor adora essas pegadinhas):
Condição proibida: na versão NOR, S=1 e R=1 é indeterminada. Isso significa que, sem cuidado, a entrada pode levar a comportamento imprevisível. Para uma FSM confiável é preciso evitar essa condição ou usar versões com comportamento definido.
Assíncrono vs síncrono: o latch SR é sensível ao nível (level-sensitive) e responde imediatamente às entradas S e R. Em projetos síncronos é preferível usar flip-flops acionados por borda (edge-triggered), pois eles evitam problemas de corrida e tornaram o comportamento determinístico em função do relógio (clock). Ainda assim, é possível usar latches SR em máquinas simples ou dentro de estruturas sincronizadas (por exemplo, usando Gated SR ou construindo flip-flops a partir de latches).
Glitches e temporização: ao usar apenas S e R sem sincronização pode haver mudanças indesejadas se as entradas transitórias aparecerem; por isso, para máquinas mais complexas ou de tempo crítico, usa-se flip-flops D (mais simples de controlar) em vez do SR puro.
Implementação prática: muitos projetistas preferem mapear a função de próximo estado para uma entrada D de um flip-flop D (onde D = q^+) porque evita a condição inválida e é mais fácil de controlar com clock.
Passo 5
Síntese da argumentação e conclusão prática: as instruções/entradas S e R efetivamente permitem memorizar um bit (o latch/biestável guarda Q), e esse bit pode representar o estado de uma máquina sequencial com até dois estados ou, combinando vários biestáveis, mais estados. Portanto, em termos funcionais, S e R são adequadas para implementar os estados de uma máquina sequencial simples — desde que se cuide das limitações (evitar a condição S=R=1, considerar sincronização quando necessário).