DVC Central Native Command 软件语法规格书


一、简介

本规格文件定义 DVC Native Command(原生命令)集的功能与使用方式,涵盖项目、阶段、模块、版本、容器等对象在设计版本控制(Design Version Control, DVC)系统中的创建、签出、签入、更新、删除与路径操作等任务。

本文件规范 dvc_ 开头的一系列命令之调用语法。该类命令通常位于 bin/ 目录,其本质为链接至 csh/ 中的 C-shell 脚本。命令集用于在 DVC 系统中实现设计数据的建置、签入、签出、删除、链接与路径设置等,支持五层设计结构。


二、DVC 安装与环境设置

2.1 一次性安装(Install Once)

cd /tools/icdop/
git clone https://github.com/icdop/dvc.git

cd $HOME
/tools/icdop/dvc/setup.cshrc

此步骤将建立 $HOME/CSHRC.dvc,用于后续 source DVC 环境。

2.2 使用环境初始化(每次登录)

source $HOME/CSHRC.dvc

此文件设置:

  • DVC_HOME=/tools/icdop/dvc
  • PATH=$DVC_HOME/bin:$PATH

三、项目结构说明

$DESIGN_PROJT/
└── $DESIGN_PHASE/
  └── $DESIGN_BLOCK/
      └── $DESIGN_STAGE/
          └── $DESIGN_VERSN/
层级命名示例定义来源
PhaseP1-trial, P2-finalPM
Blockchip, cpu, ddrDesign Lead
Stage000-DATA, 400-APRTool Flow
Version170910-aprDesigner

建议 Version 命名格式为 <日期>-<标签>


四、SVN 文件服务器初始化(CAD/IT)

编辑 /projects/<proj_id>/flow/CSHRC.dvc

setenv DVC_HOME /tools/icdop/dvc
setenv PATH     $DVC_HOME/bin:$PATH
setenv SVN_ROOT /projects/<proj_id>/svn
setenv SVN_MODE svn
setenv SVN_HOST svn_server
setenv SVN_PORT 13301

初始化方式:

  • File 模式:
dvc_init_server --root $SVN_ROOT --mode file
  • SVN 模式:
dvc_init_server --root $SVN_ROOT --mode svn --host $SVN_HOST --port $SVN_PORT

五、DVC 原生命令语法分类

所有 DVC 路径遵循以下格式:

<project>/<phase>/<block>/<stage>/<version>[/container]

必要层级为前五层,容器为可选子目录。

  • Project:项目代码,顶层目录。
  • Phase:项目阶段,如 P1-trial、P2-stable 等。
  • Block:功能模块,如 cpu、chip。
  • Stage:设计阶段,如 000-DATA、200-LOGIC、400-APR。
  • Version:具体版本,如 20240615_v1。
  • Container:容器目录(选用),用于储存多个流程步骤(如 place, route)。

六、命令语法分类

6.1 设计对象建构命令(Create)

dvc_create_project    <project>
dvc_create_phase     <phase>
dvc_create_block     <block>
dvc_create_stage     <stage>
dvc_create_version   <version>
dvc_create_container <container>
dvc_create_design     <phase>/<block>/<stage>/<version>
dvc_create_folder     <path>

命令功能说明
dvc_create_project创建项目
dvc_create_phase创建阶段
dvc_create_block创建模块
dvc_create_stage创建设计阶段
dvc_create_version创建设计版本
dvc_create_container创建设计容器(子流程)
dvc_create_folder创建文件夹

6.2 签出命令(Checkout)

dvc_checkout_project    <project> [--recursive]
dvc_checkout_phase     <phase> [--recursive]
dvc_checkout_block     <block> [--recursive]
dvc_checkout_stage     <stage> [--recursive]
dvc_checkout_version   <version> [--recursive]
dvc_checkout_design     <phase>/<block>/<stage>/<version>
dvc_checkout_container <container>
dvc_checkout_folder     <path>
dvc_checkout_dvc_path   <path>

