fix(ci): satisfy ruff quality checks
仓库地址: GitLink(主):https://www.gitlink.org.cn/putaoptg/UCagent-test GitHub(镜像):https://github.com/ghptg0711/UCagent-test
仓库地址:
本项目基于 UCAgent(AI 驱动验证智能体)完成对开源 RISC-V 处理器 NutShell 中 Cache 子系统的自动化功能验证。
验证闭环采用 Picker / Toffee 框架搭建,核心验证组件与 DUT 适配层解耦,支持在纯 Python 环境下运行单元回归,也可在 WSL2 环境下对接真实 NutShell Cache DUT 进行端到端验证。
验证平台包含以下关键能力:
# 环境要求:Python 3.10+, WSL2 (Ubuntu), Verilator 5.032 python -m venv .venv source .venv/bin/activate pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -e . -r requirements-dev.txt # 检查 Git 对象、gitlink、嵌套仓库和漏提交文件 python tools/check_repo_health.py # 运行测试 python -m pytest tests/ -v --asyncio-mode=auto # 运行核心回归 PYTHONPATH=src python -m cache_vip.regression # WSL2 全量验证:预编译 DUT 需要 Python 3.14 bash run_wsl_tests.sh
run_wsl_tests.sh 默认使用清华 PyPI 镜像;可通过 PIP_INDEX_URL 覆盖。xspcomm 源码固定为官方提交 23ba5c4,优先从 GitLink 国内镜像获取,构建结果缓存在 ~/.cache/nutshell-cache-verification/。缺少 CMake、SWIG 或 Python 开发头文件时, 安装脚本会使用当前 Ubuntu APT 源补齐依赖。 仓库中 rtl/generated_real/_UT_RealNutShellCache.so 使用 Python 3.13+ C API,并由 Python 3.14 环境生成;真实 DUT 验证请使用 Python 3.14。 该历史证据二进制还使用了 Picker 模板原有的 -march=native,不能保证跨 CPU 直接运行。标准 GitHub-hosted CI 只执行可移植的 core 与 DUT contract 测试;真实 DUT job 仅能在带 real-dut 标签、CPU 兼容且已安装 Picker 的 self-hosted runner 上手工触发。新的 DUT 构建模板默认使用通用 x86-64 指令集。
run_wsl_tests.sh
PIP_INDEX_URL
23ba5c4
~/.cache/nutshell-cache-verification/
rtl/generated_real/_UT_RealNutShellCache.so
-march=native
real-dut
. ├── src/cache_vip/ # 验证组件 │ ├── reference_model.py # 参考模型 │ ├── generator.py # 激励生成器 │ ├── scoreboard.py # 计分板 │ ├── coverage.py # 覆盖率收集器 │ ├── faults.py # 故障注入 │ ├── regression.py # 回归入口 │ ├── toffee_adapter.py # Toffee 适配层 │ ├── real_dut_adapter.py # 真实 DUT 适配器 │ ├── memory_agent.py # 内存代理 │ └── transactions.py # 事务定义 ├── tests/ # 测试用例(Mock DUT + real DUT smoke) ├── docs/ # 文档(方案设计、验收计划、验证报告等) ├── reports/ # 验证报告(回归摘要、覆盖率、缺陷跟踪) ├── configs/ # 信号映射配置(signal_map*.yaml) ├── scripts/ # Verilator 构建、仿真和覆盖率脚本 └── rtl/ # RTL 和 Picker 生成产物 ├── dut_gen/ # 预编译 Verilog RTL └── generated_real/ # Picker 生成的 Python DUT 封装
注意:NutShell Cache RTL 以预编译 Verilog 形式引入(非 Chisel/Scala 源码)。 原始源码来自 NutShell 项目的 Cache 子系统,通过 Chisel 编译为 Verilog 后提交, 以确保验证环境的可复现性。 本地可选的 NutShell/ 源码仓库不会作为顶层 gitlink 提交;其来源与固定提交记录在 third_party_sources.json,仓库健康检查会在该目录存在时验证提交、工作区和对象完整性。
NutShell/
third_party_sources.json
reports/core_regression_summary.md
详细验证数据见 reports/coverage_summary.md 与 reports/core_regression_summary.md。
reports/coverage_summary.md
项目通过 GitHub Actions 持续集成(见 .github/workflows/verification.yml):
.github/workflows/verification.yml
本项目遵循 Apache License 2.0。
版权所有:中国计算机学会技术支持:开源发展技术委员会 京ICP备13000930号-9 京公网安备 11010802047560号
NutShell Cache 自动化验证(基于 UCAgent)
Overview
本项目基于 UCAgent(AI 驱动验证智能体)完成对开源 RISC-V 处理器 NutShell 中 Cache 子系统的自动化功能验证。
验证闭环采用 Picker / Toffee 框架搭建,核心验证组件与 DUT 适配层解耦,支持在纯 Python 环境下运行单元回归,也可在 WSL2 环境下对接真实 NutShell Cache DUT 进行端到端验证。
验证平台包含以下关键能力:
Quick Start
run_wsl_tests.sh默认使用清华 PyPI 镜像;可通过PIP_INDEX_URL覆盖。xspcomm 源码固定为官方提交23ba5c4,优先从 GitLink 国内镜像获取,构建结果缓存在~/.cache/nutshell-cache-verification/。缺少 CMake、SWIG 或 Python 开发头文件时, 安装脚本会使用当前 Ubuntu APT 源补齐依赖。 仓库中rtl/generated_real/_UT_RealNutShellCache.so使用 Python 3.13+ C API,并由 Python 3.14 环境生成;真实 DUT 验证请使用 Python 3.14。 该历史证据二进制还使用了 Picker 模板原有的-march=native,不能保证跨 CPU 直接运行。标准 GitHub-hosted CI 只执行可移植的 core 与 DUT contract 测试;真实 DUT job 仅能在带real-dut标签、CPU 兼容且已安装 Picker 的 self-hosted runner 上手工触发。新的 DUT 构建模板默认使用通用 x86-64 指令集。Project Structure
注意:NutShell Cache RTL 以预编译 Verilog 形式引入(非 Chisel/Scala 源码)。 原始源码来自 NutShell 项目的 Cache 子系统,通过 Chisel 编译为 Verilog 后提交, 以确保验证环境的可复现性。 本地可选的
NutShell/源码仓库不会作为顶层 gitlink 提交;其来源与固定提交记录在third_party_sources.json,仓库健康检查会在该目录存在时验证提交、工作区和对象完整性。Verification Results
reports/core_regression_summary.md详细验证数据见
reports/coverage_summary.md与reports/core_regression_summary.md。CI
项目通过 GitHub Actions 持续集成(见
.github/workflows/verification.yml):License
本项目遵循 Apache License 2.0。