SlideShare uma empresa Scribd logo
1 de 44
Baixar para ler offline
Prototipagem de 
                      Sistemas Digitais
brito_ufrn@ieee.org
Francisco Brito




                                 Introdução
                                     a VHDL
2


Plano da exposição
• Histórico
• Aspectos Gerais da Linguagem




                                         Laboratório de Microeletrônica e Sistemas
• Tipos, operadores e bibliotecas
  padrões.
• Comandos concorrentes e sequenciais.
• Verificação e síntese de sistemas
  digitais.
• Introdução ao Quartus II
3


Plano da exposição
• Histórico
• Aspectos Gerais da Linguagem




                                         Laboratório de Microeletrônica e Sistemas
• Tipos, operadores e bibliotecas
  padrões.
• Comandos concorrentes e sequenciais.
• Verificaçãoe síntese de sistemas
  digitais.
• Introdução ao Quartus II.
4


 Histórico
• VHDL – The VHSIC Hardware Description
  Language




                                                   Laboratório de Microeletrônica e Sistemas
• Criada nos anos 70 pelo departamento de defesa
  dos EUA para documentar o comportamento de
  ASICs usados nos equipamentos militares.
• Tornou‐se um padrão do IEEE em 1987 (IEEE
  1076 – 1987 ou VHDL’87)
• Foi revisado em 1993 (IEEE 1076 – 1993 ou
  VHDL’93)
5


Plano da exposição
• Histórico
• Aspectos Gerais da Linguagem




                                         Laboratório de Microeletrônica e Sistemas
• Tipos, operadores e bibliotecas
  padrões.
• Comandos concorrentes e sequenciais.
• Verificaçãoe síntese de sistemas
  digitais.
• Introdução ao Quartus II.
6


Aspectos gerais
                   Entidade e arquitetura.




                                             Laboratório de Microeletrônica e Sistemas
                  • Entidade: definição da
                    interface.
                  • Arquitetura:
                    comportamental e
                    estrutural.
Modelando a interface
                                                                    7




Laboratório de Microeletrônica e Sistemas
8


Modelando a arquitetura
• Corpo do módulo (architecture)
– Descreve uma implementação do módulo




                                            Laboratório de Microeletrônica e Sistemas
– Pode haver diversas implementações de
uma
mesma entidade.
• Descrição comportamental: Fornece
explicitamente a relação entre as
entradas e as
saídas
• Descrição estrutural: Permite construir
funções lógicas a partir da combinação
de elementos mais primitivos
Declarando uma arquitetura
                                                                         9




Laboratório de Microeletrônica e Sistemas
10


Modelo estrutural
•Numa descrição VHDL estrutural, um
módulo lógico é criado pela conexão




                                       Laboratório de Microeletrônica e Sistemas
de
módulos mais simples;
11


Modelo estrutural em VHDL
entity Funcao_G is port ( a, b, c, d: in bit; f : out bit );
end Funcao_G;
architecture G_estrtural of Funcao_G is
--------------------------------------------




                                                                Laboratório de Microeletrônica e Sistemas
component Funcao_A is port ( x, y: in bit; z : out bit );
end component;
--------------------------------------------
component Funcao_O is port ( x, y: in bit; z : out bit );
end component;
--------------------------------------------
signal X1, X2 : bit
--------------------------------------------
begin
A1: Funcao_A port map (a, b, X1);
A2: Funcao_A port map (c, d, X2);
O1: Funcao_A port map (X1, X2, f);
end G_estrtural;
Modelando atrasos em VHDL
                                                                        12




Laboratório de Microeletrônica e Sistemas
Palavras binárias
                                                                13




Laboratório de Microeletrônica e Sistemas
14


Identificadores válidos em VHDL
• Caracteres alfanuméricos: A‐Z, a‐z, 0‐9;
• Símbolo de sublinhado ‘_’ desde que não




                                              Laboratório de Microeletrônica e Sistemas
seja no início ou fim de um identificador.
• Um identificador deve sempre começar por
uma letra;
•Não é permitido utilizar dois ‘_’ em
seqüência
• VHDL não distingue letras maiúsculas de
minúsculas. VHdl é idêntico a vhDL.
15


Plano da exposição
• Histórico
• Aspectos Gerais da Linguagem




                                         Laboratório de Microeletrônica e Sistemas
• Tipos, operadores e bibliotecas
  padrões.
• Comandos concorrentes e sequenciais.
• Verificaçãoe síntese de sistemas
  digitais.
• Introdução ao Quartus II.
16


Operadores lógicos

              • O operador not tem maior nível de




                                                            Laboratório de Microeletrônica e Sistemas
              precedência
              • Os demais operadores têm mesmo nível
              de precedência. Neste caso a “execução”
              é feita segundo a ordem em que os
              operadores se encontram na expressão: da
              esquerda para a direita. Usar parênteses;
              •Ex.: A expressão Booleana q=a+b.c deve
              ser escrita em VHDL como q<=a or (b and
              c). Caso contrário, se for escrita em VHDL
              como q <=a or b and c, será
              interpretada pelo compilador como
              q=(a+b).c;
