衡阳派盒市场营销有限公司

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

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

3天內不再提示

Xilinx Vivado創建MicroBlaze工程運行Hello World C語言程序

C29F_xilinx_inc ? 來源:賽靈思 ? 作者:賽靈思 ? 2022-02-16 16:21 ? 次閱讀

閱讀本文前,請先閱讀:

(1)【教程】Xilinx Vivado/Vitis 2020.1創建最簡單的MicroBlaze工程運行Hello World C語言程序(不使用外部DDR3內存),并固化到SPI Flash

https://blog.csdn.net/ZLK1214/article/details/111824576

(2)Xilinx 2020.1 MIG核讀寫DDR3內存,新建工程時配置MIG核的完整步驟

https://blog.csdn.net/ZLK1214/article/details/111349678

添加了DDR3內存以后,程序既可以運行在BRAM里面,也可以運行在DDR3內存里面。但如果運行在DDR3內存里面,固化起來會比較麻煩,需要借助SREC SPI Bootloader。

建立帶DDR3內存的MicroBlaze工程的方法很簡單:以不帶DDR3的工程(1)為基礎,只需要在Clocking Wizard和Processor System Reset之間插入一個MIG IP核就可以了。

poYBAGIMpkCARqygAAKR15cvwcw769.png

原本,Clocking Wizard輸出的時鐘是100MHz,是直接接到Processor System Reset上的。
修改后,兩者中間插入了一個MIG。Clocking Wizard的時鐘輸出變成了200MHz,給MIG提供時鐘。在MIG的內部由PLL倍頻到400MHz驅動外部DDR3內存,然后再分頻到100MHz從ui_clk引腳輸出出來,給Processor System Reset提供時鐘。
修改后,MicroBlaze的運行頻率沒有變,仍然是100MHz。

建立工程的時候一定要小心使用Vivado的自動連線的功能,操作不當的話很容易產生兩個Processor System Reset。

下面詳細說明一下工程的建立步驟。

首先在空白Block Design里面添加Clocking Wizard和MIG IP核:

poYBAGIMpkGAR328AABGZ1HHdO0264.png

修改Clocking Wizard的配置:

pYYBAGIMpkOAU62sAAEQHRPvHsY680.png

MIG的詳細配置請參考上面的文章(2),關鍵配置單獨挑出來說明一下:

poYBAGIMpkWACjr5AAIa-A20Ydk009.png

pYYBAGIMpkaAc_EBAACgta7GR24335.png

現在可以添加MicroBlaze核了,添加后點擊Run Block Automation,請注意時鐘的選擇:

pYYBAGIMpkiAe9bNAAINzfM07EA633.png

poYBAGIMpkqAFY2JAAFqNTj8Z-Y373.png

點擊Run Connection Automation,通過一個新建的AXI SmartConnect將MIG的S_AXI和MicroBlaze連接起來:

pYYBAGIMpk2AQK7LAAFIsfmJ1No020.png

自動連接剩余的接口

poYBAGIMplGAcAI9AAFbT5hAWDU717.png

pYYBAGIMplSAGFXkAAGkJ3l4nd4042.png

添加AXI Uartlite串口,用于printf打印:

pYYBAGIMplWAJaSOAAG6n8o5fIc509.png

Run Connection Automation,將Uartlite與MicroBlaze連在一起:

poYBAGIMpleAL18mAAD-3WnCWCA451.png

最終連線結果:

pYYBAGIMplqAAR57AAHvKU1DdII940.png

地址分配:

poYBAGIMplyAXOkKAAEWpxuS6kQ525.png

引腳配置:

pYYBAGIMpl2AYcRsAAEADikOE14680.png

綜合時會提示BANKBONE錯誤:

poYBAGIMpl-AUdDVAAFdeUMQX44786.png

[Place 30-575] Sub-optimal placement for a clock-capable IO pin and MMCM pair. If this sub optimal condition is acceptable for this design, you may use the CLOCK_DEDICATED_ROUTE constraint in the .xdc file to demote this message to a WARNING. However, the use of this override is highly discouraged. These examples can be used directly in the .xdc file to override this clock rule.

design_1_i/clk_wiz_0/inst/clkin1_ibufg (IBUF.O) is locked to IOB_X1Y26
design_1_i/clk_wiz_0/inst/mmcm_adv_inst (MMCME2_ADV.CLKIN1) is provisionally placed by clockplacer on MMCME2_ADV_X1Y1

