0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

在Versal中通過NoC從PS-APU對AXI BRAM執(zhí)行基本讀寫操作

XILINX開發(fā)者社區(qū) ? 來源:XILINX開發(fā)者社區(qū) ? 作者:XILINX開發(fā)者社區(qū) ? 2022-11-09 10:24 ? 次閱讀

本篇博文旨在演示如何通過 NoC 從 Versal 應(yīng)用處理單元 (APU) 訪問 AXI BRAM。

設(shè)計示例是使用 Vivado 2020.2 版本創(chuàng)建的,評估板使用的是 VCK190 評估板。

Versal

Versal 架構(gòu)將“Scalar Engine”(標(biāo)量引擎)、“Adaptable Engine”(自適應(yīng)引擎)和“Intelligent Engine”(智能引擎)這三種不同類型的引擎與豐富的連接和通信功能以及片上網(wǎng)絡(luò) (NoC) 有機(jī)結(jié)合,從而支持實(shí)現(xiàn)覆蓋整個器件的無縫式存儲器映射訪問。

智能引擎包括:

SIMD VLIW AI 引擎,適用于自適應(yīng)推斷和高級信號處理計算

DSP 引擎,適用于定點(diǎn)運(yùn)算、浮點(diǎn)運(yùn)算和復(fù)雜的 MAC 運(yùn)算。

自適應(yīng)引擎將可編程邏輯塊與存儲器有機(jī)結(jié)合,它具備專為應(yīng)對高計算密度需求而設(shè)計的架構(gòu)。
標(biāo)量引擎包括 Arm Cortex-A72 和 Cortex-R5 處理器,支持計算密集型任務(wù)。

片上網(wǎng)絡(luò) (NoC)

片上網(wǎng)絡(luò) (NoC) 是一個 AXI 互連網(wǎng)絡(luò),用于在可編程邏輯 (PL)、處理器系統(tǒng) (PS) 和其它硬核塊中的 IP 端點(diǎn)之間共享數(shù)據(jù)。
此基礎(chǔ)架構(gòu)覆蓋整個器件,基于專有的切換開關(guān)形成高速集成的數(shù)據(jù)路徑。

模塊框圖

218a5e1a-5f5b-11ed-8abf-dac502259ad0.png

Vivado 步驟

步驟 1:

以 VCK190 評估板為目標(biāo)創(chuàng)建工程,并在 IP integrator 內(nèi)創(chuàng)建塊設(shè)計。
步驟 2:

添加 versal_cips IP (Control, Interfaces and Processing System),并運(yùn)行塊自動化設(shè)置。在設(shè)置中配置 NoC 的存儲器控制器 (DDR4),并將 PL 時鐘和 PL 復(fù)位的數(shù)量配置為 1。

21a7ab32-5f5b-11ed-8abf-dac502259ad0.png

步驟 3:

雙擊打開 NoC IP,在“General”(常規(guī))選項(xiàng)卡中進(jìn)行以下設(shè)置:
Number of AXI Master Interfaces(AXI 主接口數(shù))= 1
Number of AXI Clocks(AXI 時鐘數(shù))= 7

21d4afec-5f5b-11ed-8abf-dac502259ad0.png

步驟 4:

轉(zhuǎn)至“Connectivity”(連接)選項(xiàng)卡,檢查 S0xAXI 與 M00_AXI 之間的連接,然后單擊“OK”(確定)。

2212c926-5f5b-11ed-8abf-dac502259ad0.png

步驟 5:

將 AXI BRAM 添加到塊設(shè)計中,單擊“Run Connection Automation”(運(yùn)行自動連接),然后選中 pl_clk0 作為從接口的時鐘源。

2237f778-5f5b-11ed-8abf-dac502259ad0.png

步驟 6:

再次運(yùn)行“Run Connection Automation”,配置 ext_reset_in接口。

225a81d0-5f5b-11ed-8abf-dac502259ad0.png

步驟 7:

運(yùn)行“validation”(確認(rèn))步驟,確認(rèn)成功后,檢查“Address Editor”(地址編輯器)選項(xiàng)卡。

22bcdd30-5f5b-11ed-8abf-dac502259ad0.png

步驟 8:

為 BD 創(chuàng)建頂層文件,運(yùn)行綜合與實(shí)現(xiàn),然后生成器件鏡像。

步驟 9:

導(dǎo)出硬件設(shè)計以獲取 XSA 文件。

Vitis 步驟

步驟 1:

