Você está na página 1de 9

4/9/2014 Contador de dois bits - Portal - FPGA para Todos

http://fpgaparatodos.com.br/exemplos-de-aplicacao/exemplos-didaticos/16-contador-de-dois-bits.html 1/9
Contador de dois bits
Contador de dois bits
Este artigo mostra passo a passo a construo de um contador sncrono de dois bits utilizando flip-flops; o projeto trata-se
de um exemplo de entrada em modo esquemtico com o uso de componentes primitivos do Quartus II, e ser convertido
para VHDL e simulado no ModelSim-Altera.
O circuito funciona seguindo uma sequncia definida, que ser 00 01 10 11 e retornar a zero, reiniciando a
contagem; este utiliza de dois bits como sada, que alternam de acordo com os pulsos na entrada de clock. Alm disso, o
projeto poder ser implementado fisicamente com o uso do kit de CPLD e matriz de LEDs.
Lgica de funcionamento
Para este projeto, assume-se o uso de flip-flops do tipo JK, apresentado na figura abaixo:

Categoria: EXEMPLOS COM CPLD Publicado em TERA, 13 DEZEMBRO 2011 10:25 Escrito por CAROLINA
WESTPHAL Acessos: 2527
HOME EXEMPLOS DE APLICAO KITS REPOSITRIO
CPLD, FPGA, Tutoriais e Softwares Projetos e Documentos
4/9/2014 Contador de dois bits - Portal - FPGA para Todos
http://fpgaparatodos.com.br/exemplos-de-aplicacao/exemplos-didaticos/16-contador-de-dois-bits.html 2/9
Figura 1 - Flip-flop tipo JK;
Os flip-flops geralmente so utilizados como registradores, memrias, entre outras aplicaes. Para entender melhor como
este ser utilizado, necessrio analisar a tabela verdade do mesmo:
Tabela 1 - Tabela verdade do flip-flop tipo JK;
A partir da sequncia desejada de funcionamento (citada no incio do artigo), projeta-se o circuito lgico, que inclue a
realimentao da sada do contador para a entrada de controle. Assim, como mostra a figura 1, a sada Q do flip-flop
poder realimentar o circuito pelas entradas J e K atravs de uma lgica previamente definida. O seguinte diagrama de
blocos resume o circuito:
4/9/2014 Contador de dois bits - Portal - FPGA para Todos
http://fpgaparatodos.com.br/exemplos-de-aplicacao/exemplos-didaticos/16-contador-de-dois-bits.html 3/9
Figura 2 - Diagrama de blocos;
O flip-flop JK1 representa a dezena da contagem, enquando o flip-flop JK0 representa a unidade da mesma. Assim, quando
em 01, JK1 deve estar em zero, e JK0 deve estar em um, e assim sucessivamente durante os possveis estados. Atravs
da tabela 1, projeta-se a lgica de realimentao de acordo com a sada desejada.
Tabela 2 - Tabela verdade do circuito
4/9/2014 Contador de dois bits - Portal - FPGA para Todos
http://fpgaparatodos.com.br/exemplos-de-aplicacao/exemplos-didaticos/16-contador-de-dois-bits.html 4/9
Figura 3 - Diagramas de Veitch-Karnaugh;
Para a tabela 2, o valor X corresponde a um estado irrelevante; em outras palavras, ele pode ser tanto 0 quanto 1, pois seu
valor no ir interferir na sada. A partir de diagramas de Veitch-Karnaugh mostrados na figura 3, obtm-se as expresses
seguintes:
J1 = K1 = Q0; e J0 = K0 = 1
Constata-se que J = K para todos os flip-flops, e que portanto podem-se usar FFs (flip-flops) do tipo T. Flip-flops desde tipo
possui as entradas J e K curto circuitadas; assim, as opes 01 e 10 para JK no so possveis, e a tabela verdade deste
tipo de FF resume-se inverter o estado anterior ou mant-lo como era antes. A figura seguinte mostra o diagrama
esquemtico do projeto no Quartus II.
Figura 4 - Diagrama esquemtico do circuito;
Para o projeto, flip-flops tipo T foram utilizados para "compactar" o esquemtico, que ser convertido para VHDL e
simulado. O circuito ser constituido de dois flip-flops, uma entrada de clock, um boto de clear (ressaltando que os pinos
reset e clear so ativos em nvel lgico baixo) e duas sadas, sendo elas o bit mais significativo e menos significativo.
Para a prxima etapa (simulao), necessrio converter o projeto em modo esquemtico para VHDL, pois a ferramenta
de simulao trabalha apenas com este formato. Para realizar a converso, leia o tutorial de simulao interativa. Aps a
converso, adicione o arquivo no topo de hierarquia, e realize a compilao. Para verificar erros, realize a anlise e sntese;
neste caso, nenhum aviso relevante foi mostrado.
Simulao
4/9/2014 Contador de dois bits - Portal - FPGA para Todos
http://fpgaparatodos.com.br/exemplos-de-aplicacao/exemplos-didaticos/16-contador-de-dois-bits.html 5/9
Figura 5 - Forma de onda do contador;
Aps a edio e compilao do projeto, transferimos o mesmo para a ferramenta de simulao ModelSim-Altera (para um
tutorial sobre esta, clique aqui). possvel, atravs dela, observar a sequncia que o contador realiza.
Um problema encontrado durante a simulao que a contagem no pode ser iniciada sem um estado anterior; em outras
palavras, um flip-flop de um contador sncrono depende do estado anterior para continuar a contagem, e um boto de clear
resolve o problema (pois fora zero nas sadas, e assim, h um estado anterior).
importante lembrar tambm que, nesta simulao, fora-se o clock atravs da janela "wave". Realiza-se o mesmo
processo da simulao interativa, "forando" um valor; contudo, ao invs de selecionarmos "Force...", utilizamos a opo
"Clock". Uma janela ir se abrir, como mostra a figura 6.
Figura 6 - Janela de clock do ModelSim-Altera;
Esta opo dispensa o uso do force, tornando mais precisa a oscilao. Observe na figura 6 que a janela de opes
4/9/2014 Contador de dois bits - Portal - FPGA para Todos
http://fpgaparatodos.com.br/exemplos-de-aplicacao/exemplos-didaticos/16-contador-de-dois-bits.html 6/9
permite escolher a razo cclica (ou ciclo de trabalho) do clock; esta opo corresponde porcentagem que o nvel lgico
alto ocupa em relao ao perodo total. Se a opo "duty" est com o valor definido em 50, significa que o perodo total est
balanceado igualmente para os dois nveis lgicos (em outras palavras, se o perodo do clock de um segundo, o nvel
lgico do clock estar em baixo durante meio segundo, e alto tambm durante meio segundo). No entanto, caso o valor da
opo "duty" seja aumentado, o tempo que o nvel lgico alto ocupa no perodo total ser maior que o tempo do nvel lgico
baixo. Observe na figura a seguir:
Figura 7 - Exemplos de "duty cicle" no ModelSim-Altera;
A opo "first edge" permite a escolha do tipo de borda inicial. Se escolhermos a opo "rising", o clock inicia em borda de
subida, e "falling" para borda de descida. Alm disso, temos a opo "offset", que define o incio da atuao do clock, e
"cancel", que define o trmino da atuao do clock.
Estrutura Fsica
Neste projeto, utilizamos um mdulo de CPLD e uma placa de LEDs conectada no CON2 do CPLD (figura 8). Lembre-se
de que o CPLD usado o EPM7064, da famlia MAX7000S. Quando iniciado, o clock do kit j permite a contagem, e este
contador no possui boto de habilitao. Porm, inclumos um boto de reset (que pode ser arranjado com uma placa de
chaves, botes, ou pelo prprio reset do kit), pois o contador inicia sem estado anterior, e para o mesmo iniciar a contagem,
necessrio forar um nvel lgico na sada. Os pulsos do contador so fornecidos pelo prprio kit.
Figura 8 - Estrutura fsica do projeto;
Montagem e Roteamento
Preste ateno nas entradas de Vcc e GND da periferia, pois elas devem estar alinhadas com as mesmas do CPLD. A
figura 9 mostra detalhadamente as conexes. importante lembrar de definir os pinos no utilizados como entradas tri-
4/9/2014 Contador de dois bits - Portal - FPGA para Todos
http://fpgaparatodos.com.br/exemplos-de-aplicacao/exemplos-didaticos/16-contador-de-dois-bits.html 7/9
state.
Figura 9 - Conexes na Matriz de Contato;
4/9/2014 Contador de dois bits - Portal - FPGA para Todos
http://fpgaparatodos.com.br/exemplos-de-aplicacao/exemplos-didaticos/16-contador-de-dois-bits.html 8/9
Figura 10 - Pin Planner;
Este projeto pode ser gravado e testado no kit com o clock de baixa frequncia ou com clock manual. O circuito de gerador
de clock para a entrada GCLK2 do CPLD pode ser usado, com os jumpers colocados em uma das seguintes formas:
4/9/2014 Contador de dois bits - Portal - FPGA para Todos
http://fpgaparatodos.com.br/exemplos-de-aplicacao/exemplos-didaticos/16-contador-de-dois-bits.html 9/9
Figura 11 - Jumpers para o gerador de clock;
Figura 12 - Jumpers para clock manual atravs do boto;
Neste caso, utilizaremos o gerador de clock; a frequncia escolhida ser de 2Hz (a menor fornecida pelo kit). No entanto,
tambm pode-se utilizar o boto mostrado na figura 12; ao escolher esta opo, tem-se por consequncia o efeito de
trepidao.