Parte 2 - Introdução a FPGAs e Prototipação de Hardware LABORG Fernando Moraes e Ney Laert Vilar...

46
Parte 2 - Introdução a FPGAs e Prototipação de Hardware LABORG Fernando Moraes e Ney Laert Vilar Calazans 25/março/2014

Transcript of Parte 2 - Introdução a FPGAs e Prototipação de Hardware LABORG Fernando Moraes e Ney Laert Vilar...

Page 1: Parte 2 - Introdução a FPGAs e Prototipação de Hardware LABORG Fernando Moraes e Ney Laert Vilar Calazans 25/março/2014.

Parte 2 - Introdução a FPGAs e Prototipação de Hardware

LABORGLABORG

Fernando Moraes e Ney Laert Vilar Calazans

25/março/2014

Page 2: Parte 2 - Introdução a FPGAs e Prototipação de Hardware LABORG Fernando Moraes e Ney Laert Vilar Calazans 25/março/2014.

Teoria – Estrutura de FPGAs

Page 3: Parte 2 - Introdução a FPGAs e Prototipação de Hardware LABORG Fernando Moraes e Ney Laert Vilar Calazans 25/março/2014.

3Fernando Moraes e 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 (full custom 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: Parte 2 - Introdução a FPGAs e Prototipação de Hardware LABORG Fernando Moraes e Ney Laert Vilar Calazans 25/março/2014.

4Fernando Moraes e Ney Calazans

• Primeiro vieram PROMs e PLDs, matrizes de portas (re-)

configuráveis

• Algumas patentes de coisas parecidas com FPGAs surgiram no

final dos anos 80 e início dos anos 90 (Casselman, Page, Peterson)

• Os fundadores da Xilinx, Ross Freeman e Bernard Vonderschmitt,

inventaram o primeiro FPGA comercial em 1985 – o XC2064

• O XC2064 tinha 64 blocos lógicos configuráveis e interconexões

configuráveis entre os blocos lógicos

• O XC2064 só tinha blocos lógicos configuráveis (CLBs), cada um

com duas LUTs de 3 entradas

Um Pouco de História de FPGAs

Page 5: Parte 2 - Introdução a FPGAs e Prototipação de Hardware LABORG Fernando Moraes e Ney Laert Vilar Calazans 25/março/2014.

5Fernando Moraes e 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

1 - Entradas/Saídas(Re-)Configuráveis

2 - Conexões(Re-)Configuráveis

3 - Funções Booleanas (Re-) Configuráveis

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

SwitchBlocks:

Page 6: Parte 2 - Introdução a FPGAs e Prototipação de Hardware LABORG Fernando Moraes e Ney Laert Vilar Calazans 25/março/2014.

6Fernando Moraes e 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 7: Parte 2 - Introdução a FPGAs e Prototipação de Hardware LABORG Fernando Moraes e Ney Laert Vilar Calazans 25/março/2014.

7Fernando Moraes e 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

Por exemplo, Virtex 4: memória de configuração entre 1 MB – 4 MB

Page 8: Parte 2 - Introdução a FPGAs e Prototipação de Hardware LABORG Fernando Moraes e Ney Laert Vilar Calazans 25/março/2014.

8Fernando Moraes e 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 9: Parte 2 - Introdução a FPGAs e Prototipação de Hardware LABORG Fernando Moraes e Ney Laert Vilar Calazans 25/março/2014.

9Fernando Moraes e Ney Calazans

LUT – O Gerador Universal de Funções

• LUT – Look-Up Table – Um exemplo de Bl;oco com Função Booleana Reconfigurável

– Uma porção de hardware configurável/reconfigurável capaz de

implementar qualquer tabela verdade de n entradas

– Para n=4:

» Altamente flexível

» Método mais utilizado (Xilinx, Altera e outros)

2(2)

4

= 65.536 funções implementáveis

Page 10: Parte 2 - Introdução a FPGAs e Prototipação de Hardware LABORG Fernando Moraes e Ney Laert Vilar Calazans 25/março/2014.

10Fernando Moraes e 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

A tabela verdade da função é

armazenada em uma 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 / LUT4Para 50.000 LUTS 7.500.000 transistores!!!

Page 11: Parte 2 - Introdução a FPGAs e Prototipação de Hardware LABORG Fernando Moraes e Ney Laert Vilar Calazans 25/março/2014.

11Fernando Moraes e Ney Calazans

O Mercado de FPGAsNo início de 2005

Fonte: Company reportsLatest information available; computed on a 4-quarter rolling basis

XilinxXilinxAltera

LatticeActel

QuickLogic: 2% XilinxXilinx

OutrosOutros

Dois fornecedores dominam, indicando um mercado maduro

PLDs FPGAs

Other: 2%

51%33%

5% 7%

AlteraAltera

58%

31% 11%

Page 12: Parte 2 - Introdução a FPGAs e Prototipação de Hardware LABORG Fernando Moraes e Ney Laert Vilar Calazans 25/março/2014.

12Fernando Moraes e Ney Calazans

Dispositivos XILINX e ALTERA

• Xilinx– Baixo Custo

» Famílias Spartan 2, Spartan 3, Spartan 6

– Alto desempenho

» Virtex 5, Virtex 6,

» Virtex 7:Artix-Kintex-Virtex e Zynq (usam tecno 28nm)

• Altera– Baixo Custo e Mid-Range

» Famílias Cyclone II, III, IV, V, Arria GX, II, V

– Alto desempenho

» Stratix II, III, IV, V

Page 13: Parte 2 - Introdução a FPGAs e Prototipação de Hardware LABORG Fernando Moraes e Ney Laert Vilar Calazans 25/março/2014.

13Fernando Moraes e Ney Calazans

SwitchMatrix

SwitchMatrix

CLB,IOB,DCM

CLB,IOB,DCM

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•Lógica (uso primário)•128b RAM distribuída •Shift registers• Wide Input functions (32:1)

Alguns Detalhes: Arquitetura Virtex II

Page 14: Parte 2 - Introdução a FPGAs e Prototipação de Hardware LABORG Fernando Moraes e Ney Laert Vilar Calazans 25/março/2014.

14Fernando Moraes e 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 15: Parte 2 - Introdução a FPGAs e Prototipação de Hardware LABORG Fernando Moraes e Ney Laert Vilar Calazans 25/março/2014.

15Fernando Moraes e 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 16: Parte 2 - Introdução a FPGAs e Prototipação de Hardware LABORG Fernando Moraes e Ney Laert Vilar Calazans 25/março/2014.

16Fernando Moraes e Ney Calazans

Arquitetura – Metade de um Slice

Page 17: Parte 2 - Introdução a FPGAs e Prototipação de Hardware LABORG Fernando Moraes e Ney Laert Vilar Calazans 25/março/2014.

17Fernando Moraes e 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 18: Parte 2 - Introdução a FPGAs e Prototipação de Hardware LABORG Fernando Moraes e Ney Laert Vilar Calazans 25/março/2014.

18Fernando Moraes e 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 19: Parte 2 - Introdução a FPGAs e Prototipação de Hardware LABORG Fernando Moraes e Ney Laert Vilar Calazans 25/março/2014.

19Fernando Moraes e 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 20: Parte 2 - Introdução a FPGAs e Prototipação de Hardware LABORG Fernando Moraes e Ney Laert Vilar Calazans 25/março/2014.

20Fernando Moraes e Ney Calazans

XC2VP7 Virtex-II Pro FPGA

• Foto do Layout do XC2VP7

Power PC

MGTs (gigabit transceiver)

DCM (clock manager)

Page 21: Parte 2 - Introdução a FPGAs e Prototipação de Hardware LABORG Fernando Moraes e Ney Laert Vilar Calazans 25/março/2014.

21Fernando Moraes e 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, mais baratos) e analógica (PLL – Altera, mais felxíveis)

