plataformas de prototipação de hardware princípios, taxonomia, características e exemplos

89
1/85 PLATAFORMAS DE PROTOTIPAÇÃO Fernando Gehm Moraes / Ney Calazans Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Informática Grupo de Apoio ao Projeto de Hardware - GAPH Fernando Gehm Moraes / Ney Calazans Março / 2002 Tópicos Especiais em Sistemas Digitais I

Upload: meryl

Post on 10-Feb-2016

35 views

Category:

Documents


0 download

DESCRIPTION

Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Informática Grupo de Apoio ao Projeto de Hardware - GAPH. Plataformas de Prototipação de Hardware Princípios, Taxonomia, Características e Exemplos. Tópicos Especiais em Sistemas Digitais I. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Plataformas de Prototipação de Hardware  Princípios, Taxonomia, Características e Exemplos

1/85

PLA

TAFO

RM

AS

DE

PRO

TOTI

PAÇ

ÃO

Fernando Gehm Moraes / Ney Calazans

Pontifícia Universidade Católica do Rio Grande do SulFaculdade de Informática

Grupo de Apoio ao Projeto de Hardware - GAPH

Fernando Gehm Moraes / Ney CalazansMarço / 2002

Tópicos Especiais em Sistemas Digitais I

Page 2: Plataformas de Prototipação de Hardware  Princípios, Taxonomia, Características e Exemplos

2/85

PLA

TAFO

RM

AS

DE

PRO

TOTI

PAÇ

ÃO

Fernando Gehm Moraes / Ney Calazans

• Homepage de fabricantes de PLDs, e.g.:– www.xilinx.com, www.altera.com, www.actel.com, www.atmel.com

• Homepage de fabricantes de plataformas de prototipação e.g.:– www.xess.com/FPGA, www.aptix.com, www.vcc.com

• Página de plataformas baseadas em FPGA de S. Guccione:– www.io.com/~guccione/HW_list.html

• Homepage de fabricantes de sistemas de CAD:– www.synopsys.com, www.aldec.com

• Homepage de links para sites relacionados a FPGAs:– http://www.mrc.uidaho.edu/fpga/

• Livros disponíveis na biblioteca sobre FPGAs, VHDL, Codesign

Onde Buscar Mais Informações?

Page 3: Plataformas de Prototipação de Hardware  Princípios, Taxonomia, Características e Exemplos

3/85

PLA

TAFO

RM

AS

DE

PRO

TOTI

PAÇ

ÃO

Fernando Gehm Moraes / Ney Calazans

katherine

moraes

daniel

carlosrodrigo

Sumário

1. PROJETO DE SISTEMAS DIGITAIS USANDO CAD

2. FLUXO DE PROJETO EM PROTOTIPAÇÃO

3. PLATAFORMAS DE PROTOTIPAÇÃO

4. Estudo de Caso: PLACA XSV

FPGA

Page 4: Plataformas de Prototipação de Hardware  Princípios, Taxonomia, Características e Exemplos

4/85

PLA

TAFO

RM

AS

DE

PRO

TOTI

PAÇ

ÃO

Fernando Gehm Moraes / Ney Calazans

1 - Projeto de SDs usando CAD

• Estrutura Geral de CAD:– Interface Gráfico-textual

Arcabouço de Projeto (framework)

Arcabouçode Projeto

Programas

Bibliotecas

Descrições

InterfaceGráfico -Textual

– Descrições de projeto– Ferramentas de projeto– Bibliotecas

Page 5: Plataformas de Prototipação de Hardware  Princípios, Taxonomia, Características e Exemplos

5/85

PLA

TAFO

RM

AS

DE

PRO

TOTI

PAÇ

ÃO

Fernando Gehm Moraes / Ney Calazans

1. Especificação e Projeto» criar circuito e “módulo de validação” (test_bench)

» inserir restrições temporais

» definir pinagem (relação entre os sinais e os pinos do chip)

2. Simulação Funcional

3. Síntese Lógica

4. Simulação Lógica

5. Síntese Física

6. Extração de parasitas (capacitâncias e resistências)

7. Simulação com Atraso Detalhado

8. Download

Fluxo de Projeto p/ a Família XC4000 (revisão)

Page 6: Plataformas de Prototipação de Hardware  Princípios, Taxonomia, Características e Exemplos

6/85

PLA

TAFO

RM

AS

DE

PRO

TOTI

PAÇ

ÃO

Fernando Gehm Moraes / Ney Calazans

Exemplo de Sistema de Projeto - Foundation, da Xilinx

Componentesde projeto

Ferr

amen

tas

de p

roje

to

Janela demensagens

• Janela Principal = fluxo de projeto

síntese lógica

síntese física sim

ulaç

ãoló

gica

sim

ulaç

ãofís

ica

sim

ulaç

ão

func

iona

l

rest

riçõe

ste

mpo

rais

ede

pin

agem

download

bibl

iote

cas

Page 7: Plataformas de Prototipação de Hardware  Princípios, Taxonomia, Características e Exemplos

7/85

PLA

TAFO

RM

AS

DE

PRO

TOTI

PAÇ

ÃO

Fernando Gehm Moraes / Ney Calazans

Edição de esquemático (ou captura de esquemático)

Editor hierárquicode esquemas

Page 8: Plataformas de Prototipação de Hardware  Princípios, Taxonomia, Características e Exemplos

8/85

PLA

TAFO

RM

AS

DE

PRO

TOTI

PAÇ

ÃO

Fernando Gehm Moraes / Ney Calazans

Simulação lógica

Simulador Lógico: Funcional e de TemporizaçãoJanela de Simulação Janela de

Estimulação

Janela deControle

Page 9: Plataformas de Prototipação de Hardware  Princípios, Taxonomia, Características e Exemplos

9/85

PLA

TAFO

RM

AS

DE

PRO

TOTI

PAÇ

ÃO

Fernando Gehm Moraes / Ney Calazans

Síntese Física

Ferramentas Individuais

ou conjunto de ferramentas

Andamento da Síntese: Execução passo-a-passo ou automática

Page 10: Plataformas de Prototipação de Hardware  Princípios, Taxonomia, Características e Exemplos

10/85

PLA

TAFO

RM

AS

DE

PRO

TOTI

PAÇ

ÃO

Fernando Gehm Moraes / Ney Calazans

Relatórios (de posicionamento e roteamento)

USO DE BLOCOS LÓGICOS

pads

Recursos internos

Page 11: Plataformas de Prototipação de Hardware  Princípios, Taxonomia, Características e Exemplos

11/85

PLA

TAFO

RM

AS

DE

PRO

TOTI

PAÇ

ÃO

Fernando Gehm Moraes / Ney Calazans

Análise de Caminhos Críticos

Page 12: Plataformas de Prototipação de Hardware  Princípios, Taxonomia, Características e Exemplos

12/85

PLA

TAFO

RM

AS

DE

PRO

TOTI

PAÇ

ÃO

Fernando Gehm Moraes / Ney Calazans

Edição do layout do FPGA• visualização da síntese física• edição manual• análise de ocupação

Page 13: Plataformas de Prototipação de Hardware  Princípios, Taxonomia, Características e Exemplos

13/85

PLA

TAFO

RM

AS

DE

PRO

TOTI

PAÇ

ÃO

Fernando Gehm Moraes / Ney Calazans

PLANTA BAIXA, ou floorplaning (posicionamento relativo)

Page 14: Plataformas de Prototipação de Hardware  Princípios, Taxonomia, Características e Exemplos

14/85

PLA

TAFO

RM

AS

DE

PRO

TOTI

PAÇ

ÃO

Fernando Gehm Moraes / Ney Calazans

Download

• A cada utilização– Via cabo serial ou paralelo

• Permanente– Arquivo de configuração armazenado em memória

não volátil (EPROM, EEPROM ou Flash)

XC4000XC4000XC4000

Page 15: Plataformas de Prototipação de Hardware  Princípios, Taxonomia, Características e Exemplos

15/85

PLA

TAFO

RM

AS

DE

PRO

TOTI

PAÇ

ÃO

Fernando Gehm Moraes / Ney Calazans

katherine

moraes

daniel

carlosrodrigo

Sumário

1. PROJETO DE SISTEMAS DIGITAIS USANDO CAD

2. FLUXO DE PROJETO EM PROTOTIPAÇÃO

3. PLATAFORMAS DE PROTOTIPAÇÃO

4. Estudo de Caso: PLACA XSV

FPGA

Page 16: Plataformas de Prototipação de Hardware  Princípios, Taxonomia, Características e Exemplos

16/85

PLA

TAFO

RM

AS

DE

PRO

TOTI

PAÇ

ÃO

Fernando Gehm Moraes / Ney Calazans

2. FLUXO DE PROJETO EM PROTOTIPAÇÃO

Técnicas de Implementação

Projeto e Implementação de ProdutosTecnológicos Baseados em Circuitos

Eletrônicos Digitais

Sem Projeto deDispositivos

