曰本美女∴一区二区特级A级黄色大片, 国产亚洲精品美女久久久久久2025, 页岩实心砖-高密市宏伟建材有限公司, 午夜小视频在线观看欧美日韩手机在线,国产人妻奶水一区二区,国产玉足,妺妺窝人体色WWW网站孕妇,色综合天天综合网中文伊,成人在线麻豆网观看

電子發(fā)燒友App

硬聲App

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

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

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>使用FPGA創(chuàng)建RISC V系統(tǒng)

使用FPGA創(chuàng)建RISC V系統(tǒng)

2022-11-08 | zip | 4.56 MB | 次下載 | 2積分

資料介紹

描述

大家都知道現(xiàn)在的處理器RISC-V,即使它本身不是處理器,基于 RISC-V 的板的數(shù)量也越來越多。要了解其中的原因,我們必須了解什么是 RISC-V,以及它與 Arm? 或 x86 的不同之處。首先我們要知道RISC-V不是處理器,像Arm或者x86,它們是指令集架構(gòu)(ISA),特別是開放指令集架構(gòu),開放的字就大了RISC-V 和 Arm 或 x86 之間的區(qū)別。我將舉例說明,如果我是一名 ASIC 設(shè)計(jì)師,并且我想在我的設(shè)計(jì)中集成一個處理器,我有兩個選擇,第一個也是迄今為止最常見的一個是支付給 Arm Limited,它的所有者是Arm Architecture,讓我設(shè)計(jì)一個使用他們的架構(gòu)的處理器,并符合他們的指令集。這將使我的設(shè)計(jì)到達(dá)大量的開發(fā)人員,他們的設(shè)計(jì)符合 Arm 架構(gòu)。您擁有的第二個選項(xiàng)是設(shè)計(jì)符合 RISC-V 的處理器。在這種情況下,由于架構(gòu)是開放的,因此您不必花錢設(shè)計(jì)兼容的處理器。與所有開源項(xiàng)目一樣,支持該架構(gòu)的社區(qū)正在不斷增長,以及參與開發(fā)的公司這些公司之一是 Microchip。

正如我們在 Arm Cortex?-M1 或最近的 Arm Cortex-M3 中看到的那樣,還有大量基于 RISC-V 架構(gòu)的軟核可以在 FPGA 上實(shí)現(xiàn)。在這篇文章中,我們將使用可用于 Microchip FPGA 的內(nèi)核Mi-V內(nèi)核來開發(fā)基于 RISC-V 的示例設(shè)計(jì)。

Microchip 提供多個基于 RISC-V 架構(gòu)的內(nèi)核。對于這個項(xiàng)目,我們將使用最新開發(fā)的內(nèi)核 MiV_RV32,它是最輕的,因此我們將能夠在 Hello FPGA Kit 中進(jìn)行設(shè)計(jì),并且具有可用的 APB3 和 AHB 接口,這對于連接 eNVM 和一些外圍設(shè)備。

pYYBAGNopD6ALCefAAClYlY6FNI594.png
RISC-V 微芯片軟核
?

RISC-V 的另一個特點(diǎn)是高可配置性,我們可以根據(jù)它們實(shí)現(xiàn)的擴(kuò)展找到不同的基于 RISC-V 的內(nèi)核。核心中可用的擴(kuò)展對應(yīng)于您可以在 RV32 之后找到的字母,例如 RV32IMAF 具有 I(基本整數(shù)指令集)、M(整數(shù)乘法和除法的標(biāo)準(zhǔn)擴(kuò)展)、A(原子標(biāo)準(zhǔn)擴(kuò)展指令)和 F(單精度浮點(diǎn)的標(biāo)準(zhǔn)擴(kuò)展)。MiV_RV32 內(nèi)核可用的擴(kuò)展是 IMC,C 對應(yīng)于(壓縮指令的標(biāo)準(zhǔn)擴(kuò)展)。

我們要開發(fā)的項(xiàng)目將基于 Mi-V_RV32IMC,由于 SmartFusion2 SoC 有一個微控制器子系統(tǒng) (MSS),我們將 Mi-V 處理器連接到 MSS 以使用非易失性存儲器 (eNVM ),以及可用的 SRAM。此外,我們將添加一個能夠讀取按鈕狀態(tài)的 GPIO 外設(shè)和一個脈沖寬度調(diào)制 (PWM) 外設(shè)來管理板上的三個 LED在這種情況下,將禁用 Arm Cortex-M3 處理器以節(jié)省能源。

