说起来,做高速电路的兄弟们应该都遇到过这事儿——示波器往那儿一摆,眼图一打出来,心里顿时凉了半截。这眼图怎么跟没睡醒似的,眼睛都快睁不开了?
按我的经验,这种时候别急着改板子。先把项目关一关,泡杯咖啡,回去跑跑SI仿真。
今天咱们就聊聊,眼图那些事儿,以及SI仿真到底能帮你干啥。

眼图是由所有比特波形叠加形成的二维统计图形
一、眼图到底是个啥?有些新手可能还不太清楚,眼图为啥长这样。简单说,眼图就是把你那个高速数据流切成无数个小段,然后像乐高积木一样叠在一起。叠得好的地方,像眼睛一样张开,那就是好信号;叠得乱七八糟、根本看不出缝隙的,就是眼图闭合。
眼图这玩意儿为啥重要?因为它能一眼看出你的信号到底靠不靠谱。
眼图张开得越大,说明信号的电压裕量和时间裕量越充足,误码率自然就低;眼图糊成一团的,采样点落哪儿都不确定,时不时给你蹦出个误码。
其实你想想,眼图就像你看人脸——睡饱了精神好,眼睛睁得大大的,看啥都清楚;熬夜熬塌了,眼睛就眯成一条缝,看人也费劲。
二、眼图闭合的常见原因说起来,眼图张不开的原因就那么几种,但排查起来其实挺费时间的。

眼图闭合通常由阻抗不匹配、码间干扰、串扰等因素引起
1. 阻抗不匹配
阻抗不匹配是头号杀手。你想想,信号在传输线上跑得好好的,突然遇到个阻抗突变——比如过孔、连接器、或者直角拐弯——部分信号就被弹回去了。反射波和后续的入射波叠加在一起,信号波形就开始变形,要么抬起来,要么压下去。眼图自然就跟着乱了。
更讨厌的是,这种反射有时候不止一次。信号弹回去之后,又从源端弹回来,来来回回好几趟,形成我们看到的振铃。这玩意儿在时域波形上看着挺明显,但到了眼图里,就是眼图边缘毛毛糙糙的主要原因。
2. 码间干扰ISI
这个可能是最容易忽略的问题。啥叫码间干扰?就是当前这个bit的状态,会被前面的bit和后面的bit影响。
打个比方,你传一个"1",信号幅度理论上应该是固定的。但实际呢?前面连着10个"1"和前面只有1个"1",信号的幅度居然不一样!为啥?因为传输线不是理想的,它有损耗。频率越高,损耗越大。所以"1111111111"这种码型,衰减就比"1010101010"厉害。
结果就是,不同的码型组合会让边沿到达的时刻不一样。眼图一看,左右边缘参差不齐,眼宽直接就被吃掉了。
3. 串扰
走线太密、相邻信号线耦合太强的,串扰就来了。近端串扰、远端串扰,叠在主信号上,让眼图的上下眼皮都变得厚厚实实的,严重的时候直接闭合。
4. 电源噪声和抖动
电源上的噪声会叠加到信号上,等效于在信号里掺沙子。更讨厌的是,有些噪声是周期性的,会让边沿的抖动也带点周期性。抖着抖着,眼图水平方向就开始收窄。
三、SI仿真的基本流程好了,问题知道了,接下来怎么用仿真定位呢?

典型的SI仿真流程:建立通道模型 → 设置激励源 → 瞬态仿真 → 眼图分析
Step 1:建立通道模型
这是最基础也是最关键的一步。你得把你的PCB走线、过孔、连接器、线缆都变成仿真软件能认识的东西。常见的做法是用S参数模型,或者IBIS模型。近几年比较流行的是IBIS-AMI模型,特别适合SerDes链路仿真。
Step 2:设置激励源
用PRBS伪随机序列做激励源是最常见的,比如PRBS7、PRBS15、PRBS31。PRBS31基本能覆盖绝大多数的实际码型组合。
Step 3:跑瞬态仿真
把信号从发送端打到接收端,看看到底发生了啥。这个过程会模拟信号的衰减、反射、串扰,最终在接收端输出波形。
Step 4:生成眼图
仿真软件会自动把波形按单位间隔切割、叠加,生成眼图。有些工具还能直接做眼图模板测试,一键告诉你Pass还是Fail。
Step 5:定位问题
通过眼图的形态,你就能反推问题根源。眼高不够,一般是幅度问题,可能是损耗太大;眼宽不够,一般是抖动问题,可能是ISI或者阻抗不连续;眼图不对称,往往是方向性的问题,比如某一段走线出了问题。
四、常见仿真工具说到工具,其实挺多的,各有各的特点。
HyperLynx 是西门子旗下的一款入门级SI仿真工具,界面友好,上手快,适合快速扫一眼设计有没有大问题。特别适合在校学生或者刚入行的工程师。
ADS 是Keysight的拳头产品,功能强大,特别是channel simulation做眼图分析特别顺手。不过这软件挺贵的,一般公司才舍得买。
Sigrity 属于Cadence,和PCB设计工具结合紧密。如果你是用Allegro画板的,用Sigrity做仿真工作流会很顺滑。
Cadence Clarity 这几年也开始冒头,3D电磁场仿真能力挺强的,适合对精度要求高的场景。
其实吧,工具不是最重要的。核心是你得理解仿真出来的东西在说啥,能不能把仿真的结论和实际板子的表现对上号。
五、一个真实案例按我的经验,给你讲个真实的。
有个项目,10Gbps SerDes接口。板子回来之后,眼图一打出来,怎么看怎么不对——眼高比仿真预期低了将近25%,眼宽也收窄了不少,还时不时有间歇性闭合。
当时第一反应是板子加工出了问题。TDR一测,果然,差分阻抗从仿真的100Ω变成了90Ω左右,波动还挺大。
后来分析了一圈,发现问题出在两处:一是PCB压合的时候介质厚度超差了一点,二是铜箔用了普通电解铜,高频下粗糙度的影响被放大了。
怎么处理呢?下一版改用了低粗糙度的反转铜箔(HVLP),板厂那边也严格管控了介质厚度公差。重新打板之后,实测眼图终于和仿真对上了。
这个故事告诉我们,仿真过了不代表实测就一定能过。材料公差、加工工艺这些因素,都是要在仿真阶段就留好裕量的。

仿真结果与实测数据对比:加工公差和材料参数是主要差异来源
六、几点建议1. 仿真目标要留裕量:差分阻抗100Ω,别按100Ω来仿,按105Ω来仿。这样加工偏差的时候还能在范围内。
2. 材料参数要和板厂确认:介电常数、损耗因子、铜箔类型,这些最好在出图之前和板厂确认清楚。
3. 首件一定要测TDR和眼图:发现偏差,及时反标仿真模型,迭代优化。
4. 工具只是手段:别太依赖工具给你一个Pass或者Fail的结论,要理解数据背后的物理含义。
好了,今天就聊到这儿。下次你再看到眼图闭合,别慌,先把仿真跑起来,看看问题到底出在哪儿。
暂无评论