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

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

Barramento AVALON Adelmario Douglas Francisco Dantas Millena Almeida

Apresentações semelhantes


Apresentação em tema: "Barramento AVALON Adelmario Douglas Francisco Dantas Millena Almeida"— Transcrição da apresentação:

1 Barramento AVALON Adelmario Douglas Francisco Dantas Millena Almeida
Pedro Lages Williams Azevedo Barramento AVALON

2 Agenda Motivação Características Arquitetura Arbitragem Sinais
Transações Exemplos Referências

3 Motivação As plataformas montadas para FPGAs da Altera usam geralmente o Avalon como barramento padrão É um dos mais difundidos entre os desenvolvedores de SoCs que costumam usar FPGAs

4 Introdução Consiste numa arquitetura de barramento desenvolvida para conectar processadores e periféricos em SoPCs SoPC – System on Programmable Chip É de propriedade da Altera O Avalon é um barramento especial que prioriza a velocidade de transmissão de dados, permitindo conexões em paralelo

5 Características Os sinais são ativados em LOW ou HIGH
Multiplexadores determinam que sinais comanda cada periférico Espaço de endereçamento de até 4Gb Memória e periféricos são mapeados em espaços de até 32 bits Interface Síncrona Todos os sinais são síncronos com o clock, facilitando a integração de periféricos de alta velocidade Não é necessária nenhum handshaking/acknowledge assíncrono Tamanho de dados dinâmico Possibilita a conexão de periféricos com diferentes tamanhos de interface Suporta dispositivos mestres e escravos que trabalhem com dados de 8, 16 ou 32 bits Dynamic Bus Sizing—Dynamic bus sizing hides the details of interfacing narrow peripherals to a wider Avalon bus, or vice versa. For example, in the case of a 32-bit master read transfer from a 16-bit memory, dynamic bus sizing would automatically execute two slave read transfers to fetch 32 bits of data from the 16-bit memory device. This reduces the logic and/or software complexity in the master peripheral, because the master does not have to worry about the physical nature of the slave peripheral.

6 Características Linhas de dados, endereço e controle separados
Os periféricos não precisam decodificar ciclos de endereço e dado, nem precisam desabilitar a saída quando esta não está selecionada Cada sinal utiliza uma porta separada e dedicada Decodificação interna de endereço O Avalon decodifica o endereço passado pelo dispositivo mestre e seleciona o periférico alvo desejado Os dispositivos escravos não precisam realizar verificação de endereços Arquitetura com Múltiplos mestres Geração automática de lógica de arbitragem para possibilitar a utilização de um periférico por mais de um mestre Paralelismo na Comunicação Múltiplos mestres podem se comunicar simultaneamente desde que eles não estejam acessando o mesmo escravo ao mesmo tempo

7 Características Simplicidade Lógica de barramento otimizada
Possui um protocolo simples de entender Lógica de barramento otimizada Conserva elementos de lógica (LEs) dentro do dispositivo de lógica programável (PLD) Operação Síncrona Fácil integração com outras lógicas coexistentes no mesmo PLD Arbitragem transparente os mestres que estão esperando não sabem porque estão esperando, eles não sabem que ocorreu acesso simultâneo

8 Serviços Oferecidos Multiplexação do Data-Path
Os multiplexadores do barramento transferem os dados do escravo para o mestre Decodificação de endereço O Chip select é gerado automaticamente, simplificando o projeto do periférico que não precisa decodificar os sinais de endereço Geração de Wait-States Extende uma transação por um ou mais ciclos, beneficiando periféricos com necessidades especiais de sincronização Utilizado quando o periférico não consegue responder em apenas um ciclo

9 Serviços Oferecidos Prioridade de Interrupções Latência
Quando um ou mais periféricos geram interrupção, o barramento passa a interrupção de maior prioridade junto com o número apropriado do pedido da interrupção (IRQ) Latência A lógica requerida para executar transferências com a latência entre pares master-slave é contida dentro do barramento Streaming para leitura e escrita A lógica requerida para executar transferências com streaming entre pares master-slave é contida dentro do barramento

10 Arquitetura

11 Arquitetura Masters Slaves Arbiter Aribiter System CPU (Master 1) I/O
Program Memory Slaves Data Arbiter Aribiter DSP (Master 2) Masters Switch Fabric I/O CPU (Master 3) 3 Custom Accelerator Peripheral

12 Conexão Periféricos On-chip Periféricos Off-chip peripherals
Conexão gerada automaticamente no tempo de configuração Periféricos Off-chip peripherals Conectados a pinos do chip Sinais de controle e dados das portas mestres passam pelo barramento e interagem com a porta escrava Portas mestres iniciam as transações Interfaces sincronizadas pelo clock do barramento mestre Todas as transações ocorrem simultaneamente com o ciclo do clock

