色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

電子發燒友App

硬聲App

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

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

3天內不再提示
電子發燒友網>電子資料下載>電子資料>使用FPGA創建RISC V系統

使用FPGA創建RISC V系統

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

資料介紹

描述

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

正如我們在 Arm Cortex?-M1 或最近的 Arm Cortex-M3 中看到的那樣,還有大量基于 RISC-V 架構的軟核可以在 FPGA 上實現。在這篇文章中,我們將使用可用于 Microchip FPGA 的內核Mi-V內核來開發基于 RISC-V 的示例設計。

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

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

RISC-V 的另一個特點是高可配置性,我們可以根據它們實現的擴展找到不同的基于 RISC-V 的內核。核心中可用的擴展對應于您可以在 RV32 之后找到的字母,例如 RV32IMAF 具有 I(基本整數指令集)、M(整數乘法和除法的標準擴展)、A(原子標準擴展指令)和 F(單精度浮點的標準擴展)。MiV_RV32 內核可用的擴展是 IMC,C 對應于(壓縮指令的標準擴展)。

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

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

?

poYBAGNopEGACTOhAACnxacTJSE018.png
?

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

poYBAGNopESAT-EpAACWSEUec7g983.png
?

創建項目后,Libero? 設計套件會詢問我們系統構建器的名稱,在我的例子中,我選擇 top 作為名稱。接下來,將打開 MSS 配置向導并顯示內存選擇窗口。在 MSS 中,我們將作為存儲程序的 eNVM 和執行程序的 SRAM,因此我們將選擇這兩個選項。

pYYBAGNopEeAMyF9AAElLe2rfE8005.png
?

現在我們必須創建一個內存客戶端,目前我們將選擇選項內容用 0 填充,因為稍后我們將使用 SoftConsole 上生成的 hex 文件初始化內存。通過單擊下一步,我們將選擇外圍設備。在這種情況下,外圍設備是 MSS 和結構之間的接口。我們必須選中窗口頂部的框,單擊下一步。

poYBAGNopEmAfUmHAACmwyAJC8o277.png
?

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

poYBAGNopEyAIL6vAADhV49PPKw952.png
?

其余窗口將保持默認。向導完成后,我們將擁有一個包含 MSS 的 SmartDesign。現在我們必須在設計中添加我們需要的其余塊。我們將從 Mi-V_RV32 內核開始。我們可以在目錄選項卡的處理器文件夾中找到它。核心的配置器將被打開。在第一個選項卡上,我們必須選擇要添加到核心的擴展,在本例中為 IMC,以及乘法器的位置。此外,我們可以選擇我們需要的接口選項,在這種情況下,APB_master 用于外圍設備,AHB Master 用于內存。復位向量地址將被配置為 MSS 上 eNVM 內存上的第一個地址,即 0x6000 0000。

pYYBAGNopFCAWdWkAADgtt567FM101.png
?

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

poYBAGNopFOADiTAAAD6JJVBuEc703.png
?

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

pYYBAGNopFWAajUlAADd9-fs7nA561.png
?

最后,為了能夠調試 Mi-V 內核,我們必須添加一個 coreJTAG。將所有內核添加到 SmartDesign 后,我們必須像下圖一樣連接所有內核。為避免在設計規則檢查中出現警告,請記住將所有未連接的輸出標記為未使用。

poYBAGNopFiAeOX6AACFwC-7poY434.png
?

完成所有設計后,我們必須檢查設計規則并生成組件。然后我們可以綜合設計。

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

pYYBAGNopFqATPAFAACtubRNBHY022.png
?

當所有管腳都配置好后,保存并退出 IO Editor,現在我們可以在設計流程上實現設計執行Place and Route 。

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

現在,在設計流程中,我們可以執行驗證時序命令并等待驗證完成。然后我們可以檢查一個列表,其中包含根據最差延遲排序的信號

poYBAGNopF-AchAEAAEKkaRSRaw252.png
?

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

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

poYBAGNopGGATf5lAADmKc4jmx8912.png
?

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

在軟件話務臺上,我們將導入示例項目,我們必須進行一些更改。首先,我們必須根據地址映射更改 hw_platform 上的地址。

pYYBAGNopGOAPrl3AADFLQFa_cI222.png
?

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

#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

現在,我們必須更改鏈接器文件以使 RAM 和 ROM 地址與設計匹配。我們將使用的鏈接器是 microsemi-riscv-igloo2.ld,因為它是從 eNVM 執行代碼的模板。在代碼中,我們必須更改 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 */

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

pYYBAGNopGaAYLpAAAEBMI9KLW4911.png
?

最后,在 Flash 圖像創建窗口中,我們必須添加標志 –change-section-lma *-0x60000000

pYYBAGNopGmACFnUAADpDbIU1yA982.png
?

現在我們可以構建項目以生成 hex 文件。

生成 hex 文件后,我們必須回到 Libero 設計套件,并使用生成的 hex 文件初始化 eNVM 內存。

poYBAGNopGyAOu6wAACwzivVCPs171.png
?

最后生成比特流,并將其導出為 DAT 格式。

現在,我們必須打開 Hello GUI 應用程序將設計發送到 Hello FPGA Kit,我們將看到 LD1 是如何緩慢閃爍的。

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

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


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

評論

查看更多

下載排行

本周

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

本月

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

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉中文版)
  4. 78.1 MB  |  537798次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191187次下載  |  免費
  13. 7十天學會AVR單片機與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138040次下載  |  免費
主站蜘蛛池模板: 学生无码AV一区二区三区| 熟妇内谢69XXXXXA片| 色多多深夜福利免费观看| 亚洲AV无码乱码A片无码蜜桃| 伊人久久国产免费观看视频| asian极品呦女xx农村| 久久99热成人精品国产| 各种肉黄浪荡故事集| 91免费永久在线地址| 午夜深情在线观看免费| 亚洲精品久久久992KVTV| 91精品欧美一区二区三区| 国产AV果冻传奇麻豆| 久久免费精品一区二区| 特黄特色大片免费播放器9| 又大又硬又爽免费视频| 国产露脸A片国语露对白| 欧美成人免费一区二区三区不卡| 亚洲精品动漫免费二区| 吃奶啃奶玩乳漫画| 免费精品国产人妻国语麻豆| 亚洲色噜噜狠狠网站| 国产精品久AAAAA片| 日本xxxxxxx| av天堂电影网| 免费看欧美xxx片| 中文字幕成人在线观看| 久久99热这里只有精品66| 欲香欲色天天影视大全| 国产自产第一区c国产| 人妻精品久久无码专区| www.av一区| 全免费A敌肛交毛片免费懂色AV| 99精品国产电影| 女配穿书病娇被强啪h| 99re 这里只有精品| 暖暖 免费 高清 日本视频5| 91精品国产91| 年轻的老师5理伦片| 超碰98人人插| 日韩亚洲国产欧美免费观看|