4、芯片级SI设计流程:设计输入、预布局分析、详细仿真、后仿真验证、测试验证
各位工程师朋友,咱们今天聊聊芯片级信号完整性的设计流程。说实话,这个流程我摸索了好几年才真正吃透。刚开始做光通信芯片那会儿,我总觉得SI就是跑跑仿真,后来吃过几次亏才明白——这玩意儿得从头到尾贯穿整个设计周期。
整个流程我习惯分成五个阶段:设计输入、预布局分析、详细仿真、后仿真验证、测试验证。每一步都有它的门道,咱们一个一个说。
4.1 设计输入:别急着动手,先搞清楚要什么
设计输入这一步,说白了就是收集需求。但我见过太多人上来就开干,结果做到一半发现指标定错了,那叫一个痛苦。
我个人习惯,先拉一张表,把关键参数列清楚:
| 参数项 | 典型值(25Gbps NRZ) | 典型值(112Gbps PAM4) | 说明 |
|---|---|---|---|
| 数据速率 | 25.78125 Gbps | 112 Gbps | 含FEC开销 |
| 信道损耗预算 | ≤ 15 dB @ 12.89 GHz | ≤ 30 dB @ 28 GHz | 包含PCB+封装+芯片 |
| 回波损耗 | ≤ -12 dB | ≤ -10 dB | 差分模式 |
| 串扰预算 | ≤ -35 dB | ≤ -40 dB | 近端+远端 |
| 眼图模板 | 符合IEEE 802.3ba | 符合IEEE 802.3ck | 垂直/水平余量 |
嗯,这里要注意——光通信芯片的速率越来越高,112Gbps PAM4的信号,对信道的要求比25Gbps严苛得多。我在项目中遇到过,有人拿着25G的指标去设计112G的芯片,结果流片回来眼图根本睁不开。
4.2 预布局分析:先搭个框架,别急着画细节
预布局分析,我理解就是「纸上谈兵」的阶段。这时候芯片的floorplan还没定死,你有机会做大的调整。一旦布局定下来,后面改起来就费劲了。
这个阶段我主要做三件事:
- IO口规划——高速SerDes放在哪?时钟走哪边?电源域怎么划分?
- 关键路径识别——哪些信号对时序最敏感?哪些容易受串扰?
- 粗略的损耗估算——用简单的公式算一下,从PAD到接收器的总损耗大概多少。
举个例子,我曾经做过一个56Gbps PAM4的芯片。预布局时我发现,如果SerDes放在芯片左上角,而时钟源在右下角,时钟走线要横穿整个芯片。你想想看,这得引入多少抖动?后来我建议把时钟源挪到SerDes附近,虽然floorplan调整了一版,但后面的仿真验证顺利多了。
预布局阶段的核心原则:
- 高速信号走线尽量短,尽量直
- 敏感信号和干扰源保持距离(至少3倍线宽)
- 电源和地要成对出现,形成回流路径
- 不同电压域的IO口要分开区域
4.3 详细仿真:该较真的时候了
到了详细仿真阶段,就要动真格的了。这时候芯片的版图已经有个大概样子,我们可以提取寄生参数,跑精确的仿真。
我个人习惯的仿真流程是这样的:
- 提取S参数——用电磁仿真工具提取关键路径的S参数,频率范围要到信号的三次谐波以上。比如25Gbps的信号,至少要跑到37.5GHz。
- 时域仿真——把S参数导入通道仿真器,跑眼图、抖动、BER。
- 串扰分析——把相邻通道的耦合效应加进去,看看最差情况。
- 电源完整性——PDN的阻抗曲线,确保在目标频率范围内低于目标值。
这里我特别想说一下串扰分析。很多人只做单通道仿真,觉得眼图还行就过了。但实际芯片里,十几个通道同时工作,串扰会叠加。我曾经遇到过一个案例,单通道仿真眼图余量有20%,但8个通道同时跑的时候,眼图直接闭合了。原因就是远端串扰在特定频率下谐振了。
4.4 后仿真验证:版图出来了,再查一遍
后仿真验证,说白了就是「版图出来后的复查」。这时候芯片的物理设计已经完成,寄生参数更准确了。但很多人觉得前仿真都过了,后仿真就是走个形式。我告诉你,千万别这么想。
后仿真和前面仿真的区别在于:
| 对比项 | 前仿真(预布局/详细仿真) | 后仿真(版图完成后) |
|---|---|---|
| 寄生参数精度 | 估算值/预估值 | 实际提取值 |
| 走线拓扑 | 理想化 | 实际版图 |
| 耦合效应 | 粗略估计 | 精确提取 |
| 电源网络 | 理想电源 | 实际PDN |
我记得有一次,前仿真时一条高速走线的眼图余量有30%,但后仿真发现只有8%。查了半天,原来是版图工程师在绕线时,为了避开一个block,把走线绕了个弯,引入了额外的阻抗不连续。这种问题,前仿真根本发现不了。
后仿真验证我一般会做两轮:
- 第一轮:快速检查——挑最关键的几条路径,跑一下眼图和抖动,看看有没有明显问题。
- 第二轮:全面验证——所有高速通道、时钟路径、关键控制信号,全部跑一遍。串扰、电源噪声、工艺角都要覆盖。
4.5 测试验证:流片回来,是骡子是马牵出来遛遛
测试验证是最后一道关。说实话,这一步最考验心态。流片花了那么多钱,万一测试结果不好,那真是欲哭无泪。
测试验证我一般分三步走:
- 基本功能测试——芯片能不能正常工作?PLL锁定没有?SerDes能不能跑起来?
- SI性能测试——用示波器看眼图,用BERT测误码率,用VNA测S参数。
- 系统级测试——把芯片放到实际系统中,跑业务流量,看看有没有误码。
这里我想分享一个经验。测试时,别只看「通过/不通过」,要关注余量。比如眼图模板测试,如果眼图刚好擦着模板边,那说明设计余量不够。量产时温度一变、电压一波动,可能就挂了。
好了,芯片级SI设计流程就聊到这儿。总结一下:设计输入定目标,预布局搭框架,详细仿真较真,后仿真查漏补缺,测试验证见真章。每一步都别偷懒,否则流片回来哭都来不及。
下一章咱们聊聊具体的仿真工具和建模方法,到时候见。