LABORG
Aula 8 - VHDL: Processos,
Paralelismo e o Comando
process (Continuação)
César Augusto Missio Marcon
Ney Laert Vilar Calazans
08/abril/2009
Sumário
Introdução
TRABALHO A FAZER
A ENTREGAR
César Marcon / Ney Calazans
2
Sumário
Introdução
TRABALHO A FAZER
A ENTREGAR
César Marcon / Ney Calazans
3
Introdução
• Na aula anterior vimos:
– VHDL pode ser vista como não uma, mas várias linguagens –
modelagem/simulação/síntese e dentro de process/fora de
process
– Processos paralelos são naturais em VHDL – dentro e fora do
comando process
– Process – usado para hardware combinacional ou seqüencial, ou
mistura de ambos
– Variáveis ≠ sinais – sinais são fios, variáveis pode ou não ser
implementadas com fios; sinais tem atribuição retardada até a
próxima suspensão do processo, variáveis têm atribuição
imediata
– Expressões com sinais usam o valor do sinal antes da suspensão
do processo (valor antigo, se ele foi mudado em comando
anterior)
– Exercícios iniciais de interpretação de comandos process
César Marcon / Ney Calazans
4
Introdução
• Nesta aula veremos:
– Exercícios iniciais de projeto de comandos process
César Marcon / Ney Calazans
5
Sumário
Introdução
TRABALHO A FAZER
A ENTREGAR
César Marcon / Ney Calazans
6
TRABALHO A FAZER (1)
1. Implemente uma ULA de 4 operações em VHDL usando um
único comando process. Faça um testebench que mostre a
operação correta das 4 operações sobre vários dados.
Especificação da ULA:
–
2 entradas A e B de 8 bits, 1 saída de 8 bits, 1 entrada de
controle que use um tipo enumerado de 4 valores. As operações
são A+B, A-B, A xor B e not B
César Marcon / Ney Calazans
7
TRABALHO A FAZER (2)
1. Implemente o hardware para cronômetro de basquete.
Especificação do cronômetro:
–
Jogos de basquete atuais são compostos de 4 tempos de 15
minutos cada. Assim, o cronômetro deve contar até 15 minutos
e saber em que tempo o jogo se encontra
–
O cronômetro deve poder ser parado e reiniciado a qualquer
instante, e deve poder ser reinicializado para o instante 00
minutos, 00 segundos e 00 centésimos do primeiro tempo
–
Como pode ser intuído no item anterior, são 4 as saídas do
cronômetro: minutos, segundos, centésimos e tempo do jogo
–
Em situações excepcionais, tais como erros de arbitragem, o
cronômetro deve poder ser inicializado para um instante
qualquer de um tempo qualquer, com precisão máxima a nível
de segundos inteiros. Um sinal carga controla a inicialização
–
A seguir apresenta-se um diagrama da interface externa do
cronômetro (Dica: comece com uma entity VHDL a partir deste!!)
César Marcon / Ney Calazans
8
TRABALHO A FAZER (2)
O Circuito Sincronizador de
Entradas deve ser ignorado para o
atual trabalho. Mas pensem: Para
que ele serve?
Atenção: Todas as ações do
Cristal de 10MHz sistema devem ser síncronas
com o sinal de relógio!!!
Relógio
Sincronizador de Entradas
Tempo
Carga
C_Tempo
C_Minutos
C_Segundos
Reinicializa
Parar
Prosseguir
César Marcon / Ney Calazans
Minutos
Segundos
Centésimos
Pensem! O clock da
placa Nexys é de
25MHz, 50MHz ou
100MHz. Como
gerar a partir de um
destes o clock de
10MHz da
especificação??
9
Sumário
Introdução
Processos em VHDL
TRABALHO A FAZER
A ENTREGAR
César Marcon / Ney Calazans
10
A ENTREGAR
Os quatro projetos Active-HDL da aula anterior e os dois projetos
Active-HDL desta aula, com as implementações em
processos, contendo
1. Os fontes de cada implementação
2. Os testbenches de cada implementação
3. Formas de onda mostrando a funcionalidade da
implementação
4. Texto breve descrevendo a implementação de cada
projeto (pode ser arquivo .txt acrescentado a cada projeto)
5. Sugestão de como implementar o cronômetro de basquete
na placa Nexys do laboratório, resolvendo todos os
problemas de incompatibilidade entre a especificação do
cronômetro e os recursos da placa (a nível de sinal de
relógio, periféricos, etc.) . A implementação na placa é
opcional.
César Marcon / Ney Calazans
11
Download

laborg_aula8