第一章 版图设计环境搭建: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):图层选择窗口,这个很重要
- 状态栏:显示当前坐标、网格、单位等信息
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是否加载成功
我一般用两个方法验证:
- 在CIW中输入
techGetTechFile(),如果返回了techfile对象,说明加载成功 - 新建一个layout cell,看看能不能调用PDK里的标准单元(比如INV、NAND等)
tsmc_install.sh脚本。SMIC的PDK则可能要求手动设置SMIC_PDK_HOME。我建议你仔细阅读PDK自带的README文件,别偷懒。
本章知识体系
下面这张图帮你理清本章的核心逻辑:
好了,第一章的内容就这些。环境搭建看起来琐碎,但真出了问题很耽误时间。我建议你按照上面的步骤,一步步配好,然后画一个简单的反相器验证一下。等工具跑通了,后面学起来就顺了。
可可精品资料库