Em um circuito combinacional, a saida depende apenas de uma combinação das entradas, enquanto que em um circuito seqüencial, a saida depende, além de uma combinação das entradas, de uma combinação das variáveis de estado do sistema, ou seja, de variáveis que identifiquem o estado em que o sistema se encontrava
Bem, isso significa que, para obter-se o próximo estado do sistema (circuito seqüencial), é necessário lembrar-se do estado atual (em outras palavras, o caminho que me leva à sala depende do lugar na casa onde estou). Significa que o sistema necessita possuir memorizar o estado atual para alcançar o estado seguinte. A lição disso é que o circuito seqüencial necessita de elementos de memória.
Latch. A forma mais básica de implementar-se um circuito lógico de memória é conhecida como latch, que significa, em português, trinco, ferrolho. Sua arquitetura é composta de duas portas lógicas inversoras, possuindo duas saidas: a variável lógica Q e o seu complemento lógico,
Note que, se você impõe nível lógico alto (1) em Q, seu complemento vai para o nível lógico baixo (0). Esse estado (Q = 0) permanecerá até que você imponha nível lógico baixo a Q. É ou não é um dispositivo de memória? Evidentemente, o latch só consegue armazenar um único bit. Se você precisar armazenar palavra de mais de um bit, você precisará de um latch para cada bit (por exemplo, uma palavra de 32 bits precisa de um dispositivo de memória de 32 latch´s para ser armazenada). Um latch, portanto, é um elemento básico de memória que opera sob níveis de sinal (isto é, ativo quando o sinal é 1 ou 0.
Latch-SR. Pode-se, também, construir um latch com outras portas lógicas (OR e AND), e, de quebra, ainda pode-se disponibilizar entradas para o latch. Um latch construido dessa forma é chamado LATCH-SR. Veja o latch-SR construido com porta NAND,
Latch-SR com portas NAND | Tabela Característica |
| S | R | Qt+1 | Próximo estado | 0 | 0 | ? | Estado não usado | 0 | 1 | 1 | Estado SET | 1 | 0 | 0 | Estado RESET | 1 | 1 | Qt | Mantém o estado atual | |
Note que este Latch-SR possui duas portas NAND entrelaçadas com duas entradas, S e R. Também possui duas saidas, uma denominada Q, e a outra sendo o complemento de Q. Independentemente dos valores lógicos atribuidos a S e a R, estas variáveis são referências aos valores da variável de estado do Latch-SR. Em primeiro lugar, especifica-se o estado do Latch-SR através do par Q e seu complemento,
É claro que a escolha adequada das entradas poderá produzir um dos dois estados, de acordo com a tabela característica vista acima. Note que o estado SET é alcançado pela combinação S = 0 e R = 1. O estado RESET por S = 1 e R = 0. Já na combinação S = 1 e R = 1, o estado atual é mantido. Finalmente, a combinação S = 0 e R = 0, não é utilizada pelo simples fato de produzir um estado indefinido, daí o uso do símbolo ?.
A outra implementação de latch com duas entradas faz uso de portas NOR,
Latch-SR com portas NOR | Tabela Característica |
| S | R | Qt+1 | Próximo estado | 0 | 0 | Qt | Mantém o estado atual | 0 | 1 | 1 | Estado SET | 1 | 0 | 0 | Estado RESET | 1 | 1 | ? | Estado não usado | |
Note que a diferença entre as duas implementações está na combinação SR que leva ao estado indefinido. É claro que o aparecimento de estado indefinido representa uma desvantagem dos Latches-SR. Um avanço possível na direçao da eliminação desse problema é a inclusão de um terceira entrada de controle, C. Seu diagrama lógico com a respectiva tabela característica são dados por,
Latch-SR com entrada de controle | Tabela Característica |
| C | S | R | Próximo estado | 0 | X | X | Mantém o estado atual | 1 | 0 | 0 | Mantém o estado atual | 1 | 0 | 1 | 0 | 1 | 1 | 0 | 1 | 1 | 1 | 1 | Estado não usado | |
Esta entrada de controle "habilita" o latch; é usada para restringir entradas que possam afetar o estado do latch.
Latch tipo D. Você pode notar que o latch-SR possui uma séria desvantagem: o estado indefinido que não pode ser usado. Mas tem uma vantagem: com o entrada de controle, não há necessidade de fazer-se uma combinação de S e R para manter-se o atual estado. Porisso, necessita-se apenas da entrada de controle, C, e de mais uma única entrada, a qual chamaremos de D. A esta nova configuração daremos o nome de latch tipo D,
Latch tipo D | Tabela Característica |
| D | D | Próximo estado | 0 | X | Mantém o estado atual | 1 | 0 | 0 | 1 | 1 | 1 | |
Observe que a entrada D substitui, com vantagem, as duas anteriores, S e R. Primeiro porque você mantém o estado atual pela desabilitação do latch via entrada de controle, ou seja, C = 0; e depois, pela eliminação do estado indefinido, pelo fato de voce não mais permitir a combinação S = R = 1, pela inclusão de um inversor.
Mas há, também, uma desvantagem. É que, enquanto a entrada de controle é mantida alta, e se houver uma flutuação no sinal D, a saida Q, do Latch D, também flutuará, eventualmente mudando de estado. Significa que o estado do latch D não é estável, o que será resolvido