aula 10 - vhdl: processos, paralelismo e o comando process (final) laborg 11/maio/2009 ney laert...

12
Aula 10 - VHDL: Processos, Paralelismo e o Comando process (final) LABORG 11/maio/2009 Ney Laert Vilar Calazans

Upload: internet

Post on 17-Apr-2015

106 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Aula 10 - VHDL: Processos, Paralelismo e o Comando process (final) LABORG 11/maio/2009 Ney Laert Vilar Calazans

Aula 10 - VHDL: Processos, Paralelismo e o Comando

process (final)

LABORGLABORG

11/maio/2009

Ney Laert Vilar Calazans

Page 2: Aula 10 - VHDL: Processos, Paralelismo e o Comando process (final) LABORG 11/maio/2009 Ney Laert Vilar Calazans

2César Marcon / Ney Calazans

Sumário

Introdução

TRABALHO A FAZER

A ENTREGAR

Page 3: Aula 10 - VHDL: Processos, Paralelismo e o Comando process (final) LABORG 11/maio/2009 Ney Laert Vilar Calazans

3César Marcon / Ney Calazans

Sumário

Introdução

TRABALHO A FAZER

A ENTREGAR

Page 4: Aula 10 - VHDL: Processos, Paralelismo e o Comando process (final) LABORG 11/maio/2009 Ney Laert Vilar Calazans

4César Marcon / Ney Calazans

Introdução• Nas aulas anteriores deste trabalho, vimos:

– Estudo geral de processos VHDL e do comoand process

– Exercícios iniciais de interpretação de comandos process

– Um exercício complexo, o cronômetro de basquete – Para efetivamente implementar este hardware de forma modular, é eficiente usar o modelo Bloco de Dados-Bloco de Controle visto em aula

– O objetivo desta última aula deste trabalho é justamente verificar que a implementação do cronômetro pelos alunos siga este formato.

Page 5: Aula 10 - VHDL: Processos, Paralelismo e o Comando process (final) LABORG 11/maio/2009 Ney Laert Vilar Calazans

5César Marcon / Ney Calazans

Sumário

Introdução

TRABALHO A FAZER

A ENTREGAR

Page 6: Aula 10 - VHDL: Processos, Paralelismo e o Comando process (final) LABORG 11/maio/2009 Ney Laert Vilar Calazans

6César Marcon / Ney Calazans

TRABALHO A FAZER (1)1. Repete-se aqui a especificação inicial: Implemente o

hardware para cronômetro de basquete:

– 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

Page 7: Aula 10 - VHDL: Processos, Paralelismo e o Comando process (final) LABORG 11/maio/2009 Ney Laert Vilar Calazans

7César Marcon / Ney Calazans

TRABALHO A FAZER (3)

Sin

cro

niz

ado

r d

e E

ntr

ada

s

Rel

óg

io

Cristal de 10MHz

Tempo

MinutosSegundos

Centésimos

C_Tempo

C_Minutos

C_Segundos

Reinicializa

Parar

Prosseguir

O Circuito Sincronizador de Entradas deve ser ignorado para o atual trabalho. Mas pensem: Para que ele serve?

Carga

Atenção: Todas as ações do sistema devem ser síncronas com o sinal de relógio!!!

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??

Page 8: Aula 10 - VHDL: Processos, Paralelismo e o Comando process (final) LABORG 11/maio/2009 Ney Laert Vilar Calazans

8César Marcon / Ney Calazans

TRABALHO A FAZER (3)2. Para implementar o cronômetro, inicia-se no Bloco de Dados

– Pode-se implementar o Bloco de Dados usando 5 contadores:

» 1 contador que conta ciclos de relógio e detecta quando se passou 1 centésimo de segundo

» 1 contador que conta centésimos de segundo e detecta quando se passou 1 segundo

» 1 contador que conta segundos e detecta quando se passou 1 minuto

» 1 contador que conta minutos e detecta quando se passou 15 minutos, ou seja quando terminou um tempo do jogo

» 1 contador que conta tempos

– O primeiro contador é interno ao sistema (não gera saídas diretamente), portanto pode contar em qualquer sentido

– Os demais ficam mais fáceis se contarem na ordem de geração das informações

Page 9: Aula 10 - VHDL: Processos, Paralelismo e o Comando process (final) LABORG 11/maio/2009 Ney Laert Vilar Calazans

9César Marcon / Ney Calazans

TRABALHO A FAZER (4)– Assim, os contadores de centésimos, segundos e minutos

devem contar em ordem decrescente, enquanto o contador de tempos conta em ortdem crescente

– Centésimos conta 00, 99, 98, … 01, segundos conta 00, 59, 58,… 01, minutos conta 15, 14, … 0, e tempo conta 1, 2, 3, 4. Assim, o valor de contagem pode ser a própria saída do sistema

– Segundo o princípio de projeto síncrono, todos os contadores possuem o mesmo sinal de relógio. Assim, a detecção de quando um contador “vira” deve durar exatamente 1 ciclo de relógio e deve ser a habilitação (chip enable) do contador de ordem imediatamente superior. Assim, ao chegar no ultimo ciclo antes de virar, cada contador gera uma habilitação para o contador seguinte (centésimos para segundo, etc)

– Exceção é o contador de minutos, que ao vira pára automaticamente o cronômetro

Page 10: Aula 10 - VHDL: Processos, Paralelismo e o Comando process (final) LABORG 11/maio/2009 Ney Laert Vilar Calazans

10César Marcon / Ney Calazans

TRABALHO A FAZER (5)3. O Bloco de Dados deve ser comandado por um Bloco de

Controle

– O Bloco de Controle deve ser uma máquina de estados síncrona, controlada pelo mesmo relógio que o Bloco de Dados

– Cada um dos sinais de controle do cronômetro (carga, Reinicializa, Parar, Prosseguir) deve ser entrada primária da máquina de estados

– As saídas da máquina de estados devem comandar as ações do Bloco de Dados

– Analise as diferentes situações pelas quais passa o cronômetro para definir o número e a semântica dos estados do Bloco de Controle

– Para comandar o Bloco de Dados, defina sinais de controle com semântica adequada. Estas serão as saídas do Bloco de Dados.

Page 11: Aula 10 - VHDL: Processos, Paralelismo e o Comando process (final) LABORG 11/maio/2009 Ney Laert Vilar Calazans

11César Marcon / Ney Calazans

Sumário

Introdução

Processos em VHDL

TRABALHO A FAZER

A ENTREGAR

Page 12: Aula 10 - VHDL: Processos, Paralelismo e o Comando process (final) LABORG 11/maio/2009 Ney Laert Vilar Calazans

12César Marcon / Ney Calazans

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.