Robert Murphy ( 墨菲 ),Advanced Micro Devices 技术人员
Jason Paquette ( 杰森·帕奎特 ),Advanced Micro Devices 产品开发工程师

摘要— 为了最大限度地利用设计资源并缩短上市时间,片上系统 (SoC) 设计采用了大量功能块重用。这种重用为在块级比较性能和产量提供了基础,从而实现了有针对性的调试和进一步的优化机会。本文介绍了生成自定义地图以用于 JMP 的 Graph Builder 平台的过程。该技术提供了一种使用高度交互的工具探索空间驱动信号的宝贵方法。通过释放 JMP 中自定义地图的强大功能来推动流程改进。
索引词——自定义地图、超热图、根本原因分析、SoC、片上系统、产量。
一、引言
如今的 SoC 通常是一个相对较大的设备,它基于尖端的半导体工艺技术构建,追求不断提高的性能和能效。它由一系列复制和独特的块组成,这些块提供各种芯片功能,例如 I/O、计算和图形。这些块可以根据它们在芯片上的物理位置表示为地图。通过在 JMP 中将此类地图用作自定义地图,工程师或分析师可以创建强大的可视化效果,从而更快地调试流程、测试或产量问题。反过来,这支持更快地提高产量和质量,从而更快地为新产品设计带来投资回报 (ROI)。通过在 Graph Builder 中根据芯片在晶圆上的物理位置组合基于芯片的热图,可以发现以前未注意到的影响。这是因为许多半导体制造挑战都与晶圆内的空间位置有很大的依赖关系,例如中心或边缘效应。清楚地说明这些位置依赖关系可以大大缩小潜在根本原因的范围,并加速流程改进。
II. 使用自定义地图的好处
目前,工程师或分析师可以使用各种工具来识别异常响应。这些工具包括直方图和箱线图。虽然这些工具很有价值且使用率很高,但它们缺乏说明物理定位的能力,无法更快地识别模式。了解这些模式有助于缩小后续分析和根本原因隔离的范围,从而缩短调试和提高产量的时间。
虽然本文重点关注半导体行业,但自定义地图的应用在许多具有空间信号的环境中都很有用。
III. 在 JMP 中创建自定义地图
JMP 中自定义地图形状的生成是通过逐个连接每个形状的顶点来完成的。为此,JMP 需要以两个定义文件的形式提供顶点坐标信息:一个“-Name”文件和一个“-XY”文件。“-Name”文件包含必需的数字形状 ID和名称列,“-XY”文件包含形状 ID、零件 ID、顶点的 X和Y坐标。形状 ID列将“-XY”文件中的坐标链接到“-Name”文件中的形状名称。
如果有顶点坐标,则可以通过几个步骤生成“-Name”和“-XY”文件。
汇总坐标文件,使每个形状在数据表中占据一行。按升序(从一开始)创建一个“形状 ID”列,为每个形状提供唯一的 ID。形状 ID 必须是表中的第一列。将表保存为“ $$$ -Name.jmp”,其中$$$是选定的前缀。在此文件中,应该有一个用户友好的名称列来表示每个形状。在此列的列属性中,选择“映射角色”并将其设置为“形状名称定义”(参见图 1)。这是一个重要的步骤,因为此列中的值将用于链接叠加的原始数据。
- 如图。1. 形状名称定义地图角色属性设置
在原始坐标表仍然打开的情况下,合并刚刚创建的唯一形状 ID 列,并按形状 ID 按升序对表进行排序。将数据表保存为“ $$$ -XY.jmp”,其中$$$必须与“-Name”文件使用的前缀相同。
此 '-XY' 文件需要四个必需列,即形状 ID 、 X 、 Y和零件 ID 。在当前状态下,文件应包含所有这些信息,可能只需要重命名这些列。但是,它将缺少零件 ID列。此列主要告诉 JMP 某些形状是否有多个独立的部分,例如由多个岛屿组成的夏威夷州。通常,每个形状只有一个部分。在这些情况下,零件 ID 列可以设置为全部 1。X 和Y列包含每个形状中每个顶点的坐标。值得强调的一个微妙细节是,'- XY ' 文件中每个形状顶点的出现顺序很重要,因为如果配置错误,它可能会导致形状表示不准确。使用 '-XY' 映射文件,JMP 会从一个顶点跟踪到另一个顶点的形状(从文件中的第一行开始到最后一行)。新的跟踪从每个新的形状 ID 或零件 ID 开始。图 2 显示了顶点的顺序如何对描绘简单矩形形状产生影响的示例。
- 如图。2. 正确和不正确的形状顶点排序
如果原始坐标数据在多种类型的自定义地图中一致,则使用 JMP 脚本语言 (JSL) 脚本创建“-XY”和“-Name”形状定义文件会很有用。
有关自定义地图生成的更多信息,请查看以下资源:帮助>帮助内容>基本图形>创建地图>图形生成器>自定义地图文件。
最后要注意的一点是,“-Name”和“-XY”形状定义文件必须保存在同一目录中,并使用相同的前缀,以便映射正确运行。
IV. 自定义地图的使用
配置定义文件后,可以将数据导入 JMP。在 Graph Builder 中可视化数据之前,需要进行最后的准备步骤,将数据与自定义地图定义文件链接起来。数据中必须有一列的值与“-Name”文件中定义的形状名称定义列中的值完全匹配,否则 JMP 将无法链接自定义地图。
要将数据表链接到自定义地图,请打开数据表中存储形状名称的列的列属性。在“地图角色”属性中,确保选择了“形状名称使用”选项,并选择“-Name”文件作为“地图名称数据表”,并选择适当的形状定义列(见图 3)。请注意,在 JMP11 中,这些选项没有用于搜索“-Name”文件的交互式文件对话框,因此需要将其复制并粘贴或输入到文本框中(包括“.jmp”扩展名)。
- 如图。3. 形状名称 使用地图角色文件选择
JMP 还支持将“-Name”和“-XY”文件放置在软件自动检查的特定目录中。但是,在我们的应用程序中,我们在不同的 SoC 产品中使用相同的形状名称,但映射不同。因此,为了避免名称冲突,我们利用文件选择方法。请参阅 JMP 的帮助,根据您计算机的操作系统查找自动目录位置。
完成所有准备工作后,打开 Graph Builder,将数据表中链接的形状列拖放到窗口左下角的“地图形状”下拉区中(见图 4)。然后,JMP 会使用数据表中找到的所有形状实例填充显示内容,这些实例也可以在形状定义文件中找到。
- 如图。4. 图形生成器地图形状放置区位置
在某些情况下,数据表中找到的某些形状可能无法被形状定义文件识别,这可能是由于名称不相同、命名约定不同或根本没有列出。这些无法识别的形状显示在“图形生成器”窗口底部,显示为“未找到地图形状”(见图 5)。要合并这些缺失的形状,需要修改数据以匹配形状定义文件或更新形状定义文件本身。
- 如图。5. 当数据中的形状无法识别时图形生成器的显示
此时,可以将数据列拖放到颜色放置区,该区域会根据列数据和建模类型提供适当的颜色覆盖。
下一节将介绍几个详细的示例,概述不同的用例场景和成功案例。
五、实施例
- A. 产量数据
与介绍相呼应,在 SoC 设计中重用块的好处是可以比较各个块的性能和产量。在块级别上部署诸如扫描(触发器和通用逻辑)和内置自检(BIST、内存测试和修复)之类的测试程序非常常见。在 SoC 的情况下,这些块被称为图块。图 6 通过汇总几千个单元的结果来描述每个图块的特定测试的产量。红色图块(并用白色编号)是低产量的异常图块,值得更多关注。下一小节将展示,还有另一种力量在推动这些异常值,而这种力量在这种视图中并不明显。
- 如图。6. 带有异常值的 SoC Tile 产量热图
- B. 超热图
继续之前的产量示例,有一组明显的异常图块。但是,尚不清楚它们可能出了什么问题。图 7 描绘了超热图,该图块嵌套了晶圆上每个芯片位置的每个 SoC 图块视图,利用了组 X和组 Y放置区。稀疏填充的芯片位置的图块故障率较低。图 6 中的编号异常值已添加到图 7 中,表示导致这些图块产量较低的芯片位置。对于图块1、2和3 ,主要原因是它们是与某些芯片 X、Y 位置的晶圆边缘相邻的角图块。当这些图块紧挨着晶圆边缘时,它们会受到晶圆制造过程中的边缘影响,而晶圆的其他区域则不会发生这种影响。为了更清楚地查看包含许多对象的超热图,过滤掉颜色变量的基线或预期级别可能会很有用。图 7 已通过这种方式进行过滤。第4 块成品率下降主要集中在晶圆中心,那里也存在制造工艺导致的已知变异效应。制造工艺会导致晶圆上出现各种不均匀性,这些不均匀性通常在中心或边缘区域更为严重。这种超热图可以快速了解问题区域的位置,而无需花费资源来确定块本身是否需要设计优化。
- 如图。7. 通过筛选基准良率突出显示异常芯片位置的晶圆级超热图
- C. 参数数据
图 8 是如何在晶圆级超热图上可视化参数数据的示例。所示的每个图块都包含一个模拟测量结构,其值用作与设备性能相关的指标。数据表包含数百个晶圆,此特定视图显示了晶圆上每个芯片位置的每个图块测量值的平均值。通过叠加层描绘的同心圆可以清楚地看到制造过程的熟悉残余。
- 如图。8. 模拟特性结构的晶圆级超热图
六、成功案例
高产量产品显示出明显的异常瓷砖产量低于其他瓷砖(见图 9)。在这种情况下,红色表示产量较低的瓷砖,蓝色表示产量较高的瓷砖。
- 图 9. 带有异常 Tile 观察值的初始 SoC 级良率
利用热图进行进一步分析后发现,这是晶圆左下边缘异常块的系统性晶圆边缘特征,该块与晶圆边缘相邻(见图 10)。该信号引起了代工厂的注意,促使他们实施了工艺改进 — 在晶圆最边缘处优化光刻调整。由于这一工艺改进,晶圆整体产量显著提高。
- 图 10. 晶圆级左下角晶圆边缘异常块的观察
在超热图视图出现之前,对这一良率信号的初步调查主要集中在图块本身,即本例中方向错误。一旦晶圆边缘良率相关性明确,正确的负责人便能够立即开始持续改进工作。
VII. 提示和技巧
一个。显示缺失的形状
在 Graph Builder 平台中的列选择框下方,有一个复选框,标题为“显示缺失形状” 。选择此选项将在显示中填充定义文件中存在但当前数据表中未找到的形状轮廓(参见图 11)。这对于发现缺失数据或获取地图的整体情况非常有用。
- 图 11. 图形生成器显示缺失形状复选框
B.启用数据标签叠加
启用将鼠标悬停在形状上或在每个形状上方显示标签的功能对于快速识别模式非常有用。右键单击所选列并选择标签/取消标签,首次将鼠标悬停在图形生成器中的形状上时会显示列数据。要静态显示形状上的标签,请选择感兴趣的数据表中的行,然后选择标签/取消标签。
C.使用过滤器和列切换器实现自动化
在分析体数据时,寻找细微模式可能是一项繁重的任务,尽量减少鼠标点击次数总是有帮助的。利用过滤器自动化和列切换器功能(图形生成器红色箭头>脚本)是一种扫描具有不同条件的大量空间数据的有效方法。
D.使用 JMP12 进行框架分页
图形生成器平台在最近的 JMP12 更新中有一些明显的功能升级,即能够使用页面放置区将其拆分为多个框架。将数据列放入此放置区会根据该列中找到的唯一值的数量生成图形生成器框架的多个实例。报告可以保存为要共享的交互式 HTML 文档。
和。使用组和包裹拖放区进行帧分割
如晶圆超热图示例所示,可以使用第十组和Y 组拖放区内的嵌套列来分割帧。晶圆超热图使用芯片 X 和 Y 坐标进行分割,但可以使用任何列。其他常用示例是电压测试点、测试温度和频率测试点。Wrap拖放区具有类似的功能,但空间利用率更高,但不提供列嵌套。右键单击组变量允许用户选择视图中的级别数,以有效放大感兴趣的区域(见图 12)。
- 图 12. 在视图选项中选择级别团体变量区
F.修改图形生成器颜色设置
在分析自定义地图叠加数据时,通常只需对颜色设置进行简单修改,即可显著强调异常模式的外观。作者建议使用深色背景(图形 > 背景颜色),单向数据(产量、速度等)使用连续颜色主题,双面数据使用发散颜色主题。右键单击图例,即可在渐变设置中访问颜色主题。默认情况下,图形生成器会在每个形状周围添加一个像素宽的灰色边框,这可能会遮住一些较小的形状。要删除此边框,请在框架中单击鼠标右键,然后选择自定义 > 地图形状,然后将线宽更改为零。
VIII. 已知问题及注意事项
- A. 重叠形状可能无法显示所需颜色
当自定义地图中定义的形状具有重叠区域时,就会出现这种情况。在图 13 中, 非盟和根尖块共享一个公共区域,但只使用一种颜色。在创建包含任何重叠形状的自定义地图时,需要注意这一点。
- 图 13. 两个重叠形状的颜色叠加不正确
- B. 拖动标签以创建指针显示未标记的行
图 14 显示了拖动所需标签(黑色虚线边框)导致未标记行出现多余的标签(红色虚线边框)。此问题已在 JMP 12 中修复。
- 图 14.拖动标签(黑色)导致出现未标记的行(红色)。
- C.更改视图中的级别会重置框架自定义
图 15 显示了首先设置默认视图的框架自定义、使用其中一个组变量选择视图中的四个级别、最后在移回原始视图时,最初应用的自定义将丢失的进程。
- 图 15.更改视图功能中的级别会导致框架自定义丢失
- D.Map角色列属性及汇总表
如果列应用了 Map Role 属性,并且数据表已汇总(包含该列),则 Graph Builder 无法识别该列属性。它只是表示未找到形状文件,即使已在 Map Role 属性中定义它。解决方法是删除 Map Role 属性并再次添加它。或者,如果文件已保存、关闭并重新打开,则 Map Role 属性将按预期运行。
- E. 无法更新映射角色属性
使用 Map Role 列属性时,发现一旦设置了该属性并应用了形状定义文件,更改以选择其他文件将不会更新到新文件的设置。此外,形状定义列无法更新。解决方法是删除 Map Role 属性,然后使用新文件和列设置再次添加它。
IX. 提升机会
Graph Builder 平台中的自定义地图是一款出色的工具,可用于分析与空间数据相关的模式,并具有出色的交互界面。如本文所述,此功能已成功实现根本原因分析,从而产生实际的财务影响。随着此功能的广泛使用,其收益显而易见,通过一些优化来扩展其实用性只会带来更好的结果。
以下是作者根据自己的经验总结的一些增强机会。
一个。视图中更多级别的选项
图形生成器提供了使用X轴和Y轴上的拖放区域来分割视图的功能。右键单击菜单提供了一些用于设置视图中级别数量的选项,但它相当严格(见图 16)。通常需要视图中超过四个级别(但少于所有级别),但目前该选项不存在。可以根据组列中的值数量将其更改为动态。
- 图 16. 视图选项中的级别限制为 1-4 或全部
B.支持多列分页
这是一个非常有用的功能,只需滚动鼠标即可快速浏览多个视图。如果此功能允许多个列拆分框架,则可以进一步优化,类似于其他平台中的“按”功能。目前的解决方法是创建一个新列并将多个列的数据连接在一起以获得不同的组合,但多列分页将是一个更简洁的解决方案。
十、致谢
作者要感谢 Paul Shook 帮助 AMD 的平面图软件添加一种特殊的输出格式,这对转换为 JMP 的自定义地图格式有很大帮助。此外,我们还要感谢 AMD 的分析师同事帮助评估在 JMP 中使用自定义地图进行 SoC 产量可视化。
AMD、AMD 箭头标识及其组合是 Advanced Micro Devices, Inc. 的商标。本出版物中使用的其他产品名称仅用于识别目的,可能是其各自公司的商标。