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

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

3天內不再提示

自制RISC-V源碼與設計流程案例分析

454398 ? 來源:PYNQ開源社區 ? 作者:PYNQ開源社區 ? 2020-11-08 10:05 ? 次閱讀

Overlay 簡介

RISC-V-On-PYNQ Overlay實現了在PYNQ-Z2板上的RISC-V處理器及工具鏈集成,并提供了完整的RISC-V源碼與設計流程,得益于PYNQ軟件框架,其支持在Jupyter Notebook對RISC-V進行編譯、調試與驗證,即可以在Jupyter Notebook上編寫一段C/C++/RISC-V匯編程序,將編譯后的二進制文件放到picoRV32上運行。

以下兩張圖是本Overlay的系統框圖,其中picoRV32是一個開源的RISC-V核,它具有占用資源少的特點,并且它自帶AXI接口,可以方便地使用Xilinx提供的各種基于AXI總線的IP。本項目有兩個工程,它們的區別主要是picoRV32接的RAM:上圖只使用BRAM,而下圖同時使用到了BRAM和外部DRAM。

快速開始

- 環境需求PYNQ V2.4。

- 在PS端,我們需要編譯安裝RISC-V工具鏈和對應的庫。

Github內的項目文件Clone到本地。

git clone

https://github.com/Siudya/RISC-V-On-PYNQ.git /home/xilinx/ RISC-V-On-PYNQ

在RISC-V-On-PYNQ/notebooks/tutorial中有5個Notebook,包含了Overlay完整的部署流程。

鑒于從零開始部署的時間會較長,所以我們也提供了完整的鏡像文件,直接燒錄到SD卡就可以運行(注:提供的ext4分區剩余容量較小,請用戶根據需要自行調整)。

在OpenHW的遠程PYNQ實驗平臺上也已經為大家安裝好了環境,可以直接使用。

示例Notebook

裝好Overlay后,打開RISC-V-Examples/PicoRV32 Processor Mixed-Memory Processor Demo.ipynb,這是使用DRAM和BRAM混合儲存器的示例工程。實際上代碼與使用只BRAM的工程類似,只不過使用了不同的bit文件。

開始時下載bit文件,在這個過程中所有驅動都會注冊完成。

可以用help函數查看Overlay和processor的有關信息,可以看到,這里的Overlay和processor使用了本項目設計的驅動,這說明驅動注冊成功了。

在Notebook中包含了一段C程序,作用是返回一個數組的第二個元素??梢钥吹轿覀兪褂昧?a href="http://www.qd573.com/tags/python/" target="_blank">python magics來聲明并編譯一段C程序,這和PYNQ本身對Microblaze核的編程方法類似。然后調用processor的run方法將程序裝載進RAM中來運行picoRV32。

我們也可以調用BRAM controller的mmio來看看內存的情況。在這之后也有使用C++和匯編程序的例子,這里不作贅述,讀者通過執行Jupyter Notebook中的代碼來體驗。

Overlay詳解

- PS與PL功能劃分

PS部分主要是用Python通過PYNQ框架控制PL中各IP的運行。

PL部分則例化一個pcioRV32核和和BRAM。

- Vivado工程block design介紹

具體硬件設計是這樣的:

上圖是項目的總體布局,下圖是processor展開后的內容。

其中BRAM是一個雙口RAM,它兩端連接的是PS和picoRV32。另外,可以看到PS的GPIO連接的是processor的復位端,當二進制程序裝入BRAM后,復位picoRV32,使它運行程序。picoRV32運行結束后,會觸發一個中斷。利用這個設計,可以例化許多RISC-V核心,并讓其運行獨立的程序,實現一個靈活可配置的眾核處理器,事實上已經有用這種方法實現了例化超過一千個RISC-V核的項目。

在Processor內部,picoRV32通過AXI總線來訪問其他IP,可以使用AXI總線來給它增加各種各樣不同的外設。在這里,本項目只是添加了另一個內存(通過PS的HP AXI 0接口訪問內存控制器)。

另外,這里的picoRV32核心的運行頻率可以通過利用AXI總線配置時鐘資源來調整。

注意:RISC-V核的hierarchy名字必須為processor,并且processor中的復位模塊必須為rscvReset。如果改動這些名字,必須修改對應的驅動源文件,否則不能正確加載驅動。

Overlay API介紹

在此工程中,通過riscvc、riscvcpp和riscvasm這三個python magics來編譯一段程序。例如:%%riscvcpp test_cpp overlay.processor。其中test_cpp是程序的名字,overlay.processor是想要寫入的RISCV核hierarchy的名字。然后在本cell中編寫代碼,運行后將調用前面安裝的RISC-V的工具鏈編譯。

編譯成功后,利用processor的run方法運行程序。例如:overlay.processor.run(test_cpp, test_cpp_arg)。其中test_cpp是程序名字,test_cpp_arg是參數數組,它兼容numpy的類型。

對于更詳細的解釋,可以參看前面的tutorial中5個notebook和項目中的.py源文件。

編輯:hfy

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

    關注

    70

    文章

    2129

    瀏覽量

    119691
  • AXI
    AXI
    +關注

    關注

    1

    文章

    126

    瀏覽量

    16350
  • 內存控制器
    +關注

    關注

    0

    文章

    31

    瀏覽量

    8822
  • RISC-V
    +關注

    關注

    42

    文章

    1982

    瀏覽量

    45327