Com Projeto deDispositivos

Sistema digitaldedicado para o

produto, via uso dedispositivos comerciais(programáveis ou não)desenvolvidos para a

classe de aplicações doproblema

(e.g. chip sets paraprodutos telecom)

Sistema digitaldedicado para o

produto, via uso dedispositivos comerciais

programáveis(e.g. microcontroladores

e/ou DSPs)

Sistemas computacionalcomercial com

programação para suprirdemandas do produto

(e.g. PC)

Sistema digital dedicadocontendo dispositivos

comerciaispersonalizáveis

(e.g. FPGAs e CPLDs)

Sistema digitaldedicado contendo

dispositivos projetadose fabricados sob

encomenda para oproduto- ASIC

(e.g. gate-arrays oustandard cells)

Já dominado pelasempresas nacionais

Pouco dominado porempresas nacionais.

Estratégico, domínio denova tecnologia!

Aumento de desempenho (maior velocidade e menor potência dissipada), custo de desenvolvimento, sigilo de projeto

Diminuição da complexidade de projeto

Nova tecnologia

Page 17: Plataformas de Prototipação de Hardware  Princípios, Taxonomia, Características e Exemplos

17/85

PLA

TAFO

RM

AS

DE

PRO

TOTI

PAÇ

ÃO

Fernando Gehm Moraes / Ney Calazans

Ontem e o FUTURO

RAM/ROM

Glue Logic

µC

AnalogDSP

Glue Logic

RAM/ROM

µC

Analog DSP

Componentes de um projeto de hardware moderno e complexo

integração

Page 18: Plataformas de Prototipação de Hardware  Princípios, Taxonomia, Características e Exemplos

18/85

PLA

TAFO

RM

AS

DE

PRO

TOTI

PAÇ

ÃO

Fernando Gehm Moraes / Ney Calazans

Fluxo de projeto em prototipação

Ontem:

µP

memória

Sistemas baseadosem CIs de prateleira

µP ASIC

memória

FPGA

FPGA

Hoje:

memória

Sistemas baseadosem ASICs

ASIC

“System on a chip”

A/D

D/A

S P CoreµP

GlueLogic

DSPCoreDMA

RAM ROM

P S

Futuro:Sistemas Complexos

ULSI

Hoje - CIs com 60Mtransistores Daqui há 8 anos - Cis com 960 Mtransistores!

Page 19: Plataformas de Prototipação de Hardware  Princípios, Taxonomia, Características e Exemplos

19/85

PLA

TAFO

RM

AS

DE

PRO

TOTI

PAÇ

ÃO

Fernando Gehm Moraes / Ney Calazans

Como construir / validar um sistema complexo ?

µP

memória

FPGA

FPGA

FPGA

FPGA

FPGA

FPGA

memória

Sistemas Programáveis

Analog

A/D

D/A

S P CoreµP

GlueLogic

DSPCoreDMA

RAM ROM

P S

CI final

• Problema: soluções tradicionais como simulação– impossível validar a contento sistema completo

• Partes da solução do quebra-cabeças:– Técnicas de verificação mais poderosas (Verificação formal)– Propriedade Intelectual (IP Cores)Projeto Integrado de Sw e Hw (H/S Codesign)Prototipação Rápida de Hw (e Sw) Computação Configurável

Page 20: Plataformas de Prototipação de Hardware  Princípios, Taxonomia, Características e Exemplos

20/85

PLA

TAFO

RM

AS

DE

PRO

TOTI

PAÇ

ÃO

Fernando Gehm Moraes / Ney Calazans

Prototipação rápida

• Permite a rápida implementação de sistemas digitais complexos– reduz “time-to-market” de produtos– permite avaliação realista do hardware– solução para o produto final se volume de produção não for muito elevado

(inferior a 15.000 peças)

– principais restrições:» freqüência de operação» ausência de dispositivos analógicos

• Nova área de pesquisa: arquiteturas reconfiguráveis– hardware pode se adaptar ao problema proposto– exemplos de arquiteturas acadêmicas:

» DISC, PRISM, SPLASH, Dec-Perle. Spyder, Transmogrifier, Raw,...

Page 21: Plataformas de Prototipação de Hardware  Princípios, Taxonomia, Características e Exemplos

21/85

PLA

TAFO

RM

AS

DE

PRO

TOTI

PAÇ

ÃO

Fernando Gehm Moraes / Ney Calazans

Requisitos em um ambiente de prototipação

Time to market

Simulação próxima ao tempo real (real-world testing)

Validação simultânea da arquitetura e algoritmo

Flexibilidade

Reutilização dos módulos de hardware (core re-use)

Interatividade com o usuário

Page 22: Plataformas de Prototipação de Hardware  Princípios, Taxonomia, Características e Exemplos

22/85

PLA

TAFO

RM

AS

DE

PRO

TOTI

PAÇ

ÃO

Fernando Gehm Moraes / Ney Calazans

CODESIGN: projeto integrado de hardware e software

Co-Simulação Partição

Co-SínteseSíntese

HDL C

Compilação

Especificação do sistema

Módulos pré-definidos

de hardware(cores)

Bibliotecasde

funçõesµP

memória

FPGA

FPGA

FPGA

FPGA

FPGA

FPGA

memória Analog

A/D

D/A

S P

CoreµP

GlueLogic

DSPCoreDMA

RAM ROM

P S

Page 23: Plataformas de Prototipação de Hardware  Princípios, Taxonomia, Características e Exemplos

23/85

PLA

TAFO

RM

AS

DE

PRO

TOTI

PAÇ

ÃO

Fernando Gehm Moraes / Ney Calazans

katherine

moraes

daniel

carlosrodrigo

Sumário

1. PROJETO DE SISTEMAS DIGITAIS USANDO CAD

2. FLUXO DE PROJETO EM PROTOTIPAÇÃO

3. PLATAFORMAS DE PROTOTIPAÇÃO

4. Estudo de Caso: PLACA XSV

FPGA

Page 24: Plataformas de Prototipação de Hardware  Princípios, Taxonomia, Características e Exemplos

24/85

PLA

TAFO

RM

AS

DE

PRO

TOTI

PAÇ

ÃO

Fernando Gehm Moraes / Ney Calazans

3 - Plataformas de Prototipação Rápida

Plataformas de Prototipação Rápida de Sistemas Digitais

Definição: São sistemas digitais cujo hardware pode ser alteradode forma dinâmica, para implementar comportamentos diversos.

Utillidades:• Validação funcional de sistemas digitais complexos• Aumento da controlabilidade e observabilidade de um

projeto• Ensino de projeto de sistemas digitais• Desenvolvimento de partes de sistemas digitais• Implementação e validação de sistemas digitais

reconfiguráveis

Page 25: Plataformas de Prototipação de Hardware  Princípios, Taxonomia, Características e Exemplos

25/85

PLA

TAFO

RM

AS

DE

PRO

TOTI

PAÇ

ÃO

Fernando Gehm Moraes / Ney Calazans

Características e Classificação

Modelo Geral de Estrutura de Uma Plataforma de

Prototipação Rápida de Sistemas Digitais

Recursos Reconfiguráveis

Recursos Fixos

Recursos Programáveis

Recursos de

Interconexão

Computador Hospedeiro

Page 26: Plataformas de Prototipação de Hardware  Princípios, Taxonomia, Características e Exemplos

26/85

PLA

TAFO

RM

AS

DE

PRO

TOTI

PAÇ

ÃO

Fernando Gehm Moraes / Ney Calazans

Taxonomia de Plataformas de Prototipação

• Critérios de Classificação;

– Forma de comunicação com o hospedeiro

– Direcionalidade da comunicação com o hospedeiro

– Recursos fixos

– Recursos programáveis

– Relação recursos programáveis x recursos reconfiguráveis

– Recursos reconfiguráveis

– Recursos de interconexão

– Aplicação alvo

Page 27: Plataformas de Prototipação de Hardware  Princípios, Taxonomia, Características e Exemplos

27/85

PLA

TAFO

RM

AS

DE

PRO

TOTI

PAÇ

ÃO

Fernando Gehm Moraes / Ney Calazans

Computação Reconfigurável

• Nova área de pesquisa e desenvolvimento• O que é?

– Hardware VLSI reconfigurável em ms ou s– Hardware corrigível - prototipação

(tempo de [re]configuração Ok!)– Hardware adaptável ao problema - computação configurável

» Desafios:• reconfigurabilidade pode exigir tempos de ns• reconfiguração seguida tem de ser parcial• largura de banda entre memória e processamento - crítica• largura de banda intra-CI X largura de banda extra-CI• reconfigurabilidade da interconexão - tão ou mais importante• Software, software, software, software, software para tudo acima!!!!

Page 28: Plataformas de Prototipação de Hardware  Princípios, Taxonomia, Características e Exemplos

28/85

PLA

TAFO

RM

AS

DE

PRO

TOTI

PAÇ

ÃO

Fernando Gehm Moraes / Ney Calazans

