RISC-V指令集分类
RISC-V的指令集使用模块化的方式进行组织,每一个模块使用一个英文字母来表示。RISC-V最基本也是唯一强制要求实现的指令集部分是由I字母表示的基本整数指令子集,使用该整数指令子集,便能够实现完整的软件编译器。其他的指令子集部分均为可选的模块,具有代表性的模块包括M/A/F/D/C,如表1所示。
为了提高代码密度,RISC-V架构也提供可选的“压缩”指令子集,由英文字母C表示。压缩指令的指令编码长度为16比特,而普通的非压缩指令的长度为32比特。以上这些模块的一个特定组合“IMAFD”,也被称为“通用”组合,由英文字母G表示。因此RV32G表示RV32IMAFD,同理RV64G表示RV64IMAFD。
为了进一步减少面积,RISC-V架构还提供一种“嵌入式”架构,由英文字母E表示。该架构主要用于追求极低面积与功耗的深嵌入式场景。该架构仅需要支持16个通用整数寄存器,而非嵌入式的普通架构则需要支持32个通用整数寄存器。
通过以上的模块化指令集,能够选择不同的组合来满足不同的应用。譬如,追求小面积低功耗的嵌入式场景 可以选择使用RV32EC架构;而大型的64位架构则可以选择RV64G。
除了上述的模块,还有若干的模块包括L、B、P、V和T等。这些扩展目前大多数还在不断完善和定义中,尚未最终确定,因此本文在此不做详细论述。
RISC-V官网
RISC官网网址如下:
https://riscv.org/
官网包括:
1、ISA相关:
指令集下载,特权指令集下载,调试规范下载;
2、软件相关:
包括工具链,模拟器(simulator),调试器,BootLoader,IDE,OS,Security等。
3、内核及SOC相关:
罗列了目前已经实现的商用的或者开源的内核或者SOC芯片,同时将相关GPL或者BSD等版权也进行了罗列,带GITHUB网址链接的都是开源的,能够进行下载。比较风靡的两个是BOOM和SIFIVE。
rocket-chip搭建
https://github.com/chipsalliance/rocket-chip
其它尝试
Simulator搭建
从官网上找到两个在github上star数最多的两个模拟器,分别为jor1k(1.2k)和riscv-isa-sim(500)。
https://github.com/s-macke/jor1k/
https://github.com/riscv/riscv-isa-sim
下面先尝试使用riscv-isa-sim搭建模拟器,运行软件环境。
riscv-isa-sim编译
git clone https://github.com/riscv/riscv-isa-sim.git
sudo apt-get install device-tree-compiler
mkdir build
cd build
…/configure --prefix=$RISCV
make
sudo make install
运行命令为:
riscv64-unknown-elf-gcc -o hello hello.c
spike pk hello
C编译器搭建
git clone --recursive https://github.com/riscv/riscv-gnu-toolchain
来源:CSDN
作者:weixin_39587614
链接:https://blog.csdn.net/weixin_39587614/article/details/103233434