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

Fernando Gehm Moraes César Augusto Missio Marcon Ney Laert Vilar Calazans

  • Upload
    levia

  • View
    24

  • Download
    1

Embed Size (px)

DESCRIPTION

Fernando Gehm Moraes César Augusto Missio Marcon Ney Laert Vilar Calazans. LABORG. Parte 4 - Introdução a FPGAs. 21/setembro/2009. Teoria – Estrutura de FPGAs. Sistemas computacional programável (e.g. PC). Sistema digital dedicado, programável (microcontroladores e/ou DSPs). Chip Sets. - PowerPoint PPT Presentation

Citation preview

Page 1: Fernando Gehm Moraes César Augusto Missio Marcon Ney Laert Vilar Calazans

Parte 4 - Introdução a FPGAs

LABORG

21/setembro/2009

Fernando Gehm MoraesCésar Augusto Missio Marcon

Ney Laert Vilar Calazans

Page 2: Fernando Gehm Moraes César Augusto Missio Marcon Ney Laert Vilar Calazans

Teoria – Estrutura de FPGAs

Page 3: Fernando Gehm Moraes César Augusto Missio Marcon Ney Laert Vilar Calazans

3Fernando 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

Page 4: Fernando Gehm Moraes César Augusto Missio Marcon Ney Laert Vilar Calazans

4Fernando Moraes / César Marcon / Ney Calazans

FPGAs – Conceitos Básicos

Bloco K Bloco KBloco K

Bloco K Bloco KBloco K

Bloco K Bloco KBloco K

ES

ES

ES

ES

ES

ES

ES ES ES

ES ES ES

Entrada/SaídaConfiguráveis

ConexõesConfiguráveis

Funções Booleanas Configuráveis

• Matriz de CLBs (configurable logic blocks) interconectados por matrizes de chaveamento

SwitchBlocks:

Page 5: Fernando Gehm Moraes César Augusto Missio Marcon Ney Laert Vilar Calazans

5Fernando Moraes / César Marcon / Ney Calazans

FPGAs – Conceitos Básicos• Exemplo de conexão entre duas redes

Bloco K Bloco KBloco K

Bloco K Bloco K Bloco K

Bloco K

Bloco K

Page 6: Fernando Gehm Moraes César Augusto Missio Marcon Ney Laert Vilar Calazans

6Fernando 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

Page 7: Fernando Gehm Moraes César Augusto Missio Marcon Ney Laert Vilar Calazans

7Fernando 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 oFPGA for alimentado

Configuração um número limitado de vezes,mantida com o chip desconectado da alimentação

Tecnologias de Configuração

Page 8: Fernando Gehm Moraes César Augusto Missio Marcon Ney Laert Vilar Calazans

8Fernando 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

= 65.536 funções implementáveis

Page 9: Fernando Gehm Moraes César Augusto Missio Marcon Ney Laert Vilar Calazans

9Fernando Moraes / César Marcon / Ney Calazans

FPGAs – LUT – O Gerador Universal de Funções

A B C D

1

0

0

1

0

0

0

1

1

0

1

0

1

0

1

0

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 2n:1

0

15

Implementação física de uma LUT4

Considerando 150 transistores / LUTPara 50.000 LUTS 7.500.000 transistores !

Page 10: Fernando Gehm Moraes César Augusto Missio Marcon Ney Laert Vilar Calazans

10Fernando Moraes / César Marcon / Ney Calazans

Principais 4 Vendedores (2000)

Xilinx42%

Altera37%

Lattice15%

Actel6%

http://www.yeald.com/Yeald/a/17251/pld_market_shares.html

Mercado de FPGAs

Page 11: Fernando Gehm Moraes César Augusto Missio Marcon Ney Laert Vilar Calazans

11Fernando 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

Page 12: Fernando Gehm Moraes César Augusto Missio Marcon Ney Laert Vilar Calazans

12Fernando Moraes / César Marcon / Ney Calazans

SwitchMatrix

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

SwitchMatrix

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

Page 13: Fernando Gehm Moraes César Augusto Missio Marcon Ney Laert Vilar Calazans

13Fernando 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

SINGLE

HEX

LONG

SINGLE

HEX

LONG

SIN

GL

E

HE

X

LO

NG

SIN

GL

E

HE

X

LO

NG

TRISTATE BUSSES

SWITCHMATRIX

SLICE SLICE

LocalFeedback

CA

RR

Y

CA

RR

Y

CLB

CA

RR

Y

CA

RR

Y

DIRECTCONNECT

DIRECTCONNECT

Page 14: Fernando Gehm Moraes César Augusto Missio Marcon Ney Laert Vilar Calazans

14Fernando Moraes / César Marcon / Ney Calazans

Arquitetura do CLB do Dispositivo VIRTEX-II

Slice

Slice

Slice

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

Page 15: Fernando Gehm Moraes César Augusto Missio Marcon Ney Laert Vilar Calazans

15Fernando Moraes / César Marcon / Ney Calazans

Arquitetura – Metade de um Slice

Page 16: Fernando Gehm Moraes César Augusto Missio Marcon Ney Laert Vilar Calazans

16Fernando Moraes / César Marcon / Ney Calazans

Virtex2P XC2VP7FPGA Editor View With All Wires

Virtex2P XC2VP7

4,928 slices44 BRAMs

1 PowerPC11,627 logic sites

2,653 tiles

