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

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

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.

Apresentações semelhantes


Apresentação em tema: "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."— Transcrição da apresentação:

1

2 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

3 2/85 PLATAFORMAS DE PROTOTIPAÇÃO Fernando Gehm Moraes / Ney Calazans Homepage de fabricantes de PLDs, e.g.: –www.xilinx.com, Homepage de fabricantes de plataformas de prototipação e.g.: –www.xess.com/FPGA, 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, 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?

4 3/85 PLATAFORMAS DE PROTOTIPAÇÃO Fernando Gehm Moraes / Ney Calazans katherine moraes daniel carlos rodrigo 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

5 4/85 PLATAFORMAS DE PROTOTIPAÇÃ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ço de Projeto Programas Bibliotecas Descrições Interface Gráfico -Textual –Descrições de projeto –Ferramentas de projeto –Bibliotecas

6 5/85 PLATAFORMAS DE PROTOTIPAÇÃ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)

7 6/85 PLATAFORMAS DE PROTOTIPAÇÃO Fernando Gehm Moraes / Ney Calazans Exemplo de Sistema de Projeto - Foundation, da Xilinx Componentes de projeto Ferramentas de projeto Janela de mensagens Janela Principal = fluxo de projeto síntese lógica síntese física simulação lógica simulação física simulação funcional restrições temporais e de pinagem download bibliotecas

8 7/85 PLATAFORMAS DE PROTOTIPAÇÃO Fernando Gehm Moraes / Ney Calazans Edição de esquemático (ou captura de esquemático) Editor hierárquico de esquemas

9 8/85 PLATAFORMAS DE PROTOTIPAÇÃO Fernando Gehm Moraes / Ney Calazans Simulação lógica Simulador Lógico: Funcional e de Temporização Janela de Simulação Janela de Estimulação Janela de Controle

10 9/85 PLATAFORMAS DE PROTOTIPAÇÃ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

11 10/85 PLATAFORMAS DE PROTOTIPAÇÃO Fernando Gehm Moraes / Ney Calazans Relatórios (de posicionamento e roteamento) USO DE BLOCOS LÓGICOS pads Recursos internos

12 11/85 PLATAFORMAS DE PROTOTIPAÇÃO Fernando Gehm Moraes / Ney Calazans Análise de Caminhos Críticos

13 12/85 PLATAFORMAS DE PROTOTIPAÇÃ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

14 13/85 PLATAFORMAS DE PROTOTIPAÇÃO Fernando Gehm Moraes / Ney Calazans PLANTA BAIXA, ou floorplaning (posicionamento relativo)

15 14/85 PLATAFORMAS DE PROTOTIPAÇÃ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) XC4000

16 15/85 PLATAFORMAS DE PROTOTIPAÇÃO Fernando Gehm Moraes / Ney Calazans katherine moraes daniel carlos rodrigo Sumário 31. 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

17 16/85 PLATAFORMAS DE PROTOTIPAÇÃO Fernando Gehm Moraes / Ney Calazans 2. FLUXO DE PROJETO EM PROTOTIPAÇÃO Técnicas de Implementação

18 17/85 PLATAFORMAS DE PROTOTIPAÇÃO Fernando Gehm Moraes / Ney Calazans Ontem e o FUTURO RAM/ ROM Glue Logic µC Analog DSP Glue Logic RAM/ ROM µC Analog DSP Componentes de um projeto de hardware moderno e complexo integração

19 18/85 PLATAFORMAS DE PROTOTIPAÇÃO Fernando Gehm Moraes / Ney Calazans Fluxo de projeto em prototipação Ontem: µPµP memória Sistemas baseados em CIs de prateleira µPµP ASIC memória FPGA Hoje: memória Sistemas baseados em ASICs ASIC System on a chip A/D D/A S P Core µP Glue Logic DSP Core DMA RAMROM P S Futuro: Sistemas Complexos ULSI Hoje - CIs com 60Mtransistores Daqui há 8 anos - Cis com 960 Mtransistores!

20 19/85 PLATAFORMAS DE PROTOTIPAÇÃO Fernando Gehm Moraes / Ney Calazans Como construir / validar um sistema complexo ? µPµP memória FPGA memória Sistemas Programáveis Analog A/D D/A S P Core µP Glue Logic DSP Core DMA RAMROM 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) HProjeto Integrado de Sw e Hw (H/S Codesign) HPrototipação Rápida de Hw (e Sw) HComputação Configurável

