Hardware Description Language
Aula 5 -VHDL
Prof. Afonso Ferreira Miguel, MSc
Arrays
Arrays
Records
Semelhante ao
struct do C
Operadores numéricos
+
Soma dois números de um
mesmo tipo.
Integer; Real; Unsigned;
Signed; Time
IntX1 + 6
RealX2 + 0.6
-
Subtrai dois números de
um mesmo tipo.
Integer; Real; Unsigned;
Signed; Time
IntX1 - 6
RealX2 - 0.6
8.6-5
*
Multiplica dois números de
um mesmo tipo.
Integer; Real; Unsigned;
Signed; Time
IntX1 * 6
RealX2 * 0.6
/
Divide dois números de um
mesmo tipo.
Integer; Real; Unsigned;
Signed; Time
IntX1 * 6
RealX2 * 0.6
Data Objects
Generic
Definida na
entity section
Data Objects
Constantes
Definida no
architecture section
Modelando comportamento
Process – formalismo para
descrever comportamento processado de
forma seqüencial.
Sintaxe:
Modelando comportamento
Nome que
descreve o
processo.
Modelando comportamento
Processos podem
ser iniciados ou
suspensos
dependendo da
atividade
ocorrida com as
variáveis da
sensitivity list
Modelando comportamento
Declarações
do processo
podem se
adicionadas
entre a
definição do
processo e o
begin
Modelando comportamento
Todas as
atribuições do
processo estão
entre o begin e o
end e serão
executadas na
simulação
seqüencialmente.
Modelando comportamento
Modelando comportamento
Modelando comportamento
wait until
Suspende o processo até que a condição seja
satisfeita. Ao ser satisfeita, o processo é reiniciado.
Modelando comportamento
wait on
Suspende o processo até que um evento ocorra com
as variáveis do sensitivity list.
Modelando comportamento
Local do wait
O wait pode ser colocado em qualquer lugar,
permitindo uma primeira execução ou não
(simulação).
Modelando comportamento
Sensitivity list
O wait no final de um processo pode ser declarado
(de forma mais explícita) no cabeçalho do processo.
O efeito é o mesmo!
Modelando comportamento
Como a
sensitivity list
funciona:
Modelando comportamento
Como a sensitivity list funciona:
Signal1 sofre um evento
A alteração de Signal3
reinicia o processo!
Execução
Execução
seqüencial
seqüencial
Signal3
recebe
o
Fim!
das
dasatribuições.
atribuições.
valor alterado!
Obs.: Signal3 ainda
não é atualizado!
Modelando comportamento
Como a sensitivity list funciona:
Modelando comportamento
Como a sensitivity list funciona:
D muda seu valor
Modelando comportamento
Como a sensitivity list funciona:
Modelando comportamento
Como a sensitivity list funciona:
Modelando comportamento
Como a sensitivity list funciona:
Modelando comportamento
Como a sensitivity list funciona:
Modelando comportamento
Como a sensitivity list funciona:
Pré-atribuições são feitas
aos sinais (aguardando a
suspensão do processo).
Modelando comportamento
Como a sensitivity list funciona:
Ao suspender o processo,
as pré-atribuições são
efetivadas.
Modelando comportamento
cuidados no processamento seqüencial
Valor inicial
não
atualizado!
Modelando comportamento
Como a sensitivity list funciona:
Variáveis
Modelando comportamento
Como a sensitivity list funciona:
Variáveis
D muda seu valor
Modelando comportamento
Como a sensitivity list funciona:
Variáveis
Variáveis são inicializadas
Modelando comportamento
Como a sensitivity list funciona:
Variáveis
Variáveis são atualizadas
instantaneamente (ao
contrário de sinais).
Modelando comportamento
Como a sensitivity list funciona:
Variáveis
Pré-atribuições são feitas
aos sinais (aguardando a
suspensão do processo).
Modelando comportamento
Como a sensitivity list funciona:
Variáveis
Ao suspender o processo,
as pré-atribuições são
efetivadas.
Data Objects
Variable
Controlando a seqüência de execução
• Exercício 1
Utilizando processo e o comando FOR ... LOOP,
implementar um circuito que realize um shift
para a esquerda, zerando o bit menos
significativo.
• Exercício 2
Implementar em VHDL um circuito que calcule o número
de bits 1.
Dica: utilize um processo que calcule em uma variável e
em seguida responda o valor na saída.
Download

Aula 5: VHDL - Afonso Ferreira Miguel, MSc