RISC-V 架构认证测试(riscv-arch-test)怎么跑起来?一份从零到通的实操笔记

📅 2026/8/24 3:03:45
RISC-V 架构认证测试(riscv-arch-test)怎么跑起来?一份从零到通的实操笔记
RISC-V 架构认证测试riscv-arch-test怎么跑起来一份从零到通的实操笔记【免费下载链接】riscv-arch-testThe RISC-V Architectural Certification Tests (ACTs) are a set of assembly language tests designed to certify that a design faithfully implements the RISC-V specification.项目地址: https://gitcode.com/gh_mirrors/ri/riscv-arch-test刚 clone 下 riscv-arch-test满屏的 Makefile、YAML 和汇编第一反应往往是这东西到底怎么跑它和普通单元测试不太一样——框架会生成一批自检 ELF靠 Sail 参考模型提前算好期望值再由你的 RISC-V DUT 实际执行答错当场报错。这份笔记带你从环境搭建走到批量生成测试中途的坑都列在文末。项目速览riscv-arch-test 是什么riscv-arch-test 是 RISC-V 架构认证测试ACT套件一批汇编语言用例加上 ACT4 构建框架用来认证你的实现是否忠实于 RISC-V 规范。它由 RISC-V 基金会的架构测试 SIG 维护适合写核、验 RTL 或跑仿真、需要拿认证级结论的人。技术栈很直接Python 3.10测试生成框架YAMLDUT 配置与规范映射RISC-V 汇编测试本体Sail 参考模型生成期望结果make 加 mise/uv工具链管理从零到跑通五个动作出第一批测试拿到项目。clone 仓库并进入目录git clone https://gitcode.com/gh_mirrors/ri/riscv-arch-test cd riscv-arch-test环境准备。装一下 mise它会把 Python 环境、uv、Ruby/UDB 依赖一次性处理干净curl https://mise.jdx.dev/install.sh | sh进入仓库后首次使用mise 会提示信任.mise.toml选 Yes 即可mise trust .mise.toml装 RISC-V 交叉工具链GCC 或 Clang 二选一和 Sail 参考模型把两者的 bin 目录加进 PATH用riscv64-unknown-elf-gcc --version和sail_riscv_sim --version验证。注意工具链构建可能要跑几个小时趁这个时间把配置准备好。配置你的 DUT。目录里放五样东西框架配置test_config.yaml、UDB 配置 yaml声明扩展和参数、rvmodel_macros.h打印、停机、中断等宏、链接脚本link.ld外加sail.json和 rvtest_config 头文件。仓库config/下每个目录都是可抄的作业照着改 DUT 名、内存映射和扩展列表就行。生成测试。在项目根目录执行CONFIG_FILESconfig/spike/spike-rv64-max/test_config.yaml makeELF 落在work/spike-rv64-max/elfs/每个都内嵌了参考模型算出的期望值拷进你自己的 testbench 或仿真器执行控制台会逐个打印 PASSED / FAILED。深入一层配置自己的 DUT失败用例这样定位如果你打算给自己的核加一套配置那么照着config/spike/或config/sail/下的现成目录抄一份改 DUT 名、内存映射和 UDB 扩展再用CONFIG_FILES你的路径 make重新生成即可不用动框架代码。如果你打算排查挂掉的用例先看控制台它会打出出错的 PC、指令、寄存器名和期望/实际值。用objdump对照 PC 理解测试在测什么实际值错了多半是 DUT 的 bug期望值错了多半是配置对不上。拿不准时加DEBUGTrue和EXTENSIONSZba只重生成那个扩展会额外产出 Sail 的指令级 trace 和 trap 报告比干瞪眼强得多。避坑清单 现象make 报命令找不到 → 原因mise 的信任提示没点 Yes框架依赖根本没装 → 修复mise trust .mise.toml后重试现象riscv64-unknown-elf-gcc找不到 → 原因工具链和 Sail 的 bin 不在 PATH → 修复把两者 bin 目录写进~/.bashrc再开新终端现象大批用例 FAILED报错五花八门 → 原因UDB 配置与真实核不符期望值全错 → 修复逐项核对 yaml 里的扩展和参数现象Sm 等特权扩展的用例不见了 → 原因Makefile 默认排除了部分在稳定中的扩展 → 修复先读 Makefile 注释里的排除原因确认参数支持后再放开 EXCLUDE_EXTENSIONS下一步新增测试、coverpoint 和测试计划模板的完整流程在docs/DeveloperGuide.md从 CSV 测试计划讲到覆盖调试值得通读一遍。提 PR 之前过一遍CONTRIBUTING.md遇到疑似框架 bug 直接开 issue。【免费下载链接】riscv-arch-testThe RISC-V Architectural Certification Tests (ACTs) are a set of assembly language tests designed to certify that a design faithfully implements the RISC-V specification.项目地址: https://gitcode.com/gh_mirrors/ri/riscv-arch-test创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考