RapidIO®: implementação personalizada usando Avalon® streaming pass-through

author-image

Por

Este exemplo de design demonstra o uso da interface de transmissão Avalon streaming (Avalon-ST) no RapidIO como uma plataforma para implementar transações personalizadas simples. Ao usar esta interface, os usuários têm mais flexibilidade em termos de escrita e organização de formatos de pacotes, além de outras funções de módulo regular na camada lógica.

Para simplificar este exemplo de projeto, outros módulos de camada lógica, como o Mestre de E/S e o Slave, estão desativados. Este design apresenta um Link Serial RapidIO de 2,5 Gbaud de 1x, com a interface de passagem Avalon-ST habilitada na GUI.

A visão geral da arquitetura de design é mostrada na figura abaixo:

O fluxo de processo

  1. Porta inicializada (link rapidIO up)
  2. Inicialização rapidIO
  3. Enviar pacotes de gravação (semelhantes às transações NWrite)
    • Controlador de sistema A comanda o Gerador de pacotes para enviar pacotes para RapidIO A
    • Os pacotes são enviados através do link para RapidIO B e armazenados na RAM pelo controlador de sistema B
    • O pacote de gravação pode ser ajustável para tamanho de carga útil e número de pacotes
  4. Enviar mensagens de campainha
    • Controlador de sistema A comanda o Gerador de pacotes para enviar mensagens de campainha para RapidIO A
    • As mensagens de campainha são enviadas através do link para RapidIO B. Eles são recebidos e processados pelo processador Doorbell no controlador de sistema B
  5. As mensagens da campainha levam instruções que são interpretadas pelo processador Doorbell. Há duas instruções de exemplo: Inverta pacotes e recupera dados
    • Para pacotes invertidos, o processador Doorbell lê dados da RAM, os inverte e os armazena na RAM (pode estar em endereço diferente)
    • Para recuperar dados, o processador Doorbell lê dados da RAM e os envia de volta para RapidIO A
    • Essas duas instruções mostram que o RapidIO A pode iniciar itens de ação para o RapidIO B ser executado. Você pode usar isso para criar pacotes de instruções específicos para suas próprias implementações

Esta implementação de design de baixo nível também pode ser usada como exemplo para fazer as seguintes personalizações:

  1. Adicionar ou alterar parâmetros de pacote ou formato (por exemplo, endereço-carga-carga-endereço-carga) ou transmissão de dados
  2. Lide com sequência de envio de recursos diferentes em uma porta em vez de em base redonda na camada de transporte
  3. Suporte a funções personalizadas que geralmente não são incluídas pela função RapidIO MegaCore

No entanto, para lidar com as personalizações mencionadas acima, os usuários precisam preencher manualmente os campos físico e de camada de transporte de um cabeçalho de pacote. Outras etapas, como decodificação de formato de pacote e controle do tráfego de pacotes, também são necessárias para o funcionamento suave desta interface Avalon-ST Pass-Through.

Baixe o arquivo .zip usado neste exemplo de design: avST_passthr_interface.zip

Nota: este exemplo de projeto foi testado na simulação.

O conteúdo desta página é uma combinação de tradução humana e por computador do conteúdo original em inglês. Este conteúdo é fornecido para sua conveniência e apenas para informação geral, e não deve ser considerado completo ou exato. Se houver alguma contradição entre a versão em inglês desta página e a tradução, a versão em inglês prevalecerá e será a determinante. Exibir a versão em inglês desta página.