Portal - FPGA para Todos

Relógio estrutural

Exemplo VHDL: Relógio Estrutural

{youtube}Q6S19P9IzZ4|480|320|1{/youtube}

O projeto exemplo a seguir apresenta um relógio (horas e minutos) escrito na forma estrutural em VHDL. Para adequar a cronometragem dos segundos, devemos utilizar um clock externo (do próprio kit de PLD) de 256Hz.

Diagrama de blocos

Código em VHDL:

Vamos ao primeiro elemento do relógio estrutural, o arquivo ¨relogio.vhd¨. Logo no começo, existe um processo chamado PRESCALER, nele é feita a adequção da frequência de 256 Hz para contegem de segundos de um relógio comum. Percebemos que a cada 64 contagens de clock o sinal HabilitAavacon vai para ´0´. Então, 256 dividido por 64 temos que a cada segundo HabilitaAvacon vai 4 vezes para '0'

No mesmo arquivo ¨relógio¨, encontramos a declaração de componente para outro arquivo .vhd (o componente ¨base_cronometragem¨) em que o sinal HabibilitaAvacon e outros sinais são interligados com o componente ¨base_cronometragem¨, assim forma-se um típico projeto estrutural. Repare que não só interligamos sinais de bloco para bloco, mas também sinais da própria entidade do projeto (HorIncN,  MinInc e clock).

No arquivo base_cronometragem.vhd,temos a definição final da contagem do sistema. Se os sinais externos HorIncN e MinIncN forem acionados (através de um botão nível lógico '0'), incrementamos diretamente o sinal temp_h (horas do relógio) ou o sinal temp_m (minutos do relógio). Assim poderemos alterar horas e minutos. Se o relógio não estiver em estado de ajuste estará automaticamente funcionando normalmente (incrementando a variável cont_temp a cada decida de HabilitaAvacon).

Ainda no componete "base_cronometragem", a variável cont_temp será incrementada 4 vezes a cada segundo por causa do sinal HabilitaAvacon. Sendo assim, quando a cont_temp chegar a 240 a contagem será de exatamente 60 segundos (240/4 = 60), então o sinal minutos será incrementado

Depois de definir a cronometragem, voltamos ao arquivo relogio.vhd  para completar o projeto interligando os blocos CONTROLE_DISPLAY e DECOD_7SEG.

Projeto completo

relogio_estrutural.zip

Quem está Online

Temos 50 visitantes e Nenhum membro online

Apoio

Login Form