在 Vitis 中創(chuàng)建新的應(yīng)用工程,然后切換至“Create a new platform from hardware”(基于硬件創(chuàng)建新平臺)選項(xiàng)卡。
單擊“+”,選擇從 Vivado 導(dǎo)出的 XSA 文件。

22fe1d7c-5f5b-11ed-8abf-dac502259ad0.png

步驟 2:

提供工程名稱,并選擇處理器。

2339d31c-5f5b-11ed-8abf-dac502259ad0.png

步驟 3:

選擇 Hello World 模板,然后單擊“Finish”(完成)。

2368edfa-5f5b-11ed-8abf-dac502259ad0.png

代碼修改

創(chuàng)建完應(yīng)用工程后,在 main.c 中修改代碼對 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);

代碼快照:

23bb48fc-5f5b-11ed-8abf-dac502259ad0.png

運(yùn)行設(shè)計
連接到VCK190 評估板,并設(shè)置啟動模式為 JTAG 啟動模式,然后運(yùn)行應(yīng)用。
控制臺輸出示例:

2506e680-5f5b-11ed-8abf-dac502259ad0.png

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • NoC
    NoC
    +關(guān)注

    關(guān)注

    0

    文章

    38

    瀏覽量

    11736
  • AXI
    AXI
    +關(guān)注

    關(guān)注

    1

    文章

    127

    瀏覽量

    16631
  • Versal
    +關(guān)注

    關(guān)注

    1

    文章

    158

    瀏覽量

    7668

原文標(biāo)題:開發(fā)者分享|在 Versal 中通過 NoC 從 PS-APU 對 AXI BRAM 執(zhí)行基本讀寫操作

