一、工艺概述与PDK安装:SMIC 28nm工艺节点特点

大家好,我是老李。做数字后端有些年头了,今天咱们聊聊SMIC 28nm这个工艺节点。

说实话,28nm在业界是个「黄金节点」。为什么这么说?因为它在性能和成本之间找到了一个很好的平衡点。我2015年第一次接触这个工艺时,就被它的HKMG工艺吸引了——嗯,这个后面细说。

1.1 SMIC 28nm工艺节点特点

SMIC 28nm工艺,全称是SMIC 28nm Poly/SiON 和 28nm HKMG 两种技术路线。我个人习惯把28nm分成三类:

  • 28LP(Low Power):低功耗版本,适合IoT、可穿戴设备
  • 28HP(High Performance):高性能版本,适合手机AP、网络芯片
  • 28HPC/HPC+:性能与功耗的折中,我项目中用得最多的就是它

你想想看,同样是28nm,不同变体的Vt(阈值电压)选项、金属层数、IO电压都不一样。我在一个AI加速器项目中,就吃过这个亏——选了28LP,结果性能死活上不去,后来换到28HPC+才搞定。

参数 28LP 28HP 28HPC+
Vdd (核心) 1.0V 0.9V 0.85V
漏电流 中低
最高频率 ~1.5GHz ~2.5GHz ~2.0GHz
金属层数 6-8层 8-10层 7-9层

核心要点:SMIC 28nm的poly间距是90nm,最小金属间距是64nm(BEOL)。这些数字你最好记在脑子里,因为做floorplan时天天要用到。

1.2 HKMG工艺优势

HKMG,全称High-K Metal Gate。说白了,就是把传统的SiO2栅氧化层换成了高介电常数材料(比如HfO2),同时把多晶硅栅换成了金属栅极。

为什么会这样?传统工艺到了28nm以下,栅氧化层薄到只有几个原子层,漏电流大得吓人。HKMG一来,等效氧化层厚度(EOT)可以做到更薄,但漏电流反而小了。

我记得第一次用HKMG工艺做时序分析时,发现同样的频率下,动态功耗比上一代40nm低了将近40%。当时我就觉得——这技术靠谱。

HKMG的几个实打实的好处:

  • 栅漏电流降低:比传统Poly/SiON低2-3个数量级
  • 驱动能力提升:同样的尺寸,电流驱动能力提高约20%
  • 阈值电压可调:通过金属功函数调节,不像传统工艺那样受掺杂限制

避坑指南:我曾经在HKMG工艺中遇到过「负偏置温度不稳定性」(NBTI)问题。PMOS管在长期负偏压下,阈值电压会漂移。做STA时一定要留够余量,我一般会多留5%-10%的时序裕度。

1.3 PDK文件结构解析

PDK,Process Design Kit。没有它,你连个反相器都画不出来。SMIC 28nm的PDK,我拿到手第一件事就是看目录结构。

典型的PDK目录长这样:

smic28_pdk/
├── doc/                # 文档,必读!
├── lib/                # 时序库 (.lib)
├── lef/                # 物理库 (.lef)
├── gds/                # GDS版图
├── cdl/                # 网表
├── tech/               # 工艺文件 (.tf, .itf)
├── qrc/                # 寄生参数文件
├── drc/                # DRC规则
├── lvs/                # LVS规则
└── pdk_install/        # 安装脚本

我个人习惯先看doc/目录下的PDK_Release_Notes.pdf。为什么?因为里面会写清楚这个版本修复了哪些bug,新增了哪些cell。有一次我忽略了release notes,结果用了一个有问题的D触发器的LEF,跑完LVS才发现——白白浪费了两天。

几个关键文件你得认识:

  • .lib文件:时序库,分ss、tt、ff三种corner。SMIC 28nm的.lib文件命名规则一般是smic28_<corner>_<voltage>_<temp>.lib
  • .lef文件:物理库,包含cell的尺寸、pin位置、阻塞层信息。注意看MACROPIN的定义
  • .tf文件:工艺技术文件,定义了金属层、通孔、设计规则。做floorplan时,minWidthminSpacing参数要反复核对

注意:SMIC 28nm的PDK有多个版本,比如v1.0、v2.0、v3.0。不同版本之间,cell的尺寸和pin位置可能不一样。如果你从v1.0迁移到v2.0,一定要重新做一遍LVS和DRC。我见过有人偷懒没做,结果流片回来短路了。

1.4 PDK安装与验证

安装PDK,说简单也简单,说复杂也复杂。SMIC 28nm的PDK通常提供两种安装方式:

  1. 图形化安装:运行./install.sh,跟着向导走
  2. 命令行安装:适合批量部署,用./install.sh -batch

我建议用命令行方式,因为可以写脚本自动化。下面是我常用的安装脚本:

#!/bin/bash
# SMIC 28nm PDK 安装脚本
# 作者:老李

PDK_DIR=/home/designer/smic28_pdk
INSTALL_DIR=/home/designer/pdk

cd $PDK_DIR
./install.sh -batch \
    -target_dir $INSTALL_DIR \
    -tech smic28 \
    -corner ss tt ff \
    -metal 9 \
    -option hkmp

# 验证安装
echo "验证PDK安装..."
ls -la $INSTALL_DIR/smic28/lib/
ls -la $INSTALL_DIR/smic28/lef/

安装完成后,一定要做验证。我一般分三步走:

  • 第一步:检查文件完整性。用md5sum对比官方提供的checksum
  • 第二步:加载一个简单的testcase。比如用Innovus或ICC2读入一个反相器的LEF和LIB,看看能不能正常place
  • 第三步:跑一遍DRC和LVS。这是最保险的,能发现PDK中隐藏的问题

个人经验:我曾经在安装PDK时,发现qrc/目录下的寄生参数文件缺失。后来一查,是安装脚本的一个bug。从那以后,我每次装完PDK都会手动检查qrc/目录下有没有.qrcTechFile.itf文件。少了它们,后仿真的寄生参数提取就废了。

嗯,关于SMIC 28nm的工艺概述和PDK安装,今天就聊到这儿。下一章咱们聊聊标准单元库和IO库的选择,那也是个坑不少的地方。


公众号:蓝海资料掘金营,微信deep3321