ID do artigo: 000083942 Tipo de conteúdo: Solução de problemas Última revisão: 26/07/2020

Tempo de enquete (interrupção)

Ambiente

  • Intel® Quartus® Prime Pro Edition
  • BUILT IN - ARTICLE INTRO SECOND COMPONENT
    Descrição

    Quando várias alças DMA são abertas simultaneamente com a imagem de fábrica da placa de aceleração programável Intel® FPGA N3000, você pode obter erros de tempo de interrupção da pesquisa.

    Os erros de tempo de interrupção são devido ao design de imagem de fábrica ter quatro blocos DMA compartilhando uma interrupção.

    Resolução

    Se a sua aplicação exigir várias alças DMA abertas, personalize o design E o código de software AFU RTL conforme listado abaixo:

    1. Projeto RTL:

    No arquivo afu.sv padrão, a linha 257, dma_irq é enviada para irq[0] do módulo avmm_ccip_host_wr.

    .irq({3'b000, dma_irq}),

    Personalize seu design para mapear cada irq de blocos de DMA para um bit diferente.

    2. Código de software:

    No arquivo fpga_dma.c, linha 701~702, a função fpgaRegisterEvent usa 0 como id vetorial fixo.

    res = fpgaRegisterEvent(dma_h->fpga_h, FPGA_EVENT_INTERRUPT, dma_h->eh, 0 /*vector id */);

    Registre diferentes ids para suas alças dma que são mapeadas para os bits irq no design RTL.

    Por exemplo, para acessar DDRA e DDRB com duas alças dma juntas, você pode personalizar seu código RTL para mapear dma_irq para irq[0] em afu_dma_0_inst para DDRA, e mapear dma_irq para irq[1] em afu_dma_1_inst para DDRB. No código de software, use a id vetorial 0 para lidar com dma 0 para acessar dDRA, use a id vetorial 1 para lidar com dma 1 para acessar o DDRB na função fpgaRegisterEvent.

    Produtos relacionados

    Este artigo aplica-se a 2 produtos

    FPGAs Intel® Arria® 10 e FPGAs SoC
    FPGA Intel® PAC N3000

    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.