ID articolo: 000083942 Tipo di contenuto: Risoluzione dei problemi Ultima recensione: 26/07/2020

Timeout sondaggio (interrupt)

Ambiente

  • Intel® Quartus® Prime Pro Edition
  • BUILT IN - ARTICLE INTRO SECOND COMPONENT
    Descrizione

    Quando più handle DMA vengono aperti contemporaneamente con l'immagine di fabbrica della scheda di accelerazione programmabile Intel® FPGA N3000, è possibile che si verifichino errori di timeout poll(interrupt).

    Gli errori di timeout sono dovuti alla progettazione dell'immagine di fabbrica con quattro blocchi DMA che condividono un interrupt.

    Risoluzione

    Se l'applicazione richiede più handle DMA aperti, personalizzare la progettazione RTL AFU e il codice software come indicato di seguito:

    1. Progettazione RTL:

    Nel file afu.sv predefinito, riga 257, dma_irq viene inviato all'irq[0] del modulo avmm_ccip_host_wr.

    irq({3'b000, dma_irq}),

    Personalizza il tuo design per mappare ogni irq dai blocchi DMA a un bit diverso.

    2. Codice software:

    Nel file fpga_dma.c, riga 701~702, la funzione fpgaRegisterEvent utilizza 0 come ID vettoriale fisso.

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

    Registrate ID diversi per i vostri handle dma che sono mappati ai bit irq nella progettazione RTL.

    Ad esempio, per accedere a DDRA e DDRB con due handle dma insieme, è possibile personalizzare il codice RTL per mappare dma_irq a irq[0] in afu_dma_0_inst per DDRA e mappare dma_irq a irq[1] in afu_dma_1_inst per DDRB. Nel codice software, utilizzare vector id 0 per dma handle 0 per accedere a DDRA, utilizzare vector id 1 per dma handle 1 per accedere a DDRB nella funzione fpgaRegisterEvent.

    Prodotti correlati

    Questo articolo si applica a 2 prodotti

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

    Disclaimer

    1

    Tutti i post e l'utilizzo dei contenuti su questo sito sono soggetti ai Termini di utilizzo Intel.com.

    Il contenuto di questa pagina è il risultato della combinazione tra la traduzione umana e quella automatica del contenuto originale in lingua inglese. Questo contenuto è fornito soltanto a titolo di informazione generale e non ha pretese di completezza o accuratezza. In presenza di contraddizioni tra la versione in lingua inglese di questa pagina e la sua traduzione, fa fede la versione inglese. Visualizza la versione in lingua inglese di questa pagina.