第三章 版图设计基础:图层定义、设计规则检查(DRC)与版图层次结构
各位同学,今天咱们聊聊版图设计最基础的东西。说实话,很多新手一上来就急着画版图,结果画出来的东西要么通不过DRC,要么流片回来直接报废。我当年就吃过这个亏,所以这一章,咱们把地基打牢。
3.1 图层定义——版图的“语言”
版图是什么?说白了,就是一张“地图”。这张地图上,不同的颜色和形状代表不同的物理层。比如,有源区、多晶硅、金属层、接触孔……每一层都有自己专属的名字和颜色。
我习惯把图层定义比作“乐高积木的说明书”。你想想看,如果没有说明书,你怎么知道哪块积木该放哪儿?同样,没有清晰的图层定义,代工厂根本不知道你要做什么。
核心要点:每个图层对应一道光刻掩模版。你画了多少层,代工厂就要做多少张掩模版。这直接决定了你的流片成本。
常见的图层包括:
- NW (N阱):用于制作PMOS管的衬底
- AA (有源区):晶体管的沟道区域
- PO (多晶硅):栅极材料
- M1/M2/... (金属层):互连线
- CO (接触孔):连接有源区与金属1
- VIA (通孔):连接上下两层金属
嗯,这里要注意:不同代工厂对图层的命名可能不一样。比如台积电叫“M1”,中芯国际可能叫“MET1”。你在做项目前,一定要先拿到代工厂的PDK(工艺设计套件),里面会明确告诉你每个图层的名字和用途。
我的小技巧:刚开始接触新工艺时,我会先画一个简单的反相器,把所有图层都走一遍。这样既能熟悉图层定义,又能验证PDK是否安装正确。我曾经用这个方法,在项目启动前就发现了PDK里一个图层颜色设置错误,避免了后续的大麻烦。
3.2 设计规则检查(DRC)——版图的“交通规则”
DRC,全称Design Rule Check。你画完版图,不能直接拿去流片。你得先检查一下,你的版图有没有违反代工厂制定的规则。
为什么会这样?因为物理制造有极限。比如,两条金属线靠得太近,光刻时可能会连在一起,造成短路。再比如,接触孔太小,刻蚀时可能刻不透,造成断路。
DRC规则大致分为几类:
| 规则类型 | 含义 | 举例 |
|---|---|---|
| 最小宽度 | 图形不能太细 | M1宽度 ≥ 0.1μm |
| 最小间距 | 图形不能太近 | M1间距 ≥ 0.12μm |
| 最小包围 | 一层要包住另一层 | CO被M1包围 ≥ 0.02μm |
| 最小面积 | 图形不能太小 | AA面积 ≥ 0.2μm² |
我记得刚入行时,画了一个挺复杂的模拟版图,DRC跑了整整一天,结果报了几百个错误。我当时头都大了。后来才发现,是我把“最小间距”和“最小宽度”搞混了。从那以后,我每次画版图前,都会把DRC规则文档打印出来,贴在显示器旁边。
避坑指南:我曾经见过一个同事,为了省面积,把两条金属线的间距压到刚好等于规则值。结果流片回来,良率只有30%。为什么?因为工艺有波动,规则值是在理想条件下算出来的。你最好留一点余量,比如规则要求0.1μm,你画0.12μm。这叫“设计余量”,是经验丰富的工程师才会注意的细节。
DRC跑完后,你会得到一个报告。里面会告诉你:
- 错误类型(比如“M1间距违规”)
- 错误坐标(在版图上的位置)
- 违反的规则编号(比如“Rule M1.3”)
你需要在版图编辑器里,一个一个地修改。嗯,这个过程很枯燥,但必须做。我建议你按区域修改,不要跳来跳去,否则容易漏掉。
3.3 版图层次结构——从“砖块”到“大楼”
一个芯片有几亿个晶体管,你不可能一个一个地画。所以,我们需要层次化设计。
什么叫层次化?说白了,就是先画小模块,再把小模块拼成大模块,最后拼成整个芯片。就像盖大楼,先烧砖,再砌墙,最后搭楼板。
版图的层次结构通常是这样:
- 底层单元:比如反相器、与非门、锁存器。这些是最基本的“砖块”。
- 功能模块:比如加法器、乘法器、寄存器堆。这些是“墙”。
- 子系统:比如CPU核、内存控制器、I/O接口。这些是“楼层”。
- 顶层芯片:整个芯片。这就是“大楼”。
我习惯在画版图前,先画一个层次结构图。这样能帮你理清思路,知道哪些模块可以复用,哪些需要单独优化。
核心要点:层次化设计的好处是:
1. 复用性强——标准单元库里的单元,可以反复使用。
2. 便于分工——不同工程师可以同时画不同模块。
3. 易于调试——如果某个功能出错,可以快速定位到具体模块。
下面这张图,展示了版图层次结构的基本逻辑:
你想想看,如果没有这种层次结构,你直接画一个几亿晶体管的芯片,那得画到猴年马月去?而且一旦出错,你根本找不到问题出在哪儿。
我的经验:在画底层单元时,我会特别注意版图的“对称性”和“一致性”。比如,所有反相器的PMOS和NMOS尺寸比例保持一致。这样在拼成大模块时,电流驱动能力才能匹配。我曾经因为一个底层单元的尺寸没对齐,导致整个加法器的时序出了问题,查了整整两天才找到原因。
3.4 图层、DRC与层次结构的协同
这三个东西不是孤立的。图层定义是基础,DRC是检查工具,层次结构是组织方法。它们共同构成了版图设计的核心框架。
我建议你养成一个习惯:每画完一个底层单元,就立刻跑一次DRC。不要等到所有模块都画完了再跑。否则,几百个错误堆在一起,你根本不知道从哪儿改起。
嗯,这里再强调一点:DRC通过,不代表你的版图就能正常工作。DRC只检查物理规则,不检查电路功能。功能正确性要靠LVS(版图与原理图一致性检查)来保证。这个咱们后面会讲。
避坑指南:我曾经遇到过一个案例,DRC全部通过,LVS也通过,但流片回来的芯片就是不能正常工作。后来发现,是版图里有一条金属线走得太长,导致电阻过大,信号衰减了。DRC不会检查这种问题,因为它只关心“能不能造出来”,不关心“造出来好不好用”。所以,你还需要做“版图后仿真”,把寄生参数提取出来,再仿真一次。
好了,这一章的内容就到这里。图层定义、DRC、层次结构,这三个概念是版图设计的基石。你把这章吃透了,后面的内容学起来就会轻松很多。
可可精品资料库