文章 ID: 000083942 內容類型: 疑難排解 最近查看日期: 2023 年 04 月 18 日

投票(中斷)超時

環境

  • Intel® Quartus® Prime Pro Edition 軟體
  • BUILT IN - ARTICLE INTRO SECOND COMPONENT
    描述

    當與Intel® FPGA可程式化加速卡 N3000 工廠影像同時開啟多個 DMA 處理時,您可能會出現投票(中斷)逾時錯誤。

    逾時錯誤的原因是工廠影像設計有四個 DMA 模組共用一個中斷。

    解決方法

    如果您的應用程式需要多個開放式 DMA 處理,請自訂以下所列的 AFU RTL 設計與軟體代碼:

    1. RTL 設計:

    在預設 afu.sv 檔案中,第 257 行dma_irq會傳送到 avmm_ccip_host_wr 模組的 irq[0]。

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

    自訂您的設計,將每個 irq 從 DMA 模組繪製到不同的位。

    2. 軟體代碼:

    在 fpga_dma.c 檔案 701~702 行中,fpgaRegisterEvent 功能使用 0 作為固定向量 ID。

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

    針對在 RTL 設計中對應到 irq 位的 dma 處理常式,註冊不同的 ids。

    例如,若要將兩個 dma 處理器一起存取 DDRA 和 DDRB,您可以自訂 RTL 代碼,在 DDRA 的afu_dma_0_inst中將dma_irq對應到 irq[0],並在 DDRB 的afu_dma_1_inst中將dma_irq對應為 irq[1]。在軟體代碼中,使用 dma 處理 0 的向量 id 0 存取 DDRA,使用向量 id 1 用於 dma 處理 1,以 fpgaRegisterEvent 功能存取 DDRB。

    相關產品

    本文章適用於 2 產品

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

    這個頁面的內容綜合了英文原始內容的人工翻譯譯文與機器翻譯譯文。本內容是基於一般資訊目的,方便您參考而提供,不應視同完整或準確的內容。如果這個頁面的英文版與譯文之間發生任何牴觸,將受英文版規範及管轄。 查看這個頁面的英文版。