Aula 3 — Flip-flops
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 apresenta o dispositivo que resolve o problema: o flip-flop, uma célula capaz de armazenar um bit e mantê-lo indefinidamente. Vamos construí-lo do zero, a partir de duas portas lógicas realimentadas, e chegar às quatro variantes que aparecem no restante da disciplina — RS, JK, T e D.
Por que estudar isso em Organização de Computadores
Porque o flip-flop é a unidade elementar de toda memória interna da máquina. Um registrador de 8 bits é um conjunto de oito flip-flops D compartilhando a mesma linha de clock. Uma célula de RAM estática é um laço de realimentação como o que veremos na Seção 2. O contador de programa é um registrador com um circuito de incremento. Os flags da ULA — zero, negativo, transporte, estouro — são flip-flops individuais.
Quando estudarmos o subsistema de memória e o caminho de dados da CPU, esses blocos vão aparecer prontos, como caixas com entrada, saída e clock. Esta aula é a única em que abrimos a caixa.
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.
- Analisar o laço RS básico caso a caso e explicar por que a combinação S = R = 1 não é permitida.
- Justificar a introdução da entrada de clock e descrever o que ela controla.
- Explicar a estrutura mestre-escravo do flip-flop JK e por que ela elimina a indeterminação do RS.
- Aplicar as tabelas-verdade dos flip-flops RS, JK, T e D para prever a saída futura (Qf) a partir da saída anterior (Qa).
- Prever o comportamento de um JK com as entradas assíncronas Preset e Clear, inclusive quando elas conflitam com o clock.
- Montar e simular os circuitos estudados no Logisim-Evolution, observando o comportamento em função do tempo.
1. De combinacional a sequencial
1.1 O que é um circuito combinacional
Nos circuitos que estudamos até agora — portas, codificadores, decodificadores, somadores, o somador-subtrator — vale uma regra sem exceções: a saída é uma função booleana das entradas atuais.
Três consequências decorrem dessa definição, e vale enunciá-las porque é exatamente cada uma delas que o circuito sequencial vai quebrar:
- A tabela-verdade descreve o circuito por completo. Com n entradas, as 2ⁿ linhas esgotam todo o comportamento possível. Não há nada a acrescentar.
- O tempo não aparece. Trocar as entradas de 01 para 10 dá o mesmo resultado que trocá-las de 11 para 10. O caminho percorrido é irrelevante; só o ponto de chegada importa.
- O circuito não tem passado. Desligue-o, religue-o com as mesmas entradas e a saída é a mesma. Ele não pode "saber" o que aconteceu antes, porque não existe onde essa informação ficaria guardada.
O grafo de um circuito combinacional é acíclico: o sinal entra à esquerda, atravessa camadas de portas e sai à direita, sem nunca voltar. Essa é a definição estrutural — e ela é equivalente às três propriedades acima.
1.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.
1.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?
A resposta é mais interessante do que parece, e depende de quantas inversões existem no laço. A Figura 1 mostra os dois casos possíveis; vale a pena experimentá-los no simulador antes de seguir, com os arquivos das Atividades 1 e 2.
(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. 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. O Logisim, ao detectar essa situação, interrompe a simulação e acusa oscilação.
(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. As duas configurações são estados estáveis: uma vez em um deles, o circuito permanece indefinidamente, porque cada porta confirma o valor da outra.
Isso é memória. É a célula biestável — e é, essencialmente, o núcleo de toda RAM estática. Falta apenas uma coisa: não há como escolher em qual dos dois estados o circuito vai ficar. Ligada a alimentação, ele cai em um deles por acaso, e ali fica. Um circuito que guarda um bit que ninguém pode escrever não serve para nada.
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. É exatamente o circuito da Seção 2, e é o flip-flop RS.
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.
1.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 o restante desta aula vai resolver:
| O que muda | Consequência prática |
|---|---|
| A saída passa a depender também de si mesma | A 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 sustentam | A 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. |
| O resultado pode depender da ordem e da velocidade | Se 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 da Seção 2.3. |
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 veremos na Seção 3, e é por isso que praticamente todo circuito digital moderno é síncrono.
1.5 O quadro geral
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.
| Combinacional | Sequencial | |
|---|---|---|
| Saída depende de | entradas atuais | entradas atuais e estado anterior |
| Estrutura | grafo acíclico | tem ao menos um ciclo |
| Descrição completa | tabela-verdade | tabela de transição de estados |
| Precisa de clock | não | em geral sim (os síncronos) |
| Exemplos | somador, decodificador, multiplexador | flip-flop, registrador, contador, memória |
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⁺.
1.6 Os dois estados
Um flip-flop 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
Um flip-flop armazena, assim, exatamente um bit. Todo o resto — registradores, memórias, contadores — é replicação e interligação dessa célula.
2. Flip-flop RS básico
Retomando o ponto em que a Seção 1.3 parou: o anel de dois inversores guarda um bit mas não permite escrevê-lo. Substituindo os inversores por portas de duas entradas, cada porta continua invertendo o sinal que recebe da outra — a biestabilidade se mantém — e sobra uma entrada livre em cada uma. São essas duas entradas livres que dão o comando.
Existem duas realizações usuais desse mesmo circuito. Começamos pela do livro-texto, com NAND, e vemos a versão com NOR na Seção 2.4.
2.1 O laço com portas NAND
A construção usa duas portas NAND realimentadas, precedidas de inversores nas entradas. A saída de cada porta alimenta uma entrada da outra: é o laço de realimentação que sustenta o estado; os inversores servem apenas para que S e R fiquem ativas em nível 1.
O nome das entradas vem da função de cada uma:
- S (Set), quando acionada em nível 1, leva a saída para 1 — estabelece o bit.
- R (Reset), quando acionada em nível 1, leva a saída para 0 — zera o flip-flop.
2.2 Análise caso a caso
Como a saída futura depende também da saída anterior, a tabela-verdade precisa de três colunas de entrada: S, R e Qa. São oito casos.
| S | R | Qa | Qf | Qf | Comportamento |
|---|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 1 | estado estável — mantém |
| 0 | 0 | 1 | 1 | 0 | estado estável — mantém |
| 0 | 1 | 0 | 0 | 1 | fixa Qf em 0 |
| 0 | 1 | 1 | 0 | 1 | fixa Qf em 0 |
| 1 | 0 | 0 | 1 | 0 | fixa Qf em 1 |
| 1 | 0 | 1 | 1 | 0 | fixa Qf em 1 |
| 1 | 1 | 0 | 1 | 1 | não permitido |
| 1 | 1 | 1 | 1 | 1 | não permitido |
Eliminando a redundância, chega-se à tabela que se usa na prática:
| S | R | Qf |
|---|---|---|
| 0 | 0 | Qa (mantém) |
| 0 | 1 | 0 |
| 1 | 0 | 1 |
| 1 | 1 | não permitido |
2.3 Por que S = R = 1 é proibido
O motivo é direto: com as duas entradas ativas, o circuito é forçado a colocar o mesmo valor nas duas saídas — Q = Q. Isso contradiz a própria definição do dispositivo, cujas saídas devem ser complementares.
Pior do que isso é o que acontece depois. Ao retirar simultaneamente as duas entradas (voltando a S = R = 0), as duas portas disputam a estabilização, e o estado final depende de qual delas comutar primeiro — ou seja, de diferenças de fabricação e de temperatura. O resultado é imprevisível, e é por isso que a combinação não é apenas "estranha": ela é inutilizável em projeto.
No laço com NAND (Figura 3), as duas entradas ativas forçam Q = Q = 1. No laço com NOR da próxima seção, forçam Q = Q = 0. O valor difere; o que não difere é a conclusão: a combinação não é permitida em nenhuma das duas construções.
2.4 A construção com portas NOR
O mesmo flip-flop pode ser montado com duas portas NOR, e nesse caso os inversores de entrada são dispensáveis. Repare que os papéis se invertem em relação à posição no desenho: a entrada da porta de cima é o Reset, e a da porta de baixo é o Set.
O raciocínio de análise é sempre o mesmo, e vale a pena internalizá-lo: um nível 1 em uma entrada de porta NOR força a saída daquela porta a 0, independentemente da outra entrada. A partir daí, o valor 0 propaga-se pelo elo de realimentação e determina a outra saída.
3. Flip-flop RS com entrada de clock
O RS básico muda de estado no instante exato em que as entradas mudam. Em um sistema com milhares de células, isso é ingovernável: cada uma comutaria em um momento diferente, e o circuito nunca teria um estado consistente.
A solução é condicionar a atuação das entradas a um sinal de comando. Basta substituir os inversores por portas NAND e injetar o clock na segunda entrada de cada uma.
O comportamento resume-se a duas situações:
| CK | Comportamento |
|---|---|
| 0 | as saídas das portas de entrada são sempre 1: o estado fica travado |
| 1 | o circuito funciona como um RS básico |
No bloco representativo (parte b da Figura 5), o triângulo na entrada de clock é a notação padrão para "entrada dinâmica", isto é, controlada pelo clock. Ela reaparece em todos os blocos daqui em diante.
A entrada de clock dá controle sobre quando a mudança acontece, mas não elimina a combinação proibida: com CK = 1 e S = R = 1, a indeterminação continua exatamente onde estava. Quem resolve isso é o flip-flop da próxima seção.
4. Flip-flop JK mestre-escravo
4.1 A ideia
O flip-flop JK mestre-escravo (JK master-slave) faz duas coisas ao mesmo tempo:
- Realimenta as saídas para as entradas. A entrada J só tem efeito quando Q = 1 (isto é, quando Q = 0), e a entrada K só tem efeito quando Q = 1. Em termos do RS interno: S = J·Q e R = K·Q. Como Q e Q nunca valem 1 ao mesmo tempo, S e R nunca chegam a 1 simultaneamente — a combinação proibida deixa de ser alcançável.
- Encadeia duas células RS com clocks complementares. A primeira, o mestre, lê as entradas; a segunda, o escravo, entrega o resultado à saída. Como uma trabalha com CK e a outra com CK, elas nunca estão abertas ao mesmo tempo.
A Figura 6 mostra as duas ideias em um único diagrama.
4.2 Como o par mestre-escravo se comporta no tempo
- Enquanto o clock está em 1, o mestre acompanha J e K, mas o escravo está bloqueado — a saída não se move.
- Na descida do clock (transição de 1 para 0), o mestre trava o valor que capturou e o escravo, agora liberado, copia esse valor para a saída.
- Enquanto o clock permanece em 0, J e K podem variar à vontade: as saídas internas do mestre estão fixas e a saída não muda.
O efeito líquido é que a saída muda uma única vez por pulso, na descida do clock. Diz-se que o circuito é sensível à descida.
4.3 A tabela-verdade do JK
| J | K | Qf | Comportamento |
|---|---|---|---|
| 0 | 0 | Qa | mantém o estado |
| 0 | 1 | 0 | zera (reset) |
| 1 | 0 | 1 | estabelece (set) |
| 1 | 1 | Qa | inverte o estado |
As três primeiras linhas reproduzem o RS. A quarta é a novidade: no lugar da combinação proibida, o JK oferece uma operação útil — a inversão do estado. É ela que torna o JK a célula básica dos contadores.
4.4 Sensibilidade à borda
Colocando um inversor na entrada de clock, obtém-se um circuito que atua na subida em vez da descida. A distinção aparece no símbolo, como mostra a Figura 7:
O cronograma da Figura 8 mostra o efeito na prática. Repare que J e K mudam várias vezes ao longo do tempo, mas Q só se move nas linhas tracejadas — as descidas do clock.
A estrutura mestre-escravo tem uma limitação conhecida como ones catching: se um pulso curto aparecer em J enquanto o clock está em 1, o mestre o captura e o repassa na descida, mesmo que J já tenha voltado a 0. O circuito é sensível ao nível do clock durante a janela em que está alto, não apenas à borda.
Por isso, os circuitos integrados modernos usam flip-flops disparados por borda (edge-triggered), tipicamente do tipo D, em que a captura ocorre em uma janela muito estreita em torno da transição. O modelo mestre-escravo continua sendo o melhor caminho didático — ele torna visível a separação entre "ler a entrada" e "atualizar a saída" —, mas não é o que está dentro de um registrador atual.
5. Entradas assíncronas: Preset e Clear
Além das entradas de dados, o JK dispõe de duas entradas que agem diretamente sobre o laço, sem passar pelo clock:
- Preset (PR) — força a saída para Q = 1.
- Clear (CLR), também chamada de Reset — força a saída para Q = 0.
Nos circuitos integrados usuais, ambas são ativas em nível 0, o que se indica pelo círculo no símbolo (Figura 9) e pela barra sobre o nome.
| CLR | PR | Qf |
|---|---|---|
| 0 | 0 | não permitido |
| 0 | 1 | 0 |
| 1 | 0 | 1 |
| 1 | 1 | funcionamento normal (comandado por J, K e clock) |
Note que a linha proibida reaparece aqui, e pelo mesmo motivo de sempre: pedir simultaneamente Q = 0 e Q = 1 é pedir o impossível.
Este é o ponto que mais gera erro em prova: PR e CLR não esperam o clock. Se CLR estiver em 0, a saída vai a 0 e permanece lá, não importa o que J, K e o clock estejam fazendo. Ao resolver exercícios, verifique primeiro as entradas assíncronas; só se as duas estiverem em 1 é que se olha para a borda do clock.
6. Flip-flop T
O flip-flop T é obtido a partir de um JK mestre-escravo com as entradas J e K curto-circuitadas — ligadas uma à outra. Se J vale 1, K também vale 1; se J vale 0, K também vale 0. Restam, portanto, apenas duas das quatro linhas da tabela do JK.
| T | Qf |
|---|---|
| 0 | Qa (mantém) |
| 1 | Qa (inverte) |
A sigla vem de Toggle, comutar. Como com T = 1 a saída se inverte a cada descida de clock, um flip-flop T sozinho já é um divisor de frequência por 2 — e é por isso que ele é a célula principal dos contadores assíncronos.
O flip-flop T não é encontrado na série de circuitos integrados comerciais. Na prática ele é montado a partir de um JK mestre-escravo com a ligação mostrada na Figura 10.
7. Flip-flop D
O flip-flop D é obtido a partir de um JK mestre-escravo com a entrada K invertida em relação a J: como mostra a Figura 11, um inversor entre as duas garante que K = J. Desaparecem os casos J = K = 0 e J = K = 1, e restam apenas as duas linhas que gravam um valor.
| D | Qf |
|---|---|
| 0 | 0 |
| 1 | 1 |
A sigla vem de Data, dado. O comportamento é o mais simples de todos — a saída assume o valor presente na entrada D no instante da borda ativa —, e é justamente essa simplicidade que o torna o flip-flop mais usado na prática: é a célula dos registradores de deslocamento, dos registradores de uso geral da CPU e das memórias construídas com portas lógicas.
8. Quadro comparativo
| Tipo | Entradas de dados | Equação característica | Caso a evitar | Onde é usado |
|---|---|---|---|---|
| RS | S, R | Qf = S + R·Qa | S = R = 1 | célula elementar; base dos demais |
| JK | J, K | Qf = J·Qa + K·Qa | — | contadores síncronos |
| T | T | Qf = T ⊕ Qa | — | contadores assíncronos, divisores de frequência |
| D | D | Qf = D | — | registradores, memórias |
A equação característica exprime a saída futura como função booleana das entradas e da saída anterior. Vale conferir cada uma contra a tabela correspondente — por exemplo, no JK com J = K = 1: Qf = 1·Qa + 0·Qa = Qa, que é a inversão prevista.
9. Para onde isso vai
Os quatro dispositivos desta aula não são alternativas concorrentes: são especializações sucessivas do mesmo laço de realimentação, cada uma trocando generalidade por segurança de uso.
- O RS mostra o princípio, mas tem um caso inutilizável.
- O JK elimina esse caso e transforma-o em uma operação útil.
- O T e o D restringem o JK a um subconjunto seguro, cada um otimizado para um papel: contar e armazenar.
Na unidade de subsistema de memória, o flip-flop D reaparece agrupado em registradores e como célula de RAM estática. Na unidade de CPU, ele é o que sustenta o contador de programa, o registrador de instrução e os flags. Guarde a distinção entre entradas síncronas e assíncronas: ela volta na forma dos sinais de reset do processador.
Exercícios (checkpoints)
Verificação rápida
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
4. Em um flip-flop RS básico construído com portas NOR, o que acontece quando S = R = 1?
- a)O flip-flop mantém o estado anterior
- b)O flip-flop inverte o estado anterior
- c)As duas saídas vão a 0, violando a complementaridade entre Q e Q
- d)As duas saídas vão a 1, violando a complementaridade entre Q e Q
- e)O circuito oscila indefinidamente enquanto as entradas estiverem em 1
5. Qual é a função da entrada de clock em um flip-flop RS com clock?
- a)Definir o valor que será armazenado na saída
- b)Controlar quando as entradas S e R podem atuar sobre o laço
- c)Eliminar a combinação proibida S = R = 1
- d)Inverter a saída a cada pulso
- e)Zerar o flip-flop no início da operação
6. Por que a combinação J = K = 1 é permitida no flip-flop JK, enquanto S = R = 1 não é no RS?
- a)Porque o JK tem mais portas lógicas e suporta correntes maiores
- b)Porque no JK a saída é realimentada às entradas, de modo que S = J·Q e R = K·Q nunca valem 1 ao mesmo tempo
- c)Porque o JK ignora a entrada K quando J está em 1
- d)Porque o clock do JK é mais lento
- e)Porque o JK só aceita uma entrada ativa por vez, por construção elétrica
7. Um JK mestre-escravo sensível à descida está com CK = 1, J = 1, K = 0 e Qa = 0. Qual é o valor de Q neste instante?
- a)Q = 1, porque J = 1 estabelece a saída imediatamente
- b)Q = 0, porque o escravo só copia o valor do mestre na descida do clock
- c)Q é indeterminado enquanto o clock estiver em 1
- d)Q = 1 apenas se o Preset também estiver ativo
- e)Q oscila entre 0 e 1 enquanto o clock estiver em 1
8. Um flip-flop JK está com CLR = 0, PR = 1, J = 1, K = 1 e recebe uma descida de clock. Qual é o valor de Qf?
- a)Qf = Qa, porque J = K = 1 inverte o estado
- b)Qf = 0, porque a entrada Clear é assíncrona e prevalece sobre o clock
- c)Qf = 1, porque o Preset está em 1
- d)A situação não é permitida
- e)Qf mantém o valor anterior, porque as entradas assíncronas bloqueiam o clock
9. Por que o flip-flop T é usado como célula de contadores assíncronos?
- a)Porque ele armazena dois bits em vez de um
- b)Porque com T = 1 ele inverte a saída a cada borda ativa, funcionando como divisor de frequência por 2
- c)Porque ele é o único que possui entradas Preset e Clear
- d)Porque ele não precisa de sinal de clock
- e)Porque ele é o mais rápido dos quatro tipos
10. Qual característica torna o flip-flop D a escolha natural para registradores?
- a)Ele mantém o valor anterior quando D = 0
- b)Ele inverte o valor armazenado a cada pulso, permitindo contar
- c)A saída assume, na borda ativa, exatamente o valor presente na entrada D
- d)Ele dispensa a entrada de clock
- e)Ele possui duas entradas de dados independentes
Questões dissertativas
Explique, com suas palavras, por que um circuito construído apenas com portas lógicas sem realimentação não consegue armazenar informação.
No flip-flop RS básico, a combinação S = R = 1 é descrita como 'não permitida' e não apenas como 'inútil'. Justifique a diferença, explicando o que acontece quando as duas entradas voltam a 0 simultaneamente.
Descreva o que acontece dentro de um flip-flop JK mestre-escravo durante um ciclo completo de clock (subida, nível alto, descida, nível baixo), indicando em qual momento a saída Q pode mudar.
Explique por que o flip-flop T não é fabricado como circuito integrado próprio e como ele é obtido na prática. Em seguida, explique por que ele funciona como divisor de frequência por 2.
A tabela a seguir descreve oito situações aplicadas a um flip-flop JK mestre-escravo sensível à descida, com Preset e Clear ativos em nível 0. Copie-a e complete a coluna Qf antes de revelar o gabarito da Questão 5.
| # | Clock | J | K | PR | CLR | Qa | Qf |
|---|---|---|---|---|---|---|---|
| 1 | 1 → 0 | 0 | 0 | 1 | 1 | 1 | |
| 2 | 1 → 0 | 0 | 1 | 1 | 1 | 1 | |
| 3 | 1 | 1 | 1 | 1 | 0 | 1 | |
| 4 | 0 | 1 | 0 | 0 | 1 | 0 | |
| 5 | 1 → 0 | 1 | 0 | 1 | 1 | 0 | |
| 6 | 1 → 0 | 0 | 1 | 1 | 1 | 1 | |
| 7 | 0 → 1 | 0 | 1 | 1 | 0 | 1 | |
| 8 | 0 → 1 | 1 | 1 | 0 | 1 | 1 |
Determine o valor de Qf em cada linha da tabela acima, justificando as três primeiras.
Mostre que a equação característica do flip-flop JK, Qf = J·Qa + K·Qa, reproduz as quatro linhas da tabela-verdade do dispositivo.
Um colega afirma que, para zerar todos os registradores de uma máquina no momento em que ela é ligada, basta colocar 0 nas entradas D de todos os flip-flops. Avalie a afirmação e proponha a solução correta.
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.
Versão de referência: 4.1.0 (fevereiro de 2026).
| Como instalar | Arquivo |
|---|---|
| Multiplataforma — arquivo único, exige Java 21 ou superior já instalado | logisim-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.
Os quatro primeiros circuitos estão prontos; os três últimos você monta, a partir de componentes que já vêm na ferramenta. Cada atividade termina em algo que você deve conseguir observar na tela — se não observar, o roteiro diz o que verificar.
Arquivos de apoio
| Arquivo | Atividade | O que contém |
|---|---|---|
01-realimentacao-oscilador.circ | 1 | Um inversor com a saída ligada à própria entrada |
02-realimentacao-biestavel.circ | 2 | Dois inversores em anel |
03-latch-rs-nor.circ | 3 e 4 | Laço RS com duas portas NOR, entradas S e R, saídas Q e nQ |
04-latch-rs-com-clock.circ | 5 | RS com duas NAND de entrada comandadas por um componente Clock |
Nos arquivos, a saída complementar aparece como nQ: o Logisim aceita apenas letras, dígitos e sublinhado nos rótulos, então não há como escrever Q.
Ctrl+K liga e desliga os ticks do relógio; Ctrl+T avança um tick (é o modo mais útil para estudar borda de clock, porque você vê cada transição separadamente); a ferramenta dedo (a primeira da barra) é a que muda o valor de um pino de entrada — com a seta você move componentes, não os aciona.
Atividade 1 — Realimentação com uma inversão
Abra 01-realimentacao-oscilador.circ. O circuito é apenas um inversor com a saída ligada de volta à entrada.
- Observe o fio de realimentação e escreva, antes de simular, qual valor você espera em Q.
- Ligue a simulação.
O que observar: o Logisim não consegue estabilizar o circuito e interrompe a simulação acusando oscilação. É a tradução, no simulador, da equação Q = Q não ter solução. Reabra o arquivo para limpar o estado de erro.
Se nada acontecer: confirme que a simulação está habilitada em Simular → Simulação habilitada.
Atividade 2 — Realimentação com duas inversões
Abra 02-realimentacao-biestavel.circ, com dois inversores em anel.
- Ligue a simulação e anote o valor de Q.
- Feche e reabra o arquivo algumas vezes, anotando Q a cada vez.
O que observar: agora não há oscilação — o circuito estabiliza. Este é o comportamento biestável da Seção 1.3: o laço se sustenta em 0 ou em 1, e você não tem nenhum meio de escolher qual. É exatamente essa falta de controle que as portas de duas entradas do flip-flop RS resolvem.
Atividade 3 — O laço RS com portas NOR
Abra 03-latch-rs-nor.circ. Compare o desenho com a Figura 4 antes de simular: são o mesmo circuito.
- Com a ferramenta dedo, aplique S = 1, R = 0 e observe Q e nQ. Volte S a 0.
- Aplique S = 0, R = 1, observe, e volte R a 0.
- Deixe as duas entradas em 0 e observe.
- Repita algumas vezes, alternando a ordem, e preencha mentalmente a tabela resumida da Seção 2.2.
O que observar: com 00 a saída permanece no valor deixado pela combinação anterior. É o armazenamento acontecendo diante dos seus olhos — e é a diferença que a Seção 1.1 anunciou: o circuito passou a ter passado.
Se as saídas não mudarem: verifique se você está usando a ferramenta dedo e não a seta.
Atividade 4 — O caso proibido, na prática
No mesmo arquivo da atividade anterior:
- Aplique S = R = 1 e observe as duas saídas ao mesmo tempo.
- Volte as duas a 0. Repita o procedimento cinco ou seis vezes, anotando o valor final de Q em cada tentativa.
O que observar: com as duas entradas ativas, Q = nQ = 0 — as saídas deixam de ser complementares, e o dispositivo já não representa um bit. Na saída da condição, o simulador precisa arbitrar qual porta vence; em silício, quem arbitra é a diferença de atraso de propagação entre as duas portas, que varia com fabricação e temperatura.
Ponto de reflexão: o Logisim é determinístico e tende a dar sempre o mesmo resultado. Isso é uma limitação do simulador, não uma propriedade do circuito: um modelo com atrasos realistas mostraria resultados diferentes a cada execução. É por isso que a combinação é proibida por regra de projeto, e não apenas desaconselhada.
Atividade 5 — A entrada de clock
Abra 04-latch-rs-com-clock.circ. Duas portas NAND de entrada combinam S e R com o clock antes de chegarem ao laço.
- Desligue os ticks automáticos (Ctrl+K, se estiverem ligados) e deixe o clock em 0 — clique nele com a ferramenta dedo até que fique em nível baixo.
- Com o clock em 0, varie S e R à vontade. Observe as saídas.
- Coloque o clock em 1 e repita as mesmas variações.
O que observar: com o clock em 0, nenhuma mudança em S ou R afeta a saída: o estado fica travado. Com o clock em 1, o circuito volta a se comportar como o RS da Atividade 3, caso proibido incluído. O clock controla quando, não o quê.
Atividade 6 — O flip-flop JK e a borda de clock
Esta você monta. Em um arquivo novo:
- Arraste um J-K Flip-Flop da biblioteca Memory e um Clock da biblioteca Wiring.
- Ligue o Clock à entrada de clock do flip-flop e ligue J e K a pinos de entrada; ligue Q a um pino de saída.
- Use Ctrl+T para avançar um tick de cada vez, testando as quatro combinações de J e K.
O que observar: a saída muda uma vez por pulso, na borda ativa — não no instante em que você altera J ou K. Com J = K = 1, ela inverte a cada pulso, que é a linha do JK que o RS não tinha.
Atividade 7 — Divisor de frequência e contador
Continuando o arquivo da Atividade 6:
- Fixe J = K = 1 (o equivalente a T = 1) usando dois componentes Constant em 1.
- Acrescente um segundo flip-flop e use a saída Q do primeiro como clock do segundo.
- Ligue os ticks automáticos (Ctrl+K) e observe as duas saídas.
O que observar: Q do primeiro tem metade da frequência do clock, e Q do segundo, um quarto. Lendo as duas saídas em paralelo, com o segundo como bit mais significativo, você tem um contador de 0 a 3 — um contador assíncrono de 2 bits, construído sem nenhuma lógica adicional.
Atividade 8 — As entradas assíncronas
Ainda no mesmo arquivo:
- Ligue as entradas de preset e clear do primeiro flip-flop a pinos de entrada.
- Com os ticks rodando e J = K = 1 (saída invertendo a cada pulso), acione o clear.
O que observar: a saída vai a 0 imediatamente, sem esperar a próxima borda, e fica travada em 0 enquanto o sinal estiver ativo — mesmo com o clock rodando e J = K = 1. É a demonstração literal do que "assíncrono" significa.
Confira a polaridade das entradas assíncronas do componente que você está usando: nos circuitos integrados reais elas são ativas em 0, e nem toda biblioteca de simulador segue essa convenção. Verificar isso antes de concluir que o circuito está errado economiza bastante tempo.
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ções 4.1 e 4.2 (texto de referência desta aula)
-
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
Aprofundamento (opcionais)
-
TOCCI, Ronald J.; WIDMER, Neal S.; MOSS, Gregory L. Sistemas digitais: princípios e aplicações. São Paulo: Pearson. Número de chamada: Ac.131146
- Tratamento detalhado de latches, flip-flops disparados por borda e parâmetros de temporização (setup e hold)
-
DELGADO, José. Arquitetura de computadores. Rio de Janeiro: LTC, 2017. Recurso online — Acervo Virtual. Número de chamada: Ac.5013563
-
WEBER, Raul Fernando. Fundamentos de arquitetura de computadores. Porto Alegre: Bookman, 2012. Número de chamada: 004.2 W375fuf 4.ed.-2012 Ac.113940
Pré-requisito
- Revisão: Fundamentos de Circuitos Digitais — portas lógicas, álgebra booleana e teoremas de De Morgan, usados na análise dos laços desta aula.