Plataformas disponíveis no GAPH

• DEMOBOARD (4003 e 4010)• HARP (transputer e 3195)• LIRMM• AEE• Xess - XS40/XST-1 e XSV• VCC - VW300 e HotII-XL• Altera - SOPC e Excalibur

… a família continua crescendo

Aposentadas!

Page 29: Plataformas de Prototipação de Hardware  Princípios, Taxonomia, Características e Exemplos

29/85

PLA

TAFO

RM

AS

DE

PRO

TOTI

PAÇ

ÃO

Fernando Gehm Moraes / Ney Calazans

DEMOBOARD: primeira plataforma do GAPH• DEMOBOARD (3020/4003 até 4010)

– ou, como tudo começou …– projetos muito simples, de baixa complexidade– útil para ensino (100 CLBs)

Page 30: Plataformas de Prototipação de Hardware  Princípios, Taxonomia, Características e Exemplos

30/85

PLA

TAFO

RM

AS

DE

PRO

TOTI

PAÇ

ÃO

Fernando Gehm Moraes / Ney Calazans

DEMOBOARD

DEMOBOARDForma de comunicação com o hospedeiro apenas download

Direcionalidade da comunicação com o hospedeiro unidirecional

Recursos fixos chaves e leds

Recursos programáveis -

Relação recursos programáveis x recursosreconfiguráveis

-

Recursos reconfiguráveis 2 FPGAS (3000/4000)

Recursos de interconexão apenas conectores

Aplicação alvo pequenos projetos digitais

Page 31: Plataformas de Prototipação de Hardware  Princípios, Taxonomia, Características e Exemplos

31/85

PLA

TAFO

RM

AS

DE

PRO

TOTI

PAÇ

ÃO

Fernando Gehm Moraes / Ney Calazans

Placa LIRMM (detalhada em detalhes na Seção posterior)

Placa com FPGAsPlaca com processador DSP

Placa mãeHunt Engineering

Vista inferior

Vista Superior

Page 32: Plataformas de Prototipação de Hardware  Princípios, Taxonomia, Características e Exemplos

32/85

PLA

TAFO

RM

AS

DE

PRO

TOTI

PAÇ

ÃO

Fernando Gehm Moraes / Ney Calazans

Placa de prototipação AEE

http:/www.aee.com.br/fpga.htm

• Muito semelhante a XS40, porém com menos recurso de E/S.

• Positivo:– ISA– ROM que guarda a programação

• Placa comercial de prototipação (brasileira)

Page 33: Plataformas de Prototipação de Hardware  Princípios, Taxonomia, Características e Exemplos

33/85

PLA

TAFO

RM

AS

DE

PRO

TOTI

PAÇ

ÃO

Fernando Gehm Moraes / Ney Calazans

Placa de prototipação XS40

Page 34: Plataformas de Prototipação de Hardware  Princípios, Taxonomia, Características e Exemplos

34/85

PLA

TAFO

RM

AS

DE

PRO

TOTI

PAÇ

ÃO

Fernando Gehm Moraes / Ney Calazans

Placa de prototipação XS40/XST-1

FPGA Xilinx 4010 32 KB SRAM

Clock de12 MHz

Interface VGA

InterfaceParalelacom o PC

ÁREA DEPROTOTIPAÇÃO

Interfacede áudio

CHAVES

7-segmentos e Leds

Microprocessador 8031

Page 35: Plataformas de Prototipação de Hardware  Princípios, Taxonomia, Características e Exemplos

35/85

PLA

TAFO

RM

AS

DE

PRO

TOTI

PAÇ

ÃO

Fernando Gehm Moraes / Ney Calazans

XS40 / XStend

XS40 / XStendForma de comunicação com o hospedeiro porta paralela

Direcionalidade da comunicação com o hospedeiro bidirecional

Recursos fixos RAM, ES som, teclado, saída VGA,chaves, leds, etc. (ver figura)

Recursos programáveis microcontrolador de 8 bits (8051)

Relação recursos programáveis x recursosreconfiguráveis

FGPA é o mestre

Recursos reconfiguráveis 1 FPGA (4000)

Recursos de interconexão paralela, conectores

Aplicação alvo projetos de média complexidade

7

ExternalMemory

FPGA

7-segmentdisplays

Dip-switches

15

8

.14

7 78

oe

Spare Reset

wece

datamem

address

ck (12Mhz)

Page 36: Plataformas de Prototipação de Hardware  Princípios, Taxonomia, Características e Exemplos

36/85

PLA

TAFO

RM

AS

DE

PRO

TOTI

PAÇ

ÃO

Fernando Gehm Moraes / Ney Calazans

XSV - XSV800 - 2 PLATAFORMAS

• POSITIVO: 800 KGATES E ABUNDÂNCIA DE E/S (US$ 1599)

Page 37: Plataformas de Prototipação de Hardware  Princípios, Taxonomia, Características e Exemplos

37/85

PLA

TAFO

RM

AS

DE

PRO

TOTI

PAÇ

ÃO

Fernando Gehm Moraes / Ney Calazans

Xess XSV - XSV800

Xess XSVForma de comunicação com o hospedeiro serial, paralela, Multilinx e

personalizada

Direcionalidade da comunicação com o hospedeiro bidirecional

Recursos fixos muitos, positivo: clock programável,muita RAM, displays, interfaces serial,processamento de áudio e de vídeo,PHY Ethernet, etc.

Recursos programáveis Não possui

Relação recursos programáveis x recursosreconfiguráveis

Não se aplica

Recursos reconfiguráveis VIRTEX XCV800 240 pinos

Recursos de interconexão muitos conectores, RCA, VGA, USB,RS232, paralela, mouse/teclado, RJ-45para par trançado Ethernet, etc.

Aplicação alvo processamento de imagens, grandesprojetos digitais

Page 38: Plataformas de Prototipação de Hardware  Princípios, Taxonomia, Características e Exemplos

38/85

PLA

TAFO

RM

AS

DE

PRO

TOTI

PAÇ

ÃO

Fernando Gehm Moraes / Ney Calazans

VCC VW300 - Virtual Workbench (US$ 1295 - ago/2000)

FPGA XCV300

com

300K gates

http:/www.vcc.com./vw.html

Page 39: Plataformas de Prototipação de Hardware  Princípios, Taxonomia, Características e Exemplos

39/85

PLA

TAFO

RM

AS

DE

PRO

TOTI

PAÇ

ÃO

Fernando Gehm Moraes / Ney Calazans

Virtual Workbench - VW300

Virtual WorkbenchForma de comunicação com o hospedeiro serial

Direcionalidade da comunicação com o hospedeiro bidirecional

Recursos fixos muitos, positivo: clock programável,muita RAM, display alfa-numérico

Recursos programáveis -

Relação recursos programáveis x recursosreconfiguráveis

-

Recursos reconfiguráveis VIRTEX XCV300

Recursos de interconexão muitos conecectores

Aplicação alvo grandes projetos digitais

Page 40: Plataformas de Prototipação de Hardware  Princípios, Taxonomia, Características e Exemplos

40/85

PLA

TAFO

RM

AS

DE

PRO

TOTI

PAÇ

ÃO

Fernando Gehm Moraes / Ney Calazans

VCC HOTII-XL - 2 PLATAFORMAS - Barramento PCI

Dispositivo Programável tipoFPGAInterface PCI para comunicação

com o host (PC)

Bancos de memória, para o FPGA

Dispositivo XC4062XLTNúmero de blocoslógicos

48 x 48(2304)

Número de bits 5.472Portas lógicasdisponíveis

40.000 -130.000

Pinos de E/S para ousuário

384

• POSITIVO: INTERFACE PCI (33/32)

• reduz o gargalo de comunicação hospedeiro-FPGA

• US$ 1995,00

Page 41: Plataformas de Prototipação de Hardware  Princípios, Taxonomia, Características e Exemplos

41/85

PLA

TAFO

RM

AS

DE

PRO

TOTI

PAÇ

ÃO

Fernando Gehm Moraes / Ney Calazans

Ambiente de Prototipação Aptix (> US$ 30000)• Recursos de interconexão abundantes (FPICs)

Page 42: Plataformas de Prototipação de Hardware  Princípios, Taxonomia, Características e Exemplos

42/85

PLA

TAFO

RM

AS

DE

PRO

TOTI

PAÇ

ÃO

Fernando Gehm Moraes / Ney Calazans

O QUE DÁ PARA FAZER COMO TRABALHOS ?• CORES: metodologia de desenvolvimento para efetivamente tornar o paradigma

“design reuse” verdadeiro

• RECONFIGURAÇÃO DINÂMICA PARCIAL: poder alterar parte do hardware em execução

• PARTIÇÃO EFICIENTE H/S

• APLICAÇÕES PARA TELECOMUNICAÇÕES (grande mercado hoje)

• Compiladores para ASIPS (retargetable compilers)

• CORE PCI e ACELERADORES EM HARDWARE …..

