laborg - escola politécnicaemoreno/undergraduate/ec/... · –lógica do usuário ... prática...

47
Parte 2 - Introdução a FPGAs e Prototipação de Hardware LABORG Edson Moreno e Ney Laert Vilar Calazans 18/março/2012

Upload: others

Post on 18-Sep-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: LABORG - Escola Politécnicaemoreno/undergraduate/EC/... · –Lógica do usuário ... Prática –Trabalhando com FPGAs - Prototipação. Edson Moreno e Ney Calazans 25 Utilizando

Parte 2 - Introdução a FPGAs e

Prototipação de Hardware

LABORG

Edson Moreno e Ney Laert Vilar Calazans

18/março/2012

Page 2: LABORG - Escola Politécnicaemoreno/undergraduate/EC/... · –Lógica do usuário ... Prática –Trabalhando com FPGAs - Prototipação. Edson Moreno e Ney Calazans 25 Utilizando

Teoria – Estrutura de FPGAs

Page 3: LABORG - Escola Politécnicaemoreno/undergraduate/EC/... · –Lógica do usuário ... Prática –Trabalhando com FPGAs - Prototipação. Edson Moreno e Ney Calazans 25 Utilizando

3Edson Moreno 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: LABORG - Escola Politécnicaemoreno/undergraduate/EC/... · –Lógica do usuário ... Prática –Trabalhando com FPGAs - Prototipação. Edson Moreno e Ney Calazans 25 Utilizando

4Edson Moreno 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: LABORG - Escola Politécnicaemoreno/undergraduate/EC/... · –Lógica do usuário ... Prática –Trabalhando com FPGAs - Prototipação. Edson Moreno e Ney Calazans 25 Utilizando

5Edson Moreno 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

Switch

Blocks:

Page 6: LABORG - Escola Politécnicaemoreno/undergraduate/EC/... · –Lógica do usuário ... Prática –Trabalhando com FPGAs - Prototipação. Edson Moreno e Ney Calazans 25 Utilizando

6Edson Moreno 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: LABORG - Escola Politécnicaemoreno/undergraduate/EC/... · –Lógica do usuário ... Prática –Trabalhando com FPGAs - Prototipação. Edson Moreno e Ney Calazans 25 Utilizando

7Edson Moreno 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 (mproc)

– 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: LABORG - Escola Politécnicaemoreno/undergraduate/EC/... · –Lógica do usuário ... Prática –Trabalhando com FPGAs - Prototipação. Edson Moreno e Ney Calazans 25 Utilizando

8Edson Moreno 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 o

FPGA for alimentado

Configuração um número limitado de vezes,

mantida com o chip desconectado da alimentação

Tecnologias de Configuração

Page 9: LABORG - Escola Politécnicaemoreno/undergraduate/EC/... · –Lógica do usuário ... Prática –Trabalhando com FPGAs - Prototipação. Edson Moreno e Ney Calazans 25 Utilizando

9Edson Moreno e Ney Calazans

LUT – O Gerador Universal de Funções

• LUT – Look-Up Table – Um exemplo de Bloco 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: LABORG - Escola Politécnicaemoreno/undergraduate/EC/... · –Lógica do usuário ... Prática –Trabalhando com FPGAs - Prototipação. Edson Moreno e Ney Calazans 25 Utilizando

10Edson Moreno 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 / LUT4

Para 50.000 LUTS 7.500.000 transistores!!!

Page 11: LABORG - Escola Politécnicaemoreno/undergraduate/EC/... · –Lógica do usuário ... Prática –Trabalhando com FPGAs - Prototipação. Edson Moreno e Ney Calazans 25 Utilizando

11Edson Moreno e Ney Calazans

O Mercado de FPGAs

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

PLDs FPGAs

✓ Dados de 2009, onde 2 fornecedores dominam, indicando um mercado maduro.

Page 12: LABORG - Escola Politécnicaemoreno/undergraduate/EC/... · –Lógica do usuário ... Prática –Trabalhando com FPGAs - Prototipação. Edson Moreno e Ney Calazans 25 Utilizando

12Edson Moreno 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: LABORG - Escola Politécnicaemoreno/undergraduate/EC/... · –Lógica do usuário ... Prática –Trabalhando com FPGAs - Prototipação. Edson Moreno e Ney Calazans 25 Utilizando

13Edson Moreno e Ney Calazans

Switch

Matrix

CLB,

IOB,

DCM

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

•Lógica (uso primário)

•128b RAM distribuída

