普通模式¶
普通模式由一个 UCAgent 进程完成一个验证任务。默认后端是 langchain,UCAgent 直接连接模型;人工操作在当前终端的 PDB/TUI 控制台完成,不需要外部 Code Agent 或 MCP。
本章使用一个有意截断 sum 位宽的 64 位加法器示例。示例用于说明流程,实际项目应替换为自己的 RTL 和验证需求。
2.1 准备 DUT¶
在项目目录中创建 RTL 输入目录(稍后使用它下面的 output/ 作为 UCAgent 工作区):
Adder/Adder.v:
同时准备 Adder/README.md,明确期望行为,例如:
这里的 RTL 有意少提供一位 sum,用于演示发现与规格不一致的问题。实际项目应写清接口、时序和约束;README 是工作流输入,不能让 Agent 自行猜测规格。
2.2 导出 Python DUT 包¶
picker 将 RTL 导出为可由 Python 驱动的 DUT 包。下面的命令把包写入 output/Adder/,并设置仿真时的波形输出路径:
准备完成后的最小结构:
先验证生成的 Python 包可以加载和驱动:
这一步失败时先修复 picker 或仿真环境,再启动 UCAgent。源码仓库的 Makefile 还提供另一条路径,会自动复制 examples/<DUT> 并运行 picker,见下节。
2.3 配置模型¶
LangChain 后端使用 OpenAI 兼容接口。最小配置是:
也可以在 config.yaml 中写入 openai.model_name、openai.openai_api_key 和 openai.openai_api_base。配置加载顺序和覆盖规则见工作流配置。
内置配置默认将 --no-embed-tools 视为开启,即禁用嵌入/检索工具。需要使用这些工具时显式传入:
这只影响嵌入工具,不影响普通文件和测试工具。
2.4 启动验证¶
继续使用本章手动准备的 output/Adder/,在项目目录中启动:
也可以在 UCAgent 源码根目录使用仓库自带的 examples/Adder/,跳过本章的手动准备步骤:
Makefile 使用独立工作区 output/workspace_Adder/,执行的核心命令为:
-l/--loop 使任务立即进入模型循环;省略它时,启动后在控制台输入 loop 才会继续。普通模式不启动 MCP,因此不会自动运行 opencode 等外部 Code Agent。
2.5 运行中干预¶
在 TUI 底部输入 status 查看阶段状态,输入 current_tips 查看当前阶段指导。需要暂停时按 Ctrl+C,修复文件或环境后使用 tool_invoke Check 检查,再输入 loop 继续。完整命令和人工审核流程见人机协同验证与TUI。
2.6 结果位置¶
默认输出目录是工作区下的 unity_test/,测试报告通常位于 uc_test_report/。Makefile 示例的工作区是 output/workspace_Adder/,因此产物位于该目录下;直接 CLI 示例的产物位于 output/unity_test/。文件用途见结果分析与流程总结。