能综合验证的RISCV内核开源项目调研选择

1. 评估的背景目的

考虑维度: 

资源需求,开放程度,学习难度,工具链资源。 

最好是国产FPGA支持,或者开源EDA工具链支持。 

目标还是寻求一款在FPGA上低成本跑起来并能够支持一定的程序开发,最好实现一款能把RT-THREAD或FREERTOS跑起来的MCU. 

2. CSDN&知乎综合性文章 

1).汇总性文章 

五、分享优秀的 RISC-V 项目资源_玩转risc-v-CSDN博客 

 开源 riscv 的一些实现和资料链接_riscv-v 开源代码-CSDN博客

RISCV 开源内核收集-CSDN博客 

 

知乎的汇总文章: 

FPGA/IC优质开源项目(九)RISC - 知乎 (zhihu.com)

2)其中几个特色项目

sifive家的freedom

仓库:

GitHub - sifive/freedom: Source files for SiFive's Freedom platforms

介绍文章: 

开源RISC-V 项目Freedom在Arty-7-100T开发板上的实现_arty a7 100t 程序烧写-CSDN博客 

这个Freedom项目其实是可以生成两种SoC的:

  • E300
  • U500

以及支持四种FPGA平台:

  • Arty-35T
  • Arty-100T
  • VC707
  • VC118

FPGA 开发板约2699, 淘宝可购买,淘宝链接就支持riscv,文档应该较为齐备。 

Arty A7-100T Artix-7 Xilinx FPGA RISC-V 开发板 Digilent-淘宝网 (taobao.com)

 35T已停产,不过只要1500左右。 

蜂鸟: 

基于ZYNQ7010实现的蜂鸟E203: 

RISCV SOC项目(基于蜂鸟E203开源RISCV CPU)_蜂鸟e203搭建soc-CSDN博客 

 【RISC-V_SoC】蜂鸟E203学习笔记-CSDN博客

 

蜂鸟处理器是在国内RISC-V社区大名鼎鼎的芯来科技开发的RISC-V MCU系列。E203是其开源的一款单privilege mode,两级流水(不严格说法)的MCU,主打小面积、低功耗。使用Verilog开发。麻雀虽小,五脏俱全,也包括debug module,代码严谨优美,用来学习设计没得说。官方文档不算多,但是市面上可以买到胡振波大牛写的两本书,也算是学习资料丰富了。

两本什么书? 

胡振波大牛写的《手把手教你设计CPU——RISC-V处理器篇》

 官方仓库:

github: https://github.com/SI-RISCV/e200_opensource

一句话点评:初学者学习RISC-V处理器设计首选。

 

 无剑100: 

 官方仓库

github: https://github.com/T-head-Semi/wujian100_open

开源wujian100-vivado综合-CSDN博客

 优势是带了AI能力。 

项目链接: 

项目首页 - wujian100_open - GitCode

 探索Wujian100_open:T-head Semi打造的高性能AI芯片开源框架-CSDN博客

 平头哥目的应该是推广这套平台,里面包括软硬件系统及SDK,从开源的程度来看,重点应该是软件。当然我是从研究学习硬件部分出发来说的,如果是使用无剑平台,包括仿真、FPGA、软件开发,应该是没有问题的。

 Ibex

提到开源RISC-V就不能不提Riscy系列了,尤其是zero-riscy,使用很广泛。Ibex是脱胎于zero-riscy的core,支持RV32IMC及一些Z系列指令,由LowRISC维护。Ibex小巧精悍,文档详实,学习资料丰富,支持verilator, 可以使用verilator+openOCD+GDB 仿真时debug。对于我这样的重度Verilator依赖者来说非常友好。

github: https://github.com/lowRISC/ibex

文档:https://ibex-core.readthedocs.io/en/latest/introduction.html 

 VexRiscv

VexRiscv可配置,可支持RV32IMCA,可配置为经典5级流水。VexRiscv使用SpinalHDL开发,类似Chisel,也是一款基于Scala的硬件建构语言。可配置MMU,所以理论上可以支持操作系统。

VexRiscv有个官方的SoC:Briey,使用AXI接口。和Rocket Chip一样,支持Verilator+OpenOCD+GDB仿真。和Rocketchip一样都是使用scala解释器sbt工具,超占内存,快把我的老爷机拖垮了。 

VexRiscv文档很少很粗略。

github:https://github.com/SpinalHDL/VexRiscv

一句话点评:佳作,SpinalHDL代表作,需入SpinalHDL的坑。

 3. 从能买到开发板的硬件实现平台来看

 开发板选择: 

1) XILINX 平台:

A7通用开发板: 

XILINX FPGA开发板A7全功能开发板豌豆FPGA零基础自学到进阶-淘宝网 (taobao.com)

 

有个性价比还不错,针对RISV的xilinx开发板: 

Perf-V/perfv/riscv开发板/Artix-7 35T/50T/100T/xilinx/FPGA-淘宝网 (taobao.com)

 

