80 likes | 187 Views
Fernando Gehm Moraes César Augusto Missio Marcon Ney Laert Vilar Calazans. LABORG. Aula 4 - Introdução a FPGAs (Continuação). 24/março/2008. Usando Recursos da Plataforma Nexys. Na aula anterior, todos ou quase conseguiram prototipar um somador de 4 bits com Vai-um:
E N D
Fernando Gehm MoraesCésar Augusto Missio MarconNey Laert Vilar Calazans LABORG Aula 4 - Introdução a FPGAs (Continuação) 24/março/2008
Usando Recursos da Plataforma Nexys • Na aula anterior, todos ou quase conseguiram prototipar um somador de 4 bits com Vai-um: • A saída “Soma” é codificada em 5 bits, sendo estes mostrados nos diodos emissores de luz (leds) localizados acima das chaves deslizantes que funcionam como entradas • A identificação do resultado poderia ser melhor se os números fossem representados em decimal ou em hexadecimal • O objetivo desta aula é demonstrar o uso dos mostradores de 7 segmentos para permitir este melhoramento da ergonomia do projeto na palataforma Nexys • Note-se que o processo não e trivial, devido (1) à forma como os mostradores de 7 segmentos conectam-se ao FPGA, e (2) devido à própria organização do hardware dos mostradores
Usando Recursos da Plataforma Nexys Mostrando o resultado não nos leds, mas nos mostradores de sete segmentos? Mostradores de 7 Segmentos A(3 downto 0); B(3 downto 0);
Usando Recursos da Plataforma Nexys Uma sugestão de modificação do projeto para realizar isto. Usar o projeto da Aula 3 e supor que o resultado da soma deva ir para o display mais à direita da placa, e que o vai-um seja associado ao ponto decimal. Resumo dos passos a realizar: Ler o manual de referência para entender como funcionam os mostradores (fim da página 5 e página 6). Complicado? Abrir e estudar o código VHDL contido no link dspl_drv_nexys.vhd. Será dada explicação em aula sobre este VHDL. Acrescentar este arquivo ao projeto: No ambiente ISE, ir na janela Sources (canto superior esquerdo) clicar com botão direito do mouse no ícone com o nome do dispositivo (xc3s200-4ft256) e escolhendo a opção de menu “Add Source”. Modificar o UCF para adaptá-lo ao novo formato da saída. Garanta que o clock da placa está operando em 50MHz. Testar com osciloscópio! E se o clock não fosse 50MHz? Ler o manual e ver como usar clocks de 25MHz e 100MHz e testar o projeto com estes novos valores!
Usando Recursos da Plataforma Nexys Detalhamento dos passos a realizar: Funcionamento dos mostradores • 8 pinos para ativar cada display (F13 a H14) • 4 pinos para escolher qual display acender (G14 a F12) • Displays são multiplexados • Pressupõe uma varredura de 1 KHzpara acender cada mostrador 250vezes por segundo, dando aa impressão de que todos estãoacesos o tempo todo • Idéia: enquanto acende-se algummostrador, apaga-se os demais • Problema: manter o sincronismo! • Para acender/apagar mostrador 0:pino G14 em 0/1, respectivamente • Para os demais mostradores, similar
Usando Recursos da Plataforma Nexys • Detalhamento dos passos a realizar: • Abrir e estudar o código VHDL contido no link dspl_drv_nexys.vhd. Será dada explicação em aula sobre este VHDL d4 (5:0) d3 (5:0) d2 (5:0) d1 (5:0) clock reset • di(5) – ativa/desativa mostrador i • di(4:1) – número hexa a mostrar em i • di(0) – ponto decimal de i an (3:0) dec_ddp (7:0)
Usando Recursos da Plataforma Nexys • Detalhamento dos passos a realizar: • Modificar o UCF para adaptá-lo ao novo formato da saída. Garanta que o clock da placa está operando em 50MHz. Testar com osciloscópio! Sugestões: • Ligar o resultado da soma no display 1 (sinal d1) e o vai-um no ponto decimal do mesmo • Desligar todos os demais displays • Ligar a entrada de reset no botão BTN0 da plataforma Nexys • Ligar a entrada de clock no clock da placa, garantindo que este opera a 50MHz (ver o pino no manual) • Ligar as saídas do driver do mostrador nos pinos adequados do hardware do mostrador
Usando Recursos da Plataforma Nexys • Detalhamento dos passos a realizar: • E se o clock não fosse 50MHz? Ler o manual e ver como usar clock de 25MHz ou 100MHz e testar o projeto com estes novos valores! • Funciona ou não? • Qual a diferença e qual a explicação para o comportamento observado?