0% acharam este documento útil (0 voto)
137 visualizações30 páginas

AMBA

Este documento descreve os conceitos gerais de barramentos e o barramento AMBA, incluindo suas variantes AXI, AHB, ASB e APB. Também explica como integrar um FPGA com um processador ARM HPS usando o kit DE1-SoC da Altera, mapeando endereços físicos para virtuais para controlar LEDs no FPGA pelo processador.

Enviado por

Felipe
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PPTX, PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
137 visualizações30 páginas

AMBA

Este documento descreve os conceitos gerais de barramentos e o barramento AMBA, incluindo suas variantes AXI, AHB, ASB e APB. Também explica como integrar um FPGA com um processador ARM HPS usando o kit DE1-SoC da Altera, mapeando endereços físicos para virtuais para controlar LEDs no FPGA pelo processador.

Enviado por

Felipe
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PPTX, PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 30

AMBA – Conceitos

Gerais e Integração HPS-


FPGA
FELIPE VIEL
Barramento – Conceitos Gerais
Infraestrutura utilizada para conectar dispositivos
Comunicação serial ou paralela
Configuração clássica:
◦ Linha de controle: sinais de controle como clock, reset, req, grant, etc
◦ Linha de endereço: endereçamento como posição de memória ou dispositivo
◦ Linha de dados: dados em geral, como informação processada
Barramento – Conceitos Gerais
Pode ser dividido em barramento de alta e baixa velocidade
Métricas levadas em conta no projeto:
◦ Largura do barramento
◦ Tipo (dedicado ou multiplexado)
◦ Temporização (síncrona ou assíncrona)
◦ Arbitragem (mestre e escravo)

Em SoC, usado para comunicar núcleos através de um protocolo padronizado ou comum entre
os dispositivos
Barramento AMBA
Advanced Microcontroller Bus Architecture
Criado pela ARM
Objetivo de conectar núcleos em uma SoC
Pode ser dividido em:
◦ AXI (Advanced Extensible Interface) - Sistema
◦ AHB (Advanced High Bus) - Sistema
◦ ASB (Advanced System Bus) - Sistema
◦ APB (Advanced Peripheral Bus) – Periféricos
Barramento AMBA
Barramento AMBA - AHB
Suporte a múltiplos mestres com alta largura de banda
Transferências em rajada, transações divididas
Um ciclo para mestre assumir o controle
Não suporta tristate
Suporte a 64 ou 128 bits no barramento
Suporte para fácil integração com ASB/APB
Possui mestre, escravo, árbitro e decodificador
Barramento AMBA - AHB
Barramento AMBA - AXI
É a interface AMBA mais estendida – 100 M/S em SoCs
Separa endereço/controle em fases de dados
Suporte a transferência de dados desalinhados
Usa transações em rajada somente com o endereço inicial
Canais de leitura e escrita separados, com suporte a DMA
Suporte a envio de endereços pendentes
suporte a transações fora de ordem
Permite a inserção de reg de estágio para sincronismo de tempo
Barramento AMBA - AXI
Canais independents: read address, read data, write address, write data e write response
Barramento AMBA - ASB
Primeira geração do AMBA
Suporte a transferência em rajada – pode ser em pipeline
Múltiplos mestres
Contém mestre, escravo, árbitro e decodificador
Barramento AMBA - ASB
Barramento AMBA - APB
Otimizado para pouco consumo de energia e complexidade
Barramento secundário para AXI, AHB ou ASB
Utiliza uma bridge para conexão – escravo
Destina-se a periféricos que requerem baixa largura de banda e não requer alta performance de
um barramento com pipeline
Todas as transações são na subida do clock
Valids de Endereço e controle ao para todo o acesso
Não consumo de energia quando o periférico não está em uso
Barramento AMBA - APB
Integração entre HPS e
FPGA
UTILIZANDO KIT DE1 -SOC DA ALTERA COM CYCLONE V
Kit DE1-SoC
Kit DE1-SoC
DE1-SoC - Usando FPGA e HPS(ARM)
Necessária setar chaves presente na placa

Setar MSEL[4:0]:
◦ EPCQS: 10010
◦ Linux: 01010
◦ Com U-Boot: 00000
DE1-SoC – Controle do FPGA pelo HPS
DE1-SoC – Controle do FPGA pelo HPS
Exemplo parecido com o controle de semáforos
Controle de LEDS
Necessário usar brigde denominada HPS-to-FPGA AXI
DE1-SoC – Controle do FPGA pelo HPS
Método utilizando por mapeamento do endereço físico
Adiciona-se o PIO utilizando o Qsys e o conecta a porta mestre do HPS2FPGA AXI disponível no
componente apresentado no QSys
DE1-SoC – Controle do FPGA pelo HPS
PIO recebe numero de portas, indicação que será saída e endereço de reset

Porta s1 do PIO é conectada a saída h2f_lw_axi_master AXI máster do hps, o clock ao clock do
sistema e o reset ao reset do sistema
DE1-SoC – Controle do FPGA pelo HPS
Qsys: Generate->HDL Example e copiar pio_led_external_connection_export
Colar no arquivo de topo gerado após sistese e ligar a porta dos leds
DE1-SoC – Controle do FPGA pelo HPS
Prestar atenção ao endereço gerado para o PIO, pois esse será gerado como endereço para acessar via
software
DE1-SoC – Controle do FPGA pelo HPS
Na pasta do Quartus, é necessário executar um batch pelo Altera SoC EDS Shell:
◦ ./generate_hps_qsys_header.sh

Gera o hps_0.h, onde o PIO recebe o nome dado no Qsys


DE1-SoC – Controle do FPGA pelo HPS - C
O endereço físico é mapeado para o endereço virtual
Driver da memória é aberto via system-call: /dev/mem
Usado um ponteiro: virtual_base adicionado aos offsets
Calculado o endereço por dois offsets:
◦ Endereço do barramento Lightweight HPS-to-FPGA AXI para HPS
◦ Endereço do PIO para o barramento Lightweight HPS-to-FPGA AXI

1° Endereço 0xff200000 - ALT_LWFPGASLVS_OFST


2° Endereço 0x00000000 - PIO
DE1-SoC – Controle do FPGA pelo HPS - C
DE1-SoC – Controle do FPGA pelo HPS - C
Endereço virtual do PIO representado por um ponteiro:
◦ h2p_lw_led_addr

PIO tem mais registradores de controle e dados, com 32 bits cada


Necessário escrever só no registrado 0
DE1-SoC tem os leds ativos em 0 – ligados – 0x00000000
Valor de reset - desligados – 0x000003ff
*(uint32_t *) h2p_lw_led_addr= 0x000003ff;
DE1-SoC – Controle do FPGA pelo HPS - C
Continuação no arquivo...
DE1-SoC – Controle do FPGA pelo HPS - C
Compilado através do Makefile
Usado o Altera SoC EDS Shell
Boot o Linux e execute o software
Configure o FPGA através do Quartus utilizando o arquivo .sof gerado
Referências
AMBA Specification 2.0
AMBA® AXI™ and ACE™ Protocol Specification
DE1-SoC User Manual
DE1-SoC My First HPS-FPGA
Doulos - Migrating from AHB to AXI based SoC Designs
Implementação do barramento on-chip AMBA baseado em computação reconfigurável - Daniel
Cruz de Queiroz

Você também pode gostar