17


Operadores relacionais




                                                                  Laboratório de Microeletrônica e Sistemas
• Os operadores relacionais têm maior nível de precedência que
os
operadores lógicos.
•A exceção é o operador not
18


 Bibliotecas
• Coleções de quantidades pré‐definidas e
procedimentos utilizados pelo compilador VHDL.
library Nome_da_biblioteca;




                                                           Laboratório de Microeletrônica e Sistemas
• Podem conter identificadores, tipos de dados,
funções, etc.
• Numa biblioteca, as informações são sepadaras
em
pacotes.
– O pacote IEEE 1164 da biblioteca IEEE é um exemplo de
pacote bastanteutilizado e útil.
library ieee;
use ieee.std_logic_1164.all;
19


Tipos de dados padrão
• Principais tipos definidos no pacote STANDARD
interno à linguagem VHDL:




                                                           Laboratório de Microeletrônica e Sistemas
– INTEGER : operações de número com sinal. Para que
resulte numa construção sintetizável, faz‐se necessário
delimitar o número de bits.
• Ex.: contador : in integer range 0 to 15; ‐‐ 4 bits
– REAL : represntação de números em ponto flutuante.
Usado apenas para simulação, sendo não sintetizável
– BOOLEAN: FALSO or VERDADEIRO
– BIT e BIT_VECTOR:representação de bits ou palavras
binárias. Preferível usar STD_LOGIC.
20


Tipos de dados estendidos
• Definindos no pacote
STD_LOGIC_1164




                                                    Laboratório de Microeletrônica e Sistemas
(“standard logic”)
– Um sinal do tipo STD_LOGIC pode assumir um dos
nove valores abaixo:
• ‘U’= não inicializado
• ‘X’= forçando desconhecido
• ‘0’= 0 forte (nível lógico 0)
• ‘1’= 1 forte (nível lógico 1)
• ‘Z’= alta impedância
• ‘W’= desconhecido fraco
• ‘L’= 0 fraco
• ‘H’= 1 fraco
• ‘‐’= irrelevante (don’t care)
21


 Usando tipos estendidos
• Adicione a biblioteca IEEE library no início do arquivo
VHDL e referencie o pacote desejado:




                                                                      Laboratório de Microeletrônica e Sistemas
library ieee;
use ieee.std_logic_1164.all;
• O tipo STD_LOGIC_VECTOR type é equivalente de uma matriz de BITs
• STD_LOGIC and STD_LOGIC_VECTOR são os tipos de dados mais
comumente usados:
– Permite o uso de sinais em estado de alta‐ impedância
– Permite simular corrtamente
– Deve ser usado sempre que possível!
22


Usando tipos estendidos
• Exemplo de atribuição de valores
– data_bit <= ‘1’;
– data_bus <=“110011”;




                                                                                  Laboratório de Microeletrônica e Sistemas
– data_bus <= bitA & bitB & bitC & bitD; ‐‐ concatena bits para formar um vetor
• Bits individuais devem estar entre aspas simples (‘ b‘)
• Cadeias de bits são delimitadas por aspas duplas (“bbbb”)
• O operador de atribuição deve ser “<=“
• “&”não é o mesmo que “AND” (programadores da
linguagem C tende a fazer a confusão)
23


A cláusula OTHERS
• Seu código pode se tornar mais portátil e mais fácil de
atualizar com o uso de others.




                                                             Laboratório de Microeletrônica e Sistemas
– Ex.1:
• count <=“00010”;
– Ex.2:
• count <= ( 1 => ‘1’, others => ‘0’ );
• O sinal “count” pode ser facilmente mudado de 5 para 10
bits no exemplo onde others é usada.
24


Plano da exposição
• Histórico
• Aspectos Gerais da Linguagem




                                         Laboratório de Microeletrônica e Sistemas
• Tipos, operadores e bibliotecas
  padrões.
• Comandos concorrentes e sequenciais.
• Verificaçãoe síntese de sistemas
  digitais.
• Introdução ao Quartus II.
25


Comandos concorrentes
• Comandos concorrentes são
  executados conjuntamente, sendo




                                      Laboratório de Microeletrônica e Sistemas
  irrelevante a seqüência como são
  apresentados.
26


Operações concorrentes
• As palavras‐chave not, and, or, xor, nand,
nor e xnor são utilizadas para descrever o




                                                 Laboratório de Microeletrônica e Sistemas
que se chama de operações concorrentes.
•Neste caso uma operação é executada sem
observar qualquer limitação ou restrição de
tempo.
•Na expressão q <= a or b and c, o valor de q
é
atualizado toda vez que houver uma
mudança no estado das entradas a, b ou c.
27


Atribuição a um sinal
• Pode ocorrer em regiões de código
concorrente ou seqüencial.




                                               Laboratório de Microeletrônica e Sistemas
• Emprega o delimitador ” <= ”.
• Transferência de valores entre objetos de
tipos diferentes não é permitida.
28


 Construção WHEN ELSE
