Prototipagem de                       Sistemas Digitaisbrito_ufrn@ieee.orgFrancisco Brito                                 ...
2Plano da exposição• Histórico• Aspectos Gerais da Linguagem                                         Laboratório de Microe...
3Plano da exposição• Histórico• Aspectos Gerais da Linguagem                                         Laboratório de Microe...
4 Histórico• VHDL – The VHSIC Hardware Description  Language                                                   Laboratório...
5Plano da exposição• Histórico• Aspectos Gerais da Linguagem                                         Laboratório de Microe...
6Aspectos gerais                   Entidade e arquitetura.                                             Laboratório de Micr...
Modelando a interface                                                                    7Laboratório de Microeletrônica e...
8Modelando a arquitetura• Corpo do módulo (architecture)– Descreve uma implementação do módulo                            ...
Declarando uma arquitetura                                                                         9Laboratório de Microel...
10Modelo estrutural•Numa descrição VHDL estrutural, ummódulo lógico é criado pela conexão                                 ...
11Modelo estrutural em VHDLentity Funcao_G is port ( a, b, c, d: in bit; f : out bit );end Funcao_G;architecture G_estrtur...
Modelando atrasos em VHDL                                                                        12Laboratório de Microele...
Palavras binárias                                                                13Laboratório de Microeletrônica e Sistemas
14Identificadores válidos em VHDL• Caracteres alfanuméricos: A‐Z, a‐z, 0‐9;• Símbolo de sublinhado ‘_’ desde que não      ...
15Plano da exposição• Histórico• Aspectos Gerais da Linguagem                                         Laboratório de Micro...
16Operadores lógicos              • O operador not tem maior nível de                                                     ...
17Operadores relacionais                                                                  Laboratório de Microeletrônica e...
18 Bibliotecas• Coleções de quantidades pré‐definidas eprocedimentos utilizados pelo compilador VHDL.library Nome_da_bibli...
19Tipos de dados padrão• Principais tipos definidos no pacote STANDARDinterno à linguagem VHDL:                           ...
20Tipos de dados estendidos• Definindos no pacoteSTD_LOGIC_1164                                                    Laborat...
21 Usando tipos estendidos• Adicione a biblioteca IEEE library no início do arquivoVHDL e referencie o pacote desejado:   ...
22Usando tipos estendidos• Exemplo de atribuição de valores– data_bit <= ‘1’;– data_bus <=“110011”;                       ...
23A cláusula OTHERS• Seu código pode se tornar mais portátil e mais fácil deatualizar com o uso de others.                ...
24Plano da exposição• Histórico• Aspectos Gerais da Linguagem                                         Laboratório de Micro...
25Comandos concorrentes• Comandos concorrentes são  executados conjuntamente, sendo                                      L...
26Operações concorrentes• As palavras‐chave not, and, or, xor, nand,nor e xnor são utilizadas para descrever o            ...
27Atribuição a um sinal• Pode ocorrer em regiões de códigoconcorrente ou seqüencial.                                      ...
28 Construção WHEN ELSE• Permite transferência condicional de umsinal.                                                    ...
29Construção WHEN ELSEExemplo:                                                                  Laboratório de Microeletrô...
30 Construção WITH SELECT• Transfere um valor a um sinal de destinosegundo uma relação de opções.                         ...
31Comandos seqüenciais• Comandos seqüenciais ficam contidos  em regiões do código chamados de                             ...
32Lista de sensibilidade• PROCESS é um comando  concorrente.                                           Laboratório de Micr...
33 Construção IF ELSE• Permite a execução condicional de um oumais comandos seqüenciais.                                  ...
34 Construção IF ELSE aninhadasIF condicao_1 THEN IF condicao_2 THEN  comando_sequencial;                                 ...
35 Construção CASE WHEN• Permite a execução condicional de um oumais comandos seqüenciais, conforme o                     ...
36 Comando WAIT• Suspende a execução de um processo.• Somente usado em processos que não                                  ...
37Plano da exposição• Histórico• Aspectos Gerais da Linguagem                                         Laboratório de Micro...
Fluxo de projeto com HDL                                                                       38Laboratório de Microeletr...
Verificação                                                          39Laboratório de Microeletrônica e Sistemas
Síntese                                                      40Laboratório de Microeletrônica e Sistemas
Etapa final do projeto                                                                     41Laboratório de Microeletrônic...
42Plano da exposição• Histórico• Aspectos Gerais da Linguagem                                         Laboratório de Micro...
43Introdução ao Quartus II• Ferramenta totalmente integrada• Entrada do projeto por múltiplos métodos                     ...
44Ciclo de projeto com o Quartus II• Definir um novo projeto                                             Laboratório de Mi...
Upcoming SlideShare
Loading in...5
×

