Pular para o conteúdo principal

Aula 3 — Circuitos combinacionais e sequenciais

Apresentação​

Tudo o que construímos até aqui — portas lógicas, codificadores, decodificadores, somadores — tem uma propriedade em comum: a saída depende apenas das entradas do momento. Desligue e religue o circuito com as mesmas entradas e você obtém exatamente a mesma saída. São os circuitos combinacionais.

Só que um computador precisa lembrar. Precisa guardar o resultado de uma soma até que ele seja usado, precisa saber qual instrução executar em seguida, precisa manter um valor estável enquanto outra parte do circuito o lê. Nenhuma combinação de portas lógicas sem realimentação faz isso.

Esta aula responde a uma única pergunta: o que separa um circuito que só reage de um circuito que se lembra? A resposta é uma só ideia estrutural — a realimentação, ligar a saída de volta à entrada — e a maior parte da aula é dedicada a entender o que essa ideia cria (o estado) e o que ela custa (o tempo passa a fazer parte do circuito). No fim, chegamos à célula biestável: o menor circuito capaz de guardar um bit. É dela que nasce o flip-flop, o dispositivo que a próxima aula constrói em suas quatro variantes.

Por que estudar isso em Organização de Computadores​

Porque essa distinção é a fronteira entre as duas metades da máquina. Todo o caminho de dados combinacional — a ULA, os multiplexadores, os decodificadores de endereço — calcula e esquece. Tudo o que guarda estado — os registradores, o contador de programa, os flags, cada célula de RAM estática — é um circuito sequencial, construído sobre o laço de realimentação que veremos aqui.

Antes de estudar registradores, memória e a CPU, é preciso ter clareza sobre o que os torna possíveis. Esta aula abre a caixa da memória no seu nível mais elementar: dois transistores realimentados que se recusam a esquecer.

Objetivos​

Ao final desta aula você deve ser capaz de:

  • Distinguir circuito combinacional de circuito sequencial pela estrutura (grafo acíclico × grafo com ciclo) e pelo comportamento (com e sem estado).
  • Prever o efeito de fechar um laço de realimentação em função do número de inversões, distinguindo o caso que oscila do caso que armazena.
  • Enumerar as consequências da realimentação — coluna de estado anterior na tabela, distinção entre configurações estáveis e instáveis, e risco de corrida — e justificar o sincronismo por clock como resposta a elas.
  • Explicar por que um anel de dois inversores guarda um bit mas não serve, sozinho, como célula de memória utilizável.
  • Montar e simular os circuitos estudados no Logisim-Evolution, observando o comportamento em função do tempo.

1. O que é um circuito combinacional​

No modelo lógico dos circuitos que estudamos até agora — portas, codificadores, decodificadores, somadores e o somador-subtrator — vale a seguinte regra: a saída é uma função booleana das entradas atuais.

Três consequências decorrem dessa definição. Vale enunciá-las porque elas marcam a diferença entre circuitos combinacionais e sequenciais:

  1. A tabela-verdade descreve por completo o comportamento lógico do circuito. Com n entradas, suas 2ⁿ linhas cobrem todas as combinações possíveis e indicam a saída correspondente a cada uma delas.
  2. O histórico das entradas não altera a saída. Depois que os sinais se estabilizam, chegar à entrada 10 a partir de 01 ou de 11 produz o mesmo resultado. O circuito considera apenas os valores atuais das entradas, não a sequência de valores que veio antes.
  3. O circuito não armazena estado. Ele não possui memória para registrar entradas ou resultados anteriores. Por isso, quando recebe novamente a mesma combinação de entradas, produz a mesma saída lógica.

Em uma implementação combinacional convencional, o grafo de dependências é acíclico: os sinais atravessam as portas sem retornar a uma etapa anterior. A ausência de realimentação impede que o circuito preserve um estado interno e sustenta o comportamento descrito acima.

2. Por que isso não basta​