• Permite transferência condicional de um
sinal.




                                                     Laboratório de Microeletrônica e Sistemas
sinal_destino <= expressao_a WHEN condicao_1 ELSE
                 expressao_b WHEN condicao_2 ELSE
                  expressao_c;
29


Construção WHEN ELSE
Exemplo:




                                                                  Laboratório de Microeletrônica e Sistemas
entity somador is port ( a, b, ci : in bit; s, co : out bit );
end somador;

architecture somaDtFw of somador is begin
s <= ‘1’ when (a=‘1’ and b=‘0’ and ci= ‘0’) else
‘1’ when (a=‘0’ and b=‘1’ and ci= ‘0’) else
‘1’ when (a=‘0’ and b=‘0’ and ci= ‘1’) else
‘1’ when (a=‘1’ and b=‘1’ and ci= ‘1’) else
‘0’;
co <= ‘1’ when (a=‘1’ and b=‘1’ and ci= ‘0’) else
‘1’ when (a=‘1’ and b=‘0’ and ci= ‘1’) else
‘1’ when (a=‘0’ and b=‘1’ and ci= ‘1’) else
‘1’ when (a=‘1’ and b=‘1’ and ci= ‘1’) else
‘0’;
end somaDtFw;
30


 Construção WITH SELECT
• Transfere um valor a um sinal de destino
segundo uma relação de opções.




                                                Laboratório de Microeletrônica e Sistemas
sinal_destino <= expressao_a WHEN condicao_1
                 expressao_b WHEN condicao_2
                 expressao_c WHEN condicao_3
                  expressao_d WHEN OTHERS;
31


Comandos seqüenciais
• Comandos seqüenciais ficam contidos
  em regiões do código chamados de




                                         Laboratório de Microeletrônica e Sistemas
  PROCESSOS. “PROCESS”
32


Lista de sensibilidade
• PROCESS é um comando
  concorrente.




                                           Laboratório de Microeletrônica e Sistemas
• A região delimitada por um processo
  contém comandos que são executados
  de forma seqüencial.
• A lista de sensibilidade possui uma
  lista de sinais que causam a execução
  de um processo.
• PROCESS (lista de sensibilidade)
33


 Construção IF ELSE
• Permite a execução condicional de um ou
mais comandos seqüenciais.




                                             Laboratório de Microeletrônica e Sistemas
IF condicao_1 THEN
 comando_sequencial;
 comando_sequencial;
ELSIF condicao_2 THEN
 comando_sequencial;
 comando_sequencial;
ELSE
 comando_sequencial;
END IF;
34


 Construção IF ELSE aninhadas
IF condicao_1 THEN
 IF condicao_2 THEN
  comando_sequencial;




                                 Laboratório de Microeletrônica e Sistemas
 ELSE
  comando_sequencial;
 END IF;
ELSE
 IF condicao_3 THEN
  comando_sequencial;
 ELSE
  comando_sequencial;
 END IF;
END IF;
35


 Construção CASE WHEN
• Permite a execução condicional de um ou
mais comandos seqüenciais, conforme o




                                             Laboratório de Microeletrônica e Sistemas
valor de uma expressão.

CASE expressao IS
 WHEN condicao_1 => comando_a;
 WHEN condicao_2 => comando_b;
 WHEN condicao_3 => comando_c;
 WHEN OTHERS => comando_d;
END CASE;
36


 Comando WAIT
• Suspende a execução de um processo.
• Somente usado em processos que não




                                         Laboratório de Microeletrônica e Sistemas
contem lista de sensibilidades.

WAIT ON lista_de_sensibilidade;
WAIT UNTIL expressao_booleana;
WAIT FOR tempo;
37


Plano da exposição
• Histórico
• Aspectos Gerais da Linguagem




                                         Laboratório de Microeletrônica e Sistemas
• Tipos, operadores e bibliotecas
  padrões.
• Comandos concorrentes e sequenciais.
• Verificação e síntese de sistemas
  digitais.
• Introdução ao Quartus II
Fluxo de projeto com HDL
                                                                       38




Laboratório de Microeletrônica e Sistemas
Verificação
                                                          39




Laboratório de Microeletrônica e Sistemas
Síntese
                                                      40




Laboratório de Microeletrônica e Sistemas
Etapa final do projeto
                                                                     41




Laboratório de Microeletrônica e Sistemas
42


Plano da exposição
• Histórico
• Aspectos Gerais da Linguagem




                                         Laboratório de Microeletrônica e Sistemas
• Tipos, operadores e bibliotecas
  padrões.
• Comandos concorrentes e sequenciais.
• Verificação e síntese de sistemas
  digitais.
• Introdução ao Quartus II
43


Introdução ao Quartus II
• Ferramenta totalmente integrada
• Entrada do projeto por múltiplos métodos




                                              Laboratório de Microeletrônica e Sistemas
• Síntese lógica
• Place & Route
• Simulação
• Timing & Power Analysis
• Programação do dispositivo
• Permite a integração de ferramentas EDA
de terceiros.
44


Ciclo de projeto com o Quartus II