21 20/85 PLATAFORMAS DE PROTOTIPAÇÃ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 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,...

22 21/85 PLATAFORMAS DE PROTOTIPAÇÃ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

23 22/85 PLATAFORMAS DE PROTOTIPAÇÃO Fernando Gehm Moraes / Ney Calazans CODESIGN: projeto integrado de hardware e software Co-Simulação Partição Co-Síntese Síntese HDL C Compilação Especificação do sistema Módulos pré- definidos de hardware ( cores ) Bibliotecas de funções µPµP memória FPGA memória Analog A/D D/A S P Core µP Glue Logic DSP Core DMA RAMROM P S

24 23/85 PLATAFORMAS DE PROTOTIPAÇÃO Fernando Gehm Moraes / Ney Calazans katherine moraes daniel carlos rodrigo Sumário 31. PROJETO DE SISTEMAS DIGITAIS USANDO CAD 32. FLUXO DE PROJETO EM PROTOTIPAÇÃO 3. PLATAFORMAS DE PROTOTIPAÇÃO 4. Estudo de Caso: PLACA XSV FPGA

25 24/85 PLATAFORMAS DE PROTOTIPAÇÃ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 alterado de 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

26 25/85 PLATAFORMAS DE PROTOTIPAÇÃ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

27 26/85 PLATAFORMAS DE PROTOTIPAÇÃ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

28 27/85 PLATAFORMAS DE PROTOTIPAÇÃ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!!!!

29 28/85 PLATAFORMAS DE PROTOTIPAÇÃ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!

30 29/85 PLATAFORMAS DE PROTOTIPAÇÃ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)

31 30/85 PLATAFORMAS DE PROTOTIPAÇÃO Fernando Gehm Moraes / Ney Calazans DEMOBOARD

32 31/85 PLATAFORMAS DE PROTOTIPAÇÃO Fernando Gehm Moraes / Ney Calazans Placa LIRMM (detalhada em detalhes na Seção posterior) Placa com FPGAs Placa com processador DSP Placa mãe Hunt Engineering Vista inferior Vista Superior

33 32/85 PLATAFORMAS DE PROTOTIPAÇÃO Fernando Gehm Moraes / Ney Calazans Placa de prototipação AEE 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)

34 33/85 PLATAFORMAS DE PROTOTIPAÇÃO Fernando Gehm Moraes / Ney Calazans Placa de prototipação XS40

35 34/85 PLATAFORMAS DE PROTOTIPAÇÃO Fernando Gehm Moraes / Ney Calazans Placa de prototipação XS40/XST-1 FPGAXilinx KBSRAM Clock de 12MHz InterfaceVGA Interface Paralela com o PC ÁREA DE PROTOTIPAÇÃO Interface deáudio CHAVES 7-segmentos eLeds Microprocessador 8031

36 35/85 PLATAFORMAS DE PROTOTIPAÇÃO Fernando Gehm Moraes / Ney Calazans XS40 / XStend

37 36/85 PLATAFORMAS DE PROTOTIPAÇÃO Fernando Gehm Moraes / Ney Calazans XSV - XSV PLATAFORMAS POSITIVO: 800 KGATES E ABUNDÂNCIA DE E/S (US$ 1599)

38 37/85 PLATAFORMAS DE PROTOTIPAÇÃO Fernando Gehm Moraes / Ney Calazans Xess XSV - XSV800

39 38/85 PLATAFORMAS DE PROTOTIPAÇÃO Fernando Gehm Moraes / Ney Calazans VCC VW300 - Virtual Workbench (US$ ago/2000) FPGA XCV300 com 300K gates

40 39/85 PLATAFORMAS DE PROTOTIPAÇÃO Fernando Gehm Moraes / Ney Calazans Virtual Workbench - VW300

41 40/85 PLATAFORMAS DE PROTOTIPAÇÃO Fernando Gehm Moraes / Ney Calazans VCC HOTII-XL - 2 PLATAFORMAS - Barramento PCI DispositivoProgramável tipo FPGA InterfacePCI para comunicação com ohost (PC) Bancos de memória, para o FPGA POSITIVO: INTERFACE PCI (33/32) reduz o gargalo de comunicação hospedeiro-FPGA US$ 1995,00

42 41/85 PLATAFORMAS DE PROTOTIPAÇÃO Fernando Gehm Moraes / Ney Calazans Ambiente de Prototipação Aptix (> US$ 30000) Recursos de interconexão abundantes (FPICs)

