ID Artikel: 000083942 Jenis Konten: Pemecahan Masalah Terakhir Ditinjau: 26/07/2020

Waktu polling (interupsi)

Lingkungan

    Intel® Quartus® Prime Edisi Pro
BUILT IN - ARTICLE INTRO SECOND COMPONENT
Deskripsi

Ketika beberapa handle DMA dibuka secara bersamaan dengan gambar pabrik Intel® FPGA Programmable Acceleration Card N3000, Anda mungkin mendapatkan galat waktu polling (interupsi).

Kesalahan waktu habis disebabkan oleh desain gambar pabrik yang memiliki empat blok DMA yang berbagi satu interupsi.

Resolusi

Jika aplikasi Anda memerlukan beberapa pegangan DMA terbuka, maka kustomisasi desain AFU RTL dan kode perangkat lunak seperti yang tercantum di bawah ini:

1. Desain RTL:

Dalam file afu.sv bawaan, baris 257, dma_irq dikirim ke modul avmm_ccip_host_wr irq[0].

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

Kustomisasi desain Anda untuk memetakan setiap iq dari blok DMA ke bit yang berbeda.

2. Kode perangkat lunak:

Dalam file fpga_dma.c, baris 701~702, fungsi fpgaRegisterEvent menggunakan 0 sebagai id vektor tetap.

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

Daftarkan id yang berbeda untuk handle dma Anda yang dipetakan ke bit irq dalam desain RTL.

Misalnya, untuk mengakses DDRA dan DDRB dengan dua dma handle bersamaan, Anda dapat menyesuaikan kode RTL Anda untuk memetakan dma_irq ke iq[0] dalam afu_dma_0_inst untuk DDRA, dan memetakan dma_irq ke iq[1] di afu_dma_1_inst untuk DDRB. Dalam kode perangkat lunak, gunakan vector id 0 untuk dma handle 0 untuk mengakses DDRA, gunakan vector id 1 untuk dma handle 1 untuk mengakses DDRB dalam fungsi fpgaRegisterEvent.

Produk Terkait

Artikel ini berlaku untuk 2 produk

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

1

Konten pada halaman ini adalah kombinasi terjemahan manusia dan komputer dari konten asli berbahasa Inggris. Konten ini disediakan untuk kenyamanan Anda dan hanya untuk informasi umum dan tidak boleh dianggap lengkap atau akurat. Jika ada kontradiksi antara versi bahasa Inggris halaman ini dan terjemahannya, versi bahasa Inggris yang akan mengatur dan mengendalikan. Lihat versi bahasa Inggris halaman ini.