精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

在Vitis中通過PSU DDR執行MicroBlaze應用

OpenFPGA ? 來源:XILINX開發者社區 ? 2023-06-26 09:14 ? 次閱讀

MicroBlaze CPU 是可修改的拖入式預設 32 位/64 位 RISC 微處理器配置系列。

MicroBlaze 處理器能滿足眾多多樣化的應用程序的不同需求,惠及工業、醫療、汽車、消費品和通信市場。MicroBlaze 使用哈佛 (Harvard) 架構,此架構的 PL 內通常包含雙 LMB BRAM。

但在本篇博文中,我們將探討如何在 Zynq UltraScale ZCU104 開發板上通過 PSU DDR 執行 MicroBlaze 應用。

退出復位時,MicroBlaze 將從 MicroBlaze 配置中的 C_BASE_VECTORS 參數內指定的存儲器地址提取其指令。在本例中,此 C_BASE_VECTORS 將設置為 PSU DDR 內的某個區域。

但根據采用的啟動流程,這樣可能導致潛在問題,即 PSU DDR 可能無法先于 PL 完成配置。這可能導致 MicroBlaze 掛起。為避免此現象,我們可以使用 MicroBlaze 上的“Reset Mode”(復位模式)信號。

07255310-13b8-11ee-962d-dac502259ad0.png

在上表中,可以看到各種 reset_mode 配置。最適合我們的用例的配置為“01”,其中 MicroBlaze 將保持處于復位狀態,直至我們準備就緒為止。我們將在 PSU 上通過 EMIO 來使用 GPIO 對 MicroBlaze 進行解復位。

創建硬件

Vivado IP integrator 塊設計如下所示:

076fd67e-13b8-11ee-962d-dac502259ad0.png

用戶可以根據自己認為合適的方式來自定義設計。

關鍵組件配置如下所述。

MicroBlaze 配置:

在 Vivado IP integrator 中使用“Block Automation”(塊自動化設置)工具來對 MicroBlaze 進行初始配置,如下所示。此處移除了本地存儲器,改為使用 64K 高速緩存:

0784ee4c-13b8-11ee-962d-dac502259ad0.png

要啟用 reset_mode 和 wakeup 管腳,用戶需在 MicroBlaze 配置中選中“Enable Discrete Ports”以啟用離散端口

07b9e732-13b8-11ee-962d-dac502259ad0.png

在 Zynq UltraScale PS 配置中,啟用兩個從端口;一個用于存儲器,另一個用于外設:

07c73a7c-13b8-11ee-962d-dac502259ad0.png

通過 EMIO 啟用 GPIO,這樣就可以控制 MicroBlaze 的 wakeup 管腳:

07f32e3e-13b8-11ee-962d-dac502259ad0.png

我們還可訪問已從 MicroBlaze 啟用的所有 Zynq UltraScale IP。為此,請啟用“Address Fragmentation”(地址分段):

081efac8-13b8-11ee-962d-dac502259ad0.png

在上文中我們討論了復位模式。接下來,MicroBlaze 將保持復位狀態,直至我們準備就緒為止。

要使 MicroBlaze 保持復位,可以使用 IP 目錄中的“Constant IP”:

0848139a-13b8-11ee-962d-dac502259ad0.png

最后,連接 GPIO 和 Constant IP:

0854a8a8-13b8-11ee-962d-dac502259ad0.png

MicroBlaze 地址映射如下所示:

08bec346-13b8-11ee-962d-dac502259ad0.png

用戶可以右鍵單擊地址段,在地址映射中添加或排除地址段。

此操作適用于硬件配置。我們可以使用“Generate the Output Products”(生成輸出文件)、“Create the HDL wrapper”(創建 HDL 封裝文件)和“Generate the Bitstream”(生成比特流),然后導出硬件。

這將生成 XSA 以供在 Vitis 中用于生成我們的軟件。

創建軟件:

Vitis IDE 可用于生成 MicroBlaze 應用。Vitis 還將自動創建啟動鏡像,包括 FSBL 和 PMUFW。

但由于我們想要從 FSBL 控制 GPIO EMIO,因此我們選擇不使用工具來生成啟動鏡像。

08f2344c-13b8-11ee-962d-dac502259ad0.png

