仓库资料
commitid:0e2e5128b240ff069adddff8d20a322df985633e
CVA6
CVA6 是一个六级单发射、顺序执行的 CPU,实现了 64 位 RISC-V 指令集。它完全实现了用户级 ISA V 2.3 中规定的 I、M、A 和 C 扩展以及草案特权扩展 1.10。它实现了三个特权级别 M、S、U,以完全支持类 Unix 操作系统。此外,它符合草案外部调试规范 0.13。
它具有可配置大小、独立的 TLB、硬件页表遍历器和分支预测(分支目标缓冲区和分支历史表)。其设计的主要目标是减少关键路径长度。
环境配置
以下说明将允许您在 CVA6 APU 测试平台(corev_apu/tb)中编译和运行 CVA6 APU(其中实例化了 CVA6 核心)的 Verilator 模型。
在所有构建和模拟脚本执行过程中,您可以使用环境变量 NUM_JOBS 来设置 make 启动的并发作业数量:
- 如果未定义,NUM_JOBS 将默认为 1,从而顺序执行 make 作业。
- 设置 NUM_JOBS 为显式值时,建议不要超过系统可用虚拟核心总数的 2/3。
1. 下载代码
git clone https://github.com/openhwgroup/cva6.git
cd cva6
git submodule update --init --recursive
2. 配置工具链:安装 GCC 工具链的构建前提条件,然后再安装工具链本身。
强烈建议使用提供的脚本构建的工具链。
创建脚本set_tool.sh
# 1. Select an installation location for the toolchain (here: the default RISC-V tooling directory $RISCV).
RISCV=$RISCV_TOOLS # (path to toolchain install)
INSTALL_DIR=$RISCV
# 2. Fetch the source code of the toolchain (assumes Internet access.)
bash $(cva6 code dir)/cva6/util/toolchain-builder/get-toolchain.sh
# 3. Build and install the toolchain (requires write+create permissions for $INSTALL_DIR.)
bash $(cva6 code dir)/cva6/util/toolchain-builder/build-toolchain.sh $INSTALL_DIR
3. Install cmake, version 3.14 or higher.
4. 设置RISCV
export RISCV=/path/to/toolchain/installation/directory
5.安装help2man and device-tree-compiler .
sudo apt-get install help2man device-tree-compiler
6.安装riscv-dv 依赖
pip3 install -r verif/sim/dv/requirements.txt
7.运行
以下命令来安装自定义的 Spike 和 Verilator(即这些版本必须用于模拟 CVA6)以及这些测试套件。
# DV_SIMULATORS 在下一部分详细说明
export DV_SIMULATORS=veri-testharness,spike
bash verif/regress/smoke-tests.sh
运行独立模拟
通过使用 verif/sim/cva6.py
来模拟 CVA6。
环境变量 DV_SIMULATORS
允许您指定要使用的模拟器。
支持四种模拟类型:
- veri-testharness: 使用 Verilator 和 corev_apu/testharness 测试平台
- vcs-testharness: 使用 VCS 和 corev_apu/testharness 测试平台
- vcs-uvm: 使用 VCS 和 UVM 测试平台
- Spike ISS
您可以设置多个模拟器,例如:
export DV_SIMULATORS=veri-testharness,vcs-testharness,vcs_uvm
如果恰好提供了两个模拟器,则会比较它