Carregar apresentação
A apresentação está carregando. Por favor, espere
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 Fernando Gehm Moraes / Ney Calazans Março / 2001
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 4. Estudo de Caso: PLACA LIRMM
1. PROJETO DE SISTEMAS DIGITAIS USANDO CAD fluxo de projeto em prototipação 2. FLUXO DE PROJETO EM PROTOTIPAÇÃO 3. PLATAFORMAS DE PROTOTIPAÇÃO 4. Estudo de Caso: PLACA LIRMM 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 circuito e “módulo de validação” (test_bench) restrições temporais pinagem, relação entre os sinais e os pads de e/s 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
2. FLUXO DE PROJETO EM PROTOTIPAÇÃO
Técnicas de Implementação
16
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
17
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!
18
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
19
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,...
20
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) Iteratividade com o usuário
21
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
22
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
23
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
24
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
25
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!!!!
26
Ambientes de prototipação disponíveis no GAPH
DEMOBOARD (4003 e 4010) HARP (transputer e 3195) AEE XS40 e Xstend LIRMM Virtex … a família continua crescendo ... Aposentadas!
27
DEMOBOARD: primeira plataforma do GAPH
DEMOBOARD (3020 / 4003 ou 4010) ou, como tudo começou … projetos muito simples, de baixa complexidade útil para ensino (100 CLBs)
28
DEMOBOARD
29
Placa de prototipação XS40
30
Placa de prototipação XS40 + XStend
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
31
XS40 / XStend
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 LIRMM (detalhada em detalhes na Seção posterior)
Placa mãe Hunt Engineering Placa com processador DSP Placa com FPGAs Vista Superior Vista inferior
34
WORK BENCH - XCV300 (US$ 1295 - ago/2000)
FPGA com 300K gates
35
WORK BENCH - XCV300
36
HOTPCI - 2 PLACAS EM AQUISIÇÃO (AGO/2000)
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)
37
XCV PLACAS POSITIVO: 800 KGATES E ABUNDÂNCIA DE E/S (US$ 1599)
38
Ambiente de Prototipação Aptix (> US$ 30000)
Recursos de interconexão abundantes (FPICs)
39
O QUE DÁ PARA FAZER COMO TRABALHOS ?
CORES: metodologia de desenvolvimento para efetivamente tornar o paradigma “desing 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 …..
40
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
41
Ambiente de Prototipação LIRMM
Placa mãe Hunt Engineering Placa com processador DSP Placa com FPGAs PLACA LIRMM Vista Superior Vista inferior
42
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
43
Arquitetura da placa LIRMM (FPGAs)
44
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
45
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 !!!
46
4.1. PROTOCOLO DE COMUNICAÇÃO/VHDL
send / receive externamente 8 bits / internamente 32
47
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
48
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
49
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
50
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
51
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
52
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)
53
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 )
54
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
55
VHDL DO ACUMULADOR O que é necessário para o usuário: na recepção o “output” na emissão o “input”
56
SIMULAÇÃO VHDL - test bench simula o processador
57
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
58
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 ...
59
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
60
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
61
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
62
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
63
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
64
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
65
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
66
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
67
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
68
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
69
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
70
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
71
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
72
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; }
73
VHDL - controle do core (1/6)
(opcional)
74
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”
75
VHDL - controle do core (3/6)
(opcional) Não precisa ser tão lento Apenas para não ter problemas de timing
76
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
77
VHDL - controle do core (5/6)
(opcional) Controles da máquina de emissão
78
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
79
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
80
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
81
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”
82
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 )
83
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
84
Alguns dados da síntese
Pode-se escrever o programa diretamente em linguagem de montagem Síntese física
85
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
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.