页面加载中,请稍候
来源:你是我的小星星发布时间:2020-06-2828浏览
询问 AI
通用图形处理器 GPGPU 在自动测试生成中的应用
黄宇翔
摘要:探索加速自动测试生产的效率,对降低集成电路测试成本、缩短设计周期有着重要意义。基于通用图形处理器 GPGPU 的特性,以及自动测试的运行过程,探索 GPGPU 对自动测试生成的加速效果。
关键词:集成电路制造,通用图形处理器,自动测试,生成,加速。
中图分类号:TN407,TP391.41 文章编号:1674-2583(2020)05-0034-02
DOI:10.19339/j.issn.1674-2583.2020.05.011
中文引用格式:黄宇翔. 通用图形处理器GPGPU在自动测试生成中的应用`J`.集成电路应用, 2020, 37(05): 34-35.
Application of GPGPU in Automatic Test Generation
HUANG Yuxiang
Abstract — This paper explores the efficiency of accelerating automatic test production, which is of great significance to reduce the cost of IC test and shorten the design cycle. Based on the characteristics of GPGPU and the running process of automatic test, it explores the acceleration effect of GPGPU on automatic test generation.
Index Terms — IC manufacturing, GPU, automatic test, generation, acceleration.
0 引言
集成电路发展至今的商业模式分两种,一种是垂直整合模式,就是集设计生产测试一体化,如Intel和三星等;另一种是垂直分工模式,设计、制造、封装和测试分立,设计(Fabless)公司如高通、ARM,制造(Foundry)公司如台积电、中芯国际,而封装和测试又如日月光、京元电子等公司。长期以来,测试被认为是整个商用集成电路制造过程中最关键的环节之一,随着集成电路制造技术的发展,测试过程变得愈发重要,其中有一个重要原因是由于半导体技术的发展和可靠性要求的越来越高,随着电路规模的增长,由于大量的测试数据和较长的测试应用程序耗时,另外物理缺陷不会随着晶体管变小而变少,导致要保证高水平的测试覆盖率变得越来越昂贵`1`。
1 自动测试生成运行原理
自动测试生成技术不仅仅是随机生成测试向量,而是包含故障仿真在内,一边仿真一边学习更新的过程。图 1 显示了自动测试向量生成的主要流程,首先我们根据具体指定的电路创建故障列表,然后从故障列表中按顺序选择故障,根据相关算法针对指定故障初步生成测试向量,接着利用生产的测试向量对电路进行故障仿真,根据仿真结果分析选定的故障是否能被检测到,同时评估还有哪些故障能够被一并检测到,我们将这些能够被一并检测到的故障从故障列表中剔除掉,更新故障列表,最后继续从故障列表中选取下一个故障循环操作,直至所有故障都被检测到,当故障列表的故障被一一检测完毕时,这时所有的测试向量的集合就是我们需要的最佳测试向量。
2 故障仿真
故障仿真是自动测试生成的主要环节,一般地,对于超大规模集成电路测试来说,我们在进行故障仿真时根据选定的测试向量给电路以输入激励,然后比较电路输出端的结果与无故障电路的理论结果是否相同来检测电路是否存在故障。所以我们假设用函数式 h(x) 来表示电路在激励 x 下的输出,用 hu(x) 来表示在故障 u 下的电路输出。那么,我们能够在向量 t 的激励下检测到故障 u 则必须满足布尔关系如式(1)
h(t) ≠ hu(t) => h(t)⊕hu(t) =1 (1)
对于一个故障集 F 里的每一个故障都至少有一个能检测到它的测试向量,那么就说这个测试向量时完整的。如图 2 所示我们通过 3 个与门和一个或门的组合电路来说明故障仿真的过程,此时选择的输入向量 abc 为 110,根据逻辑关系计算很容易得出主输出 h 的值为 1,假设我们引入位于节点 aL 处的故障(接地引起),这样就导致节点 aL 的值恒为 0,同样在输入向量 abc 为 110 的情况下,此时主输出 h 的值为 0,满足 h(110)⊕haL(110) = 1,证明输入向量 110 能够检测到故障 aL。
因此在实际故障仿真之前我们需要先对无故障电路进行一次仿真,保留电路理想状态下的理论值,这个过程又叫无故障仿真。在无故障仿真之后根据引入的具体故障再对电路仿真一次,然后比较主输出的值,如果输出值不同,说明故障能够被检测到。
3 通用图形处理器 GPGPU
通用图形处理器(General-purpose Computing on Graphics Processing Units,GPGPU)即图形处理单元上的通用计算,它是一种编程模型的概念,可以使得在显卡上执行传统上在中央处理器 CPU 完成的计算。随着英伟达(NVIDIA)公司在 2006 年引入CUDA、苹果公司在 2009 年提出 OpenCL 等应用程序接口,GPGPU 得以加速普及。如图 3 所示是 CPU 与 GPU 在硬件组成上的模型比较,绿色的部分是算术逻辑单元,很容易看出 GPU 相比较 CPU 计算单元的复杂度较低但数量却远远超过 CPU。所以 GPGPU 因为其硬件上的特性,具备强大的浮点运算和并行计算的能力。如今 GPGPU 被广泛应用在各种场景如数据挖掘、人工智能以及许多科学计算。GPGPU 代表图形处理单元上的通用计算,这个名词是由 GPGPU.org 的创始人 Mark Harris 在 2002 年提出的,当时他发现了将 GPU 用于非图形计算的早期趋势`2`。在早期将 GPU 用作通用计算资源要求程序员将目标问题转换为图形基元,这就需要程序员对 GPU 的底层结构和相关图形概念十分了解,导致 GPGPU 并不实用。随着 CUDA 和 OpenCL 等平台软件的出现,情况发生了巨大变化。它们允许程序员忽略底层图形概念,而转向更常见的高性能计算概念。
值得注意的是 CUDA 仅仅支持对英伟达 GPU 进行开发,并不支持其他品牌,或者其他体系的处理器的开发。但是 OpenCL 支持的硬件范围更广,不仅支持跨品牌还能同时支持 GPU、CPU 和 FPGA 等。
4 探索 GPGPU 在自动测试生成的应用
自动测试生成的核心是故障仿真,在自动测试生成的过程中必须进行大量的无故障仿真和故障仿真,所以研究提高自动测试生成的效率重点在于实现对无故障仿真和故障仿真的加速。随着电路规模的爆发式发展,在自动测试生成中使用故障仿真来验证电路的正确性所需的测试量个数也随之迅猛增长。对于自动测试生成中的无故障仿真和故障仿真来说,本质上属于对每个逻辑门的逻辑运算。
传统的无故障仿真和故障仿真都是顺序式的,也就是一个向量接着一个向量地仿真,计算过程都是固定的只是计算数据发生了改变,具有计算单一简单且重复的特性。而这个特性刚好与 GPU 上的通用计算特点不谋而合,因此利用 GPU 并行的特性实现无故障仿真和故障仿真的加速以此来提高自动测试生成的效率是完全可行的。
为了充分利用 GPGPU 的并行特性,我们首先可以考虑在第一层级将测试生成、无故障仿真、故障仿真和故障检测有效并行化,分成多块式并行处理。然后次一级,在无故障仿真和故障仿真层面,原本我们需要一个向量接着一个向量的重复运算,但是此时利用 GPU 允许我们多组不同的向量同步进行运算,将会极大地提高仿真速度。
但是有研究`3`指出虽然理论上利用 GPU 的并行性对自动测试生成过程进行加速具有可行性,但是可能受到 GPU 内存访问延迟的限制,以及主机与 GPU 之间的数据传输问题也可能成为加速测试的阻碍;同时考虑到必须最大化 GPU 上计算资源的利用率,需要创新的算法应用在自动测试生成的各个环节。所以,总的来说,尽管理论上 GPGPU 对自动测试生成有天然良好的加速效果,但仍存在不少技术问题亟待解决。
5 结语
自动测试生产技术则是为集成电路测试提供测试向量,随着电路规模爆发式增长,在大规模集成电路测试中,运行自动测试需要长达几周甚至几个月的时间,所以研究如何提高自动测试向量生成的测试效率,对降低电路测试成本缩短设计周期有着重要意义。
参考文献
`1` 韦紫菱,常郝.超大规模集成电路测试技术综述`J`.电子世界,2019(15):122-123+126.
`2` 谢建春.GPU通用计算软硬件处理架构研究`J`.航空计算技术,2013,43(02):56-59.
`3` Liyang Lai,Hans Tsai,Huawei Li.GPGPU-based ATPG System:Myth or Reality`J`. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, 2018.
===========================
新闻来源:集成电路应用杂志,文中所述为作者独立观点,不代表icspec立场。更多精彩资讯请下载icspec App。如对本稿件有异议,请联系微信客服specltkj。
暂无评论哦,快来评论一下吧!

2026-07-08

2026-07-10