3. 网表对比与差异分析:让芯片改版不再“盲人摸象”

做版图ECO,最怕什么?

我最怕的是:改了半天,结果发现网表对不上。芯片流片回来,功能不对,查到最后——原来是ECO时漏改了一个连接。这种经历,一次就够你记一辈子。

网表对比,说白了就是给你的ECO工作装上一双“透视眼”。它能告诉你:改前改后,电路到底变了什么。今天我就把这套方法掰开揉碎了讲给你听。

核心观点:网表对比不是走形式,它是ECO流程的“守门员”。跳过这一步,你就是在赌运气。

网表对比与差异分析 对比工具介绍 逻辑差异提取 物理差异分析 差异报告解读 ECO验证闭环

3.1 网表对比工具介绍

市面上主流的网表对比工具,我基本都用过。华大九天的工具链里,LEC(Logic Equivalence Check)NetDiff 是两款核心工具。

  • LEC:做形式验证的,比对两个网表在逻辑上是否等价。适合大模块、全芯片级别的验证。
  • NetDiff:专门做网表差异对比的,轻量、快速。适合ECO场景下的局部比对。

我个人习惯是:大动作用LEC,小修小改用NetDiff。举个例子,有一次我改一个SerDes模块,只动了十几根线。用LEC跑一遍要半小时,用NetDiff三分钟就出结果了。你想想看,时间就是这么省出来的。

小技巧:NetDiff支持命令行和GUI两种模式。我建议你调试阶段用GUI,直观;批量跑的时候用命令行,效率高。

3.2 逻辑差异提取

逻辑差异,说白了就是两个网表在“功能”上有什么不同。工具会逐条比对:

  1. 端口差异:多了少了哪些输入输出
  2. 实例差异:器件类型变了没,尺寸变了没
  3. 连接差异:同一个信号连到了不同的地方
  4. 层次差异:子模块的例化关系变了没

我记得有一次,一个同事改版图时把某个反相器的W/L从10/0.18改成了8/0.18。他觉得“就改个尺寸,功能没变”。结果LEC报出来——逻辑不等价。为什么?因为驱动能力变了,后面级联的逻辑门翻转时间变了,整个时序路径都受影响。嗯,这里要注意:尺寸变化在某些工具里会被视为逻辑差异

避坑指南:我曾经遇到过一种情况——两个网表看起来一模一样,但LEC报不等价。查了半天,发现是其中一个网表里有个“悬空引脚”被工具自动接地了。所以,跑对比之前,先确认一下网表的“预处理”选项是否一致。

3.3 物理差异分析

逻辑差异看的是“功能”,物理差异看的是“位置”和“形状”。

物理差异分析主要关注:

差异类型 具体内容 影响
金属层变化 走线宽度、间距、层数 RC参数、电流能力
通孔变化 VIA数量、位置、尺寸 电阻、可靠性
器件位置 MOS管、电阻、电容的坐标 匹配性、寄生效应
保护环/隔离 是否完整、间距是否足够 闩锁效应、噪声隔离

物理差异分析,我一般用华大九天的 Layout Compare 功能。它会生成一个“差异图层”,把改动的区域高亮出来。你直接在版图上就能看到:哦,这里多了一根线,那里少了一个VIA。

你想想看,如果没有这个功能,你得拿两个版图来回切换着看,眼睛都能看花。

3.4 差异报告解读

工具跑完了,会生成一份报告。很多人拿到报告就懵了——密密麻麻的英文,不知道看哪里。

我教你一个方法:先看Summary,再看Detail

Summary会告诉你:

  • 总共有多少处差异
  • 哪些是“预期差异”(你故意改的)
  • 哪些是“非预期差异”(可能是改错了)

举个例子,一份典型的报告长这样:

========================================
NetDiff Report - ECO Comparison
========================================
Summary:
  Total differences found: 12
  Expected (marked as ECO): 10
  Unexpected: 2
  ---
  Port changes: 0
  Instance changes: 3
  Net changes: 9
========================================
Detail:
  1. Net "clk_div4" - driver changed
     Old: U23/Z (INV_X2)
     New: U45/Z (INV_X4)
     Status: EXPECTED (ECO item #5)
  2. Net "data_bus[7]" - fanout changed
     Old: 3 loads
     New: 4 loads
     Status: UNEXPECTED
     Warning: Possible short or missing connection
========================================

看到第2条了吗?UNEXPECTED 就是你需要重点关注的。我一般会先处理这些“非预期差异”,确认是改错了还是工具误报。

我的习惯:每次跑完对比,我会把报告里的“非预期差异”截图,发给设计工程师确认。白纸黑字,避免后面扯皮。做ECO,沟通和文档一样重要。

最后说一句:网表对比不是跑一次就完事了。我建议你每做完一步ECO,就跑一次对比。小步快跑,发现问题早解决。等所有改完了再跑,万一发现大问题,返工成本就高了。

好了,这一节的内容就这些。记住:工具是死的,人是活的。用好网表对比,你的ECO成功率至少能提高一半。


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