Page 43: Plataformas de Prototipação de Hardware  Princípios, Taxonomia, Características e Exemplos

43/85

PLA

TAFO

RM

AS

DE

PRO

TOTI

PAÇ

ÃO

Fernando Gehm Moraes / Ney Calazans

katherine

moraes

daniel

carlosrodrigo

Sumário

1. PROJETO DE SISTEMAS DIGITAIS USANDO CAD

2. FLUXO DE PROJETO EM PROTOTIPAÇÃO

3. PLATAFORMAS DE PROTOTIPAÇÃO

4. Estudo de Caso: PLACA XSV

FPGA

Page 44: Plataformas de Prototipação de Hardware  Princípios, Taxonomia, Características e Exemplos

44/85

PLA

TAFO

RM

AS

DE

PRO

TOTI

PAÇ

ÃO

Fernando Gehm Moraes / Ney Calazans

4. PLACA LIRMM (1996)

DSP FPGA FPGA FPGA

RAM RAM RAMRAM

RAM

RAM

RAM

communication Protocols

Carte FPGAMother Board : HUNT ENGINEERING

Carte TIM 40

HOST

LIRMM Board (Logic Inside Reconfigurable Micro Machine)

HDL

Architectural synthesis

Logic Synthesis

Mapping

C

C compiler (TI)

CAD TOOLS

MACH (Lirmm)

Synopsys

XACT

Page 45: Plataformas de Prototipação de Hardware  Princípios, Taxonomia, Características e Exemplos

45/85

PLA

TAFO

RM

AS

DE

PRO

TOTI

PAÇ

ÃO

Fernando Gehm Moraes / Ney Calazans

Ambiente de Prototipação LIRMM

Placa com FPGAsPlaca com processador DSP

Placa mãeHunt Engineering

Vista inferior

Vista Superior

PLACALIRMM

Page 46: Plataformas de Prototipação de Hardware  Princípios, Taxonomia, Características e Exemplos

46/85

PLA

TAFO

RM

AS

DE

PRO

TOTI

PAÇ

ÃO

Fernando Gehm Moraes / Ney Calazans

Dois XILINX XC 4013 - 208 Pins : 1152 CLBs (26 000 gates)barramento entre FPGAs : 34 BITSPossibilidade de utilizar 4013/ 4010 / 4020

Protocolo de comunicação :implementado com máquinas de estado : 80 CLBS (7%)

CLOCK : 40 MHZ outros pads de clock disponíveis

Decodificador : endereça a RAM endereça o barramento global de controle

Comunicação DSP/FPGA:16 MEGA BYTE PER SECOND (AVERAGE) - 70 ns PER BYTE

Características

Page 47: Plataformas de Prototipação de Hardware  Princípios, Taxonomia, Características e Exemplos

47/85

PLA

TAFO

RM

AS

DE

PRO

TOTI

PAÇ

ÃO

Fernando Gehm Moraes / Ney Calazans

Arquitetura da placa LIRMM (FPGAs)

XILINX

xc4013208 pads

Transmitter Receiver

XILINX

xc4013208 pads

Transmitter ReceiverXchecker

34 bits

18 bits18 bitsDECODER

ClockBlock

ADDRESS

RAM

128KB

RAM

128KB

FPGA Switchconfiguration

DSP TMS 320C40PORT 0 PORT 1 PORT 2 PORT 3

Global bus address

Page 48: Plataformas de Prototipação de Hardware  Princípios, Taxonomia, Características e Exemplos

48/85

PLA

TAFO

RM

AS

DE

PRO

TOTI

PAÇ

ÃO

Fernando Gehm Moraes / Ney Calazans

ACESSO ÀS MEMÓRIAS

• CADA FPGA TEM 128 KB - estática 40ns

• Mesma pinagem em ambos FPGAs, possibilitando a utilização do mesmo código para ambos

• O usuário deve gerenciar o protocolo de acesso às memórias

Page 49: Plataformas de Prototipação de Hardware  Princípios, Taxonomia, Características e Exemplos

49/85

PLA

TAFO

RM

AS

DE

PRO

TOTI

PAÇ

ÃO

Fernando Gehm Moraes / Ney Calazans

Cache512 byte

Registers

RAM 04 kbyte

RAM 14 kbyte

X +

DMA

Controler

Port 0

