設(shè)計(jì)示例是使用 Vivado 2020.2 版本創(chuàng)建的,評(píng)估板使用的是 VCK190 評(píng)估板。
Versal
Versal 架構(gòu)將“Scalar Engine”(標(biāo)量引擎)、“Adaptable Engine”(自適應(yīng)引擎)和“Intelligent Engine”(智能引擎)這三種不同類型的引擎與豐富的連接和通信功能以及片上網(wǎng)絡(luò) (NoC) 有機(jī)結(jié)合,從而支持實(shí)現(xiàn)覆蓋整個(gè)器件的無縫式存儲(chǔ)器映射訪問。
智能引擎包括:
SIMD VLIW AI 引擎,適用于自適應(yīng)推斷和高級(jí)信號(hào)處理計(jì)算
DSP 引擎,適用于定點(diǎn)運(yùn)算、浮點(diǎn)運(yùn)算和復(fù)雜的 MAC 運(yùn)算。
自適應(yīng)引擎將可編程邏輯塊與存儲(chǔ)器有機(jī)結(jié)合,它具備專為應(yīng)對(duì)高計(jì)算密度需求而設(shè)計(jì)的架構(gòu)。
標(biāo)量引擎包括 Arm Cortex-A72 和 Cortex-R5 處理器,支持計(jì)算密集型任務(wù)。
片上網(wǎng)絡(luò) (NoC)
片上網(wǎng)絡(luò) (NoC) 是一個(gè) AXI 互連網(wǎng)絡(luò),用于在可編程邏輯 (PL)、處理器系統(tǒng) (PS) 和其它硬核塊中的 IP 端點(diǎn)之間共享數(shù)據(jù)。
此基礎(chǔ)架構(gòu)覆蓋整個(gè)器件,基于專有的切換開關(guān)形成高速集成的數(shù)據(jù)路徑。
模塊框圖
Vivado 步驟
步驟 1:
以 VCK190 評(píng)估板為目標(biāo)創(chuàng)建工程,并在 IP integrator 內(nèi)創(chuàng)建塊設(shè)計(jì)。
步驟 2:
添加 versal_cips IP (Control, Interfaces and Processing System),并運(yùn)行塊自動(dòng)化設(shè)置。在設(shè)置中配置 NoC 的存儲(chǔ)器控制器 (DDR4),并將 PL 時(shí)鐘和 PL 復(fù)位的數(shù)量配置為 1。
步驟 3:
雙擊打開 NoC IP,在“General”(常規(guī))選項(xiàng)卡中進(jìn)行以下設(shè)置:
Number of AXI Master Interfaces(AXI 主接口數(shù))= 1
Number of AXI Clocks(AXI 時(shí)鐘數(shù))= 7
步驟 4:
轉(zhuǎn)至“Connectivity”(連接)選項(xiàng)卡,檢查 S0xAXI 與 M00_AXI 之間的連接,然后單擊“OK”(確定)。
步驟 5:
將 AXI BRAM 添加到塊設(shè)計(jì)中,單擊“Run Connection Automation”(運(yùn)行自動(dòng)連接),然后選中 pl_clk0 作為從接口的時(shí)鐘源。
步驟 6:
再次運(yùn)行“Run Connection Automation”,配置 ext_reset_in接口。
步驟 7:
運(yùn)行“validation”(確認(rèn))步驟,確認(rèn)成功后,檢查“Address Editor”(地址編輯器)選項(xiàng)卡。
步驟 8:
為 BD 創(chuàng)建頂層文件,運(yùn)行綜合與實(shí)現(xiàn),然后生成器件鏡像。
步驟 9:
導(dǎo)出硬件設(shè)計(jì)以獲取 XSA 文件。
Vitis 步驟
步驟 1:
在 Vitis 中創(chuàng)建新的應(yīng)用工程,然后切換至“Create a new platform from hardware”(基于硬件創(chuàng)建新平臺(tái))選項(xiàng)卡。
單擊“+”,選擇從 Vivado 導(dǎo)出的 XSA 文件。
步驟 2:
提供工程名稱,并選擇處理器。
步驟 3:
選擇 Hello World 模板,然后單擊“Finish”(完成)。
代碼修改
創(chuàng)建完應(yīng)用工程后,在 main.c 中修改代碼對(duì) AXI BRAM進(jìn)行讀寫。
Xil_Out64 函數(shù)用于將數(shù)據(jù)寫入 64 位地址,而Xil_In32 函數(shù)則用于地址中讀取 32 位數(shù)據(jù)。
示例:
寫入數(shù)據(jù) API
Xil_Out64(bram_address_write,write_data);
讀取數(shù)據(jù) API
read_data=Xil_In32(bram_address_read);
代碼快照:
運(yùn)行設(shè)計(jì)
連接到VCK190 評(píng)估板,并設(shè)置啟動(dòng)模式為 JTAG 啟動(dòng)模式,然后運(yùn)行應(yīng)用。
控制臺(tái)輸出示例:
審核編輯:劉清
-
APU
+關(guān)注
關(guān)注
0文章
141瀏覽量
23696 -
NoC
+關(guān)注
關(guān)注
0文章
38瀏覽量
11720 -
AXI
+關(guān)注
關(guān)注
1文章
127瀏覽量
16598 -
BRAM
+關(guān)注
關(guān)注
0文章
41瀏覽量
10942
原文標(biāo)題:通過 NoC 從 PS-APU 對(duì) AXI BRAM 執(zhí)行基本讀寫操作
文章出處:【微信號(hào):Open_FPGA,微信公眾號(hào):OpenFPGA】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論