segunda-feira, 9 de maio de 2016

Contador Sincrono


Contadores síncronos são circuitos sequenciais capazes de executar contagens binárias de forma aleatória, pois possuem um circuito combinacional externo, que utiliza como entradas as saídas Q e Q’ de cada flip-flop e suas saídas são conectadas às entradas dos flip-flops utilizados. A figura 5.1 apresenta o diagrama geral de um contador síncrono utilizando flip-flops JK para contagem.

As características principais dos contadores síncronos são:
 (1) Os FF POSSUEM as entradas clock em comum; 
(2) Possuem circuito combinacional externo, que utiliza as equações de transição dos flip-flops utilizados para ser implementado;
 (3) Possuem saída binária aleatória; e
 (4) O bit mais significativo da contagem (MSB) pode ser qualquer um dos flip-flops, pois quem determina essa ordem é o circuito combinacional externo. No caso da figura 5.1 o bit mais significativo pode ser tanto o flip-flop ‘1’ quanto o flip-flop ‘n’. 
Antes de estudarmos o projeto de contadores síncronos, devemos analisar as tabelas de transição dos flip-flops. 

 Tabelas de transição dos flip-flops 

As tabelas de transição dos flip-flops nada mais são que outra forma de visualização das tabelas verdades desses flip-flops. Para a montagem dessas tabelas, devemos analisar com foco nos valores de transições das saídas e nos valores de entrada que se deve ter em suas entradas para provocar essa transição, desde que um pulso de clock ocorra em suas entradas.
 A saída do flip-flop em seu estado atual é denominada Qn , ou simplesmente Q, e a saída em seu estado futuro, ou seja, após a transição, é denominada Qn+1 ou + Q. 

Tabela de transição do flip-flop JK 

 Para o flip-flop JK temos:  
Logo, resumindo essas proposições, temos a seguinte tabela verdade de transição:
 Tabela de transição do flip-flop T 

 Para o flip-flop T temos: 
  
Logo, resumindo essas proposições, temos a seguinte tabela verdade de transição:


 Tabela de transição do flip-flop D 

 Para o flip-flop D temos: 
Logo, resumindo essas proposições, temos a seguinte tabela verdade de transição:

Projeto de contador síncrono 

 Antes de projetarmos um contador síncrono necessitamos entender algumas partes integrantes deste projeto.

 Diagramas de Transição

 Para projetar um contador síncrono, deve-se primeiro entender as especificações de projeto. Um contador síncrono tem sua contagem especificada através de um diagrama de transição, apresentado na figura 5.2, que indica qual é o estado futuro a ser atingido pelo contador quando é aplicado um pulso de clock. 

A indicação (1) mostra que o contador deve iniciar sua contagem pelo estado indicado por (2). Cada circunferência representa um estado da contagem e pode indicar um valor decimal, binário, hexadecimal ou um nome – exemplo ‘state1’ que representa algum valor tabelado. A seta com a indicação (3) representa que existe uma transição do estado ‘state1’ para ‘state2’, assim como para os outros estados.

Tabela de Estados Futuros e de Entradas dos Flip-flops   

Considere o contador síncrono representado pelo diagrama de estados da figura 5.3, a tabela de estados futuros desse contador nada mais é que uma representação tabelada dos seus estados. Ela será extremamente importante para que possamos gerar a tabela de entrada dos flip-flops adiante.

A tabela de estados futuros de um diagrama de estados é gerada colocando em uma coluna o estado atual que o contador se encontra e em outra coluna o seu próximo estado. No caso da figura 5.3, sua tabela de estados futuros fica como demonstrado a seguir, considerando três flip-flops A, B e C, sendo A o bit mais significativo.
 A partir dessa tabela, podemos gerar a tabela de entrada dos flip-flops, que são as tabelas que geram as equações lógicas do circuito combinacional, mostrado na figura 5.1, necessárias para a implementação do contador.