Port 5{

GLOBAL BUSAddress bus (32 bits)

6 Communication ports : 20 Mbyte/s

Documentação abundante da TI !!!

Hardware do DSP - TMS320 C40 BOARD

Data Bus (32 bits)

Page 50: Plataformas de Prototipação de Hardware  Princípios, Taxonomia, Características e Exemplos

50/85

PLA

TAFO

RM

AS

DE

PRO

TOTI

PAÇ

ÃO

Fernando Gehm Moraes / Ney Calazans

4.1. PROTOCOLO DE COMUNICAÇÃO/VHDL

• PROTOCOLO DE COMUNICAÇÃO– send / receive– externamente 8 bits / internamente 32

Page 51: Plataformas de Prototipação de Hardware  Princípios, Taxonomia, Características e Exemplos

51/85

PLA

TAFO

RM

AS

DE

PRO

TOTI

PAÇ

ÃO

Fernando Gehm Moraes / Ney Calazans

MÓDULO DE RECEPÇÃO (1/3)

• FUNCIONAMENTO– INIT reseta bloco de controle– 4 descidas em CSTRBIN (DSP) disponibilizam 32 bits em OUT

– na 4# subida de CSTRBIN FR desce, indicado Fim de Recepção

InitCstrbin

FRCrdyout

IN 8 32OUTRECEPÇÃO

FPGA

Page 52: Plataformas de Prototipação de Hardware  Princípios, Taxonomia, Características e Exemplos

52/85

PLA

TAFO

RM

AS

DE

PRO

TOTI

PAÇ

ÃO

Fernando Gehm Moraes / Ney Calazans

MÓDULO DE RECEPÇÃO (2/3)

• Implementação

CstrbinInit

S R R R

FRFFD FFD FFDFFD

R

R

IN D Q

R

Q

R R

Q

R R

Q

R

Cstrbin

Init

out[7:0] out[15:8] out[23:16] out[31:24]

D D D8 FD8 FD8 FD8 FD8

Bloco de Controle do Módulo de Recepção

Bloco de Dados do Módulo de Recepção

1000 - reset0100 - 1# cstrbin0010 - 2# cstrbin0001 - 3# cstrbin1000 - 4# cstrbin

Page 53: Plataformas de Prototipação de Hardware  Princípios, Taxonomia, Características e Exemplos

53/85

PLA

TAFO

RM

AS

DE

PRO

TOTI

PAÇ

ÃO

Fernando Gehm Moraes / Ney Calazans

INIT

MÓDULO DE RECEPÇÃO (3/3)

• Simulação recebeu 4 bytes e avisa FR (fim de recepção)

armazena em addition os 32 bits

Page 54: Plataformas de Prototipação de Hardware  Princípios, Taxonomia, Características e Exemplos

54/85

PLA

TAFO

RM

AS

DE

PRO

TOTI

PAÇ

ÃO

Fernando Gehm Moraes / Ney Calazans

MÓDULO DE EMISSÃO (1/4)

• FUNCIONAMENTO– FR da emissão, gerenciado pelo FPGA, sobe quando o processamento interno está

pronto.– Processo controlado pelo DSP:

» DSP envia PE» Depois o DSP envia 4 pulsos em CRDYIN

IN328

OUT

FR

FE

CrdyinCstrbout

InitPE

EMISSÃO

FPGA

FR sobe, armazenando os 32 bits de saída

PE inicializa a emissão

byte

0

fim de emissão

byte

1

byte

2

byte

3

CRDYIN

CSTRBOUT

Page 55: Plataformas de Prototipação de Hardware  Princípios, Taxonomia, Características e Exemplos

55/85

PLA

TAFO

RM

AS

DE

PRO

TOTI

PAÇ

ÃO

Fernando Gehm Moraes / Ney Calazans

MÓDULO DE EMISSÃO (2/4)

• Implementação (dados - gerência pelo FPGA)

Com1

FD8In [0,7] Q1 MUX 2x8

FD8In [8,15] Q2

Com 1

FD8In [16,23] Q3

MUX 2x8

FD8In [24,31] Q4

Q34 Com2

out

InitFR

Q12

8

8

8

8

8

8

88

8

8

8

FPG

A

controle

Page 56: Plataformas de Prototipação de Hardware  Princípios, Taxonomia, Características e Exemplos

56/85

PLA

TAFO

RM

AS

DE

PRO

TOTI

PAÇ

ÃO

Fernando Gehm Moraes / Ney Calazans

MÓDULO DE EMISSÃO (3/4)

• Implementação (controle - gerência pelo DSP)CRDYIN

bloco finemi no VHDL

PE

CSTRBOUT

cstrbout_tmp

ContadorCom1Com2

PE‘0’D QSetINIT start1

reset

ck

S R R R R

FEFFD FFD FFD FFDFFD

R

para obloco dedados

PEINIT

PE

10000 - reset01000 - 1# cstrbout00100 - 2# cstrbout00010 - 3# cstrbout00001 - 4# cstrbout

Page 57: Plataformas de Prototipação de Hardware  Princípios, Taxonomia, Características e Exemplos

57/85

PLA

TAFO

RM

AS

DE

PRO

TOTI

PAÇ

ÃO

Fernando Gehm Moraes / Ney Calazans

MÓDULO DE EMISSÃO (4/4)• Simulação

– INIT: subindo coloca em ‘1’ o CSTRBOUT e o registrador de deslocamento em “10000” – PE (pulso): DSP envia este dado quando quer receber uma palavra de 32 bits

ações: (1) reseta o contador, (2) desce o CSTRBOUT e (3) também inicializa registrador de deslocamento– a cada pulso de CRDYIN (a porta XOR estará funcionando como um inversor) gera-se um pulso em CSTRBOUT

o DSP envia quatro pulsos em CRDYIN, pois pede sempre 32 bits

CRDYIN

bloco finemi no VHDL

PE

CSTRBOUT

cstrbout_tmp

ContadorCom1Com2

PE‘0’D QSetINIT start1

reset

ck

S R R R R

FEFFD FFD FFD FFDFFD

R

para obloco dedados

PEINIT

PE

FR sobe, armazenando os 32 bits de saída

PE inicializa a emissão

byte

0

fim de emissão

byte

1

byte

2

byte

3

CRDYIN

CSTRBOUT

10000 - reset01000 - 1# cstrbout00100 - 2# cstrbout00010 - 3# cstrbout00001 - 4# cstrbout (no quarto cstrbout TRANCA O cstrbout )

Page 58: Plataformas de Prototipação de Hardware  Princípios, Taxonomia, Características e Exemplos

58/85

PLA

TAFO

RM

AS

DE

PRO

TOTI

PAÇ

ÃO

Fernando Gehm Moraes / Ney Calazans

4.2. UM PRIMEIRO EXEMPLO

• Circuito acumulador• Basicamente deve haver um processo que detecte descida em FR

na recepção.• Este evento sinaliza chegada de 32 bits, enviado pelo processador.

• Ao final do processamento no VHDL armazenar os resultados e espera PE.

• COMO DESCREVER EM VHDL ?– CHAMAR O PACKAGE E USAR OS MÓDULOS EMISSÃO E RECEPÇÃO

Page 59: Plataformas de Prototipação de Hardware  Princípios, Taxonomia, Características e Exemplos

59/85

PLA

TAFO

RM

AS

DE

PRO

TOTI

PAÇ

ÃO

Fernando Gehm Moraes / Ney Calazans

VHDL DO ACUMULADOR

Library IEEE;use IEEE.std_logic_1164.all;use IEEE.std_logic_unsigned.all;use work.comunic.all;

Entity examples is Port( frombus : in std_logic_vector (7 downto 0); tobus : out std_logic_vector (7 downto 0); INIT,CSTRBIN,CRDYIN,PE : in std_logic; CSTRBOUT,CRDYOUT: out std_logic );end examples;

Architecture Structure of examples is

signal FE, FR,FR2 : std_logic ; signal Addition,OpA :std_logic_vector (31 downto 0); signal count:integer range 0 to 5;

begin

U1 : reception Port Map ( input=>frombus, INIT=>INIT, CSTRBIN=>CSTRBIN, FR=>FR, CRDYOUT=>CRDYOUT, output=>OpA );

U2 : emission Port Map ( PE=>PE , FR=>FR2, INIT=>INIT ,CRDYIN =>CRDYIN, input=>Addition, output=>tobus, FE=>FE, CSTRBOUT=>CSTRBOUT );

-- este processo coloca na entrada do somador opA e a soma -- anterior, quando 32 bits foram recebidos (descida em FR) process (FR,INIT) begin if (INIT='1') then Addition<=(others=>'0'); elsif (FR'event and FR='0') then Addition<=Addition+OpA; end if; end process;

-- controla quantas palavras foram somadas. Ao somar 4 palavras -- envia um sinal de write para a emissao (FR2) process (FR,INIT) begin if (INIT='1') then count<=0; FR2<='0'; elsif (FR'event and FR='0' ) then if (count=3) then FR2<='1'; count<=0; else FR2<='0'; count<=count+1; end if; end if; end process;

end;

O que é necessário para o usuário: na recepção o “output” na emissão o “input”

Page 60: Plataformas de Prototipação de Hardware  Princípios, Taxonomia, Características e Exemplos

60/85

PLA

TAFO

RM

AS

DE

PRO

TOTI

PAÇ

ÃO

Fernando Gehm Moraes / Ney Calazans

SIMULAÇÃO VHDL - test bench simula o processador

Library IEEE;use IEEE.std_logic_1164.all;use IEEE.Std_Logic_unsigned.all; -- uso conv_integer

Entity tb isend tb;

Architecture comp of tb is

Component examples is Port( frombus : in std_logic_vector (7 downto 0); tobus : out std_logic_vector (7 downto 0); INIT,CSTRBIN,CRDYIN,PE : in std_logic; CSTRBOUT,CRDYOUT: out std_logic ); end component;

signal init, strbin, rdyin, rdyout ,strbout,pedsp: std_logic; signal frombus, tobus: std_logic_vector(7 downto 0); signal deslocamento: integer;

type ram is array (0 to 128) of std_logic_vector(7 downto 0); constant entrada : ram := (x"04", dados… , others=>x"00");

begin

x1: examples port map ( frombus=>frombus, tobus=>tobus, init=>init, cstrbin=>strbin, crdyin=>rdyin,

crdyout=>rdyout, cstrbout=>strbout, pe=>pedsp);

rdyin <= '1', '0' after 740ns, '1' after 760ns,'0' after 780ns, '1' after 800ns,'0' after 820ns, '1' after 840ns,

'0' after 860ns, '1' after 880ns;

init <= '1', '0' after 5ns, '1' after 1600ns, '0' after 1610ns;

pedsp <= '0', '1' after 700ns, '0' after 710 ns;process

begin deslocamento <=0; strbin <='1';

for i in 0 to 3 loop

wait for 50ns;

for w in 0 to 3 loopstrbin<='0';if (w+deslocamento)>=0 and (w+deslocamento)<=128

then frombus <= entrada(w+deslocamento);

end if; wait for 10ns; strbin<='1'; wait for 10ns;

end loop;

deslocamento <= deslocamento + 4;

end loop;

wait for 1000000 ns; -- tempo infinito !!!!!!!!!!

end process;

end comp;

Page 61: Plataformas de Prototipação de Hardware  Princípios, Taxonomia, Características e Exemplos

61/85

PLA

TAFO

RM

AS

DE

PRO

TOTI

PAÇ

ÃO

Fernando Gehm Moraes / Ney Calazans

SIMULAÇÃO

INIT

recebeu 4 bytes e avisa FR (fim de recepção)

2a RECEP 3a RECEP 4a RECEP

FR2 sobe na quarta palavra recebida(sinal para armazenar os 32 bits de saída)

PE inicializa a emissão

fim de emissão

byte 0byte 1byte 2byte 3

Page 62: Plataformas de Prototipação de Hardware  Princípios, Taxonomia, Características e Exemplos

62/85

PLA

TAFO

RM

AS

DE

PRO

TOTI

PAÇ

ÃO

Fernando Gehm Moraes / Ney Calazans

FERRAMENTAS UTILIZADAS

• Ambiente integrado de síntese :

1. Descrever e simular no ACTIVE-VHDL

2. Síntese lógica no FPGA-EXPRESS (Integrado ao Foundation)

3. Posicionamento e Roteamento no (Foundation)

CUIDADOS NAS FERRAMENTAS:

buffers, código sintetizável, pinagem correta ...

Page 63: Plataformas de Prototipação de Hardware  Princípios, Taxonomia, Características e Exemplos

63/85

PLA

TAFO

RM

AS

DE

PRO

TOTI

PAÇ

ÃO

Fernando Gehm Moraes / Ney Calazans

4.3 COMPILAÇÃO DE CÓDIGO C

• O que o fonte C deve conter para comunicar-se com o FPGA:

– comandos para os FPGAs (PE, INIT, DIR, RAZ)

– portas de comunicação

– buffers das portas de comunicação (DSP)

– direção das portas

– boot loader

– aplicação

– svr_exit(0)

Com o boot_loader temos entrada/saída

Page 64: Plataformas de Prototipação de Hardware  Princípios, Taxonomia, Características e Exemplos

64/85

PLA

TAFO

RM

AS

DE

PRO

TOTI

PAÇ

ÃO

Fernando Gehm Moraes / Ney Calazans

Código C - Compilação (1/3)

 • O código de saída estará em <file>.out

• <FILE>.CMD-c /* LINK USING C CONVENTIONS*/-stack 0x01000 /* 1K STACK */-heap 0x40000 /* 1K HEAP */tst.obj-o tst.out

<file>.c<file>.cmd hunt.cmd

Cl30 / lnk30

<file>.out <file>.obj <file>.map

Page 65: Plataformas de Prototipação de Hardware  Princípios, Taxonomia, Características e Exemplos

65/85

PLA

TAFO

RM

AS

DE

PRO

TOTI

PAÇ

ÃO

Fernando Gehm Moraes / Ney Calazans

Código C - Compilação (2/3) - Arquivo HUNT.CMD

/* DESCREVE AS CONEXÕES DA PLACA MÃE */

MEMORY { IRAM0: org = 0x002ff800 len = 0x00000400 IRAM1: org = 0x002ffC00 len = 0x00000400 SRAML: org = 0x00300000 len = 0x0040000 SRAMG: org = 0x80000000 len = 0x00100000 }

SECTIONS { .const: > SRAML .cinit: > SRAML .text: > SRAML .stack: > SRAML .sysmem: > SRAMG .data: > SRAML .bss: > SRAML

}

(opcional)

Page 66: Plataformas de Prototipação de Hardware  Princípios, Taxonomia, Características e Exemplos

66/85

PLA

TAFO

RM

AS

DE

PRO

TOTI

PAÇ

ÃO

Fernando Gehm Moraes / Ney Calazans

Código C - Compilação (3/3) - Arquivo MAKEFILE#**************************************************************************** DirectoriesC40LIB = d:\dspC40\320toolsC40BIN = d:\dspC40\320toolsLIB = d:\dspC40\load-too\libINC = d:\dspC40\load-too\inc#**************************************************************************** Compiler/OptionsCC = cl30CO = -qq -c -v40 -mx -mxx -g -as -i$(C40LIB) -i$(INC)AO = -qq -c -v40 -i$(C40LIB)LO = -i$(C40LIB) -ar#**************************************************************************** Rules.SUFFIXES: .c .asm .obj.c.obj:

$(CC) $(CO) $*.c#**************************************************************************** Targetsall: tst.out

tst.obj: tst.c $(INC)\stdioc40.h $(CC) $(CO) tst.c

tst.out: tst.obj tst.cmd $(LIB)\stdio_ss.lib lnk30 $(LO) hunt.cmd tst.cmd -l$(LIB)\stdio_ss.lib -lrts40.lib -lprts40.lib -cr -m tst.map

compilação

(opcional)

Page 67: Plataformas de Prototipação de Hardware  Princípios, Taxonomia, Características e Exemplos

67/85

PLA

TAFO

RM

AS

DE

PRO

TOTI

PAÇ

ÃO

Fernando Gehm Moraes / Ney Calazans

Código C - Execução

• Para rodar o programa C é necessário executar um batch, que chama o arquivo network:

       <file>.bat ==>  network ===> file.out• Batch:

emurst

emuload d:\dspc40\320tools\inira PARA O PGAxchecker - load examples.bit

d:\dspc40\load-too\bin\c40serve -Id:\dspc40\load-too\lib -rlvs network

• Network:– configura a placa mãe (HUNT)– chama dois programas: idrom.out e file.out– conteúdo (sem os comentários):

BD HEPC2M 150ND 0 NODE0 ROOT 00000000 00000000 002FF800 idrom.out tst.outHOSTLINK 3

(opcional)

Page 68: Plataformas de Prototipação de Hardware  Princípios, Taxonomia, Características e Exemplos

68/85

PLA

TAFO

RM

AS

DE

PRO

TOTI

PAÇ

ÃO

Fernando Gehm Moraes / Ney Calazans

Código C - Exemplo de controle do acumulador

#include <string.h>#include <stdlib.h>#include <stdioc40.h>#include <compt40.h>#include <timer40.h>

void main(){

/* Adresses de commande du Xilinx pour decodage */#define PE1 (int*) 0xb0000000#define PE2 (int*) 0xb8000000#define INIT1 (int*) 0xbF000000#define INIT2 (int*) 0xb4000000#define DIR (int*) 0xb7000000#define RAZ (int*) 0xb2000000

/* Adresses des ports de communication */#define comm_port1_output (int*) 0x00100052#define comm_port4_input (int*) 0x00100081#define comm_port0_output (int*) 0x00100042#define comm_port5_input (int*) 0x00100091

/* Registres de controle des ports de communication */#define CPCR1 (int*) 0x00100050#define CPCR0 (int*) 0x00100040#define CPCR5 (int*) 0x00100090#define CPCR4 (int*) 0x00100080

long a,b;int i;

cp_out_release(1); /* initialisation du port 1 en emission */cp_in_release(4); /* initialisation du port 4 en reception */cp_out_release(0); /* initialisation du port 0 en emission */cp_in_release(5); /* initialisation du port 5 en reception */

bootloader();

Endereços de controle do FPGA

Endereços das portas de comunicação

Buffers das portas de comunicação

Direção das portas

Rotinas de Entrada e Saída do DSP

Page 69: Plataformas de Prototipação de Hardware  Princípios, Taxonomia, Características e Exemplos

69/85

PLA

TAFO

RM

AS

DE

PRO

TOTI

PAÇ

ÃO

Fernando Gehm Moraes / Ney Calazans

Código C - parte 2

Envio das 4 palavras de 32 bits

PE indica que o DSP vai querer ler um dado do FPGA

printf(" \n******************> Digitar -1 para sair\n ");

for(;;) { *INIT1=0; /* initialisation du XILINX1 */ *RAZ=0;

for (i=0;i<4;i++) { printf ("\nValor? ");

scanf("%d",&a); if(a==-1) break; printf("%ld\n",a); *comm_port1_output=a;

}

if(a==-1) break;

*PE1=0; *RAZ=0;

/*reception du Xilinx*/ b=*comm_port4_input;

printf("\n The rusult is : %ld\n",b);

}

printf(" OK \n\n");

srv_exit(0);}

DSP lê a soma do FPGA

Finaliza o servidor

Page 70: Plataformas de Prototipação de Hardware  Princípios, Taxonomia, Características e Exemplos

70/85

PLA

TAFO

RM

AS

DE

PRO

TOTI

PAÇ

ÃO

Fernando Gehm Moraes / Ney Calazans

4.4. Processador Cleópatra na Placa LIRMM

cerw

ADDRESS

DATA

CONTROLBLOCK

µinst IRc z n

ck

MEMORY

ckreset

reset

DATA-PATH

c z n IRµinst

ckreset

MAR

MDR

IR

RS

PC

AC

ULA

BUS_B BUS_A0mux1 sel

Write into memory

Read from memory

ADDRESS (memory)

DATA (memory)

Codificação de escrita

Codificação de leitura

write_reg

read_reg

op_ula

lnzlc

CERW

CE RW

N Z C

BUS_C

Page 71: Plataformas de Prototipação de Hardware  Princípios, Taxonomia, Características e Exemplos

71/85

PLA

TAFO

RM

AS

DE

PRO

TOTI

PAÇ

ÃO

Fernando Gehm Moraes / Ney Calazans

Integração do processador (core) na placa LIRMM

• Procedimento em 3 etapas

1. Download do programa em código binário na memória do FPGA

2. Execução do programa pelo core

3. Envio do resultado ao DSP

• Controle : máquina de estados controlada pelo sinal PEDSP

• Organização da memória: programa, dados e resultados

Page 72: Plataformas de Prototipação de Hardware  Princípios, Taxonomia, Características e Exemplos

72/85

PLA

TAFO

RM

AS

DE

PRO

TOTI

PAÇ

ÃO

Fernando Gehm Moraes / Ney Calazans

Core e blocos de controle no FPGA

8

M1

8

M2

32BUSREC

A1ck_intstart

state

TODSPcrdyin

cstrbout

reset

EFRE

PEE

8

FROMDSPcstrbin

crdyout

reset

R

FR

8

32BUSEMI24

08

IOR

D Q

ck

D Q

ck

D Q

ck

FR

8[7,0]

8[15,8]

8[23,16]

8

8busrec2

st1

ecr

PDATA_OUT

CE

RW

ADDRESS_C

resetck

DATA_IN 8

state

st0

st1

+1 st2

end_mem

ADDRESS_C

8

90 AD17

reset

A3 FRSst2

A2 PESst2

FROM / TO DSP

ck_int

PEDSP

R2

R3

R1

CE1_N

CE2

WE_N

OE_N

FROM / TO MEMORY

FPGA

st0

Page 73: Plataformas de Prototipação de Hardware  Princípios, Taxonomia, Características e Exemplos

73/85

PLA

TAFO

RM

AS

DE

PRO

TOTI

PAÇ

ÃO

Fernando Gehm Moraes / Ney Calazans

8

M1

8

M2

32BUSREC

A1ck_intstart

state

TODSPcrdyin

cstrbout

reset

EFRE

PEE

8

FROMDSPcstrbin

crdyout

reset

R

FR

8

32BUSEMI24

08

IOR

D Q

ck

D Q

ck

D Q

ck

FR

8[7,0]

8[15,8]

8[23,16]

8

8

busrec2

st1

ecr

PDATA_OUT

CE

RW

ADDRESS_C

resetck

DATA_IN 8

state

st0

st1

+1 st2

end_mem

ADDRESS_C

8

90 AD17

reset

A3 FRSst2

A2 PESst2

FROM / TO DSP

ck_int

PEDSP

R2

R3

R1

CE1_N

CE2

WE_N

OE_N

FROM / TO MEMORY

FPGA

st0

Download do programa

32 bits:xxDDAAPPdd = data addressaa = memory addresspp = program code

Page 74: Plataformas de Prototipação de Hardware  Princípios, Taxonomia, Características e Exemplos

74/85

PLA

TAFO

RM

AS

DE

PRO

TOTI

PAÇ

ÃO

Fernando Gehm Moraes / Ney Calazans

Execução do programa pelo core

8

M1

8

M2

32BUSREC

A1ck_intstart

state

TODSPcrdyin

cstrbout

reset

EFRE

PEE

8

FROMDSPcstrbin

crdyout

reset

R

FR

8

32BUSEMI24

08

IOR

D Q

ck

D Q

ck

D Q

ck

FR

8[7,0]

8[15,8]

8[23,16]

8

8busrec2

st1

ecr

PDATA_OUT

CE

RW

ADDRESS_C

resetck

DATA_IN 8

state

st0

st1

+1 st2

end_mem

ADDRESS_C

8

90 AD17

reset

A3 FRSst2

A2 PESst2

FROM / TO DSP

ck_int

PEDSP

R2

R3

R1

CE1_N

CE2

WE_N

OE_N

FROM / TO MEMORY

FPGA

st0

Page 75: Plataformas de Prototipação de Hardware  Princípios, Taxonomia, Características e Exemplos

75/85

PLA

TAFO

RM

AS

DE

PRO

TOTI

PAÇ

ÃO

Fernando Gehm Moraes / Ney Calazans

Envio dos resultados ao DSP

8

M1

8

M2

32BUSREC

A1ck_intstart

state

TODSPcrdyin

cstrbout

reset

EFRE

PEE

8

FROMDSPcstrbin

crdyout

reset

R

FR

8

32BUSEMI24

08

IOR

D Q

ck

D Q

ck

D Q

ck

FR

8[7,0]

8[15,8]

8[23,16]

8

8busrec2

st1

ecr

PDATA_OUT

CE

RW

ADDRESS_C

resetck

DATA_IN 8

state

st0

st1

+1 st2

end_mem

ADDRESS_C

8

90 AD17

reset

A3 FRSst2

A2 PESst2

FROM / TO DSP

ck_int

PEDSP

R2

R3

R1

CE1_N

CE2

WE_N

OE_N

FROM / TO MEMORY

FPGA

st0

Page 76: Plataformas de Prototipação de Hardware  Princípios, Taxonomia, Características e Exemplos

76/85

PLA

TAFO

RM

AS

DE

PRO

TOTI

PAÇ

ÃO

Fernando Gehm Moraes / Ney Calazans

Parte Software - Programa C de controle (simplificado)void main(){ *INIT1=0; /* RESET FPGA - state st0 */ *RAZ=0;

*comm_port1_output=0x00f00000; /* send data adress to the FPGA */ in=fopen("prog","rt"); /* read the program to be executed and send it to the FPGA */ do{ fscanf(in,"%c",&indata); *comm_port1_output=indata; } while(!feof(in)); fclose(in);

*PE1=0; /* First PEDSP –core processor is actived - state st1 */ *RAZ=0;

wait(300); /* wait the execution …. NOT NICE */

for(j=0; j<10; j++) { *PE1=0; /* send PEDSP in order to receive the results */ *RAZ=0;

b = *comm_port4_input; }}

Page 77: Plataformas de Prototipação de Hardware  Princípios, Taxonomia, Características e Exemplos

77/85

PLA

TAFO

RM

AS

DE

PRO

TOTI

PAÇ

ÃO

Fernando Gehm Moraes / Ney Calazans

VHDL - controle do core (1/6)Entity testmem is Port( -----------------INPUT OUTPUT vers la RAM ------------ I_OR : inout std_logic_vector (7 downto 0); AD : out std_logic_vector (16 downto 0); CE2, CE1_N, we_N, OE_N : out std_logic;

--------------INPUT OUTPUT vers le DSP -------------- Clock : in std_logic; Reset : in std_logic; from_dsp : in std_logic_vector (7 downto 0); to_dsp : out std_logic_vector (7 downto 0); CSTRBIN,CRDYIN : in std_logic; CRDYOUT, CSTRBOUT : out std_logic; PEDSP : in std_logic );end testmem;

Architecture comp of testmem is

component cleopatra port( ck, reset: in std_logic; ce, rw: out std_logic; address: out regsize; datain: in regsize;

dataout: out regsize );end component;

Type Type_STATE is ( INIT_STATE, stop, wr_1, wr_2, wr_3, le_1, le_2, le_3);

DECLARAR OS SINAIS DO CORE

Begin

(opcional)

Page 78: Plataformas de Prototipação de Hardware  Princípios, Taxonomia, Características e Exemplos

78/85

PLA

TAFO

RM

AS

DE

PRO

TOTI

PAÇ

ÃO

Fernando Gehm Moraes / Ney Calazans

VHDL - controle do core (2/6)

-------------------------------------------------------------------- -- Maquina de estados para a carga, operacao e leitura da memoria -- ESTA MUDANCA OCORRE NA SUBIDA DO PEDSP -------------------------------------------------------------------- process(reset, PEDSP ) Begin

if reset='1' then estado <= "00"; elsif PEDSP'event and PEDSP='1' then if estado="00" then -- enderecamento pela cleopatra estado <= "01"; ad_dados <= end_user; elsif estado="01" then -- passa para o endereco da area de dados estado <= "11"; ad_dados <= end_user; elsif estado="11" then -- incrementa end. para aceeso a area de dados ad_dados <= ad_dados + 1; end if; end if;

end process;

• Temos três estados, controlados pelo RESET e PEDSP– o reset coloca o sistema no estado “00”– o primeiro PEDSP coloca o sistema no estado “01”, ou seja,

controle pelo core– os próximos PEDSP enviam dados para o DSP, estado “11”

(opcional)

Page 79: Plataformas de Prototipação de Hardware  Princípios, Taxonomia, Características e Exemplos

79/85

PLA

TAFO

RM

AS

DE

PRO

TOTI

PAÇ

ÃO

Fernando Gehm Moraes / Ney Calazans

VHDL - controle do core (3/6)-------------------------------------------------------------------- -- componentes: emissao, recepcao e Processador Cleopatra de 8 bits -------------------------------------------------------------------- Ureceptio : reception Port Map( ...);

Uemission : emission Port Map( ...);

cpu: cleopatra Port Map( ...);

-------------------------------------------------------------------- -- Controle de clock para cleopatra -------------------------------------------------------------------- cka <= ck_interno and start_cleo;

Process(clock, reset, estado) Begin if reset='1' or estado="00" or estado="11" then start_cleo <= '0'; elsif clock'event and clock='1' then -- apenas ativa a cleopatra na primeira start_cleo <= '1'; -- borda de subida apos o inicio do estado 01 end if; End Process;

-- ck mais lento para controlar a cloepatra Process Begin ck_interno <= '0'; wait until clock'event and clock='1'; wait until clock'event and clock='1'; wait until clock'event and clock='1'; ck_interno <= '1'; wait until clock'event and clock='1'; wait until clock'event and clock='1'; wait until clock'event and clock='1'; End Process;

Não precisa ser tão lentoApenas para não ter problemas de timing

(opcional)

Page 80: Plataformas de Prototipação de Hardware  Princípios, Taxonomia, Características e Exemplos

80/85

PLA

TAFO

RM

AS

DE

PRO

TOTI

PAÇ

ÃO

Fernando Gehm Moraes / Ney Calazans

------------------------------------------------------------------------------- -- dados provenientes da memoria entram diretamente no processador e na emissao -------------------------------------------------------------------------------- bus_emi <= end_final & address_c & "00000000" & I_OR;

-------------------------------------------------------------------- -- SECAO RELATIVA A MEMORIA: habilitacao, enderecamento e origem dos -- dados no momento da escrita -------------------------------------------------------------------- CE2 <='1'; CE1_N <='0';

end_final <= enderecamento when estado="00" else address_c when estado="01" else ad_dados when estado="11" else (others=>'Z');

AD <= "000000000" & end_final;

I_OR <= bus_rec2 when STATUS_ECR='1' and estado="00" else dataout when STATUS_ECR='1' and estado="01" else (others=>'Z');

-------------------------------------------------------------------- -- armazenamento dos dados provenientes da maquina de recepcao -------------------------------------------------------------------- process(fr, reset) begin if reset='1' then enderecamento <= (others=>'0'); first <= '1'; bus_rec2 <= (others=>'0'); elsif fr'event and fr='0' then enderecamento <= bus_rec(15 downto 8); if (first='1') then end_user <= bus_rec(23 downto 16); first <= '0'; end if; bus_rec2 <= bus_rec(7 downto 0); end if; end process;

VHDL - controle do core (4/6)Saída com debug:- último endereço lido- endereço- DADO

Seleciona que vai endereçar a memória:- endereçamento: na carga do programa- processador: durante execução- área de dados: durante o envio

Escrita na memória(processador ou download)

A cada borda de descida de FR (recepção):- determina o endereço (endereçamento)- determina o dado (bus_rec2)- na PRIMEIRA recepção armazena o endereço da área de dados

(opcional)

Page 81: Plataformas de Prototipação de Hardware  Princípios, Taxonomia, Características e Exemplos

81/85

PLA

TAFO

RM

AS

DE

PRO

TOTI

PAÇ

ÃO

Fernando Gehm Moraes / Ney Calazans

VHDL - controle do core (5/6)--------------------------------------------------- -- maquina de estados para acesso a memoria --------------------------------------------------- Process (clock, reset, Curr_STATE, wait_state, rw_c, to_wr, to_rd, estado) Begin

if Reset='1' then Curr_STATE<=INIT_STATE; Next_STATE<=stop; elsif clock'event and clock='0' then Curr_STATE<=Next_STATE; end if;

Case (Curr_STATE) is

When INIT_STATE=> STATUS_ECR<='0';

we_N <= '1'; oe_N<='1';peE<='0'; frE<='0';

Next_STATE<=stop;

When stop => STATUS_ECR<='0';

we_N<='1'; oe_N<='1';peE<='0'; frE<='0';

if (wait_state='1' and rw_c='0') or (to_wr='1' and estado="00") then

Next_STATE<=wr_1; elsif (wait_state='1' and rw_c='1') or (to_rd='1' and estado="11") then Next_STATE<=le_1; else Next_STATE <= stop; end if;

When wr_1=> we_N <= '0'; STATUS_ECR<='1'; Next_STATE<=wr_2;

When wr_2=> we_N <= '0'; STATUS_ECR<='1'; Next_STATE<=wr_3;

When wr_3=> we_N <= '1'; STATUS_ECR<='0'; Next_STATE<=stop;

When le_1=> oe_N<='0'; Next_STATE<=le_2;

When le_2=> oe_N<='0'; if (estado="11") then frE<='1'; else frE<='0'; end if; Next_STATE<=le_3;

When le_3=> oe_N<='0'; FrE <='0'; If (estado="11") then peE<='1'; else peE<='0'; end if; Next_STATE<=stop;

End Case;end Process;

Controles da máquina de

emissão

(opcional)

Page 82: Plataformas de Prototipação de Hardware  Princípios, Taxonomia, Características e Exemplos

82/85

PLA

TAFO

RM

AS

DE

PRO

TOTI

PAÇ

ÃO

Fernando Gehm Moraes / Ney Calazans

VHDL (6/6) - sincronização de sinais assíncronos -------------------------------------------------------------------- -- 3 processos que ativam controle para a maquina de leitura/escrita: -- (1) BORDA de descida de FR ativa WR0 -- (2) BORDA de subida de CE_C ativa wait_state -- (3) BORDA de subida de PEDSP ativa PE2 -------------------------------------------------------------------- Process(reset, Curr_STATE, fr) Begin if Curr_STATE=wr_2 or reset='1' then WR0<='0'; elsif fr'event and fr='0' then WR0<='1'; end if; End Process;

Process(reset, Curr_STATE, ce_c) -- este e' sincrono com a borda de subida Begin if Curr_STATE = wr_3 or Curr_STATE = le_3 or reset='1' then wait_state <= '0'; elsif ce_c'event and ce_c='1' then wait_state <= '1'; end if; End process;

Process(reset, Curr_STATE, PEDSP) Begin if Curr_STATE=le_2 or reset='1' then PE0<='0'; elsif PEDSP'event and PEDSP='1' then PE0<='1'; end if; End Process;

Process(clock) -- sincroniza PE0 e WR0 comm a borda de subida Begin if clock'event and clock='1' then to_rd <= PE0; to_wr <= WR0; end if; End Process;

end comp;

Recepção de dados: ASSÍNCRONA

Envio de dados: ASSÌNCRONO

Sincroniza os pedidos de recepção ou envio com a borda de subida do clock

(opcional)

Page 83: Plataformas de Prototipação de Hardware  Princípios, Taxonomia, Características e Exemplos

83/85

PLA

TAFO

RM

AS

DE

PRO

TOTI

PAÇ

ÃO

Fernando Gehm Moraes / Ney Calazans

VHDL - test_bench

• Acompanhar na listagem anexa

• Quatro ações realizadas pelo test_bench:

1. Gerar clock e reset

2. Gerar envio de dados: STRBIN e from_dsp

3. Receber dados: PEDSP e RDYIN

4. Ler e escrever na memória

Page 84: Plataformas de Prototipação de Hardware  Princípios, Taxonomia, Características e Exemplos

84/85

PLA

TAFO

RM

AS

DE

PRO

TOTI

PAÇ

ÃO

Fernando Gehm Moraes / Ney Calazans

Simulação - fase de recepção

• Envio dos dados “44 00 90 00”, “50 01 00 00”, “54 02 00 00”, etc

• Observar os barramentos AD (endereço da RAM e I_OR dados)

• Estado sempre em “00”

• Ao final da recepção é enviado o sinal PEDSP

Page 85: Plataformas de Prototipação de Hardware  Princípios, Taxonomia, Características e Exemplos

85/85

PLA

TAFO

RM

AS

DE

PRO

TOTI

PAÇ

ÃO

Fernando Gehm Moraes / Ney Calazans

Simulação - fase de execução

• Fase contida entre dois pulsos do sinal PEDSP• Observar que o clock do processador (cka) é muito mais lento que o clock do sistema• Estado do processamento: “01”

Page 86: Plataformas de Prototipação de Hardware  Princípios, Taxonomia, Características e Exemplos

86/85

PLA

TAFO

RM

AS

DE

PRO

TOTI

PAÇ

ÃO

Fernando Gehm Moraes / Ney Calazans

Simulação - fase de envio

• A cada PEDSP são gerados os sinas “frE” e “peE”, os quais colocam em to DSP os dados da área de dados

• Observar AD e IO_R (nesta simulação estamos lendo apenas um dado válido - A3 )

Page 87: Plataformas de Prototipação de Hardware  Princípios, Taxonomia, Características e Exemplos

87/85

PLA

TAFO

RM

AS

DE

PRO

TOTI

PAÇ

ÃO

Fernando Gehm Moraes / Ney Calazans

Inpu

ts (t

est_

benc

h)Simulação apenas do processador

New instruction beginning Memory writeCurrent micro-instruction

Conteúdo da 1a posição do vetor 1

Conteúdo da 1a posição do vetor 2

SUM

Ponteiro para 1a posição do vetor 3

Endereço do vetor 3

Data to be writen in memory

Page 88: Plataformas de Prototipação de Hardware  Princípios, Taxonomia, Características e Exemplos

88/85

PLA

TAFO

RM

AS

DE

PRO

TOTI

PAÇ

ÃO

Fernando Gehm Moraes / Ney Calazans

Alguns dados da síntese

• Pode-se escrever o programa diretamente em linguagem de montagem

• Síntese física

Number of CLBs: 270 out of 576 46% CLB Flip Flops: 192 4 input LUTs: 390 (2 used as route-throughs) 3 input LUTs: 153 (65 used as route-throughs) Number of bonded IOBs: 52 out of 160 32% IOB Flops: 0 IOB Latches: 0 Number of global buffers: 1 out of 8 12% Number of primary CLKs: 1 out of 4 25% Number of secondary CLKs: 3 out of 4 75% Number of TBUFs: 40 out of 1248 3% Number of RPM macros: 1Total equivalent gate count for design: 4045

Page 89: Plataformas de Prototipação de Hardware  Princípios, Taxonomia, Características e Exemplos

89/85

PLA

TAFO

RM

AS

DE

PRO

TOTI

PAÇ

ÃO

Fernando Gehm Moraes / Ney Calazans

PLACA LIRMM - CONCLUSÃO

• Fácil implementação:– Incluir dois módulos: recepção e emissão– Para receber dados de 32 apenas monitorar o sinal FR (borda de descida)– Para enviar: gravar 32 bits no módulo de emissão

• Deficiência do sistema– Recepção é assíncrona, necessitando inserir por vezes um delay no código em

linguagem ‘C’– Os buffers das portas evitam erro de “over-run”

• Permite implementações mistas, com parte hardware/parte software– Exemplo: processamento de imagens com redes neurais (ROLF)– HARDWARE/SOFTWARE CODESIGN