Você está na página 1de 57

UNIVERSIDADE FEDERAL DO AMAZONAS

INSTITUTO DE COMPUTAO
INTRODUO AOS SISTEMAS EMBARCADOS

VHSIC HARDWARE DESCRIPTION


LANGUAGE (VHDL)

1
ROTEIRO
Objetivos

1. A Linguagem VHDL
2. Conceitos Iniciais
3. Declaraes Concorrentes
4. Declaraes Sequenciais
5. Arquitetura Estrutural
6. Desenvolvimento de Projeto
7. Trabalho Prtico

Referncias Bibliogrficas

2
OBJETIVOS
OBJETIVOS:

Introduzir conceitos da limguagem VHDL

Possibilitar o aprendizado da criao de um projeto de circuito digital


utilizando a a linguagem;
Criar um sistema digital passo-a-passo;

3
1. A LINGUAGEM VHDL

VHDL - VHSIC Hardware Description Language


VHSIC - Very High Speed Integrated Circuits
Linguagem de Descrio de Hardware criada pelo Departamento de Defesa
dos Estados Unidos na dcada de 80 para documentar sistemas digitais.
Permite a descrio de um projeto
Permite um projeto ser simulado antes de ser manufaturado de tal forma que
projetistas possam rapidamente comparar alternativas e testar sem o atraso
e custo da prototipao em hardware

4
2. CONCEITOS INICIAIS
A ESTRUTURA DO CDIGO VHDL

5
2. CONCEITOS INICIAIS
A ESTRUTURA DO CDIGO VHDL

6
2. CONCEITOS INICIAIS
ENTITY - MODELANDO A INTERFACE

7
2. CONCEITOS INICIAIS
ENTITY - MODELANDO A INTERFACE

8
2. CONCEITOS INICIAIS
ENTITY - MODELANDO A INTERFACE

9
2. CONCEITOS INICIAIS
ENTITY - TIPOS DE PORTAS

IN Porta de Entrada;
OUT Porta de Sada, no pode ser utilizado como entrada para outro
circuito;
BUFFER Porta de Sada que pode ser atualizada por mais de uma fonte;
LINKAGE O valor da porta pode ser lido e atualizado;

10
2. CONCEITOS INICIAIS
ENTITY - TIPOS DE SINAIS

BIT Assume valor '0' ou '1'; Ex: in bit;


BIT_VECTOR Vetor de Bits; Ex: in bit_vector (7 downto 0);
Boolean Assume os valores true ou false; Ex. X: out boolean;
Integer Assume valores inteiros decimais; Ex. X: integer range 0 to 100;
Real Assume valores decimais de ponto flutuante, sempre com ponto
decimal; Ex.: -3.2, 4.56...;

11
2. CONCEITOS INICIAIS
ENTITY - TIPOS DE SINAIS

STD_LOGIC Assume os valores:


