ChipBench
收藏资源简介:
该仓库提供了一个全面的AI辅助芯片设计基准,包含多个数据集:1) Verilog生成数据集,包括自包含模块、非自包含设计和CPU IP级别问题;2) Verilog调试数据集,包含不同类型的错误(时序错误、赋值错误、算术错误、状态机错误)和不同的调试设置(0-shot和1-shot);3) 参考模型生成数据集,用于生成Python、CXXRTL和SystemC的功能参考模型。
This repository provides a comprehensive AI-assisted chip design benchmark that includes multiple datasets: 1) Verilog generation dataset, covering self-contained modules, non-self-contained designs, and CPU IP-level tasks; 2) Verilog debugging dataset, containing various types of errors (timing errors, assignment errors, arithmetic errors, finite state machine (FSM) errors) and different debugging settings (0-shot and 1-shot); 3) Reference model generation dataset, used to generate functional reference models in Python, CXXRTL, and SystemC.
ChipBench 数据集概述
数据集地址
https://github.com/zhongkaiyu/ChipBench
数据集简介
这是一个端到端的评估框架,涵盖Verilog生成、Verilog调试、参考模型生成和实用工具。框架概念上分为四个主要组件。
主要组件与目录结构
1. Verilog生成
目录:Verilog Gen/
dataset_self_contain/- 每个问题是一个自包含模块,具有单个顶层模块(例如
TopModule),无外部子模块依赖。 - 包含具有挑战性的组合逻辑和时序逻辑问题,适用于评估从规范到RTL的生成。
- 每个问题是一个自包含模块,具有单个顶层模块(例如
dataset_not_self_contain/- 每个问题是一个非自包含设计,其中
Top Module实例化了多个Sub‑Module。 - 评估模型处理层次化设计和模块接口的能力。
- 每个问题是一个非自包含设计,其中
dataset_cpu_ip/- 包含更复杂的CPU IP级别问题,例如ALU、寄存器文件、分支和控制逻辑。
- 对应于高级别图中的“CPU IP / ALU / Reg File / Branch / Control ...”区域,针对高难度RTL生成。
2. Verilog调试
目录:Verilog Debugging/
每个子目录对应特定的调试设置(0-shot / 1-shot)和错误类型(状态机 / 时序 / 算术 / 赋值),与图中的“Verilog Debugging”块匹配。
- 错误类型:
- 时序错误:与时序相关的问题。
- 赋值错误:不正确的阻塞/非阻塞或组合逻辑赋值。
- 算术错误:不正确的算术运算。
- 状态机错误:错误的状态转换或输出逻辑。
- 调试设置:
dataset_debug_zero_shot_*:0-shot调试,无上下文示例。dataset_debug_one_shot_*:1-shot调试,带有一个上下文示例问题。
- 典型问题文件三元组:
*_prompt.txt:提供给LLM的提示(自然语言+代码上下文),用于生成或修复Verilog。*_ref.sv:参考Verilog实现(无错误)。*_test.sv:用于自动仿真和检查的测试平台。
3. 参考模型生成
目录:Ref Model Gen/
此组件生成功能参考模型,对应于图中的“Ref Model Gen”块。
gen.py:使用data.jsonl中的规范生成多种后端(Python / CXXRTL / SystemC)的参考模型。gen_python_prompt.txt/gen_cxxrtl_prompt.txt/gen_systemc_prompt.txt:每种后端的提示模板。data.jsonl:问题和规范的统一描述。key.cfg:示例API密钥配置(请勿提交真实密钥)。- 生成的参考模型示例位于
Tool Box/下:Tool Box/python/dut.pyTool Box/cxxrtl/dut.ccTool Box/systemc/dut.cc这些参考模型可用于交叉检查Verilog设计。
4. 工具箱
目录:Tool Box/
此组件对应于“Tool Box”块,主要提供:
- 跨语言一致性检查
crosslang_verify.py:验证同一任务的多个实现(Python / CXXRTL / SystemC / Verilog)行为是否一致,并报告结果。verilog/:包含dut.sv(被测设计)和ref.sv(参考RTL)。python/,cxxrtl/,systemc/:特定语言的参考模型。
- 测试平台/数据生成
- 通过结合参考模型和脚本,可以为不同问题批量生成测试平台和训练数据。
脚本(评估入口点)
目录:scripts/
sv-generate:统一的LLM Verilog生成/调试脚本。- 支持多种后端(OpenAI, DeepSeek, Gemini, Claude, Together, 本地vLLM服务器)。
--task选择高级提示风格,例如:code-complete-iccad2023:完成TopModule的主体。spec-to-rtl:直接从问题规范生成RTL。
--examples和--rules控制少样本示例和编码规范。
- 其他文件如
verilog-example-prefix_*.txt和prompt-example-prefix.txt为不同任务/调试设置提供前缀示例。




