Upload
internet
View
105
Download
0
Embed Size (px)
Citation preview
Aula 4 - Introdução a FPGAs(Continuação)
LABORGLABORG
24/março/2008
Fernando Gehm Moraes
César Augusto Missio Marcon
Ney Laert Vilar Calazans
2Fernando Moraes / César Marcon / Ney Calazans
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
3Fernando Moraes / César Marcon / Ney Calazans
Usando Recursos da Plataforma Nexys
• Mostrando o resultado não nos leds, mas nos mostradores de sete segmentos?
A(3 downto 0);
B(3 downto 0);
Mostradores de 7 Segmentos
4Fernando Moraes / César Marcon / Ney Calazans
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:
1. Ler o manual de referência para entender como funcionam os mostradores (fim da página 5 e página 6). Complicado?
2. 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”.
3. 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!
4. 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!
5Fernando Moraes / César Marcon / Ney Calazans
Usando Recursos da Plataforma Nexys
• Detalhamento dos passos a realizar:
1. 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
6Fernando Moraes / César Marcon / Ney Calazans
Usando Recursos da Plataforma Nexys
• Detalhamento dos passos a realizar:2. Abrir e estudar o código VHDL contido no link dspl_drv_nexys.vhd. Será
dada explicação em aula sobre este VHDL
clock
reset
d1 (5:0)d2 (5:0)d3 (5:0)d4 (5:0)
dec_ddp (7:0)an (3:0)
• di(5) – ativa/desativa mostrador i• di(4:1) – número hexa a mostrar em i• di(0) – ponto decimal de i
7Fernando Moraes / César Marcon / Ney Calazans
Usando Recursos da Plataforma Nexys
• Detalhamento dos passos a realizar:3. 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
8Fernando Moraes / César Marcon / Ney Calazans
Usando Recursos da Plataforma Nexys
• Detalhamento dos passos a realizar:4. 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?