Baixe o app para aproveitar ainda mais
Prévia do material em texto
UNIVERSIDADE FEDERAL DO PARANÁ SETOR DE TECNOLOGIA CURSO DE ENGENHARIA ELÉTRICA TRABALHO 05 Estudo dos Circuitos Digitais: Relógio Digital ALUNO: DAVID CLÍSTENES FURONI DE LIMA GRR20172156 PROFESSORA DRa. SIBILLA BATISTA DA LUZ FRANÇA DISCIPLINA: TE351 – MICROELETRÔNICA 1 CURITIBA 2021 1. INTRODUÇÃO O presente relatório técnico tem como objetivo demonstrar os resultados alcançados com simulações de um projeto de um relógio digital, o qual deve resultar na apresentação dos minutos e segundos nos displays de 7 segmentos (SSDs). Os estudos e análises visam a compreensão funcional e analítica de circuitos digitais, como comportamental, utilizando-se a ferramenta ISE, na qual serão implementados os circuitos e simulados os resultados, de acordo com as implementações realizadas. Para a realização deste trabalho foi utilizado um nootebook Dell – Intel CORE i7, possuindo um desempenho razoável de processamento, tendo instalado o software ISE da Xilinx, conforme orientações e instruções da Orientadora da disciplina. Foi repassado um roteiro com os passos e sequências a serem seguidas para alcançar os objetivos e resultados finais deste projeto, para a correta utilização e possíveis configurações da FPGA. 2- DESENVOLVIMENTO 2.1 – Projeto – Relógio Digital Para este projeto, de acordo com as especificações solicitadas para o circuito do relógio digital, duas etapas/blocos são importantes: um temporizador, responsável por realizar a contagem dos segundos e minutos, e um multiplexador para os displays de sete segmentos do kit Nexys 2. Os displays possuem seus bits de controle conectados entre si, assim é necessária a multiplexação para exibir dígitos diferentes em cada um dos displays, desabilitando 3 dos displays e enviando o dígito que deve ser mostrado no display habilitado por uma fração de segundo, passando para o próximo display e assim sucessivamente. Para o projeto, devemos seguir o esquema demonstrado na figura abaixo: Para o desenvolvimento deste circuito, foi utilizado como base o código do circuito temporizador, visto em laboratório anterior, sendo este implementado para Temporizador da seguinte forma: O temporizador utiliza o componente contador e é solicitado 4 vezes, uma para cada um dos displays. O clock do display dos segundos consiste em um processo sensível à entrada clk e ao rst (reset assíncrono), que utilizará o clock de 50 MHz do kit para dividir a frequência de clock por 50000000, resultando em um clock de 1 Hz para contagem dos segundos (caso a entrada conf, responsável por determinar a velocidade da contagem, seja igual a “00”). A cada incremento da entrada conf a frequência do clock dividido é dobrada. O comando concorrente “WITH SELECT” é utilizado para determinar quantos ciclos de clock serão utilizados na contagem de divisão do clock de acordo com o valor da entrada vel. Com conf = “00”, o contador interno deverá contar por 50000000 de ciclos de clock e comutar de estado, gerando um clock com 1 Hz de frequência. Com conf = “01”, contará 25000000 ciclos de clock e comutará. Com conf = “10”, 12500000. Finalmente, com conf = “11”, contará 6250000 ciclos. As saídas do temporizador são atribuídas, sendo direcionadas aos 4 displays de sete segmentos do kit Nexys 2. O código é a declaração dos segmentos componentes e suas solicitações. As saídas cont tem seus valores escolhidos tendo em mente que os LEDs dos displays são ânodo comum, sendo acionados com nível lógico baixo. Os displays do kit são habilitados através de um transistor PNP e também necessitam de nível lógico baixo para acenderem. O código VHDL do Relógio Digital encontra-se no Anexo 1. Para este projeto, não houve a solicitação dos esquemáticos lógicos e tecnológicos, no entanto podem ser verificados no arquivo do projeto implementado. Com a verificação e execução dos passos anteriores, a criação do arquivo (test_bench) foi implementada, o código deve ser configurado para simular o circuito, as alterações na implementação são mostradas no Anexo 2. 2.2 - OBSERVAÇÕES E RESULTADOS DA SIMULAÇÃO DO PROJETO Para o presente circuito implementado foi solicitado a simulação para diferentes combinações, pode-se verificar com os resultados apresentados após a simulação que o circuito, de acordo com a teoria estudada, apresenta comportamento esperado, ou seja, não apresentou erros durante a simulação, pois vemos que a saída apresentou os resultados de acordo com as variações dos valores de entrada. Para a simulação do funcionamento do relógio, foi criado um testbench, utilizando um processo de clock com período de 10 ns. O reset foi mantido em ‘1’ por 1ms e a velocidade foi setada em “11” (máxima). Vale ressaltar que os períodos de contagem dos segundos foram acelerados para acelerar as simulações, como visto a seguir na figura abaixo: Para a simulação com reset mantido em ‘1’ por 5ms e a velocidade foi setada em “10” . Para a simulação com reset mantido em ‘0’ por 5ms e a velocidade foi setada em “11” . Com a utilização do Manual Kit Nexys2, houve a implementação e codificação para as entradas do circuito e os LEDs para a saída, por meio dos switches: Para este circuito é necessário também conectar a entrada de clock ao pino B8, que possui o sinal de clock interno de 50 MHz. Estas atribuições estão demonstradas na figura acima, que exibe a implementation constraint file e todas foram feitas com base nos pinos disponíveis em kit Nexys 2. Considerando a possibilidade de se ter uma FPGA em mãos, seria possível a programação da mesma com os circuitos implementados, por meio da utilização da opção configure target device. Conclusão Com os estudos e pesquisas realizadas, foi possível implementar a lógica em VHDL de um relógio digital. Os requisitos necessários para as configurações e divisões do clock do temporizador, puderam ser observados com os resultados alcançados na simulação e funcionamento do circuito. Não houve a utilização de componentes, mesmo sendo um requisito para a implementação deste projeto, no entanto os conceitos sobre o assunto foram estudados, e mesmo com as dificuldades encontradas a simulação e funcionamento teve um resultado muito bom. Sendo que para os próximos projetos ou algo mais complexos seja necessário a utilização de componentes, tendo em vista que a utilização destes recursos e ferramentas auxilia no compartilhamento e reutilização de código.
Compartilhar