• Definir um novo projeto




                                             Laboratório de Microeletrônica e Sistemas
• Conceber os módulos em VHDL, Verilog ou
AHDL.
• Os módulos podem também ser criados em
diagramas esquemáticos
• Compilar e simular os módulos.
• Modificar o projeto para atender as
especificações
• Fazer download do projeto para a FPGA

Mais conteúdo relacionado

Mais procurados

TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...tdc-globalcode
 
Aula 1 - Assembly - 8051
Aula 1 - Assembly - 8051Aula 1 - Assembly - 8051
Aula 1 - Assembly - 8051Thiago Oliveira
 
Fundamentos de VHDL em Lógica Programável v1.1
Fundamentos de VHDL em Lógica Programável v1.1Fundamentos de VHDL em Lógica Programável v1.1
Fundamentos de VHDL em Lógica Programável v1.1Alcides Costa
 
Open Cores: Projeto Open "Hardware" com FPGA
Open Cores: Projeto Open "Hardware" com FPGAOpen Cores: Projeto Open "Hardware" com FPGA
Open Cores: Projeto Open "Hardware" com FPGACampus Party Brasil
 
Linguagens De ProgramaçãO Clp
Linguagens De ProgramaçãO ClpLinguagens De ProgramaçãO Clp
Linguagens De ProgramaçãO ClpJÚLIO PEIXOTO
 

Mais procurados (6)

TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
 
Slides psd 200607_1-70
Slides psd 200607_1-70Slides psd 200607_1-70
Slides psd 200607_1-70
 
Aula 1 - Assembly - 8051
Aula 1 - Assembly - 8051Aula 1 - Assembly - 8051
Aula 1 - Assembly - 8051
 
Fundamentos de VHDL em Lógica Programável v1.1
Fundamentos de VHDL em Lógica Programável v1.1Fundamentos de VHDL em Lógica Programável v1.1
Fundamentos de VHDL em Lógica Programável v1.1
 
Open Cores: Projeto Open "Hardware" com FPGA
Open Cores: Projeto Open "Hardware" com FPGAOpen Cores: Projeto Open "Hardware" com FPGA
Open Cores: Projeto Open "Hardware" com FPGA
 
Linguagens De ProgramaçãO Clp
Linguagens De ProgramaçãO ClpLinguagens De ProgramaçãO Clp
Linguagens De ProgramaçãO Clp
 

Semelhante a VHDL Introdução

Aula 1 introdução a VHDL 2016.pdf
Aula 1 introdução a VHDL 2016.pdfAula 1 introdução a VHDL 2016.pdf
Aula 1 introdução a VHDL 2016.pdfDeboraMateus3
 
3b5d17 748a8b99e224a1bf91f42123e5388634
3b5d17 748a8b99e224a1bf91f42123e53886343b5d17 748a8b99e224a1bf91f42123e5388634
3b5d17 748a8b99e224a1bf91f42123e5388634JADSON SANTOS
 
Arquitetura de Computadores - Lecom - UFMG
Arquitetura de Computadores - Lecom - UFMGArquitetura de Computadores - Lecom - UFMG
Arquitetura de Computadores - Lecom - UFMGdjonatascostsa
 
Projeto Digital e Arquitetura de Computadores
Projeto Digital e Arquitetura de ComputadoresProjeto Digital e Arquitetura de Computadores
Projeto Digital e Arquitetura de ComputadoresSylvio Silveira Santos
 
18.ago esmeralda 15.00_321_cpfl paulista
18.ago esmeralda 15.00_321_cpfl paulista18.ago esmeralda 15.00_321_cpfl paulista
18.ago esmeralda 15.00_321_cpfl paulistaitgfiles
 
Ferramentas de Programação Paralela para Arquiteturas Multicore
Ferramentas de Programação Paralela para Arquiteturas MulticoreFerramentas de Programação Paralela para Arquiteturas Multicore
Ferramentas de Programação Paralela para Arquiteturas MulticoreHelton Ritter
 
Relatório multiplexadores e decodificadores
Relatório multiplexadores e decodificadoresRelatório multiplexadores e decodificadores
Relatório multiplexadores e decodificadoresFlavio Oliveira Rodrigues
 
Linguagem c-para-microcontroladores
Linguagem c-para-microcontroladoresLinguagem c-para-microcontroladores
Linguagem c-para-microcontroladores34macchia34
 
Sistemas Distribuídos - Aula 11 - Sistemas Operacionais Distribuídos
Sistemas Distribuídos - Aula 11 - Sistemas Operacionais DistribuídosSistemas Distribuídos - Aula 11 - Sistemas Operacionais Distribuídos
Sistemas Distribuídos - Aula 11 - Sistemas Operacionais DistribuídosArthur Emanuel
 
Apostila Redes Industriais - Prof. Camilo A. Anauate
Apostila Redes Industriais - Prof. Camilo A. AnauateApostila Redes Industriais - Prof. Camilo A. Anauate
Apostila Redes Industriais - Prof. Camilo A. Anauate Camilo Alberto Anauate
 
