1. Universidade Federal do Piauí
Departamento de Informática e Estatística
Circuitos Digitais - VHDL
02 - Entidade de Projeto
Sílvio Fernandes & Ivan Saraiva
2010.2
3. Componentes de um projeto
VHDL
PACKAGE
ENTITY
ARCHITECTURE
CONFIGURATION
• Package (Pacote): constantes, bibliotecas
• Entity (Entidade): pinos de entrada e saída
• Architecture (Arquitetura): implementações do projeto
• Configuration (Configuração): define as arquiteturas
que serão utilizadas
3
4. Componentes de um projeto
VHDL
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.all; PACKAGE (BIBLIOTECAS)
USE IEEE.STD_LOGIC_UNSIGNED.all ;
ENTITY exemplo IS
PORT (
<descrição dos pinos de I/O> ENTITY (PINOS DE I/O)
);
END exemplo;
ARCHITECTURE teste OF exemplo IS
BEGIN ARCHITECTURE
... (ARQUITETURA)
END teste;
4
6. ENTITY (Entidade)
• Abstração que descreve um sistema, uma
placa, um chip, uma função ou uma porta lógica
• Formada por:
• Cláusula GENERIC
• Passagem de informações estáticas
• Cláusula PORT
• Determina a direção e como os comandos na arquitetura
podem operar com as portas
6
7. ENTITY (Entidade)
• Modos de operação das portas:
• IN: porta de entrada
• OUT: porta de saída
• INOUT: porta de entrada e saída
• BUFFER: saída – pode ser referenciada
internamente (realimentação)
7
8. ENTITY (Entidade)
ENTITY entidade_abc IS
PORT (
x0, x1 : IN tipo_a; -- entradas
y0, y1 : OUT tipo_b; -- saidas
y2 : BUFFER tipo_c; -- saida
z0, z1 : INOUT tipo_d); -- entrada / saida
END entidade_abc;
8
9. ARCHITECTURE
(Arquitetura)
• Especificação do funcionamento do circuito
• Formada por:
• Declarações: sinais, constantes, componentes,
subprogramas
• Comandos: blocos, atribuições a sinais, chamadas a
subprogramas, instanciação de componentes,
processos
• Uma entidade pode ter várias arquiteturas:
VHDL provê meios de especificar qual
arquitetura se deseja utilizar
9
10. ARCHITECTURE
(Arquitetura)
• Pode ser descrita de três formas distintas:
• Descrição comportamental:
• descreve o que o sistema deve fazer de forma
abstrata
• Descrição por fluxo de dados (data-flow):
• descreve o que o sistema deve fazer utilizando
expressões lógicas
• Descrição estrutural:
• descreve como é o hardware em termos de
interconexão de componentes
10
11. ARCHITECTURE
(Arquitetura)
ARCHITECTURE estilo_abc OF entidade_abc IS
-- declaracoes de sinais e constantes
-- declaracoes de componentes referenciados
-- descricao de sub-programas locais
-- definicao de novos tipos de dados locais
--
BEGIN
--
-- declaracoes concorrentes
--
END estilo_abc; 11
12. Classes de objetos
• Podem ser
• CONSTANTS (constantes)
• Valor estático
• VARIABLE (variável)
• Valor pode ser alterado, empregada em código seqüencial
• SIGNAL (sinal)
• Valor pode ser alterado, empregada em código seqüencial
ou concorrente
• FILE (arquivo)
• Criação de arquivos
12
13. Classes de objetos:
- Identificadores
• Usados como referência a todos os
objetos declarados
• Regras
• Primeiro caractere deve ser uma LETRA
• Não é CASE-SENSITIVE
• Ex: Teste = teste = TESTE
• Existem palavras reservadas
• Ex: and, mux
13
14. Classes de objetos:
- Identificadores
• Regras (cont.)
• Permitido letras, número e underscore (_)
• Último caractere não poder ser underscore
• Dois underscores não podem ser usados em
seqüência
• Ex: Teste__projeto
• Nomes sem underscore são diferentes de
nome com underscore
• Ex: teste_projeto ≠ testeprojeto
14
15. Exemplo descrição
completa
ENTITY atrib_1 IS
PORT (x1 : IN INTEGER; -- porta entrada
y1,z1 : OUT INTEGER); -- portas saida
END atrib_1;
ARCHITECTURE teste OF atrib_1 IS
SIGNAL s1 : INTEGER; -- declaracao de um sinal tipo inteiro
CONSTANT c1 : INTEGER := 7; -- declaracao de uma constante tipo
inteiro
BEGIN
y1 <= s1; -- região de código concorrente
s1 <= x1;
z1 <= c1;
END teste; 15
16. Exercícios
• Apresente o código de uma entidade que
descreva as quatro expressões lógicas a
seguir. Nessas expressões, considere o
operador de negação com maior
precedência e o operador lógico “ou” com
menor precedência. A entidade deve ter
quatro portas de entrada, “a”, “b”, “c” e
“d”, e quatro portas de saída, “s1”, “s2”,
“s3” e “s4”, todas do tipo bit.
16