DVC 设计文件需求清单检查工具标准技术文件(Software Specification)

软件名称: dvc_check_require_interface.py

DVC 接口检查工具 程序名:dvc_check_require_interface.py

目标与用途

本程序用于作为接口工具,通过指定设计路径 <phase>/<block>/<stage>/<version>,自动查找相应的 STG_REQ_FILE_LIST 规则文件,并调用 dvc_check_require.py 对当前版本的设计文件进行校验,确认是否符合设计交付要求。


输入参数

参数名类型描述
stage_path字符串格式必须为 <phase>/<block>/<stage>/<version>,不可多或少

环境变量要求

程序运行前必须设置以下环境变量:

环境变量名描述
DVC_LOCAL本地设计数据库的根路径
DVC_HOME中央规则数据库的根路径

若任一未设定,将输出 fail 并退出。


STG_REQ_FILE_LIST 查找逻辑(优先级)

依下列优先顺序查找存在的规则文件,找到后即停止:

  1. ${DVC_LOCAL}/<phase>/<block>/<stage>/<version>/STG_REQ_FILE_LIST
  2. ${DVC_LOCAL}/<phase>/<block>/<stage>/STG_REQ_FILE_LIST
  3. ${DVC_HOME}/stage/<stage>/STG_REQ_FILE_LIST

若三处均无文件存在,程序将返回:

fail
STG_REQ_FILE_LIST not found in any candidate path

检查路径定义

程序将始终对以下路径进行检查:

${DVC_LOCAL}/<phase>/<block>/<stage>/<version>

行为流程

  1. 解析用户传入的 stage_path
  2. 验证并提取 <phase>/<block>/<stage>/<version> 四级路径
  3. 根据查找顺序定位 STG_REQ_FILE_LIST
  4. 调用外部程序 dvc_check_require.py:dvc_check_require.py –check_path <resolved_path> –req_list_path <rules_file>
  5. 捕获其标准输出与返回码并据此决定本程序的输出结果

输出格式

成功

pass

失败示例

  • 设计文件缺失:fail
    Missing design_file_item: SYMBOL_TABLE
    Required patterns: [‘.*\.tbl’]
  • 格式错误:fail
    Invalid stage_path format. Expected <phase>/<block>/<stage>/<version>
  • 环境变量缺失:fail
    Missing DVC_LOCAL or DVC_HOME environment variable

命令行使用方式

export DVC_LOCAL=/path/to/local/dvc
export DVC_HOME=/path/to/global/home

python3 dvc_check_require_interface.py logic/gpu001/syn/GL

外部依赖

  • Python 3.6+
  • 环境变量:DVC_LOCALDVC_HOME
  • 可调用的 dvc_check_require.py,需存在于 $PATH

异常处理

异常类型输出结果
参数格式错误fail + Invalid stage_path format
环境变量未设置fail + Missing DVC_LOCAL or DVC_HOME
查找规则失败fail + STG_REQ_FILE_LIST not found
程序执行失败fail + Error running dvc_check_require.py

软件名称: dvc_check_require.py

DVC 文件需求检查工具 程序名:`dvc_check_require.py

目标与用途

本程序用于根据指定规则文件(STG_REQ_FILE_LIST)检查一个设计文件目录下是否包含所需的设计文件。主要应用于设计数据交付前的自动验证流程,确保设计文件目录中包含所有必要文件。


输入说明

1. --check_path

  • 类型:路径(string)
  • 描述:要检查的设计文件目录路径,程序将递归扫描此目录下所有文件。

2. --req_list_path

  • 类型:文件路径(string)
  • 描述:规则定义文件路径(STG_REQ_FILE_LIST)。用于描述每类设计文件应满足的正则表达式与要求级别。

STG_REQ_FILE_LIST 文件格式

每一行表示一个设计文件类型的检查规则,格式如下:

<design_file_item>  <operator>  <expression1> <expression2> ...

规则语法说明

  • <design_file_item>:逻辑名称,用于标识一类设计文件,如 VERILOG_FILESYMBOL_TABLE
  • <operator>
    • +=必要项,必须至少存在一个文件符合任一表达式;
    • *=可选项,目录中可以没有,但若有文件存在,则必须符合任一表达式。
  • <expression>:使用 /.../ 包裹的正则表达式,用于匹配文件路径。

示例:

# 注释与空行将被忽略
VERILOG_FILE   += /.*\.v/ /.*\.gv/
VERILOG_TOP     *= /.*_top\.v/
SYMBOL_TABLE   += /.*\.tbl/

程序行为说明

  1. 程序读取并解析规则文件 STG_REQ_FILE_LIST
  2. 递归扫描 check_path 下所有文件路径。
  3. 对每一个 design_file_item 项目:
    • 若为 +=,且无任何文件匹配其表达式,记录为失败;
    • 若为 *=,不强制要求有匹配项,但存在的文件需符合表达式。
  4. 根据是否存在不满足的 += 项目,决定程序整体返回结果。

输出说明

命令行输出:

  • 若所有必要项(+=)都满足条件:
pass
  • 若存在未满足的必要项:
fail
Missing design_file_item: SYMBOL_TABLE
Required patterns: ['.*\.tbl']

程序退出码(Exit Code):

  • 0:检查通过
  • 1:检查失败

使用范例

python dvc_check_require.py --check_path ./design_v1 --req_list_path ./STG_REQ_FILE_LIST

依赖环境

  • Python 3.6+
  • 标准库模块:argparse, re, pathlib, sys

限制与说明

  • 所有表达式需使用 /regex/ 格式编写,内部为 Python 风格正则表达式。
  • 暂不支持多个规则文件合并处理。
  • 检查范围仅为文件路径,不解析文件内容。