Para gerar essa tabela, necessitamos das tabelas de transição do tipo de flip-flop utilizado, descritas no item 5.2. Considerando que os flip-flops utilizados para implementação desse contador sejam flip-flops JK, para gerar a tabela de entrada dos flip-flops, basta observarmos quais são as transições que ocorrem dos estados Qx para o estado Qx + de cada linha e preenchermos as entradas Jx e Kx de cada flip-flop de acordo com a tabela de transição do flip-flop JK. A tabela de entrada dos flip-flops do contador descrito na figura 5.3 fica da seguinte forma:
Gerada a tabela de entradas dos flip-flops, necessitamos gerar as funções lógicas do circuito combinacional responsável pela contagem, e para isso, como descrito no diagrama de blocos da figura 5.1, utilizaremos QA, QB e QC como entradas do circuito combinacional e JA, KA, JB, KB, JC e KC como saídas, ou seja, basta implementar uma função lógica para cada um dos J’s e K’s utilizados, fazendo como entradas dessas funções as saídas Q dos flip-flops. Como ferramenta para gerar essas funções, utilizaremos mapas de Veitch-Karnaugh, revisados no capítulo 1, e simplificando as funções lógicas descritas, obteremos as seguintes equações: 
Determinadas as equações lógicas das entradas, para finalizar o projeto, basta implementar o circuito lógico, retirando como saídas do contador as saídas Q de cada flip-flop. O circuito do exemplo utilizado é mostrado na figura 5.4.
Pergunta: Na figura 5.3 possuímos um indicativo de que o contador deve iniciar sua contagem no estado ‘000’. O que podemos fazer nesse circuito para garantirmos que sempre que o contador seja ligado ele inicie sua contagem em ‘000’ se suas entradas assíncronas forem ativadas em nível baixo? 
Sugestão: Implemente o mesmo contador do exemplo anterior utilizando flip-flops tipo T e tipo D como elementos de memória.

Implementado o circuito lógico, finalizamos o projeto de um contador síncrono. Resumindo as etapas de projeto temos: 
(1) Determinação do diagrama de estados do contador a partir das especificações de projeto; 
(2) Montagem da tabela de estados futuros; 
(3) Montagem da tabela de entrada dos flip-flops;
 (4) Implementação das funções lógicas de entrada dos flip-flops; e
 (5) Implementação do circuito lógico. 

 Contador Síncrono Crescente / Decrescente 

 O projeto de um contador síncrono crescente / decrescente necessita da inserção de uma variável de controle. No nosso caso, vamos chamar essa variável de controle de variável ‘Z’, que será inserida no circuito combinacional da figura 5.1 para executar uma etapa de controle.  
Tomando como exemplo um contador síncrono crescente / decrescente de 2 bits, devemos construir um diagrama de estados que contenha as duas possíveis sequências de contagem. Definindo como contagem crescente para Z = 0 e decrescente para Z = 1 podemos obter os dois diagramas da figura 5.6 ou ainda obter um único diagrama, figura 5.7, que contenha as duas sequências obtidas de acordo com o valor de ‘Z’. 
A montagem da tabela de estados futuros e de entrada dos flip-flops, considerando flip-flops JK, e inserindo a variável ‘Z’, fica da seguinte forma:  
A montagem da tabela de estados futuros e de entrada dos flip-flops, considerando flip-flops JK, e inserindo a variável ‘Z’, fica da seguinte forma:
Implementando as equações (7) à (10), obtemos o circuito descrito na figura 5.8.  
Pergunta: Na figura 5.7 possuímos um indicativo de que o contador deve iniciar sua contagem no estado ‘00’. O que podemos fazer nesse circuito para garantirmos que sempre que o contador seja ligado ele inicie sua contagem em ‘00’ se suas entradas assíncronas forem ativadas com nível alto? 
Sugestão: Implemente o mesmo contador do exemplo anterior utilizando flip-flops tipo T e tipo D como elementos de memória. 
A partir desse tipo de projeto de contador síncrono, podemos projetar contadores síncronos de sequências aleatórias controlados por variáveis externas. A figura 5.9 mostra um exemplo de diagrama de estados de um contador síncrono aleatório controlado pela variável externa ‘Z’. Faça a tabela de estados futuros desse contador. Os estados estão codificados da seguinte forma:

  

Temporização e metaestabilidade

