A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Parte 4 - Introdução a FPGAs LABORG 21/setembro/2009 Fernando Gehm Moraes César Augusto Missio Marcon Ney Laert Vilar Calazans.

Apresentações semelhantes


Apresentação em tema: "Parte 4 - Introdução a FPGAs LABORG 21/setembro/2009 Fernando Gehm Moraes César Augusto Missio Marcon Ney Laert Vilar Calazans."— Transcrição da apresentação:

1 Parte 4 - Introdução a FPGAs LABORG 21/setembro/2009 Fernando Gehm Moraes César Augusto Missio Marcon Ney Laert Vilar Calazans

2 Teoria – Estrutura de FPGAs

3 3 Fernando Moraes / César Marcon / Ney Calazans O Que São FPGAs? Sem Projeto de Dispositivos Com Projeto de Dispositivos Chip SetsSistema digital dedicado, programável (microcontroladores e/ou DSPs) Sistemas computacional programável (e.g. PC) Dispositivos personalizáveis (FPGAs e CPLDs) Dispositivos projetados e fabricados sob encomenda ASIC ( gate-arrays ou standard cells ) Aumento de desempenho (maior velocidade e menor potência dissipada), sigilo de projeto, custo de desenvolvimento TECNOLOGIA Diminuição da complexidade de projeto FPGAs permitem implementar circuitos digitais diretamente de HDLs, sem os custos de fabricação de chips Projeto e Implementação de Produtos Tecnológicos Baseados em Circuitos Eletrônicos

4 4 Fernando Moraes / César Marcon / Ney Calazans FPGAs – Conceitos Básicos Bloco K ES Entrada/Saída Configuráveis Conexões Configuráveis Funções Booleanas Configuráveis Matriz de CLBs (configurable logic blocks) interconectados por matrizes de chaveamento Switch Blocks:

5 5 Fernando Moraes / César Marcon / Ney Calazans FPGAs – Conceitos Básicos Exemplo de conexão entre duas redes Bloco K

6 6 Fernando Moraes / César Marcon / Ney Calazans FPGAs – Configuração (RAM-based) FPGA deve ser visto como duas camadas –Memória de configuração –Lógica do usuário Memória de configuração define: –Toda a fiação da lógica do usuário –Definição das funções lógicas (LUTs) –Interface externas e internas ( proc) –Configuração de memórias –Conteúdo de memórias –Configuração dos pinos de E/S Configuration Memory Layer User Logic Layer Virtex 4: memória de configuração entre 1 MB – 4 MB

7 7 Fernando Moraes / César Marcon / Ney Calazans Algumas das diferentes tecnologias usadas para definir o comportamento de um FPGA: Antifusível (E)EPROM SRAM Configuração uma única vez Configuração deve ser realizada cada vez que o FPGA for alimentado Configuração um número limitado de vezes, mantida com o chip desconectado da alimentação Tecnologias de Configuração

8 8 Fernando Moraes / César Marcon / Ney Calazans LUT – O Gerador Universal de Funções LUT - look-up table –Uma porção de hardware configurável/reconfigurável capaz de implementar qualquer tabela verdade de n entradas –Para n=4: –LUT »Altamente flexível »Método mais utilizado (Xilinx e Altera) 2 (2) 4 = funções implementáveis