首先,我們必須在 Libero 設(shè)計(jì)套件上創(chuàng)建一個新項(xiàng)目,選擇一個名稱,這次,由于我們不會使用 Arm Cortex-M3,我們將選擇 IGLOO?2 FPGA 作為一部分,即兼容的 FPGA使用 SmartFusion2 SoC。

?

poYBAGNopEGACTOhAACnxacTJSE018.png
?

接下來在電壓選擇器上,我們將為 PLL 和 I/O 設(shè)置選擇 3.3。現(xiàn)在在下一個窗口中,由于我們將使用 MSS,我們將選擇選項(xiàng)Create a system builder-based design

poYBAGNopESAT-EpAACWSEUec7g983.png
?

創(chuàng)建項(xiàng)目后,Libero? 設(shè)計(jì)套件會詢問我們系統(tǒng)構(gòu)建器的名稱,在我的例子中,我選擇 top 作為名稱。接下來,將打開 MSS 配置向?qū)Р@示內(nèi)存選擇窗口。在 MSS 中,我們將作為存儲程序的 eNVM 和執(zhí)行程序的 SRAM,因此我們將選擇這兩個選項(xiàng)。

pYYBAGNopEeAMyF9AAElLe2rfE8005.png
?

現(xiàn)在我們必須創(chuàng)建一個內(nèi)存客戶端,目前我們將選擇選項(xiàng)內(nèi)容用 0 填充,因?yàn)樯院笪覀儗⑹褂?SoftConsole 上生成的 hex 文件初始化內(nèi)存。通過單擊下一步,我們將選擇外圍設(shè)備。在這種情況下,外圍設(shè)備是 MSS 和結(jié)構(gòu)之間的接口。我們必須選中窗口頂部的框,單擊下一步。

poYBAGNopEmAfUmHAACmwyAJC8o277.png
?

在下一個窗口中,我們可以選擇我們想要使用的時鐘電路。Hello FPGA 套件有一個板載 50 MHz 振蕩器,我們將使用它來為 MSS 時鐘電路供電。MSS 的輸出時鐘將連接到所有結(jié)構(gòu)模塊。選擇合適的時鐘速度很重要,因?yàn)?Mi-V 內(nèi)核將在結(jié)構(gòu)上實(shí)現(xiàn),我們可能會遇到時序問題。現(xiàn)在,我們將為 50 Mhz 的結(jié)構(gòu)選擇一個時鐘。

poYBAGNopEyAIL6vAADhV49PPKw952.png
?

其余窗口將保持默認(rèn)。向?qū)瓿珊?,我們將擁有一個包含 MSS 的 SmartDesign。現(xiàn)在我們必須在設(shè)計(jì)中添加我們需要的其余塊。我們將從 Mi-V_RV32 內(nèi)核開始。我們可以在目錄選項(xiàng)卡的處理器文件夾中找到它。核心的配置器將被打開。在第一個選項(xiàng)卡上,我們必須選擇要添加到核心的擴(kuò)展,在本例中為 IMC,以及乘法器的位置。此外,我們可以選擇我們需要的接口選項(xiàng),在這種情況下,APB_master 用于外圍設(shè)備,AHB Master 用于內(nèi)存。復(fù)位向量地址將被配置為 MSS 上 eNVM 內(nèi)存上的第一個地址,即 0x6000 0000。

pYYBAGNopFCAWdWkAADgtt567FM101.png
?

在 Memory Map 選項(xiàng)卡上,我們必須配置接口的地址范圍。由于 MSS 有預(yù)定義地址,我們必須將 AHB Master 地址配置在 0x2000 0000 到 0x6FFF FFFF 的范圍內(nèi),連接到 APB 總線的外設(shè)將位于 0x7000 0000 到 0x7FFF FFFF 的范圍內(nèi)。

poYBAGNopFOADiTAAAD6JJVBuEc703.png
?

現(xiàn)在 Mi-V 內(nèi)核已配置并添加到設(shè)計(jì)中。現(xiàn)在我們必須添加一個帶有兩個啟用 APB 插槽的 CoreAPB3 來連接一個帶有三個通道的 corePWM,以及一個帶有 2 個 GPIO 的 coreGPIO 來連接按鈕。coreAPB3 的地址寬度設(shè)置為 16 位。

pYYBAGNopFWAajUlAADd9-fs7nA561.png
?

