一、.cshrc 文件设置(环境变量配置)
.cshrc 是 C Shell 的环境配置文件,核心作用是指定 Cadence 软件安装路径、许可证(License)路径,并配置系统环境变量,让操作系统能找到 Cadence 执行文件和许可证服务。
-
配置示例(添加到~/.cshrc 末尾)
========== Cadence 环境变量配置 ==========
1. 指定 Cadence 主安装路径(根据你的实际路径修改)
setenv CDS_ROOT /usr/cadence/IC618
2. 指定 License 文件/服务器路径(二选一)
方式1:本地 License 文件
setenv CDS_LIC_FILE /home/user/cadence_license.dat
方式2:远程 License 服务器(格式:端口@服务器IP/主机名)
setenv CDS_LIC_FILE 27000@licserver01
3. 添加 Cadence 可执行文件到系统 PATH
setenv PATH {CDS_ROOT}/tools/bin:{CDS_ROOT}/tools/dfII/bin:${PATH}
4. 配置 Cadence 临时目录(避免权限问题)
setenv CDS_TMPDIR /tmp/cadence_{USER} mkdir -p {CDS_TMPDIR}
5. 其他辅助环境变量(可选)
setenv CDS_Netlisting_Mode Analog
setenv OA_HOME {CDS_ROOT}/tools/oa setenv LD_LIBRARY_PATH {OA_HOME}/lib/linux_rhel60_64/lib:${LD_LIBRARY_PATH}
2. 文件位置与优先级
Cadence 加载 .cds.lib 的顺序:→ 第一步:当前工作目录(./cds.lib)→ 第二步:用户主目录(~/cds.lib)→ 第三步:Cadence 默认配置($CDS_ROOT/share/cdssetup/cds.lib)。
-
优先用 绝对路径 (如
/home/xxx/TSMC180),移动项目 / 切换目录时不会失效; -
相对路径仅适用于 "库目录在
.cds.lib同目录下" 的场景; -
路径中禁止包含空格 / 特殊字符 (如
My Project→ 改为My_Project),否则 Cadence 无法识别。
- 关键说明
-
路径修改 :
CDS_ROOT需替换为你实际的 Cadence 安装路径(如 ICADV123 路径为/usr/cadence/ICADV123); -
License 优先级 :
CDS_LIC_FILE若同时指定本地文件和服务器,优先使用本地文件; -
生效方法 :修改后执行
source ~/.cshrc使配置立即生效,无需重启系统; -
权限问题 :
CDS_TMPDIR需确保当前用户有读写权限,否则 Cadence 启动会报错。
- 文件模板
二、.cdsenv 文件设置(Cadence 初始参数配置)
.cdsenv 是 Cadence 的环境参数配置文件,用 SKILL 语言编写,启动 Cadence 时自动加载,核心作用是定义软件的默认行为(界面、编辑器、验证工具参数等)。.cdsenv 文件包含了Cadence 软件的一些初始设置,该文件用SKILL 语言写,Cadence 可直接执行
-
配置示例(保存为~/.cdsenv)
========== Cadence 初始参数配置 ==========
1. 版图编辑器(Virtuoso Layout)默认设置
dfII.env.startupLayoutEditorOptions:
list(
"gridSpacing" 0.05 ; 默认网格间距(单位:um,根据工艺调整)
"snapMode" "grid" ; 吸附到网格
"displayMode" "color" ; 彩色显示
"zoomSpeed" 1.5 ; 缩放速度
)
; 2. 默认打开的设计库和单元格
dfII.env.defaultLib: "TSMC180" ; 默认工艺库(需与 cds.lib 中定义一致)
dfII.env.defaultCell: "INV" ; 默认单元格
dfII.env.defaultView: "layout" ; 默认视图; 3. DRC/LVS 验证工具参数
drc.env.maxWorkers: 8 ; DRC 并行线程数(根据CPU核心数调整)
lvs.env.ignoreUnconnected: nil ; 不忽略未连接的引脚
lvs.env.abortOnFirstError: nil ; 不中断首次错误; 4. 界面显示设置
gui.env.fontSize: 12 ; 界面字体大小
gui.env.backgroundColor: "white"; 背景色
gui.env.showToolTips: t ; 显示工具提示; 5. 文件保存参数
file.env.autoSaveInterval: 5 ; 自动保存间隔(分钟)
file.env.backupFiles: t ; 生成备份文件 -
关键说明
-
语法规则 :SKILL 语言中,注释用
;,键值对用:分隔,列表用list()包裹; -
生效方式:修改后重启 Cadence 生效;
-
工艺适配 :
gridSpacing需匹配工艺节点(如 180nm 设 0.05um,7nm 设 0.005um); -
自定义扩展:可添加更多参数(如快捷键、默认输出路径)。
三、.cdsinit 文件设置(Cadence 启动脚本配置)
.cdsinit 是 Cadence 的启动脚本文件 ,同样用 SKILL 编写,优先级高于 .cdsenv,核心作用是执行自定义脚本(加载工艺文件、绑定快捷键、导入自定义函数等)。
-
配置示例(保存为~/.cdsinit)
========== Cadence 启动脚本配置 ==========
; 1. 自动加载工艺文件(Techfile)
loadTechFile(
"TSMC180" ; 工艺库名称(与 cds.lib 一致)
"/home/user/techfiles/TSMC180.tf" ; Techfile 路径
); 2. 绑定自定义快捷键(示例:F5 执行 DRC)
hiSetBindKey("Layout" "F5" "drc()")
hiSetBindKey("Layout" "F6" "lvs()")
hiSetBindKey("Layout" "Ctrl+S" "dbSave()"); 3. 加载自定义 SKILL 库(可选)
load("/home/user/skill_lib/custom_drc.sk"); 4. 关闭不必要的弹窗
hiSetEnv("hiEnableStartupDialog" nil)
hiSetEnv("hiEnableWelcomeDialog" nil); 5. 设置版图默认显示属性
let( ()
leSetDisplayOptions(
list(
"fillMode" "solid" ; 实心填充图层
"highlightColor" "red" ; 高亮颜色
"selectionColor" "blue" ; 选中颜色
)
)
) -
基本结构
;;; 加载公司标准配置
load("/cadence/cdsinit/company_init.il");;; 设置默认工艺库
ddGetObj("tsmcN65")~>defaultLib = "tsmcN65";;; 自定义快捷键
hiSetBindKey("Layout" "Ctrl<Key>f" "geSelectAll()")
hiSetBindKey("Schematic" "<Key>F2" "schHiSave()");;; 设置显示选项
schHiSetDisplayOption('showPinNames t)
schHiSetDisplayOption('showInstancePins nil);;; 自动加载常用库
unless(getd('myLoadLibs)
procedure(myLoadLibs()
ddOpenLib("analogLib")
ddOpenLib("basic")
)
)
myLoadLibs()
2.1 快捷键设置
;; Layout 编辑器快捷键
hiSetBindKey("Layout" "<Key>F3" "leHiCreateRuler()")
hiSetBindKey("Layout" "Ctrl<Key>c" "geDeleteRuler()")
hiSetBindKey("Layout" "<Key>q" "leHiPropertyForm()")
;; Schematic 编辑器快捷键
hiSetBindKey("Schematic" "<Key>i" "schHiInsertInstance()")
hiSetBindKey("Schematic" "<Key>w" "schHiWire()")
hiSetBindKey("Schematic" "<Key>p" "schHiCreatePin()")
2.2 自定义函数
;; 快速保存所有打开的文件
procedure(mySaveAll()
let((cv)
foreach(cv geGetEditCellViewList()
hiSave(cv)
)
printf("All files saved.\n")
)
)
hiSetBindKey("Layout" "Ctrl<Key>s" "mySaveAll()")
2.3 环境设置
;; 设置默认网格
schSetGrid("schematic" 0.01 0.01)
leSetGrid("layout" 0.005 0.005)
;; 设置鼠标滚轮缩放
hiSetMouseWheelZoomFactor(1.2)
;; 设置日志文件
setSkillLogFile(strcat(getShellEnvVar("HOME") "/skill.log"))
2.4 颜色设置
;; 设置高亮颜色
hiSetHighlightColor("drawing1" "red")
hiSetHighlightColor("drawing2" "blue")
;; 设置默认层显示
leSetLayerVisible("M1" t)
leSetLayerVisible("M2" t)
- 关键说明
-
与 .cdsenv 的区别 :
.cdsenv是 "参数配置",.cdsinit是 "脚本执行",可实现更复杂的自定义逻辑; -
工艺文件加载 :
loadTechFile()需确保 Techfile 路径正确,否则启动后版图编辑器无法识别工艺图层; -
快捷键绑定 :
hiSetBindKey()的第一个参数是 "窗口类型"(Layout/Schematic),第二个是快捷键,第三个是执行的函数; -
报错处理:若脚本有语法错误,Cadence 启动时会弹出报错窗口,可根据提示定位问题。
四、cds.lib 文件设置(设计库定义配置)
cds.lib 是 Cadence 的设计库映射文件,核心作用是定义 "设计库名称" 与 "本地文件路径" 的关联,让 Virtuoso 能识别和访问工艺库、项目库、标准单元库等。
.cdsinit 是 Cadence 系列工具(如 Virtuoso、Spectre、IC617/IC618 等)的初始化脚本文件 ,类似 Linux 系统的 .bashrc 或 Windows 的批处理文件,使用 SKILL 语言 编写。Cadence 启动时会自动加载该文件,用于定制化软件环境、配置默认参数、加载自定义函数、设置快捷键等,是 Cadence 二次开发和环境定制的核心文件。
-
配置示例(保存到项目目录或~/cds.lib)
========== Cadence 设计库定义 ==========
; 1. 注释:用 # 或 ; 开头
; 2. DEFINE:定义库名与绝对路径(必选,工艺库/核心库)
DEFINE TSMC180 /home/user/design_libs/TSMC180 ; 180nm 工艺库
DEFINE MyProject /home/user/projects/ASIC/MyProject ; 自定义项目库
DEFINE stdcells /home/user/design_libs/TSMC180_stdcells ; 标准单元库; 3. INCLUDE:引入其他 cds.lib 文件(可选,复用配置)
INCLUDE /usr/cadence/IC618/share/cdssetup/cds.lib; 4. SOFTDEFINE:软定义(路径不存在时不报错,可选)
SOFTDEFINE TestLib /home/user/test_lib; 5. DELETE:删除已定义的库(可选)
; DELETE OldLib; 6. CDSEnv:指定该库的专属 .cdsenv 文件(可选)
CDSEnv MyProject /home/user/projects/ASIC/MyProject/.cdsenv -
关键说明
-
文件位置 :优先加载 "当前工作目录" 的
cds.lib,其次加载~/.cds.lib,建议每个项目单独配置;|-------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 项目目录 :当前工作目录下的.cdsinit(仅对当前项目生效,优先级最高); 用户主目录 :~/.cdsinit(对当前用户全局生效,最常用); Cadence 安装目录 :$CDS_INST_DIR/tools/dfII/local/cdsinit(系统级默认配置,一般不修改)。 | -
路径规则:
-
绝对路径:
DEFINE LibName /xxx/xxx(推荐,避免路径混乱); -
相对路径:
DEFINE LibName ./libs(仅适用于项目内库);
-
-
工艺库优先级:工艺库(如 TSMC180)需优先定义,否则后续设计无法调用工艺图层;
-
生效方式:修改后在 Virtuoso 的 Library Manager 中执行 "Refresh" 即可生效,无需重启软件;
-
常见错误:库路径不存在 / 权限不足时,Library Manager 中该库会显示为 "红色",需检查路径和权限。
总结
-
核心逻辑:
-
.cshrc是 "系统级" 环境配置(找软件、找 License); -
.cdsenv/.cdsinit是 "Cadence 级" 自定义(初始参数、脚本); -
cds.lib是 "设计库级" 映射(找工艺库、项目库)。
-
-
生效顺序 :
source ~/.cshrc→ 启动 Cadence → 加载cds.lib→ 执行.cdsinit→ 加载.cdsenv。 -
关键注意:
-
所有路径需确保当前用户有读写权限;
-
License 路径错误会导致 Cadence 无法启动;
-
Techfile 和 cds.lib 中的工艺库名称需一致,否则版图编辑器无法识别图层。
-