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

1: http://www.javashuo.com/article/p-oenlxcpt-mg.html 2: https://blog.csdn.net/zoomdy/article/details/79580772 3: http://www.javashuo.com/article/p-exhndssw-kc.html编程

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

和RISC-V相关的有以下一些开源项目: 工具链 一、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 二、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核实现 一、ucb-bar/rocket - ucb-bar最主要的实现能够被配置成各类你像要的样子 二、ucb-bar/zscale - 简单的3级流水线RV32I CPU,目前已经基本中止开发 ucb-bar/vscale - 就是把zscale编程verilog让你用,由于你懒得学chisel 三、ucb-bar/riscv-boom - 乱序执行CPU,RV64G CPU 四、ucb-bar/riscv-sodor - 教育用途的各类流水线级数实现,实用意义不大测试

注意:以上这些库都须要在rocket-chip这个框架下才能被正确构建和使用。.net

下面介绍非chisel的RISC-V CPU实现(排名不分前后): 一、pulp-platform/pulpino - Silde - ETHZ 和 University of Bologna合做开发的面向微控制器领域的RISC-V CPU 包含自定义的一些指令集(硬件循环、DSP等) 比较早的支持RVC也就是压缩指令集 对标ARM Cortex-M系列设计

相关文章
相关标签/搜索