芯来的官方开发板: (蜂鸟就是芯来的开源项目)

MCU200T开发板/蜂鸟FPGA/riscv/RISC-V 国产FPGA开发板/芯来科技-淘宝网 (taobao.com)

芯来的文档, 针对蜂鸟平台专用的开发板,应该资源和环境是比较容易上手的。 

RISC-V开发板_专业RISC-V处理器IP及解决方案公司 (nucleisys.com)

芯来是两家主要的国产IP厂商之一,官方支持的好处是产品化可直接衔接IP厂商走向商品化芯片设计。  

2)国产高云平台:

高云TANG MEGA 138K

Sipeed Tang Mega 138K Pro Dock 高云 RISCV FPGA 开发板 集创赛-淘宝网 (taobao.com) 

可以运行软核的TANG

Sipeed Tang Primer 25K高云GW5A RISCV FPGA开发板PMOD SDRAM-淘宝网 (taobao.com) 

25K级别, 者20K 都可以。 

Tang Nano 20K - Sipeed Wiki

开发板资料可以仔细研究下。 都可以上“小麻雀处理器”
 

4. 软件仓库汇总

 

1).github上的汇总项目: 

GitHub - riscvarchive/riscv-cores-list: RISC-V Cores, SoC platforms and SoCs

 

这个够全了。 

比较典型的几个

​​​

GitHub - xiaowuzxc/SparrowRV: An embed RISC-V Core with RV32IMZicsr ISA named SparrowRV.

典型如lbex

Open source silicon · lowRISC: Collaborative open silicon engineering 

GitHub - darklife/darkriscv: opensouce RISC-V cpu core implemented in Verilog from scratch in one night! 

 GitHub - ucb-bar/chipyard: An Agile RISC-V SoC Design Framework with in-order cores, out-of-order cores, accelerators, and more

GitHub - stnolting/neorv32: :rocket: A tiny, customizable and extensible MCU-class 32-bit RISC-V soft-core CPU and microcontroller-like SoC written in platform-independent VHDL.


 

 

 

2).  GITEE上的其他开源项目: 

tinyriscv: 一个从零开始写的极简、非常易懂的RISC-V处理器核。 (gitee.com)

yuheng-riscv-soc: 玉衡是一款从零开始写的 RISC-V 内核的处理器,基于 Verilog 硬件设计语言实现,五级流水线设计,支持 RV32IM 指令集,支持中断,支持 RT-Thread Nano 3.1.5 (gitee.com) 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/6023.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

人工智能 | Embedding

Embedding是什么 Embedding是一种将离散的符或对象映射到连续向量空间技术。在自然语言处理领域中,Embedding常用于将单词或句子为向量形式,以便计算机可以更好地理解和处理文本数据。 通过使用Embedding,我们可以将每个单词或句子表示为一…

eclipse开启服务后,网页无法打开,如何解决?

🏆本文收录于「Bug调优」专栏,主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&…

kubectl_入门_service详解

Service 我们知道 Pod 的生命周期是有限的。可以用 ReplicaSet 和Deployment 来动态的创建和销毁 Pod,每个 Pod 都有自己的 IP 地址,但是如果 Pod 重建了的话那么他的 IP 很有可能也就变化了。 这就会带来一个问题:比如我们有一些后端的 Po…

jupyter notebook切换conda虚拟环境

首先,切换到某个虚拟环境,本人切换到了d2l环境: (d2l) C:\Users\10129>pip install ipykernel然后,如代码所示安装ipykernel包 最后,按下述代码执行: (d2l) C:\Users\10129>python -m ipykernel i…

mac电脑关于ios端的appium真机自动化测试环境搭建

一、app store 下载xcode,需要登录apple id 再开始下载 二、安装homebrew 1、终端输入命令&#xff1a; curl -fsSL <https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh>如果不能直接安装&#xff0c;而是出现了很多内容&#xff0c;那么这个时候不要着急&…

国产服务器操作系统部署NTP服务 _ 统信UOS _ 麒麟 _ 中科方德

原文链接&#xff1a;国产服务器操作系统部署NTP服务 | 统信UOS | 麒麟 | 中科方德 Hello&#xff0c;大家好啊&#xff01;在保持服务器时间的精确同步方面&#xff0c;时间同步服务器&#xff08;NTP服务器&#xff09;扮演着至关重要的角色&#xff0c;它能确保系统操作的时…

【论文阅读笔记】TS2Vec: Towards Universal Representation of Time Series

【论文阅读笔记】TS2Vec: Towards Universal Representation of Time Series 摘要 这段文字介绍了一个名为TS2Vec的通用框架&#xff0c;用于学习时间序列数据的表示&#xff0c;可以在任意语义层次上进行。与现有方法不同&#xff0c;TS2Vec通过对增强的上下文视图进行层次化…

【热门话题】Stylus 入门与实践详解

