문서 ID: 000083942 콘텐츠 형태: 문제 해결 마지막 검토일: 2020-07-26

폴(인터럽트) 시간 제한

환경

  • 인텔® Quartus® Prime Pro Edition
  • BUILT IN - ARTICLE INTRO SECOND COMPONENT
    설명

    인텔® FPGA 프로그래밍 가능 가속 카드 N3000 공장 이미지와 동시에 여러 DMA 핸들을 열면 Poll(인터럽트) 시간 초과 오류가 발생할 수 있습니다.

    시간 제한 오류는 4개의 DMA 블록이 하나의 인터럽트 공유를 갖는 공장 이미지 디자인 때문입니다.

    해결 방법

    응용 프로그램에 여러 개의 개방형 DMA 핸들이 필요한 경우 아래 나열된 대로 AFU RTL 설계 및 소프트웨어 코드를 사용자 정의하십시오.

    1. RTL 설계:

    기본 afu.sv 파일인 줄 257에서 dma_irq avmm_ccip_host_wr 모듈의 irq[0]로 전송됩니다.

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

    DMA 블록에서 다른 비트로 각 irq를 매핑하도록 설계를 사용자 정의합니다.

    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 핸들에 대해 다른 ID를 등록하십시오.

    예를 들어, DDRA 및 DDRB에 두 개의 dma 핸들이 함께 있는 DDRA 및 DDRB에 액세스하려면 RTL 코드를 사용자 정의하여 DDRA용 afu_dma_0_inst dma_irq irq[0]으로 매핑하고 dma_irq DDRB용 afu_dma_1_inst irq[1]로 매핑할 수 있습니다. 소프트웨어 코드에서 dma 핸들 0에 벡터 ID 0을 사용하여 DDRA에 액세스하고, dma 핸들 1의 벡터 ID 1을 사용하여 fpgaRegisterEvent 기능에서 DDRB에 액세스하십시오.

    관련 제품

    이 문서는 다음 항목에 적용됩니다. 2 제품

    인텔® Arria® 10 FPGA 및 SoC FPGA
    인텔® FPGA PAC N3000

    이 페이지의 콘텐츠는 원본 영어 콘텐츠에 대한 사람 번역 및 컴퓨터 번역의 조합으로 완성되었습니다. 이 콘텐츠는 편의와 일반적인 정보 제공을 위해서만 제공되었으며, 완전하거나 정확한 것으로 간주되어선 안 됩니다. 이 페이지의 영어 버전과 번역 간 모순이 있는 경우, 영어 버전이 우선적으로 적용됩니다. 이 페이지의 영어 버전을 확인하십시오.