Unidade 05 introdução a computação - redes de computadores - 15-03-03 - 47 ...
Unidade 05   introdução a computação - redes de computadores - 15-03-03 - 47 ...Unidade 05   introdução a computação - redes de computadores - 15-03-03 - 47 ...
Unidade 05 introdução a computação - redes de computadores - 15-03-03 - 47 ...Alex Casañas
 
Unidade 05 introdução a computação - redes de computadores - 15-03-03 - 47 ...
Unidade 05   introdução a computação - redes de computadores - 15-03-03 - 47 ...Unidade 05   introdução a computação - redes de computadores - 15-03-03 - 47 ...
Unidade 05 introdução a computação - redes de computadores - 15-03-03 - 47 ...Alex Casañas
 
Geração Automática de Autómatos Celulares para FPGA
Geração Automática de Autómatos Celulares para FPGAGeração Automática de Autómatos Celulares para FPGA
Geração Automática de Autómatos Celulares para FPGAAndré Costa Lima
 
Apresentação TCC - Braço Robótico para fins didáticos
Apresentação TCC - Braço Robótico para fins didáticosApresentação TCC - Braço Robótico para fins didáticos
Apresentação TCC - Braço Robótico para fins didáticosHerbert Guimaraes
 

Semelhante a VHDL Introdução (20)

02 entidade projeto-vhd-ivanl
02   entidade projeto-vhd-ivanl02   entidade projeto-vhd-ivanl
02 entidade projeto-vhd-ivanl
 
Aula 1 introdução a VHDL 2016.pdf
Aula 1 introdução a VHDL 2016.pdfAula 1 introdução a VHDL 2016.pdf
Aula 1 introdução a VHDL 2016.pdf
 
3b5d17 748a8b99e224a1bf91f42123e5388634
3b5d17 748a8b99e224a1bf91f42123e53886343b5d17 748a8b99e224a1bf91f42123e5388634
3b5d17 748a8b99e224a1bf91f42123e5388634
 
Arquitetura de Computadores - Lecom - UFMG
Arquitetura de Computadores - Lecom - UFMGArquitetura de Computadores - Lecom - UFMG
Arquitetura de Computadores - Lecom - UFMG
 
Redes2 aula02
Redes2 aula02Redes2 aula02
Redes2 aula02
 
Projeto Digital e Arquitetura de Computadores
Projeto Digital e Arquitetura de ComputadoresProjeto Digital e Arquitetura de Computadores
Projeto Digital e Arquitetura de Computadores
 
18.ago esmeralda 15.00_321_cpfl paulista
18.ago esmeralda 15.00_321_cpfl paulista18.ago esmeralda 15.00_321_cpfl paulista
18.ago esmeralda 15.00_321_cpfl paulista
 
Lab2 vhdl fluxo_quartus
Lab2 vhdl fluxo_quartusLab2 vhdl fluxo_quartus
Lab2 vhdl fluxo_quartus
 
Ferramentas de Programação Paralela para Arquiteturas Multicore
Ferramentas de Programação Paralela para Arquiteturas MulticoreFerramentas de Programação Paralela para Arquiteturas Multicore
Ferramentas de Programação Paralela para Arquiteturas Multicore
 
Relatório multiplexadores e decodificadores
Relatório multiplexadores e decodificadoresRelatório multiplexadores e decodificadores
Relatório multiplexadores e decodificadores
 
SDAC 12º - M9 TGEI
SDAC 12º - M9 TGEISDAC 12º - M9 TGEI
SDAC 12º - M9 TGEI
 
Linguagem c-para-microcontroladores
Linguagem c-para-microcontroladoresLinguagem c-para-microcontroladores
Linguagem c-para-microcontroladores
 
C pic
C picC pic
C pic
 
Sistemas Distribuídos - Aula 11 - Sistemas Operacionais Distribuídos
Sistemas Distribuídos - Aula 11 - Sistemas Operacionais DistribuídosSistemas Distribuídos - Aula 11 - Sistemas Operacionais Distribuídos
Sistemas Distribuídos - Aula 11 - Sistemas Operacionais Distribuídos
 
Apostila Redes Industriais - Prof. Camilo A. Anauate
Apostila Redes Industriais - Prof. Camilo A. AnauateApostila Redes Industriais - Prof. Camilo A. Anauate
Apostila Redes Industriais - Prof. Camilo A. Anauate
 
Unidade 05 introdução a computação - redes de computadores - 15-03-03 - 47 ...
Unidade 05   introdução a computação - redes de computadores - 15-03-03 - 47 ...Unidade 05   introdução a computação - redes de computadores - 15-03-03 - 47 ...
Unidade 05 introdução a computação - redes de computadores - 15-03-03 - 47 ...
 
Unidade 05 introdução a computação - redes de computadores - 15-03-03 - 47 ...
Unidade 05   introdução a computação - redes de computadores - 15-03-03 - 47 ...Unidade 05   introdução a computação - redes de computadores - 15-03-03 - 47 ...
Unidade 05 introdução a computação - redes de computadores - 15-03-03 - 47 ...
 
