4. Chiplet时序挑战:跨Die时钟同步、PVT差异、SSN与信号完整性退化

各位做Chiplet的同行,大家好。我是老李,干了十几年后端,这几年全扑在Chiplet封装上。今天咱们聊聊时序收敛里最让人头疼的几个问题。

说实话,单芯片的时序收敛已经够折腾了。到了Chiplet时代,问题直接翻倍。你想想看,一个芯片拆成几个Die,它们之间靠封装基板上的微凸点或者硅中介层连起来。时钟怎么同步?电压温度都不一样,噪声还互相串扰。嗯,这里面的坑,我一个个踩过。

Chiplet时序挑战核心知识体系 Chiplet时序收敛 跨Die时钟同步 • 时钟树跨Die分布 • 源同步 vs 自同步 • 时钟偏斜补偿 PVT差异 • 工艺角不匹配 • 电压降差异 • 温度梯度 SSN影响 • 同时开关噪声 • 电源完整性 • 地弹效应 信号完整性退化 • 插入损耗 • 串扰与反射 • 码间干扰(ISI) 相互耦合影响

4.1 跨Die时钟同步——最基础的难题

跨Die时钟同步,说白了就是让两个芯片里的时钟对齐。单芯片里时钟树综合(CTS)做完,skew控制在几十皮秒以内不难。但到了Chiplet,时钟信号要从一个Die穿过封装基板到另一个Die,路径长了,干扰多了,skew直接飙到纳秒级。

我个人习惯把跨Die时钟同步分成两类:

  • 源同步(Source Synchronous):时钟和数据一起从发送端送出去。接收端用这个时钟来采样数据。优点是简单,缺点是时钟和数据路径必须匹配,否则skew会吃掉时序裕量。
  • 自同步(Self-Synchronous):也叫嵌入式时钟。时钟信息嵌在数据里,接收端用CDR(时钟数据恢复)电路把时钟提出来。优点是省了专门的时钟走线,缺点是CDR电路复杂,锁定时间也长。

关键点:跨Die时钟同步的核心是补偿封装引入的延迟。我建议在Die的边界处加可调延迟链(Tunable Delay Line),通过校准来消除Die-to-Die的时钟偏斜。

我在一个HBM接口项目里遇到过这种情况:两个Die之间的时钟skew达到了800ps,而数据有效窗口只有1.2ns。嗯,这几乎没法做了。后来我们在发送端加了一级DLL(延迟锁定环),把skew压到了150ps以内。说白了,硬件上多花点面积,时序上就省心很多。

4.2 PVT差异——不同Die的“脾气”不一样

单芯片里,PVT(工艺-电压-温度)变化是全局的。芯片要么在慢工艺角,要么在快工艺角,电压和温度也基本一致。但Chiplet不一样,每个Die可能来自不同的晶圆批次,甚至不同的代工厂。

为什么会这样?因为Chiplet允许混搭。计算Die用先进工艺(比如5nm),I/O Die用成熟工艺(比如28nm)。这两个Die的工艺角特性完全不同。5nm的管子快,28nm的管子慢。再加上供电网络(PDN)是分开的,电压降(IR Drop)也不一样。

参数 Die A(计算Die,5nm) Die B(I/O Die,28nm) 跨Die影响
工艺角 FF(快-快) SS(慢-慢) 时序偏差可达30%
电压 0.75V ± 5% 1.8V ± 10% 电平转换延迟增加
温度 85°C(计算密集) 45°C(I/O空闲) 迁移率差异

避坑指南:我曾经在一个项目里没做跨Die的PVT仿真,结果流片回来发现Die A在快角、Die B在慢角时,接口时序直接崩了。从那以后,我坚持做“跨Die PVT组合仿真”,至少覆盖FF-SS、SS-FF、TT-TT三种组合。

我的做法是:在Die的边界处加电平转换器(Level Shifter)和自适应延迟线。电平转换器解决电压不匹配,自适应延迟线根据PVT变化动态调整延迟。你想想看,这就像给两个Die之间加了一个“智能适配器”,不管它们各自什么状态,都能对上话。

4.3 SSN(同时开关噪声)——看不见的时序杀手

SSN,全称Simultaneous Switching Noise。说白了,就是很多I/O同时翻转时,瞬间电流太大,在电源和地网络上产生压降。这个压降会直接反映在信号上,导致时序偏移。

在Chiplet里,SSN问题更严重。因为Die之间的I/O数量多,而且封装基板上的电源分布网络(PDN)阻抗比片上PDN高得多。我记得有个项目,64位并行总线同时翻转,地弹(Ground Bounce)达到了300mV,直接把接收端的采样窗口给压没了。

怎么解决?我总结了几个实用方法:

  • 控制同时翻转的I/O数量:用数据总线反转(DBI)编码,保证每次最多一半的I/O翻转。
  • 增加去耦电容:在Die的边界处放足够的去耦电容(Decap),尤其是靠近I/O pad的位置。
  • 优化封装PDN:用更厚的铜层、更多的过孔,降低封装阻抗。
  • 采用差分信号:差分对本身对共模噪声有抑制,SSN的影响会小很多。

个人经验:我习惯在仿真时加一个“SSN激励”,让所有I/O同时翻转,然后看接收端的眼图。如果眼高低于200mV,那基本没戏。这时候要么降速,要么加DBI编码。

4.4 信号完整性退化——封装基板不是理想导线

信号完整性(SI)退化,在Chiplet里是个绕不开的坎。单芯片里,信号走的是片上金属线,损耗小、干扰小。但跨Die信号要走封装基板,那玩意儿的损耗比片上大得多。

主要问题有三个:

  1. 插入损耗(Insertion Loss):封装基板的介质损耗和导体损耗,会让信号幅度衰减。频率越高,衰减越厉害。比如在16Gbps速率下,一段10mm的封装走线,损耗可能达到3dB以上。
  2. 串扰(Crosstalk):封装基板上的走线间距大,但长度也长。相邻信号线之间的容性和感性耦合,会产生串扰。我见过一个案例,串扰噪声达到了信号幅度的20%。
  3. 码间干扰(ISI):由于封装通道的带宽有限,前一个bit会影响后一个bit。说白了,就是信号在通道里“拖尾”了。

怎么应对?我建议从设计和仿真两方面入手:

  • 设计层面:用预加重(Pre-emphasis)和均衡(Equalization)技术。发送端预加重,把高频分量抬一抬;接收端均衡,把低频分量压一压。两边配合,眼图就打开了。
  • 仿真层面:一定要做通道仿真(Channel Simulation),用S参数模型来表征封装基板的电气特性。我习惯跑一下统计眼图(Statistical Eye),看看在最差情况下眼图还能不能睁开。

核心原则:信号完整性退化,最终都会反映在时序上。眼图闭合了,setup/hold检查肯定过不了。所以,做Chiplet时序收敛,必须先搞定SI。

嗯,这四个挑战——跨Die时钟同步、PVT差异、SSN、信号完整性退化——它们不是孤立的。时钟同步不好,PVT差异会放大;SSN会恶化信号完整性;信号完整性退化又会让时钟恢复更难。说白了,这是一个环环相扣的系统性问题。

我个人习惯的做法是:先做系统级仿真,把每个Die的边界条件定清楚。然后针对每个挑战,分别制定对策。最后再做一次全链路仿真,验证所有对策一起工作时是否有效。记住,Chiplet时序收敛没有银弹,只有把每个细节都做到位,才能保证流片一次成功。

可可精品资料库