复用不仅是soc设计思想的核心,也是解决soc测试的基础。本文在分析soc的基本概念和特点的基础上,从复用的角度对现有的soc测试方案进行分析和综述,并探讨了亟待解决的问题。
关键词:芯片上系统;测试;复用
1 引言
90年代国际上出现的soc概念,以系统为中心、基于ip模块多层次、高度复用的设计思想受到普遍重视和广泛应用 [1,2]。soc的高集成度和复杂度使得soc测试面临挑战,传统的基于整个电路的测试方法不再适用。对于ip模块和soc而言,在电路设计向可复用这一目标发展的同时,测试中的复用也变得愈加重要,成为解决soc测试的关键 [3],也成为目前该领域研究的焦点。本文在分析soc与sob(system on board)本质区别的基础上,阐明复用对于soc测试的重要性,对现有主要几类基于复用思想的soc测试进行分析。
2 soc的测试
soc使集成电路设计者分为两个部分:ip模块的设计者和soc集成者(ip模块的使用者)[2,4,5] 。ip模块是设计者提供的具有特定功能和相关参数描述的模块;而soc集成者利用它们和用户自定义逻辑(udl)集成在一起,实现既定的功能。从表面上看,这种设计类似于传统的基于芯片的sob 设计,但二者存在本质区别。
sob中的ic是经制造生产和测试后的实体,因此对sob集成者而言,测试是针对系统中ic之间连接的测试。在sob的设计集成过程中,ic的制造商和系统的集成者有相对独立的测试开发和实施阶段,如图1所示。从描述的层次而言,soc中的ip模块可以分为软核、固核以及硬核。每一个核又可以是若干更小的模块共同构成,但无论什么模块,相对于sob中的芯片而言是虚拟器件,在进行soc集成设计时都未经物理实现。ip模块提供者对所设计的虚拟模块进行测试开发,却不能对ip模块进行实际的物理测试。因此ip模块设计者和soc集成者的测试开发和实施将不再是彼此独立和分割的两个阶段。soc集成者要完成包括ip模块在内的整个芯片的测试方案[2]。因此,soc测试较传统的sob测试而言,更加复杂,也更具挑战性。
3 复用技术与soc测试
随着技术的发展和市场的需要,ip模块和soc 的设计正逐渐以分布和并行的方式进行。来源于不同的各种ip模块的多层次复用是soc的基础。ip 模块是对功能和实现方式的描述,是未经物理实现的虚拟器件,不同类型的ip模块有不同的模型和测试方法,ip模块的提供者虽然无法对模块进行物理测试,但必须向soc集成者提供模块的测试信息,其中包括模块的测试方法、可测性结构、测试产生方法及测试集等 [2,4,6]。
如果不以这些模块的测试信息为基础,soc集成者就无法对高达千万门级的芯片进行测试,而复用则是soc测试的关键。因此,国际上ieee p1500工作组和vsia(virtual socket interface alliance)联盟正在制定相关的国际标准[6,7] ,研究焦点集中于规范ip模块设计者和soc集成者之间的软硬件接口,如模块测试语言(ctl,)和可扩展结构,以实现soc测试中ip模块测试信息的即插即用。但标准并不进行复用方法和测试集成及优化的研究,有许多问题尚未解决。因此采用何种方式复用,如何解决复用中遇到的问题成为目前 soc测试研究的焦点之一。从复用的角度,现有的soc测试解决方案大致分为两类:直接复用和间接复用。
3.1 直接复用
该方法的基本思路是自顶向下,直接在芯片级使用已有的模块测试信息,通过实现对每个ip模块的测试访问从而解决整个芯片的测试[8]。核心是通过构建测试通路实现对各ip模块的测试访问,前提是各ip模块都具有良好的可测性和完整的测试信息。这类方法的有效性关键在于两个方面,即各模块原有测试信息的质量和在soc中各模块测试访问的实现。具体的方案如下。
① 测试总线。arm公司发布的32位amba(advanced microcontroller bus architecture)总线结构,通过解决每个ip模块的测试访问问题来最终完成整个soc的测试,