工艺文件解析: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%以上。
我的习惯:拿到ITF文件后,先画一张简化的层次结构图,把金属层、介质层、通孔层标清楚。这样后面调试时一眼就能看出问题。

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。

注意:QRCTechfile里的层名必须跟版图(GDS/OASIS)里的层号一一对应。不对应的话,提取工具会直接罢工,或者更糟——提取出错误的结果你还没发现。

工艺角设置——覆盖所有“真实场景”

工艺角(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 设置工艺角 验证层名/参数一致性 开始寄生提取 关键检查点 • 单位是否统一? • 层名是否匹配版图? • 工艺角是否覆盖极端? • 介电常数是否准确? 常见错误 • ITF与QRCTechfile不一致 • 工艺角只跑TT • 忽略温度系数

避坑指南——我踩过的那些坑

做工艺文件解析这么多年,有些坑我是一路踩过来的。分享几个给你,希望能帮你省点时间:

  • ITF和QRCTechfile版本要匹配——我曾经把28nm的ITF跟40nm的QRCTechfile混在一起用,提取结果完全离谱。代工厂每次更新工艺,都会同时更新这两个文件,一定要成对使用。
  • 工艺角别只跑一个——我见过有人为了省时间,只跑TT角。结果芯片在SS角下时序不收敛,流片回来直接废了。至少跑TT、FF、SS三个角,关键路径再加CBest和CWorst。
  • 介电常数不是常数——低k介质在不同频率、不同温度下,介电常数会变。QRCTechfile里通常会给一个频率相关的模型,别偷懒用默认值。
  • 层名映射要仔细——版图里的层号跟工艺文件里的层名,经常不一致。我建议写一个映射表,逐层核对。
一个小技巧:每次拿到新工艺文件,先跑一个简单的测试结构(比如一条长线、一个电容),跟代工厂提供的参考值对比。偏差在2%以内才算通过。这一步能帮你发现90%以上的配置错误。