生成 MicroBlaze Hello World 應用:

091cfc90-13b8-11ee-962d-dac502259ad0.png0928327c-13b8-11ee-962d-dac502259ad0.png

我們可以添加新工程應用,如下所示。例如,對于 Zynq FSBL:

0951a526-13b8-11ee-962d-dac502259ad0.png097ddca4-13b8-11ee-962d-dac502259ad0.png

注釋:FSBL 不支持 64 位到 32 位交接。因此,由于 MicroBlaze 為 32 位,我們也應將 FSBL 設置為 32 位。

09b61790-13b8-11ee-962d-dac502259ad0.png09c347b2-13b8-11ee-962d-dac502259ad0.png

針對 PMUFW 重復上述操作:

09eb9af0-13b8-11ee-962d-dac502259ad0.png0a1f9724-13b8-11ee-962d-dac502259ad0.png

可看到所有應用工程如下所示:

0a49bfae-13b8-11ee-962d-dac502259ad0.png

由于我們已將 PS UART 添加到 MicroBlaze 地址映射中,因此可在 BSP 中將其用于 STDIN/OUT。

0a62e0a6-13b8-11ee-962d-dac502259ad0.png0a95c426-13b8-11ee-962d-dac502259ad0.png

此處可以看到 MicroBlaze Hello World 連接器

0adb7cdc-13b8-11ee-962d-dac502259ad0.png

其布局位置為 DDR 基址 (0x00000000) 處。用戶創建啟動鏡像時,需牢記此地址,以免應用程序發生重疊。

通過 SD 卡進行編程

首先,更新 FSBL。

我們可以使用 Xil_Out32 API 來切換 GPIO。

將 xil_io 頭文件添加到 xfsbl_handoff.c 文件:

0b0b63fc-13b8-11ee-962d-dac502259ad0.png

將此添加到 XFsbl_HandoffExit 函數

0b26647c-13b8-11ee-962d-dac502259ad0.png

同時啟用 FSBL 調試信息

0b506128-13b8-11ee-962d-dac502259ad0.png

創建啟動鏡像:

0ba903f0-13b8-11ee-962d-dac502259ad0.png

移除 FSBL 和 PMUFW,并使用正確的鏡像類型重新添加。

請確保分區鏡像順序正確(使用上下控件來調整其順序)。

0bedec9a-13b8-11ee-962d-dac502259ad0.png0c0eff84-13b8-11ee-962d-dac502259ad0.png

注釋:由于此處共享相同 UART,用戶可以在 Hello World 應用中布局延遲。

通過 JTAG 進行編程:

0c5437e8-13b8-11ee-962d-dac502259ad0.png0c88ce72-13b8-11ee-962d-dac502259ad0.png

這樣可看到如下輸出:

0cb2b124-13b8-11ee-962d-dac502259ad0.png






審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 存儲器
    +關注

    關注

    38

    文章

    7365

    瀏覽量

    163085
  • DDR
    DDR
    +關注

    關注

    11

    文章

    697

    瀏覽量

    64928
  • 微處理器
    +關注

    關注

    11

    文章

    2212

    瀏覽量

    81976
  • PSU
    PSU
    +關注

    關注

    0

    文章

    41

    瀏覽量

    11812

原文標題:【Vivado那些事兒】在Vitis中通過 PSU DDR 執行 MicroBlaze 應用