Uma porta lógica se comporta como uma campainha: enquanto o dedo está no botão, o som existe; ao soltar, o som acaba. O que precisamos, para construir um computador, é de um interruptor de luz: um toque acende, e a lâmpada continua acesa depois que a mão sai.

O problema aparece na primeira tarefa realmente útil que se tenta fazer. Some 3 + 5 + 2 usando um somador combinacional: ele calcula 3 + 5 = 8 instantaneamente, mas, no momento em que você apresenta o 2 nas entradas, o 8 já não existe em lugar nenhum. Não há onde guardar o resultado parcial.

O mesmo vale para todo o resto da máquina:

  • Qual instrução executar agora? Exige lembrar qual foi a anterior.
  • O resultado deu zero? Exige guardar essa informação até que o desvio condicional a consulte.
  • Manter um valor estável enquanto outro bloco o lê exige, literalmente, memória.

Nenhuma dessas coisas é possível em um grafo acíclico. Precisamos fechar um ciclo.

3. A ideia da realimentação — e suas duas consequências​

Realimentar é ligar a saída de um circuito de volta à sua própria entrada. A pergunta é: o que acontece quando fazemos isso?

Antes de responder, é preciso combinar o que significa "acontecer". Em um circuito com laço, aplicar uma entrada não produz uma saída instantânea: o sinal dá voltas, e cada volta custa um atraso de propagação — o tempo que uma porta leva entre ver a entrada mudar e mudar a saída. Só faz sentido falar em "a saída é tal" depois que as voltas param de mudar alguma coisa. Daí a definição que vamos usar o tempo todo:

Configuração estável, instável e indefinida

Uma configuração é estável quando, ao recalcular todas as portas com os valores que estão nos fios, nenhum fio muda de valor. O laço confirma a si mesmo e o circuito para ali.

Ela é instável quando pelo menos um fio muda. Aí há dois desfechos:

  • o circuito evolui algumas voltas e cai em uma configuração estável — é o caso normal, e o que se vê é apenas um atraso;
  • o circuito nunca cai em nenhuma, e fica trocando de valor indefinidamente — é a oscilação.

E há um terceiro caso, que não é nem um nem outro: o laço pode não ter valor nenhum, porque ninguém nunca escreveu nada nele. É o que acontece com todo biestável no instante em que é energizado. Chamamos essa situação de indefinida, e ela é o assunto do quadro "O empate inicial", logo adiante.

Essa definição tem uma consequência prática importante: estabilidade é uma propriedade que se verifica, não que se deduz. As duas figuras seguintes vêm com um arquivo pronto no Logisim, e cada uma delas é para ser aberta e observada, não apenas lida.

Dito isso, a resposta depende de quantas inversões existem no laço. A Figura 1 mostra os dois casos possíveis.

Dois circuitos lado a lado. Em (a), um único inversor com a saída ligada de volta à própria entrada por um fio âmbar que contorna o desenho por cima; abaixo, a equação Q igual a Q barrado. Em (b), dois inversores em série com a saída do segundo realimentando a entrada do primeiro pelo mesmo tipo de contorno; abaixo, a equação Q igual ao complemento do complemento de Q, igual a Q
Número ímpar de inversões no laço: o circuito oscila. Número par: ele guarda um bit.

(a) Um inversor realimentado — o laço se contradiz. Fechando o laço, obtemos a equação Q = Q, que não tem solução lógica: se Q for 0, a saída do inversor é 1, o que força Q a 1; se Q for 1, a saída é 0, o que força Q a 0. Nenhum valor se sustenta.

Na prática, o circuito não trava nem explode: ele oscila, trocando de valor a cada atraso de propagação da porta. Aplicando a definição do quadro acima: nenhuma das duas configurações possíveis é estável, e o circuito não tem para onde cair. Essa é a base do oscilador em anel, usado para gerar sinais de relógio e para medir a velocidade de um processo de fabricação — mas é inútil como memória.