命令功能说明
dvc_checkout_project签出整个项目数据结构
dvc_checkout_phase签出阶段下所有模块数据
dvc_checkout_block签出模块下所有阶段
dvc_checkout_stage签出阶段下所有版本
dvc_checkout_version签出版本下所有容器
dvc_checkout_design签出完整设计资料
dvc_checkout_container签出容器数据
dvc_checkout_folder签出任意指定目录结构
dvc_checkout_dvc_path依路径签出任意节点数据

6.3 签入命令(Checkin)

dvc_checkin_project    <project>
dvc_checkin_phase     <phase>
dvc_checkin_block     <block>
dvc_checkin_stage     <stage>
dvc_checkin_version   <version>
dvc_checkin_design     <phase>/<block>/<stage>/<version>
dvc_checkin_container <container>
dvc_checkin_folder     <path>
dvc_checkin_dvc_path   <path>

命令功能说明
dvc_checkin_project签入项目数据
dvc_checkin_phase签入阶段资料
dvc_checkin_block签入模块资料
dvc_checkin_stage签入阶段资料
dvc_checkin_version签入版本资料
dvc_checkin_design签入整个设计版本
dvc_checkin_container签入容器内容
dvc_checkin_folder签入目录(一般用于 GUI 工具)
dvc_checkin_dvc_path签入指定路径

6.4 对象管理命令(Object Management)

dvc_copy_object     <src_path> <dst_name>
dvc_link_object     <src_path> <link_name>
dvc_rename_object   <old_name> <new_name>
dvc_delete_object   <object_name>

命令功能说明
dvc_copy_object复制对象(如 netlist)
dvc_link_object链接对象至当前目录
dvc_rename_object重命名对象
dvc_delete_object删除对象(通用)

6.5 删除命令(Remove)

dvc_remove_project    <project>
dvc_remove_phase     <phase>
dvc_remove_block     <block>
dvc_remove_stage     <stage>
dvc_remove_version   <version>
dvc_remove_design     <phase>/<block>/<stage>/<version>
dvc_remove_container <container>
dvc_remove_folder     <folder>

命令功能说明
dvc_remove_block删除模块
dvc_remove_container删除容器
dvc_remove_design删除设计
dvc_remove_folder删除文件夹
dvc_remove_phase删除阶段
dvc_remove_project删除项目
dvc_remove_stage删除阶段
dvc_remove_version删除版本

6.6 环境与路径管理命令(Env/Path)

dvc_set_env      [--local|--global|--server] <var> <value>
dvc_get_env     [--info|--csv|--tcl] [--all | <var>...]
dvc_set_path     <path>
dvc_set_project <project>
dvc_set_folder   <folder>
dvc_set_server   <server>

命令功能说明
dvc_set_server设置 SVN 主机配置
dvc_set_env设置 DVC 全局或本地变量
dvc_get_env查询环境变量状态
dvc_set_path设置当前路径标志
dvc_set_project设置当前项目
dvc_set_folder设置当前工作目录

6.7 容器更新命令

dvc_update_container  <container>

命令功能说明
dvc_update_container更新容器状态或内容

七、设置

  • 所有 dvc_*.csh 脚本文件位于 csh/ 目录中。
  • 所有 bin/ 命令为其符号链接,用户直接使用 bin 中命令即可。
  • 所有设计操作需在已 checkout 的路径下执行,若无路径设定,脚本会读取当前工作目录环境变量。

八、脚本行为说明

  • 所有路径默认相对 $DVC_WORKING
  • 环境变量通过 .dop/env/ 维护,可跨 session 保持一致。
  • 所有对象操作(create/checkin/checkout)皆会更新 last 链接指向最新版本。

九、错误处理说明

情境处理方式
找不到对象提示错误信息并中断
环境变量未设定要求先执行 dvc_set_env
版本路径不完整提示必须为 4 层以上结构
权限问题仅允许 owner 或项目账号操作

十、参考范例

dvc_create_design P1-stable/cpu/400-APR/20250620_test
dvc_checkout_design
dvc_copy_object ./netlist.v block.v
dvc_checkin_design