第一章:EDA工具与工艺库入门
1.1 Cadence Virtuoso 环境介绍
做模拟IC设计,说白了就是跟EDA工具打交道。我个人习惯用Cadence Virtuoso,这套工具我用了十几年,从IC5141到IC618,版本换了好几代,但核心思路没变过。
Virtuoso是什么?它是一套完整的模拟设计平台。你想想看,从画原理图、做仿真、画版图,到后仿真验证,全都在一个环境里搞定。我刚开始接触时也觉得界面复杂,但用顺手了就会发现,它的设计哲学其实很清晰——所见即所得。
启动Virtuoso很简单。在终端输入:
virtuoso &
嗯,这里要注意,第一次启动会慢一些,因为要加载各种库文件。我建议你提前把环境变量配好,不然会卡在启动界面半天。
1.2 IC设计流程概览
模拟IC设计的流程,说白了就是一条流水线。从需求到芯片,中间要过好几道关。我把它总结成六个步骤:
- 规格定义——客户要什么?电压、电流、功耗、面积,这些得先定下来。
- 电路设计——画原理图,选拓扑结构。这一步最烧脑。
- 前仿真——用SPICE跑仿真,看电路能不能满足指标。
- 版图设计——把原理图变成物理版图。这一步最费眼。
- 后仿真——提取寄生参数,再跑一遍仿真。这一步最揪心。
- 流片与测试——送厂制造,回来测芯片。这一步最花钱。
为什么会这样分?因为每一步都有坑。我曾经在项目里跳过前仿真,直接画版图,结果后仿真发现电路根本没法用……嗯,从那以后我再也不敢偷懒了。
1.3 PDK工艺库安装与配置
PDK是什么?工艺设计套件。说白了就是代工厂给你的一个“工具包”,里面包含了器件模型、设计规则、参数文件等等。没有PDK,你画出来的版图根本没法流片。
安装PDK其实不复杂,但细节很多。我以某主流工艺为例,说说步骤:
# 解压PDK文件
tar -xzvf PDK_xxx_v1.0.tar.gz
# 设置环境变量
export PDK_DIR=/home/yourname/PDK/xxx
export CDS_Netlist_Mode=Analog
# 启动Virtuoso后,在CIW窗口加载PDK
load("${PDK_DIR}/init.il")
这里有个坑,我必须要提醒你。PDK的路径里不要有中文,不要有空格。我之前有个同事,把PDK放在“我的文档”里,结果加载时报了一堆错,折腾了两天才发现是路径问题。
1.4 工艺库配置实战
配置工艺库,说白了就是让Virtuoso认识你的PDK。具体操作如下:
- 打开Virtuoso,在CIW窗口选择
Tools → Library Manager - 在Library Manager里,选择
Edit → Library Path - 添加你的PDK库路径,比如
/home/yourname/PDK/xxx/libs - 保存后,重新加载库列表
配置完成后,你会在Library Manager里看到一堆库文件。比如:
| 库名 | 说明 |
|---|---|
| xxx_analog | 模拟器件库(MOS管、电阻、电容等) |
| xxx_digital | 数字标准单元库 |
| xxx_io | IO Pad库 |
| xxx_pdk | PDK基础库(包含设计规则等) |
你想想看,这些库就像乐高积木,你要什么器件就从里面拿。但要注意,不同工艺的器件参数差别很大,比如0.18um和28nm的MOS管,模型参数完全不同。
1.5 常见问题与避坑指南
做这行十几年,我踩过的坑比走过的路还多。这里列几个最常见的:
- PDK加载失败——检查路径,检查权限,检查版本兼容性。我曾经因为少写了一个斜杠,折腾了一下午。
- 仿真报错“Model not found”——说明器件模型没加载。去CIW里看看有没有加载model文件。
- 版图DRC报错一堆——大概率是PDK版本不对,或者设计规则文件没更新。
嗯,这里要特别说一句。很多新手遇到问题第一反应是上网搜,但EDA工具的问题,很多时候是环境配置的问题。我建议你先检查环境变量,再检查PDK路径,最后才去搜论坛。这样效率最高。
好了,第一章的内容就到这里。记住,EDA工具只是工具,真正值钱的是你对电路的理解。但话说回来,工具用不好,再好的电路也出不来。所以,先把环境搞定,咱们后面再聊电路设计。