Prototipagem de Sistemas Digitais - Introdução a VHDL

2,042

Published on

Curso de extensão (20h) ministrado na UFRN. O curso foi dado em uma semana, sendo 4h/dia. Foi dividido em parte teórica e parte prática. Estes slides correspondem aos dois primeiros dias de aula, com uma introdução teórica a VHDL e apresentação do fluxo de projeto. A parte de apresentação da ferramenta e do fluxo de projeto com FPGA foi dada de modo "hands-on", com software aberto em cada estação de trabalho. As 3 últimas aulas foram práticas de laboratório utilizando prototipagem a partir do kit de desenvolvimento UP3 da Altera.

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,042
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
88
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Prototipagem de Sistemas Digitais - Introdução a VHDL

  1. 1. Prototipagem de  Sistemas Digitaisbrito_ufrn@ieee.orgFrancisco Brito Introdução a VHDL
  2. 2. 2Plano 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. 3Plano 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. 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. 5Plano 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. 6Aspectos gerais Entidade e arquitetura. Laboratório de Microeletrônica e Sistemas • Entidade: definição da interface. • Arquitetura: comportamental e estrutural.
  7. 7. Modelando a interface 7Laboratório de Microeletrônica e Sistemas
  8. 8. 8Modelando 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 deumamesma entidade.• Descrição comportamental: Forneceexplicitamente a relação entre asentradas e assaídas• Descrição estrutural: Permite construirfunções lógicas a partir da combinaçãode elementos mais primitivos
  9. 9. Declarando uma arquitetura 9Laboratório de Microeletrônica e Sistemas
  10. 10. 10Modelo estrutural•Numa descrição VHDL estrutural, ummódulo lógico é criado pela conexão Laboratório de Microeletrônica e Sistemasdemódulos mais simples;
  11. 11. 11Modelo estrutural em VHDLentity 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 Sistemascomponent 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--------------------------------------------beginA1: 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. 12. Modelando atrasos em VHDL 12Laboratório de Microeletrônica e Sistemas
  13. 13. Palavras binárias 13Laboratório de Microeletrônica e Sistemas
  14. 14. 14Identificadores 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 Sistemasseja no início ou fim de um identificador.• Um identificador deve sempre começar poruma letra;•Não é permitido utilizar dois ‘_’ emseqüência• VHDL não distingue letras maiúsculas deminúsculas. VHdl é idêntico a vhDL.
  15. 15. 15Plano 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. 16Operadores 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. 17Operadores relacionais Laboratório de Microeletrônica e Sistemas• Os operadores relacionais têm maior nível de precedência queosoperadores lógicos.•A exceção é o operador not
  18. 18. 18 Bibliotecas• Coleções de quantidades pré‐definidas eprocedimentos 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 sepadarasempacotes.– O pacote IEEE 1164 da biblioteca IEEE é um exemplo depacote bastanteutilizado e útil.library ieee;use ieee.std_logic_1164.all;
  19. 19. 19Tipos de dados padrão• Principais tipos definidos no pacote STANDARDinterno à linguagem VHDL: Laboratório de Microeletrônica e Sistemas– INTEGER : operações de número com sinal. Para queresulte numa construção sintetizável, faz‐se necessáriodelimitar 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 palavrasbinárias. Preferível usar STD_LOGIC.
  20. 20. 20Tipos de dados estendidos• Definindos no pacoteSTD_LOGIC_1164 Laboratório de Microeletrônica e Sistemas(“standard logic”)– Um sinal do tipo STD_LOGIC pode assumir um dosnove 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. 21 Usando tipos estendidos• Adicione a biblioteca IEEE library no início do arquivoVHDL e referencie o pacote desejado: Laboratório de Microeletrônica e Sistemaslibrary 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 maiscomumente usados:– Permite o uso de sinais em estado de alta‐ impedância– Permite simular corrtamente– Deve ser usado sempre que possível!
  22. 22. 22Usando 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 dalinguagem C tende a fazer a confusão)
  23. 23. 23A cláusula OTHERS• Seu código pode se tornar mais portátil e mais fácil deatualizar 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 10bits no exemplo onde others é usada.
  24. 24. 24Plano 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. 25Comandos 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. 26Operaçõ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 Sistemasque se chama de operações concorrentes.•Neste caso uma operação é executada semobservar qualquer limitação ou restrição detempo.•Na expressão q <= a or b and c, o valor de qéatualizado toda vez que houver umamudança no estado das entradas a, b ou c.
  27. 27. 27Atribuição a um sinal• Pode ocorrer em regiões de códigoconcorrente ou seqüencial. Laboratório de Microeletrônica e Sistemas• Emprega o delimitador ” <= ”.• Transferência de valores entre objetos detipos diferentes não é permitida.
  28. 28. 28 Construção WHEN ELSE• Permite transferência condicional de umsinal. Laboratório de Microeletrônica e Sistemassinal_destino <= expressao_a WHEN condicao_1 ELSE expressao_b WHEN condicao_2 ELSE expressao_c;
  29. 29. 29Construção WHEN ELSEExemplo: Laboratório de Microeletrônica e Sistemasentity somador is port ( a, b, ci : in bit; s, co : out bit );end somador;architecture somaDtFw of somador is begins <= ‘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. 30 Construção WITH SELECT• Transfere um valor a um sinal de destinosegundo uma relação de opções. Laboratório de Microeletrônica e Sistemassinal_destino <= expressao_a WHEN condicao_1 expressao_b WHEN condicao_2 expressao_c WHEN condicao_3 expressao_d WHEN OTHERS;
  31. 31. 31Comandos 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. 32Lista 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. 33 Construção IF ELSE• Permite a execução condicional de um oumais comandos seqüenciais. Laboratório de Microeletrônica e SistemasIF condicao_1 THEN comando_sequencial; comando_sequencial;ELSIF condicao_2 THEN comando_sequencial; comando_sequencial;ELSE comando_sequencial;END IF;
  34. 34. 34 Construção IF ELSE aninhadasIF 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. 35 Construção CASE WHEN• Permite a execução condicional de um oumais comandos seqüenciais, conforme o Laboratório de Microeletrônica e Sistemasvalor 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. 36 Comando WAIT• Suspende a execução de um processo.• Somente usado em processos que não Laboratório de Microeletrônica e Sistemascontem lista de sensibilidades.WAIT ON lista_de_sensibilidade;WAIT UNTIL expressao_booleana;WAIT FOR tempo;
  37. 37. 37Plano 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. 38. Fluxo de projeto com HDL 38Laboratório de Microeletrônica e Sistemas
  39. 39. Verificação 39Laboratório de Microeletrônica e Sistemas
  40. 40. Síntese 40Laboratório de Microeletrônica e Sistemas
  41. 41. Etapa final do projeto 41Laboratório de Microeletrônica e Sistemas
  42. 42. 42Plano 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. 43Introduçã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 EDAde terceiros.
  44. 44. 44Ciclo de projeto com o Quartus II• Definir um novo projeto Laboratório de Microeletrônica e Sistemas• Conceber os módulos em VHDL, Verilog ouAHDL.• Os módulos podem também ser criados emdiagramas esquemáticos• Compilar e simular os módulos.• Modificar o projeto para atender asespecificações• Fazer download do projeto para a FPGA
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×