LABORG VHDL Projeto cronômetro
Enunciado Sumário Diagrama de blocos 2
Enunciado 1. Implemente o hardware para cronômetro de basquete 2. Especificação do cronômetro: Jogo composto de 4 quartos de 15 minutos. O tempo que falta para terminar um quarto de jogo deve ser visível com precisão de centésimos de segundo. Minutos, segundos e centésimos evoluem em ordem decrescente Quartos que evoluem em ordem crescente. Ao iniciar da contagem do tempo do quarto» A primeira mudança no cronômetro ocorre exatamente 1 centésimo de segundo após o início do quarto, com o cronômetro passando para 14min 59s 99centésimos. 3
Enunciado 1. Implemente o hardware para cronômetro de basquete 2. Especificação do cronômetro: Utilizar um botão Para_Continua» Pressionado a primeira vez causa a parada imediatamente do cronômetro» Pressionado uma segunda vez, libera a evolução do cronometro Utilizar um botão Novo_Quarto» Leva para o início do próximo quarto» Somente deve funcionar se o jogo estiver parado» Deixa o cronômetro congelado no tempo de início do quarto 15min 00s 00 centésimos. Utilizar um botão Novo_valor» Permite o reinício da contagem de tempo em um valor especificado» Somente deve ser considerado se o jogo estiver parado» Permite a leitura de um conjunto de entradas que especificam novos valores de minutos e segundos, assumindo que os centésimos reiniciarão em 00. 4
Enunciado 1. Implemente o hardware para cronômetro de basquete 2. Especificação do cronômetro: O cronômetro deve parar automaticamente» Parada automática causada pela conclusão de um quarto. Reinício de um novo quarto» Obtido pelo pressionar do botão Novo_Quarto, seguido do botão Para_Continua. A implementação do cronômetro» Deve utilizar um processo de projeto absolutamente síncrono» Todos os módulos são operados a partir de dois sinais de controle globais comuns, o sinal de relógio (gerado pelo cristal de 50MHz da placa) e o sinal de reset. 5
3. Módulos de implementação Enunciado Um contador de ciclos de relógio» Avisa quando se deu a passagem de 1 centésimo de segundo» Equivalente à passagem de 500.000 ciclos de relógio. Um contador de centésimos» Avisa quando virou, ou seja, quando passou de 0 para 99» Indica a passagem de 1 segundo. Um contador de segundos» Avisa quando virou, ou seja, quando passou de 0 para 59» Indica que passou 1 minuto. Um contador de minutos» Avisa quando chegou a 0. Um contador de quartos» Conta entre 1 e 4. 6
3. Módulos de implementação Enunciado Cada um dos contadores mencionados» Deve ter uma entrada de habilitação de contagem» Entrada de habilitação de contagem deve ficar ativa por um ciclo do relógio (50MHz)» Possui uma condição distinta de contagem Contador de ciclos de relógio» Habilitado quando o cronômetro está operando (não está parado) Contador de centésimos» Sinaliza quando contagem alcançou 500.000 ciclos de relógio e não está parado Contador de segundos» Sinaliza quando sua contagem é habilitada cada vez que o cronômetro está operando, e está na hora de virar o contador de centésimos e o contador de ciclos; Contador de minutos» Sua contagem é habilitada cada vez que o cronômetro está operando, e está na hora de virar os contadores de segundos, centésimos e de ciclos; Contador de Quartos» Contagem habilitada quando cronômetro está parado e aperta-se o botão Novo_Quarto. 7
Enunciado 4. Estratégia de implementação (Sugestão) Criar um Bloco de Dados e um Bloco de Controle. O Bloco de Dados» Composta pelos cinco contadores» Cada contador recebe (i) sinais de controle (i.e. clock e reset), (ii) um sinal de habilitação cada e fornece um sinal avisando virada O Bloco de Controle» Implementa uma máquina de estados» Monitora se o cronômetro está operando ou está parado» Gera as habilitações de cada contador de forma individualizada, a partir dos sinais de virada de cada um. Criar contadores e conversores» Contadores contam em binário» Conversores adaptam os valores de contagem para representação decimal (i.e. BCD) Entrada e saída do circuito» Para os botões, utilizar o módulo debounce,» Para a saída no display de 7segmentos usar driver de display. 8
Enunciado Sumário Diagrama de blocos 9
Diagrama de blocos Cristal de 50MHz clock reset Novo_valor C_Minutos C_Segundos Quarto Minutos Val_Display Anodo Para_continua Novo_quarto Atenção: Todas as ações do sistema devem ser síncronas com o sinal de relógio!!! 10
Diagrama de blocos Cristal de 50MHz clock reset Novo_valor C_Minutos Debounce clock reset Novo_valor Quarto Minutos Quarto Minutos C_Segundos C_Minutos C_Segundos Cronometro Para_continua Novo_quarto Debounce Debounce Para_continua Novo_quarto segundo Centesimo dspl_drv_nexys Val_Display Anodo 11
Diagrama de blocos Cristal de 50MHz clock reset CONTADOR DE QUARTOS Novo_valor C_Minutos C_Segundos Máquina De estados CONTADOR DE MINUTOS CONTADOR DE SEGUNDOS Quarto Minutos Para_continua Novo_quarto CONTADOR DE CENTESIMO CONTADOR DE CICLOS segundo Centesimo 12