# Flip-Flops D/T/J-K/S-R

Biblioteca: | Memória
Introdução: | 2.0 Beta 1
Aparência: |

## Comportamento

Cada flip-flop armazena um único bit como dado, o qual será emitido através da saída Q na face leste. Normalmente, o valor poderá ser controlado pelas entradas do lado oeste. Em particuar, o valor irá mudar quando houver variação da entrada de clock, marcada por um triângulo em cada flip-flop, quando essa passar de 0 para 1 (ou o contrário se assim configurado); ao ocorrer, portanto, uma borda de subida, o valor mudará de acordo com a tabela abaixo.

Flip-Flop D | Flip-Flop T | Flip-Flop J-K | Flip-Flop S-R
--- | --- | --- | ---
D | Q
--- | ---
0 | 0
1 | 1
T | Q
--- | ---
0 | Q
1 | Q'
J | K | Q
--- | --- | ---
0 | 0 | Q
0 | 1 | 0
1 | 0 | 1
1 | 1 | Q'
S | R | Q
--- | --- | ---
0 | 0 | Q
0 | 1 | 0
1 | 0 | 1
1 | 1 | ??

Outra maneira de descrever os diferentes comportamentos dos flip-flops está no texto original em inglês.

- Flip-Flop D: Quando houver variação do clock, o valor guardado no flip-flop será o valor na entrada D (Data) naquele instante.

- Flip-Flop T: Quando houver variação do clock, o valor guardado no flip-flop será alternado ou mantido dependendo se o valor na entrada T (Toggle) for 1 ou 0.

- Flip-Flop J-K: Quando houver variação do clock, o valor guardado no flip-flop será alternado se as entradas J e K forem ambas iguais a 1 e será mantido se ambas forem iguais a zero; se forem diferentes, então o valor se tornará 1 se a entrada J (Jump) for 1 e será 0 se a entrada K (Kill) for 1.

- Flip-Flop S-R: Quando houver variação do clock, o valor guardado no flip-flop será mantido se R e S forem ambos iguais a 0; irá mudar para 0, se a entrada R (Reset) for 1, e se tornará 1 se a entrada S (Set) for 1. O comportamento não será especificado se as duas entradas forem forem iguais a 1. (No Logisim, o valor anterior do flip-flop será mantido.)

Por padrão, o clock irá variar na borda de subida — ou seja, quando a entrada de clock variar de 0 para 1. Contudo, o atributo Gatilho permitirá que essa mudança ocorra na borda de descida (quando a entrada de clock variar de 1 para 0), ou em nível baixo (enquanto a entrada de clock permanecer em 0). As opções de disparo dependentes do nível não estão disponíveis para os flip-flops T e J-K, porque esses se comportam de forma imprevisível quando forçados a alternar por tempo indeterminado.

## Pinos

Na face oeste, marcado por um triângulo (entrada, com largura de 1 bit)
  clock: no instante em que o valor dessa entrada variar de 0 para 1 (borda de subida), haverá atualização de acordo com as entradas na face oeste. Enquanto se mantiver em 0 ou 1, essas entradas não terão efeito.
Na face oeste, outros pino(s) rotulados (entrada(s), com largura de 1 bit)
  Essas entradas controlarão como o valor do flip-flop irá mudar durante a subida de borda do clock. O comportamento exato dependerá do tipo de flip-flop; a tabela acima resume esses comportamentos.
Na face leste, marcado por Q, extremo norte (saída, com largura de 1 bit)
  Emitirá o valor corrente armazenado pelo flip-flop.
Na face leste, extremo sul end (saída, com largura de 1 bit)
  Emitirá o complemento do valor corrente armazenado pelo flip-flop.
Na face sul, extremo leste (entrada, com largura de 1 bit)
  reset assíncrono: se for igual a 0 ou indefinido, essa entrada não terá efeito algum. Enquanto se mantiver em 1, o valor do flip-flop ficará fixo em 0. Isso ocorrerá assincronamente - ou seja, sem depender do valor corrente da entrada de clock. Enquanto se mantiver em 1, as outras entradas não terão efeito algum.
Na face sul, posição central (entrada, com largura de 1 bit)
  enable: se for igual a 0, o disparo do clock será ignorado. O valor corrente continuará a aparecer na saída. Os gatilhos do clock estarão habilitados quando essa entrada for 1 ou indefinida.
Na face sul, extremo oeste (entrada, com largura de 1 bit)
  set assíncrono: se for igual a 1 ou indefinido, essa entrada não terá efeito algum. Enquanto se mantiver em 1, o valor do flip-flop ficará fixo em 1. Enquanto se mantiver em 1, as outras entradas não terão efeito algum, exceção feita para a entrada reset, que tem prioridade.

## Atributos

Gatilho
  Serve para configurar como a entrada de clock deverá ser interpretada. O valor borda de subida indicará que a atualização do flip-flop deverá ocorrer no instante em que o clock variar de 0 para 1. O valor borda de descida indicará que a atualização deverá ocorrer no instante em que o clock variar de 1 para 0. O valor nível alto indicará que a atualização deverá ocorrer continuamente enquanto o clock se mantiver em 1. E o valor nível alto indicará que o valor deverá ser atualizado continuamente enquanto a entrada de clock se mantiver em 0. Observar que as duas últimas opções não estão disponíveis para os flip-flops T e J-K.
Rótulo
  O texto para o rótulo associado ao flip-flop.
Fonte do Rótulo
  A fonte com a qual o rótulo será mostrado.

## Comportamento da ferramenta Testar

Ao cliclar sobre um flip-flop usando a ferramenta Testar isso irá alternar o bit nele armazenado, a menos que as entradas assíncronas set/reset tenham fixado o valor corrente do flip-flop.

## Comportamento da ferramenta Texto

Permite que o rótulo associado à porta seja editado.

Voltar à Referência para bibliotecas