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

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

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

如何通過(guò)NoC 從 Versal應(yīng)用處理單元訪問(wèn)AXI BRAM

OpenFPGA ? 來(lái)源:OpenFPGA ? 作者:OpenFPGA ? 2022-11-11 09:09 ? 次閱讀

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

設(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è)器件的無(wú)縫式存儲(chǔ)器映射訪問(wèn)。

智能引擎包括:

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ù)路徑。

模塊框圖

de6089de-6158-11ed-8abf-dac502259ad0.png

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。

de8fb5e2-6158-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í)鐘數(shù))= 7

deaab374-6158-11ed-8abf-dac502259ad0.png

步驟 4:

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

dec31e32-6158-11ed-8abf-dac502259ad0.png

步驟 5:

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

def79784-6158-11ed-8abf-dac502259ad0.png

步驟 6:

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

df2056ce-6158-11ed-8abf-dac502259ad0.png

步驟 7:

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

df46133c-6158-11ed-8abf-dac502259ad0.png

步驟 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 文件。

e08c1818-6158-11ed-8abf-dac502259ad0.png

步驟 2:

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

e0a9e37a-6158-11ed-8abf-dac502259ad0.png

步驟 3:

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

e0bf4f62-6158-11ed-8abf-dac502259ad0.png

代碼修改

創(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);

代碼快照:

e15c7a44-6158-11ed-8abf-dac502259ad0.png

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

e17b1508-6158-11ed-8abf-dac502259ad0.png

