# Circuito sequencial

Circuito sequencial é um circuito digital que tem seu comportamento determinado parcial ou totalmente, para além das entradas do momento, pelas entradas que ocorreram no passado. Os mais importantes são os biestáveis, que, por serem constituídos por portas lógicas e terem a capacidade de armazenar um bit de informação, são por vezes vistos como elementos de memória. Os circuitos sequenciais biestáveis dividem-se em síncronos (Flip-flop) e assíncronos (Latch) conforme sua característica de alterar a saída a qualquer instante ou somente quando houver variação no sinal de clock.

## Latch

Latch é um circuito sequencial biestável assíncrono, ou seja, é um circuito constituído por portas lógicas, capaz de armazenar um bit de informação, onde as saídas de certo instante dependem dos valores de entrada do instante mais os valores anteriores de saída, isto é, do seu estado atual, e onde as saídas mudam a qualquer instante de tempo, podendo ter ou não variáveis de controle. Seu nome significa, em português, trinco ou ferrolho.
Quando o latch é controlado por um clock, é chamado de latch chaveado (gated latch).$^{:p.383}$

### Latch NOR SR

O funcionamento do Latch NOR SR é o inverso do Latch NAND SR, e, ao final de seu processamento, resulta na tabela verdade abaixo, quando o Reset e o Set são iguais a 1, tem-se uma combinação limitada, este estado é proibido, pois esta consegue quebrar a equação lógica Q = NOT Q. Nesta situação, quando as entradas SR voltarem a ser zero (S = R = 0) as saídas Q e !Q vão oscilar, de forma inaceitável para o circuito continuar em seu funcionamento normal.
Tabela Verdade do Latch NOR SR :
| S | R | Q$_{próximo}$ | Ação | Q | Q$_{próximo}$ | S | R |
| 0 | 0 | Q | Continua no mesmo estado | 0 | 0 | 0 | x |
| 0 | 1 | 0 | RESET | 0 | 1 | 1 | 0 |
| 1 | 0 | 1 | SET | 1 | 0 | 0 | 1 |
| 1 | 1 | X | Não Permitido | 1 | 1 | X | 0 |

### Latch D

Latch D é um circuito eletrônico que possui duas entradas (D e CLK) e duas saídas (Q e !Q). Sua característica principal de funcionamento é transferir para a saída Q o valor da entrada de dados D sempre que CLK for 1, e manter o mesmo estado na saída se CLK for 0. Originou-se da necessidade de evitar, no latch RS, a ocorrência do estado proibido. É construído a partir deste ao se colocar um inversor entre as entradas R e S, evitando assim que R=1 e S=1 simultaneamente, o que permitia a ocorrência do estado proibido. Desta maneira, R e S passam a ser denominados D (onde D=S).
Tabela verdade do latch D :
| Enable | D | Q$_{próximo}$ |
| 0 | X | Q |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
Como mostra sua tabela verdade, a saída Q segue a entrada D, e por isto o latch D é às vezes chamado latch transparente.

## Flip-flop

O flip-flop serve como memória de um bit, onde as entradas podem ser um ou dois sinais de entrada, um sinal clock, e um sinal de saída. Alguns flip-flops têm um clear que é responsável por limpar a saída atual. Basicamente um Flip-Flop serve para guardar estados 0 ou 1.
Os flip-flops são implementados de forma de circuito integrado, ou seja, as mudanças que ocorrem em alguns “componentes” do circuito, interferem nos resultados de entrada ou saída. Ou seja, a pulsação ou mudança no sinal do clock faz com que aconteça uma ação no flip-flop, baseado nos valores dos sinais de entrada e em sua equação carecterística.
Nos latches, o estado se altera durante o clock ativo. Nos flip-flops, o estado é alterado apenas durante uma das bordas do clock $^{:p.389}$.

### Flip-flop SR

O flip-flop SR (ou RS) possui duas entradas, S (set) e R (reset), além do clock. Sua saída é 1 quando S = 1 e R = 0 (ação set), e 0 quando S = 0 e R = 1 (ação reset). Quando ambas entradas forem 0, a saída é a saída anterior, isto é, o estado atual. Quando ambos S e R são 1, o flip-flop tem comportamento inesperado, chamado de estado proibido.

### Flip-flop JK

Flip-flop JK é um flip-flop que pode memorizar um único bit de informação e onde o próximo estado de saída é caracterizado como uma função das duas entradas presentes e do estado presente. São largamente utilizados em contadores e nada mais são que flip-flops SR com realimentação. Quando se aplica uma borda de subida na entrada J, sua saída Q vai a nível lógico 1 (se já não estiver nele) e, ao se aplicar uma borda de descida na entrada K, sua saída Q vai a nível 0. É um aprimoramento do flip-flop S-R, pois, enquanto as combinações "J = 1, K = 0" e "J = 0, K = 1" são respectivamente set e reset, "J = K = 1" não leva a um estado proibido, mas inverte o flip-flop, tornando-se um flip-flop T.
Tabela verdade do Flip-flop JK :
| J | K | Q$_{próximo}$ | Ação |
| 0 | 0 | Q | Mantém o estado |
| 0 | 1 | 0 | RESET |
| 1 | 0 | 1 | SET |
| 1 | 1 | NOT(Q) | Inverte o estado |

### Flip-flop D

Flip-flop tipo D (data) é um circuito síncrono de memória com uma entrada (D), um sinal de clock e saídas Q e QQ, sendo esta última responsável por realimentar o circuito com o valor memorizado. Possui uma entrada que se liga diretamente à saída quando há alteração no clock. Quando esta alteração ocorre, o flip-flop D assume o valor 1 se D = 1 ou 0 se D = 0, independente do valor atual. Pode-se interpretar este flip-flop como uma primitiva linha de atraso ou hold de ordem zero, pois a informação é ligada na saída um ciclo após seu recebimento na entrada. É o mais econômico e eficiente flip-flop em número de transistores e área de silício.