在现代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>/ 之下

采用此文档的优先顺序为

  1. DVC/<phase>/<block>/<stage>/<version>/STG_REQ_FILE_LIST
  2. DVC/<phase>/<block>/<stage>/STG_REQ_FILE_LIST
  3. 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 执行机制,可实现设计自动验证流程