Geração Automática de Autómatos Celulares para FPGA
Geração Automática de Autómatos Celulares para FPGAGeração Automática de Autómatos Celulares para FPGA
Geração Automática de Autómatos Celulares para FPGA
 
Aula VHDL
Aula VHDLAula VHDL
Aula VHDL
 
Apresentação TCC - Braço Robótico para fins didáticos
Apresentação TCC - Braço Robótico para fins didáticosApresentação TCC - Braço Robótico para fins didáticos
Apresentação TCC - Braço Robótico para fins didáticos
 

VHDL Introdução

  • 1. Prototipagem de  Sistemas Digitais brito_ufrn@ieee.org Francisco Brito Introdução a VHDL
  • 2. 2 Plano da exposição • Histórico • Aspectos Gerais da Linguagem Laboratório de Microeletrônica e Sistemas • Tipos, operadores e bibliotecas padrões. • Comandos concorrentes e sequenciais. • Verificação e síntese de sistemas digitais. • Introdução ao Quartus II
  • 3. 3 Plano da exposição • Histórico • Aspectos Gerais da Linguagem Laboratório de Microeletrônica e Sistemas • Tipos, operadores e bibliotecas padrões. • Comandos concorrentes e sequenciais. • Verificaçãoe síntese de sistemas digitais. • Introdução ao Quartus II.
  • 4. 4 Histórico • VHDL – The VHSIC Hardware Description Language Laboratório de Microeletrônica e Sistemas • Criada nos anos 70 pelo departamento de defesa dos EUA para documentar o comportamento de ASICs usados nos equipamentos militares. • Tornou‐se um padrão do IEEE em 1987 (IEEE 1076 – 1987 ou VHDL’87) • Foi revisado em 1993 (IEEE 1076 – 1993 ou VHDL’93)
  • 5. 5 Plano da exposição • Histórico • Aspectos Gerais da Linguagem Laboratório de Microeletrônica e Sistemas • Tipos, operadores e bibliotecas padrões. • Comandos concorrentes e sequenciais. • Verificaçãoe síntese de sistemas digitais. • Introdução ao Quartus II.
  • 6. 6 Aspectos gerais Entidade e arquitetura. Laboratório de Microeletrônica e Sistemas • Entidade: definição da interface. • Arquitetura: comportamental e estrutural.
  • 7. Modelando a interface 7 Laboratório de Microeletrônica e Sistemas
  • 8. 8 Modelando a arquitetura • Corpo do módulo (architecture) – Descreve uma implementação do módulo Laboratório de Microeletrônica e Sistemas – Pode haver diversas implementações de uma mesma entidade. • Descrição comportamental: Fornece explicitamente a relação entre as entradas e as saídas • Descrição estrutural: Permite construir funções lógicas a partir da combinação de elementos mais primitivos
  • 9. Declarando uma arquitetura 9 Laboratório de Microeletrônica e Sistemas
  • 10. 10 Modelo estrutural •Numa descrição VHDL estrutural, um módulo lógico é criado pela conexão Laboratório de Microeletrônica e Sistemas de módulos mais simples;
  • 11. 11 Modelo estrutural em VHDL entity Funcao_G is port ( a, b, c, d: in bit; f : out bit ); end Funcao_G; architecture G_estrtural of Funcao_G is -------------------------------------------- Laboratório de Microeletrônica e Sistemas component Funcao_A is port ( x, y: in bit; z : out bit ); end component; -------------------------------------------- component Funcao_O is port ( x, y: in bit; z : out bit ); end component; -------------------------------------------- signal X1, X2 : bit -------------------------------------------- begin A1: Funcao_A port map (a, b, X1); A2: Funcao_A port map (c, d, X2); O1: Funcao_A port map (X1, X2, f); end G_estrtural;
  • 12. Modelando atrasos em VHDL 12 Laboratório de Microeletrônica e Sistemas
  • 13. Palavras binárias 13 Laboratório de Microeletrônica e Sistemas
  • 14. 14 Identificadores válidos em VHDL • Caracteres alfanuméricos: A‐Z, a‐z, 0‐9; • Símbolo de sublinhado ‘_’ desde que não Laboratório de Microeletrônica e Sistemas seja no início ou fim de um identificador. • Um identificador deve sempre começar por uma letra; •Não é permitido utilizar dois ‘_’ em seqüência • VHDL não distingue letras maiúsculas de minúsculas. VHdl é idêntico a vhDL.
  • 15. 15 Plano da exposição • Histórico • Aspectos Gerais da Linguagem Laboratório de Microeletrônica e Sistemas • Tipos, operadores e bibliotecas padrões. • Comandos concorrentes e sequenciais. • Verificaçãoe síntese de sistemas digitais. • Introdução ao Quartus II.
  • 16. 16 Operadores lógicos • O operador not tem maior nível de Laboratório de Microeletrônica e Sistemas precedência • Os demais operadores têm mesmo nível de precedência. Neste caso a “execução” é feita segundo a ordem em que os operadores se encontram na expressão: da esquerda para a direita. Usar parênteses; •Ex.: A expressão Booleana q=a+b.c deve ser escrita em VHDL como q<=a or (b and c). Caso contrário, se for escrita em VHDL como q <=a or b and c, será interpretada pelo compilador como q=(a+b).c;
  • 17. 17 Operadores relacionais Laboratório de Microeletrônica e Sistemas • Os operadores relacionais têm maior nível de precedência que os operadores lógicos. •A exceção é o operador not
  • 18. 18 Bibliotecas • Coleções de quantidades pré‐definidas e procedimentos utilizados pelo compilador VHDL. library Nome_da_biblioteca; Laboratório de Microeletrônica e Sistemas • Podem conter identificadores, tipos de dados, funções, etc. • Numa biblioteca, as informações são sepadaras em pacotes. – O pacote IEEE 1164 da biblioteca IEEE é um exemplo de pacote bastanteutilizado e útil. library ieee; use ieee.std_logic_1164.all;
  • 19. 19 Tipos de dados padrão • Principais tipos definidos no pacote STANDARD interno à linguagem VHDL: Laboratório de Microeletrônica e Sistemas – INTEGER : operações de número com sinal. Para que resulte numa construção sintetizável, faz‐se necessário delimitar o número de bits. • Ex.: contador : in integer range 0 to 15; ‐‐ 4 bits – REAL : represntação de números em ponto flutuante. Usado apenas para simulação, sendo não sintetizável – BOOLEAN: FALSO or VERDADEIRO – BIT e BIT_VECTOR:representação de bits ou palavras binárias. Preferível usar STD_LOGIC.
  • 20. 20 Tipos de dados estendidos • Definindos no pacote STD_LOGIC_1164 Laboratório de Microeletrônica e Sistemas (“standard logic”) – Um sinal do tipo STD_LOGIC pode assumir um dos nove valores abaixo: • ‘U’= não inicializado • ‘X’= forçando desconhecido • ‘0’= 0 forte (nível lógico 0) • ‘1’= 1 forte (nível lógico 1) • ‘Z’= alta impedância • ‘W’= desconhecido fraco • ‘L’= 0 fraco • ‘H’= 1 fraco • ‘‐’= irrelevante (don’t care)
  • 21. 21 Usando tipos estendidos • Adicione a biblioteca IEEE library no início do arquivo VHDL e referencie o pacote desejado: Laboratório de Microeletrônica e Sistemas library ieee; use ieee.std_logic_1164.all; • O tipo STD_LOGIC_VECTOR type é equivalente de uma matriz de BITs • STD_LOGIC and STD_LOGIC_VECTOR são os tipos de dados mais comumente usados: – Permite o uso de sinais em estado de alta‐ impedância – Permite simular corrtamente – Deve ser usado sempre que possível!
  • 22. 22 Usando tipos estendidos • Exemplo de atribuição de valores – data_bit <= ‘1’; – data_bus <=“110011”; Laboratório de Microeletrônica e Sistemas – data_bus <= bitA & bitB & bitC & bitD; ‐‐ concatena bits para formar um vetor • Bits individuais devem estar entre aspas simples (‘ b‘) • Cadeias de bits são delimitadas por aspas duplas (“bbbb”) • O operador de atribuição deve ser “<=“ • “&”não é o mesmo que “AND” (programadores da linguagem C tende a fazer a confusão)
  • 23. 23 A cláusula OTHERS • Seu código pode se tornar mais portátil e mais fácil de atualizar com o uso de others. Laboratório de Microeletrônica e Sistemas – Ex.1: • count <=“00010”; – Ex.2: • count <= ( 1 => ‘1’, others => ‘0’ ); • O sinal “count” pode ser facilmente mudado de 5 para 10 bits no exemplo onde others é usada.
  • 24. 24 Plano da exposição • Histórico • Aspectos Gerais da Linguagem Laboratório de Microeletrônica e Sistemas • Tipos, operadores e bibliotecas padrões. • Comandos concorrentes e sequenciais. • Verificaçãoe síntese de sistemas digitais. • Introdução ao Quartus II.
  • 25. 25 Comandos concorrentes • Comandos concorrentes são executados conjuntamente, sendo Laboratório de Microeletrônica e Sistemas irrelevante a seqüência como são apresentados.
  • 26. 26 Operações concorrentes • As palavras‐chave not, and, or, xor, nand, nor e xnor são utilizadas para descrever o Laboratório de Microeletrônica e Sistemas que se chama de operações concorrentes. •Neste caso uma operação é executada sem observar qualquer limitação ou restrição de tempo. •Na expressão q <= a or b and c, o valor de q é atualizado toda vez que houver uma mudança no estado das entradas a, b ou c.
  • 27. 27 Atribuição a um sinal • Pode ocorrer em regiões de código concorrente ou seqüencial. Laboratório de Microeletrônica e Sistemas • Emprega o delimitador ” <= ”. • Transferência de valores entre objetos de tipos diferentes não é permitida.
  • 28. 28 Construção WHEN ELSE • Permite transferência condicional de um sinal. Laboratório de Microeletrônica e Sistemas sinal_destino <= expressao_a WHEN condicao_1 ELSE expressao_b WHEN condicao_2 ELSE expressao_c;
  • 29. 29 Construção WHEN ELSE Exemplo: Laboratório de Microeletrônica e Sistemas entity somador is port ( a, b, ci : in bit; s, co : out bit ); end somador; architecture somaDtFw of somador is begin s <= ‘1’ when (a=‘1’ and b=‘0’ and ci= ‘0’) else ‘1’ when (a=‘0’ and b=‘1’ and ci= ‘0’) else ‘1’ when (a=‘0’ and b=‘0’ and ci= ‘1’) else ‘1’ when (a=‘1’ and b=‘1’ and ci= ‘1’) else ‘0’; co <= ‘1’ when (a=‘1’ and b=‘1’ and ci= ‘0’) else ‘1’ when (a=‘1’ and b=‘0’ and ci= ‘1’) else ‘1’ when (a=‘0’ and b=‘1’ and ci= ‘1’) else ‘1’ when (a=‘1’ and b=‘1’ and ci= ‘1’) else ‘0’; end somaDtFw;
  • 30. 30 Construção WITH SELECT • Transfere um valor a um sinal de destino segundo uma relação de opções. Laboratório de Microeletrônica e Sistemas sinal_destino <= expressao_a WHEN condicao_1 expressao_b WHEN condicao_2 expressao_c WHEN condicao_3 expressao_d WHEN OTHERS;
  • 31. 31 Comandos seqüenciais • Comandos seqüenciais ficam contidos em regiões do código chamados de Laboratório de Microeletrônica e Sistemas PROCESSOS. “PROCESS”
  • 32. 32 Lista de sensibilidade • PROCESS é um comando concorrente. Laboratório de Microeletrônica e Sistemas • A região delimitada por um processo contém comandos que são executados de forma seqüencial. • A lista de sensibilidade possui uma lista de sinais que causam a execução de um processo. • PROCESS (lista de sensibilidade)
  • 33. 33 Construção IF ELSE • Permite a execução condicional de um ou mais comandos seqüenciais. Laboratório de Microeletrônica e Sistemas IF condicao_1 THEN comando_sequencial; comando_sequencial; ELSIF condicao_2 THEN comando_sequencial; comando_sequencial; ELSE comando_sequencial; END IF;
  • 34. 34 Construção IF ELSE aninhadas IF condicao_1 THEN IF condicao_2 THEN comando_sequencial; Laboratório de Microeletrônica e Sistemas ELSE comando_sequencial; END IF; ELSE IF condicao_3 THEN comando_sequencial; ELSE comando_sequencial; END IF; END IF;
  • 35. 35 Construção CASE WHEN • Permite a execução condicional de um ou mais comandos seqüenciais, conforme o Laboratório de Microeletrônica e Sistemas valor de uma expressão. CASE expressao IS WHEN condicao_1 => comando_a; WHEN condicao_2 => comando_b; WHEN condicao_3 => comando_c; WHEN OTHERS => comando_d; END CASE;
  • 36. 36 Comando WAIT • Suspende a execução de um processo. • Somente usado em processos que não Laboratório de Microeletrônica e Sistemas contem lista de sensibilidades. WAIT ON lista_de_sensibilidade; WAIT UNTIL expressao_booleana; WAIT FOR tempo;
  • 37. 37 Plano da exposição • Histórico • Aspectos Gerais da Linguagem Laboratório de Microeletrônica e Sistemas • Tipos, operadores e bibliotecas padrões. • Comandos concorrentes e sequenciais. • Verificação e síntese de sistemas digitais. • Introdução ao Quartus II
  • 38. Fluxo de projeto com HDL 38 Laboratório de Microeletrônica e Sistemas
  • 39. Verificação 39 Laboratório de Microeletrônica e Sistemas
  • 40. Síntese 40 Laboratório de Microeletrônica e Sistemas
  • 41. Etapa final do projeto 41 Laboratório de Microeletrônica e Sistemas
  • 42. 42 Plano da exposição • Histórico • Aspectos Gerais da Linguagem Laboratório de Microeletrônica e Sistemas • Tipos, operadores e bibliotecas padrões. • Comandos concorrentes e sequenciais. • Verificação e síntese de sistemas digitais. • Introdução ao Quartus II
  • 43. 43 Introdução ao Quartus II • Ferramenta totalmente integrada • Entrada do projeto por múltiplos métodos Laboratório de Microeletrônica e Sistemas • Síntese lógica • Place & Route • Simulação • Timing & Power Analysis • Programação do dispositivo • Permite a integração de ferramentas EDA de terceiros.
  • 44. 44 Ciclo de projeto com o Quartus II • Definir um novo projeto Laboratório de Microeletrônica e Sistemas • Conceber os módulos em VHDL, Verilog ou AHDL. • Os módulos podem também ser criados em diagramas esquemáticos • Compilar e simular os módulos. • Modificar o projeto para atender as especificações • Fazer download do projeto para a FPGA