Conteúdo Estrutura do código VHDL; Objetos; Tipos; Engenharia da Computação 2
Engenharia da Computação 3
Armazenamento de código compilado; As bibliotecas são compostas por pacotes; A declaração de um pacote exige a prévia declaração da sua biblioteca; As bibliotecas padrão (STD) e de trabalho (Work) são implícitas; STD: ieee: standard: tipos básico e seus operadores (lógica, aritmética, comparação e deslocamento); textio: operações com texto e arquivos; std_logic_1164; numeric_bit; numeric_std; Engenharia da Computação 4
Duas seções de código: GENERIC: PORT: Única que pode vir antes de PORT; Declaração de constantes globais; opcional; Interface do circuito; Modo: IN, OUT, INOUT e BUFFER; Tipo: BIT, BIT_VECTOR, STD_LOGIC, BOOLEAN e etc; Obrigatória; Engenharia da Computação 5
Duas seções de código: GENERIC: PORT: Única que pode vir antes de PORT; Declaração de constantes globais; opcional; Interface do circuito; Modo: IN, OUT, INOUT e BUFFER; Tipo: BIT, BIT_VECTOR, STD_LOGIC, BOOLEAN e etc; Obrigatória; Engenharia da Computação 6
Definição da relação entre as portas de uma instância da entidade; Pode conter várias seções: Declarações de âmbito local: Tipos; Sinais; Constantes; Componentes; Funções; BEGIN: execução paralela; PROCESS: execução seqüencial; FUNCTION: execução seqüencial; PROCEDURE: execução seqüencial; Engenharia da Computação 7
Definição da relação entre as portas de uma instância da entidade; Pode conter várias seções: Declarações de âmbito local: Tipos; Sinais; Constantes; Componentes; Funções; BEGIN: execução paralela; PROCESS: execução seqüencial; FUNCTION: execução seqüencial; PROCEDURE: execução seqüencial; Engenharia da Computação 8
Engenharia da Computação 9
Exemplo simplificado de código VHDL: Engenharia da Computação 10
Engenharia da Computação 11
Objetos Há quatro classes de objetos em VHDL: CONSTANT: Valor estático; Alteração erro de compilação; Declaração: CONSTANT nome_da_const: TIPO := valor_const; Atribuição: := ; SIGNAL: Valor alterável; I/O s internos do circuito; Não aceita múltiplas atribuições; Execução concorrente e sequencial; Declaração: SIGNAL nome_sinal: TIPO [RANGE i TO f] [:= valor_default]; Atribuição: <= ; Engenharia da Computação 12
Objetos Há quatro classes de objetos em VHDL: VARIABLE: Valor alterável; Âmbito local; Permite múltiplas atribuições; Execução exclusivamente sequencial; Declaração: VARIABLE nome_var: TIPO [RANGE i TO f] [:= valor_default] Atribuição: := ; FILE: Manipulação de arquivos; Não-sintetizável; Usado apenas em simulações; Engenharia da Computação 13
Tipos Engenharia da Computação 14
Tipos Dimensão Tipo Biblioteca/Pacote Valores Escalar 1D BOOLEAN std/standard TRUE, FALSE BIT std/standard 0, 1 STD_LOGIC ieee/std_logic_1164 BIT_VECTOR std/standard 0, 1 STD_LOGIC_VECTOR (UN)SIGNED ieee/std_logic_1164 ieee/numeric_std INTEGER std/standard -(2 31-1) a (2 31-1) NATURAL std/standard 0 a (2 31-1) POSITIVE std/standard 1 a (2 31-1) CHARACTER std/standard ASCII estendido Entrada: 0 L, 1 H Saída: 0 L, 1 H, - X W Entrada: 0 L, 1 H Saída: 0 L, 1 H, - X W Entrada: 0 L, 1 H Saída: 0 L, 1 H, - X W 1Dx1D STRING std/standard Conjunto de caracteres Engenharia da Computação 15
Tipos STD_LOGIC: U : não inicializado; X : desconhecido; W : desconhecido fraco; 0 : nível baixo; L : nível baixo fraco; 1 : nível alto; H : nível alto fraco; Z : alta impedância; - : don t care; Engenharia da Computação 16