4. Linux 操作系统基础:常用命令、文件权限与 Shell 环境配置
在搭建基于 t22ulp 工艺的 LVDS IP 版图设计环境时,EDA 工具(如 Virtuoso、Calibre、QRC)均运行在 Linux 操作系统之上。熟练掌握 Linux 基础命令、理解文件权限机制以及正确配置 Shell 环境,是确保版图设计流程顺畅、数据安全与工具调用的前提。本章将围绕这三个核心模块展开,帮助您快速构建高效的 EDA 工作环境。
4.1 常用 Linux 命令
以下命令是 EDA 工程师日常使用频率最高的操作,涵盖文件浏览、目录切换、文件创建与编辑、复制移动及删除等场景。
| 命令 | 功能描述 | EDA 典型应用场景 |
|---|---|---|
| ls | 列出目录内容 | 查看工艺库文件(如 ls -l t22ulp/*.lib) |
| cd | 切换工作目录 | 进入 PDK 安装路径:cd /home/PDK/t22ulp |
| mkdir | 创建新目录 | 建立项目目录:mkdir -p LVDS_IP/layout |
| cp | 复制文件或目录 | 备份 GDS 文件:cp top.gds top_backup.gds |
| rm | 删除文件或目录 | 清理临时文件:rm -rf ./temp_* |
| vi | 文本编辑器 | 修改 .cdsinit 或 .bashrc 配置文件 |
💡 实用技巧: 使用
ls -lh 可以查看文件大小(以 K/M/G 为单位显示),便于快速识别大型版图文件;使用 cp -r 递归复制整个目录结构,常用于复制完整的 PDK 参考流程。
4.1.1 vi 编辑器快速入门
vi 是 Linux 环境下最通用的文本编辑器,在 EDA 配置中不可或缺。vi 有三种基本模式:命令模式(默认)、插入模式(按 i 进入)和末行模式(按 : 进入)。
# 打开或创建文件
vi ~/.bashrc
# 常用操作(命令模式下)
:wq # 保存并退出
:q! # 不保存强制退出
dd # 删除当前行
yy # 复制当前行
p # 粘贴
/string # 搜索字符串,按 n 查找下一个
4.2 文件权限管理
在团队协作的版图设计环境中,文件权限直接关系到 IP 核的安全性。Linux 使用 ugo+rwx 权限模型,通过 chmod 和 chown 命令进行管理。
4.2.1 常用权限管理命令
# 修改文件权限(符号模式)
chmod u+w layout.gds # 给文件所有者增加写权限
chmod g-rwx ./PDK # 移除组用户对 PDK 目录的所有权限
# 修改文件权限(数字模式)
chmod 644 .cdsinit # 所有者读写,组和其他只读
chmod 755 run_script.sh # 所有者全部权限,组和其他只读+执行
# 修改文件所有者与组
chown designer:design_team top.gds # 将文件所有者改为 designer,组改为 design_team
⚠️ 安全提醒: 对于 PDK 工艺文件(如 .lib、.lef、.tf),建议设置为
644 权限,防止误修改导致工艺参数错误;对于版图 GDS 文件,在交付前应设置为 444(只读),避免意外覆盖。
4.3 Shell 环境配置(.bashrc / .cshrc)
EDA 工具的调用依赖于正确的环境变量设置。Shell 配置文件在用户登录时自动加载,用于定义 PATH、设置 License、加载 PDK 路径等。根据团队习惯,可选择 Bash(.bashrc)或 C Shell(.cshrc)。
4.3.1 环境变量配置清单
| 环境变量 | 作用 | 配置示例(Bash) |
|---|---|---|
| PATH | 指定可执行文件搜索路径 | export PATH=/opt/cadence/bin:$PATH |
| CDS_LIC_FILE | Cadence License 文件路径 | export CDS_LIC_FILE=5280@license_server |
| MGC_HOME | Calibre 工具安装根目录 | export MGC_HOME=/opt/mentor/calibre |
| PDK_DIR | t22ulp PDK 安装路径 | export PDK_DIR=/home/PDK/t22ulp |
| CDS_LOAD_ENV | 指定 .cdsinit 加载策略 | export CDS_LOAD_ENV=CWD |
4.3.2 典型 .bashrc 配置片段
# ====== EDA 工具路径 ======
export PATH=/opt/cadence/IC618/bin:$PATH
export PATH=/opt/mentor/calibre/bin:$PATH
export PATH=/opt/synopsys/primeTime/bin:$PATH
# ====== License 配置 ======
export CDS_LIC_FILE=5280@10.0.0.100
export MGLS_LICENSE_FILE=1717@10.0.0.100
# ====== t22ulp PDK 环境 ======
export PDK_DIR=/home/PDK/t22ulp
export CDS_LOAD_ENV=CWD
export SKIP_CDS_LIB_INIT=1
# ====== 别名与快捷操作 ======
alias ll='ls -lh'
alias gdsview='strm2gds'
alias cdsdoc='cd /opt/cadence/doc && firefox index.html'
4.3.3 配置生效与验证
# 使配置立即生效(Bash)
source ~/.bashrc
# 验证环境变量是否设置成功
echo $PDK_DIR
which virtuoso
echo $CDS_LIC_FILE
📌 关键提示: 在 t22ulp 工艺下,务必确保
PDK_DIR 指向正确的 PDK 根目录,且该目录下包含 cds.lib、display.drf 等关键文件。建议在 .bashrc 中增加 if [ -f $PDK_DIR/cds.lib ]; then ... fi 检查逻辑,避免因路径错误导致 Virtuoso 启动失败。