1,423,681 wires544,549 segments

Page 17: Fernando Gehm Moraes César Augusto Missio Marcon Ney Laert Vilar Calazans

17Fernando Moraes / César Marcon / Ney Calazans

Virtex2P XC2VP7FPGA 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

Page 18: Fernando Gehm Moraes César Augusto Missio Marcon Ney Laert Vilar Calazans

18Fernando Moraes / César Marcon / Ney Calazans

Virtex2P XC2VP7Visã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

Page 19: Fernando Gehm Moraes César Augusto Missio Marcon Ney Laert Vilar Calazans

19Fernando Moraes / César Marcon / Ney Calazans

XC2VP7 Virtex-II Pro FPGA

• Layout do XC2VP7

Power PCMGTs (gigabit transceiver)

DCM (clock manager)

Page 20: Fernando Gehm Moraes César Augusto Missio Marcon Ney Laert Vilar Calazans

20Fernando 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

Page 21: Fernando Gehm Moraes César Augusto Missio Marcon Ney Laert Vilar Calazans

21Fernando 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 300-500MHz)– 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)

Page 22: Fernando Gehm Moraes César Augusto Missio Marcon Ney Laert Vilar Calazans

Prática – Trabalhando com FPGAs

Page 23: Fernando Gehm Moraes César Augusto Missio Marcon Ney Laert Vilar Calazans

23Fernando 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 isport ( A, B: in std_logic_vector(3 downto 0); Soma: out std_logic_vector(3 downto 0) );end somador;

architecture comp of somador isbegin Soma <= A + B; -- Soma de dois vetores de N bitsend comp;

Page 24: Fernando Gehm Moraes César Augusto Missio Marcon Ney Laert Vilar Calazans

24Fernando 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)

Page 25: Fernando Gehm Moraes César Augusto Missio Marcon Ney Laert Vilar Calazans

25Fernando 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 placaEste arquivo se chama UCF (user constraint file)

2. Abrir o arquivo:Nexys_rm.pdfIr na página 5 e achar figura ao lado

Page 26: Fernando Gehm Moraes César Augusto Missio Marcon Ney Laert Vilar Calazans

26Fernando 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<0>" LOC = "L15" ; # Bit 0 do vetor ANET "A<1>" LOC = "M16" ;# Bit 1 do vetor ANET "A<2>" LOC = "M15" ;# Bit 2 do vetor ANET "A<3>" LOC = "N16" ;# Bit 3 do vetor A

NET "B<0>" LOC = "N15" ;NET "B<1>" LOC = "J16" ;NET "B<2>" LOC = "K16" ;NET "B<3>" LOC = "K15" ;

NET "Soma<0>" LOC = "N14" ;NET "Soma<1>" LOC = "M13" ;NET "Soma<2>" LOC = "P14" ;NET "Soma<3>" LOC = "R16" ;

A(3 downto 0);

B(3 downto 0);

Soma(3 downto 0)

Page 27: Fernando Gehm Moraes César Augusto Missio Marcon Ney Laert Vilar Calazans

27Fernando 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:

Xilinx ISE 9.1i.lnk

Cuidado: Não podem haver espaços em branco no nome do caminho para o projeto, nem no nome do projeto

Page 28: Fernando Gehm Moraes César Augusto Missio Marcon Ney Laert Vilar Calazans

28Fernando 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

Page 29: Fernando Gehm Moraes César Augusto Missio Marcon Ney Laert Vilar Calazans

29Fernando Moraes / César Marcon / Ney Calazans

Inclusão dos Fontes7. A próxima janela é para criar arquivos-fonte novos, selecionar Next8. 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):

Page 30: Fernando Gehm Moraes César Augusto Missio Marcon Ney Laert Vilar Calazans

30Fernando 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

Page 31: Fernando Gehm Moraes César Augusto Missio Marcon Ney Laert Vilar Calazans

31Fernando Moraes / César Marcon / Ney Calazans

Passo 1 da Síntese: Síntese Lógica

Transforma o VHDL em portas lógicas10. Para executar, dá-se duplo click em “Synthesize XST”

– Ao final tem-se o relatório no lado direito

6 LUTsde 3840

12 entradas

Page 32: Fernando Gehm Moraes César Augusto Missio Marcon Ney Laert Vilar Calazans

32Fernando Moraes / César Marcon / Ney Calazans

Passo 2 da Síntese: Síntese FísicaRealiza o posicionamento e as conexão no FPGA11. Dar duplo click em “Implement Design”12. Em seguida, dar duplo click em “Generate Programming

File”

Page 33: Fernando Gehm Moraes César Augusto Missio Marcon Ney Laert Vilar Calazans

33Fernando 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

Page 34: Fernando Gehm Moraes César Augusto Missio Marcon Ney Laert Vilar Calazans

34Fernando 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.

Shortcut to ExPort.exe.lnk

Page 35: Fernando Gehm Moraes César Augusto Missio Marcon Ney Laert Vilar Calazans

35Fernando 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 é:

Page 36: Fernando Gehm Moraes César Augusto Missio Marcon Ney Laert Vilar Calazans

36Fernando 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!

Page 37: Fernando Gehm Moraes César Augusto Missio Marcon Ney Laert Vilar Calazans

37Fernando 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.

Page 38: Fernando Gehm Moraes César Augusto Missio Marcon Ney Laert Vilar Calazans

38Fernando 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