No simulador (Atividade 2): abra 01-realimentacao-oscilador.circ e o circuito já entra oscilando. Depois de recalcular mil vezes sem que nada assente, o Logisim desiste e escreve Oscillation apparent em vermelho sobre o desenho, com círculos vermelhos nos nós culpados. Não há nada para clicar — o comportamento não depende de nenhuma entrada, porque o circuito não tem nenhuma.

(b) Dois inversores realimentados — o laço se sustenta. Agora a equação do laço é Q = Q = Q, que é verdadeira tanto para Q = 0 quanto para Q = 1. Recalculando as portas em qualquer uma das duas configurações, nada muda: são duas configurações estáveis. Uma vez em uma delas, o circuito permanece indefinidamente, porque cada porta confirma o valor da outra.

No simulador (Atividade 3): abra 02-realimentacao-biestavel.circ. O circuito assenta imediatamente em Q = 0, nQ = 1 e fica lá. Nenhuma mensagem de oscilação aparece — e, de novo, não há nada para clicar.

Isso é memória. É a célula biestável — e é, essencialmente, o núcleo de toda RAM estática. Falta, porém, uma coisa: não há como escolher em qual dos dois estados o circuito vai ficar, nem como mudá-lo depois. Um circuito que guarda um bit que ninguém pode escrever não serve para nada.

Repare que essa constatação não é um detalhe: ela é literal. Se você abrir o arquivo da Atividade 3 e procurar um pino de entrada, não vai encontrar nenhum — o anel de inversores não tem entrada. Todos os terminais das duas portas já estão ocupados pelo próprio laço.

O empate inicial, e por que o arquivo traz dois resistores

Um anel de inversores tem um problema anterior a todos os outros: ao ser energizado, não há motivo para ele preferir 0 ou 1. As duas configurações são igualmente válidas, e nada no circuito desempata.

Em silício, quem desempata é a assimetria física — diferenças microscópicas de fabricação e o ruído térmico das próprias portas fazem uma delas comutar primeiro, e o anel cai em um dos dois estados de forma arbitrária.

O Logisim não modela ruído analógico. Para ele, um fio em que ninguém escreveu vale X (desconhecido), e um inversor que recebe X responde E (erro): não dá para inverter aquilo que não se sabe. Sem ajuda, o anel travaria em vermelho — o simulador estaria dizendo, com razão, "não tenho como saber".

Por isso os dois arquivos trazem um Pull Resistor (biblioteca Wiring) em cada nó do laço. Ele funciona como o resistor de pull-up/pull-down de um circuito real: define o valor de um fio apenas enquanto ninguém o está impondo, e sai da frente assim que uma porta assume o nó. É o desempate físico, tornado explícito. No arquivo da Atividade 3 você vai poder inverter os dois resistores (de 0/1 para 1/0) e ver o anel acordar no outro estado estável — a demonstração direta da biestabilidade.

A saída para o impasse. Trocar os dois inversores por duas portas de duas entradas — NAND ou NOR — preserva o comportamento biestável (cada porta continua invertendo o sinal que recebe da outra) e, de quebra, deixa uma entrada livre em cada porta. Essas entradas livres são o comando: por elas se escreve o bit — e, com elas, os resistores de desempate deixam de ser necessários, porque agora existe alguém para escrever no laço. É exatamente o circuito com que a próxima aula começa: o flip-flop RS.

O padrão que se repete

Guarde a sequência, porque ela reaparece na disciplina inteira: um caminho de realimentação cria estado; o número de inversões nesse caminho decide se o resultado é oscilação ou memória; entradas adicionais nas portas do laço tornam esse estado controlável.

4. O que a realimentação custa​

Ganhar memória não sai de graça. Fechar o ciclo muda a natureza do circuito de três maneiras, e cada uma delas gera um problema que a próxima aula vai resolver:

O que mudaConsequência prática
A saída passa a depender também de si mesmaA tabela-verdade ganha uma coluna: já não basta listar as entradas, é preciso listar também o estado anterior (Qa). Com n entradas, são 2ⁿ⁺¹ linhas.
Passam a existir configurações que não se sustentamA análise deixa de ser puramente algébrica. Cada linha precisa ser classificada como estável ou instável, e uma linha instável evolui sozinha até parar em outra — ou não para nunca, e o circuito oscila.
O resultado pode depender da ordem e da velocidadeSe duas entradas mudam "ao mesmo tempo", o estado final pode depender de qual porta comutar primeiro — algo que varia com temperatura e fabricação. É a condição de corrida (race condition), e é a raiz do caso proibido do flip-flop RS.

Repare que os três itens têm a mesma origem: o tempo passou a fazer parte do circuito. Enquanto o grafo era acíclico, o atraso de propagação só atrasava a resposta; com o laço fechado, ele decide qual é a resposta.

A engenharia digital lida com esses três problemas com uma única decisão de projeto: sincronizar tudo por um sinal de clock. Em vez de deixar o circuito reagir a qualquer mudança a qualquer instante, concentra-se toda a mudança de estado em um momento definido, comum a todas as células. É o que a próxima aula introduz junto com o flip-flop RS com clock, e é por isso que praticamente todo circuito digital moderno é síncrono.

Onde o tempo aparece no Logisim

Os três itens da tabela têm um controle correspondente em Projeto → Opções… → Simulação (Project → Options… → Simulation), e é ali que se verifica cada um deles:

  • Iterações até a oscilação (Iterations until oscillation, padrão 1000) — quantas vezes o simulador recalcula o circuito antes de declarar que ele não assenta. É o ajuste que a Atividade 2 explora.
  • Adicionar ruído aos atrasos dos componentes (Add noise to component delays) — quando marcado, cada porta ganha uma variação aleatória de cerca de 3% no atraso. É o que transforma uma corrida empatada em uma corrida com vencedor; ele volta a importar nas atividades do caso proibido, na próxima aula.
  • Saída da porta quando indefinida (Gate output when undefined) — decide se uma porta com entrada indefinida propaga o valor indefinido ou acusa erro. É o que explica o vermelho da Atividade 3.

A subseção "Onde a estabilidade aparece na tela", mais adiante, volta a esses ajustes com o passo a passo.

5. O quadro geral​

Dois diagramas de bloco lado a lado. À esquerda, um bloco rotulado Circuito combinacional com uma seta de entradas à esquerda e uma seta de saídas à direita. À direita, um bloco rotulado Circuito sequencial com as mesmas setas, mais uma seta de clock vindo de cima e uma linha âmbar que sai da saída, contorna o bloco por baixo e retorna à entrada, rotulada realimentação (estado)
A realimentação é a única diferença estrutural — e é ela que cria a noção de estado.

A Figura 2 resume o contraste. Repare que o bloco sequencial tem duas adições em relação ao combinacional: o caminho de realimentação, que cria o estado, e a entrada de clock, que decide quando esse estado pode mudar. A primeira é o que torna a memória possível; a segunda é o que a torna utilizável.

CombinacionalSequencial
Saída depende deentradas atuaisentradas atuais e estado anterior
Estruturagrafo acíclicotem ao menos um ciclo
Descrição completatabela-verdadetabela de transição de estados
Precisa de clocknãoem geral sim (os síncronos)
Exemplossomador, decodificador, multiplexadorflip-flop, registrador, contador, memória
Notação usada nesta disciplina

Seguindo o livro-texto, escrevemos Qa para o estado da saída antes da aplicação das entradas (estado anterior) e Qf para o estado que a saída assume depois (estado futuro). A saída complementar é sempre indicada por Q.

Na literatura em inglês, os mesmos valores aparecem como Q(t) e Q(t+1), ou Q e Q⁺. Essa notação reaparece na próxima aula, na análise dos flip-flops.