文章出處:【微信號:Open_FPGA,微信公眾號:OpenFPGA】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    MicroBlaze串口設計

    本系統,Basys3的MicroBlaze模塊調用基于AXI協議的UART IP核,通過AXI總線實現MicroBlaze-UART之間的通信,完成串口打印。
    發表于 08-02 09:32 ?1269次閱讀
    <b class='flag-5'>MicroBlaze</b>串口設計

    Vitis2023.2使用之—— updata to Vitis Unified IDE

    的工程。 首先在更新之前需要將舊版工程更新到vitis2023.2的classic Vitis IDE,否則在執行更新命令是會產生警告,這個警告也會導致后續更新失敗。如下: 更新到vitis
    發表于 03-24 17:14

    vivado下外部邏輯和MicroBlaze交換數據

    的方式是外部邏輯通過AXI4將數據寫到DDR3,然后microblaze將數據從DDR3讀出
    發表于 03-21 14:01

    DDR3 SDRAM的簡單代碼如何編寫

    使用microblaze處理器。我必須通過DDR3內存發送一些固定值,如8位數據(X'FF'),即我將該數據寫入Genesys2 DDR3內存并從內存
    發表于 05-05 15:29

    使用Vitis EBAZ4205(ZYNQ)礦機上實現"Hello World!"

    ZYNQ 設置串口引腳為 24, 25 。另外一個就是需要設置 ZYNQ 的DDR3,EBAZ4205 上用的DDR3 芯片型號是 EM6GD16EWKG-12H ,
    發表于 03-06 22:59

    請問如何通過MicroBlaze訪問BRAM?

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

    【正點原子FPGA連載】第一章MicroBlaze簡介--摘自【正點原子】達芬奇之Microblaze 開發指南

    使用Xilix提供的Vitis統一軟件平臺。Vivado我們可以Block Design搭建Mi
    發表于 10-16 16:28

    使用Vitis HLS創建屬于自己的IP相關資料分享

    。HLS 采用 C 和 C++ 描述并將它們轉換為自定義硬件 IP,完成后我們就可以 Vivado 項目中使用該IP。Vitis HLS創建一個新的 HLS 項目:通過從Linux 終端鍵入
    發表于 09-09 16:45

    PYNQMicroBlaze程序文件的加載過程

    PYNQ的base overlay 添加了MicroBlaze,通過MicroBlaze 來配置PMOD 和ardonio 接口并驅動外
    發表于 03-16 09:15 ?2194次閱讀

    怎么Vitis設定Kernel的頻率?

    Vitis中選擇平臺時可以看到默認的時鐘頻率是300Mhz和500Mhz. Vitis Application Acceleration Development Flow 我們看到
    的頭像 發表于 06-12 14:19 ?3.7w次閱讀

    Xilinx Vitis 2020.1運行C程序時提示找不到microblaze_0

    Xilinx Vitis 2020.1里面運行C程序時提示找不到microblaze_0
    的頭像 發表于 02-16 16:21 ?3303次閱讀
    Xilinx <b class='flag-5'>Vitis</b> 2020.1運行C程序時提示找不到<b class='flag-5'>microblaze</b>_0

    Xilinx Vitis 2020.1里面MicroBlaze軟核的sleep函數卡死的問題

    Vitis里面創建了一個LwIP工程,調試的時候發現,BRAM里面運行正常,但如果改到DDR3內存里面運行,啟動時就會卡死sleep函
    的頭像 發表于 02-16 16:21 ?2619次閱讀
    Xilinx <b class='flag-5'>Vitis</b> 2020.1里面<b class='flag-5'>MicroBlaze</b>軟核的sleep函數卡死的問題

    Vitis調試ARM可信固件和U-boot

    本篇博文中,我們將探討如何在 Vitis 調試 Zynq UltraScale 器件啟動鏡像。這些啟動鏡像包括 ARM 可信固件 (ATF) 和 U-boot。
    的頭像 發表于 08-02 10:14 ?3282次閱讀
    <b class='flag-5'>在</b><b class='flag-5'>Vitis</b><b class='flag-5'>中</b>調試ARM可信固件和U-boot

    Vitis通過PSU DDR執行MicroBlaze應用

    MicroBlaze CPU 是可修改的拖入式預設 32 位/64 位 RISC 微處理器配置系列。
    的頭像 發表于 06-21 09:39 ?611次閱讀
    <b class='flag-5'>在</b><b class='flag-5'>Vitis</b><b class='flag-5'>中</b><b class='flag-5'>通過</b><b class='flag-5'>PSU</b> <b class='flag-5'>DDR</b><b class='flag-5'>執行</b><b class='flag-5'>MicroBlaze</b>應用

    UCC25640XLED照明PSU的優勢

    電子發燒友網站提供《UCC25640XLED照明PSU的優勢.pdf》資料免費下載
    發表于 08-27 10:21 ?0次下載
    UCC25640X<b class='flag-5'>在</b>LED照明<b class='flag-5'>PSU</b><b class='flag-5'>中</b>的優勢