最后,為了能夠調(diào)試 Mi-V 內(nèi)核,我們必須添加一個 coreJTAG。將所有內(nèi)核添加到 SmartDesign 后,我們必須像下圖一樣連接所有內(nèi)核。為避免在設(shè)計(jì)規(guī)則檢查中出現(xiàn)警告,請記住將所有未連接的輸出標(biāo)記為未使用。

poYBAGNopFiAeOX6AACFwC-7poY434.png
?

完成所有設(shè)計(jì)后,我們必須檢查設(shè)計(jì)規(guī)則并生成組件。然后我們可以綜合設(shè)計(jì)。

綜合設(shè)計(jì)后,我們可以設(shè)置 IO 約束以選擇輸入和輸出引腳。我們必須打開約束管理器,并使用 IO 編輯器通過單擊編輯來編輯約束。在 IO 編輯器窗口中,我們必須根據(jù)下圖選擇引腳。

pYYBAGNopFqATPAFAACtubRNBHY022.png
?

當(dāng)所有管腳都配置好后,保存并退出 IO Editor,現(xiàn)在我們可以在設(shè)計(jì)流程上實(shí)現(xiàn)設(shè)計(jì)執(zhí)行Place and Route 。

現(xiàn)在,由于設(shè)計(jì)是在結(jié)構(gòu)上實(shí)現(xiàn)的,我們必須檢查設(shè)計(jì)的時序。根據(jù)手冊(第 7 頁),SmartFusion2 SoC 上的 Mi-V 可以達(dá)到 49 到 65 MHz 之間,具體取決于啟用的功能。在這種情況下,設(shè)計(jì)以 50 MHz 運(yùn)行,因此顯然我們不會有任何問題。要檢查時序,首先我們必須定義設(shè)計(jì)的時序約束。為此,我們將讓 Libero 設(shè)計(jì)套件選擇時鐘,并設(shè)置相應(yīng)的錯誤路徑。在 Constraint Manager 中,我們將導(dǎo)航到 Timing 選項(xiàng)卡,然后單擊Derive constraints 。這將為我們的設(shè)計(jì)生成一個包含時序約束的文件。我們可以檢查這個文件并驗(yàn)證輸入時鐘和來自 CCC 的輸出時鐘是否正確定義。

現(xiàn)在,在設(shè)計(jì)流程中,我們可以執(zhí)行驗(yàn)證時序命令并等待驗(yàn)證完成。然后我們可以檢查一個列表,其中包含根據(jù)最差延遲排序的信號。

poYBAGNopF-AchAEAAEKkaRSRaw252.png
?

我們可以看到最慢的信號有 0.608ns 的松弛。

現(xiàn)在,我們必須生成要在軟件話務(wù)臺上使用的所有軟件工件。為此,我們必須打開 Libero 設(shè)計(jì)套件默認(rèn)安裝的固件目錄。我們可以看到我們計(jì)算機(jī)上所有驅(qū)動程序的列表。在這種情況下,我們需要為 CoreGPIO、CorePWM 和 MiV_RV32 硬件抽象層 (HAL) 生成驅(qū)動程序。

poYBAGNopGGATf5lAADmKc4jmx8912.png
?

此外,我們將為 corePWM 生成示例項(xiàng)目 PWM Slow Blink 以將其用作模板。

在軟件話務(wù)臺上,我們將導(dǎo)入示例項(xiàng)目,我們必須進(jìn)行一些更改。首先,我們必須根據(jù)地址映射更改 hw_platform 上的地址。

pYYBAGNopGOAPrl3AADFLQFa_cI222.png
?

我們可以看到coreGPIO在地址0x7000 0000,corePWM在地址0x7000 1000。在hw_platform.h文件中我們要修改corePWM和coreGPIO對應(yīng)的地址,還要修改SYS_CLK_FREQ的定義到相應(yīng)的頻率。

#ifndef HW_PLATFORM_H
#define HW_PLATFORM_H
 
/***************************************************************************//**
* Soft-processor clock definition
* This is the only clock brought over from the Mi-V Soft processor Libero design.
*/
#define SYS_CLK_FREQ                    25000000UL
 
/***************************************************************************//**
* Non-memory Peripheral base addresses
* Format of define is:
* <corename>_<instance>_BASE_ADDR
*/
#define COREGPIO_BASE_ADDR              0x70000000UL
#define COREPWM_BASE_ADDR               0x70001000UL

現(xiàn)在,我們必須更改鏈接器文件以使 RAM 和 ROM 地址與設(shè)計(jì)匹配。我們將使用的鏈接器是 microsemi-riscv-igloo2.ld,因?yàn)樗菑?eNVM 執(zhí)行代碼的模板。在代碼中,我們必須更改 eNVM 和 ram 地址。

