FAVORITAR
FecharPlease login

Conhecendo os Diferentes Tipos de Flip Flops: RS, JK, D e T

Introdução

Até agora os circuitos lógicos estudados são classificados como combinacionais, pois o nível lógico de saída, em qualquer instante de tempo, depende somente dos níveis lógicos de entrada naquele mesmo instante. Não há influência de nenhuma condição de entrada anterior sobre as saídas atuais, já que os circuitos combinacionais não possuem memória. 

Na maioria dos sistemas digitais, há a presença de circuitos combinacionais e elementos de memória. O flip-flop é o componente de memória mais importante e é constituído por um conjunto de portas lógicas interconectadas. Embora uma única porta lógica não possua capacidade de armazenamento, algumas delas podem ser conectadas de maneira a permitir guardar informações. 

Neste artigo de hoje, vamos entender o que são e como funcionam esses componentes tão essenciais nos sistemas digitais.

Flip Flops

A realimentação é um conceito crucial da engenharia que permite conectar certas saídas de portas lógicas de volta às entradas de portas lógicas correspondentes para criar elementos de memória. Na eletrônica, a realimentação tem diversas aplicações. Existem diferentes arranjos de portas lógicas utilizados para gerar os flip-flops (FFs).

Na Figura 1, é apresentado um símbolo genérico utilizado para representar um flip-flop, o qual possui duas saídas, Q e Q invertido. Q/Q ou ainda Q/Q’ é a nomenclatura mais comum para identificar as saídas dos flip-flops, embora outras designações como X/X’ ou A/A’ também possam ser utilizadas para facilitar a identificação de diferentes flip-flops em um circuito lógico. 

Figura 1 – Símbolo geral para um flip-flop.

Como indicado no símbolo da Figura 1, um flip-flop pode ter uma ou mais entradas usadas para fazer com que ele alterne entre seus possíveis estados de saída. 

A maioria das entradas dos flip-flops precisa ser apenas momentaneamente ativada (pulsada) para provocar a mudança de estado na saída do flip-flop, sendo que a saída permanece no novo estado mesmo após o pulso de entrada terminar. Essa é a característica de memória dos flip-flops.

Com relação saída Q é considerada a saída normal do flip-flop, enquanto a saída /Q é a saída invertida do FF. Sempre que mencionamos o estado do flip-flop, estamos nos referindo ao estado da saída normal (Q). É importante destacar que o estado de Q é sempre o inverso do estado de Q’. Por exemplo, se dissermos que um flip-flop está no estado ALTO (1), estamos nos referindo a Q = 1, enquanto o estado de Q’ é 0. De maneira análoga, se um flip-flop estiver no estado BAIXO (0), isso significa que Q = 0, enquanto Q’ será igual a 1.

Existem dois estados possíveis de operação para um flip-flop:

  • O estado ALTO ou 1 (Q = 1/Q’ = 0) também é conhecido como estado SET.
    • Sempre que os níveis nas entradas de um flip-flop fazem sua saída ir para o estado Q = 1, dizemos que o flip-flop foi setado. 
  • O estado BAIXO ou 0 da saída  (Q = 0/Q’ = 1) é denominado CLEAR ou RESET.
    • Sempre que os níveis nas entradas do flip-flop fazem sua saída ir para o estado Q = 0, dizemos que o flip-flop foi resetado. 

É importante destacar que muitos flip-flops possuem entradas SET e/ou CLEAR (RESET), utilizadas para colocar a saída em um estado específico.

O flip-flop também é conhecido por outros nomes, como latch e multivibrador biestável. O termo latch é utilizado para se referir a certos tipos de flip-flops que serão descritos posteriormente. Já o termo multivibrador biestável é a denominação mais técnica, mas é um termo pouco utilizado regularmente.

Latches

O circuito de um FF mais simples pode ser implementado utilizando duas portas NAND ou NOR, sendo que a versão com portas NAND é conhecida como latch com portas NAND ou simplesmente latch. 

Latch com portas NAND

Na versão com portas NAND, as duas portas são interligadas de modo cruzado para fornecer a realimentação necessária para a função de memória. As saídas do latch são denominadas Q e Q’, respectivamente, e são sempre o inverso uma da outra em condições normais. O latch tem duas entradas: SET, que seta Q para 1, e RESET, que reseta Q para 0.

Na Figura 2 é apresentado o diagrama de blocos deste circuito, onde as duas portas NAND são interconectadas em uma configuração cruzada para que a saída da primeira porta seja ligada a uma das entradas da segunda porta e vice-versa. Essa realimentação é necessária para o circuito ser capaz de armazenar informações.

Figura 2 – Um latch com portas NAND e seus dois estados de repouso possíveis.
Fonte: Tocci (2011).

As saídas das portas são denominadas Q e Q’, sendo que em condições normais, elas serão o inverso uma da outra. Existem duas entradas no circuito: SET e RESET. Essas entradas são normalmente mantidas em nível ALTO e, quando pulsadas em nível BAIXO, provocam a alteração das saídas do latch.