13 Arbitragem Arbitragem é necessária quando múltiplas portas mestres querem acesso a um escravo ao mesmo tempo Resolvido no barramento Slave-side arbitration Transparente para o componentes mestre e escravos Cada mestre atua como se fosse o único mestre presente na plataforma Quando dois ou mais mestres requisitam acesso a determinado escravo simultaneamente, só um mestre será atendido, os demais ficarão aguardando tal escravo Simplifica o projeto dos periféricos

14 Sinais – Avalon Master

15 Sinais – Avalon Master

16 Sinais - Avalon Slave IRQ – Utilizado quando o escravo precisa requisitar um serviço do mestre ChipSelect – Ignora todas as requisições qnd este sinal não está habilitado

17 Sinais - Avalon Slave

18 Transferências Uma das principais características do barramento Avalon é sua flexibilidade O Avalon oferece diferentes tipos de transferências que permitem adaptar o uso do barramento para diferentes configurações de pares de dispositivos mestre e escravo Um periférico que não executa leitura não precisa ter uma interface que permite este tipo de transferência, sua interface pode permitir apenas o envio de dados a escravos. O formato das interfaces para comunicar periférico e barramento depende exclusivamente dos tipos de transferência que o periférico executa e esta informação deve ser passada pelo desenvolvedor ao montar uma plataforma

19 Tipos de Transações - Leitura
Leitura Fundamental - Mestre Interface mestre requisita uma leitura e receberá o dado requisitado na primeira subida de clock em que o sinal waitrequest estiver setado com nível baixo Leitura Fundamental – Escravo Realizado por escravos assíncronos A interface escravo recebe a requisição de leitura e imediatamente esta requisição é atendida e o dado requisitado é passado para o barramento Leitura com número fixo de wait states Os estados de espera correspondem ao tempo que a interface escravo irá demorar em responder a uma transferência a interface escravo irá apresentar o dado requisitado após um número pré-determinado de ciclos de clock

20 Tipos de Transações - Leitura
Leitura com número de estados de espera controlado pelo periférico O tempo que a interface escravo irá demorar em atender a transferência não é determinado A interface indica ao barramento que não está pronta, quando o sinal é ativado, com nível lógico baixo, o barramento captura o dado requisitado Leitura com tempo de Setup É adotado por periféricos que necessitam esperar que os sinais de controle e endereçamento se ‘estabilizem’ Sinais devem permanecer ativados por um tempo pré-determinado, ao término deste tempo o tipo de transferência é indicado

21 Tipos de Transações - Leitura
Leitura com Latência (fixa ou variável) Requisições de leitura podem ser enviadas a cada ciclo de clock Dados estarão disponíveis apenas depois do um determinado tempo (latência) Também conhecida com pipeline Leitura em Rajada Executa várias requisições de leitura de uma só vez

22 Tipos de Transações - Escrita
Escrita Fundamental A interface mestre inicia uma escrita ativando uma série de sinais, estes sinais devem permanecer ativados enquanto waitrequest vindo do barramento estiver em nível alto Escrita com número fixo de wait states o barramento só poderá passar outra transferência a interface escravo quando o tempo do wait states tiver passado Escrita com número de estados de espera controlado pelo periférico O tempo que a interface escravo irá demorar em atender a transferência não é determinado O barramento pode passar outra transferência ao escravo enquanto espera uma escrita finalizar

23 Tipos de Transações - Leitura
Escrita com tempo de Setup É adotado por periféricos que necessitam esperar que os sinais de controle e endereçamento se ‘estabilizem’ Sinais devem permanecer ativados por um tempo pré-determinado, ao término deste tempo o tipo de transferência é indicado Escrita com Latência (fixa ou variável) Requisições de escrita podem ser enviadas a cada ciclo de clock Dados estarão disponíveis apenas depois do um determinado tempo (latência) Também conhecida com pipeline Leitura em Rajada Executa várias requisições de escrita de uma só vez

24 Exemplo - Slave Read Transfer
Primeiro ciclo inicia com a subida do clock Address e read estão válidos para o escravo Barramento decodifica o endereço e habilita o chipselect Escravo retorna o dado dentro do primeiro ciclo Readdata é capturado na próxima subida do clock

25 Exemplo - Slave Read Transfer (single wait state)
Primeiro ciclo inicia com a subida do clock Address e read estão válidos para o escravo Barramento decodifica o endereço e habilita o chipselect A próxima subida do clock indica o primeiro e único wait state, e captura o byteenable, read e chipselect E–F. Readdata é capturado na próxima subida do clock