6. Os dois estados​

Antecipando o que a próxima aula formaliza: a célula biestável tem duas saídas, Q e Q, e — em operação normal — elas são sempre complementares. Só existem, portanto, dois estados possíveis:

  • Q = 0 e Q = 1
  • Q = 1 e Q = 0

A célula armazena, assim, exatamente um bit. Todo o resto — registradores, memórias, contadores — é replicação e interligação dessa mesma ideia. É por isso que o próximo passo, transformar o biestável em um flip-flop controlável, é o alicerce de toda a memória da máquina.


Exercícios (checkpoints)​

Verificação rápida​

Quiz3 questões

1. O que distingue um circuito sequencial de um circuito combinacional?

  • a)O circuito sequencial usa mais portas lógicas
  • b)O circuito sequencial tem realimentação, e por isso a saída depende também dos estados anteriores
  • c)O circuito combinacional não pode ter mais de uma saída
  • d)O circuito sequencial só funciona com portas NAND e NOR
  • e)O circuito combinacional não pode ser simulado no Logisim

2. Fechando um laço de realimentação com um número ÍMPAR de inversões (por exemplo, um único inversor com a saída ligada à entrada), o que acontece?

  • a)O circuito armazena um bit, como um flip-flop
  • b)O circuito oscila: nenhum valor se sustenta, e a saída troca a cada atraso de propagação
  • c)A saída fica permanentemente em 1
  • d)A saída fica permanentemente em 0
  • e)O circuito se comporta como um circuito combinacional comum

3. Um anel de dois inversores é biestável e guarda um bit. Por que, ainda assim, ele não serve como célula de memória utilizável?

  • a)Porque consome energia demais
  • b)Porque o bit armazenado se perde depois de alguns milissegundos
  • c)Porque não há nenhuma entrada por onde escrever: o estado inicial é definido por acaso e não pode ser alterado
  • d)Porque as duas saídas não são complementares
  • e)Porque ele precisa de um sinal de clock para funcionar

Questões dissertativas​

Q1

Explique, com suas palavras, por que um circuito construído apenas com portas lógicas sem realimentação não consegue armazenar informação.

Atividades práticas no Logisim-Evolution​

Ambiente sugerido: Logisim-Evolution, o fork mantido do Logisim clássico. Os arquivos desta aula declaram as bibliotecas na ordem do Logisim-Evolution e não abrem no Logisim 2.7.1 original.

Baixar o Logisim-Evolution

Versão de referência: 4.1.0 (fevereiro de 2026).

Como instalarArquivo
Multiplataforma — arquivo único, exige Java 21 ou superior já instaladologisim-evolution-4.1.0-all.jar (51 MB)
Windows — instalador, já traz o Java embutido.msi amd64 · .msi aarch64
macOS — instalador, já traz o Java embutido.dmg Apple Silicon · .dmg Intel
Linux — pacote da distribuição.deb amd64 · .rpm x86_64

O .jar roda com duplo clique ou por java -jar logisim-evolution-4.1.0-all.jar. Se java -version não responder no seu terminal, instale antes uma distribuição do OpenJDK 21 — ou prefira o instalador do seu sistema, que já vem com o Java embutido e dispensa essa etapa.

Versões mais novas ficam na página de versões do projeto; o código-fonte e o manual, no repositório oficial.

São três atividades. A primeira mostra, lado a lado, a diferença que a aula inteira descreve; as duas seguintes usam arquivos prontos e tratam dos dois casos da Figura 1. A próxima aula continua a numeração, com os laços RS e os flip-flops.

Antes de abrir o primeiro arquivo, porém, vale gastar cinco minutos com a subseção seguinte. Ela responde à pergunta que atravessa a aula inteira — como eu sei que este circuito está estável? — em termos do que o simulador efetivamente desenha.

Onde a estabilidade aparece na tela​

