大道至简——RISC-V架构之魂(转载)

[亡魂溺海] 提交于 2019-11-27 01:17:13

1: https://blog.csdn.net/zoomdy/article/details/79580529 2: https://blog.csdn.net/zoomdy/article/details/79580772 3: https://blog.csdn.net/zoomdy/article/details/79580949

4: RISC-V相关的开源项目 https://blog.csdn.net/u013710265/article/details/70332671

和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系列

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!