Projetos de Controladores One-Hot(Um Flip-Flop por Estado)
Outro método de projeto de lógica de controle é a atribuição one-hot que produz um circuito sequêncial com um flip-flop por estado. Somente um flip-flop está ALTO(1) em qualquer instante, e todos os outros estão reset(0), BAIXO. Cada flip-flop representa um estado que está presente somente quando o bit de controle é transferido para o flip-flop.
Vantagens
a. Lógica pode ser projetada diretamente do diagrama de estado
b.
Não precisa de tabela de estados ou de transição se flip-flops tipo D são utilizados
c. Simplicidade operacional
d. Menor quantidade
de portas lógicas
e. Não precisa de decodificador
f. Maior velocidade do controlador pois o clock pode ser mais rápido
g. Facilidade de projeto com FPGAs devido grande quantidade de flip-flops
Desvantagens
a. Usa o máximo número de flip-flops
para determinado circuito sequêncial
b. Maioria dos estados são estados inválidos
c. Para circuitos com muitos estados e entradas é inviável
O controlador desenvolvido anteriormente apresentava nas saídas do decodificador formas-de-onda dos sinais de controle semelhantes às encontradas nos registradores de deslocamento.É claro que se pode aproveitar essa semelhança para projetar o controlador da máquina de somar a partir de registradores de deslocamento.
Então, o controlador é constituído de um contador em anel de registrador de deslocamentos de seis estados, um flip-flop para cada estado, com o primeiro flip-flop ajustado e os outros reajustados.Em cada ciclo do relógio a condição SET (Q=1) se deslocará ao longo do registrador, e em cada ciclo do relógio, fica disponível na saída dos flip-flops as formas-de-onda dos sinais de controle.
Um problema adicional no controlador de registrador de deslocamentos é garantir que o primeiro flip-flop estará ajustado na partida e que, após o primeiro ciclo de relógio, seja reajustado.O circuito da Fig.1 mostra o circuito de partida que atende esses requisitos.
![]() |
As formas-de-onda do circuito de partida(Fig.2) mostram que o fechamento da chave (X=1) produz um nível lógico 1 na partida S em apenas um ciclo de relógio, independente do tempo no qual a chave fica fechada (X=1).
![]() |
O circuito completo do controlador de registrador de deslocamentos está mostrado na figura abaixo.Este circuito emprega uma quantidade maior de flip-flops e apresenta uma lógica mais simples que permite associar cada flip-flop a um estado.
![]() |
Chave Aberta: X=0 e S=0
Após alguns ciclos de relógio: Q0=Q1=Q2=Q3=Q4=Q5=0 e ZA=Ra=W=R=WA=Rb=Wa=RA=0
Chave Fechada: X=1 e S=1
Depois de um período de relógio S=1 será propagado
Vantagens: projeto mais simples;
correspondência entre um flip-flop e o estado
Desvantagens: maior número de flip-flops;
mais estados não utilizados
Entradas de Realimentação são os resultados internos utilizados como entradas.
Entradas Condicionais ou Modificadores são as entradas externas ao sistema.
No controlador acima pode-se introduzir uma entrada externa para decidir em qual registrador o resultado será armazenado, de acordo com o valor lógico dessa entrada.
![]() |
A entrada FSR(Seletor de Registro Final) externa determina o registrador de armazenamento final do resultado.
FSR=1 : Wα=1 no último pulso de relógio então o resultado armazenado em Rα
FSR=0 : Wβ=1 no último pulso de relógio então resultado armazenado em Rβ
Um controlador do registrador de deslocamento pode usar uma entrada f de realimentação obtida durante um intervalo de relógio para controlar a microoperação que será realizada durante o próximo intervalo de relógio.A figura abaixo mostra a entrada de realimentação f no controlador que seleciona a microoperação no (k+1)-ésimo pulso de relógio.
![]() |
Pode haver mais de dois caminhos possíveis para o controlador e os caminhos alternativos terem diferentes comprimentos, com a escolha sendo determinada por variáveis de realimentação.
![]() |
Uma e somente uma das linhas C0, C1, C2, e C3 está em nível lógico 1 e somente o caminho de seqüência correspondente está selecionado e as microoperações serão executadas.
Salto de Estados
![]() |
Se f=1: seqüência avança de k-1, k, k+1 e k+2
Se f=0 : seqüência avança de k-1, k+2(salta os estados k e k+1)
Inibição de Estados
![]() |
Se f=1 : estados k e k+1 são executados
Se f=0 : estados k e k+1 são inibidos ou ficam inativos; as microoperações não são executadas
O número de microoperações ou estados saltados é inteiramente ajustável.
Repetição de Estados
![]() |
Se f=1: seqüência normal do controlador
Se f=0 : a seqüência repete os estados k, k+1 e k+2 enquanto f=0 e retornará para a seqüência normal quando f=1.
Para realizar a subtração de dois números nos registradores é bastante adicionar o negativo de um número ao outro.Caso o número negativo seja representado por complemento-de-dois o controlador precisa ser modificado para realizar duas microoperações adicionais: complementar e incrementar.Estas microoperações exigem dois estados adicionais.Agora, o controlador terá nove estados.
Caso seja necessário um controlador para executar quaisquer das quatro operações possíveis entre os conteúdos dos registradores, então um controlador que realizasse a operação desejada em resposta a uma instrução dada ao controlador é mais prático.Um controlador com essas características está mostrado na figura abaixo.
|
A Instrução C0C1 determina a microoperação a ser realizada pelo controlador e o Registrador de Instrução(IR) armazena a instrução a ser executada.
![]() |
Código 00 : desabilita as portas AND (C=I=0), então realiza a soma
Código 01 : desabilita as portas AND inferiores e habilita as superiores Código 10 : desabilita as portas AND superiores e habilita as inferiores Código 11 : habilita todas as portas AND |
![]() |
Questões para Revisão Resolva on-line o teste sobre controladores registradores de deslocamento. |
Atualizada em