•Shift registers

• Wide Input functions (32:1)

Alguns Detalhes: Arquitetura Virtex II

Page 14: LABORG - Escola Politécnicaemoreno/undergraduate/EC/... · –Lógica do usuário ... Prática –Trabalhando com FPGAs - Prototipação. Edson Moreno e Ney Calazans 25 Utilizando

14Edson Moreno 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

SWITCH

MATRIX

SLICE SLICE

Local

Feedback

CA

RR

Y

CA

RR

Y

CLB

CA

RR

Y

CA

RR

Y

DIRECTCONNECT

DIRECTCONNECT

Page 15: LABORG - Escola Politécnicaemoreno/undergraduate/EC/... · –Lógica do usuário ... Prática –Trabalhando com FPGAs - Prototipação. Edson Moreno e Ney Calazans 25 Utilizando

15Edson Moreno 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: LABORG - Escola Politécnicaemoreno/undergraduate/EC/... · –Lógica do usuário ... Prática –Trabalhando com FPGAs - Prototipação. Edson Moreno e Ney Calazans 25 Utilizando

16Edson Moreno e Ney Calazans

Arquitetura – Metade de um Slice

Page 17: LABORG - Escola Politécnicaemoreno/undergraduate/EC/... · –Lógica do usuário ... Prática –Trabalhando com FPGAs - Prototipação. Edson Moreno e Ney Calazans 25 Utilizando

17Edson Moreno e Ney Calazans

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

Page 18: LABORG - Escola Politécnicaemoreno/undergraduate/EC/... · –Lógica do usuário ... Prática –Trabalhando com FPGAs - Prototipação. Edson Moreno e Ney Calazans 25 Utilizando

18Edson Moreno 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: LABORG - Escola Politécnicaemoreno/undergraduate/EC/... · –Lógica do usuário ... Prática –Trabalhando com FPGAs - Prototipação. Edson Moreno e Ney Calazans 25 Utilizando

19Edson Moreno 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: LABORG - Escola Politécnicaemoreno/undergraduate/EC/... · –Lógica do usuário ... Prática –Trabalhando com FPGAs - Prototipação. Edson Moreno e Ney Calazans 25 Utilizando

20Edson Moreno e Ney Calazans

XC2VP7 Virtex-II Pro FPGA

• Foto do Layout do XC2VP7

Power PC

MGTs (gigabit transceiver)

DCM (clock manager)

Page 21: LABORG - Escola Politécnicaemoreno/undergraduate/EC/... · –Lógica do usuário ... Prática –Trabalhando com FPGAs - Prototipação. Edson Moreno e Ney Calazans 25 Utilizando

21Edson Moreno 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 flexíveis)

Page 22: LABORG - Escola Politécnicaemoreno/undergraduate/EC/... · –Lógica do usuário ... Prática –Trabalhando com FPGAs - Prototipação. Edson Moreno e Ney Calazans 25 Utilizando

22Edson Moreno e Ney Calazans

Demais Componentes de FPGA Moderno (1/2)

• 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 23: LABORG - Escola Politécnicaemoreno/undergraduate/EC/... · –Lógica do usuário ... Prática –Trabalhando com FPGAs - Prototipação. Edson Moreno e Ney Calazans 25 Utilizando

23Edson Moreno 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 24: LABORG - Escola Politécnicaemoreno/undergraduate/EC/... · –Lógica do usuário ... Prática –Trabalhando com FPGAs - Prototipação. Edson Moreno e Ney Calazans 25 Utilizando

Prática – Trabalhando com

FPGAs - Prototipação

Page 25: LABORG - Escola Politécnicaemoreno/undergraduate/EC/... · –Lógica do usuário ... Prática –Trabalhando com FPGAs - Prototipação. Edson Moreno e Ney Calazans 25 Utilizando

25Edson Moreno 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 is

port ( A, B: in std_logic_vector(3 downto 0);

Soma: out std_logic_vector(3 downto 0)

);

end somador;

architecture somador of somador is

begin

Soma <= A + B; -- Soma de dois vetores de 4 bits

end somador;

Page 26: LABORG - Escola Politécnicaemoreno/undergraduate/EC/... · –Lógica do usuário ... Prática –Trabalhando com FPGAs - Prototipação. Edson Moreno e Ney Calazans 25 Utilizando

26Edson Moreno 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 27: LABORG - Escola Politécnicaemoreno/undergraduate/EC/... · –Lógica do usuário ... Prática –Trabalhando com FPGAs - Prototipação. Edson Moreno e Ney Calazans 25 Utilizando

