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

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

Plataformas de Prototipação de Hardware

Apresentações semelhantes


Apresentação em tema: "Plataformas de Prototipação de Hardware"— Transcrição da apresentação:

1 Plataformas de Prototipação de Hardware
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 Fernando Gehm Moraes / Ney Calazans Março / 2002

2 Onde Buscar Mais Informações?
Homepage de fabricantes de PLDs, e.g.: Homepage de fabricantes de plataformas de prototipação e.g.: Página de plataformas baseadas em FPGA de S. Guccione: Homepage de fabricantes de sistemas de CAD: Homepage de links para sites relacionados a FPGAs: Livros disponíveis na biblioteca sobre FPGAs, VHDL, Codesign

3 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 moraes daniel carlos rodrigo katherine 2

4 1 - Projeto de SDs usando CAD
Descrições Programas Arcabouço Interface Gráfico -Textual de Projeto Bibliotecas Estrutura Geral de CAD: Interface Gráfico-textual Arcabouço de Projeto (framework) Descrições de projeto Ferramentas de projeto Bibliotecas

5 Fluxo de Projeto p/ a Família XC4000 (revisão)
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

6 Exemplo de Sistema de Projeto - Foundation, da Xilinx
Janela Principal = fluxo de projeto Componentes de projeto restrições temporais e de pinagem simulação funcional bibliotecas simulação lógica síntese lógica Ferramentas de projeto simulação física síntese física download Janela de mensagens

7 Edição de esquemático (ou captura de esquemático)
Editor hierárquico de esquemas

8 Simulador Lógico: Funcional e de Temporização
Simulação lógica Simulador Lógico: Funcional e de Temporização Janela de Simulação Janela de Estimulação Janela de Controle

9 Ferramentas Individuais ou conjunto de ferramentas
Síntese Física Andamento da Síntese: Execução passo-a-passo ou automática Ferramentas Individuais ou conjunto de ferramentas

10 Relatórios (de posicionamento e roteamento)
pads USO DE BLOCOS LÓGICOS Recursos internos

11 Análise de Caminhos Críticos

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

13 PLANTA BAIXA, ou floorplaning (posicionamento relativo)

14 Download A cada utilização Permanente Via cabo serial ou paralelo
Arquivo de configuração armazenado em memória não volátil (EPROM, EEPROM ou Flash) XC4000

15 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 moraes daniel carlos rodrigo katherine 2

16 2. FLUXO DE PROJETO EM PROTOTIPAÇÃO
Técnicas de Implementação

17 Componentes de um projeto de hardware moderno e complexo
Ontem e o FUTURO Componentes de um projeto de hardware moderno e complexo Glue Logic RAM/ ROM RAM/ ROM Glue Logic integração Analog µC DSP µC DSP Analog

18 Fluxo de projeto em prototipação
Ontem: µP memória Sistemas baseados em CIs de prateleira “System on a chip” A/D D/A S P Core µP Glue Logic DSP Core DMA RAM ROM P S Futuro: Sistemas Complexos ULSI µP ASIC memória FPGA Hoje: Sistemas baseados em ASICs Hoje - CIs com 60Mtransistores Daqui há 8 anos - Cis com 960 Mtransistores!

19 Como construir / validar um sistema complexo ?
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 CI final A/D D/A S P Core µP Glue Logic DSP Core DMA RAM ROM P S Sistemas Programáveis µP FPGA FPGA FPGA FPGA FPGA FPGA Analog memória memória

20 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,...

21 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

22 CODESIGN: projeto integrado de hardware e software
Especificação do sistema Partição Co-Síntese Síntese HDL C Compilação Co-Simulação Módulos pré-definidos de hardware (cores) Bibliotecas de funções FPGA FPGA FPGA µP FPGA FPGA FPGA A/D D/A S P Core µP Glue Logic DSP Core DMA RAM ROM P S memória memória Analog

23 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 moraes daniel carlos rodrigo katherine 2

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

25 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 Computador Hospedeiro Recursos Programáveis Recursos de Interconexão

26 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

27 Computação Reconfigurável
Nova área de pesquisa e desenvolvimento O que é? Hardware VLSI reconfigurável em ms ou ms 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!!!!

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

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

30 DEMOBOARD

31 Placa LIRMM (detalhada em detalhes na Seção posterior)
Placa mãe Hunt Engineering Placa com processador DSP Placa com FPGAs Vista Superior Vista inferior

32 Placa de prototipação AEE
Placa comercial de prototipação (brasileira) Muito semelhante a XS40, porém com menos recurso de E/S. Positivo: ISA ROM que guarda a programação

33 Placa de prototipação XS40

34 Placa de prototipação XS40/XST-1
Interface de áudio ÁREA DE Clock de PROTOTIPAÇÃO 12 MHz CHAVES Interface Paralela com o PC 7-segmentos e Leds Microprocessador 8031 FPGA Xilinx 4010 32 KB SRAM Interface VGA