• Blocos de memória embarcada

– Tipicamente blocos de 18kbits ou 36Kbits na Xilinx (Altera tem mais variedade de blocos de memória)

• Blocos DSP

– Multiplicadores 18bitsx18bits para funções de imagem, áudio, telecomunicações

Page 22: Parte 2 - Introdução a FPGAs e Prototipação de Hardware LABORG Fernando Moraes e Ney Laert Vilar Calazans 25/março/2014.

22Fernando Moraes e 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 23: Parte 2 - Introdução a FPGAs e Prototipação de Hardware LABORG Fernando Moraes e Ney Laert Vilar Calazans 25/março/2014.

Prática – Trabalhando com FPGAs - Prototipação

Page 24: Parte 2 - Introdução a FPGAs e Prototipação de Hardware LABORG Fernando Moraes e Ney Laert Vilar Calazans 25/março/2014.

24Fernando Moraes e Ney Calazans

Utilizando o FPGA Para Prototipação

1. Abaixo aparece um circuito somador, um daqueles visto no trabalho T1, que deve ser prototipado nesta aula (compare com a implementação daquele trabalho):

library IEEE;use IEEE.Std_Logic_1164.all;use IEEE.std_logic_unsigned.all; -- Para permitir soma de std_logic

entity somador isport ( A, B: in std_logic_vector(3 downto 0); Soma: out std_logic_vector(3 downto 0) );end somador;

