Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Informática Grupo de Apoio ao Projeto de Hardware gaph onde Buscar Mais Informações?



Yüklə 4,8 Mb.
tarix30.10.2018
ölçüsü4,8 Mb.
#75923


Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Informática Grupo de Apoio ao Projeto de Hardware - GAPH


Onde Buscar Mais Informações?

  • Homepage de fabricantes de PLDs, e.g.:

    • www.xilinx.com, www.altera.com, www.actel.com, www.atmel.com
  • Homepage de fabricantes de plataformas de prototipação e.g.:

    • www.xess.com/FPGA, www.aptix.com, www.vcc.com
  • Página de plataformas baseadas em FPGA de S. Guccione:

    • www.io.com/~guccione/HW_list.html
  • Homepage de fabricantes de sistemas de CAD:

    • www.synopsys.com, www.aldec.com
  • Homepage de links para sites relacionados a FPGAs:

    • http://www.mrc.uidaho.edu/fpga/
  • Livros disponíveis na biblioteca sobre FPGAs, VHDL, Codesign



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



1 - Projeto de SDs usando CAD



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



Exemplo de Sistema de Projeto - Foundation, da Xilinx



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



Simulação lógica



Síntese Física



Relatórios (de posicionamento e roteamento)

  • USO DE BLOCOS LÓGICOS



Análise de Caminhos Críticos



Edição do layout do FPGA



PLANTA BAIXA, ou floorplaning (posicionamento relativo)



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)


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



2. FLUXO DE PROJETO EM PROTOTIPAÇÃO



Ontem e o FUTURO

  • Componentes de um projeto de hardware moderno e complexo





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


Prototipação rápida

  • Permite a rápida implementação de sistemas digitais complexos

    • reduz “time-to-market” de produtos
    • permite avaliação realista do hardware
    • solução para o produto final se volume de produção não for muito elevado (inferior a 15.000 peças)
    • principais restrições:
      • freqüência de operação
      • ausência de dispositivos analógicos
  • Nova área de pesquisa: arquiteturas reconfiguráveis

    • hardware pode se adaptar ao problema proposto
    • exemplos de arquiteturas acadêmicas:
      • DISC, PRISM, SPLASH, Dec-Perle. Spyder, Transmogrifier, Raw,...


Requisitos em um ambiente de prototipação



CODESIGN: projeto integrado de hardware e software



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



3 - Plataformas de Prototipação Rápida



Características e Classificação



Taxonomia de Plataformas de Prototipação



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


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


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)


DEMOBOARD



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



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 de prototipação XS40



Placa de prototipação XS40/XST-1



XS40 / XStend



XSV - XSV800 - 2 PLATAFORMAS



Xess XSV - XSV800



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



Virtual Workbench - VW300



VCC HOTII-XL - 2 PLATAFORMAS - Barramento PCI



Ambiente de Prototipação Aptix (> US$ 30000)

  • Recursos de interconexão abundantes (FPICs)



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



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



4. PLACA LIRMM (1996)



Ambiente de Prototipação LIRMM



Características

  • Dois XILINX XC 4013 - 208 Pins : 1152 CLBs (26 000 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



Arquitetura da placa LIRMM (FPGAs)



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



Hardware do DSP - TMS320 C40 BOARD



4.1. PROTOCOLO DE COMUNICAÇÃO/VHDL

  • PROTOCOLO DE COMUNICAÇÃO

    • send / receive
    • externamente 8 bits / internamente 32


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


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

  • Implementação



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

  • Simulação



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


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

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



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

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



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


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


VHDL DO ACUMULADOR



SIMULAÇÃO VHDL - test bench simula o processador



SIMULAÇÃO



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



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)


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

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

  • MEMORY

  • {

  • IRAM0: org = 0x002ff800 len = 0x00000400

  • IRAM1: org = 0x002ffC00 len = 0x00000400

  • SRAML: org = 0x00300000 len = 0x0040000

  • SRAMG: org = 0x80000000 len = 0x00100000

  • }

  • SECTIONS

  • {

  • .const: > SRAML

  • .cinit: > SRAML

  • .text: > SRAML

  • .stack: > SRAML

  • .sysmem: > SRAMG

  • .data: > SRAML

  • .bss: > SRAML

  • }



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



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 00000000 00000000 002FF800 idrom.out tst.out
        • HOSTLINK 3


Código C - Exemplo de controle do acumulador



Código C - parte 2



4.4. Processador Cleópatra na Placa LIRMM



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



Core e blocos de controle no FPGA



Download do programa



Execução do programa pelo core



Envio dos resultados ao DSP



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;

  • }

  • }



VHDL - controle do core (1/6)



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”


VHDL - controle do core (3/6)



VHDL - controle do core (4/6)



VHDL - controle do core (5/6)



VHDL (6/6) - sincronização de sinais assíncronos



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


Simulação - fase de recepção



Simulação - fase de execução



Simulação - fase de envio



Simulação apenas do processador



Alguns dados da síntese

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

  • Síntese física



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


Yüklə 4,8 Mb.

Dostları ilə paylaş:




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©www.genderi.org 2024
rəhbərliyinə müraciət

    Ana səhifə