用于ip模块的电路测试的基于功能结构的测试包装器的制造方法

文档序号:6484623阅读:265来源:国知局
用于 ip 模块的电路测试的基于功能结构的测试包装器的制造方法
【专利摘要】测试包装器和相关联的测试访问机制(TAM)体系结构用于促进对集成在片上系统(SoC)的IP模块的测试。TAM体系结构包括集成在靠近IP模块的SoC上的测试控制器和一个或多个测试包装器。与来自外部测试器的输入相对应的测试数据和命令由测试控制器进行封装,并且经由互连结构被发送到一个或多个测试包装器。这些测试包装器与一个或多个IP测试端口进行接口以向IP模块提供测试数据、控制和/或激励信号来促进对这些IP模块的电路级测试。经由该结构将这些电路级测试的测试结果返回到测试控制器。测试包装器可以被配置为直通互连信号,从而使得经由测试封装和经由结构在该测试控制器和IP模块之间传送的测试结果能够促进对IP模块的功能测试。测试包装器还可以被配置为对包括测试分区的多个IP模块进行测试。
【专利说明】用于IP模块的电路测试的基于功能结构的测试包装器
【技术领域】
[0001]概括地说,本发明的领域涉及计算机系统,并且,更具体地说,涉及(但非排他性地)对片上系统(SoC)设计进行测试。
【背景技术】
[0002]计算机体系结构正从接口印刷电路板上的分立部件或者通过使用其它封装配置向将多个部件集成到单个集成芯片上(其通常被称为片上系统
[0003](SoC)体系结构)发展。SoC提供了大量优点,包括:更密集的封装、功能部件之间更高速的通信、以及更低温度操作。SoC设计还提供了标准化、可扩展性、模块化以及可重用性。
[0004]尽管Soc体系结构是未来的潮流,但当与使用分立部件相比时,其在设计的验证和集成方面提出了一些挑战。例如,许多年来,个人计算机使用INTEL的无处不在的“北”桥和“南”桥体系结构,其中,中央处理单元经由第一组总线接合到存储器控制器中心(MCH)芯片,并且存储器控制器中心反过来经由另一组总线接合到输入/输出控制器中心(ICH)芯片。MCH和ICH中的每一个经由其它总线和接口还提供到各种系统部件和外围设备的接口。这些总线和接口中的每一个遵守已确立的标准,从而使得该系统体系结构能够支持模块化设计。为了确保适当的设计,可以使用测试接口来对单个部件或成组的部件进行测试,这些测试接口是可通过设备管脚访问的。
[0005]模块化也是SoC体系结构的关键方面。通常,系统设计者将集成各种功能模块,这些功能模块包括在工业中通常被称为知识产权(IP)内核、IP内核模块、或简称为IP的功能模块。为了本文中的目的,这些功能模块被称为IP模块或简称为“IP” ;可以理解的是,如同SoC开发和制造产业中的技术人员会理解的,术语IP模块或IP也涵盖IP内核以及通常被称为IP的任何其它部件或模块。这些IP模块通常服务一种或多种专用功能,并且通常包括从各个供应商获得许可的或者内部开发的现有电路设计模块。为了集成这些IP模块,将各种接口设计到S0C中。这可以是非常具有挑战性的,因为定义明确的北桥-南桥体系结构及其标准化接口对于SoC中的集成来说是不实用的或不可取的。
[0006]为了解决该问题,开发了新的更高速以及更模块化的接口。例如,INTEL公司最近开发了新的互连结构体系结构,其包括INTEL片上可扩展结构(10SF)。此外,还开发了其它基于结构的接口,其包括开放内核协议(OCP)以及ARM的AMBA (高级微控制器总线体系结构)接口。诸如IOSF互连结构的片上互连使用分组化分层通信协议并且支持IP模块之间的点对点互连,从而促进异构的IP与标准的IOSF接口之间容易的集成。
[0007]为了验证SoC体系结构的设计完整性,需要对IP模块之间的通信进行测试以及对IP功能和电路进行测试。在常规的方法下,对给定的SoC体系结构进行测试是使用测试访问机制(TAM)来实现的,TAM是使用自组(ad-hoc)技术来设计的。这样的TAM需要专门的验证和设计工作,这需要针对每一个焊铅或衍生SoC重复该验证和设计工作。所使用的自组技术还导致额外的面积和SoC级处的走线工作,这会致使在当今的密集SoC中增加拥塞。这会严重地破坏SoC的上市时间和低成本目标。从而,需要以更加灵活和可预测的方式来促进对SoC体系结构的测试。
【专利附图】

