3. AI芯片设计流程:从规格定义到流片

说实话,AI芯片的设计流程,跟传统数字芯片有七分像,但又有三分很不一样的地方。我做了十几年芯片,从28nm一路做到5nm,最大的感受就是——AI芯片的迭代速度太快了,流程里的坑也特别多。

今天我就把整个流程拆开来讲。从你拿到一个需求,到最终把GDS送出去流片,中间到底要经历哪些阶段。每个阶段我会结合自己踩过的坑,给你一些实在的建议。

3.1 整体流程概览

先给你一张总图,把整个流程串起来。你心里有个谱,后面我们再一个一个拆。

AI芯片设计全流程 AI芯片设计全流程(从规格到流片) 规格定义 需求分析·架构选型 架构设计 微架构·存储层次 RTL编码 Verilog/SystemVerilog 前端验证 仿真·UVM·覆盖率 逻辑综合 DC/Genus·门级网表 DFT设计 扫描链·MBIST·ATPG 后端设计 布局布线·时钟树 物理验证 DRC·LVS·ANT 静态时序分析 PrimeTime·Signoff 流片(Tapeout) GDS交付·签核 💡 关键提示 AI芯片设计中,前端验证和后端时序收敛往往占据整个项目周期的60%以上 建议在架构阶段就预留足够的时序余量,不然后面改起来非常痛苦

整个流程,我习惯把它分成两大块:前端设计和后端设计。前端负责把想法变成代码,后端负责把代码变成版图。中间还有验证和测试贯穿始终。

3.2 前端设计阶段

前端设计,说白了就是「把脑子里的架构变成RTL代码」。这个阶段我踩过的坑最多,因为AI芯片的架构太灵活了,很容易写着写着就跑偏。

3.2.1 规格定义

这一步决定了芯片的「灵魂」。你想想看,如果规格定义错了,后面所有的工作都是白费。

规格定义要回答几个核心问题:

  • 算力目标:多少TOPS?INT8还是FP16?
  • 功耗预算:板级散热能撑多少瓦?
  • 存储层次:SRAM多大?HBM还是DDR?
  • 接口协议:PCIe Gen几?有没有CXL?
我的经验:规格定义阶段,一定要拉上软件团队一起讨论。我见过太多芯片做出来硬件跑得飞快,但编译器不支持,结果性能直接腰斩。AI芯片是软硬协同的产物,别自己闷头搞。

3.2.2 架构设计与RTL编码

架构设计阶段,你要把规格拆成具体的微架构。比如MAC阵列多大、数据流怎么走、有没有稀疏计算支持。

RTL编码阶段,就是用Verilog或SystemVerilog把这些架构描述出来。这里我有个建议:

  • AI芯片的RTL,尽量参数化写。因为后面很可能要调整MAC阵列大小或者数据位宽。
  • 控制通路和数据通路分开写。我见过有人把控制逻辑和数据通路混在一起,后期调试简直噩梦。
  • 多写断言(assertion)。AI芯片的状态机特别复杂,断言能帮你提前发现很多边界问题。

3.2.3 前端验证

前端验证,是AI芯片设计里最耗时的环节。没有之一。

为什么?因为AI芯片的验证空间太大了。一个卷积层可能有几十种配置,再加上各种数据精度、各种激活函数,组合起来是个天文数字。

我常用的验证策略:

验证层级 方法 覆盖目标
单元级 定向测试 + UVM 单个模块功能正确
子系统级 随机约束测试 模块间交互
芯片级 C模型比对 + 形式验证 全芯片一致性
软件协同 跑真实AI模型 ResNet/YOLO等实际性能
⚠️ 避坑指南:我曾经在一个项目里,单元级验证做得很好,但芯片级验证只跑了几个简单的测试用例。结果流片回来,跑ResNet-50的时候发现数据通路有死锁。从那以后,我要求所有AI芯片在流片前,必须至少跑通3个真实AI模型的全流程仿真。

