Circuitos Digitais Rafael S. Sardenberg 10/0019706 Objetivo Experimento 11 - Contador síncrono O objetivo deste experimento é estudar os contadores síncronos e as formas de síntese desses circuitos utilizando diferentes flip-flops. Será implementado um contador utilizando o flip-flop JK. Materiais FPGA Altera Cyclone II Software Quartus II Introdução 1 Contadores síncronos e assíncronos Nos contadores assíncronos, a saída de cada flip-flop é ligada ao clock de outros. Desta forma, a mudança de estado do primeiro gatilha os outros. Já nos circuitos síncronos todos os flip-flops são comandados simultaneamente pelo clock. As entradas são usadas para determinar qual será o novo estado após cada transição. Abaixo é mostrada a estrutura básica de um contador síncrono.
Os contadores assíncronos têm velocidade máxima limitada, considerando que é necessário que as transmissões dos diversos estágios se propaguem pelo circuito. Além disso, estes são mais suscetíveis a problemas de de riscos na decodificação, pois os estados transitórios duram mais. Os contadores síncronos, por outro lado, exigem circuitos combinacionais mais complexos para definir as entradas de cada flip-flop antes de uma transição. Eles são mais usados na prática devido a sua maior confiabilidade. 2 Síntese de contadores síncronos A implementação de um contador síncrono usando flip-flops tipo D: No caso geral, selecionado um flip-flop como unidade de memória, o projeto de um contador é efetuado em 3 etapas: i A partir da sequência de contagem especificada, determinar mapas ou tabela de transição do contador ii Construir as tabelas da verdade ou mapas de Karnaugh das funções que devem acionar as entradas de cada estágio (flip-flop) do contador iii O circuito é implementado a partir destes resultados pelas técnicas convencionais 3 Exemplo de projeto Vamos projetar um contador binário progressivo de módulo 16 com flip-flops JK.
i A partir da sequência de contagem especificada, determinar mapas ou tabela de transição do contador As tabelas e os mapas contêm a mesma informação que a sequência de contagem. Tabela de transição. X é o don t care. Seguem os mapas de karnaugh para Ji e Ki
Procedimentos 1) Projetar um contador síncrono modulo 6 que siga a seguinte sequência, utilizando flip-flops JK e portas NAND. 2) Analisar o circuito e verificar a existência de estados indesejáveis, caso exista corrigir o circuito. Dados Tabela de Transição qt (Y2Y1Y0)t (Y2Y1Y0)t+1 Z2 Z1 Z0 (no instante T) 0 000 100 000 1 100 011 100 2 011 010 011 3 010 101 010 4 101 111 101 5 111 000 111
Depois de feitos os procedimentos para a síntese do circuito foi obtido o circuito abaixo. Gerada a simulação no modo functional do Quartus. Foi-se o circuito acima de forma que a sequência correta. Assim, força-se a presença de um estado transitório. Coloca-se uma entrada no clear do ultimo flip-flop, assim uma onda constantemente em 1. Após isso, colocamos um pulso negativo na hora apropriada para gerarmos um estado transitório, 110. Esta foi a onda que gerou o estado transitório.
Este foi o circuito que utilizamos para forçar o estado indesejado. A única diferença para o anterior é a entrada no Clear. Rodamos a simulação e encontramos a seguinte forma de onda, ou seja, o circuito não consegue sair do estado indesejado.
Para resolver este problema montamos o seguinte circuito com base na dica do professor. Onde nós tinhamos Y1 nós substituimos por Y1 + Y0 (convertido para NAND), e colocamos na entrada K2 corretamente. Por fim rodamos a simulação novamente e obtivemos a seguinte forma de onda, verificando que o circuito foi corrigido e não apresentava os estados transitórios.
Análise de dados Primeiramente nós montamos o circuito utilizando as técnicas de síntese que foi ensinado. Ao rodar a simulação foi visto que o circuito apresentado estava correto, porém era necessário saber como o circuito se comportava nos estados que não foram previstos na montagem do circuito (110 e 001). Tivemos então que forçar a presença de um estado transitório (110) para ver o que aconteceria. Percebemos então que o circuito quando entrava nesse estado não conseguia sair mais. Para resolver este problema utilizamos a dica do professor, colocando na entrada k2,ao invés de Y1, Y1 + Q0. Rodamos novamente a simulação e vimos que o circuito foi corrigido. Conclusão Conseguimos completar o objetivo do experimento, que era aprender como se utilizam as técnicas de síntese de circuito e montar um contador síncrono modulo 6, utilizando o flip-flop JK. Montamos o circuito e depois forçamos a presença de um estado transitório, e por fim corrigimos o circuito.