The above error could possibly be related to other connected instances. Following is a list of
all the related clock rules and their respective instances.

Clock Rule: rule_mmcm_bufg
Status: PASS
Rule Description: An MMCM driving a BUFG must be placed on the same half side (top/bottom) of the device
design_1_i/clk_wiz_0/inst/mmcm_adv_inst (MMCME2_ADV.CLKFBOUT) is provisionally placed by clockplacer on MMCME2_ADV_X1Y1
and design_1_i/clk_wiz_0/inst/clkf_buf (BUFG.I) is provisionally placed by clockplacer on BUFGCTRL_X0Y31

將錯誤信息中提示的代碼加入xdc文件就可以屏蔽掉此錯誤:

pYYBAGIMpmCAfqu5AAFFEFvOfBo501.png

poYBAGIMpmKAQiV3AAKlWVadyVw422.png

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

    關注

    2

    文章

    276

    瀏覽量

    42389
  • MicroBlaze
    +關注

    關注

    3

    文章

    68

    瀏覽量

    21594
收藏 人收藏

    評論

    相關推薦

    使用MCUXpresso for VS Code插件開發Zephyr的hello world

    本期來到Zephyr實戰經驗演練,小編帶著大家一起使用MCUXpresso for VS Code插件來開發一個屬于Zephyr的hello world。
    的頭像 發表于 01-03 09:21 ?644次閱讀
    使用MCUXpresso for VS Code插件開發Zephyr的<b class='flag-5'>hello</b> <b class='flag-5'>world</b>

    Xilinx_Vivado_SDK的安裝教程

    首先是去官網下載安裝包:https://www.xilinx.com/support/download.html。 下載這個最大的、支持所有的 OS 如 Windows/Linux 的安裝包。 下載
    的頭像 發表于 11-16 09:53 ?1650次閱讀
    <b class='flag-5'>Xilinx_Vivado</b>_SDK的安裝教程

    C語言中的socket編程基礎

    Socket編程簡介 Socket是一種通信機制,允許程序之間進行通信。在C語言中,socket編程是網絡編程的基礎。通過使用socket,程序可以發送和接收數據,實現不同計算機之間的
    的頭像 發表于 11-01 16:51 ?469次閱讀

    使用Vivado通過AXI Quad SPI實現XIP功能

    本博客提供了基于2023.2 Vivado的參考工程,展示如何使用Microblaze 地執行(XIP)程序,并提供一個簡單的bootloader。
    的頭像 發表于 10-29 14:23 ?516次閱讀
    使用<b class='flag-5'>Vivado</b>通過AXI Quad SPI實現XIP功能

    如何在i2c中將hello world發送到LCD屏幕?

    有誰知道如何在 i2c 中告訴這個以將 hello world 發送到 LCD 屏幕?當我查找我的 4BIT 引腳時,我可以很好地做到這一點,但是當使用 i2c 時,我似乎在任何地方都
    發表于 07-11 06:10

    esp32運行make flash燒寫hello world遇到的疑問求解

    串口驅動安裝正常,連接正常 在demo目錄里hello world程序下,運行make all,編譯正常, 然后運行 make flash
    發表于 06-26 06:25

    鴻蒙OpenHarmony【輕量系統 編寫“Hello World程序】 (基于Hi3861開發板)

    下方將通過修改源碼的方式展示如何編寫簡單程序,輸出“Hello world”。請在下載的源碼目錄中進行下述操作。
    的頭像 發表于 05-16 18:15 ?1041次閱讀
    鴻蒙OpenHarmony【輕量系統 編寫“<b class='flag-5'>Hello</b> <b class='flag-5'>World</b>”<b class='flag-5'>程序</b>】 (基于Hi3861開發板)

    鴻蒙OpenHarmony【小型系統 編寫“Hello World程序】 (基于Hi3516開發板)

    展示如何在單板上運行第一個應用程序,其中包括新建應用程序、編譯、燒寫、運行等步驟,最終輸出“Hello
    的頭像 發表于 05-10 16:26 ?746次閱讀
    鴻蒙OpenHarmony【小型系統 編寫“<b class='flag-5'>Hello</b> <b class='flag-5'>World</b>”<b class='flag-5'>程序</b>】 (基于Hi3516開發板)

    鴻蒙OpenHarmony【標準系統 編寫“Hello World程序】(基于RK3568開發板)

    下方將展示如何在單板上運行第一個應用程序,其中包括新建應用程序、編譯、燒寫、運行等步驟,最終輸出“Hello
    的頭像 發表于 05-09 17:58 ?962次閱讀
    鴻蒙OpenHarmony【標準系統 編寫“<b class='flag-5'>Hello</b> <b class='flag-5'>World</b>”<b class='flag-5'>程序</b>】(基于RK3568開發板)

    鴻蒙OpenHarmony【標準系統編寫“Hello World程序】 (基于RK3568開發板)

    編寫“Hello World程序 下方將展示如何在單板上運行第一個應用程序,其中包括新建應用程序
    的頭像 發表于 04-24 17:32 ?936次閱讀
    鴻蒙OpenHarmony【標準系統編寫“<b class='flag-5'>Hello</b> <b class='flag-5'>World</b>”<b class='flag-5'>程序</b>】 (基于RK3568開發板)

    鴻蒙OpenHarmony【小型系統編寫“Hello World程序】 (基于Hi3516開發板)

    下方將展示如何在單板上運行第一個應用程序,其中包括新建應用程序、編譯、燒寫、運行等步驟,最終輸出“Hello
    的頭像 發表于 04-22 21:55 ?420次閱讀
    鴻蒙OpenHarmony【小型系統編寫“<b class='flag-5'>Hello</b> <b class='flag-5'>World</b>”<b class='flag-5'>程序</b>】 (基于Hi3516開發板)

    鴻蒙OpenHarmony【輕量系統編寫“Hello World程序】 (基于Hi3861開發板)

    下方將通過修改源碼的方式展示如何編寫簡單程序,輸出“Hello world”。請在下載的源碼目錄中進行下述操作。
    的頭像 發表于 04-21 21:44 ?395次閱讀
    鴻蒙OpenHarmony【輕量系統編寫“<b class='flag-5'>Hello</b> <b class='flag-5'>World</b>”<b class='flag-5'>程序</b>】 (基于Hi3861開發板)

    【從0開始創建AWTK應用程序】編譯應用到RTOS平臺

    AWTK是基于C語言開發的跨平臺GUI框架。本系列文章介紹如何從0開始創建AWTK應用程序,包括搭建開發調試環境、使用AWTK創建
    的頭像 發表于 03-21 08:23 ?675次閱讀
    【從0開始<b class='flag-5'>創建</b>AWTK應用<b class='flag-5'>程序</b>】編譯應用到RTOS平臺

    全志D1s開發板軟件入門之Hello World演示

    開發者的應用工程放在package下,在package中創建test文件夾,在test文件夾中創建hello_word.c文件。 為了緊密結合嵌入式開發,此處提供使用Makefile
    發表于 03-06 11:30

    用于EK-RA8D1 MIPI LCD顯示器的GUIX Hello World

    電子發燒友網站提供《用于EK-RA8D1 MIPI LCD顯示器的GUIX Hello World.pdf》資料免費下載
    發表于 02-20 09:48 ?0次下載
    用于EK-RA8D1 MIPI LCD顯示器的GUIX <b class='flag-5'>Hello</b> <b class='flag-5'>World</b>
    百家乐不锈钢| 百家乐官网园百利宫娱乐城怎么样百家乐官网园百利宫娱乐城如何 | 百家乐视频游戏账号| 太阳城百家乐作弊| 中华百家乐官网娱乐城| 杂多县| 大发888娱乐下载| 百家乐群详解包杀| 蓝盾百家乐打法| 百家乐美女荷官| 贡山| 赌博百家乐技术| 百家乐官网获胜秘决| 大发888娱乐城出纳| 大地百家乐官网的玩法技巧和规则| 百家乐官网视频免费下载| 岐山县| 资源县| 百家乐导航| 巴登娱乐城信誉怎么样| 大发888真人存款| 大发888下载并安装| 大发888真人斗地主| 网上的百家乐怎么才能赢| 明升百家乐娱乐城| 玩百家乐高手支招篇| 百家乐连输的时候| 百家乐游戏必赢法| 百家乐软件官方| 百家乐存在千术吗| 百家乐平台信誉| 百家乐1元投注| 百家乐游戏教程| 百家乐霸王闲| 榆次百家乐的玩法技巧和规则| 网络百家乐会作假吗| 牌九百家乐的玩法技巧和规则 | tt娱乐城开户| 澳门威尼斯人| 固镇县| 百家乐官网推广|