Um flip-flop em combinação com um Schmitt Trigger pode ser utilizado para a implementação de um arbitro em circuitos assíncronos.
Os flip-flop com clock estão predispotos a um problema chamado de metaestabilidade, que ocorre quando um dado ou uma entrada de controle está mudando no momento do pulso de clock. O resultado é que a saída pode se comportar imprevisivelmente, levando muito tempo mais que o seu normal para se estabilizar no seu estado correto, ou mesmo oscilando uma série de vezes antes de se estabilizar.Gerando por exemplo a queima de um equipamento dentro de um sistema de um computador, isto pode levar a uma corrupção dos dados ou travamento.
Em muitos casos, a metaestabilidade nos flip-flops pode ser evitada garantindo-se que as entradas de dados e controle sejam mantidas constantes para períodos especificados antes e após o pulso de clock, este períodos são chamados de tempo de setup (tsu) e tempo de hold (th) respectivamente. Estes tempos são especificados na documentação (data sheet) do dispositivos, e são tipicamente entre alguns nanosegundos e algumas centenas de picosegundos nos dispositivos modernos.
Infelizmente, não é sempre possível atingir os critérios de setup e hold, pois o flip-flop pode estar conectado a um sinal em tempo real que pode mudar a qualquer momento, fora do controle do projetista. Neste caso, o melhor que se pode fazer e reduzir a probabilidade de erro a um certo nível, dependendo da fidelidade requerida do circuito. Uma técnica para reduzir a metaestabilidade é conectar-se dois ou mais flip-flops em uma corrente, de modo que a saída de um alimenta a entrada de dados do outro, e todos os dispositivos compartilham um clock comum. Com este método, a probabilidade de um evento metaestável pode ser reduzida a um valor desprezível, mas nunca a zero.
Existem flip-flop com metaestabilidade reduzida, os quais trabalham reduzindo os tempos de setup e hold o máximo possível, porém mesmo estes não podem eliminar o problema completamente. Isto ocorre porque a metaestabilidade é mais que uma consequência do projeto do circuito. Quando as transições no clock e nos dados estão em um intervalo de tempo próximo, o flip-flop é forçado a escolher qual dos eventos ocorrerá primeiro. Entretanto devido às altas velocidades de processamento, existe sempre a possibilidade de que os eventos da entrada estejam tão próximos que ele não possa detectar qual ocorreu primeiro. Desta forma é logicamente impossível construir um flip-flop totalmente livre de metaestabilidade.
Outro valor importante para um flip-flop é o atraso de clock-a-saída (clock-to-output delay, o símbolo comum é tCO) ou atraso de propagação (tP), que é o tempo que o flip-flop leva para mudar a sua saída após o sinal de clock. O tempo de uma transição de alto-para-baixo (high-to-low transition, tPHL) é algumas vezes diferente do tempo de uma transição de baixo-para-alto (low-to-high transition, tPLH).
Quando se conectam flip-flop em uma corrente, é importante se assegurar que o tCO do primeiro flip-flop é maior que o tempo de hold (hold time, tH) do segundo flip-flop, caso contrário o segundo flip-flop não irá receber os dados confiavelmente. A relação entre tCO e tH é normalmente garantida se ambos os flip-flops são do mesmo tipo.

Circuito integradosdeFlip-Flops

Podem ser encontrados circuitos integrados (CIs) com um ou dois flip-flops na mesma pastilha. Como exemplo, temos o 7473, internamente com dois Flip-Flops J-K Master-Slave, na série 7400 (TTL).


Fonte:
http://www.feg.unesp.br/~jmarcelo/restrito/arquivos_downloads/apostilas/sd2/cap5.pdf
https://pt.wikipedia.org/wiki/Flip-flop
https://www.youtube.com/watch?v=eJXLGmsN1TY
 Mano, M. Morris; Kime, Charles R. (2004). Logic and Computer Design Fundamentals, 3rd Edition (Upper Saddle River, NJ, USA: Pearson Education International). pp. pg283. ISBN 0-13-1911651.

Trabalho de EDI- ETec Lauro Gomes
Professor: Marcos
  
  







  

2 comentários:

  1. Sultan Casino – Shootercasino
    Sultan Casino. Sultan Casino. Sultan Casino. All rights reserved. All rights reserved. 제왕카지노 먹튀 All rights reserved. No persons under the ‎Contact Us · ‎Promotions · ‎Casino Games

    ResponderExcluir
  2. Quero saber como constuir o mapa disto.

    ResponderExcluir