architecture somador of somador isbegin Soma <= A + B; -- Soma de dois vetores de 4 bits

end somador;

Page 25: Parte 2 - Introdução a FPGAs e Prototipação de Hardware LABORG Fernando Moraes e Ney Laert Vilar Calazans 25/março/2014.

25Fernando Moraes e 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)

Ao lado aparece um exemplo de atribuição de dispositivos de entrada e saída da placa Nexys2 para prototipar o somador deste trabalho

Page 26: Parte 2 - Introdução a FPGAs e Prototipação de Hardware LABORG Fernando Moraes e Ney Laert Vilar Calazans 25/março/2014.

26Fernando Moraes e Ney Calazans

Onde as Entradas e Saídas se Conectam? (2/3)

Um arquivo de projeto relaciona as entradas e saídas do VHDL com os recursos da placa

Este arquivo se chama UCF (abreviatura de User Constraint File)

2. Abrir o manual da placa no link:

Nexys2_rm.pdf

Ir na página 5 deste manual e achar a Figura ao lado

Page 27: Parte 2 - Introdução a FPGAs e Prototipação de Hardware LABORG Fernando Moraes e Ney Laert Vilar Calazans 25/março/2014.

27Fernando Moraes e Ney Calazans

Onde as Entradas e Saídas se Conectam? (3/3)

3. Criação do arquivo UCF – Arquivo que define a relação entre cada nome de fio/pino em VHDL e pinos físicos associados do FPGA

### UCF DO PROJETO SOMADOR DE 4 BITS

NET "A<0>" LOC = "L14" ; # Bit 0 do vetor ANET "A<1>" LOC = "L13" ; # Bit 1 do vetor ANET "A<2>" LOC = "N17" ; # Bit 2 do vetor ANET "A<3>" LOC = "R17" ; # Bit 3 do vetor A

NET "B<0>" LOC = "G18" ; # Bit 0 do vetor BNET "B<1>" LOC = "H18" ; # Bit 1 do vetor BNET "B<2>" LOC = "K18" ; # Bit 2 do vetor BNET "B<3>" LOC = "K17" ; # Bit 3 do vetor B

NET "Soma<0>" LOC = "K15" ; NET "Soma<1>" LOC = "K14" ; NET "Soma<2>" LOC = "E16" ; NET "Soma<3>" LOC = "P16" ; A(3 downto 0);

B(3 downto 0);

Soma(3 downto 0)

Page 28: Parte 2 - Introdução a FPGAs e Prototipação de Hardware LABORG Fernando Moraes e Ney Laert Vilar Calazans 25/março/2014.

28Fernando Moraes e Ney Calazans

Ambiente de Síntese: ISE

4. Criar um diretório, colocando neste os arquivos VHDL (somador4.vhd) e o arquivo UCF (somador4.ucf)

5. Abrir a ferramenta ISE como descrito nas transparências do trabalho anterior e criar um novo projeto (File New Project), como abaixo:

Cuidado: Não podem haver espaços em branco ou caracteres especiais no nome do caminho para o projeto, nem no nome do projeto, só ASCII puro

