DISPOSITIVO LÓGICO PROGRAMÁVEL ( FPGA ) LINGUAGEM DE DESCRIÇÃO DE HARDWARE ( VHDL ) - PowerPoint PPT Presentation

dispositivo l gico program vel fpga linguagem de descri o de hardware vhdl n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
DISPOSITIVO LÓGICO PROGRAMÁVEL ( FPGA ) LINGUAGEM DE DESCRIÇÃO DE HARDWARE ( VHDL ) PowerPoint Presentation
Download Presentation
DISPOSITIVO LÓGICO PROGRAMÁVEL ( FPGA ) LINGUAGEM DE DESCRIÇÃO DE HARDWARE ( VHDL )

play fullscreen
1 / 110
DISPOSITIVO LÓGICO PROGRAMÁVEL ( FPGA ) LINGUAGEM DE DESCRIÇÃO DE HARDWARE ( VHDL )
260 Views
Download Presentation
tomasso-davock
Download Presentation

DISPOSITIVO LÓGICO PROGRAMÁVEL ( FPGA ) LINGUAGEM DE DESCRIÇÃO DE HARDWARE ( VHDL )

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. P U C R SFaculdade de Engenharia DISPOSITIVO LÓGICO PROGRAMÁVEL(FPGA)LINGUAGEM DE DESCRIÇÃO DE HARDWARE (VHDL) Prof. Anderson Royes Terroso Abril, 2000.

  2. FPGA & VHDL Tópicos 1 - Dispositivos Programáveis (FPGA) • 1.1 Introdução • 1.2 Estrutura da FPGA • 1.3 Tipos de FPGA • 1.4 Técnicas de programação 2 - Linguagem de Descrição de Hardware (VHDL) • 2.1 Introdução • 2.1.1 O que é VHDL terroso@ee.pucrs.br http://www.ee.pucrs.br/~terroso sisc-l@ee.pucrs.br http://www.ee.pucrs.br/~sisc

  3. 2.1.2 O que significa VHDL • 2.1.3 O que significa uma Linguagem de Descrição de Hardware • 2.1.4 Breve Histórico • 2.1.5 Vantagens e Desvantagens de se utilizar VHDL • 2.2 Componentes de um projeto VHDL • 2.2.1 Package • 2.2.2 Entity • 2.2.3 Architecture • 2.2.4 Configuration • 2.3 Semântica da Linguagem • 2.3.1 Elementos Léxicos • Comentários, Identificadores, tipos de dados não lógicos, expressões e operadores

  4. 2.4 Comandos Seqüênciais • 2.4.1 Atribuição de Variáveis • 2.4.2 Atribuição de Sinais • 2.4.3 Comando Wait • 2.4.4 Comando If - Then - Else • 2.4.5 Comando Loop For - While • 2.4.6 Comando Case • 2.5 Especificando a Estrutura de um Sistema • 2.6 Exemplos de Circuitos Digitais utilizando a ferramenta MAX PLUS II • 2.7 Placa University Program ALTERA • Exemplos práticos • 2.8 Bibliografia

  5. OBJETIVO CKT ESQUEMÁTICO E/OU VHDL PROTOTIPAGEM EM FPGA

  6. FPGA & VHDL 1 - Dispositivos Programáveis (FPGA) 1.1 - Introdução • FPGA (Field Programmable Gate Array) são circuitos programáveis compostos por um conjunto de células lógicas ou blocos lógicos alocados em forma de uma matriz. Em geral, a funcionalidade destes blocos assim como o seu roteamento, são configuráveis por software. • Surgiram em 1985 com Xilinx • XC 2000 • Outras companhias: • Actel, Altera, Plessey, Plus, AMD, QuickLogic

  7. FPGA & VHDL 1.2 - Estrutura da FPGA • Três elementos básicos: • CLB’s (Configurable Logic Block): Blocos Lógicos Configuráveis; • IOB’s (In/Out Block): Blocos de entrada e saída; • SB’s (Switch Box): Caixa de conexão;

  8. FPGA & VHDL • CLB’s • Unidade lógica do FPGA; • Família XC 4000 Xilinx tem 100 CLB’s • 3 Geradores de Função Combinacional; • 2 Flip-Flop tipo D; • Lógica de Controle; • Lógica Aritmética Dedicada; Cada Bloco pode ser configurado como um Somador de 2 bits

  9. FPGA & VHDL continuação • Representação de um CLB da família XC3000

  10. FPGA & VHDL continuação • IOB’s • Interface entre uma FPGA e o resto do sistema; • O FPGA XC 4003 Xilinx tem 80 IOB’s • Localizam na periferia do chip;

  11. FPGA & VHDL

  12. FPGA & VHDL • SB’s - Switch Box • Finalidade: Permite a interconexão entre os CLB’s através dos canais de roteamento; 2 1 SB SB 3 8 CLB 4 7 5 6 SB SB Switch Box

  13. FPGA & VHDL • Roteamento A interconexão entre os blocos é feita através de uma rede de duas camadas de metal. As conexões físicas entre os fios são feitas ora com transistores de passagem controlados por bits de memória (PIP) ora com chaves de interconexão (Switch Matrix). • Conexões Globais • Conexões Diretas • Linhas Longas • Matrizes de Conexão (Switch Matrix)

  14. FPGA & VHDL

  15. FPGA & VHDL 1.3 Tipos de FPGA - ALTERA

  16. FPGA & VHDL 1.4 Técnicas de programação • Esquemático • VHDL • AHDL • Handel C

  17. MAX+PLUS II - SOFTWARE QUE PERMITE O PROJETO AO NÍVEL DE ESQUEMÁTICO E VHDL.

  18. A ESCOLHA É FEITA NA OPÇÃO FILE => NEW

  19. AO NÍVEL DE ESQUEMÁTICO, EXISTEM INÚMEROSCOMPONENTES, ALÉM DE MESCLAR COMPONENTES DIGITAIS + VHDL

  20. EXEMPLO: SCH + VHDL DUPLO CLIQUE

  21. PROGRAMA EM VHDL if(clkin'event and clkin='1') then if(cont1 < 5) then clk <= '1'; cont1 := cont1 + 1; cont2 := 0; else if(cont2 < 4) then clk <= '0'; cont2 := cont2 + 1; else cont1 := 0; end if; end if; end if; end process clk8; end arq_scl; library IEEE; use IEEE.std_logic_1164.all; entity gera_clk is port( clkin : in std_logic; clk : out std_logic ); end gera_clk; architecture arq_scl of gera_clk is begin clk8: process(clkin) variable cont1 : integer range 0 to 5 := 0; variable cont2 : integer range 0 to 5 := 0; begin

  22. EM ASSIGN => DEVICE, PERMITE ESCOLHER O COMPONENTE EM QUE SERÁ GRAVADO O CKT PROJETADO.

  23. ESCOLHE-SE UMA FAMÍLIA E POSTERIORMENTE UM DISPOSITIVO, ONDE SERÁ GRAVADO O CKT

  24. FEITA A ESCOLHA, COMPILA-SE (MAX+PLUS II => COMPILER) O CKT E VERIFICA A ÁREA OCUPADA POR ESTE CKT.

  25. FPGA & VHDL

  26. FPGA & VHDL O arquivo RPT (Report) apresenta a capacidade da FPGA utilizada, bem como a distribuição dos pinos na FPGA (próxima tela). ** DEVICE SUMMARY ** Chip/ Input Output Bidir Shareable POF Device Pins Pins Pins LCs Expanders % Utilized core_iic EPM7128SLC84-15 2 3 1 104 60 81 % User Pins: 2 3 1 Project Information c:\z80_vhdl\core_iic.rpt

  27. FPGA & VHDL 2 - Linguagem de Descrição de Hardware (VHDL) 2.1 - Introdução • 2.1.1 O que é VHDL • VHDL é uma forma de se descrever, através de um programa, o comportamento de um circuito ou componente digital. • 2.1.2 O que significa VHDL Very Hight Speed Integrated Circuit Hardware Description Linguage • Linguagem de Descrição de Hardware com ênfase em Circuitos Integrados de altíssima velocidade.

  28. FPGA & VHDL • 2.1.3 O que significa uma Linguagem de Descrição de Hardware Uma linguagem de descrição de hardware descreve o que um sistema faz e como • 2.1.4 Breve Histórico - final de 1960: primeiras Linguagem de hardware; - 1973: projeto CONLAN (CONsensus LANguage); - 1983: relatório final do CONLAN e a Linguagem ADA; - 1986: a Intermetrics desenvolve compilador e simulador, criado um grupo de padronização da IEEE para VHDL; - 1988: primeiros softwares são comercializados; - 1991: recomeçou-se um novo processo de padronização; - 1992: modificações propostas foram avaliadas e votadas; - 1993: um novo padrão é publicado, chamado VHDL-93; - 1997: publicado o manual de referência da linguagem.

  29. FPGA & VHDL • Desvantagens • Hardware gerado é menos otimizado; • Vantagens • Projeto independente da tecnologia; • Facilidade na atualiza-ção dos projetos; • Reduz tempo de projeto; • Elimina erros de baixo nível; • 2.1.5 Vantagens e Desvantagens de se utilizar VHDL

  30. FPGA & VHDL 2.2 - Componentes de um projeto VHDL • 2.2.1Pacote: constantes, bibliotecas; • 2.2.2 Entidade: pinos de entrada e saída; • 2.2.3 Arquitetura: implementações do projeto; • 2.2.4 Configuração: define as arquiteturas que serão utilizadas.

  31. FPGA & VHDL

  32. FPGA & VHDL ARCHITECTURE (ARQUITETURA) PROCESSOS N ENTITY (ENTIDADE) PINOS DE I/O

  33. FPGA & VHDL

  34. FPGA & VHDL • 2.2.1 Package • Os pacotes (biblioteca) contém uma coleção de elementos incluindo descrição do tipos de dados (relacione com os includes da Linguagem C). • LIBRARY <nome_da_biblioteca> e/ou • USE <nome_da_biblioteca>.all

  35. FPGA & VHDL • 2.2.2 Entity • Descrição da interface de I/O do sistema com a placa. <tipo> : bit, bit_vector, std_logic_vector. real, inteiro, etc.

  36. FPGA & VHDL • 2.2.3 Architecture • Arquitetura pode ser definida como sendo a(s) implementação(ões) do projeto.

  37. FPGA & VHDL • Arquitetura Simples

  38. FPGA & VHDL • Arquitetura Concorrente • A arquitetura concorrente é uma forma mais complexa de descrever um sistema, geralmente apresenta várias processos dentro de uma arquitetura.

  39. 2.3.1 Elementos Léxicos Comentários -- isto é um comentário em VHDL C <= A + B; -- soma de A + B Identificadores FPGA & VHDL 2.3 - Semântica da Linguagem Válidos Inválidos uso de underline (input_1_x) uso de palavras reservadas uso do caracter @ underline no fim de um identificador uso de dois caracteres underlines

  40. FPGA & VHDL • Tipos de dados não lógicos • BIT: assume valores ‘0’ e ‘1’, bit_vector é um conjunto de bits. Ex.: “010001” • Boolean: assume valores true ou false • Real: sempre com ponto decimal. Ex.: -3.2, 4.56, 6.0, -2.3E+2 • Inteiros: não é possível realizar conversão sobre inteiros. Ex.: 3, 546, -349 • Physical: representam uma medida física: voltagem, capacitância, tempo • Tipos pré-definidos: fs, ps, ns, um, ms, sec, min, hr. • Intervalos: permite determinar um intervalo de utilização dentro de um determinado tipo. • range <valor_menor> to <valor_maior> • range <valor_maior> downto <valor_menor> • Array: em VHDL um array é definido como uma coleção de elementos todos • do mesmo tipo.

  41. FPGA & VHDL • Expressões e operadores • operadores lógicos:and, or, nand, nor, xor, xnor e not • operadores numéricos:soma (+), subtração (-), divisão (/), • multiplicação (*), módulo (mod), remanescente • (rem - ex.: 6 rem 4 = 2), expoente (**), valorabsoluto (abs) • operadores relacionais:igual (=), diferente (/=), menor • do que (<), menor ou igual (<=), maior do que (>), maior • ou igual (>=)

  42. FPGA & VHDL • operadores de deslocamento:sll (shift left logical), srl (shift right logical), sla (shift left arithmetic), sra (shift right arithmetic), rol (rotate left logical), ror (rotate right logical) • operador de concatenação: esta operação consiste em criar um novo vetor a partir de dois vetores já existentes, por exemplo: dado1 : bit_vector(0 to 7); [01011011] dado2 : bit_vector(0 to 7); [11010010] novo_dado : bit_vector(0 to 7); novo_dado <= (dado1(0 to 1) & dado2(2 to 5) & dado1(6 to 7)); [01010011]

  43. FPGA & VHDL • 2.4.1 Atribuição de Variáveis 2.4 - Comandos Seqüênciais

  44. FPGA & VHDL • 2.4.2 Atribuição de Sinais

  45. FPGA & VHDL Diferença entre atribuições sinal (signal) / variável (variable) • Quando utiliza-se sinal, a atribuição ocorre no final do processo, enquanto que a atribuição a variável ocorre simultaneamente. • Nas próximas duas telas, está mostrado a diferença entre estas atribuições. <= (atribuição de signal) := (atribuição de variável)

  46. Siga as setas pretas. A seta em vermelho mostra a execução passo-a-passo do programa

  47. A diferença entre os valores deve-se a forma de atribuição