RISC-V相关的开源项目

和RISC-V相关的有如下一些开源项目: 
工具链
1、riscv-tools - 基本上所有RISC-V相关工具链、仿真器、测试的宏项目,包含以下的项目
  • riscv-gnu-toolchain - GNU工具链
          riscv-gcc - GCC 编译器
          riscv-binutils-gdb - 二进制工具(链接器,汇编器等)、GDB 调试工具
          riscv-glibc - GNU C标准库实现
  • riscv-isa-sim - Spike周期精确指令集模拟器
  • riscv-llvm -LLVM编译器框架
          riscv-clang - 基于LLVM框架的C编译器
  • riscv-opcodes - RISC-V操作码信息和转换脚本
  • riscv-tests - RISC-V指令集测试用例
  • riscv-fesvr - 用于实现在上位机和CPU之间通信机制的库
  • riscv-pk - 提供一个运行RISC-V可执行文件运行的最简的程序运行环境,同时提供一个最简单的bootloader
2、riscv-qemu - 一个支持RISC-V的CPU和系统模拟器

CPU核开源实现
先讲一下UC Berkeley的发起RISC-V项目的团队所设计的兼容RISC-V指令集的CPU核,对于这个团队我简称ucb-bar。必须要提的是,为了设计一个新的指令集,需要不断的尝试各种可能的处理器设计组合。 
Chisel是UC Berkeley开发的一门“硬件构建语言”。从功能上讲,chisel可以将你描述的硬件(写的代码)转化为等价的可综合的Verilog HDL代码或时等价的C++仿真模型。用Verilog你走设计流程变为ASIC或烧录到FPGA上,也可以Simulation。C++主要用于周期精确的功能级仿真,可以也可以输出波形图,主要优点是在用做仿真的时候比Verilog仿真快10倍,又能够很方便的和其他语言的库集成。其他的优点包括chisel支持面向对象,通过OO,可以极大的复用和扩充先有的代码,本质上是提高了可复用性。还有一点,Chisel其实是基于Scala的一种扩展或者DSL,所以从Scala带来的一个优点就是代码巨简洁无比,连线巨简单。最后,如果你还是不明白,那你就这么理解,你再用chisel描述硬件的时候,你是在写生成代码的代码(注:“代码”这个词在这里是不妥的用法)。 
所以,ucb-bar团队的所有处理器全部是用chisel写的,rocket-chip是RISC-V开发的核心团队开发的基于chisel等一系列工具的Generator,在这个框架下,你可以方便的开发你想要的RISC-V处理器,同时还提供调试工具、工具链、DRAM仿真模型等等一系列的基础设施。 
所以先介绍基于rocket-chip(或者说chisel)的CPU核实现
1、ucb-bar/rocket - ucb-bar最主要的实现可以被配置成各种你像要的样子
2、ucb-bar/zscale - 简单的3级流水线RV32I CPU,目前已经基本停止开发
  • ucb-bar/vscale - 就是把zscale编程verilog让你用,因为你懒得学chisel
3、ucb-bar/riscv-boom - 乱序执行CPU,RV64G CPU
4、ucb-bar/riscv-sodor - 教育用途的各种流水线级数实现,实用意义不大

注意:以上这些库都需要在rocket-chip这个框架下才能被正确构建和使用。 
 
下面介绍非chisel的RISC-V CPU实现(排名不分先后):
1、pulp-platform/pulpino - Silde - ETHZ 和 University of Bologna合作开发的面向微控制器领域的RISC-V CPU
  • 包含自定义的一些指令集(硬件循环、DSP等)
  • 比较早的支持RVC也就是压缩指令集
  • 对标ARM Cortex-M系列  
 
基于RISC-V的SoC框架
操作系统移植
阅读更多
换一批

没有更多推荐了,返回首页