收藏 人收藏

    評論

    相關推薦

    risc-v的mcu對RTOS兼容性如何

    相關的RTOS開發流程。 然而,由于RISC-V的開源特性和廣泛的社區支持,工程師可以更容易地獲取所需的文檔、示例代碼和社區幫助。 綜上所述,RISC-V的MCU對RTOS的兼容性在很大程度上取決于
    發表于 05-27 16:26

    RISC-V的MCU與ARM對比

    RISC-V的MCU與ARM在多個方面存在顯著的區別,以下是兩者的對比: 開源與專有 RISC-VRISC-V是一種開源的指令集架構(ISA),允許任何人免費使用、修改和貢獻RISC-V
    發表于 05-27 15:58

    國產RISC-V芯片性能穩定嗎?

    想使用國產的RISC-V架構的芯片做無人機投送快遞的方案,可行性高嗎?國產的RISC-V MCU穩定么?
    發表于 05-20 15:43

    RISC-V有哪些優點和缺點

    RISC-V作為一種開源的指令集架構(ISA),具有一系列顯著的優點和潛在的缺點。以下是RISC-V的主要優點和缺點概述: 優點: 開源與開放性:RISC-V是開源的,這意味著任何人都可以獲取、修改
    發表于 04-28 09:03

    RISC-V有哪些優缺點?是堅持ARM方向還是投入risc-V的懷抱?

    RISC-V作為一種開源的指令集架構(ISA),具有一系列顯著的優點和潛在的缺點。以下是RISC-V的主要優點和缺點概述: 優點 : 開源與開放性 :RISC-V是開源的,這意味著任何人都可以獲取
    發表于 04-28 08:51

    RISC-V 基礎學習:RISC-V 基礎介紹

    文章來源于漫談嵌入式 ,作者Vinson 在談到 RISC-V 之前,我們先梳理幾個概念 1. 芯片 芯片 是所有半導體元器件的統稱,它是把一定數量的常用電子元件(如電阻,電容,晶體管等
    發表于 03-12 10:25

    RISC-V的迷人之處

    有45天的公開審查流程,如果有利益相關者預見到問題,他們可以提供反饋(或不提供反饋)。他說:“這并不會減少?!?但是,所需的文件更少,而概念證明的門檻更低。 整個過程也沒有改變。所有RISC-V擴展
    發表于 02-12 20:58

    什么是RISC-V

    siFive搞RISC-V 賽昉搞RISC-V 香山搞RISC-V 到底什么是RISC-V? 先不問有什么用,RISC-V目前的能力來說,工
    發表于 02-02 10:41

    RISC-V開放架構設計之道|閱讀體驗】RISC-V基礎整數指令集

    第2章 RV32I:RISC-V基礎整數指令集 本章重點講解構成RISC-V基礎整數指令集的基本指令和指令格式。主要包含寄存器間操作的R型,用于短立即數和取數操作的I型,用于存數操作的S型,用于條件
    發表于 01-31 21:10

    RISC-V開放架構設計之道|閱讀體驗】一本別出心裁的RISC-V架構之書(第一章)

    的計算機體系架構專 別出心裁地按照RISC-V模塊化的指令來組織內容 對比x86、ARM 和MIPS 的設計,通過對比分析,突顯RISC-V 的優勢 可以作為從業者隨時翻閱的案頭參考書 開頭的蒙娜麗莎像讓
    發表于 01-24 19:06

    RISC-V開放架構設計之道|閱讀體驗】 RISC-V設計必備之案頭小冊

    有幸參加發燒友電子的論壇評測,這兩天收到了這本需要評測的書籍《RISC-V開放架構設計之道》,全書簡單講了RISC-V指令集中目前已經完善的幾個指令集部分,并展望了未來可能會在指令集
    發表于 01-22 16:24

    設計一個risc-v芯片流程是什么?

    我非常想了解如果想設計一個類似risc-v的處理器,整個開發流程是怎樣的?
    發表于 12-09 18:39

    談一談ARM上市與RISC-V

    ,中國還逐漸擁有了一大批從設計到系統,從工具到測試,最終到人才培養的全流程自主研發與發展能力。 今天Arm的對手是一個RISC-V,未來Arm面對的將是以龐大市場做背景,擁有全產業鏈的生態完全體。曾經
    發表于 09-30 12:22

    RISC-V 的未來在中國嗎

    2023 年 RISC-V 中國峰會上,倪光南院士表示,“RISC-V 的未來在中國,而中國半導體芯片產業也需要 RISC-V,開源的 RISC-V 已成為中國業界最受歡迎的芯片架構”
    發表于 08-26 14:16

    2023 RISC-V中國峰會:RISC-V深圳技術分享會(同期會議)

    本屆峰會將以“RISC-V生態共建”為主題,結合當下全球新形勢,把握全球新時機,呈現RISC-V全球新觀點、新趨勢。 由電子發燒友主辦的RISC-V技術分享會(深圳站)將于8月26日在深圳舉辦
    發表于 08-15 17:27
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>