9 9 Fernando Moraes / César Marcon / Ney Calazans FPGAs – LUT – O Gerador Universal de Funções A B C D Tabela verdade da função é armazenada em um memória durante a configuração do FPGA DADCADCBADCBAF......),,,( )14,12,10,8,7,3,0(),,,(DCBAF As entradas (variáveis Booleanas) controlam um multiplexador 2 n : Implementação física de uma LUT4 Considerando 150 transistores / LUT Para LUTS transistores !

10 10 Fernando Moraes / César Marcon / Ney Calazans Principais 4 Vendedores (2000) Xilinx 42% Altera 37% Lattice 15% Actel 6% Mercado de FPGAs

11 11 Fernando Moraes / César Marcon / Ney Calazans Dispositivos XILINX Baixo Custo –Famílias Spartan3 e Spartan2 –1 milhão de portas lógicas equivalentes por menos de 10 US$! Alto desempenho –Família Virtex –Virtex II, Virtex II-Pro, Virtex IV, Virtex V

12 12 Fernando Moraes / César Marcon / Ney Calazans Switch Matrix Switch Matrix CLB, IOB, DCM CLB, IOB, DCM Active Interconnect Fully Buffered Fast, Predictable BRAM 18b x 18b mult 200MHz pipelined Multiplicadores 18KBits True Dual Port Up to 3.5Mbits / device Block RAM Switch Matrix Slice S0 Slice S1 Slice S2 Slice S3 CLBs 8 LUTs Logic (primary use) 128b distributed RAM Shift registers Wide Input functions (32:1) Arquitetura Virtex II

13 13 Fernando Moraes / César Marcon / Ney Calazans Arquitetura Virtex II – CLB e Interconexão Conexões diretas entre CLBs vizinhas –Lógica de vai-um Matrix de conexão –CLB às linhas de roteamento Linhas de roteamento –Simples –Hexas –Longas –Tri-state DIRECT CONNECT DIRECT CONNECT

14 14 Fernando Moraes / César Marcon / Ney Calazans Arquitetura do CLB do Dispositivo VIRTEX-II Slice Fast Carry Logic Path Provides fast arithmetic add and sub RESUMINDO O CLB 4 Slices 8 LUTS / 8 Flip-Flops 2 cadeias de vai-um 64 bits para memória 64 bits para shift-register

15 15 Fernando Moraes / César Marcon / Ney Calazans Arquitetura – Metade de um Slice

16 16 Fernando Moraes / César Marcon / Ney Calazans Virtex2P XC2VP7 FPGA Editor View With All Wires Virtex2P XC2VP7 4,928 slices 44 BRAMs 1 PowerPC 11,627 logic sites 2,653 tiles 1,423,681 wires 544,549 segments

17 17 Fernando Moraes / César Marcon / Ney Calazans Virtex2P XC2VP7 FPGA Editor View With All Wires Zoom de um CLB do canto superior esquerdo Muitos recursos de roteamento Grande caixa de conexões (switch box) 4 slices e 2 TBUFs

18 18 Fernando Moraes / César Marcon / Ney Calazans Virtex2P XC2VP7 Visão do software FPGA Editor com todos os fios Slice da Família Virtex2Pro 2 LUTs 2 flip-flops Vários muxs Lógica de vai-um dedicada

19 19 Fernando Moraes / César Marcon / Ney Calazans XC2VP7 Virtex-II Pro FPGA Layout do XC2VP7 Power PC MGTs (gigabit transceiver) DCM (clock manager)

20 20 Fernando Moraes / César Marcon / Ney Calazans Demais Componentes de FPGA Moderno (1/2) Gerenciamento de clock –Reduz escorregamento de relógio –Permite multiplicar, dividir, mudar a fase da(s) freqüências de entrada –Implementações digitais (DCM – Xilinx) e analógica (PLL – Altera) Blocos de memória embarcada –Tipicamente blocos de 18kbits Blocos DSP –Multiplicadores 18x18 para funções de imagem, áudio, telecomunicações

21 21 Fernando Moraes / César Marcon / Ney Calazans Demais Componentes de FPGA Moderno (2/2) Processadores embarcados do tipo hard macro –Xilinx disponibiliza o processador PowerPC (clock de MHz) –Podem executar sistemas operacionais embarcados como Linux Transceptores Gigabit –Blocos serializadores / deserializadores para receber dados em altas taxas de transmissão –Virtex-4 é capaz de receber e transmitir dados em freqüências de 3.2 Gbps usando dois fios. Outros –Ethernet MAC –Criptografia do bitstream –Controle para reconfiguração interna (de dentro do FPGA - ICAP)

22 Prática – Trabalhando com FPGAs

23 23 Fernando Moraes / César Marcon / Ney Calazans Utilizando o FPGA Para Prototipação 1.Abaixo aparece um circuito somador baseado naquele visto na Aula 1, que deve ser prototipado nesta aula: library IEEE; use IEEE.Std_Logic_1164.all; use IEEE.std_logic_unsigned.all; -- Nova linha entity somador is port ( A, B: in std_logic_vector(3 downto 0); Soma: out std_logic_vector(3 downto 0) ); end somador; architecture comp of somador is begin Soma <= A + B; -- Soma de dois vetores de N bits end comp;

24 24 Fernando Moraes / César Marcon / Ney Calazans Onde as Entradas e Saídas se Conectam? (1/3) Placas de prototipação têm recursos de entrada e saída: LEDs, chaves, displays, teclado, serial, USB, Ethernet... A(3 downto 0);B(3 downto 0); Soma(3 downto 0)

25 25 Fernando Moraes / César Marcon / Ney Calazans Onde as Entradas e Saídas se Conectam? (2/3) Um arquivo relaciona as entradas e saídas do VHDL com os recursos da placa Este arquivo se chama UCF (user constraint file) 2. Abrir o arquivo: Nexys_rm.pdf Ir na página 5 e achar figura ao lado

26 26 Fernando Moraes / César Marcon / Ney Calazans Onde as Entradas e Saídas se Conectam? (3/3) 3.Criação do arquivo UCF – Arquivo define relação entre nome de fio/pino em VHDL e pino físico do FPGA ### UCF DO PROJETO SOMADOR DE 4 BITS NET "A " LOC = "L15" ; # Bit 0 do vetor A NET "A " LOC = "M16" ;# Bit 1 do vetor A NET "A " LOC = "M15" ;# Bit 2 do vetor A NET "A " LOC = "N16" ;# Bit 3 do vetor A NET "B " LOC = "N15" ; NET "B " LOC = "J16" ; NET "B " LOC = "K16" ; NET "B " LOC = "K15" ; NET "Soma " LOC = "N14" ; NET "Soma " LOC = "M13" ; NET "Soma " LOC = "P14" ; NET "Soma " LOC = "R16" ; A(3 downto 0); B(3 downto 0); Soma(3 downto 0)

27 27 Fernando Moraes / César Marcon / Ney Calazans Ambiente de Síntese: ISE 4.Criar um diretório, colocando neste os arquivos VHDL (soma.vhd) e o arquivo UCF (soma.ucf) 5.Abrir a ferramenta ISE( ) e criar um novo projeto (File New Project), como abaixo: Cuidado: Não podem haver espaços em branco no nome do caminho para o projeto, nem no nome do projeto

28 28 Fernando Moraes / César Marcon / Ney Calazans Definição do FPGA da Placa de Prototipação 6.Para a placa que estamos trabalhando, o FPGA é um dispositivo da família Spartan3, escolher na janela como abaixo: Características do dispositivo FPGA

29 29 Fernando Moraes / César Marcon / Ney Calazans Inclusão dos Fontes 7.A próxima janela é para criar arquivos-fonte novos, selecionar Next 8.A próxima janela é para inclusão dos fontes, incluir Copia para o diretório do ISE e preserva os arquivos originais Ao final há um resumo do projeto (com detecção da função do UCF):

30 30 Fernando Moraes / César Marcon / Ney Calazans Ambiente ISE – Browser do Projeto 9.Se todos os passos de criação foram corretamente seguidos, deve-se ter: Top do projeto

31 31 Fernando Moraes / César Marcon / Ney Calazans Passo 1 da Síntese: Síntese Lógica Transforma o VHDL em portas lógicas 10. Para executar, dá-se duplo click em Synthesize XST –Ao final tem-se o relatório no lado direito 6 LUTs de entradas

32 32 Fernando Moraes / César Marcon / Ney Calazans Passo 2 da Síntese: Síntese Física Realiza o posicionamento e as conexão no FPGA 11. Dar duplo click em Implement Design 12. Em seguida, dar duplo click em Generate Programming File

33 33 Fernando Moraes / César Marcon / Ney Calazans Visualização no FPGA 6 LUTs (em três SLICES) 13.Selecionar FPGA Editor, executar o programa e visualizar o layout gerado automaticamente pelo processo de síntese

34 34 Fernando Moraes / César Marcon / Ney Calazans Baixar para o FPGA (1/3) 14.Executar o software ExPort ( ), ligar a placa, conectar o cabo USB e inicializar a cadeia. Resultado aparece abaixo.

35 35 Fernando Moraes / César Marcon / Ney Calazans Baixar para o FPGA (2/3) 15. Marcar a check-box do chip de denominado XCF02S (para não programar ele ao programar o FPGA, ou seja fazer um bypass do XCF02S). O resultado é:

36 36 Fernando Moraes / César Marcon / Ney Calazans Baixar para o FPGA (3/3) 16.Clicar na opção Browse ao lado do FPGA (ícone de nome XC3S200) e achar/selecionar o arquivo de nome somador.bit, gerado pela síntese. Em seguida escolha a opção Program Chain. Pronto!

37 37 Fernando Moraes / César Marcon / Ney Calazans TRABALHO A FAZER Note que este somador não tem vai-um. Seu trabalho é acrescentar o cálculo do vai-um no circuito. Uma sugestão de modificação de código para incluí-lo: –A saída Soma ser modificada para 5 bits –Declarar dois sinais internos AA e BB, ambos de 5 bits –Antes de fazer a Soma <= AA + BB, criar AA e BB através de uma concatenação com 0 à esquerda: AA <= 0 & A; -- o símbolo & significa concatenação em VHDL –Modifique o UCF para o LED3 ser associado ao vai-um gerado (o quinto bit da soma.

38 38 Fernando Moraes / César Marcon / Ney Calazans A ENTREGAR 1.O projeto ISE completo gerado com o cálculo do vai-um acrescentado e mostrando em um LED da placa o resultado da soma e o vai-um resultante. 2.No dia limite de entrega, o projeto deve ser apresentado funcionando para o professor da disciplina. 3.Data Final de Entrega: 05/10/2009, até o fim do dia, via moodle 4.Aguardam possíveis acréscimos ao trabalho na aula seguinte


Carregar ppt "Parte 4 - Introdução a FPGAs LABORG 21/setembro/2009 Fernando Gehm Moraes César Augusto Missio Marcon Ney Laert Vilar Calazans."

Apresentações semelhantes


Anúncios Google