Os materiais didáticos aqui disponibilizados estão licenciados através de Creative Commons Atribuição-SemDerivações-SemDerivados CC BY-NC-ND. Você possui a permissão para visualizar e compartilhar, desde que atribua os créditos do autor. Não poderá alterá-los e nem utilizá-los para fins comerciais.
Atribuição-SemDerivações-SemDerivados
CC BY-NC-ND
Cursos / Automação Industrial / Sistemas Digitais / Aula
Verifique o código simplificado do cronômetro a seguir e faça o que se pede:
library ieee;
use ieee.std_logic_1164.all;
entity cronometro is
port (clk: in std_logic;
dezena: out integer;
unidade: out integer);
end cronometro;
architecture arquitetura of cronometro is
begin
process (clk)
variable contador: integer range 0 to 99 := 0;
variable dezena_temporario: integer range 0 to 9 := 0;
variable unidade_temporario: integer range 0 to 9 := 0;
begin
contador := contador + 1;
dezena_temporario := contador/10;
unidade_temporario := contador - dezena_temporario*10;
dezena <= dezena_temporario;
unidade <= unidade_temporario;
end process;
end arquitetura;
- Caso enable seja '0': Não há contagem, independente da borda de subida do clock;
- Caso enable seja '1': Existe contagem na borda de subida do clock.
Compile e teste.
- Caso reset seja '0': A contagem do número acontece normalmente, conforme enable;
- Caso reset seja '1': O número será zerado, independente de enable e clk.
Compile e teste.
Compile e teste.
DICA: As saídas dezena e unidade deverão ser substituídas por outras que serão utilizadas na impressão da contagem no display de 7 segmentos.
Versão 5.3 - Todos os Direitos reservados