Cronômetro em VHDL


Meu último projeto em VHDL foi um simples cronômetro com precisão de centésimos de segundo que, com dois displays de sete segmentos, apresenta o tempo.

disp7-seg

Como só é possível apresentar dois dígitos de cada vez, foi adicionado suporte a um botão que, quando pressionado, muda o que o display exibe: Ele começa exibindo décimos e centésimos de segundo. Com um clique, passa a exibir os segundos. No clique seguinte, os minutos e depois, com mais um clique, as horas.

Para parar e continuar o cronômetro, foi usado mais um botão, ficando um sistema bem simples e funcional.

Cronometro funcionando

Cronômetro rodando numa MAX 7k da Altera

A imagem está em baixa resolução, mas mostra o cronômetro gravado numa CPLD MAX7128S da Altera, que deve ter uns 15 anos. Ela tem um clock de 25,175MHz, que permite um cronômetro com precisão de cerca de 40 nanosegundos (3,97 x 10⁻⁸ s), mas isso seria impossível de ver no display (centésimos de segundos já aparecem borrados). Então, no código, tem um divisor de frequência onde é usado um clock de 100Hz para a contagem de tempo.

O WordPress não permite anexar arquivos de texto, então coloquei no pastebin: http://pastebin.com/ythU4TjH. Para ver melhor, use o Notepad++ ou o Kate.

Para poder reutilizar esse código, será preciso trocar o valor do clock da sua CPLD ou FPGA para que o cronômetro marque o tempo certo. Nesse caso, o divisor de frequência usa o valor 125875 ou 11110101110110011, criando 200 descidas e subidas por segundo, que equivale a um clock de 100Hz.

Meu próximo projeto em VHDL será um controlador de interface serial RS232, aquela que provavelmente não existe mais no seu computador. Mesmo assim, é possível utilizar um conversor USB – RS232, como o que eu comprei por US$3,00 no DealExtreme.

Por hoje é só, pessoal.

Anúncios
    • Pablo
    • 2 de novembro de 2009

    opa, beleza?
    eu estou precisando fazer um trabalho pra facul, de um cronometro, que conte regressivo de 35 a zero, mas estou tendo algumas dificuldades. tentei baixar o arquivo que vc colocou no pastebin, mas o arquivo não está disponivel. vc ainda tem esse arquivo? poderia envia-lo pra mim? (***@gmail.com).
    desde ja, agradeço.

    um abraço

    • Vianna
    • 2 de novembro de 2009

    Oi, vou procurar o arquivo e depois coloco novamente no pastebin (deve ter expirado). Mudei seu email para asteriscos para não aparecer.
    Abraços

    • Pedro
    • 7 de dezembro de 2009

    onde voce conseguiu comprar esta placa FPGA?

      • João Bernardo
      • 7 de dezembro de 2009

      Não comprei. É do laboratório de Sistemas Digitais.

    • jonas
    • 8 de dezembro de 2009

    Amigo, preciso fazer um cronômetro regresivo, vc pode enviar o arquivo em vhdl, acho que vai me ajudar. Obrigado

    • Elaine
    • 21 de dezembro de 2009

    Você pode me enviar o arquivo com o código em VHDL? Estou precisando fazer algo parecido.
    Grata,
    Elaine

    • ms2222
    • 22 de dezembro de 2009

    Eu também precisava do ficheiro.
    Se me pudesses enviar eu agradecia.

    • João Bernardo
    • 23 de dezembro de 2009

    Pessoal, desculpem a demora, mas agora coloquei o arquivo no Pastebin e marquei a opção para ele não expirar!

    Obrigado por visitarem o site e Feliz Natal.

    • camila
    • 26 de outubro de 2010

    Olá
    eu preciso fazer um cronômetro em vhdl que precisa ter 5 displays.Alguem pode me ajudar??
    Obrigada

      • João Bernardo
      • 26 de outubro de 2010

      Veja o código fonte que disponibilizei (não é dos mais bonitos, mas funciona). Para mais displays, não deve ser muito difícil de adaptar.
      Qualquer dúvida, pode perguntar.

  1. No trackbacks yet.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

w

Conectando a %s

Anúncios
%d blogueiros gostam disto: