文章 ID: 000083942 内容类型: 故障排除 上次审核日期: 2020 年 07 月 26 日

插值(中断)超时

环境

  • 英特尔® Quartus® Prime Pro Edition
  • BUILT IN - ARTICLE INTRO SECOND COMPONENT
    说明

    如果使用英特尔® 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 行中,FPGARegidiEvent 函数使用 0 作为固定的矢量 ID。

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

    为您的 dma 句柄注册不同的 ID,它们在 RTL 设计中被映射到 irq 位。

    例如,要将两个 dma 句柄一起访问 DDRA 和 DDRB,您可以自定义 RTL 代码,以在 dma_irq afu_dma_0_inst中映射到 irq[0](用于 DDRA),并在 afu_dma_1_inst中将dma_irq映射到 DDRB 的 irq[1]。在软件代码中,使用矢量 ID 0 让 dma handle 0 访问 DDRA,使用 dma handle 1 的矢量 ID 1 访问 FPGARegregventevent 功能中的 DDRB。

    相关产品

    本文适用于 2 产品

    英特尔® Arria® 10 FPGA 和 SoC FPGA
    英特尔® FPGA PAC N3000

    本页面上的内容是原始英文内容的人工翻译与计算机翻译的组合。我们提供此内容是为了您的便利并且仅供参考,未必完整或准确。如果本页面的英文版与翻译版之间存在任何冲突,应以英文版为准。 查看此页面的英语版本。