&#x1f308;个人主页: 鑫宝Code &#x1f525;热门专栏: 闲话杂谈&#xff5c; 炫酷HTML | JavaScript基础 ​&#x1f4ab;个人格言: "如无必要&#xff0c;勿增实体" 文章目录 Stylus 入门与实践详解引言一、Stylus 简介1.1 什么是 Stylus&#xff1f;1.2 S…

【51单片机LCD1602显示矩阵键盘原始键值】2023-6-1

缘由https://ask.csdn.net/questions/7955623 #include "reg52.h" sbit LCD1602_RS P3^5;//RS端数据命令选择(H/L) sbit LCD1602_RW P3^6;//RW端读写选择(H/L) sbit LCD1602_EN P3^7;//EN端使能信号上升沿25ns void PanDuan1602(/*LCD1602忙判断*/) { LCD1602…

基于Vue Router和element-ui的LayOut

一、展示 二、代码 app.vue <template><div id"app"><el-container style"border: 1px solid #eee; height: 100vh"><el-aside v-bind:width"asideWidth" style"background-color: rgb(48, 65, 86);"><…

前端高频算法

分析算法排序&#xff1a; 时间复杂度: 一个算法执行所耗费的时间。 空间复杂度: 运行完一个程序所需内存的大小。 执行效率、内存消耗、稳定性 三方面入手。 1. 排序 1.1 冒泡排序 冒泡的过程只涉及相邻数据的交换操作&#xff0c;所以它的空间复杂度为 O(1)。 为了保证…

政安晨:【Keras机器学习示例演绎】(二十八)—— 使用 卷积神经网络与循环神经网络 架构进行视频分类

目录 数据收集 设置 定义超参数 数据准备 序列模型 推论 政安晨的个人主页&#xff1a;政安晨 欢迎 &#x1f44d;点赞✍评论⭐收藏 收录专栏: TensorFlow与Keras机器学习实战 希望政安晨的博客能够对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正…

分享自己一篇在亚马逊云科技AWS官网发的Blog技术文章

小李哥在亚马逊AWS官网&#xff0c;作为第一作者发了自己的第一篇AWS Blog文章&#xff0c;也是自己今年在AWS官网的第11篇文章。文章主要内容是描述为出海的金融企业&#xff0c;搭建满足PCI-DSS合规、FIPS 140-2 Level 3安全标准的传输中数据加密云端方案&#xff0c;主要用于…

更深层次理解传输层两协议【UDP | TCP】【UDP 缓冲区 | TCP 8种策略 | 三次握手四次挥手】

博客主页&#xff1a;花果山~程序猿-CSDN博客 文章分栏&#xff1a;Linux_花果山~程序猿的博客-CSDN博客 关注我一起学习&#xff0c;一起进步&#xff0c;一起探索编程的无限可能吧&#xff01;让我们一起努力&#xff0c;一起成长&#xff01; 目录 再谈端口号 端口号的返回…

jsp驾校管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 JSP 驾校管理系统 是一套完善的web设计系统&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统采用serlvetdaobean mvc 模式&#xff0c;系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Myeclipse8.5开发…

解码Starknet Verifier:深入逆向工程之旅

1. 引言 Sandstorm为&#xff1a; 能提交独立proof给StarkWare的Ethereum Verifier&#xff0c;的首个开源的STARK prover。 开源代码见&#xff1a; https://github.com/andrewmilson/sandstorm&#xff08;Rust&#xff09; L2Beat 提供了以太坊上Starknet的合约架构图&…

C语言/数据结构——每日一题(反转链表)

一.前言 大家好&#xff01;今天又是每日一题环节。今天我为大家分享了一道单链表题——反转链表。 废话不多说&#xff0c;让我们直接进入正题吧。 二.正文 1.1题目信息 这是一道leetCode上面的一道题&#xff1a;https://leetcode.cn/problems/reverse-linked-list 1.2解…

2.2 Java全栈开发前端+后端(全栈工程师进阶之路)-前端框架VUE3-基础-Vue基本语法

文本渲染指令 文本渲染指令-v-html与v-text Vue使用了基于HTML的模板语法&#xff0c;允许开发者声明式地将DOM绑定至底层Vue实例的数据。所有Vue的模板都是 合法的HTML&#xff0c;所以能被遵循规范的浏览器和HTML解析器解析。 在前面&#xff0c;我们一直使用的是字符串插…

Java面试八股之强软弱虚引用的概念及区别

Java中强软弱虚引用的概念及区别 在Java中&#xff0c;强引用、软引用、弱引用和虚引用是四种不同类型的引用&#xff0c;它们在对象生命周期管理、垃圾收集&#xff08;Garbage Collection, GC&#xff09;以及内存管理方面有着不同的行为和用途。以下是它们的概念和主要区别…

2.Neo4j的搭建启动

Graph Database 图数据库 版本对应关系 官网都是高版本&#xff0c;推荐使用下载地址可以找到社区老版本&#xff1a; https://we-yun.com/doc/neo4j/ neo4j.bat 启动脚本 cypher-shell.bat 执行CQL语句的。 import文件夹可以放入excel,csv等数据文件&#xff0c;导入到…