初始化
约 726 字大约 2 分钟
cdsinitcadence
2025-08-09
一篇让你从“找不到配置”到“指哪打哪”的
.cdsinit
速通手册。
1. 它是什么?
.cdsinit
是一个 SKILL 脚本,在 Cadence Virtuoso / Innovus / Spectre 等工具启动时由解释器自动执行,用来:
- 加载个人或团队的 SKILL 代码
- 绑定快捷键
- 设置默认颜色、窗口、网格、仿真器参数
- 集成第三方工具(Calibre、HSPICE、StarRC 等)
一句话:它是 Cadence 的 “开机自启脚本”。
2. 加载顺序与搜索路径
Cadence 启动时会按以下优先级寻找 .cdsinit
:
- 当前启动目录
./.cdsinit
- 用户家目录
~/.cdsinit
- 项目级
$CDS_PROJECT/.cdsinit
(通过setup.loc
+csfLookupConfig
,见第 8 节)
一旦在某个路径找到文件,后续路径不再加载。
因此把文件放在 当前工作目录 优先级最高,便于版本管理。
3. 快速起步:30 秒生成自己的 .cdsinit
# 1. 找到系统模板
cp $CDS_ROOT/tools/dfII/samples/local/cdsinit ./.cdsinit
# 2. 打开文件,把“LOAD USER CUSTOMIZATION”之后的递归加载段 **全部注释掉**
# 3. 保存,完成
⚠️ 不注释会导致递归加载,启动直接卡死 。
4. 常用配置片段
功能 | 代码示例 |
---|---|
启动即开 Library Manager | ddsOpenLibManager() |
载入 Calibre DRC/LVS | load("/opt/mentor/calibre/aoi_calibre.skl") |
载入自定义快捷键 | load("./myBindKeys.il") |
ADE 默认仿真器设为 HSPICE | envSetVal("asimenv.startup" "simulator" 'string "hspice") |
波形窗口背景改白色 | envSetVal("viva.rectGraph" "background" 'string "white") |
版图网格 0.005 um | envSetVal("layout" "minorGridSpacing" 'float 0.005) |
自动加载 display.drf | drLoadDrf("./display_new.drf") |
上述
envSetVal
也可写在.cdsenv
,区别只是语法:.cdsinit
是 SKILL,.cdsenv
是键值对。
5. 进阶:团队级统一配置
5.1 统一目录结构
/Project/kx000/v0/
├── .cdsinit # 团队通用脚本
├── csfLookupConfig # 告诉 Cadence 用 CSF 搜索
├── setup.loc # 告诉 Cadence 到哪里找文件
5.2 设置环境变量
# ~/.bashrc 或 ~/.cshrc
export CDS_PROJECT=/Project/kx000/v0 # bash
# setenv CDS_PROJECT /Project/kx000/v0 # csh
5.3 文件内容示例
csfLookupConfig
INCLUDE .cdsinit
setup.loc
./
@LIBRARY
$CDS_WORKAREA
$HOME
$CDS_PROJECT
$CDS_SITE
这样,团队成员 无需手动复制 .cdsinit
,任何目录启动 Virtuoso 都会自动加载同一份脚本,保证环境一致 。
6. 调试技巧
立即重载(无需重启 Virtuoso)
CIW 输入:load("./.cdsinit")
查看生效路径
CIW 输入:getShellEnvVar("CDS_INIT_PATH")
语法检查
在 SKILl IDE 中打开.cdsinit
,按 Tools ▸ SKILL Lint。
7. 常见坑
现象 | 原因 | 解决 |
---|---|---|
启动卡死 | 递归加载 .cdsinit | 注释掉模板中的 loadi("./.cdsinit") 段 |
配置不生效 | 同名变量被 .cdsenv 覆盖 | 将 envSetVal 改放 .cdsenv 或调序 |
找不到文件 | 相对路径出错 | 使用绝对路径或 getCurrentDir() |
8. 一张图总结
┌──────────────┐ ┌──────────────┐
│ 终端敲 virtuoso & │──┬──► ./.cdsinit (最高优先)
└──────────────┘ │ └──────────────┘
│ ┌──────────────┐
├────► ~/.cdsinit
│ └──────────────┘
│ ┌──────────────┐
└────► $CDS_PROJECT/.cdsinit (团队级)
└──────────────┘
9. 参考与延伸阅读
现在,打开终端,敲下
cp ... ./.cdsinit
,你的 Cadence 就已经在按照 你的规则 启动了!