Page 29: Parte 2 - Introdução a FPGAs e Prototipação de Hardware LABORG Fernando Moraes e Ney Laert Vilar Calazans 25/março/2014.

29Fernando Moraes e 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 30: Parte 2 - Introdução a FPGAs e Prototipação de Hardware LABORG Fernando Moraes e Ney Laert Vilar Calazans 25/março/2014.

30Fernando Moraes e Ney Calazans

Inclusão dos Fontes

7. A próxima janela é só um resumo do projeto, clicar Finish

8. A seguir, na janela principal aparece o projeto vazio, como abaixo

9. Deve-se então acrescentar os arquivos fonte (somador4.vhd e somador4.ucf) gerados anteriormente. Na janela Hierarchy, clicar com o botão direito no ícone do dispositivo (xc3s1200e-4fg320). No menu que surge, escolher Add Copy of Source

10. Procurar no disco e adicionar os dois arquivos ao projeto

Page 31: Parte 2 - Introdução a FPGAs e Prototipação de Hardware LABORG Fernando Moraes e Ney Laert Vilar Calazans 25/março/2014.

31Fernando Moraes e Ney Calazans

Ambiente ISE – Browser do Projeto

Se todos os passos de criação foram corretamente seguidos, deve-se ter:

Arquivo no topo da hierarquia do projeto

Lembrem-se: aqui trabalha-se com síntese (implementação) e não com simulação

Page 32: Parte 2 - Introdução a FPGAs e Prototipação de Hardware LABORG Fernando Moraes e Ney Laert Vilar Calazans 25/março/2014.

32Fernando Moraes e Ney Calazans

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

Transformar o VHDL em portas lógicas

11. Para executar, dá-se duplo click em “Synthesize XST”

– Ao final tem-se o relatório de ocupação, ver exemplo de resultado abaixo

6 LUTs, de 17.344 disponíveis

12 pinos, de 250 disponíveis

Page 33: Parte 2 - Introdução a FPGAs e Prototipação de Hardware LABORG Fernando Moraes e Ney Laert Vilar Calazans 25/março/2014.

33Fernando Moraes e Ney Calazans

Passo 2 da Síntese: Síntese Física

Faz posicionamento e traçado de conexões dentro do FPGA

12.Dar duplo click em “Implement Design”

13. Em seguida, dar duplo click em “Generate Programming File”

Page 34: Parte 2 - Introdução a FPGAs e Prototipação de Hardware LABORG Fernando Moraes e Ney Laert Vilar Calazans 25/março/2014.

34Fernando Moraes e Ney Calazans

Visualização no FPGA

6 LUTs (em três SLICES)

14. Selecionar FPGA Editor, executar o programa e visualizar o “layout” gerado automaticamente pelo processo de síntese

Page 35: Parte 2 - Introdução a FPGAs e Prototipação de Hardware LABORG Fernando Moraes e Ney Laert Vilar Calazans 25/março/2014.

35Fernando Moraes e Ney Calazans

Configurar o FPGA

15. A síntese termina por gerar um arquivo com extensão .bit que pode ser usado para configurar o hardware no FPGA. Para tanto, usa-se o comando djtgcfg (Digilent JTAG Configuration Utility), instalado nas máquinas do Laboratório e no LAPRO. Executem djtgcfg ? para ver as opções do comando

16. Conectem a placa ao computador via o cabo USB e digitem djtgcfg enum. Este comando deve comunicar-se com a placa para identificá-la e obter seus dados, que são impressos

17. Agora digitem djtgcfg –d Nexys2 init. Este comando deve comunicar-se com a placa Nexys2 e listar os dispositivos Xilinx da mesma (o FPGA e a memória XCF04S, que pode guardar uma configuração completa do FPGA)

18. Finalmente, para configurar o FPGA usem o comando abaixo, certificando-se de estar no diretório onde se encontra o arquivo gerado pela síntese:

djtgcfg prog –d Nexys2 –i 0 –f somador4.bit

19. O led amarelo de configuração carregada deve acender e talvez alguns leds de dados. Experimente com o projeto, certificando-se que ela faz somas de forma correta

Page 36: Parte 2 - Introdução a FPGAs e Prototipação de Hardware LABORG Fernando Moraes e Ney Laert Vilar Calazans 25/março/2014.