Quando SET = RESET = 1, existem dois estados de saída igualmente prováveis. Um dos estados possíveis é apresentado na Figura 2(a), onde Q = 0 e Q’= 1. Nesse caso, as entradas da segunda porta NAND são 0 e 1, o que gera Q’ = 1. Como Q = 0, a primeira porta NAND tem nível 1 em ambas as entradas, gerando 0 na saída Q. Na verdade, a saída da primeira porta NAND fica em nível BAIXO, o que gera nível ALTO na saída da segunda porta NAND. Esse nível ALTO na saída da segunda porta NAND mantém a saída da primeira porta NAND em nível BAIXO.

A segunda possibilidade, conforme mostrada na Figura 2(b), quando SET = RESET = 1, é possível que Q = 1 e Q’ = 0. Isso ocorre porque o nível ALTO na saída da NAND 1 resulta em um nível BAIXO na saída da NAND 2, mantendo a saída da NAND 1 em nível ALTO.

Resumindo, quando as entradas SET e RESET estão em repouso no estado ALTO, e ambas são pulsadas em nível BAIXO simultaneamente, existem duas possibilidades de estados de saída igualmente prováveis: Q = 0 e Q’ = 1, ou Q = 1 e Q’ = 0. O estado atual da saída dependerá do que aconteceu anteriormente nas entradas, o que indica que o circuito pode manter seu estado de saída anterior ou mudar para um novo estado, dependendo das entradas anteriores e das novas entradas.

Tipos mais comuns de flip-flops

Flip-flop S-R

A Figura 3 (a) ilustra o símbolo lógico para um flip-flop S-R que é acionado na borda de subida do sinal de clock. Essa condição implica que o estado do FF só pode mudar quando a entrada de clock transita de 0 para 1. As entradas S e R controlam o estado do FF, assim como em um latch NOR, mas o FF só responderá a essas entradas após uma borda de subida no sinal de clock.

Na Figura 3 (b), é apresentada a tabela-verdade que mostra como a saída do FF responde a uma borda de subida na entrada CLK, para várias combinações das entradas S e R. Essa tabela-verdade utiliza algumas nomenclaturas novas. A seta apontando para cima (↑) indica que é necessária uma borda de subida na entrada CLK. Além disso, a nomenclatura Q0 refere-se ao nível de saída Q (cujo valor pode ser 0 ou 1) antes da borda de subida do clock. Essa terminologia é frequentemente utilizada pelos fabricantes de circuitos integrados em seus manuais.

Flip flop SR
Figura 3 – (a) Flip-flop S-R com clock que responde apenas à borda de subida do pulso de clock; (b) tabela-verdade; (c) formas de onda típicas.
Fonte: Tocci (2011).

Já a Figura 3 (c) apresenta as formas de onda que exemplificam o funcionamento do flip-flop S-R com clock. Considerando que os parâmetros de tempo de setup e hold sejam levados em conta em todos os casos, podemos analisar essas formas de onda da seguinte maneira:

1. No início, todas as entradas estão em nível 0. Supondo que a saída Q esteja em nível 0 (então Q0 = 0).

2. Quando ocorre a borda de subida do primeiro pulso de clock (ponto a), as entradas S e R estão em nível 0, de modo que a saída do FF não é afetada, permanecendo no estado Q = 0 (ou seja, Q = Q0).

3. Quando ocorre a borda de subida do segundo pulso de clock (ponto c), a entrada S está em nível alto e a entrada R ainda está em nível baixo. Assim, o FF é setado para o estado 1 no instante da borda de subida do pulso de clock.

4. Quando ocorre a borda de subida no terceiro pulso de clock (ponto e), S é igual a 0 e R é igual a 1, fazendo com que o FF seja resetado para o estado 0.

5. No quarto pulso de clock, o FF é setado novamente, levando a saída Q para o estado 1 (ponto g), porque S = 1 e R = 0 no instante em que ocorre a borda de subida do clock.

6. No instante da borda de subida do quinto pulso de clock, as entradas são as mesmas (S = 1 e R = 0). Entretanto, como a saída Q já está em nível alto, ela permanece nesse estado.

É importante não utilizar a condição em que S = R = 1, pois isso resulta em uma condição ambígua. Afinal, o set é para tornar a saída em nível lógico 1 e o reset nível lógico 0.

A partir dessas formas de onda, é possível observar que S e R são entradas de controle síncronas que determinam o estado lógico do FF quando ocorre o pulso de clock. A entrada CLK é a entrada de disparo que faz com que o FF mude de estado lógico de acordo com os níveis lógicos nas entradas S e R no instante em que ocorre a transição ativa do clock. 

A Figura 4 ilustra o símbolo e a tabela-verdade de um flip-flop S-R disparado na borda de descida da entrada CLK. A entrada CLK com o pequeno círculo e triângulo indica que esse FF é acionado somente quando ocorre uma transição da entrada CLK de 1 para 0. Esse FF funciona de maneira semelhante a um FF disparado por borda de subida, exceto pelo fato de que a saída só mudará de estado lógico durante as bordas de descida dos pulsos de clock (pontos b, d, f, h e j na Figura 3).