O Logisim não tem um botão "verificar estabilidade". Ele resolve o circuito repetidamente até que nada mude e, se não conseguir, avisa. Toda a verificação se resume, então, a ler quatro coisas na tela.

1. A cor dos fios. É a informação mais direta, e a que mais gera dúvida:

Cor do fioValorSignificado
Verde-claro1valor definido, alto
Verde-escuro0valor definido, baixo
AzulX (unknown)ninguém escreveu nada aqui ainda
VermelhoE (error)conflito: dois componentes impondo valores diferentes ao mesmo nó, ou uma porta que recebeu um valor indefinido e não soube o que fazer com ele
Cinza—fio sem largura definida / desconectado

Azul e vermelho não são mensagens de erro do programa: são valores do circuito. Um laço biestável recém-aberto aparece azul ou vermelho porque ele está, de fato, indefinido — exatamente como um flip-flop real no instante em que recebe alimentação.

2. A mensagem de oscilação. Quando o circuito não assenta, o Logisim escreve Oscillation apparent em letras vermelhas, centralizadas na parte de baixo da área de desenho, e desenha círculos vermelhos em volta dos nós que continuam mudando. É o diagnóstico completo: a mensagem diz que oscila, os círculos dizem onde.

3. O modo de propagação. No menu Simulate (Simular):

Item de menuAtalhoPara que serve
Auto-PropagateCtrl+E (⌘+E)liga/desliga o cálculo automático. Desligado, aparece uma mensagem azul no canto superior esquerdo dizendo quantos sinais mudaram no último passo
Single-Step PropagationCtrl+I (⌘+I)avança um atraso de porta. Os pontos que mudaram nesse passo ficam circulados em azul
Reset SimulationCtrl+R (⌘+R)devolve tudo ao estado inicial e limpa o erro de oscilação — é isso, e não fechar e reabrir o arquivo, que se usa para recomeçar
Manual Tick Half CycleCtrl+T (⌘+T)avança meio ciclo de relógio, ou seja, uma borda. É o modo certo para estudar circuitos com clock — ele reaparece na próxima aula
Manual Tick Full CycleCtrl+F9 (⌘+F9)avança um ciclo inteiro (subida e descida)
Auto-Tick EnabledCtrl+K (⌘+K)liga/desliga o relógio automático

O Single-Step Propagation é a ferramenta de diagnóstico mais subestimada da disciplina: com o Auto-Propagate desligado, ele mostra o circuito assentando um atraso de porta por vez. Um circuito estável para de mudar depois de alguns passos e a mensagem azul passa a acusar zero sinais alterados; um circuito oscilante nunca chega lá.

4. Os ajustes de simulação, em Project → Options… → Simulation (Projeto → Opções… → Simulação) — os três controles apresentados na Seção 4. Vale abrir a janela agora e localizá-los; a Atividade 2 depende de mexer no primeiro.

Duas confusões que custam tempo

A ferramenta dedo (a primeira da barra, Poke) é a que muda o valor de um pino de entrada. Com a seta você seleciona e move componentes — clicar em um pino com ela não faz nada.

E cuidado com a diferença entre um tick e um passo de propagação: Ctrl+T avança o relógio em uma borda; Ctrl+I avança a propagação em um atraso de porta. São escalas de tempo diferentes, e trocar uma pela outra é a causa mais comum de "o circuito não faz nada".

Arquivos de apoio​

ArquivoAtividadeO que contém
00-combinacional-vs-sequencial.circ1Um meio-somador combinacional (A, B → Soma, Carry) e um flip-flop D sequencial (D, CK → Q), lado a lado
01-realimentacao-oscilador.circ2Figura 1(a): um inversor realimentado, com um Pull Resistor de desempate
02-realimentacao-biestavel.circ3Figura 1(b): dois inversores em anel, com um Pull Resistor em cada nó
O que é o Pull Resistor dos dois últimos arquivos