35 XS40 / XStend

36 XSV - XSV PLATAFORMAS POSITIVO: 800 KGATES E ABUNDÂNCIA DE E/S (US$ 1599)

37 Xess XSV - XSV800

38 VCC VW300 - Virtual Workbench (US$ 1295 - ago/2000)
FPGA XCV300 com 300K gates

39 Virtual Workbench - VW300

40 VCC HOTII-XL - 2 PLATAFORMAS - Barramento PCI
POSITIVO: INTERFACE PCI (33/32) reduz o gargalo de comunicação hospedeiro-FPGA US$ 1995,00 Bancos de memória, para o FPGA Dispositivo Programável tipo Interface PCI para comunicação FPGA com o host (PC)

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

42 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 …..

43 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 moraes daniel carlos rodrigo katherine 2

44 4. PLACA LIRMM (1996) LIRMM Board (Logic Inside Reconfigurable Micro Machine) CAD TOOLS C HDL C compiler (TI) Architectural synthesis MACH (Lirmm) Logic Synthesis Synopsys XACT Mapping HOST communication Protocols DSP FPGA FPGA FPGA Carte TIM 40 RAM RAM RAM RAM RAM RAM RAM Carte FPGA Mother Board : HUNT ENGINEERING

45 Ambiente de Prototipação LIRMM
Placa mãe Hunt Engineering Placa com processador DSP Placa com FPGAs PLACA LIRMM Vista Superior Vista inferior

46 Características 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

47 Arquitetura da placa LIRMM (FPGAs)

48 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

