工艺文件解析:ITF文件结构、QRCTechfile解读、工艺角设置
做寄生参数提取,第一步不是跑工具,而是读懂工艺文件。我见过不少工程师,上来就敲命令,结果提取出来的参数跟实际硅片差了十万八千里。说白了,工艺文件就是代工厂给你的“芯片说明书”,读不懂它,后面全是白费功夫。
今天咱们就聊聊这三样东西:ITF文件、QRCTechfile、还有工艺角。嗯,都是基本功,但坑也不少。
ITF文件结构——寄生提取的“地基”
ITF(Interconnect Technology Format)文件,是代工厂提供的互连工艺描述文件。它定义了金属层的电阻率、介电常数、厚度、宽度等等。我习惯把它看作一张“材料清单”。
一个典型的ITF文件,结构大致如下:
TECHNOLOGY {
NAME = "28nm_1P8M_1TM"
DIELECTRIC = "SiO2" ; 默认介电常数 3.9
CONDUCTOR = "Cu" ; 默认导体材料
}
LAYER M1 {
TYPE = CONDUCTOR
THICKNESS = 0.09u ; 金属厚度
RESISTIVITY = 0.022 ; 电阻率,单位 ohm·um
MIN_WIDTH = 0.07u
MIN_SPACING = 0.07u
}
LAYER VIA1 {
TYPE = VIA
HEIGHT = 0.09u
RESISTANCE = 3.0 ; 通孔电阻,单位 ohm
}
DIELECTRIC ILD1 {
THICKNESS = 0.12u
EPSILON = 3.3 ; 低k介质
}
这里有几个关键点,我当年踩过坑:
- 单位要盯死——ITF里常用微米(u)或纳米(n),搞混了直接导致电容算错。我建议拿到文件先看单位声明。
- 介电常数别想当然——低k介质不是固定的3.3,不同工艺角下会有变化。后面讲工艺角时会细说。
- 通孔电阻别忽略——有些新手只关注金属层,结果通孔电阻没设对,提取出来的时序偏差能到5%以上。
QRCTechfile解读——提取引擎的“食谱”
QRCTechfile是QRC(Quantitative RC)工具的工艺技术文件。它比ITF更“智能”,包含了提取引擎需要的各种规则和模型。说白了,ITF是原材料清单,QRCTechfile是烹饪步骤。
QRCTechfile的核心结构包括:
| 区块 | 作用 | 我踩过的坑 |
|---|---|---|
| LAYER DEFINITION | 定义各层的物理属性和电气属性 | 层名跟版图不一致,提取直接报错 |
| CONDUCTOR TABLE | 导体电阻率、温度系数等 | 温度系数没设,高温仿真全偏 |
| DIELECTRIC TABLE | 介质介电常数、损耗因子 | 低k介质在不同频率下介电常数不同 |
| VIA TABLE | 通孔电阻、电流密度限制 | 电流密度限制没设,EM分析不准 |
| RULE BLOCK | 提取规则,比如最小面积、最小间距 | 规则太松,提取结果过于乐观 |
解读QRCTechfile时,我建议重点关注CONDUCTOR TABLE和DIELECTRIC TABLE。这两个表直接决定了RC值的准确性。我曾经在一个28nm项目中,发现提取的线电容比实测大了15%,查了两天才发现是介电常数设成了默认值3.9,而实际工艺用的是低k介质2.7。
工艺角设置——覆盖所有“真实场景”
工艺角(Process Corner),说白了就是模拟芯片在生产过程中可能出现的各种偏差。晶圆厂不会给你一个“完美”的工艺参数,而是给你一组角:典型(TT)、快(FF)、慢(SS),还有各种组合。
寄生参数提取时,工艺角设置直接影响RC值。我见过有人只跑TT角,结果芯片在高温低压下直接挂掉。嗯,教训深刻。
常见的工艺角包括:
- TT(Typical-Typical)——标准工艺,用于常规仿真
- FF(Fast-Fast)——晶体管快、互连快,速度最快
- SS(Slow-Slow)——晶体管慢、互连慢,速度最慢
- FS(Fast-Slow)——晶体管快、互连慢
- SF(Slow-Fast)——晶体管慢、互连快
在QRCTechfile里,工艺角通常通过CORNER语句来定义:
CORNER TT {
TEMPERATURE = 25
VOLTAGE = 1.0
RESISTIVITY_FACTOR = 1.0
EPSILON_FACTOR = 1.0
}
CORNER FF {
TEMPERATURE = -40
VOLTAGE = 1.1
RESISTIVITY_FACTOR = 0.85 ; 电阻变小
EPSILON_FACTOR = 0.95 ; 介电常数略小
}
CORNER SS {
TEMPERATURE = 125
VOLTAGE = 0.9
RESISTIVITY_FACTOR = 1.15 ; 电阻变大
EPSILON_FACTOR = 1.05 ; 介电常数略大
}
你想想看,为什么FF角下电阻要乘0.85?因为工艺偏快时,金属线更宽、更厚,电阻自然就小了。SS角则相反,线偏窄偏薄,电阻变大。
核心原则:工艺角不是越多越好,而是覆盖所有极端情况。我一般至少跑TT、FF、SS三个角,关键路径再加CBest和CWorst。
一张图看懂工艺文件解析流程
下面这张图,是我自己总结的工艺文件解析流程。每次开始新项目,我都会按这个步骤走一遍,确保不遗漏。
避坑指南——我踩过的那些坑
做工艺文件解析这么多年,有些坑我是一路踩过来的。分享几个给你,希望能帮你省点时间:
- ITF和QRCTechfile版本要匹配——我曾经把28nm的ITF跟40nm的QRCTechfile混在一起用,提取结果完全离谱。代工厂每次更新工艺,都会同时更新这两个文件,一定要成对使用。
- 工艺角别只跑一个——我见过有人为了省时间,只跑TT角。结果芯片在SS角下时序不收敛,流片回来直接废了。至少跑TT、FF、SS三个角,关键路径再加CBest和CWorst。
- 介电常数不是常数——低k介质在不同频率、不同温度下,介电常数会变。QRCTechfile里通常会给一个频率相关的模型,别偷懒用默认值。
- 层名映射要仔细——版图里的层号跟工艺文件里的层名,经常不一致。我建议写一个映射表,逐层核对。