Os arquivos das Atividades 2 e 3 são exatamente os circuitos da Figura 1, mais um componente: o Pull Resistor, da biblioteca Wiring. Ele existe pelo motivo explicado no quadro "O empate inicial" da Seção 3 — um anel de inversores não tem entrada nenhuma, e sem ele o Logisim não teria por onde começar.

Na prática, o Pull Resistor define o valor de um fio só enquanto nenhuma porta o está impondo. Assim que o laço assume o nó, o resistor sai da frente. Ele aparece no desenho como um pequeno retângulo (ou zigue-zague) ligado ao fio, com o valor de repouso — 0 ou 1 — escrito ao lado.

É o mesmo papel do resistor de pull-up/pull-down de uma placa real, e por isso vale a pena reconhecê-lo: ele volta a aparecer em barramentos e em entradas de circuitos integrados ao longo do curso.

Atividade 1 — Combinacional × sequencial, lado a lado​

Objetivo: ver, no mesmo arquivo, a diferença que a aula inteira descreve — um circuito que só reage e um circuito que se lembra.

Abra 00-combinacional-vs-sequencial.circ. Em cima está um meio-somador (combinacional): as entradas A e B, uma porta XOR produzindo Soma e uma porta AND produzindo Carry. Embaixo está um flip-flop D (sequencial): a entrada D, um componente Clock e a saída Q. Não se preocupe com o que há dentro do flip-flop D — a próxima aula o constrói; aqui ele é só uma caixa que "lembra".

Use a ferramenta dedo (Poke) o tempo todo.

  1. No meio-somador: clique em A e B alternando entre 0 e 1, passando pelas quatro combinações. Observe Soma e Carry.
  2. No flip-flop D: com o clock em 0, leve D a 1 e observe Q.
  3. Dê um clique no componente Clock para levá-lo de 0 a 1 (uma borda de subida) e observe Q de novo.
  4. Volte D a 0 e observe Q mais uma vez.

O que deve aparecer:

  • Passo 1: Soma e Carry mudam no mesmo instante em que você mexe em A ou B. Volte as duas entradas a 0 e a saída volta imediatamente a 0. O circuito não guarda nada — é escravo do presente.
  • Passo 2: Q não muda. O dado está "batendo na porta", mas o flip-flop só o deixa entrar na borda do clock. Aqui costuma vir a surpresa.
  • Passo 3: na subida do clock, Q finalmente assume o valor de D — o estado foi capturado.
  • Passo 4: Q continua em 1, mesmo com D de volta a 0. O circuito reteve a informação. Ele só vai trocar quando D for outro valor e houver uma nova borda de clock.

A comparação é o ponto: o meio-somador é um espelho (reflete o que está na frente dele agora); o flip-flop D é uma câmera fotográfica (o D é a cena, o clock é o botão do obturador, e o Q é a foto, que permanece depois que a cena mudou). Toda a Seção 5 está resumida nesses dois blocos.

Se Q mudar assim que você altera D, sem esperar o clock: confira se o componente é mesmo um Clock ligado à entrada de clock (a que tem o triângulo) do flip-flop, e não à entrada D.

Atividade 2 — Um laço com uma inversão oscila​

Objetivo: ver, na tela, o que significa "nenhuma configuração é estável".

Abra 01-realimentacao-oscilador.circ. É a Figura 1(a): um inversor com a saída ligada de volta à própria entrada, mais o Pull Resistor de desempate. Não há nenhum pino de entrada — não há o que clicar, e é esse o ponto.

  1. Abra o arquivo e olhe a tela por alguns segundos, sem tocar em nada.
  2. Localize os círculos vermelhos e diga a que parte do circuito eles correspondem.
  3. Dê Reset Simulation (Ctrl+R) e confirme que a situação se repete.