36Fernando Moraes e Ney Calazans

• Note que este somador não tem “vai-um”. O trabalho proposto aqui é acrescentar o cálculo do vai-um no circuito

• Segue uma sugestão de modificações no código para resolver o problema:

– Modificar a saída “Soma” para ser um vetor de 5 bits

– Declarar dois sinais internos ‘AA’ e ‘BB’, ambos de 5 bits

– Fazer a “Soma <= AA + BB”, e criar ‘AA’ e ‘BB’ através de uma concatenação com ‘0’ à esquerda:

AA <= ‘0’ & A; -- o símbolo & significa concatenação de caracteres ou bits em VHDL

– Modificar o UCF para um dos leds não usados (por exemplo o LD7) ser associado ao vai-um gerado (o quinto bit da soma)

• Simular o VHDL com o mesmo testbench do T1 para este novo VHDL

• Aplicar os passos descritos nas transparências 24-35 ao novo VHDL assim gerado, prototipando o novo hardware

TRABALHO A FAZER (P1)

Page 37: Parte 2 - Introdução a FPGAs e Prototipação de Hardware LABORG Fernando Moraes e Ney Laert Vilar Calazans 25/março/2014.

37Fernando Moraes e Ney Calazans

• E se o resultado aparecesse nos mostradores de sete segmentos?

• Segue uma sugestão de modificação do projeto para realizar isto. Use a alteração proposta anteriormente e suponha que o resultado da soma vá ao display mais à direita da placa, e que o vai-um seja associado a algum LED (pode ser um LED não usado como LD4 a LD7 ou um ponto decimal de um dos mostradores de 7 segmentos):

– Ler o manual de referência para entender como funcionam os mostradores (fim da página 5 e página 6 do Nexys2_rm.pdf). Complicado?

– Abrir e estudar o código VHDL contido no link dspl_drv_nexys.vhd. Será dada explicação em aula sobre este VHDL. Acrescentar este arquivo no seu projeto:

» No ambiente ISE, ir na janela Sources (canto superior esquerdo) clicar com botão direito do mouse no ícone com o nome do dispositivo (xc3s1200E-4FG320) e escolhendo a opção de menu Add Source.

– Modificar o UCF para adaptá-lo ao novo formato da saída. Testar!

TRABALHO A FAZER (P2)

Page 38: Parte 2 - Introdução a FPGAs e Prototipação de Hardware LABORG Fernando Moraes e Ney Laert Vilar Calazans 25/março/2014.

38Fernando Moraes e Ney Calazans

• Para ajudar na compreensão desta parte do trabalho, segue abaixo um diagrama de blocos e conexões parcial do circuito resultante. Aqui, a expressão E/A corresponde a um par Entidade/Arquitetura que define um módulo de hardware descrito em VHDL

• Notem que se trata de uma descrição hierárquica: O somador e o driver são instanciados dentro da descrição VHDL da entidade, no topo da hierarquia de projeto

• Nem todos os pinos e fios estão nomeados explicitamente no diagrama. Completem-nos nos arquivo(s) VHDL

TRABALHO A FAZER (P2)

E/A topo da hierarquia

E/A somador E/A driver

A (4bits)

BB (4bits)

A S (4bits)

D1 (6 bits)

D2 (6 bits)

D3 (6 bits)

D4 (6 bits)an (4bits)

dec_ddp (8bits)

Conexões.descrevamem VHDL!!

clock reset

Vai-um

Page 39: Parte 2 - Introdução a FPGAs e Prototipação de Hardware LABORG Fernando Moraes e Ney Laert Vilar Calazans 25/março/2014.

39Fernando Moraes e Ney Calazans

(1) Módulos de base para o projeto

Somador 4 bitsdspl_drv_nexys

A4

B4

Soma5

D16

D26

D36

D46

AN4

Dec_BPP8

ck reset

• Colocar em um diretório src os fontes do somador e o driver de display (disponível na página da disciplina)

Page 40: Parte 2 - Introdução a FPGAs e Prototipação de Hardware LABORG Fernando Moraes e Ney Laert Vilar Calazans 25/março/2014.

