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