3.3 后端设计阶段

后端设计,就是把RTL代码变成真正的物理版图。这个阶段,AI芯片和传统芯片最大的区别在于——面积大、功耗高、时钟复杂。

3.3.1 逻辑综合

逻辑综合,就是把RTL代码映射到工艺库里的标准单元。AI芯片的MAC阵列通常有几千个乘法器,综合的时候要特别注意:

  • 乘法器是用组合逻辑还是流水线实现?
  • 综合策略选面积优先还是速度优先?

我个人习惯,MAC阵列用流水线实现,虽然面积大一点,但时序好收敛。综合的时候,我会先跑一版面积优先的,看看能不能满足时序;不行再换速度优先。

3.3.2 布局布线与时钟树

布局布线,就是把标准单元摆到芯片上,然后用金属线连起来。AI芯片的布局有个特点:MAC阵列通常要摆成一个规整的矩形,这样数据流才顺畅。

时钟树综合(CTS)是后端设计里最头疼的环节。AI芯片的时钟域特别多,每个MAC阵列可能都有自己的时钟门控。我建议:

  • 时钟树尽量平衡,skew控制在50ps以内。
  • 时钟门控要分层做,不要一个门控控制太多寄存器。
关键指标:AI芯片后端设计,通常要满足以下signoff标准:
  • 建立时间(setup) slack > 0
  • 保持时间(hold) slack > 0
  • 最大转换时间(max_transition) < 0.5ns
  • 最大电容(max_capacitance) 满足工艺库约束

3.3.3 物理验证与STA

物理验证,就是检查版图有没有违反工艺规则。DRC(设计规则检查)和LVS(版图与原理图一致性检查)是必做的。

静态时序分析(STA),说白了就是检查你的芯片能不能跑在目标频率上。我刚开始做设计时总觉得这步可有可无,直到有一次流片回来芯片死活上不了高频……嗯,从那以后我再也不敢跳过STA了。

AI芯片的STA,要特别注意多角多模分析。因为AI芯片的工作模式很多,比如训练模式、推理模式、低功耗模式,每种模式的时序约束都不一样。

3.4 DFT与测试

DFT(可测试性设计),是AI芯片里容易被忽视但极其重要的环节。你想想看,一个芯片几百亿个晶体管,如果出厂后发现有制造缺陷,怎么定位问题?

DFT主要做三件事:

  1. 扫描链(Scan Chain):把寄存器连成链,方便测试向量灌入。
  2. 存储器内建自测试(MBIST):SRAM和寄存器堆的自测试。
  3. 自动测试向量生成(ATPG):生成测试向量,覆盖制造缺陷。
我的建议:AI芯片的SRAM通常很大,MBIST一定要做。我曾经在一个项目里,因为SRAM的MBIST覆盖率不够,导致流片后有一批芯片的权重存储器有坏点,直接报废了200片晶圆。那个教训,太深刻了。

3.5 流片前的最终检查

流片(Tapeout)前,我会做一次全面的「签核检查」。这里列一个checklist,你可以直接拿去用:

检查项 具体内容 状态
功能验证 所有测试用例通过,覆盖率达标 ✅
时序签核 所有PVT角标下setup/hold满足 ✅
功耗分析 动态功耗+静态功耗在预算内 ✅
物理验证 DRC/LVS/ANT全部clean ✅
DFT 扫描链测试通过,ATPG覆盖率>95% ✅
IR Drop 电源网络压降<5% ✅
EM/IR 电迁移分析通过 ✅

全部打勾之后,我才会在流片确认单上签字。这一步,千万别急。我见过有人为了赶流片窗口,跳过了一些检查项,结果芯片回来不能用,损失几千万。

⚠️ 最后一句忠告:AI芯片设计流程,看起来是线性的,但实际上每个阶段之间都有反馈。前端发现的问题可能要改架构,后端发现的问题可能要改RTL。保持流程的灵活性,别把路走死了。