本篇博文主要講解在 PL 中如何使用 AXI Interrupt Controller (INTC) 的級(jí)聯(lián)模式,將 IP 核超過(guò) 32 個(gè)的中斷連接到 PS 上。
在 AMD Vivado Design Suite 設(shè)計(jì)中使用了 AMD AXI GPIO 中斷。
設(shè)計(jì)示例是以 VCK190 評(píng)估板為目標(biāo)創(chuàng)建,使用的是 Vivado 2020.2 版本。中斷功能在 PetaLinux 2020.2 上經(jīng)過(guò)了測(cè)試。
AXI GPIO:
General Purpose Input/Output (GPIO) 核提供輸入輸出訪問(wèn)的接口,用于對(duì)接器件的交互。該核還可用于控制外部器件的行為。
中斷:
在 AXI GPIO 中必須先為對(duì)應(yīng)的 GPIO 通道啟用中斷,這樣即可從該通道讀取中斷狀態(tài)。使用 AXI GPIO 自定義中的“Enable Interrupt”選項(xiàng)來(lái)啟用中斷。
對(duì)于輸入模式,gpio_input 管腳連接到 VCK190 的如下按鈕 (PUSH BUTTON):
gpio_input(0) = GPIO_SW15
gpio_input(1) = GPIO_SW16
AXI INTC:
AXI Interrupt Controller (INTC) 核可將來(lái)自外設(shè)器件的多個(gè)中斷輸入集中到系統(tǒng)處理器的單一中斷輸入上。寄存器用于檢查、啟用和確認(rèn)中斷。
此示例的主要目的是將超過(guò) 16 個(gè)中斷連接到 PS。AXI INTC 核可滿(mǎn)足此需求。使用單一 AXI INTC 塊的情況下最多可連接 32 個(gè)中斷,并且還可使用級(jí)聯(lián)。
在級(jí)聯(lián)模式下,有不少于兩個(gè) AXI INTC 實(shí)例連接到同一個(gè)處理器。參數(shù) C_EN_CASCADE_MODE 表示的“Enable Cascade Interrupt Mode”和參數(shù) C_CASCADE_MASTER 表示的“Cascade Mode Master”都需要在此模式下配置。
注釋?zhuān)罕仨毷褂弥?AXI INTC 實(shí)例的 irq_in 端口或第 31 個(gè)中斷位,來(lái)實(shí)現(xiàn)從次級(jí) AXI INTC 實(shí)例的級(jí)聯(lián)。
在下文描述 Concat IP 的多個(gè)圖例中,可以看到中斷的連接方式。
塊設(shè)計(jì):
下文解釋了設(shè)計(jì)中使用的 IP 及其連接。
Concat IP:
Concat IP 核可提供相應(yīng)機(jī)制來(lái)將不同寬度的總線信號(hào)組合到單一總線內(nèi)。
從 IP catalog 添加 Concat 塊,然后雙擊 IP(如下所示)以打開(kāi)“Re-customize IP” 對(duì)話框。
在上圖中,將“Number of Ports”參數(shù)設(shè)置為期望的輸入端口數(shù)。在此示例中,所選端口數(shù)量為 32。
完成 IP 自定義后的結(jié)果如下:
如前所述,輸出端口 AXI_INTC_0 連接到下一個(gè) AXI_INTC_1 的 irq_in 中斷輸入端口。
AXI_INTC_1 的輸出連接到 AMD Versal 自適應(yīng) SoC CIPS 塊的 pl_ps_irq0 端口:
請(qǐng)驗(yàn)證設(shè)計(jì)并遵循其余步驟進(jìn)行操作以生成比特流。
導(dǎo)出硬件,用于構(gòu)建 PetaLinux 鏡像。
PetaLinux:
內(nèi)核配置:
在 Menuconfig 中啟用以下選項(xiàng)。默認(rèn)情況下,這些選項(xiàng)均已啟用,但您應(yīng)核實(shí)其狀態(tài),以防萬(wàn)一。
向設(shè)備樹(shù)添加按鈕:
按鈕僅可用于 Input GPIO 應(yīng)用程序。
創(chuàng)建的每個(gè)子節(jié)點(diǎn)均可控制 GPIO 中對(duì)應(yīng)的單個(gè)位。在 dts 文件中的“gpio-keys”鍵節(jié)點(diǎn)下,根據(jù)設(shè)計(jì),為按鈕 (Push Buttons) 創(chuàng)建含如下名稱(chēng)的子節(jié)點(diǎn):
完成此操作后,請(qǐng)啟動(dòng) Linux。
您可在 cat /proc/interrupts 中看到按鈕 SW15 和 SW16 的標(biāo)簽。
-
amd
+關(guān)注
關(guān)注
25文章
5622瀏覽量
138353 -
soc
+關(guān)注
關(guān)注
38文章
4472瀏覽量
226096 -
中斷
+關(guān)注
關(guān)注
5文章
911瀏覽量
43317 -
評(píng)估板
+關(guān)注
關(guān)注
1文章
816瀏覽量
30710 -
Versal
+關(guān)注
關(guān)注
1文章
170瀏覽量
8279
原文標(biāo)題:開(kāi)發(fā)者分享|AMD Versal? 自適應(yīng) SoC 上的級(jí)聯(lián)模式示例
文章出處:【微信號(hào):gh_2d1c7e2d540e,微信公眾號(hào):XILINX開(kāi)發(fā)者社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
在AMD Versal自適應(yīng)SoC上使用QEMU+協(xié)同仿真示例

【ALINX 技術(shù)分享】AMD Versal AI Edge 自適應(yīng)計(jì)算加速平臺(tái)之 Versal 介紹(2)

Versal? 自適應(yīng) SoC 助力 8K 處理 – 為 8K 做好準(zhǔn)備(3)
Versal 自適應(yīng)SoC設(shè)計(jì)指南

Versal自適應(yīng)SoC系統(tǒng)集成和 確認(rèn)方法指南

AMD率先推出符合DisplayPort? 2.1 8K視頻標(biāo)準(zhǔn)的FPGA和自適應(yīng)SoC
AMD發(fā)布第二代Versal自適應(yīng)SoC,AI嵌入式領(lǐng)域再提速
AMD Versal? Adaptive SoC CPM PCIE PIO EP設(shè)計(jì)CED示例

第二代AMD Versal Prime系列自適應(yīng)SoC的亮點(diǎn)

AMD Versal自適應(yīng)SoC CPM5 QDMA的Tandem PCIe啟動(dòng)流程介紹

AMD Versal自適應(yīng)SoC DDRMC如何使用Micron仿真模型進(jìn)行仿真

AMD Versal自適應(yīng)SoC器件Advanced Flow概覽(上)

AMD Versal自適應(yīng)SoC器件Advanced Flow概覽(下)

第二代AMD Versal Premium系列SoC滿(mǎn)足各種CXL應(yīng)用需求

評(píng)論