Flip flop
Figura 4 – Flip-flop S-R com clock disparado apenas nas bordas de descida do clock.
Fonte: Tocci (2011).

Ambos os tipos de FFs, disparados por borda de subida ou por borda de descida, são comumente utilizados em sistemas digitais.

Flip-flop J-K

O flip-flop J-K na Figura 5(a) é disparado por borda de subida do sinal de clock e possui as entradas J e K que controlam o estado lógico do FF. O modo de comutação (toggle mode) ocorre quando J = K = 1, fazendo com que o FF mude para o estado lógico oposto no instante da borda de subida do sinal de clock. 

A tabela-verdade para esse flip-flop é a mesma do flip-flop S-R com clock (Figura 3), exceto para a condição J = K = 1, onde Q = Q0 e a saída Q terá seu valor invertido. 

A operação desse FF é ilustrada pelas formas de onda na Figura 5(b), onde a mudança de estado ocorre somente nos instantes em que ocorrem as bordas positivas do sinal de clock. As entradas J e K sozinhas não são capazes de fazer o FF mudar de estado lógico e o FF não é afetado pelas bordas negativas dos pulsos de clock como ocorria no flip flop S-R.

Flip flop JK
Figura 5 – (a) Flip-flop J-K com clock que responde apenas às bordas positivas do clock; (b) formas de ondas.
Fonte: Tocci (2011).

O símbolo de um flip-flop J-K acionado na borda negativa do sinal de clock conta com um pequeno círculo na entrada CLK para indicar que esse flip-flop é acionado quando a entrada CLK é alterada de 1 para 0. Esse tipo de flip-flop funciona da mesma maneira que o flip-flop acionado na borda de subida, mostrado na Figura 5, com a diferença de que a mudança de estado da saída ocorre somente nas bordas de descida do sinal de clock (pontos b, d, f, h e j). Ambos os tipos de flip-flops J-K são comumente usados. 

Comparado com o S-R, o flip-flop J-K é mais versátil, pois não possui estados ambíguos. A condição J = K = 1, que causa a operação de comutação da saída, é amplamente utilizada em todos os tipos de contadores binários. Em resumo, o flip-flop J-K pode realizar todas as funções do S-R, além de operar no modo de comutação.

Flip-flop D

Por fim o flip-flop D, cujo símbolo e tabela-verdade são mostrados na Figura 6(a). Esse tipo de flip-flop é disparado na borda de subida do clock e possui apenas uma entrada de controle síncrona, a entrada D, que representa a palavra data (dado). Quando ocorre uma borda de subida do clock, a saída Q assume o mesmo valor lógico presente na entrada D. As formas de onda apresentadas na Figura 6(b) ilustram essa operação. 

Flip flop D
Figura 6 – (a) Flip-flop S-R com clock que responde apenas à borda de subida do pulso de clock; (b) tabela-verdade; (c) formas de onda típicas.
Fonte: Tocci (2011).

Inicialmente, suponha que a saída Q esteja em nível ALTO. Quando ocorre a primeira borda de subida do clock (ponto a), a entrada D é nível BAIXO, fazendo com que a saída Q vá para o estado 0. Mesmo que o nível lógico na entrada D mude entre os pontos a e b, isso não afeta a saída Q, que armazena o nível BAIXO presente na entrada D no ponto a. Quando ocorre uma borda de subida do clock em b, a saída Q assume o valor lógico presente na entrada D, que é nível ALTO nesse instante. A saída Q armazena esse nível ALTO até que uma borda de subida do clock em c faça com que a saída Q vá para o nível BAIXO, visto que a entrada D é nível BAIXO nesse instante. De modo similar, a saída Q assume o nível lógico presente na entrada D, quando ocorrem as bordas de subida do clock nos pontos d, e, f e g. É importante ressaltar que a saída Q só muda de estado quando ocorre uma borda de subida no clock, e a entrada D não tem efeito entre essas bordas.

Um flip-flop D disparado por borda de descida opera da mesma maneira que o flip-flop D disparado por borda de subida, com a diferença de que a saída Q assume o valor da entrada D quando ocorre uma borda de descida em CLK. O símbolo para o flip-flop D disparado por bordas negativas possui um pequeno círculo na entrada CLK.

Referências

TOCCI, R.; WIDMER, N.; MOSS, G. Sistemas Digitais – Princípios e Aplicações. [S.l.]: Pearson Education Limited, 2011.

Outros artigos da série

<< Circuitos aritméticos
Licença Creative Commons Esta obra está licenciada com uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional.
Home » Hardware » Sistemas Digitais » Conhecendo os Diferentes Tipos de Flip Flops: RS, JK, D e T

JUNTE-SE HOJE À COMUNIDADE EMBARCADOS