43 42/85 PLATAFORMAS DE PROTOTIPAÇÃ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 …..

44 43/85 PLATAFORMAS DE PROTOTIPAÇÃO Fernando Gehm Moraes / Ney Calazans katherine moraes daniel carlos rodrigo Sumário 31. PROJETO DE SISTEMAS DIGITAIS USANDO CAD 32. FLUXO DE PROJETO EM PROTOTIPAÇÃO 33. PLATAFORMAS DE PROTOTIPAÇÃO 4. Estudo de Caso: PLACA XSV FPGA

45 44/85 PLATAFORMAS DE PROTOTIPAÇÃO Fernando Gehm Moraes / Ney Calazans 4. PLACA LIRMM (1996) DSP FPGA RAM communication Protocols Carte FPGA Mother 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

46 45/85 PLATAFORMAS DE PROTOTIPAÇÃO Fernando Gehm Moraes / Ney Calazans Ambiente de Prototipação LIRMM Placa com FPGAs Placa com processador DSP Placa mãe Hunt Engineering Vista inferior Vista Superior PLACA LIRMM

47 46/85 PLATAFORMAS DE PROTOTIPAÇÃO Fernando Gehm Moraes / Ney Calazans Dois XILINX XC Pins : 1152 CLBs ( gates) barramento entre FPGAs : 34 BITS Possibilidade 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

48 47/85 PLATAFORMAS DE PROTOTIPAÇÃO Fernando Gehm Moraes / Ney Calazans Arquitetura da placa LIRMM (FPGAs)

49 48/85 PLATAFORMAS DE PROTOTIPAÇÃ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

50 49/85 PLATAFORMAS DE PROTOTIPAÇÃO Fernando Gehm Moraes / Ney Calazans Cache 512 byte Registers RAM 0 4 kbyte RAM 1 4 kbyte X+ DMA Controler Port 0 Port 5 { GLOBAL BUS Address bus (32 bits) 6 Communication ports : 20 Mbyte/s Documentação abundante da TI !!! Hardware do DSP - TMS320 C40 BOARD Data Bus (32 bits)

51 50/85 PLATAFORMAS DE PROTOTIPAÇÃO Fernando Gehm Moraes / Ney Calazans 4.1. PROTOCOLO DE COMUNICAÇÃO/VHDL PROTOCOLO DE COMUNICAÇÃO –send / receive –externamente 8 bits / internamente 32

52 51/85 PLATAFORMAS DE PROTOTIPAÇÃ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 Init Cstrbin FR Crdyout IN 8 32 OUT RECEPÇÃO FPGA

53 52/85 PLATAFORMAS DE PROTOTIPAÇÃO Fernando Gehm Moraes / Ney Calazans MÓDULO DE RECEPÇÃO (2/3) Implementação Cstrbin Init SRRR FR FFD R R IN DQ R Q R R Q R R Q R Cstrbin Init out[7:0]out[15:8]out[23:16]out[31:24] DDD 8 FD8 Bloco de Controle do Módulo de Recepção Bloco de Dados do Módulo de Recepção reset # cstrbin # cstrbin # cstrbin # cstrbin

54 53/85 PLATAFORMAS DE PROTOTIPAÇÃ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

55 54/85 PLATAFORMAS DE PROTOTIPAÇÃ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 IN 328 OUT FR FE Crdyin Cstrbout Init PE EMISSÃO FPGA

56 55/85 PLATAFORMAS DE PROTOTIPAÇÃO Fernando Gehm Moraes / Ney Calazans MÓDULO DE EMISSÃO (2/4) Implementação (dados - gerência pelo FPGA) Com1 FD8 In [0,7] Q1 MUX 2x8 FD8 In [8,15] Q2 Com 1 FD8 In [16,23] Q3 MUX 2x8 FD8 In [24,31] Q4 Q34Com2 out InitFR Q FPGA controle

57 56/85 PLATAFORMAS DE PROTOTIPAÇÃO Fernando Gehm Moraes / Ney Calazans MÓDULO DE EMISSÃO (3/4) Implementação (controle - gerência pelo DSP) reset # cstrbout # cstrbout # cstrbout # cstrbout

58 57/85 PLATAFORMAS DE PROTOTIPAÇÃ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 –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 reset # cstrbout # cstrbout # cstrbout # cstrbout (no quarto cstrbout TRANCA O cstrbout )

59 58/85 PLATAFORMAS DE PROTOTIPAÇÃ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

60 59/85 PLATAFORMAS DE PROTOTIPAÇÃO Fernando Gehm Moraes / Ney Calazans VHDL DO ACUMULADOR O que é necessário para o usuário: na recepção o output na emissão o input

61 60/85 PLATAFORMAS DE PROTOTIPAÇÃO Fernando Gehm Moraes / Ney Calazans SIMULAÇÃO VHDL - test bench simula o processador

62 61/85 PLATAFORMAS DE PROTOTIPAÇÃO Fernando Gehm Moraes / Ney Calazans SIMULAÇÃO INIT recebeu 4 bytes e avisa FR (fim de recepção) 2 a RECEP3 a RECEP4 a 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 0 byte 1 byte 2 byte 3

63 62/85 PLATAFORMAS DE PROTOTIPAÇÃ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...

64 63/85 PLATAFORMAS DE PROTOTIPAÇÃ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

65 64/85 PLATAFORMAS DE PROTOTIPAÇÃO Fernando Gehm Moraes / Ney Calazans Código C - Compilação (1/3) O código de saída estará em.out.CMD -c /* LINK USING C CONVENTIONS*/ -stack 0x01000 /* 1K STACK */ -heap 0x40000 /* 1K HEAP */ tst.obj -o tst.out.c.cmdhunt.cmd Cl30 / lnk30.out.obj.map

66 65/85 PLATAFORMAS DE PROTOTIPAÇÃ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 = 0x IRAM1: org = 0x002ffC00 len = 0x SRAML: org = 0x len = 0x SRAMG: org = 0x len = 0x } SECTIONS {.const: > SRAML.cinit: > SRAML.text: > SRAML.stack: > SRAML.sysmem: > SRAMG.data: > SRAML.bss: > SRAML } (opcional)

67 66/85 PLATAFORMAS DE PROTOTIPAÇÃO Fernando Gehm Moraes / Ney Calazans Código C - Compilação (3/3) - Arquivo MAKEFILE #**************************************************************************** Directories C40LIB = d:\dspC40\320tools C40BIN = d:\dspC40\320tools LIB = d:\dspC40\load-too\lib INC = d:\dspC40\load-too\inc #**************************************************************************** Compiler/Options CC = cl30 CO = -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 #**************************************************************************** Targets all: 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)

68 67/85 PLATAFORMAS DE PROTOTIPAÇÃ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:.bat ==> network ===> file.out Batch: emurst emuload d:\dspc40\320tools\inira PARA O PGA xchecker - 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 150 ND 0 NODE0 ROOT FF800 idrom.out tst.out HOSTLINK 3 (opcional)

69 68/85 PLATAFORMAS DE PROTOTIPAÇÃO Fernando Gehm Moraes / Ney Calazans Código C - Exemplo de controle do acumulador 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

70 69/85 PLATAFORMAS DE PROTOTIPAÇÃ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 DSP lê a soma do FPGA Finaliza o servidor

71 70/85 PLATAFORMAS DE PROTOTIPAÇÃO Fernando Gehm Moraes / Ney Calazans 4.4. Processador Cleópatra na Placa LIRMM ce rw ADDRESS DATA CONTROL BLOCK µinst IRczn ck MEMORY ck reset DATA-PATH cznIR µinst ck reset MAR MDR IR RS PC AC ULA BUS_BBUS_A 0 mux 1 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 lnz lc CE RW CE RW N Z C BUS_C

72 71/85 PLATAFORMAS DE PROTOTIPAÇÃ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

73 72/85 PLATAFORMAS DE PROTOTIPAÇÃO Fernando Gehm Moraes / Ney Calazans Core e blocos de controle no FPGA 8 M1 8 M2 32 BUSREC A1 ck_int start state TODSP crdyin cstrbout reset E FRE PEE 8 FROMDSP cstrbin crdyout reset R FR 8 32 BUSEMI 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 P DATA_OUT CE RW ADDRESS_C reset ck DATA_IN 8 state st0 st1 +1 st2 end_mem ADDRESS_C AD 17 reset A3 FRS st2 A2 PES st2 FROM / TO DSP ck_int PEDSP R2 R3 R1 CE1_N CE2 WE_N OE_N FROM / TO MEMORY FPGA st0

