在现代ASIC芯片设计项目中,设计团队往往跨地域、跨时区进行协作。由于团队成员可能取用了错误版本的设计资料,导致设计流程受阻、甚至芯片流片失败的案例层出不穷。
为了解决这一关键痛点,DVC(Design Version Control)系统应运而生。它提供了一套清晰的设计数据组织架构与版本控管机制,让团队成员可以在专注设计的同时,避免因资料混乱而引发的错误。
📁 DVC设计数据目录结构(四层级)
DVC采用统一的四层目录结构,反映设计进程及数据层级:
DVC/
📁 P<数字>-<阶段描述>/ # Phase:设计阶段,由PM定义,如 P1-trial、P2-stable
📁 <模块名>/ # Block:功能模块,小写英文简写,如 top、cpu、ddr
📁 <三位数字>-<功能>/ # Stage:设计步骤,如 400-APR、500-TIMING
📁 <日期>_<用途>/ # Version:版本标识,如 20240615_init、20240701_final
🔍 示例结构图:
DVC/
├── P1-trial/
│ └── cpu/
│ └── 400-APR/
│ ├── 20240601_init/
│ └── 20240615_fixmbist/
通过这样的架构,设计资料得以清楚归类、版本清晰,不仅方便团队成员浏览与回溯,也能与自动化流程紧密整合。
✅ STG_REQ_FILE_LIST:设计文件需求清单检查机制
为确保每一个设计阶段都已提交必要的设计文件,DVC引入 STG_REQ_FILE_LIST 文件机制,由项目负责人(PM/PL)或项目成员事先定义各阶段所需文件类型与规则。
而后在每一设计阶段时,PM/PL可以使用”dvc local checkreq <phase>/<block>/<stage>/<version>”命令快速校验成员是否有缺漏的设计文件尚未提交。
对于不同客户专案(project)之各stage也可制定不同的STG_REQ_FILE_LIST file, 而后使用”dvc local put <phase>/<block>/<stage>/ STG_REQ_FILE_LIST --reqlist“命令放置于”DVC Local”之 DVC/<phase>/<block>/<stage>/ 之下
以及不同stage version也可制定不同的STG_REQ_FILE_LIST file, 使用”dvc local put <phase>/<block>/<stage>/<version> STG_REQ_FILE_LIST --reqlist“命令放置于”DVC Local”之 DVC/<phase>/<block>/<stage>/<version>/ 之下
采用此文档的优先顺序为
- DVC/<phase>/<block>/<stage>/<version>/STG_REQ_FILE_LIST
- DVC/<phase>/<block>/<stage>/STG_REQ_FILE_LIST
- dop/dvc/stage/<stage_name>/STG_REQ_FILE_LIST
📌 需求文件配置优先顺序如下:
| 优先级 | 路径示例 | 描述 |
|---|---|---|
| 1️⃣ 高 | DVC/<phase>/<block>/<stage>/<version>/STG_REQ_FILE_LIST | 特定版本专用需求 |
| 2️⃣ 中 | DVC/<phase>/<block>/<stage>/STG_REQ_FILE_LIST | 特定stage通用需求 |
| 3️⃣ 低 | dop/dvc/stage/<stage_name>/STG_REQ_FILE_LIST | 系统默认需求 |
🛠️ 工具介绍:dvc_check_require.py
dvc_check_require.py 是 DVC Local 架构中的一个关键检查工具,主要用于检查指定设计路径下的文件是否符合相应 STG_REQ_FILE_LIST 中定义的要求。
🧩 主要功能:
- 自动识别最适合的
STG_REQ_FILE_LIST - 递归检查设计目录下是否存在每类需求文件
- 输出检查结果(通过/失败)与缺失项说明
🚀 搭配方式:
- 需求文件可使用
dvc local put --reqlist上传至对应目录 - 搭配 DFA Flow 执行机制,可实现设计自动验证流程
