VeriFlow-CC:用 Claude Code 一键打通 RTL 设计流水线,从需求到综合只需一条命令

0 阅读4分钟

VeriFlow-CC:用 Claude Code 一键打通 RTL 设计流水线,从需求到综合只需一条命令

作为一个写过无数 Verilog 的工程师,我一直在想:能不能用 AI 把 RTL 设计的重复劳动自动化?今天介绍的项目 VeriFlow-CC,给出了一个优雅的答案。

一、这个项目是什么?

VeriFlow-CC 是一个Claude Code 驱动的 RTL 硬件设计流水线。它的核心理念很简单:把 Claude Code 的主会话当作"大脑",通过 8 个严格串行的阶段,自动完成从需求分析到综合报告的完整硬件设计流程。

最吸引我的是它的零依赖设计——不需要 LangGraph、不需要 LangChain、不需要 pip install 任何包,只需要 Claude Code 和 Python 3.10+。

二、8 阶段流水线全景

architect -> microarch -> timing -> coder -> skill_d -> lint -> sim -> synth
   (1)        (2)         (3)       (4)       (5)       (6)     (7)     (8)
阶段类型输入输出执行方式
architectLLMrequirement.mdspec.json + behavior_spec.md主会话
microarchLLMspec.jsonmicro_arch.md主会话
timingLLMspec + microarchtiming_model.yaml + testbench主会话
coderLLM (子 Agent)全部上游文档rtl/*.vvf-coder 子 Agent
skill_dLLMRTL + specstatic_report.json主会话
lintEDARTLlogs/lint.logiverilog
simEDARTL + TBlogs/sim.logiverilog + vvp
synthEDARTL + specsynth_report.txtyosys

只有 Stage 4(代码生成)会调用子 Agent,其余 7 个阶段全部在主 Claude 会话中完成。这种"1 层嵌套"的设计让调试和状态追踪变得非常简单。

三、安装与使用:3 分钟上手

安装:

python install.py

这会把 Skill 和 Agent 安装到 ~/.claude/ 目录下。

准备项目:

my_alu/
├── requirement.md        # 功能需求(必需)
├── constraints.md        # 约束条件(可选)
├── design_intent.md      # 设计意图(可选)
└── context/              # 参考资料(可选)

运行流水线:

/vf-pipeline /path/to/my_alu

对,就是在 Claude Code 里敲这一条命令,剩下的全部自动完成。

四、几个设计细节

1. 需求澄清 checklist(Stage 1)

在生成任何代码之前,pipeline 会在 7 个维度逐一检查需求的完整性:

  • A. 功能性:模块行为、接口协议、数据格式、FSM、时钟域
  • B. 约束:时钟频率、目标平台、面积/功耗预算
  • C. 设计意图:架构风格、模块划分、接口偏好
  • D. 算法与协议:标准文档、伪代码、关键公式、测试向量
  • E. 时序完整性:cycle-level 行为、latency、throughput、背压
  • F. 领域知识:所属领域、标准引用、前置概念
  • G. 信息完整性:隐含假设、缺失场景

这不是形式化的走过场——每个条目都必须显式确认,有任何模糊的地方会用 AskUserQuestion 逐条追问用户。

2. behavior_spec.md:把"行为"和"接口"分离

Stage 1 现在产出两个文档:

  • spec.json:接口契约(ports、parameters、connectivity、constraints)
  • behavior_spec.md:行为规格(cycle-accurate behavior、FSM、timing contracts、algorithm pseudocode)

这种分离让下游的 coder Agent 能精准理解"做什么"和"怎么做"。

3. Readiness Check 门控

在离开 Stage 1 之前,会执行严格的 readiness check:

  • spec.json 必须有 top module、完整 ports、constraints、design_intent
  • behavior_spec.md 必须覆盖每个 module 的 Domain Knowledge、Cycle-Accurate Behavior、Timing Contracts
  • 数学校验:counter width、clock divider accuracy、latency sanity、constraint consistency

不通过就停下来问用户,绝不在需求不完整的情况下往下走。

4. 错误恢复:3 次重试 + 智能回滚

当 lint/sim/synth 失败时:

  • 第 1 次失败:修复 RTL,重试当前阶段
  • 第 2 次失败:回滚到更早阶段,重新串行执行
  • 第 3 次失败:停下来通知用户

回滚策略按错误类型分类:

错误类型回滚目标重跑路径
syntaxcodercoder → skill_d → lint → sim → synth
logicmicroarchmicroarch → timing → coder → ...
timingtimingtiming → coder → ...

5. 状态持久化:随时中断,随时恢复

Pipeline 状态保存在 .veriflow/pipeline_state.json,EDA 环境保存在 .veriflow/eda_env.sh。关掉电脑、明天再开,直接运行 /vf-pipeline 就能从断点继续。

五、实战示例:ChaCha20 流密码

项目自带了 ChaCha20 的示例需求文档。需求文件详细定义了:

  • 32 位 uint32 运算单元,mod 2^32 加法
  • Quarter Round 函数(8 步 ARX 操作)
  • 20 轮迭代(10 次双轮:奇数轮列运算 + 偶数轮对角线运算)
  • 小端序序列化

运行 /vf-pipeline example_test/chacha20 后,pipeline 自动生成 RTL、testbench、运行 lint 和 simulation,最终输出综合报告。

六、适合谁用?

  • FPGA/ASIC 工程师:快速原型验证、算法到 RTL 的自动化
  • 算法工程师:有算法但不想手写 Verilog,把需求写清楚就行
  • 学生/研究者:学习硬件设计流程,看 AI 如何从需求推导出微架构

七、总结

VeriFlow-CC 的精妙之处在于不把 AI 当作黑盒生成器,而是把它当作一个严格执行设计流程的工程师:

  • 需求不清?先问清楚再动手。
  • 代码出错?分类诊断、有限重试、智能回滚。
  • 环境复杂?自动发现 EDA 工具,持久化配置。

它不是要取代硬件工程师,而是把重复性的设计流程自动化,让人专注于真正有创造力的架构决策。


项目地址:github.com/bjwanneng/v…