74 73/85 PLATAFORMAS DE PROTOTIPAÇÃO Fernando Gehm Moraes / Ney Calazans 8 M1 8 M2 32 BUSREC A1 ck_int start state TODSP crdyin cstrbout reset E FRE PEE 8 FROMDSP cstrbin crdyout reset R FR 8 32 BUSEMI 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 P DATA_OUT CE RW ADDRESS_C reset ck DATA_IN 8 state st0 st1 +1 st2 end_mem ADDRESS_C AD 17 reset A3 FRS st2 A2 PES st2 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: xxDDAAPP dd = data address aa = memory address pp = program code

75 74/85 PLATAFORMAS DE PROTOTIPAÇÃO Fernando Gehm Moraes / Ney Calazans Execução do programa pelo core 8 M1 8 M2 32 BUSREC A1 ck_int start state TODSP crdyin cstrbout reset E FRE PEE 8 FROMDSP cstrbin crdyout reset R FR 8 32 BUSEMI 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 P DATA_OUT CE RW ADDRESS_C reset ck DATA_IN 8 state st0 st1 +1 st2 end_mem ADDRESS_C AD 17 reset A3 FRS st2 A2 PES st2 FROM / TO DSP ck_int PEDSP R2 R3 R1 CE1_N CE2 WE_N OE_N FROM / TO MEMORY FPGA st0

76 75/85 PLATAFORMAS DE PROTOTIPAÇÃO Fernando Gehm Moraes / Ney Calazans Envio dos resultados ao DSP 8 M1 8 M2 32 BUSREC A1 ck_int start state TODSP crdyin cstrbout reset E FRE PEE 8 FROMDSP cstrbin crdyout reset R FR 8 32 BUSEMI 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 P DATA_OUT CE RW ADDRESS_C reset ck DATA_IN 8 state st0 st1 +1 st2 end_mem ADDRESS_C AD 17 reset A3 FRS st2 A2 PES st2 FROM / TO DSP ck_int PEDSP R2 R3 R1 CE1_N CE2 WE_N OE_N FROM / TO MEMORY FPGA st0

77 76/85 PLATAFORMAS DE PROTOTIPAÇÃ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; }

78 77/85 PLATAFORMAS DE PROTOTIPAÇÃO Fernando Gehm Moraes / Ney Calazans VHDL - controle do core (1/6) (opcional)

79 78/85 PLATAFORMAS DE PROTOTIPAÇÃO Fernando Gehm Moraes / Ney Calazans VHDL - controle do core (2/6) 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)

80 79/85 PLATAFORMAS DE PROTOTIPAÇÃO Fernando Gehm Moraes / Ney Calazans VHDL - controle do core (3/6) Não precisa ser tão lento Apenas para não ter problemas de timing (opcional)

81 80/85 PLATAFORMAS DE PROTOTIPAÇÃO Fernando Gehm Moraes / Ney Calazans 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)

82 81/85 PLATAFORMAS DE PROTOTIPAÇÃO Fernando Gehm Moraes / Ney Calazans VHDL - controle do core (5/6) Controles da máquina de emissão (opcional)

83 82/85 PLATAFORMAS DE PROTOTIPAÇÃO Fernando Gehm Moraes / Ney Calazans VHDL (6/6) - sincronização de sinais assíncronos 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)

84 83/85 PLATAFORMAS DE PROTOTIPAÇÃ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

85 84/85 PLATAFORMAS DE PROTOTIPAÇÃO Fernando Gehm Moraes / Ney Calazans Simulação - fase de recepção Envio dos dados , , , 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

86 85/85 PLATAFORMAS DE PROTOTIPAÇÃ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

87 86/85 PLATAFORMAS DE PROTOTIPAÇÃ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 )

88 87/85 PLATAFORMAS DE PROTOTIPAÇÃO Fernando Gehm Moraes / Ney Calazans Inputs (test_bench) Simulação apenas do processador New instruction beginning Memory write Current micro-instruction Conteúdo da 1 a posição do vetor 1 Conteúdo da 1 a posição do vetor 2 SUM Ponteiro para 1 a posição do vetor 3 Endereço do vetor 3 Data to be writen in memory

89 88/85 PLATAFORMAS DE PROTOTIPAÇÃ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

90 89/85 PLATAFORMAS DE PROTOTIPAÇÃ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


Carregar ppt "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."

Apresentações semelhantes


Anúncios Google