【附图说明】
[0008]当结合附图进行时,由于通过参照下面的【具体实施方式】,本发明的前述方面和许多伴随的优点变得更好理解,因此本发明的前述方面和许多伴随的优点将变得更加容易明白,其中,除非另有规定,否则贯穿各个观点,相同的附图标记指代相同的部分:
[0009]图1是示出了根据本发明的一个实施例的示例性测试访问机制(TAM)体系结构的框图;
[0010]图1A是实现IOSF结构的图1的TAM体系结构的实施例的框图;
[0011]图2是示出了根据一个实施例的测试控制器的微体系结构的框图;
[0012]图3是示出了根据一个实施例的测试包装器的微体系结构的框图;
[0013]图4是示出了根据一个实施例的测试控制器中的跨时钟FIFO的使用的框图;
[0014]图5是示出了根据一个实施例的测试包装器中的跨时钟FIFO的使用的框图;
[0015]图6是示出了示例性IP模块及相应的测试逻辑的细节的框图;
[0016]图7是示出了一种SoC体系结构的框图,在该SoC体系结构中,实现了测试控制器和多个测试包装器以促进对相应的IP模块进行测试;
[0017]图8是示出了被配置为对包括测试分区的多个IP模块进行测试的测试包装器的实施例的框图。
【具体实施方式】
[0018]本文中描述了用于促进对SoC进行测试的方法和装置的实施例。在下面的描述中,阐述了大量具体细节以提供对本发明的实施例的透彻理解。然而,相关领域的技术人员将会认识到,可以在没有这些具体细节的情况下实施本发明,或者使用其它方法、部件、材料等来实施本发明。在其它情况下,没有示出或详细描述公知的架构、材料或操作以避免模糊本发明的方面。
[0019]贯穿本说明所提及的“一个实施例”或“实施例”意指结合该实施例描述的特定的特征、架构或特性包括在本发明的至少一个实施例中。因此,在贯穿本说明的各处中出现的短语“在一个实施例中”或“在实施例中”不一定均指的是相同的实施例。此外,在一个或多个实施例中,可以以任何适当的方式来对特定的特征、架构或特性进行组合。
[0020]根据本文中公开的实施例的方面,提供了被称为测试访问机制或TAM的、用于测试访问的标准、模块化、可扩展以及可重用的设施。TAM是使用现有的功能结构来实现的,并且提供了用于在部件调试及制造测试期间传递测试激励及测试响应的采样的标准机制。TAM的功能结构的重用降低了实现成本,借此TAM继承了标准化的功能结构相对于常规方法和体系结构(其需要使用与功能结构分离的且除了功能结构之外的专门的测试设施)的优点(诸如模块化、可重用性、可扩展性以及低成本)。
[0021]在下述实施例中的一些实施例中,公开了运用使用运用Intel片上可扩展结构(IOSF)的SoC的TAM的示例性的实现方案和概念。将会理解的是,使用IOSF结构的实现仅是示例性的,并且将运用类似的概念来实现使用其它类型的互连结构的TAM,这些其它类型包括但不限于开放内核协议(OCP)以及INTEL Quickpath?互连。
[0022]根据一个实施例,TAM是使用已经在SoC上实现的、用于向测试器传递测试数据和激励以及传递来自测试器的测试数据和激励的结构设施、协议和接口来实现的,其也被称为自动测试设备或ATE。由于TAM使用现有的功能结构,因此其导致了比常规的技术更少的门数和更少的全局布线(这在密集SoC中尤其重要)。
[0023]TAM通过两个主要的部件来实现:测试控制器和测试包装器。作为概述,测试控制器作为结构的代理并且用作ATE和SoC之间的门户,因此使得SoC外部的ATE能够通过将测试数据转换成SoC中的每种类型结构的适用结构协议所运用的分组来向目标IP传递测试数据。(如果必要的话)由测试包装器在目的地IP模块处将这些解分组(de-packetize)成测试激励。然后,测试包装器从目标IP收集对测试激励的响应,并且将其作为一个或多个分组传送回测试控制器,然后,测试控制器将其转换成适合于ATE进行采样的形式。
[0024]图1中示出了说明TAM的一个实施例的模块级细节的示例性体系结构。该体系结构包括在SoC102外部的ATE100,SoC102包括测试接口 103、测试控制器104、互连结构106、测试包装器108、IP模块108、以及测试配置模块112。测试控制器104和测试包装器108中的每一个通信地耦合到结构106。测试控制器104还经由测试接口 103通信地耦合到ATE100,测试接口 103包括SoC封装上的多个管脚。此外,测试包装器108还通信地耦合到IP模块110。尽管为了清楚起见没有在图1中示出,但在(诸如图7中所示的以及下面所讨论的)典型的SoC体系结构中,各种其它的测试包装器、IP模块和/或桥也将通信地耦合到结构106。
[0025]测试控制器是主要的接口,通过测试控制器测试器将测试激励应用到被测IP(IUT),并且对来自IUT的响应进行采样。测试控制器通过提供与对不使用基于结构的接口的设备进行测试所需要的接口非常类似的接口,来在ATE和来自测试器的结构之间提供抽象接口。如图1中所示,测试控制器104包括三个主要的部件:测试数据格式器114、传送事务队列(TXQ) 116、接收事务队列(RXQ) 118、以及结构接口 120。
[0026]测试包装器作为结构和IP模块的测试端口之间的接口:设想包装器的一种方式是作为抽象层,其从结构抽象出用于测试IP模块的低层信令要求,并且反过来从IP模块抽象出与结构相关的协议。如图1中所示,来自测试包装器108的测试信号的一部分与IP模块的结构接口部件相接合,而这些测试信号的另一部分经由耦合在IP测试端口和测试包装器110上的测试接口 124之间的连接122与IP测试端口 130相连接。IP测试端口可以用于执行各种部件和电路级的测试,包括通常被执行以验证IP内核等的完整性的扫描测试。测试包装器108还被配置为支持结构信号直接直通到达IP模块110,以支持通信和对IP模块与结构接口的功能测试,以及支持在正常SoC使用期间的结构通信操作。
[0027]IP模块110表示可以使用根据本文中公开的原理和概念的TAM进行测试的各种类型的IP模块和IP内核。如图所示,IP模块110包括IP内核126、结构接口模块128以及IP测试端口 130。下面参照图6对与示例性IP模块相对应的进一步的细节进行了讨论。
[0028]图2中示出了测试控制器104A的微体系结构的一个实施例的细节。说明性的部件包括命令解码器200、分别耦合到传送队列(TXQ)接口 206和接收队列(RXQ)接口 208的一对FIFO (先进先出)缓冲区202和204。测试控制器104还包括目的地地址寄存器210。此夕卜,为了清楚起见,在图2中将图1的测试控制器104的传送和接收队列(TXQl 16和RXQl 18)以及结构接口 120总体描绘为结构接口模块212,以便不模糊测试控制器104的微体系结构的其它细节。
[0029]测试数据格式器114从测试器接收包括测试数据和测试器命令/控制信号的测试器输入,并且对相应的测试数据和测试命令/指令进行封装以用于传输到IUT:封装操作涉及包括合适的地址信息,以便该封装被转发到预期的目的地IP,并且附加额外的命令字段,以便目标IP知道对测试数据进行什么处理。例如,在扫描模式中,分组包括IP地址,以及嵌入数据中的命令,该数据指导针对IP的测试包装器执行扫描加载、卸载、同时加载/卸载或者使捕获时钟产生脉冲。
[0030]将由测试数据格式器封装的测试器输入数据分解成传送事务队列以用于传送到结构上。最大封装尺寸取决于传送/接收事务队列的大小,并且对最大封装尺寸进行优化以确保分组/解分组开销的最小化。为了通过使簿记的量最小来简化包装器的设计,在一个实施例中,传送事务队列的每个条目是自包含的实体,其对命令以及执行该命令所针对的数据进行编码。例如,包含扫描数据的条目将具有指定在扫描数据之前的扫描操作类型(加载、卸载或二者)的字段。此外,只要目的地扫描包装器在接收扫描数据,那么其就继续执行扫描移位操作,从而导致简单、低成本的包装器设计。对于确保已经加载最大扫描长度的扫描链来说,没有簿记是必要的(并且可以独立于该最大扫描链长度来设计包装器)。一旦已经组装好测试数据分组,就将其转发到结构接口以作为通告的事务在结构上传送到目的地IUT。在替换方案下,可以使用多个分组来发送给定的测试封装;然而,由于会需要使用第一分组中的信息或诸如报头信息的其它信息来通知接收机在特定的测试封装中有多少分组,因此该方案需要更多的开销。
[0031]在一个实施例中,测试控制器104A以下列方式进行操作。从ATE100接收测试数据以及测试命令。在所示的实施例中,通过N比特接口从ATE100接收测试数据,并且通过4比特接口来接收作为4比特值的测试命令。然而,4比特值的使用是示例性的,因为也可以使用包括其它比特值的测试命令。总的来说,N比特和4比特接口中的每一个接口可以包括并行或串行接口,尽管为了简化ATE和测试控制器之间的通信(并且通过SoC102的代理测试接口 103),并行接口是优选的。此外,针对给定的测试封装可以使用测试数据的一个或多个N比特组。另外,可以将给定的测试命令编码成顺序接收的一个或多个4比特测试命令数据值。测试命令数据还可以包括控制数据。除了图2中所示的测试数据和测试命令数据之外,还有以相应的时钟频率操作的时钟(CLK)信号。如同下面进一步详细描述的,一些技术由测试控制器实现,从而使得ATE时钟信号所使用的时钟频率可以与互连结构所使用的时钟频率不同。
[0032]在命令解码器200处接收来自ATE100的测试命令数据,并且使用查找表、寄存器等对该测试命令数据进行解码。测试命令告诉测试控制器要执行什么操作以控制向结构传输数据或者从结构传输数据。目的地地址寄存器210对要向其发送测试分组的IP的目的地地址进行存储,并且使用来自测试器的单独命令来加载该目的地地址寄存器。在可应用的测试命令的控制之下,将输入测试数据(“测试数据入”)加载到FIF0202中,并且传送队列接口 204用于将格式化的测试命令分组“加载”到要被传送到结构106的传送队列中。在实践中,传送队列接口 204操纵指针以标识包含要被出站传送到结构的分组数据的存储器存储单元。[0033]结构接口模块212提供用于利用由相应的互连所使用的可应用数据、信号和协议来与结构106进行通信的接口。在一些实施例中,结构106包括使用具有一种或多种可配置宽度(诸如11、2^知、8^161等)的多个单向串行链路来实现的点对点互连。结构还可以具有类总线的体系结构。总的来说,任何类型的现有和未来的结构都可以用于实现本文中公开的一般性概念和原理。使用利用结构106所采用的多层协议栈实现的分组和相应的事务来传输数据。例如,在一个实施例中,结构协议对应于Intel片上可扩展结构(IOSF)协议。在另一个实施例中,结构106可以实现开放内核协议(0CP)。这些例子并不意在是限制性的,因为可以使用任何现有的或未来的互连结构架构和协议来实现SoC体系结构和本文中公开的相应原理和概念。此外,除了点对点互连之外,也可以在使用其它拓扑(诸如基于环、网、环面和总线的互连)的SoC上实现本文中公开的技术和原理。
[0034]在更加概括的层次上,结构接口模块212提供在由结构106使用的事务实现和通过结构106传送出站和接收入站的数据之间的抽象层。相应地,为了支持不同类型的互连结构,只需要改变结构接口模块212中的电路(以及潜在地TXQ和RXQ接口 206和208),而测试控制器104中的其余电路可以保持不变,并且以独立于特定的结构互连架构和协议的方式来实现测试控制器104中的其它电路。
[0035]在使用基于分组的结构协议的实施例中,将测试数据和相应的测试命令信息进行“分组”(即,格式化成一个或多个分组),并且通过结构将其传输到目标IP模块,通过分配给IP模块相应的地址来识别目标IP模块。同样地,通过由RXQ接口 206经由相应的控制信号促进的接收队列传输的协调,由目标IP模块和/或测试包装器(如同下面进一步详细描述的)生成的测试输出数据在结构接口模块212处被接收、“解分组”并且根据适用的测试命令被加载到FIF0204。然后,将FIF0204中缓冲的可适用的测试结果数据转移出测试控制器104,以作为“测试数据出”(即,测试响应数据)由ATE100接收。如图2中所示,从测试控制器200接收作为一个或多个M比 特数据模块的测试数据。如前述,可以经由并行或串行接口来实现M比特数据传输,并且给定的测试结果可以包括一个或多个M比特单元的数据。
[0036]作为概述,在典型的IP模块上执行的测试有两类:功能测试和架构测试。功能测试涉及对通信接口以及由IP模块执行的功能进行测试,并且由于通信地或可操作地耦合到SoC中的结构的每个IP模块能够经由该结构来发送和接收数据,因此通常可以通过使用经由该结构发送的测试数据和命令来促进功能测试。相应地,在一个实施例中,测试包装器提供直通机制,以使得包含与功能测试有关的测试数据和命令的测试分组能够经由结构从测试控制器传递,并且使得包含测试结果的分组和/或通过测试包装器返回的功能测试数据能够被返回到测试控制器。
[0037]除了功能测试之外,测试包装器还支持架构测试。在本质上,测试包装器结合测试控制器提供了一种将ATE有效地耦合到为其实现测试包装器的每个IP模块中的测试端口的机制。相应地,可能在常规的分立部件上执行的架构测试(诸如扫描测试)可以同样在IP模块上执行;然而,在本文中公开的体系结构下,不需要从ATE SoC接口或交换模块到每个IP模块的全局布线,也不需要全局布线来分隔JTAG管脚,从而节省了宝贵的模具布局空间。此外,由于测试包装器设计是模块化、可重用的,并且涉及极少的模具空间,因此很容易在对开发进度影响最低的情况下将其添加到新的和现有的设计中,从而缓解对上市时间的担忧。此外,该体系结构的模块化和可重用特性意味着不再需要单独定制的测试体系结构。[0038]如同上面所讨论的,测试包装器作为结构与IP的测试端口之间的接口。测试包装器经由结构取回源于测试控制器的测试分组,通过嵌入分组本身的命令来解释需要对分组中的数据进行怎样的处理,并且然后利用适当的信令协议将数据应用于IP的适当的测试端口。例如,在扫描模式(通过经由TAP设置适当的控制寄存器来断言)中,包装器使用测试控制器提供的扫描数据(从在IP接收队列(RXQ)中存放的分组中取回的)来执行扫描加载操作;将来自IP的扫描卸载数据(响应)存储到IP传送队列(TXQ);并且当由扫描分组中嵌入的命令指示时,应用适当的捕获时钟。可以通过设计执行以下功能的子模块来实现针对特定测试方法的测试包装器:
[0039]RXQ/TXQ读-写逻辑:该子模块与事务队列进行接合,以从接收队列(RXQ)取回数据,并且将数据置于传送队列(TXQ)中以经由结构最终转发回测试控制器。通过检测新数据已经到达RXQ来从RXQ取回数据。通过简单的状态信号或者通过将队列的头指针和尾指针(如果存在)进行比较,可以确定数据到达RXQ。通常通过从RXQ弹出条目来执行从RXQ的读操作。类似地,当可从IP获得响应数据时,并且确定TXQ有足够的空间来支持写操作(要么使用简单的状态信号,要么通过对TXQ的头指针和尾指针进行比较)时,对TXQ执行写操作。一旦TXQ条目的数量达到预定的限制,就将TXQ中的数据作为结构分组转发到测试控制器。
[0040]测试协议翻译器:该逻辑子模块(经由多个部件实现的)在一侧与上述RXQ/TXQ读-写逻辑接合,并且在另一侧与IP的测试管脚接合,以实现对IP进行测试所需要的测试协议。这种接合包括对嵌入的命令进行解码,以及将来自RXQ的原始数据转换成向IP应用测试激励所需要的波形,以及对来自IP的响应波形进行采样,并且将它们转换成适合于写入TXQ的数据。通过精心的设计,实现多种架构测试方法(测试方法诸如扫描)所需要的测试协议翻译器,可以共享相同的RXQ/TXQ读-写逻辑以降低测试包装器的硬件开销。
[0041]跨时钟域:必须处理多达3个不同的时钟域的主要子模块是RXQ/TXQ读-写逻辑:它必须与从RXQ/TXQ读出和向RXQ/TXQ写入所需的参考时钟以及测试协议翻译器所使用的参考时钟(其由测试协议的信令要求所确定(例如,扫描包装器会使用由最大频移所确定的参考时钟))竞争。为了确保跨越这些时钟边界的数据的有序地交换,使用握手逻辑来确保在数据可用之前不对其进行采样,并且允许有足够的时间将数据发送到可能在不同的时钟域上的逻辑。在图4和图5中分别示出了测试控制器和测试包装器的示例性跨时钟域实现的图,下面对其进行进一步详细讨论。
[0042]这里要注意的很重要的一点是,只针对架构或其它非功能测试应用才需要测试包装器。在这些情况下,测试包装器需要对功能事务进行修改,以适应非功能/架构协议。对于功能测试来说,IP将直接对来自结构的功能事务进行响应,并且因此不需要测试包装器。相应地,测试包装器的直通特征在功能测试期间实现。
[0043]图3示出了测试包装器108A的微体系结构以及去往和来自广义IP模块110的接口的一个实施例的进一步的细节。图3中示出的部件中的几个部件与图2的测试控制器104A中的相似部件类似,包括结构接口 300、RXQ和TXQ接口 302和304、以及FIF0306和308。测试包装器108还包括复用器模块310、测试状态机312、以及测试控制逻辑314。
[0044]结构接口模块300采用复用器电路和相关联的逻辑(被共同描绘为复用器模块310),以促进从结构106接收入站和向结构106发送出站的信号的发送/接收以及直通。从互连结构的角度来看,接合到结构的每一个IP模块具有各自的结构接口和唯一的互连地址。在一些实施例中(根据特定的结构体系结构和协议),接合到结构的每个设备或IP模块采用代理来处理经由结构互连发送的事务分组。如本文中所使用的,这些代理(通常可以经由编程逻辑等来实现)被嵌入图中所示的结构接口模块之内,并且为了清楚起见没有单独示出,然而,将会理解的是,这些代理及其相关联的功能在各种结构接口模块中实现,以用于采用使用这些代理的互连结构协议的应用。
[0045]在示出的实施例中,源于测试控制器的用于测试给定的目标IP模块的测试分组可以具有两个地址中的一个--与IP模块自身对应的地址(通常用于功能测试);或者分配给测试包装器的地址。如上面所讨论的,由于IP模块的功能测试不要求来自测试包装器的支持,因此可以绕过测试包装器。如上面所讨论的,这通过复用器模块300来实现。为了确定测试分组的正确目标(IP模块,或测试包装器),针对每个分组执行某种类型的地址检测。因此,结构接口模块300或结构(106)包括用于检测分组地址的电路,并且然后相应地路由分组。[0046]以有些只是相反的类似方式来处理来自测试包装器和相关联的IP模块的出站分组的传送。在这种情况下,经由复用器选择地将来自IP模块结构接口 128的信号和由测试包装器108在内部生成的信号耦合到测试包装器的结构接口。在这种情况下,不需要地址检测,因为在结构接口 128和测试包装器之间的互连信号路径上只出现出站数据指示输出分组的源是IP模块110。从IP模块的角度来看,测试包装器是透明的,就像IP模块的结构接口直接连接到互连结构。该设计内的信号直通功能有助于该期望的功能。
[0047]使用RXQ接口 302从结构接口模块300中的事务取回队列中取回去往测试包装器的数据分组,RXQ接口 302反过来驱动向测试控制逻辑314提供相应输入的测试状态机306,测试控制逻辑314解释输入并且经由测试控制信号和相关联的测试数据(就像“测试数据出”所描述的)向IP模块应用相应的测试激励。类似地,从IP模块取回响应数据(“测试数据入”),将其缓存在FIF0308中,并将其格式化成分组且经由TXQ接口 304和结构接口模块300的使用通过结构106进行传输。测试响应分组的目的地通常是测试控制器,测试控制器对响应数据进行解分组和重新格式化,并且将数据传输到ATE。根据由测试包装器实现的测试方法,经由测试状态机312和测试控制逻辑314来实现相应的电路和逻辑,并且通过“测试数据出”和“测试数据入”信号来传输适当的测试数据。例如,如果将包装器设计为应用扫描数据,那么“测试控制”是扫描控制信号(扫描使能、捕获和扫描时钟),并且“测试数据出”和“测试数据入”信号与IP的扫描数据入和扫描数据出信号进行接合(经由相应的IP测试端口 130)。对于针对IP实现多个测试方法的包装器来说,可以共享这些构造块中的一些(诸如与结构进行通信的模块,例如FIFO以及RXQ和TXQ接口)。
[0048]如上所述,在一个实施例中,FIFO包括定时跨越FIFO,其被配置为促进ATE和测试控制器之间的通信信号以及测试控制器和结构之间的通信信号使用的时钟频率之差。例如,这示意性地示于图4中。总的来说,如果ATE和结构运行单独且不相关的时钟,那么跨时钟FIFO对数据进行同步:通常,测试器将必须以2X或比结构时钟更慢地运行,以确保数据的完整性。在另一种情况下,如果插入了测试设计(DFT)逻辑(简单的旁路MUX)以使得测试器时钟与结构时钟相同,则不需要同步FIFO,并且测试器可以运行的和结构一样块。后一种情况是实现架构测试的优选选择。[0049]在图4所示的示例中,ATElOO和测试控制器104B的左手侧的部件(被共同示为格式器114)以对应于第一时钟域(CLK域I)的第一时钟频率CLKl运行。同时,测试控制器104的右手侧的部件(为了简单起见,由TXQ接口 206和结构接口模块212共同表示)在与结构106使用的CLK2信号的频率相对应的第二时钟域(CLK域2)中运行。跨时钟FIF0202A被配置为跨越不同的时钟域,以相对于所述一个或两个时钟信号频率以异步的方式运行,并且采用适用的握手电路来确保数据完整性。如果CLK2的频率是CLKl的频率的倍数,则简化电路和逻辑,但这不是严格的要求。尽管未示出,但以类似的方式对涉及测试结果分组的接收和处理的测试控制器104B的电路进行配置,其中,FIF0204被配置为第二跨时钟FIFO。
[0050]使用类似的技术来解决互连结构、测试包装器和IP模块之间的时钟频率差异。如图5的测试包装器108B中所示,将部件(为了简单起见在这里进行了抽象)划分成标记为CLK域2和CLK域3的两个时钟域。使用握手控制和在跨时钟FIF0306A中实现的定时电路来跨越这两个时钟域。以类似的方式,可以实现与封装和转发测试包装器中的测试结果数据有关的电路,包括跨时钟FIF0308 (未示出)。
[0051]一般来说,基本上可以使用本文中公开的测试控制器和测试包装器的组合,在具有类似的核心电路的IP模块上执行可以使用直接耦合到分立部件上的管脚的测试器在该分立部件上执行的任何测试。根据特定的测试要求,可以在本文中的一个或多个部件中嵌入特定测试逻辑。通常,可以将特定于某一类型的IP模块或内核类别的测试逻辑嵌入针对该类别实现的测试包装器中。
[0052]例如,图6中示出的示例性IP模块IlOA表示对扫描测试所适用的一类IP模块。如图所示,IP模块IlOA具有内核126A,内核126A包括存储器600、高速缓存器602和扫描链604。还示出的是测试包装器108C中的用于执行扫描测试、直接存取测试(DAT)测试以及基于架构的功能测试(SBFT)的逻辑。
[0053]如上面所讨论的,测试包装器提供了测试接口以与IP模块的IP测试端口进行通信。将该接口示意性地描绘为测试接口模块124和连接122A。一般来说,可以经由能够传送数据和/或信号的任意类型的连接(诸如总线、串行连接等等)来实现连接122A。
[0054]与本文中公开的TAM的实现有关的另一个方面是TAM配置。在测试数据被传输到TAM之前,必须对TAM进行配置,以使TAM的各个部件知道如何处理数据。例如,在扫描模式中,需要对包装器和测试控制器进行配置,以使它们可以正确地对扫描数据进行封装和解释,并且对面向扫描的分组中的适当字段进行解释以执行移位操作、应用捕获时钟等等。使用诸如1149.1TAP、IEEE1500WTAP或结构边带的独立机制更好地执行该配置。在最低限度,期望配置机制支持由TAM支持的所有测试模式(诸如扫描、DAT和SBFT)。为了简化设计、验证和初启,配置机制不应依赖于操作结构,并且假定:在通过结构启动首个与测试相关的操作之前,独立配置机制将把TAM置于适当的测试模式中。
[0055]通常,用于实现TAM测试配置的逻辑可以被嵌入测试控制器中,实现在单独的模块中,或者可以包括分布在多个部件中的逻辑。例如,将用于实现测试配置的逻辑描绘为图1中的测试配置模块112。在该示例性实现中,测试配置模块112从ATE100接收输入和控制信息,并且,作为响应,向测试控制器104和测试包装器108中的每一个提供测试配置数据。
[0056]如上面所讨论的,可以使用各种类型的互连结构和相关联的结构协议来实现本文中公开的实施例的各方面,并且整体的测试控制器和测试包装器的体系结构是独立于任何特定的互连结构的。然而,为了更好地示出与促进相关通信操作的互连结构的使用相关的接口方面,现在使用IOSF互连结构来给出实施例。
[0057]IOSF是正跨越INTEL SoC扩散的片上功能互连结构。IOSF提供将符合IOSF的IP集成到SoC中的即插即用机制,并且是基于PC1-e标准的。IOSF在接口和协议水平上实施标准化,但并不指定结构实现,从而使得在如何实现结构方面具有灵活性,以解决不同的SoC细分市场。基于PC1-e使得采取PC1-e行为的拆封(shrinkirap)操作系统具有兼容性。发展本文中公开的技术的主要动机是:出于向IOSF结构所在的IP传输数据以及对来自IOSF结构所在的IP的响应进行采样的目的,使IOSF标准功能互连结构的使用能够作为标准ΤΑΜ。这允许在标准的功能互连上对具有即插即用能力的标准化TAM进行逻辑分层,从而减少设计开销。
[0058]图1A示出了实现IOSF互连结构的图1的TAM体系结构的实施例。图1A中示出的部件中的许多部件与图1中的类似部件共享相同的标号,并且这些部件在两个实施例中执行类似的操作。此外,图1A中的体系结构包括IP模块110Β,该IP模块IlOB包括图6的IP内核126Α,其中,图6和图1A中的IP内核126Α的部件的操作是类似的。
[0059]在IOSF下,通过利用多层协议经由互连传输的分组的使用来促进互连结构上的通信。该协议在针对分组数据在互连上的传输而管理通信和仲裁操作的每个端点处使用代理。该协议还使用分别促进发送和接收结构接口操作的主接口和目标接口。在IOSF协议下,源于主接口的分组传输包括与目标(针对这些分组的接收)IP上的目标接口相对应的地址信息。图1A中的主接口和目标接口包括在测试控制器104C中的主接口 132和目标接口134,以及在IP模块IlOB中的主接口 138。IP模块IlOB还描绘了传送事务队列(TXQ) 140和接收事务队列(RQX)队列142。TXQ与主接口的配对以及目标接口与RXQ的配对对于每个IOSF接口来说是公共的。虽然没有在图1A中示出,但测试包装器108Α还包括主接口和目标接口以及相关联的TXQ和RXQ。
[0060]一般来说,针对SoC的实际TAM实现将包括与多个测试包装器进行通信的测试控制器,其中针对每个IP的测试包装器的实例,实现TAM体系结构以用于测试该IP。给定的测试包装器的特定的微体系结构将在某种程度上依赖于被设计用来测试的IP,但是本文中描述的微体系结构子模块中的许多子模块将可以跨越测试包装器而重用。图7中所示的SoC700描绘了这种TAM体系结构的示例性实现。
[0061]SoC700包括耦合到测试接口 103的测试控制器104,测试接口 103被配置为经由多个SoC测试管脚连接到ATElOO。SoC700的部件被描绘为在北复合体和南复合体之间进行划分,这在某种程度上与INTEL的北桥/南桥体系结构所使用的分立部件集成类似,确认在SoC中所有的部件集成在公共模具上,在部件之间没有外部互连。
[0062]北复合体包括连接到IOSF结构702的多个IP (被描绘为IP1、IP2和IP3)。每个IP包括各自的代理(被描绘为代理1、代理2和代理3),所述代理被用于促进该IP与耦合到IOSF结构的其它代理之间的通信,包括由测试控制器104实现的代理O。实现各自的测试包装器108-1、108-2和108-3以促进对IP1、IP2和IP3的测试,并且测试包装器108-1、108-2和108-3也耦合到IOSF结构702。
[0063]北复合体还包括经由与IO相干的结构桥706通信地耦合到IOSF结构702的相干结构704。相干结构704支持相干存储器事务来访问各种共享的存储器资源,这些共享的存储器资源被共同描绘为存储器708。包括多个内核712的CPU710通信地耦合到相干结构704,其中,在保持存储器相干性的同时每个内核能够访问存储器708。对于使用相干互连结构保持存储器相干性的支持通常由各个代理(为了清楚起见没有示出)来保持。
[0064]实现测试包装器108-4以用于促进对CPU710的测试,并且经由接口 714和CPU上的代理(代理4)来与CPU710进行接合。代理4和测试包装器108-4的结构接口部件被配置为与相干结构704进行接合,其使用与IOSF结构702不同的接口架构和协议。桥706促进两个结构协议之间的桥接操作、根据第一协议(例如,10SF)将分组转换成与第二协议(例如,0CP)相对应的分组,同时还促进两个结构之间的定时和信令接口。以这种方式,可以经由IOSF结构702、桥706和相干结构704将测试封装数据从测试控制器104发送到测试包装器108-4,并且可以在相反的方向上将相应的测试结果数据返回到测试控制器。
[0065]南复合体中的测试包装器的实现与北复合体中耦合到IOSF结构702的测试包装器的实现类似。南复合体包括通信地耦合到多个IP (如同IP5、IP6和IP7所描绘的)的IOSF结构716,其与相应的代理5、6和7促进的结构进行通信。各自的测试包装器108-5、108-6和108-7促进了针对这些IP中的每一个IP的测试操作。IOSF结构716被示为经由IOSF至IOSF桥718耦合到IOSF结构702。在替换配置中,IOSF结构702和716包括单一的互连结构,相应地,将不使用桥。在另一个实施例中,南复合体结构包括OCP结构,并且桥718包括IOSF至OCP桥。
[0066]架构测试应用(如扫描)提供用于对由于测试包装器而导致的硬件开销进行优化的另一个机会。在一个实施例中,可以将多个IP分组为“测试分区”,以菊花链方式将它们的扫描链连接在一起,以形成组合的IUT。也可以使用其它方案,例如STAR和菊花链的组合的STAR配置。这样的测试分区体系结构针对整个测试分区只需要一个测试包装器,而不是针对每个IP需要一个测试包装器。这进一步降低了硬件开销。测试分区方法是由诸如IP的大小、各个IP的物理接近度、测试期间的总体功率耗散等的若干因素驱动的。例如,单个IP可能太小以至于不能单独对其进行扫描测试,从而使得适合将其与其它IP —起包括到测试分区中。
[0067]图8中示出了使用测试包装器的实施例的测试分区的实现的例子。在该实例中,将IP模块IP-1、IP-2和IP-3分组以形成测试分区800。该体系结构还包括测试包装器802,804和806,这些测试包装器的一侧分别耦合到IP模块IP_1、IP_2和IP-3并且另一侧耦合到结构808。在该示例配置下,在测试包装器802中实现大部分测试包装器逻辑,在隔离包装器(IW) 804和806中实现的逻辑主要用于保持IP模块IP_2和IP-3在测试期间处于不活动、非干扰的状态。以类似的方式,在“主机” IP模块(在该示例中是IP模块IP-1)中实现针对测试分区中的IP模块实现的大部分测试逻辑。一般情况下,主机IP模块将具有被描绘为IP测试端口 810的接口逻辑,以促进待实现的特定测试。例如,典型的测试可以是扫描测试,并且因此测试分区800将作为扫描分区来进行操作。
[0068]一般来说,可以用与上面讨论的108类似的方式对测试包装器802进行配置,包括在图3和图5中被描绘为108A和108B的详细实施例。为了方便起见,在图8中将相应的逻辑描绘为测试接口逻辑812。如前所描述,测试包装器802包括用于经由适当的结构接口(如同由复用器814和816所描绘的)促进测试输入和输出信号的路由的逻辑。特定类型的结构接口将取决于由结构808实现的相应的结构体系结构和协议,其表示任何类型的现有或未来的结构体系结构。一般来说,总体的测试包装器和相关联的测试分区方案对于实现的特定结构来说是不可知的。
[0069]如上面所讨论的,测试包装器802处理大部分测试操作,这些测试操作包括到主机IP模块IP-1的接口。同时,将隔离包装器804和806保持在隔离模式,从而可以在没有干扰去往和来自结构808的通信的情况下执行对IP模块IP-2和IP-3的测试。在一个实施例中,如图8中所描绘的,这可以经由相应的空闲状态机(ISM)818和820来实现,空闲状态机818和820可操作地耦合到复用器822、824、826和828。通常,ISM是有限状态机,其确保在测试期间结构获得针对隔离包装器804和806的正确的握手信号。以与上面针对测试包装器108描述的类似方式,隔离包装器可以被配置为操作作为结构信号直通,这可以是在测试操作外部使用的配置。当操作处于直通模式时,由针对每个IP模块的结构接口模块促进握手信号。
[0070]测试分区中的主机IP模块被用于实现对分区中的其它IP模块的测试(结合来自测试接口逻辑812的测试激励),并用于促进将与测试分区中的IP模块相对应的测试结果数据传送回测试包装器802,测试包装器802接着以与上面针对图1和IA的TAM体系结构所描述的类似方式将结果转发回测试控制器(未示出)。例如,可以将在IP模块IP-UIP-2和IP-3上执行的扫描测试的结果返回测试包装器802、分组并且经由结构808转发回测试控制器。
[0071]在前述实施例中,单一主机IP模块被用于促进对测试分区中的多个IP模块进行测试。然而,这并不意味着是限制性的,因为测试包装器可以被配置为使用替换的配置向测试分区中的多个IP模块提供测试输入。例如,多个IP模块中的每一个IP模块可以包括其自己的一组IP测试端口,并且接收来自测试包装器的测试输入,以及将结果传输回测试包装器,或者可以使用混合方案,该混合方案针对一些操作和测试包装器与一个或多个其它IP模块之间的边带通信使用主机IP模块。
[0072]还应当注意的是,针对使用压缩/解压缩的扫描体系结构,测试包装器可以被配置为与压缩/解压缩逻辑接口。在这种配置下,测试包装器将向解压缩模块进行馈送,并且将获得自压缩模块返回的扫描响应数据。该方案提供两个优点。第一,测试包装器避免了对扫描链的内部数量的改变。基于针对产品的大容量制造需求,可以在不影响测试包装器的情况下对IP的扫描链的内部数量进行修改。第二,可以将IP的外部扫描链的数量(即,测试包装器所观察到的扫描链的数量)标准化为与结构的宽度相等或者更小的数字,从而使得扫描数据的一个移位循环可以在一个数据周期中在结构上传输。这在极大程度上简化了测试控制器和测试包装器二者的设计,从而进一步降低硬件开销。
[0073]测试控制器和测试包装器的组合使用提供了用于有效地传送去往和来自IUT的测试命令、测试激励和测试结果的机制,从而在不需要全局布线的情况下使得ATE有效地耦合到每个IP。此外,TAM体系结构支持重用和可扩展性,同时使生成和实现特定测试的需要最小化,这促进了要求针对每个SoC设计或衍生物的相应电路。例如,一旦已经设计了针对给定IP模块的测试包装器,每当在使用类似的通信体系结构(例如,相同的互连结构)的SoC中实现IP模块的实例时,就可以使用该测试包装器设计。此外,可以设想测试控制器可以被配置为支持跨越多个SoC体系结构和/或衍生物的测试。例如,“通用的”测试控制器可以被配置为支持跨越芯片集家族的测试。可选地,可以使用针对包含可参数化的子部件(诸如信号的类型和数量)以及可以使用编译器指令包含/排除的子部件的测试控制器的可配置的RTL模块。作为另一个选择,用作“测试控制器生成器”的程序或脚本可以用于使用预编码的构造块和模板来生成定制的测试控制器邻近备用设备。
[0074]本文中公开的发明的示例性实施例将本发明的各个方面的实现示为实现在半导体芯片(如同SoC体系结构所示例的)上。此外,可以在机器可读介质内实现本说明书的实施例。例如,可以将上述设计存储在与用于设计半导体器件的设计工具相关联的机器可读介质上和/或嵌入该机器可读介质内。示例包括在VHSIC硬件描述语言(VHDL)语言或Verilog语言中格式化的网表。一些网表的示例包括:行为级网表、寄存器传输级(RTL)网表、门级网表和晶体管级网表。机器可读介质还包括具有布局信息(诸如⑶S-1I文件)的介质。此外,可以在仿真环境中使用半导体芯片设计的网表文件或其它机器可读介质以执行上述教导的方法。
[0075]对本发明的图示的实施例的上述描述(包括在摘要中描述的内容),并非旨在穷举或将本发明限制为所公开的精确形式。虽然出于说明的目的在本文中描述了本发明的具体实施例和示例,但如同相关领域的技术人员将认识到的,在本发明的范围内的各种等同修改是可能的。
[0076]根据上面的【具体实施方式】可以对本发明做出这些修改。在以下的权利要求书中所使用的术语不应该被解释为将本发明限制为在本说明书和附图中公开的具体实施例。而是,本发明的范围完全由下面的权利要求来确定,其应当根据确立的权利要求解释的教义来解释。
【权利要求】
1.一种片上系统(SoC),包括: 互连结构; 知识产权(IP)模块,其可操作地耦合到所述互连结构;以及 测试包装器,其通信地耦合到所述互连结构及所述IP模块中的每一个; 其中,响应于经由所述互连结构接收到包括测试数据和/或测试命令的测试封装,所述测试包装器被配置为:向所述IP模块提供相应的测试输入数据、控制和/或激励信号以在所述IP模块中的电路上执行一个或多个测试操作。
2.根据权利要求1所述的SoC,其中,所述互连结构包括Intel片上系统结构或开放内核协议结构中的一个。
3.根据权利要求1所述的SoC,其中,所述IP模块包括结构接口,并且所述测试包装器被配置为:支持互连结构信号直通到所述IP模块的所述结构接口,以使得所述IP模块能够通信地耦合到所述互连结构。
4.根据权利要求1所述的SoC,其中,所述测试包装器包括结构接口电路,所述结构接口电路被配置为与以第一时钟频率操作的互连结构接合,并且所述测试包装器被配置为与使用以第二时钟频率操作的信号的IP模块的IP测试端口接合。
5.根据权利要求1所述的SoC,其中,所述测试包装器被配置为:从所述IP模块接口接收测试结果数据,并且将所述测试结果数据分组到一个或多个分组中,并且经由所述互连结构向被用以促进测试所述SoC的测试部件发送所述一个或多个分组。
6.根据权利要求1所述的SoC,还包括: 多个IP模块,其可操作地耦合到所述互连结构;以及 多个测试包装器,每个测试包装器通信地耦合到所述互连结构以及相应的IP模块; 其中,所述测试包装器中的每一个被配置为经由所述互连结构接收测试封装,并且向其相应的IP模块提供对应的测试输入数据、控制和/或激励信号以执行由所述IP模块中的电路上的所述测试封装所定义的一个或多个测试操作。
7.根据权利要求1所述的SoC,其中,所述测试包装器被配置为在所述IP模块上执行扫描测试。
8.一种片上系统(SoC),包括: 互连结构; 包括测试分区的多个知识产权(IP)模块,其可操作地耦合到所述互连结构;以及 测试包装器,其通信地耦合到所述互连结构以及所述多个IP模块中的至少一个IP模块中的每一个; 其中,响应于经由所述互连结构接收到包括测试数据和测试命令的测试封装,所述测试包装器被配置为:向所述测试包装器通信地耦合到的至少一个IP模块提供对应的测试输入数据、控制和/或激励信号,以在所述多个IP模块中的每一个IP模块中的电路上执行一个或多个测试操作。
9.根据权利要求8所述的SoC,还包括至少一个隔离包装器,每个隔离包装器通信地耦合到所述互连结构和相应的IP模块,其中,所述隔离包装器被配置为:在于所述IP模块上执行至少一个测试操作期间,将相应的IP模块与所述互连结构隔离。
10.根据权利要求9所述的SoC,其中,所述测试包装器和所述至少一个隔离包装器可配置为:促进信号在所述多个IP模块和所述互连结构之间的直通。
11.根据权利要求10所述的SoC,其中,所述测试包装器通信地耦合到包括主机IP模块的单个IP模块,并且所述主机IP模块被配置为:向所述测试分区中的其它IP模块提供测试输入信号,并且将与在所述其它IP模块和所述主机IP模块上执行的测试相对应的测试结果数据返回到所述测试包装器。
12.根据权利要求10所述的SoC,其中,所述测试包装器被配置为:接收与在所述多个IP模块上执行的测试相对应的测试结果数据,并且将所述测试结果数据分组到一个或多个分组中,并且经由所述互连结构将所述一个或多个分组发送到被用以促进测试所述SoC的测试部件。
13.—种方法,包括: 通过以下步骤对包括片上系统(SoC)中的测试分区的多个IP模块进行测试: 经由互连结构,向集成在所述SoC上并通信地耦合到所述IP模块中的至少一个IP模块和所述互连结构的测试包装器传送测试数据和/或测试命令;以及 经由所述测试包装器,向所述测试分区中的所述至少一个IP模块提供测试输入数据、控制和/或激励信号,以促进对与所述测试数据和/或测试命令相对应的所述多个IP模块的电路级测试。
14.根据权利要求13所述的方法,还包括: 在集成到所述SoC上的测试控制器处接收来自所述SoC外部的测试器的测试器输入;` 在所述测试控制器处基于所述测试器输入生成测试封装,所述测试封装包括所述测试数据和/或测试命令;并且 经由所述互连结构从所述测试控制器向所述测试包装器传送作为一个或多个分组的所述测试封装。
15.根据权利要求14所述的方法,还包括: 在所述测试包装器处接收与所述多个IP模块的电路测试相对应的测试结果数据,并且 经由所述互连结构从所述测试包装器向所述测试控制器传送包括所述测试结果数据的一个或多个分组,所述测试结果数据包括在所述IP模块上执行的电路测试。
16.根据权利要求13所述的方法,还包括:在所述多个IP模块中的至少一个IP模块的电路测试期间,将所述多个IP模块中的至少一个IP模块与所述互连结构隔离。
17.根据权利要求16所述的方法,还包括: 在所述电路测试期间,采用至少一个隔离包装器来将所述多个IP模块中的至少一个IP模块与所述互连结构隔离;以及 在所述电路测试完成之后,将所述至少一个隔离包装器配置为:促进信号在所述多个IP模块中的至少一个IP模块与所述互连结构之间的直通。
18.根据权利要求13所述的方法,其中,所述测试包装器通信地耦合在所述多个IP模块中的一个IP模块与所述互连结构之间,所述方法还包括:将所述测试包装器配置为使信号从所述IP模块直通到所述互连结构。
19.根据权利要求13所述的方法,其中,所述测试包装器通信地耦合到包括主机IP模块的IP模块中的一个,所述方法还包括:从所述测试包装器向所述主机IP模块提供测试输入;以及 采用所述主机IP模块以向所述测试分区中的至少一个其它IP模块提供测试数据或测试激励中的至少一个,以促进所述至少一个其它IP模块的电路测试。
20. 根据权利要求19所述的方法,还包括: 在所述主机IP模块处收集来自所述至少一个其它IP模块的测试结果数据;以及
【文档编号】G06F13/14GK103492890SQ201180069866
【公开日】2014年1月1日 申请日期:2011年12月21日 优先权日:2011年3月9日
【发明者】S·帕蒂尔, A·贾斯, P·利谢尔内斯 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1