27Edson Moreno 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 28: LABORG - Escola Politécnicaemoreno/undergraduate/EC/... · –Lógica do usuário ... Prática –Trabalhando com FPGAs - Prototipação. Edson Moreno e Ney Calazans 25 Utilizando

28Edson Moreno 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 A

NET "A<1>" LOC = “L13" ; # Bit 1 do vetor A

NET "A<2>" LOC = “N17" ; # Bit 2 do vetor A

NET "A<3>" LOC = “R17" ; # Bit 3 do vetor A

NET "B<0>" LOC = “G18" ; # Bit 0 do vetor B

NET "B<1>" LOC = “H18" ; # Bit 1 do vetor B

NET "B<2>" LOC = “K18" ; # Bit 2 do vetor B

NET "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 29: LABORG - Escola Politécnicaemoreno/undergraduate/EC/... · –Lógica do usuário ... Prática –Trabalhando com FPGAs - Prototipação. Edson Moreno e Ney Calazans 25 Utilizando

29Edson Moreno 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 30: LABORG - Escola Politécnicaemoreno/undergraduate/EC/... · –Lógica do usuário ... Prática –Trabalhando com FPGAs - Prototipação. Edson Moreno e Ney Calazans 25 Utilizando

30Edson Moreno 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 31: LABORG - Escola Politécnicaemoreno/undergraduate/EC/... · –Lógica do usuário ... Prática –Trabalhando com FPGAs - Prototipação. Edson Moreno e Ney Calazans 25 Utilizando

31Edson Moreno 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 32: LABORG - Escola Politécnicaemoreno/undergraduate/EC/... · –Lógica do usuário ... Prática –Trabalhando com FPGAs - Prototipação. Edson Moreno e Ney Calazans 25 Utilizando

32Edson Moreno 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 33: LABORG - Escola Politécnicaemoreno/undergraduate/EC/... · –Lógica do usuário ... Prática –Trabalhando com FPGAs - Prototipação. Edson Moreno e Ney Calazans 25 Utilizando

33Edson Moreno 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 34: LABORG - Escola Politécnicaemoreno/undergraduate/EC/... · –Lógica do usuário ... Prática –Trabalhando com FPGAs - Prototipação. Edson Moreno e Ney Calazans 25 Utilizando

34Edson Moreno 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 35: LABORG - Escola Politécnicaemoreno/undergraduate/EC/... · –Lógica do usuário ... Prática –Trabalhando com FPGAs - Prototipação. Edson Moreno e Ney Calazans 25 Utilizando

35Edson Moreno 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 36: LABORG - Escola Politécnicaemoreno/undergraduate/EC/... · –Lógica do usuário ... Prática –Trabalhando com FPGAs - Prototipação. Edson Moreno e Ney Calazans 25 Utilizando

36Edson Moreno 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 <device_name> 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 <device_name> –i 0 –f file_name.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 37: LABORG - Escola Politécnicaemoreno/undergraduate/EC/... · –Lógica do usuário ... Prática –Trabalhando com FPGAs - Prototipação. Edson Moreno e Ney Calazans 25 Utilizando

37Edson Moreno e Ney Calazans

TRABALHO

Page 38: LABORG - Escola Politécnicaemoreno/undergraduate/EC/... · –Lógica do usuário ... Prática –Trabalhando com FPGAs - Prototipação. Edson Moreno e Ney Calazans 25 Utilizando

38Edson Moreno e Ney Calazans

33

Projeto 1

➢ Projeto 1 consiste em acrescentar o cálculo de “vai-um” no circuito do

somador apresentado em aula. 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’:

» AA <= ‘0’ & A; -- o símbolo & significa concatenação

em VHDL

➢ Modificar o UCF para que um dos LEDs não usados (por exemplo o LD7) seja

associado ao “vai-um” gerado (o quinto bit da soma).

➢ Simular o VHDL com o mesmo testbench do Trabalho 1 para este novo VHDL.

➢ Aplicar os passos descritos na seção “Prototipação em FPGA” ao novo VHDL

gerado, prototipando o novo hardware.

Page 39: LABORG - Escola Politécnicaemoreno/undergraduate/EC/... · –Lógica do usuário ... Prática –Trabalhando com FPGAs - Prototipação. Edson Moreno e Ney Calazans 25 Utilizando

39Edson Moreno e Ney Calazans

34

Projeto 2

