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.