40Fernando Moraes e Ney Calazans

A (4bits)

B (4bits)an (4bits)

dec_ddp (8bits)

clock reset

carry

(2) Adicionar o arquivo UCF

• Adicionar no diretório src o arquivo UCF disponível na página

Page 41: Parte 2 - Introdução a FPGAs e Prototipação de Hardware LABORG Fernando Moraes e Ney Laert Vilar Calazans 25/março/2014.

41Fernando Moraes e Ney Calazans

(3) Criar um VHDL top

soma

A (4bits)

B (4bits)

A

an (4bits)

dec_ddp (8bits)

clock reset

4

B4

Soma5

D16

D26

D36

D46

AN4

Dec_BPP8

ck reset

carry

PORT MAP

SINAIS INTERNOS

PORT MAP

d1

d3

d2

d4

• Ao se fazer os 2 comandos port_map, alguns sinais internos precisam ser criados

Page 42: Parte 2 - Introdução a FPGAs e Prototipação de Hardware LABORG Fernando Moraes e Ney Laert Vilar Calazans 25/março/2014.

42Fernando Moraes e Ney Calazans

(4) Ligar os sinais internos

Somador 4 bitsdspl_drv_nexys

A (4bits)

B (4bits)

A

an (4bits)

dec_ddp (8bits)

clock reset

4

B4

Soma5

D16

D26

D36

D46

AN4

Dec_BPP8

ck reset

carrysoma(4)

O vai-um de saída é o quinto bit da soma

Page 43: Parte 2 - Introdução a FPGAs e Prototipação de Hardware LABORG Fernando Moraes e Ney Laert Vilar Calazans 25/março/2014.

43Fernando Moraes e Ney Calazans

(4) Ligar os sinais internos

Somador 4 bitsdspl_drv_nexys

A (4bits)

B (4bits)

A

an (4bits)

dec_ddp (8bits)

clock reset

4

B4

Soma5

D16

D26

D36

D46

AN4

Dec_BPP8

ck reset

carrysoma(4)

‘1’& A & ‘1'

‘1’& B & ‘1'

Sinais de entrada A e B para o codificador:

mostrador ligado (‘1’ à esquerda), c/ponto

decimal apagado (‘1’ à direita)

Page 44: Parte 2 - Introdução a FPGAs e Prototipação de Hardware LABORG Fernando Moraes e Ney Laert Vilar Calazans 25/março/2014.

44Fernando Moraes e Ney Calazans

(4) Ligar os sinais internos

Somador 4 bitsdspl_drv_nexys

A (4bits)

B (4bits)

A

an (4bits)

dec_ddp (8bits)

clock reset

4

B4

Soma5

D16

D26

D36

D46

AN4

Dec_BPP8

ck reset

carrysoma(4)

‘1’& A & ‘1'

‘1’& B & ‘1'

“000000"

dígito 3 apagado (‘0’ mais à esquerda – demais são don´t care)

Page 45: Parte 2 - Introdução a FPGAs e Prototipação de Hardware LABORG Fernando Moraes e Ney Laert Vilar Calazans 25/março/2014.

45Fernando Moraes e Ney Calazans

(4) Ligar os sinais internos

Somador 4 bitsdspl_drv_nexys

A (4bits)

B (4bits)

A

an (4bits)

dec_ddp (8bits)

clock reset

4

B4

Soma5

D16

D26

D36

D46

AN4

Dec_BPP8

ck reset

carrysoma(4)

‘1’& A & ‘1'

‘1’& B & ‘1'

“000000"

Sinal de soma

'1' & Soma & '1’

Page 46: Parte 2 - Introdução a FPGAs e Prototipação de Hardware LABORG Fernando Moraes e Ney Laert Vilar Calazans 25/março/2014.

46Fernando Moraes e Ney Calazans

A ENTREGAR – T2

• Um arquivo compactado (.zip, .rar, etc.) contendo:

– P1/ VHDL do somador com vai um

VHDL do test bench

arquivo .ucf

arquivo .bit

– P2/ VHDL do top com instância do somador / driver

VHDL do somador com vai um

VHDL do driver

arquivo .ucf

arquivo .bit