O que deve aparecer: o circuito entra oscilando sozinho. Na parte de baixo da área de desenho aparece Oscillation apparent em vermelho, e há círculos vermelhos na saída do inversor e no fio de realimentação — que são o mesmo nó, percorrido pelo laço. Depois de mil recálculos sem assentar, o simulador desistiu.

Compare com a álgebra: Q = Q não tem solução, e a tela está dizendo exatamente isso. E repare que nenhuma entrada foi tocada, porque não existe nenhuma: é a realimentação, sozinha, produzindo comportamento.

Para explorar: abra Project → Options… → Simulation e reduza Iterations until oscillation de 1000 para 20. Dê Ctrl+R: a mensagem aparece igual, só que muito mais rápido. Isso mostra o que o número significa — é a paciência do simulador, não uma propriedade do circuito. Volte o valor para 1000 depois.

Se não aparecer: confirme que o Auto-Propagate está ligado (Ctrl+E; quando desligado há uma mensagem azul no canto superior esquerdo).

Atividade 3 — Um laço com duas inversões guarda um bit​

Objetivo: ver a biestabilidade — e ver, com a mesma clareza, que ela sozinha não basta.

Abra 02-realimentacao-biestavel.circ. É a Figura 1(b): dois inversores em anel, com um Pull Resistor em cada um dos dois nós — um em repouso 0, o outro em repouso 1. Também aqui não há nenhum pino de entrada.

  1. Observe o estado inicial e anote Q e nQ.
  2. Dê Ctrl+R algumas vezes e confirme que o resultado é sempre o mesmo.
  3. Procure um jeito de mudar o valor guardado usando apenas a ferramenta dedo. Gaste um minuto nisso de verdade.
  4. Agora selecione, com a seta, o Pull Resistor que está em 0 e mude o atributo pull para 1; faça o inverso no outro resistor. Dê Ctrl+R.

O que deve aparecer:

  • Passos 1 e 2: o circuito assenta imediatamente em Q = 0, nQ = 1 e fica lá, sempre igual. Em nenhum momento aparece a mensagem de oscilação: com duas inversões, a configuração se sustenta. E as duas saídas são complementares, como devem ser.
  • Passo 3: não existe jeito. Não há pino de entrada, e clicar nas portas ou nos fios não muda nada. Todos os terminais dos dois inversores já estão ocupados pelo próprio laço.
  • Passo 4: o anel acorda no outro estado — Q = 1, nQ = 0 — e fica igualmente estável. Os dois estados são igualmente válidos; quem escolheu foi algo de fora do laço.

O passo 3 é a atividade inteira. O anel guarda o bit com perfeição, mas quem decide qual bit são os resistores — e trocá-los exige editar o circuito, o que é reprojeto, não escrita. Um dispositivo de memória precisa de uma entrada por onde receber o dado durante a operação, e é exatamente isso que a próxima aula acrescenta: duas portas de duas entradas no lugar dos dois inversores.

Se as saídas aparecerem em vermelho: algum Pull Resistor foi removido ou saiu de cima do fio. Sem ele, o inversor recebe um valor desconhecido e responde com erro — veja o quadro "O empate inicial" na Seção 3.


Referências​

Principais (essenciais)​

  • CAPUANO, Francisco Gabriel. Sistemas digitais: circuitos combinacionais e sequenciais. São Paulo: Érica, 2014. (Série Eixos). Número de chamada: Ac.5012157

    • Capítulo 4 — Circuitos Sequenciais, seção 4.1 (introdução a circuitos sequenciais e realimentação)
  • SILVA, Gabriel Pereira da. Arquitetura e organização de computadores: uma introdução. Rio de Janeiro: LTC, 2024. Recurso online — Acervo Virtual. Número de chamada: Ac.5063593

    • Elementos de armazenamento e o subsistema de memória

Continuação​

  • Aula 4 — Flip-flops — transforma o biestável desta aula nos flip-flops RS, JK, T e D, com clock, entradas assíncronas e oito atividades no Logisim-Evolution.

Pré-requisito​