Introducao VHDL
EEL 480
Introdução à Linguagem VHDL
Luís Henrique M. K. Costa luish@gta.ufrj.br UFRJ – DEL/Poli e PEE/COPPE
P.O. Box 68504 - CEP 21941-972 - Rio de Janeiro - RJ
Brasil - http://www.gta.ufrj.br
GTA/UFRJ
Introdução
VHDL
VHSIC (Very High Speed Integrated Circuits) Hardware
Description Language
Desenvolvida pelo Departmento de Defesa americano
VHDL 87, 93, 2002, 2008 (IEEE 1076-2008)
Objetivos
Descrição por software do projeto (design) de um sistema digital Simulação
Síntese
GTA/UFRJ
Observações Iniciais
A linguagem não é case-sensitive mas freqüentemente são usadas maiúsculas para as palavras reservadas
Comentários
Iniciados por “- -”
Terminados pelo fim de linha
GTA/UFRJ
Comandos Básicos
Atribuição de sinal
A <= B;
Comparação
“=”, “>”, “<”, etc.
Operações Booleanas
AND, OR, NOT, XOR
Declarações Sequenciais
CASE, IF, FOR
Declarações Concorrentes
WHEN-ELSE
GTA/UFRJ
Elementos Básicos de um Modelo VHDL
Declaração ENTITY
Descreve a interface do modelo: entradas e saídas
Corpo ARCHITECTURE
Descreve o comportamento do modelo
Podem existir várias ARCHITECTURE para uma mesma
ENTITY
GTA/UFRJ
Objetos de Manipulação de Valores
CONSTANT
Definição de valores constantes
SIGNAL
Passagem de valores de dentro para fora, ou entre unidades internas do circuito (~fios)
VARIABLE
Armazenamento de valores na parte sequencial do circuito
Válida apenas dentro de um process
GTA/UFRJ
Exemplos de Constantes
CONSTANT dez: INTEGER := 10;
GENERIC
similar a CONSTANT definido na entidade, constante para a arquitetura pode ser mapeado para outro valor, quando importado como componente ENTITY exemplo is generic (N: integer := 4); port( ...
)
GTA/UFRJ
Exemplo – Contador de 4 bits
ENTITY counter_4 IS PORT( clk, reset, load_counter: data: count_zero: count: );
END counter_4;
IN BIT;
IN BIT_VECTOR( 3 DOWNTO 0 );
OUT BIT;
BUFFER BIT_VECTOR( 3 DOWNTO 0 )
Cada sinal possui um modo (IN, OUT, BUFFER) e um tipo (BIT, BIT_VECTOR)
GTA/UFRJ
Modos do Sinal PORT