Sequenciadores
A utilização de elementos de memória como as ROM’s permitem realizar a implementção de
circuitos combinatórios:
Endereços
=
IN’S
ROM
Dados
=
OUT’S
Se num circuito sequêncial as saídas são a descodificação directa dos estados (admitindo sempre
máquina de Moore), então, a utilização de um contador binário e uma ROM permite realizar um circuito
sequêncial muito simples a que damos o nome de sequenciador. Neste circuito, as saídas são
programadas na ROM com os valores pretendidos nos endereços correspondentes aos estados da
máquina, ou seja, os valores da contagem do contador.
Contador
ROM
Saídas
Clk
Os sequenciadores têm várias limitações:
• Os estados evoluem segundo a contagem
• Não permite realizar decisões a partir de variáveis de entrada
Um exemplo típico para os sequenciadores é o efeito “Kit” - bit passeante. A ROM sería ligada a
um contador de 4 bits (16 estados) com os seguintes dados a partir da posição/endereço 0H: 01H, 02H,
04H, 08H, 10H, 20H, 40H, 80H, 80H, 40H, 20H, 10H, 08H, 04H, 02H, 01H.
Controladores
Com contador
As limitações dos sequenciadores não lhes permitem implementar máquinas de estado com
decisões. Para resolver essa limitação introduziu-se as seguintes alterações ao circuito dos
seguenciadores:
• Usa-se as entradas de “Paralell Load” e “Load” do contador que se ligam aos bits de dados
das saídas da ROM. Neste caso ficamos com um menor número de bits para as saídas da máquina, mas
permitimo-nos a realizar saltos.
• Utiliza-se um multiplexor com as entradas ligadas às variáveis de teste e as entradas de
selecção ligadas a mais bits da ROM.
Contador
ROM
Saídas
Clk
Estados seguintes
“Load”
Mux
Selecção
Entradas
“1”
Funcionamento:
• As saídas funcionam como no sequenciador
• A entrada “Load” é carregado com o valor “1” (inactivo) através da linha de selecção que
vem da ROM, se no estado presente não existir teste - o estado seguinte vai ser a sequencia da
contagem. Se no estado presente existir um teste a uma variável, então a linha de selecção é activada de
modo a que o MUX carrega a entrada de “Load” com o valor da variável. No cado de “Load” ficar
activo, então o estado seguinte será o especificado nas linhas da ROM respectivas.
Com Latch
Os Controladores com contadores possuem a seguinte limitação:
• A codificação de estados fica limitada pela sequência de contagem do contador, i. é., no
caso sem teste, o estado seguinte só pode ser “estado presente + 1” (caso seja um contador “UP”).
• As entradas das variáveis de teste no MUX poderão em certos casos de ser nas suas duas
formas: verdadeira e falsa (directa e negada).
Estas limitações obrigam a manipulações no fluxograma que podem não ter solução simples: é
necessário incluir estados redundantes, trocar codificações previamente realizadas, etc.
Latch
ROM
Saídas
Clk
Mux 2:1
ES
ES0 e ES1
Estados seguintes
Selecção
Mux
N bits
1
Entradas Sincronizadas
Os controladores com Latch vêm resolver estes problemas à custa da inclusão de mais um MUX e
utilização de mais bits de saída da ROM.
O formato dos dados na ROM será o seguinte:
Saídas da máquina
Estado Seguinte a “0”
Estado Seguinte a “1”
Teste (N bits)
Funcionamento:
• No caso de não existir teste, ES0 = ES1, pois seja qual for a saída do MUX das entradas,
será sempre carregado ES0 ou ES1 que são iguais.
• No caso de existir teste, o campo “Teste” da ROM selecciona a variável a testar.
Consoante esta tenha o valor “1” ou “0” assim será seleccionado ES1 ou ES0.
Algumas características destes circuitos
• As entradas terão de ser sincronizadas como em qualquer outro circuito sequencial.
• Só pode ser realizado o teste a apenas uma variável em cada estado, pelo que o fluxograma
terá de ser modificado para levar esse pormenor em conta. Essa variável, no entanto, poderá ser uma
função combinatória de um conjunto de outras variáveis.
• Para um circuito típico implementado com integrados do mercado correntes:
• até 16 estados
• até 8 entradas para teste
• até 5 saídas de controle
• Integrados: 2xROM 8 bits, 2 latch (um deles para sincronização das entradas), um
MUX 8:1 para as entradas (74xx157) e um MUX 4x2:1 (74xx151) para a selecção do
estado seguinte = 6 integrados.
• Existem dispositivos programáveis com arquitecturas semelhantes (incluindo EPROM)
que permitem implementar circuitos sequenciais apenas num integrado.
• É possível usar uma simpes PAL (Dispositivo Lógico Programável) para implementar um
circuito com esta arquitectura com algumas limitações.
• É possível escrever um programa de computador que faça a programação automática em
PAL.
Download

Sequenciadores