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 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
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.