文章出處:【微信號:gh_2d1c7e2d540e,微信公眾號:XILINX開發(fā)者社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    【FPGA ZYNQ Ultrascale+ MPSOC教程】33.BRAM實(shí)現(xiàn)PS與PL交互

    有時CPU需要與PL進(jìn)行小批量的數(shù)據(jù)交換,可以通過BRAM模塊,也就是Block RAM實(shí)現(xiàn)此要求。本章通過Zynq的GP Master接口讀寫PL端的
    的頭像 發(fā)表于 02-22 13:51 ?8200次閱讀
    【FPGA ZYNQ Ultrascale+ MPSOC教程】33.<b class='flag-5'>BRAM</b>實(shí)現(xiàn)<b class='flag-5'>PS</b>與PL交互

    使用AXI-Full接口的IP進(jìn)行DDR的讀寫測試

    狀態(tài)。然后使用PL部分消抖處理后的按鍵進(jìn)行啟動AXI總線工作,控制數(shù)據(jù)寫入。通過AXI互聯(lián)模塊連接到AXI_HP0端口,由PS端口進(jìn)行數(shù)據(jù)的
    的頭像 發(fā)表于 07-18 09:53 ?5255次閱讀
    使用<b class='flag-5'>AXI</b>-Full接口的IP進(jìn)行DDR的<b class='flag-5'>讀寫</b>測試

    AMD Versal AI Edge自適應(yīng)計算加速平臺之PL通過NoC讀寫DDR4實(shí)驗(yàn)(4)

    Versal的DDR4是通過NoC訪問,因此需要添加NoC IP進(jìn)行配置。
    的頭像 發(fā)表于 03-22 17:18 ?2330次閱讀
    AMD <b class='flag-5'>Versal</b> AI Edge自適應(yīng)計算加速平臺之PL<b class='flag-5'>通過</b><b class='flag-5'>NoC</b><b class='flag-5'>讀寫</b>DDR4實(shí)驗(yàn)(4)

    怎么使用AXI CDMAOCM/DDR寫入BRAM

    提交一個事務(wù),并將我提交的緩沖區(qū)的數(shù)據(jù)寫入塊存儲器生成器創(chuàng)建的BRAM。據(jù)我所知,我上面描述的設(shè)置應(yīng)該允許這樣做。我的地址編輯器
    發(fā)表于 04-19 07:50

    請問如何通過MicroBlaze訪問BRAM?

    嗨,大家好,我正在研究Vivado 2014.4,Xilinx KC705。我需要通過Microblaze讀取存儲BRAM(coe文件)的數(shù)據(jù)進(jìn)行計算。我是微博閱讀部分的新手。有人
    發(fā)表于 05-20 08:38

    【正點(diǎn)原子FPGA連載】第十四章基于BRAMPS和PL的數(shù)據(jù)交互領(lǐng)航者 ZYNQ 之嵌入式開發(fā)指南

    數(shù)據(jù)的交互。PL,通過輸出時鐘、地址、讀寫控制等信號來對BRAM進(jìn)行讀寫
    發(fā)表于 09-04 11:08

    利用NoC資源解決FPGA內(nèi)部數(shù)據(jù)交換的瓶頸

    2D NoC 遍布整個器件上,一共有 80 個接入點(diǎn),所以 8 個讀寫模塊可以由工具放置器件的任何地方,而不影響設(shè)計的性能。圖 5 使用 2D
    發(fā)表于 09-07 15:25

    如何利用NoC資源去支撐FPGA的創(chuàng)新設(shè)計

    NoC實(shí)現(xiàn)了AXI總線連接器和跨時鐘域的模塊,這就節(jié)省了大量的資源;另外,因?yàn)?D NoC遍布整個器件上,一共有80個接入點(diǎn),所以8個讀寫
    發(fā)表于 10-20 09:54

    ZYNQ的ARM和FPGA數(shù)據(jù)交互——AXI交互最重要的細(xì)節(jié)

    PL和PS之間的數(shù)據(jù)傳輸: 主要實(shí)現(xiàn)以下的功能:PS端把數(shù)據(jù)寫入RAM,然后PL端通過AXI總線(這里使用
    發(fā)表于 11-03 10:51

    MicroBlaze大內(nèi)部存儲器(AXI BRAM)設(shè)計

    MicroBlaze可以使用AXI BRAM存放數(shù)據(jù)和指令。有些客戶軟件很大,需要把AXI BRAM的空間做到最大。AXI
    的頭像 發(fā)表于 08-02 10:09 ?3197次閱讀
    MicroBlaze大內(nèi)部存儲器(<b class='flag-5'>AXI</b> <b class='flag-5'>BRAM</b>)設(shè)計

    如何通過NoC Versal應(yīng)用處理單元訪問AXI BRAM

    Versal 架構(gòu)將“Scalar Engine”(標(biāo)量引擎)、“Adaptable Engine”(自適應(yīng)引擎)和“Intelligent Engine”(智能引擎)這三種不同類型的引擎與豐富的連接和通信功能以及片上網(wǎng)絡(luò) (NoC) 有機(jī)結(jié)合,從而支持實(shí)現(xiàn)覆蓋整個器件的
    的頭像 發(fā)表于 11-11 09:09 ?664次閱讀

    如何通過NoCVersal應(yīng)用處理單元(APU)訪問AXI BRAM

    Versal 架構(gòu)將“Scalar Engine”(標(biāo)量引擎)、“Adaptable Engine”(自適應(yīng)引擎)和“Intelligent Engine”(智能引擎)這三種不同類型的引擎與豐富的連接和通信功能以及片上網(wǎng)絡(luò) (NoC) 有機(jī)結(jié)合,從而支持實(shí)現(xiàn)覆蓋整個器件的
    的頭像 發(fā)表于 11-11 09:10 ?713次閱讀

    FPGA系列之“Zynq MPSoC PS-PL AXI Interfaces”

    S_AXI_ACP_FPD接口實(shí)現(xiàn)了PS 和PL 之間的低延遲連接,通過這個128位的接口,PL端可以直接訪問APU的L1和L2 cache,以及DDR內(nèi)存區(qū)域。故PL側(cè)可以直接
    的頭像 發(fā)表于 02-01 15:36 ?2562次閱讀

    如何通過NoCVersal?應(yīng)用處理單元(APU)訪問AXI BRAM呢?

    Versal 架構(gòu)將“Scalar Engine”(標(biāo)量引擎)、“Adaptable Engine”(自適應(yīng)引擎)和“Intelligent Engine”(智能引擎)這三種不同類型的引擎與豐富的連接和通信功能以及片上網(wǎng)絡(luò) (NoC) 有機(jī)結(jié)合,從而支持實(shí)現(xiàn)覆蓋整個器件的
    的頭像 發(fā)表于 03-13 10:23 ?831次閱讀

    Versal CPM AXI Bridge模式的地址轉(zhuǎn)換

    Versal 系列的 DMA axi bridge 模式可以 PL 的 QDMA IP 或者 CPM(The integrated block for PCIe Rev. 4.0
    的頭像 發(fā)表于 05-10 09:47 ?1660次閱讀
    <b class='flag-5'>Versal</b> CPM <b class='flag-5'>AXI</b> Bridge模式的地址轉(zhuǎn)換