第一章 版图设计环境搭建:Linux基础操作,EDA工具启动与工艺库配置

各位同学好,我是你们的版图设计讲师。今天咱们聊聊环境搭建这件事。

说实话,很多新手一上来就急着画版图,结果连Linux基本命令都不会,工具都打不开。我当年也犯过这个错——记得第一次用Virtuoso时,我连怎么启动它都不知道,折腾了半天才发现是环境变量没配好。嗯,这节课咱们就把这些基础打牢。

1.1 Linux基础操作——你绕不开的坎

版图设计几乎都在Linux环境下进行。为什么?因为稳定、高效、支持多用户。你想想看,一个项目组十几个人同时操作同一个工艺库,Windows能扛得住吗?

我个人习惯用CentOS或Red Hat Enterprise Linux。不过Ubuntu也行,只是有些PDK对Ubuntu支持不太好。这里我列几个你每天都会用到的命令:

命令 用途 我的经验
ls -l 查看文件详情 我习惯加-lh,显示文件大小更直观
cd 切换目录 用cd -可以回到上一个目录,省时间
source .bashrc 重新加载环境变量 每次改完PDK路径都要跑一次,别忘
which virtuoso 检查工具路径 如果返回no virtuoso,说明环境没配好
ps -ef | grep virtuoso 查看进程 工具卡死时,用这个找到PID然后kill -9
⚠️ 避坑指南:我曾经在项目紧急时,不小心在服务器上执行了rm -rf /(别笑,真有人干过)。建议你养成习惯:删除前先ls确认,或者用mv移到临时目录。

1.2 EDA工具启动与界面介绍

目前主流版图工具就两个:Cadence的Virtuoso和SpringSoft的Laker(现在被Synopsys收购了)。我个人更常用Virtuoso,但Laker在自动布线方面确实有优势。

1.2.1 Virtuoso启动

启动其实很简单,在终端输入:

virtuoso &

注意后面的&,表示后台运行。如果不加,终端一关工具就没了。我第一次用时就吃了这个亏——画了一下午的版图,终端不小心关掉,全没了。

启动后你会看到CIW(Command Interpreter Window),这是Virtuoso的“大脑”。所有操作、报错、日志都在这里显示。我建议你把它固定在屏幕角落,别最小化。

1.2.2 Laker启动

Laker启动命令类似:

laker &

Laker的界面更清爽,菜单栏在顶部,工具栏在左侧。我个人觉得Laker的快捷键设计更合理,比如F2是放大,F3是缩小,很顺手。

1.2.3 界面核心区域

不管用哪个工具,界面都包含这几个部分:

  • 菜单栏:文件、编辑、视图、工具等
  • 工具栏:常用操作的快捷图标
  • 设计区域:画版图的地方,也叫Layout Editor
  • LSW(Layer Selection Window):图层选择窗口,这个很重要
  • 状态栏:显示当前坐标、网格、单位等信息
💡 小技巧:在Virtuoso中,按Ctrl+E可以快速打开LSW。我习惯把LSW放在右侧,这样左手操作键盘,右手操作鼠标,效率最高。

1.3 工艺库(PDK)的加载与配置

PDK就是工艺厂给你的“积木盒”。里面包含了所有标准单元、器件模型、设计规则等。没有PDK,你画出来的版图就是废纸一张。

1.3.1 PDK目录结构

一个典型的PDK长这样:

PDK_Home/
├── cdslib/          # 库定义文件
├── doc/             # 文档
├── lib/             # 工艺库文件
├── models/          # SPICE模型
├── pcells/          # 参数化单元
├── qrc/             # 寄生参数提取文件
└── techfile/        # 技术文件(关键!)

其中techfile是最核心的,它定义了图层、设计规则、通孔定义等。我遇到过好几次PDK加载失败,最后发现是techfile路径写错了。

1.3.2 配置环境变量

在.bashrc或.cshrc中添加:

# 以bash为例
export PDK_HOME=/path/to/your/PDK
export CDS_LIB_FILE=$PDK_HOME/cdslib/cds.lib
export CDS_TECH_FILE=$PDK_HOME/techfile/techfile.tf

然后执行source ~/.bashrc使其生效。

🔑 关键点:很多新手只配了CDS_LIB_FILE,忘了CDS_TECH_FILE。结果工具能启动,但画版图时图层全是乱的。我建议你配完后,用echo $CDS_TECH_FILE检查一下路径是否正确。

1.3.3 在Virtuoso中加载PDK

启动Virtuoso后,在CIW中输入:

load("/path/to/your/PDK/init.il")

或者通过菜单:Tools → Technology File Manager → Attach,选择你的工艺库。

加载成功后,LSW中应该能看到对应的图层列表。如果看不到,八成是techfile没加载成功。

1.3.4 验证PDK是否加载成功

我一般用两个方法验证:

  1. 在CIW中输入techGetTechFile(),如果返回了techfile对象,说明加载成功
  2. 新建一个layout cell,看看能不能调用PDK里的标准单元(比如INV、NAND等)
⚠️ 注意:不同工艺厂的PDK加载方式可能不同。比如TSMC的PDK通常需要先运行tsmc_install.sh脚本。SMIC的PDK则可能要求手动设置SMIC_PDK_HOME。我建议你仔细阅读PDK自带的README文件,别偷懒。

本章知识体系

下面这张图帮你理清本章的核心逻辑:

版图设计环境搭建知识体系 Linux基础操作 EDA工具启动与界面 PDK加载与配置 文件操作 环境变量 进程管理 Virtuoso Laker 界面布局 目录结构 环境配置 加载验证 三者缺一不可,环境搭好才能高效画版图

好了,第一章的内容就这些。环境搭建看起来琐碎,但真出了问题很耽误时间。我建议你按照上面的步骤,一步步配好,然后画一个简单的反相器验证一下。等工具跑通了,后面学起来就顺了。

可可精品资料库