MEMORY
{
    envm (rx) : ORIGIN = 0x60000000, LENGTH = 240k
    ram (rwx) : ORIGIN = 0x20000000, LENGTH = 64k
}
 
RAM_START_ADDRESS   = 0x20000000;       /* Must be the same value MEMORY region ram ORIGIN above. */
RAM_SIZE            = 64k;              /* Must be the same value MEMORY region ram LENGTH above. */
STACK_SIZE          = 2k;               /* needs to be calculated for your application */             
HEAP_SIZE           = 2k;               /* needs to be calculated for your application */

最后,在項(xiàng)目配置上,我們還要再做兩處改動。首先,在 C/C++ Build > Settings 上,在鏈接器配置上,我們必須為Release構(gòu)建配置選擇鏈接器文件 microsemi-riscv-igloo2.ld。

pYYBAGNopGaAYLpAAAEBMI9KLW4911.png
?

最后,在 Flash 圖像創(chuàng)建窗口中,我們必須添加標(biāo)志 –change-section-lma *-0x60000000

pYYBAGNopGmACFnUAADpDbIU1yA982.png
?

現(xiàn)在我們可以構(gòu)建項(xiàng)目以生成 hex 文件。

生成 hex 文件后,我們必須回到 Libero 設(shè)計(jì)套件,并使用生成的 hex 文件初始化 eNVM 內(nèi)存。

poYBAGNopGyAOu6wAACwzivVCPs171.png
?

最后生成比特流,并將其導(dǎo)出為 DAT 格式。

現(xiàn)在,我們必須打開 Hello GUI 應(yīng)用程序?qū)⒃O(shè)計(jì)發(fā)送到 Hello FPGA Kit,我們將看到 LD1 是如何緩慢閃爍的。

雖然 RISC-V 是開源的并且可以免費(fèi)使用,但也有一些公司已經(jīng)開發(fā)了內(nèi)核并且可以集成到其他設(shè)備中。Microchip 的PolarFire? SoC設(shè)備就是這種情況,它們是基于 SiFive 處理器(SiFive 公司的 RISC-V 處理器)的SOC。

我們生活在硅公司的不斷變化的時代,盡管 Arm 在該領(lǐng)域擁有大量(大量、大量……)設(shè)備,但 RISC-V 使新設(shè)備的開發(fā)成本更低,而且該標(biāo)準(zhǔn)提供的可配置性可以提供幫助在不需要完整功能的芯片上節(jié)省硅。期待使用 RISC-V 的新 SoC。


下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數(shù)據(jù)手冊
  2. 1.06 MB  |  532次下載  |  免費(fèi)
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費(fèi)
  5. 3TC358743XBG評估板參考手冊
  6. 1.36 MB  |  330次下載  |  免費(fèi)
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費(fèi)
  9. 5元宇宙深度解析—未來的未來-風(fēng)口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費(fèi)
  11. 6迪文DGUS開發(fā)指南
  12. 31.67 MB  |  194次下載  |  免費(fèi)
  13. 7元宇宙底層硬件系列報告
  14. 13.42 MB  |  182次下載  |  免費(fèi)
  15. 8FP5207XR-G1中文應(yīng)用手冊
  16. 1.09 MB  |  178次下載  |  免費(fèi)

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費(fèi)
  3. 2555集成電路應(yīng)用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費(fèi)
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費(fèi)
  7. 4開關(guān)電源設(shè)計(jì)實(shí)例指南
  8. 未知  |  21549次下載  |  免費(fèi)
  9. 5電氣工程師手冊免費(fèi)下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費(fèi)
  11. 6數(shù)字電路基礎(chǔ)pdf(下載)
  12. 未知  |  13750次下載  |  免費(fèi)
  13. 7電子制作實(shí)例集錦 下載
  14. 未知  |  8113次下載  |  免費(fèi)
  15. 8《LED驅(qū)動電路設(shè)計(jì)》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費(fèi)

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費(fèi)
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537798次下載  |  免費(fèi)
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費(fèi)
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費(fèi)
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費(fèi)
  11. 6電路仿真軟件multisim 10.0免費(fèi)下載
  12. 340992  |  191187次下載  |  免費(fèi)
  13. 7十天學(xué)會AVR單片機(jī)與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費(fèi)
  15. 8proe5.0野火版下載(中文版免費(fèi)下載)
  16. 未知  |  138040次下載  |  免費(fèi)