'U': No sinalizado;
'X': Sem valor determinado (Don't care);
'0': Nvel Lgico 0;
'1': Nvel Lgico 1;
'Z': Alta Impedncia (TRIS-TATE);
'W': Sinal fraco, no pode-se afirmar se deve ser 0 ou 1;
'L': Sinal fraco que provavelmente ir pra zero;
'H': Sinal fraco que provavelmente ir pra um;
'-': Don't care; 12
2. CONCEITOS INICIAIS
ARCHITECTURE - MODELANDO O COMPORTAMENTO

13
2. CONCEITOS INICIAIS
ARCHITECTURE - MODELANDO O COMPORTAMENTO

14
2. CONCEITOS INICIAIS
PORTA AND - EXEMPLO COMPLETO

15
2. CONCEITOS INICIAIS
EXERCCIO - Descrever em VHDL o circuito abaixo

16
2. CONCEITOS INICIAIS
EXERCCIO - Resoluo

17
2. CONCEITOS INICIAIS
TIPOS DE DADOS
Constantes: atravs do uso da palavra constant, como nos exemplos:
constant valor_pi : real := 3.14;
constant ativado : bit := 1;
constant atraso : time := 5ns;

Variveis: Uso da palavra-chave variable. declarada entre o process e o


begin.
variable liga : bit := '1';

Sinais: Utilizado na interligao de componentes. declarado entre o


architecture e o begin;
signal x : bit;
18
2. CONCEITOS INICIAIS
OPERADORES E EXPRESSES

Operadores Lgicos: and, or, nand, nor, xor, xnor;


Numricos:
Adio: +
Subtrao: -
Concatenao: &
Multiplicao: *
Diviso: /

Relacionais: =, /=, <, >, <=, >=;


Deslocamento: sll, srl, sla, sra, rol, rot;
19
2. CONCEITOS INICIAIS

20
3. DECLARAES CONCORRENTES
DECLARAO WHEN
Permite atribuio condicional

21
3. DECLARAES CONCORRENTES
DECLARAO WHEN
Exemplo

22
3. DECLARAES CONCORRENTES
DECLARAO WHEN
Exemplo

23
3. DECLARAES CONCORRENTES
Exerccio: Fazer o decodificador
para display de 7 segmentos. O
decodificador recebe como
entrada um sinal binario de 0000
a 1001 e e tem como sada sinais
pra um display de 7 segmentos.

24
3. DECLARAES CONCORRENTES
DIAGRAMA CAIXA PRETA

25
3. DECLARAES CONCORRENTES
RESOLUO

26
4. DECLARAES SEQUENCIAIS
DECLARAO PROCESS
Declarao que permite criar sistemas
sequenciais
Recebe como parmetro sinais que se
necessite colocar na lista de sensibilidade do
process;
Quando qualquer sinal da lista de
sensibilidade do process mudar, o process
chamado novamente
Dentro do Process so permitidas as
declaraes: if, case, loop e wait bem como a
criao de variveis. 27
4. DECLARAES SEQUENCIAIS
DECLARAO IF
Declarao que permite verificar condies
dentro do process

28
4. DECLARAES SEQUENCIAIS
EXEMPLO

29
4. DECLARAES SEQUENCIAIS
DECLARAO CASE
Declarao que permite verificar vrias
condies sobre um sinal ou varivel

30
4. DECLARAES SEQUENCIAIS
EXEMPLO

31
4. DECLARAES SEQUENCIAIS
EXERCCIO

Utilizando declarao
sequencial, criar uma
mquina de estados que
muda de estado ao ser
apertado um boto. A
mquina deve conter 4
estados nomeados de 0 a 3.

32
4. DECLARAES SEQUENCIAIS

33
4. DECLARAES SEQUENCIAIS

34
5. ARQUITETURA ESTRUTURAL
Implementa os mdulos como composio de
subsistemas;

Contm:

Declarao de sinais para interconexes internas;

Instncias de componentes;

Port maps em instncias de componentes;

Instrues waits

35
5. ARQUITETURA ESTRUTURAL

36
6. DESENVOLVIMENTO DE PROJETO
PROJETO DE UM CONTADOR SIMPLES

Faa a modelagem e implementao em VHDL do projeto de um contador


simples;
O dispositivo ir incrementar em uma unidade um contador ao ser pressionado
um boto; Ele ir contar at 15 e depois voltar para zero.
O valor do contador ser mostrado em dois displays de 7 segmentos: 1 para
dezena e outro pra unidade.

37
6. DESENVOLVIMENTO DE PROJETO
PROJETO DE UM CONTADOR SIMPLES
Modelagem

38
6. DESENVOLVIMENTO DE PROJETO
PROJETO DE UM CONTADOR SIMPLES
Diagrama de Blocos

39
6. DESENVOLVIMENTO DE PROJETO
PROJETO CONTADOR SIMPLES

Cada componente do projeto ser um arquivo VHDL;


Neste projeto, teremos trs arquivos: contador_simples.vhd, contador.vhd,
decodificador.vhd;
O arquivo contador_simples.vhd ser o principal, e nele sero criado os
componentes contador e decodificador e sero interligados;
Seguindo os passos para criar um novo projeto no quartus, iremos nome-lo
de contador_simples.

40
6. DESENVOLVIMENTO DE PROJETO
PROJETO DE UM CONTADOR SIMPLES
Criando um Novo Projeto

41
6. DESENVOLVIMENTO DE PROJETO
PROJETO DE UM CONTADOR SIMPLES
Criando um Novo Projeto

42
6. DESENVOLVIMENTO DE PROJETO
PROJETO DE UM CONTADOR SIMPLES
Criando Arquivo Contador

43
6. DESENVOLVIMENTO DE PROJETO
PROJETO DE UM CONTADOR SIMPLES
Criando Arquivo Contador

44
6. DESENVOLVIMENTO DE PROJETO
PROJETO CONTADOR SIMPLES
Arquivo Decodificador
Depois de salvar o arquivo contador na pasta do projeto, vamos repetir o
passo a passo para criar o arquivo decodificador.
O decodificador que ser criado neste projeto semelhante ao criado em
slides anteriores. A diferena estar no tipo de sinal de entrada que ser um
natural com range de 0 a 99 e que ser chamado de cont.
Este sinal ser quebrado em dezena e unidade para ser mostrado nos
displays de 7 segmentos.

45
6. DESENVOLVIMENTO DE PROJETO
PROJETO DE UM CONTADOR SIMPLES
Criando Arquivo Decodificador

46
6. DESENVOLVIMENTO DE PROJETO
PROJETO DE UM CONTADOR SIMPLES
Criando Arquivo Decodificador

Clculo para decompor um nmero em dezena e unidade:


unidade <= numero - (numero/10)*10

dezena <= numero/10

47
6. DESENVOLVIMENTO DE PROJETO
PROJETO DE UM CONTADOR SIMPLES
Criando Arquivo Contador Simples

Neste momento, criaremos o arquivo principal do projeto;


Nele seo chamados e instanciados os componentes que acabamos de criar;
Nele faremos a interligao entre os componentes atravs do uso de sinais;
O nome deste arquivo o mesmo do projeto, visto que este o arquivo
principal.

48
6. DESENVOLVIMENTO DE PROJETO
PROJETO DE UM CONTADOR SIMPLES
Criando Arquivo Contador Simples

49
6. DESENVOLVIMENTO DE PROJETO
PROJETO DE UM CONTADOR SIMPLES
Compilando e Escolhendo a FPGA

50
6. DESENVOLVIMENTO DE PROJETO
PROJETO DE UM CONTADOR SIMPLES
Compilando e Escolhendo a FPGA

51
6. DESENVOLVIMENTO DE PROJETO
PROJETO DE UM CONTADOR SIMPLES
Compilando e Nomeando Pin Planer

52
6. DESENVOLVIMENTO DE PROJETO
PROJETO DE UM CONTADOR SIMPLES
Compilando e Nomeando Pin Planer

53
6. DESENVOLVIMENTO DE PROJETO
PROJETO DE UM CONTADOR SIMPLES
Compilando e Embarcando na FPGA

54
6. DESENVOLVIMENTO DE PROJETO
PROJETO DE UM CONTADOR SIMPLES
Compilando e Embarcando na FPGA

55
7. TRABALHO PRTICO
PROJETO CONTADOR DE EVENTOS

Aproveitando o projeto do contador simples, amplie as funcionalidades do


sistema acrescentando:
Um boto de reset para resetar o sistema em qualquer situao;

Ao chegar no 15 a contagem travada e um led aceso;

O led apagado e o sistema volta para o valor zero se o boto de reset for pressionado;

Embarque em uma FPGA;

56
REFERNCIAS BIBLIOGRFICAS
http://vhdl.com.br/site/

http://www.dcc.ufrj.br/~gabriel/circlog/vhdl.pdf

http://www.cpdee.ufmg.br/~l.errico/introvhdl.pdf

57

Você também pode gostar