49 Hardware do DSP - TMS320 C40 BOARD
Cache 512 byte RAM 0 4 kbyte RAM 1 4 kbyte { Data Bus (32 bits) GLOBAL BUS Address bus (32 bits) 6 Communication ports : 20 Mbyte/s Port 0 Registers Controler X + Port 5 DMA Documentação abundante da TI !!!

50 4.1. PROTOCOLO DE COMUNICAÇÃO/VHDL
send / receive externamente 8 bits / internamente 32

51 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 32 8 IN OUT RECEPÇÃO Init Cstrbin FR Crdyout FPGA

52 MÓDULO DE RECEPÇÃO (2/3) Implementação out[7:0] out[15:8] out[23:16]
FD8 FD8 FD8 FD8 IN D Q D Q D Q D Q R R R R R R R Cstrbin Init Bloco de Dados do Módulo de Recepção FR FFD FFD FFD FFD S R R R R reset # cstrbin # cstrbin # cstrbin # cstrbin Cstrbin Init Bloco de Controle do Módulo de Recepção

53 MÓDULO DE RECEPÇÃO (3/3) Simulação
recebeu 4 bytes e avisa FR (fim de recepção) INIT armazena em addition os 32 bits

54 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 Crdyin FR Cstrbout EMISSÃO Init FE PE 8 32 OUT IN FPGA

55 FPGA MÓDULO DE EMISSÃO (2/4)
Implementação (dados - gerência pelo FPGA) Com1 FD8 In [0,7] Q1 MUX 2x8 In [8,15] Q2 Com 1 In [16,23] Q3 In [24,31] Q4 Q34 Com2 out Init FR Q12 8 FPGA controle

56 MÓDULO DE EMISSÃO (3/4) Implementação (controle - gerência pelo DSP)
reset # cstrbout # cstrbout # cstrbout # cstrbout Implementação (controle - gerência pelo DSP)

57 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 reset # cstrbout # cstrbout # cstrbout # cstrbout (no quarto cstrbout TRANCA O cstrbout )

58 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

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

60 SIMULAÇÃO VHDL - test bench simula o processador

61 recebeu 4 bytes e avisa FR (fim de recepção) PE inicializa a emissão
SIMULAÇÃO recebeu 4 bytes e avisa FR (fim de recepção) FR2 sobe na quarta palavra recebida (sinal para armazenar os 32 bits de saída) INIT PE inicializa a emissão 2a RECEP 3a RECEP 4a RECEP byte 0 byte 1 byte 2 byte 3 fim de emissão

62 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 ...

63 Com o boot_loader temos entrada/saída
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

64 Código C - Compilação (1/3)
<file>.c <file>.cmd hunt.cmd Cl30 / lnk30 <file>.out <file>.obj <file>.map O código de saída estará em <file>.out <FILE>.CMD -c /* LINK USING C CONVENTIONS */ -stack 0x /* 1K STACK */ -heap 0x /* 1K HEAP */ tst.obj -o tst.out

65 Código C - Compilação (2/3) - Arquivo HUNT.CMD
(opcional) 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

66 Código C - Compilação (3/3) - Arquivo MAKEFILE
(opcional) #**************************************************************************** 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

67 Código C - Execução <file>.bat ==> network ===> file.out
(opcional) 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 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 ND NODE0 ROOT FF800 idrom.out tst.out HOSTLINK 3

68 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

69 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

70 4.4. Processador Cleópatra na Placa LIRMM
DATA (memory) Write into memory CE RW ADDRESS (memory) MAR reset CONTROL BLOCK BUS_B BUS_A ck mux 1 sel c z n IR MDR µinst ce ck rw IR reset Read from memory µinst c z n IR ADDRESS PC ck DATA-PATH DATA reset MEMORY CE RW AC RS Codificação de escrita op_ula write_reg ULA lnz lc BUS_C N Z C Codificação de leitura read_reg

71 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

72 Core e blocos de controle no FPGA
TODSP crdyin cstrbout reset E FRE PEE 24 BUSEMI 32 8 8 A3 FRS st2 IOR 8 A2 PES st2 FROM / TO DSP P DATA_IN 8 ck_int PEDSP DATA_OUT CE RW ADDRESS_C 8 M2 st1 8 reset reset ck st0 ecr CE1_N CE2 WE_N OE_N ck_int start state A1 FROM / TO MEMORY FROMDSP cstrbin crdyout reset R FR BUSREC 32 8 [7,0] 8 busrec2 8 D Q ck R1 [15,8] 8 D Q ck M1 FR end_mem st0 9 17 AD R2 ADDRESS_C 8 st1 [23,16] 8 D Q ck +1 st2 R3 state

73 E P R Download do programa FROM / TO DSP FROM / TO MEMORY FPGA FR
crdyin cstrbout reset E FRE PEE 24 BUSEMI 32 8 8 A3 FRS st2 IOR 8 A2 PES st2 FROM / TO DSP P DATA_IN 8 ck_int PEDSP DATA_OUT CE RW ADDRESS_C 8 M2 st1 8 reset reset ck st0 ecr CE1_N CE2 WE_N OE_N ck_int start state A1 FROM / TO MEMORY 8 FROMDSP cstrbin crdyout reset R FR BUSREC 32 8 [7,0] 8 D Q ck busrec2 R1 [15,8] 8 D Q ck M1 FR end_mem st0 9 17 AD R2 ADDRESS_C 8 st1 [23,16] 8 D Q ck 32 bits: xxDDAAPP dd = data address aa = memory address pp = program code +1 st2 R3 state

74 Execução do programa pelo core
FPGA TODSP crdyin cstrbout reset E FRE PEE 24 BUSEMI 32 8 8 A3 FRS st2 IOR 8 A2 PES st2 FROM / TO DSP P DATA_IN 8 ck_int PEDSP DATA_OUT CE RW ADDRESS_C 8 M2 st1 8 reset reset ck st0 ecr CE1_N CE2 WE_N OE_N ck_int start state A1 FROM / TO MEMORY FROMDSP cstrbin crdyout reset R FR BUSREC 32 8 [7,0] 8 busrec2 8 D Q ck R1 ADDRESS_C [15,8] 8 D Q ck M1 FR end_mem st0 9 17 AD R2 8 st1 [23,16] 8 D Q ck +1 st2 R3 state

75 Envio dos resultados ao DSP
FPGA TODSP crdyin cstrbout reset E FRE PEE 24 BUSEMI 32 8 8 A3 FRS st2 IOR 8 A2 PES st2 FROM / TO DSP P DATA_IN 8 ck_int PEDSP DATA_OUT CE RW ADDRESS_C 8 M2 st1 8 reset reset ck st0 ecr CE1_N CE2 WE_N OE_N ck_int start state A1 FROM / TO MEMORY FROMDSP cstrbin crdyout reset R FR BUSREC 32 8 [7,0] 8 busrec2 8 D Q ck R1 [15,8] 8 D Q ck M1 FR end_mem st0 9 17 AD R2 ADDRESS_C 8 st1 [23,16] 8 D Q ck +1 st2 R3 state

76 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 */ wait(300); /* wait the execution …. NOT NICE */ for(j=0; j<10; j++) *PE1=0; /* send PEDSP in order to receive the results */ b = *comm_port4_input; }

77 VHDL - controle do core (1/6)
(opcional)

78 VHDL - controle do core (2/6)
(opcional) 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”

79 VHDL - controle do core (3/6)
(opcional) Não precisa ser tão lento Apenas para não ter problemas de timing

80 VHDL - controle do core (4/6)
(opcional) 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

81 VHDL - controle do core (5/6)
(opcional) Controles da máquina de emissão

82 VHDL (6/6) - sincronização de sinais assíncronos
(opcional) 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

83 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

84 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

85 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”

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

87 Simulação apenas do processador
Inputs (test_bench) Ponteiro para 1a posição do vetor 3 Endereço do vetor 3 Conteúdo da 1a posição do vetor 1 SUM Conteúdo da 1a posição do vetor 2 Current micro-instruction New instruction beginning Data to be writen in memory Memory write

88 Alguns dados da síntese
Pode-se escrever o programa diretamente em linguagem de montagem Síntese física

89 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 "Plataformas de Prototipação de Hardware"

Apresentações semelhantes


Anúncios Google