➢ No Projeto 2 o resultado deve aparecer no display de sete segmentos.

Segue uma sugestão de modificação do projeto para resolver o

problema. Lembre-se de usar como base o Projeto 1 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 arquivo

Documentacao_da_placa_de_prototipacao.pdf).

✓ Abrir e estudar o código VHDL contido no material de apoio

(dspl_drv_nexys.vhd). Deve-se 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 e prototipar.

Page 40: LABORG - Escola Politécnicaemoreno/undergraduate/EC/... · –Lógica do usuário ... Prática –Trabalhando com FPGAs - Prototipação. Edson Moreno e Ney Calazans 25 Utilizando

40Edson Moreno e Ney Calazans

35

E/A do 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.

descrevam

em VHDL!!

clock reset

Vai-um

➢ Para ajudar na compreensão desta parte do trabalho, segue abaixo um

diagrama de blocos e conexões parcial do circuito resultante. 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.

Projeto 2

Page 41: LABORG - Escola Politécnicaemoreno/undergraduate/EC/... · –Lógica do usuário ... Prática –Trabalhando com FPGAs - Prototipação. Edson Moreno e Ney Calazans 25 Utilizando

41Edson Moreno e Ney Calazans

36

Somador 4 bits

A4

B4

Soma5

dspl_drv_nexys

D16

D26

D36

D46

AN4

Dec_BPP8

ck reset

1. Colocar em um diretório src os fontes do somador e o driver dedisplay (disponível no ambiente Moodle).

2. Adicionar no diretório src o arquivo UCF disponível no Moodle.

A (4bits)

B (4bits)an (4bits)

dec_ddp

(8bits)

clock reset

carry

Projeto 2

Page 42: LABORG - Escola Politécnicaemoreno/undergraduate/EC/... · –Lógica do usuário ... Prática –Trabalhando com FPGAs - Prototipação. Edson Moreno e Ney Calazans 25 Utilizando

42Edson Moreno e Ney Calazans

37

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

3. Devemos criar um VHDL top. Ao fazermos os 2 comandos port_map, alguns sinais internos precisam ser criados.

Projeto 2

Page 43: LABORG - Escola Politécnicaemoreno/undergraduate/EC/... · –Lógica do usuário ... Prática –Trabalhando com FPGAs - Prototipação. Edson Moreno e Ney Calazans 25 Utilizando

43Edson Moreno e Ney Calazans

38

Somador 4 bits

dspl_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

4. Ligar os sinais internos.

Projeto 2

Page 44: LABORG - Escola Politécnicaemoreno/undergraduate/EC/... · –Lógica do usuário ... Prática –Trabalhando com FPGAs - Prototipação. Edson Moreno e Ney Calazans 25 Utilizando

44Edson Moreno e Ney Calazans

Somador 4 bits

dspl_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)

39

4. Ligar os sinais internos.

Projeto 2

Page 45: LABORG - Escola Politécnicaemoreno/undergraduate/EC/... · –Lógica do usuário ... Prática –Trabalhando com FPGAs - Prototipação. Edson Moreno e Ney Calazans 25 Utilizando

45Edson Moreno e Ney Calazans

40

Somador 4 bits

dspl_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)

4. Ligar os sinais internos.

Projeto 2

Page 46: LABORG - Escola Politécnicaemoreno/undergraduate/EC/... · –Lógica do usuário ... Prática –Trabalhando com FPGAs - Prototipação. Edson Moreno e Ney Calazans 25 Utilizando

46Edson Moreno e Ney Calazans

41

Somador 4 bits

dspl_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’

4. Ligar os sinais internos.

Projeto 2

Page 47: LABORG - Escola Politécnicaemoreno/undergraduate/EC/... · –Lógica do usuário ... Prática –Trabalhando com FPGAs - Prototipação. Edson Moreno e Ney Calazans 25 Utilizando

47Edson Moreno e Ney Calazans

42

➢ O Trabalho 1B (T1B) consiste em um arquivo compactado (.zip)

contendo:

Um✓ relatorio em PDF descrevendo os 2 projetos de acordo com o

modelo apresentado.

Um✓ diretorio para o Projeto 1, contendo os seguintes arquivos:

VHDL• do somador com vai um

VHDL• do test bench

arquivo• .ucf

arquivo• .bit

Um✓ diretorio para o Projeto 2, contendo os seguintes arquivos

VHDL• do top com instância do somador / driver

arquivo• .ucf

arquivo• .bit

Resumo do Trabalho 1B