<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 如何在芯片的PL上構建軟核處理器?

如何在芯片的PL上構建軟核處理器?

作者: 時(shí)間:2017-10-13 來(lái)源:網(wǎng)絡(luò ) 收藏

到目前為止,我們已經(jīng)在之前的文章中聊過(guò)Zynq SOC內部的 PS和PL,以及在Zynq SoC PS部分的ARM Cortex-A9處理器上運行的操作系統。但是有一個(gè)領(lǐng)域我們還沒(méi)有去探索過(guò),那就是在芯片的PL上構建軟核處理器。PicoBlaze在軟核中是一個(gè)比較常見(jiàn)的軟核。它是一個(gè)8位處理器,由于它的高精確性(每條指令需要兩個(gè)周期),很多基于可編程器件的系統設計使用PicoBlaze 軟核處理器來(lái)代替狀態(tài)機和其他控制結構。你甚至可以使用PicoBlaze 處理器通過(guò)I2C和RS232總線(xiàn)實(shí)現串行通信,使設計更加精簡(jiǎn)并且節省設計時(shí)間。

本文引用地址:http://dyxdggzs.com/article/201710/365723.htm

我們應該做的第一件事就是從PicoBlaze專(zhuān)區下載最新版本的PicoBlaze處理器。這個(gè)最新的PicoBlaze處理器支持UltraScale 和7系列所有可編程器件(包括Zynq SOC)。

我們的目的是讓其作為一個(gè)標準的IP模塊,我們可以打包并且添加到我們的VIVADO模塊圖中。然而,在這之前,我們第一步是得了解下隨PicoBlaze處理器會(huì )帶來(lái)什么東東,以及它的開(kāi)發(fā)流程。在我們的下載目錄中我們將看到以下文件:

1、KCPSM6.Vhd:這是PicoBlaze 處理器的源代碼文件。

2、KCPSM6.exe:這是一個(gè)匯編程序用于生成機器代碼和文件所需的內存。

3、ROM_Form.vhd: 這是被匯編可執行文件用來(lái)生成VHDL文件,該文件包括了我們建立的目標程序。

4、KCPSM6_design_template.vhd: 這是一個(gè)PicoBlaze 處理器的例化模板文件。

5、All_kcpsm6_syntax.psm:該文件定義了所有的匯編指令和語(yǔ)法。

在PL上實(shí)現PicoBlaze 的開(kāi)發(fā)流程是:

1、編寫(xiě)程序可執行PicoBlaze程序。在這個(gè)例子中,我們將實(shí)現一個(gè)簡(jiǎn)單的流水燈。我們可以使用all_KCPSM6_syntax.psm 文件作為一個(gè)快速參考,里面有我們要用到的PicoBlaze 匯編指令,同時(shí)在下載的文件中也有大量的用戶(hù)指南(PDF)可以讓我們快速上手。

2、寫(xiě)完這個(gè)簡(jiǎn)單的程序,我們就用KCPSM6.exe匯編器進(jìn)行編譯,它將建立一個(gè)用我們對應的程序名命名的RAM文件。這個(gè)文件內包含一些將被PicoBlaze 控制器執行的程序,你必須將這個(gè)文件鏈接到PicoBlaze 處理器來(lái)建立功能系統,

3、修改RAM文件大小,如下圖所示,根據芯片系列將6S改成7S,并且選擇內存大小為2K:

4、在同一個(gè)文件夾內,創(chuàng )建一個(gè)頂層文件將處理器和RAM 結合PicoBlaze所需的其他代碼連接起來(lái) 。比如說(shuō),當寫(xiě)成如下時(shí)就是聲明它作為輸出端口:

5、使用VIVADO的工具—>“建立和打包IP”選項來(lái)新建一個(gè)IP,將以上三個(gè)文件打包成一個(gè)IP。

6、在打包這個(gè)程序之后,我們檢查確認下是否被包含進(jìn)來(lái)成為一個(gè)倉庫,(如果沒(méi)有,我將手工添加)并且將這個(gè)IP模塊添加到模塊圖。

7. 將PicoBlaze 模塊的時(shí)鐘鏈接到FPGA時(shí)鐘(設置為40MHZ),并且定義三個(gè)輸出接口連接到 的LED對應的IO上。

8. 編譯設計并且導出到SDK

當我們編譯完這個(gè)設計,如果我們有一個(gè)JTAG連接器,我們將位流文件燒錄到FPGA并且看看LED是否有閃爍,或者我們可以導出到SDK并且建立一個(gè)Boot文件,在上電之后通過(guò)Boot文件來(lái)運行這個(gè)程序。

我將在下次深入探討我們剛剛建立的設計。同時(shí),我將這個(gè)Demo用到的文件也附加到這個(gè)博客中。我提供了PSM文件和頂層文件。如果你下載了PicoBlaze軟核,你可以使用PicoBlaze 匯編器來(lái)生成一個(gè)Test.vhd內存文件。



關(guān)鍵詞: MicroZed 賽靈思

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>