26 Exemplo - Slave Read Transfer (multiple wait states)
Primeiro ciclo inicia com a subida do clock Address e read estão válidos para o escravo Barramento decodifica o endereço e habilita o chipselect A próxima subida do clock indica o primeiro . byteenable, read e chipselect estão disponíveis Próxima subida do clock marca o segundo e último wait state F-G. Readdata é capturado na próxima subida do terceiro clock

27 Exemplo - Slave Read Transfer (peripheral controlled wait states)
Primeiro ciclo inicia com a subida do clock Address e read estão válidos para o escravo Barramento decodifica o endereço e habilita o chipselect Porta escrava habilita o waitrequest antes da próxima subida do clock Barramento obtém o waitrequest F-G. Vários ciclos se passam Porta escrava disponibiliza readdata Porta escrava desabilita o waitrequest Barramento captura o readdata

28 Exemplo - Slave Read Transfer (with setup time)
Primeiro ciclo inicia com a subida do clock Address válido para o escravo Barramento decodifica o endereço e habilita o chipselect Subida do clock indica o final do setup-time e início do wait state Barramento habilita o sinal read Subida do clock indica o final dos wait states Porta escrava disponibiliza readdata Barramento captura o readdata

29 Exemplo - Slave Read Transfer With Latency
Primeiro ciclo inicia com a subida do clock, chipselect, read e address são disponibilizados Porta escrava habilita o waitrequest Escravo desabilita o waitrequest e captura o endereço Fim do primeiro ciclo de latência Fim do segundo ciclo de latência. Readdata disponível Barramento habilita address, read e chipselect Outra transação de leitura é iniciada Barramento captura o readdata depois de 2 ciclos de latência

30 Exemplo - Slave Write Transfer
Primeiro ciclo inicia com a subida do clock Address, writedata, write válido para o escravo Barramento decodifica o endereço e habilita o chipselect Barramento captura o writedata, address, write e chipselect na próxima subida do clock

31 Exemplo - Master Read Transfer
Primeiro ciclo inicia com a subida do clock Porta mestre habilita Address, byteenable e read Readdata retorna no mesmo ciclo Barramento captura o readdata

32 Exemplo - Master Read Transfer (with wait states)
Primeiro ciclo inicia com a subida do clock Porta mestre habilita Address, byteenable e read válidos Barramento habilita o waitrequest antes da próxima subida do clock Mastre aceita o waitrequest na subida do clock. Inicia o wait state E-F. mastre armazena as constantes de saída enquanto o waitrequest está habilitado Readdata válido é disponibilizado Barramento desabilita o waitrequest Porta mestre captura o readdata

33 Exemplo - Master Read Transfer With latency
(A)Avalon bus module initiates a read transfer by presenting chipselect, read_n and address for the address phase of the new transfer. (B)The slave port has asserted waitrequest so the previous bus cycle becomes a wait state. The Avalon bus module holds chipselect, read_n and address constant. (C)The slave port deasserts waitrequest and captures address at the rising edge of clk. The address phase ends and the data phase starts here. (D)First latency cycle ends this rising edge of clk. (E)Second latency cycle ends on rising edge of clk. The slave data port presents valid readdata, and the transfer ends here. This edge of clk also marks the beginning of a new read transfer. (F)Avalon bus module asserts address, read_n and chipselect for the next read transfer. (G)Avalon bus module issues another read transfer during the next bus cycle, before the data from the last transfer returns. (H)Avalon bus module captures readdata after two latency cycles. (I)Avalon bus module captures readdata after two latency cycles.

34 Exemplo - Master Write Transfer
Primeiro ciclo inicia com a subida do clock Porta mestre habilita Address, byteenable e write Waitrequest não é habilitado. Transação termina.

35 Exemplo - Master Write Transfer (2 wait requests)
Primeiro ciclo inicia com a subida do clock Porta mestre habilita Address, data e write Waitrequest é habilitado na subida do clock. Início do primeiro waitstate. Constantes de saída não são liberadas Waitrequest é habilitado novamente. Segundo waitstate Waitrequest é desabilitado Mastre desabilita todas as saídas. Transação finalizada

36 Referências Especificação do Barramento Avalon
Altera Disponível em: Modelagem e Integração do Barramento Avalon em Plataformas MPSoC em níveis TL Trabalho de Graduação de Emanoel Xavier

37 Dúvidas? ?


Carregar ppt "Barramento AVALON Adelmario Douglas Francisco Dantas Millena Almeida"

Apresentações semelhantes


Anúncios Google