本篇博文主要講解在 PL 中如何使用 AXI Interrupt Controller (INTC) 的級聯(lián)模式,將 IP 核超過 32 個的中斷連接到 PS 上。
在 AMD Vivado Design Suite 設計中使用了 AMD AXI GPIO 中斷。
設計示例是以 VCK190 評估板為目標創(chuàng)建,使用的是 Vivado 2020.2 版本。中斷功能在 PetaLinux 2020.2 上經(jīng)過了測試。
AXI GPIO:
General Purpose Input/Output (GPIO) 核提供輸入輸出訪問的接口,用于對接器件的交互。該核還可用于控制外部器件的行為。
中斷:
在 AXI GPIO 中必須先為對應的 GPIO 通道啟用中斷,這樣即可從該通道讀取中斷狀態(tài)。使用 AXI GPIO 自定義中的“Enable Interrupt”選項來啟用中斷。

對于輸入模式,gpio_input 管腳連接到 VCK190 的如下按鈕 (PUSH BUTTON):
gpio_input(0) = GPIO_SW15
gpio_input(1) = GPIO_SW16

AXI INTC:
AXI Interrupt Controller (INTC) 核可將來自外設器件的多個中斷輸入集中到系統(tǒng)處理器的單一中斷輸入上。寄存器用于檢查、啟用和確認中斷。

此示例的主要目的是將超過 16 個中斷連接到 PS。AXI INTC 核可滿足此需求。使用單一 AXI INTC 塊的情況下最多可連接 32 個中斷,并且還可使用級聯(lián)。
在級聯(lián)模式下,有不少于兩個 AXI INTC 實例連接到同一個處理器。參數(shù) C_EN_CASCADE_MODE 表示的“Enable Cascade Interrupt Mode”和參數(shù) C_CASCADE_MASTER 表示的“Cascade Mode Master”都需要在此模式下配置。
注釋:必須使用主 AXI INTC 實例的 irq_in 端口或第 31 個中斷位,來實現(xiàn)從次級 AXI INTC 實例的級聯(lián)。
在下文描述 Concat IP 的多個圖例中,可以看到中斷的連接方式。
塊設計:
下文解釋了設計中使用的 IP 及其連接。
Concat IP:
Concat IP 核可提供相應機制來將不同寬度的總線信號組合到單一總線內(nèi)。

從 IP catalog 添加 Concat 塊,然后雙擊 IP(如下所示)以打開“Re-customize IP” 對話框。

在上圖中,將“Number of Ports”參數(shù)設置為期望的輸入端口數(shù)。在此示例中,所選端口數(shù)量為 32。
完成 IP 自定義后的結果如下:

如前所述,輸出端口 AXI_INTC_0 連接到下一個 AXI_INTC_1 的 irq_in 中斷輸入端口。

AXI_INTC_1 的輸出連接到 AMD Versal 自適應 SoC CIPS 塊的 pl_ps_irq0 端口:

請驗證設計并遵循其余步驟進行操作以生成比特流。
導出硬件,用于構建 PetaLinux 鏡像。
PetaLinux:
內(nèi)核配置:
在 Menuconfig 中啟用以下選項。默認情況下,這些選項均已啟用,但您應核實其狀態(tài),以防萬一。

向設備樹添加按鈕:
按鈕僅可用于 Input GPIO 應用程序。
創(chuàng)建的每個子節(jié)點均可控制 GPIO 中對應的單個位。在 dts 文件中的“gpio-keys”鍵節(jié)點下,根據(jù)設計,為按鈕 (Push Buttons) 創(chuàng)建含如下名稱的子節(jié)點:

完成此操作后,請啟動 Linux。
您可在 cat /proc/interrupts 中看到按鈕 SW15 和 SW16 的標簽。

-
amd
+關注
關注
25文章
5684瀏覽量
139947 -
soc
+關注
關注
40文章
4576瀏覽量
229133 -
中斷
+關注
關注
5文章
917瀏覽量
43755 -
評估板
+關注
關注
1文章
931瀏覽量
31178 -
Versal
+關注
關注
1文章
173瀏覽量
8471
原文標題:開發(fā)者分享|AMD Versal? 自適應 SoC 上的級聯(lián)模式示例
文章出處:【微信號:gh_2d1c7e2d540e,微信公眾號:XILINX開發(fā)者社區(qū)】歡迎添加關注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
在AMD Versal自適應SoC上使用QEMU+協(xié)同仿真示例
使用Aurora 6466b協(xié)議實現(xiàn)AMD UltraScale+ FPGA與AMD Versal自適應SoC的對接
【ALINX 技術分享】AMD Versal AI Edge 自適應計算加速平臺之 Versal 介紹(2)
AMD Versal自適應SoC內(nèi)置自校準的工作原理
Versal? 自適應 SoC 助力 8K 處理 – 為 8K 做好準備(3)
Versal自適應SoC系統(tǒng)集成和 確認方法指南
AMD率先推出符合DisplayPort? 2.1 8K視頻標準的FPGA和自適應SoC
AMD發(fā)布第二代Versal自適應SoC,AI嵌入式領域再提速
AMD Versal? Adaptive SoC CPM PCIE PIO EP設計CED示例
AMD Versal自適應SoC CPM5 QDMA的Tandem PCIe啟動流程介紹
AMD Versal自適應SoC DDRMC如何使用Micron仿真模型進行仿真
AMD Versal自適應SoC器件Advanced Flow概覽(上)
AMD Versal自適應SoC器件Advanced Flow概覽(下)
AMD Versal自適應SoC上的級聯(lián)模式示例
評論