審核編輯:郭婷

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

    關(guān)注

    551

    文章

    7824

    瀏覽量

    346828
  • 引擎
    +關(guān)注

    關(guān)注

    1

    文章

    353

    瀏覽量

    22451
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Xilinx NVMe AXI4主機(jī)控制器,AXI4接口高性能版本介紹

    NVMe AXI4 Host Controller IP可以連接高速存儲(chǔ)PCIe SSD,無(wú)需CPU,自動(dòng)加速處理所有的NVMe協(xié)議命令,具備獨(dú)立的數(shù)據(jù)寫入和讀取AXI4接口,不但適用高性能、順序
    的頭像 發(fā)表于 07-18 09:17 ?289次閱讀
    Xilinx NVMe <b class='flag-5'>AXI</b>4主機(jī)控制器,<b class='flag-5'>AXI</b>4接口高性能版本介紹

    基于FPGA設(shè)計(jì)的BRAM內(nèi)部結(jié)構(gòu)

    再看末級(jí)觸發(fā)器對(duì)BRAM時(shí)序性能的影響,下圖依次展示了7系列FPGA、UltraScale+和Versal芯片在未使用和使用末級(jí)觸發(fā)器兩種情形下時(shí)鐘到輸出的延遲。
    發(fā)表于 04-25 10:42 ?297次閱讀
    基于FPGA設(shè)計(jì)的<b class='flag-5'>BRAM</b>內(nèi)部結(jié)構(gòu)

    NoC DDRMC LPDDR4上運(yùn)行AMD Versal? Adaptive SoC DCMAC設(shè)計(jì)示例

    注釋:默認(rèn) DCMAC 設(shè)計(jì)示例不包含 NoC DDRMC
    的頭像 發(fā)表于 04-24 09:44 ?653次閱讀
    <b class='flag-5'>NoC</b> DDRMC LPDDR4上運(yùn)行AMD <b class='flag-5'>Versal</b>? Adaptive SoC DCMAC設(shè)計(jì)示例

    FPGA通過(guò)AXI總線讀寫DDR3實(shí)現(xiàn)方式

    AXI總線由一些核心組成,包括AXI處理器接口(AXI4)、AXI處理器到協(xié)
    發(fā)表于 04-18 11:41 ?1021次閱讀

    用于高級(jí)應(yīng)用處理器的電源管理單元LP3971數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《用于高級(jí)應(yīng)用處理器的電源管理單元LP3971數(shù)據(jù)表.pdf》資料免費(fèi)下載
    發(fā)表于 04-02 15:23 ?0次下載
    用于高級(jí)應(yīng)<b class='flag-5'>用處理</b>器的電源管理<b class='flag-5'>單元</b>LP3971數(shù)據(jù)表

    用于高級(jí)應(yīng)用處理器的電源管理單元LP3972數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《用于高級(jí)應(yīng)用處理器的電源管理單元LP3972數(shù)據(jù)表.pdf》資料免費(fèi)下載
    發(fā)表于 04-02 15:21 ?0次下載
    用于高級(jí)應(yīng)<b class='flag-5'>用處理</b>器的電源管理<b class='flag-5'>單元</b>LP3972數(shù)據(jù)表

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

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

    AMD Versal AI Edge自適應(yīng)計(jì)算加速平臺(tái)之Versal介紹(2)

    Versal 包含了 Cortex-A72 處理器和 Cortex-R5 處理器,PL 端可編程邏輯部分,PMC 平臺(tái)管理控制器,AI Engine 等模塊,與以往的 ZYNQ 7000 和 MPSoC 不同,
    的頭像 發(fā)表于 03-06 18:12 ?1224次閱讀
    AMD <b class='flag-5'>Versal</b> AI Edge自適應(yīng)計(jì)算加速平臺(tái)之<b class='flag-5'>Versal</b>介紹(2)

    談存儲(chǔ)芯片的演進(jìn)之路

    NoC的角度來(lái)看,我覺(jué)得有趣的是,你必須優(yōu)化這些路徑,處理器到NoC,通過(guò)控制器
    發(fā)表于 01-24 11:46 ?267次閱讀

    FPGA實(shí)現(xiàn)基于Vivado的BRAM IP核的使用

    Xilinx公司的FPGA中有著很多的有用且對(duì)整個(gè)工程很有益處的IP核,比如數(shù)學(xué)類的IP核,數(shù)字信號(hào)處理使用的IP核,以及存儲(chǔ)類的IP核,本篇文章主要介紹BRAM IP核的使用。 BRAM是FPGA
    的頭像 發(fā)表于 12-05 15:05 ?1257次閱讀

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

    PL和PS之間的數(shù)據(jù)傳輸: 主要實(shí)現(xiàn)以下的功能:PS端把數(shù)據(jù)寫入RAM中,然后PL端通過(guò)AXI總線(這里使用AXI4_Lite)把數(shù)據(jù)RAM中把數(shù)據(jù)讀出來(lái),進(jìn)行相應(yīng)的
    發(fā)表于 11-03 10:51

    ARM處理器中有些總線APB AHB AXI 3 AXI 4有什么不同?

    ARM處理器中有些總線APB AHB AXI 3 AXI 4,他們的有什么不同,各自作用?
    發(fā)表于 10-24 07:16

    LogiCORE JTAG至AXI Master IP核簡(jiǎn)介

    LogiCORE JTAG至AXI Master IP核是一個(gè)可定制的核,可生成AXIAXI總線可用于處理和驅(qū)動(dòng)系統(tǒng)中FPGA內(nèi)部的AXI信號(hào)。AXI總線接口協(xié)議可
    的頭像 發(fā)表于 10-16 10:12 ?869次閱讀
    LogiCORE JTAG至<b class='flag-5'>AXI</b> Master IP核簡(jiǎn)介

    什么是AXI?AXI如何工作?

    Xilinx Spartan-6 和 Virtex-6 器件開始采用高級(jí)可擴(kuò)展接口 (AXI) 協(xié)議作為知識(shí)產(chǎn)權(quán) (IP) 內(nèi)核。Xilinx 繼續(xù)將 AXI 協(xié)議用于針對(duì) 7 系列和 Zynq-7000 All Progr
    的頭像 發(fā)表于 09-27 09:50 ?1410次閱讀
    什么是<b class='flag-5'>AXI</b>?<b class='flag-5'>AXI</b>如何工作?

    LogiCORE IP AXI4-Stream FIFO內(nèi)核解決方案

    LogiCORE IP AXI4-Stream FIFO內(nèi)核允許以內(nèi)存映射方式訪問(wèn)一個(gè)AXI4-Stream接口。該內(nèi)核可用于與AXI4-Stream IP接口,類似于LogiCORE
    的頭像 發(fā)表于 09-25 10:55 ?1111次閱讀
    LogiCORE IP <b class='flag-5'>AXI</b>4-Stream FIFO內(nèi)核解決方案