专利名称:通用协议引擎的制作方法
通用协议引擎
背景技术:
自动存储模式功能测试在集成电路(IC)器件生产过程中提供关键步骤,从而得到器件的参数和操作特性。自动测试设备系统包括连接到控制计算机或主计算机的测试电路。控制计算机提供用户界面,用户界面接受和存储用于启动测试电路以向被测器件提供激励信号的功能测试模式数据,并接收来自被测器件的响应信号。响应信号经过评估,以确定集成电路器件的参数和操作特性。被测器件(DUT)安装在器件接口板(或DIB)上,器件接口板为来自和发往管脚电路的物理信号提供物理接口。来自测试电路的测试激励信号通过DIB经管脚电路提供到被测器件。来自被测器件的测试响应信号经DIB传输到管脚电路,进而传输到测试电路。测试电路将测试激励信号与测试响应信号关联,以确定被测器件是否通过测试。测试电路生成的激励信号包括数据信号和用于使激励输入同步的时钟信号。测试的有效性取决于这些信号相对于彼此的准确设置。例如,若干不同的信号(例如,时钟信号、数据信号和使能信号)在适当的时间被协调和触发,以确保测试过程中采集到有意义的数据。各种集成电路功能元件具有符合固定时间协议和数据协议的接口规范。例如,这些协议包括n线串行结构化总线,例如以太网管理数据输入/输出(MDIO)、通用串行总线 (USB)或内置集成电路(I2C)总线;并行通信总线,例如通用输入/输出(GPIO);存储器总线,例如双倍数据速率动态随机存取存储器(DDR);以及高速通信信道,例如高清晰度多媒体接口(HDMI)。如上所述,近年来,存储模式功能测试对于功能不确定的器件已经遇到越来越大的困难。目前,半导体加工的集成水平和复杂性使得集成电路芯片可以有效地完全成为“系统级芯片”(SOC)。系统级芯片将计算机或其他电子系统的所有功能电路元件集成到单个集成电路(芯片)内。这些集成电路元件可以是数字电路、模拟电路、随机存取存储器、数模混合信号电路的任意组合,并且常常包括射频功能。系统级芯片(SOC)提供集成到同一半导体基片上的多种数字和模拟集成电路功能元件。SOC的一个实例是移动电话,移动电话不仅集成了移动电话接收、处理和发射功能, 而且集成了照片和视频处理功能、音频数字信号处理电路和半导体存储器电路。目前,在大多数SOC测试中,用多种测试方法(例如SCAN测试、内建自测(BIST)和功能测试)单独测试SOC的各个功能。系统级测试通常采用定制电路,并且通常仅用于平均售价较高的低混合度器件,如微处理器。最终系统级测试可以在专门为测试特定SOC器件(例如微处理器) 而制造的定制测试设备上进行。虽然期望为其他SOC器件进行系统级测试,但为平均售价较低的SOC器件制造定制的功能测试设备并不经济。用自动测试电路测试SOC器件的困难在于用自动测试电路进行的参数和独立功能测试是确定性的测试操作。为测试激励信号施加特定时序和结构,并预期测试响应信号具有特定时序和结构。如果测试响应信号与对于给定参数的预期时序和结构不匹配,则认为被测SOC器件测试失败。SOC器件的功能可以采用不同的时序规范和时钟规范操作,并可以异步操作。SOC器件可以在响应测试信号指示其不能工作的情况下工作,并且可以在通信功能的异步性导致测试响应信号表现不正确时工作。除了提供某些延迟因子之外,当前一代的自动测试设备系统在处理非确定性SOC 器件方面的能力非常有限。这为测试工程师带来了很大的麻烦,因为当测试激励信号为设计验证中使用的模拟向量时,初始原型器件很有可能无法工作。结果导致一系列试错循环, 在这些试错循环中,测试工程师尝试来回移动向量,直到发现能通过测试的布置方式为止。 由于涉及大量数据,并且需要重新模拟每一次尝试,因此每个循环可能花费几天时间,最终结果是新SOC器件的测试和评估阶段延长数月。在本自动测试设备系统中已经尝试模拟被测SOC器件的运行条件。由于电路功能元件之间异步通信的非确定性函数,无法为被测SOC器件准确地重新建立功能元件的正常运行环境。目前的自动测试设备环境缺乏容易而准确地提供被测SOC器件的正常运行环境的不确定电气和时序条件这一能力。自动测试设备系统内这种不确定电气和时序条件的缺乏进一步导致无法测量被测SOC器件的误差范围,该误差范围是相对于其在正常运行环境下可能存在的变化的运行条件下的公差而言。因此,需要一种在自动测试设备内的协议生成电路或引擎,该电路或引擎用于生成符合被测器件预期的指定器件协议的激励信号和时序,并按照符合该指定器件协议的时序接收响应信号。
发明内容
在一个实施例中,提供了一种用于自动测试设备的协议引擎电路,所述协议引擎电路包括协议生成电路,协议生成电路被构造成检索协议特有数据,并用于被测器件相对应的所选协议定义格式化该协议特有数据以测试被测器件。协议生成电路可以被构造成能从协议定义表中检索所选协议定义。在一种实施例中,提供了一种用于生成信号和时序的方法,所述信号和定时符合用于在自动测试设备和被测器件之间通信的指定器件协议,所述方法包括接收用于被测器件的固定协议数据;接收协议特有数据;以及将固定协议数据和协议特有数据组合成用于测试被测器件的指定器件协议。该实施例还可包括接收协议定义位置号;从协议定义位置号所指示的表位置为指定器件协议选择固定协议数据;以及提供用于测试被测器件的指定器件协议内的固定协议数据和协议特有数据。在一些实施例中,该方法还包括接收操作码并从与该操作码对应的表位置检索动作数据;以及将动作数据与用于测试被测器件的指定器件协议内的固定协议数据和协议特有数据一起提供。在其他实施例中,检索用于指定器件协议的固定协议数据的过程包括检索动作数据,并且提供固定协议数据的过程包括提供动作数据。
图1为协议生成电路的实施例的简化框图。图2为协议生成电路的另一个实施例的简化框图。图3为用于在自动测试系统的一个实施例中构建指定器件协议的示例性操作动作的表。图4A和4B为协议生成电路的又一个实施例的更详细的框图。图5为包括具有图1、2或4A和4B的协议生成电路的协议专用电路的其中一个实施例的多个实例的自动测试设备系统的框图。图6为描述符合以太网管理数据输入/输出(MDIO)协议规范的信号的相对结构和时序的示意图。图7为操作码实例的表。
具体实施例方式包含用于存储在FPGA内的具体SOC的特定协议的协议专用电路可用来改进测试。 然而,该方法可能太耗时或在一些应用中受到限制。不同的SOC可能需要一个或多个不同的协议。各种SOC可以包括下列中的一种或多种m线串行结构化总线,例如以太网管理数据输入/输出(MDIO)、通用串行总线(USB)或内置集成电路(I2C)总线;并行通信总线,例如通用输入/输出(GPIO);存储器,例如双倍数据速率动态随机存取存储器(DDR);以及高速通信信道,例如高清晰度多媒体接口(HDMI)或其他。能够为各种DUT生成大量不同协议的测试仪的优点在于,其可以增加测试仪的功能和提高测试效率。图1为协议生成电路300的实施例及其与管脚电路320的互连的简化框图。可以将测试模式命令372输入主机设备,存储在动态随机存取存储器(DRAM)(未示出)内,以及传送到协议控制存储表370。协议控制存储表370存储定义用于构建符合指定器件协议的激励信号和时序的命令的操作码。操作码可以被解码或部分解码或结构化,以直接提供控制信号,该控制信号用于生成符合指定器件协议的激励信号和时序。操作码通过线路309 传送到事务状态机305。在激活起始信号306时,事务状态机305提供一系列时序循环,该时序循环基于由时钟308同步的操作码定义指定器件协议的操作动作的执行顺序。时序循环信号被传送到协议定义表310。时序信号307还从事务状态机305传送至协议控制存储表370,以递增操作码302(如图2所示)和表号304(如图2所示)的传输。时序信号307 还被传送到协议特有数据存储表315,以递增预期数据317和驱动数据319的传输。测试模式命令372还包含协议定义位置号,协议定义位置号定义包含固定协议数据集的协议定义表310内的位置,固定协议数据在一些实施例中还可以包括用于指定器件的对应动作信号。在下文结合图2讨论的其他实施例中,动作信号可以包含在单独的动作表350中。参见图1,协议引擎测试模式命令372还包含将用于每个待执行事务的协议特有数据。协议特有数据放在协议特有数据存储表315内。协议特有数据可以是将作为激励信号驱动至被测器件335的数据、将与来自被测器件的响应信号比较的预期数据,或用于控制事务执行过程中的数据流的屏蔽数据。如图所示,管脚电路320包括通道逻辑325和I/O驱动器330。通道逻辑包括选择器321和通道电路323。选择器321接收来自协议定义表310的固定协议数据312和来自协议特有数据存储表315的协议特有数据313。来自协议定义表310的动作信号314提供控制指令,以用于选择是将固定协议数据312还是协议特有数据313作为所选数据信号322 还是命令信号3M传送至通道电路323,以正确启动通道电路323。通道电路323的驱动数据输出327是到管脚电路320的I/O驱动器/接收器330的驱动器332的输入,以便当自动测试设备正在按照指定器件协议将激励数据驱动到被测器件335时提供将要驱动的协议特有数据313或固定协议数据312。作为另外一种选择,通道电路323的控制输出3 为驱动器332提供必要的控制信号,以便在自动测试设备正在从被测器件335接收响应信号时停用驱动器332。接收器334连接用于接收来自被测器件的响应信号。接收器334连接用于将接收的数据3 传送到通道电路323。通道电路323接收来自协议特有数据存储表 315的预期协议特有数据313和来自协议定义表310的预期固定协议数据312。预期协议特有数据313和固定协议数据312与来自接收器334的响应信号进行比较,以确定被测器件335是否正确工作。通道电路323提供被传送到失败处理器(未示出)的比较结果信号 340。图2为协议生成电路370的另一个实施例及其与管脚电路320的连接的简化框图。协议生成电路370的该实施例的结构类似于上文结合图1所描述的结构。协议控制存储表370包括充当操作码的高速缓冲器的先进先出(FIFO)存储器301。FIFO 301的输出被传输至状态触发器302。协议控制存储表370在线路上将操作码309a传输至事务状态机 305和动作表350。如上所述,在激活起始信号306时,事务状态机305提供一系列时序循环,该时序循环基于由时钟308同步的操作码定义指定器件协议的操作动作的执行顺序。协议控制存储表370还包括充当协议定义位置号的高速缓冲器的FIFO存储器 303。FIFO 303的输出被传输至表号状态触发器304。表号状态触发器304在线路309b上将协议定义位置号传输至事务状态机305,然后经线路311传输至协议定义表360,以提供在包含用于构建指定器件协议的数据和时序的固定协议数据集362的协议定义表360内的位置。协议特有数据存储表315包括FIFO存储器316,该FIFO存储器充当将与来自被测器件的响应信号比较的预期数据的高速缓冲器。FIFO 316的输出被传输至状态触发器 317。状态触发器317在线路313a上将预期数据传输至通道逻辑325的比较逻辑356。相似地,协议特有数据存储表315包括FIFO存储器318,该FIFO存储器充当将按照指定器件协议驱动至被测器件的协议特有数据的高速缓冲器。FIFO 318的输出被传输至状态触发器 319。状态触发器319在线路31 上将驱动数据传输至通道逻辑325的驱动逻辑354。在该实施例中,分别提供单独的协议定义表360和动作表350。这是利用了以下事实在一些实施例中,对于任何给定协议,存在可以在每个位时间发生的动作子集。图3 为可用于在自动测试设备系统内构建指定器件协议的操作动作的实例的表。这些动作可以 1 DriveO Drive Data> Hold ifLo、Proceed on Change ^Pulse Lo-Z ifH。 0 3 实例列表,其他动作也是可能的。可以在列表中添加任何额外的动作,并更新协议生成引擎 370以包括这些动作。在一些实施例中,只有有限数量的驱动动作、有限数量的比较动作和有限数量的1/0动作可以在每个位时间发生。协议定义表360存储固定协议数据,动作表 350存储与操作码309a相对应的动作。操作码309a和固定协议数据362提供到动作表350 内的位置的指针,该指针选择用于导向所选数据信号32 和322b以及命令信号324的信号,以正确启动通道逻辑325。动作表350的输出32 将来自协议定义表360的固定协议数据362导向至通道逻辑325内的驱动逻辑354。相似地,驱动数据状态触发器319的输出 313b向驱动逻辑3M提供协议特有数据313a和31北。驱动逻辑3M为驱动器332提供激励数据,进而为被测器件335提供激励数据。动作表350的输出322b将来自协议定义表360的固定协议数据362导向至通道逻辑325内的比较逻辑356。相似地,预期数据状态触发器317的输出313a为比较逻辑356提供预期协议特有数据313a。比较逻辑356通过接收器334接收来自被测器件335的响应数据。比较逻辑356提供比较结果信号340,该信号被传送至事务状态机305和失败处理器 (未示出)。动作表350的输出包含到通道逻辑325的I/O逻辑352的动作信号324。I/O逻辑352启动对驱动逻辑354、比较逻辑356和I/O驱动器/接收器330的驱动器332的正确控制,以逐位生成正确的事务,用于确定被测器件335的工作状态。图4A和4B为协议生成电路370的又一个实施例及其与管脚电路320的互连的更详细的框图。该实施例的自动测试设备内的协议生成电路370的源数据存储概念是在动态随机存取存储器(DRAM)(未示出)内存储尽可能少的信息。这意味着只有操作码、表号和净荷位(数据位)存储在DRAM(未示出)内。所有固定的协议专用位(如起始位/停止位或关注位)存储在协议定义表410内,因而在DRAM(未示出)内不占空间。DRAM(未示出) 提供用于操作码37 、表号372b的测试模式数据、驱动数据372c、预期数据372d和屏蔽数据37加。操作码37 和表号372b为协议控制存储表400的输入。驱动数据372c、预期数据372d和数据屏蔽位37 为协议特有数据存储表415的输入。一旦协议执行状态机405发出“Next”(下一个)命令409,即可进行加载序列。操作码同步传输到操作码状态触发器402内,表号同步传输到表位置状态触发器404内。操作码被充分解码,以确定其为读、写还是屏蔽更新事务。驱动数据372c、预期数据372d和数据屏蔽37 的大小在小的RAM中查找。协议执行状态机405随后将正确数量的区块加载到此时用作FIFO(未示出)的随机存取存储器(RAM)内。FIFO的输出为驱动数据触发器 416、预期数据触发器417和数据屏蔽触发器418的输入。驱动数据触发器416、预期数据触发器417和屏蔽数据触发器418被协议执行状态机405用来为协议满足从单个串流一直到多个位宽总线的变化的数据宽度要求。此外,可以将多个协议生成电路组合,以服务于更宽的总线。驱动数据触发器416、预期数据触发器 417和屏蔽数据触发器418的位转换(bit swizzle)将在脉冲串起始处编程,以将来自RAM 的多个位转换为协议所要求的、到协议执行状态机405的1、2、4或任何数量的位。驱动数据触发器416、预期数据触发器417和数据屏蔽触发器418的使能线指示下一组数据应在下一位时钟上输出。在“wait until”(条件满足)或“R印eat Opcode”(重复操作码)的特殊情况下使用复位线。在这种情况下,如果不满足条件(“Transaction Reject”(事务拒绝)已发生或“R印eat”(重复)未进行),则需要重复事务。没有 “Next”(下一个)命令409的“Last Bit”(最后一位)信号表示FIFO应重置存储器指针, 以重复事务。协议控制存储表400和协议特有数据存储表415的输出然后在下一事务起始处将操作码、协议定义位置号、驱动数据413a、预期数据41 和数据屏蔽位413c全部正确对准。 操作码状态触发器402为包含解码或部分解码的操作码的多输出寄存器。操作码状态触发器402的其中一组输出为协议执行状态机405提供初始定义码403a,以初始化协议执行状态机405的状态计数器。操作码的一部分为读/写事务位40北,该事务位然后从操作码状态触发器402传送至协议定义表410。事务定义403c从操作码状态触发器402传送到动作表450。操作码的事务偏移部分403d在表偏移量计算器406内与来自表位置状态触发器404的表位置401组合,以便为正在执行的每个事务生成相对于表位置401的开始指针的准确偏移位置。来自协议执行状态机405的表位置位491与偏移量计算器406的输出在加法器407内组合,以确定在协议定义表410内的准确位置、下一事务的定义和固定数据。协议生成电路370的该实施例被结构化,以用于控制自动测试设备的多个通道, 从而模拟被测器件435的多个管脚。为实现这一目的,协议定义表410包括多个定义表RAM 461、462、463和464以及单独的动作表450。多个定义表RAM 461、462、463和464通过单独的动作表450与通道逻辑电路425和管脚电路320的I/O驱动器/接收器430通信,以分离被测器件435的管脚。在包括该实施例的协议生成电路370的自动测试设备内,协议生成电路370支持与被测器件435的八个管脚通信的八个通道。多个协议生成电路370可任选地成组在一起,以支持更宽的总线宽度,例如64位总线。成组的协议生成电路370将执行相同的操作码。多个定义表RAM 461、462、463和464将包含不同的定义信号,这些定义信号用于将要基于每个管脚的功能施加到被测器件的管脚的信号。当执行不同的多个定义表RAM 461、462、463和464时,表偏移量计算器406和加法器407为事务定义地址生成偏移地址。用于读和写的每个新事务可以具有不同长度和不同定义。使用每个事务类型的偏移量对表偏移量计算器406和加法器407进行编程。这允许多个定义表RAM 461、462、463和464内的许多短事务类型或少数长事务类型,前提条件是所有事务的总长度不超过多个定义表RAM 461、462、463和464内的可用存储空间。协议定义表410包括为一般内务处理功能提供附加位(对于该实施例为3位)的协议定义控制表461。这些位被定义为“Last bit”(最后一位)492a、“Store”(存储)492b 和“Invert Hold Sense”(反转保持指向)492c。"Last Bit”通知协议执行状态机405 事务的最后一位已传输。协议执行状态机405发出“Next”(下一个)命令。如果随后的事务未被保持、达到重复计数、不存在等待条件或可以重复前一事务,则发出“Next” (下一个) 命令。“More”定义哪个循环是存储循环。在捕获逻辑475的建立突发的脉冲串之前定义要存储的实际位。"Invert Hold Sense”反转“Hold”线493的指向。“Hold”线493的功能在下文中解释。多个协议定义表RAM 462,463和464的输出412a,412b, · · · 412x被施加到其单独的动作表450。动作表450主要从协议定义表RAM 462获得其地址,但一定数量的(即2 个)地址位403c来自操作码状态触发器402。这是为了应对操作码改变事务的某些位(例如Read和MaskRead)的动作的情况。在替代实施例中,可以通过向协议定义表RAM462添加事务类型来处理动作的改变。然而,协议定义表RAM 462相对于动作表450更加昂贵,从而使地址位403c成为更理想的工具。来自动作表450的输出的固定协议数据信号42 和事务命令信号42 为通道逻辑425的输入。命令信号42 包括指示正在执行其中一个保持动作并且条件尚未满足的 Hold信号。命令信号42 内的脉冲时间信号是由脉冲发生器458用来为被测器件435生成时钟脉冲的计时脉冲。命令信号42 内的使能屏蔽允许从数据屏蔽触发器418中读取屏蔽位。固定协议数据41 被存储到协议定义表462并传输到动作表450,以通过解码生成固定协议数据42加。固定协议数据42 传输到通道逻辑425。协议特有数据413a从驱动数据触发器416传输到通道逻辑425。数据屏蔽位413c从数据屏蔽触发器418传输到通道逻辑425。命令信号42 的功能选择位选择要传输到被测器件435的管脚的数据的源。 驱动逻辑452的输出为1/0驱动器/接收器430的管脚驱动器432的输入。
命令信号424b为I/O逻辑454的输入。I/O逻辑妨4控制管脚驱动器432。当管脚驱动器432主动驱动数据时,I/O逻辑妨4设置阻抗控制以允许驱动。作为另外一种选择,I/O逻辑妨4允许管脚驱动器432基于计时脉冲在高阻抗状态或驱动至Lo状态之间切换。高阻抗状态允许管脚电路430的接收器434从被测器件435接收数据。作为另外一种选择,当时钟线为发信目的(即I2C)而拉低电位时,一些协议具有特殊编码。阻抗控制有利于这些功能。接收器434的输出为比较逻辑456的输入。比较逻辑456执行图3的比较动作。 比较逻辑456比较由接收器434采集的来自被测器件435的响应数据与来自预期数据状态触发器417的预期数据41北。另外,比较逻辑456从数据屏蔽触发器418接收数据屏蔽位 412c。响应数据与预期数据41 的比较结果和数据屏蔽位412c决定事务是否失败。此外, 比较逻辑456为协议生成电路370的流控制管理各种保持条件。作为协议生成电路370流控制的一部分,往返FIFO 485使预期响应数据41 和数据屏蔽位413c延迟,以按照通过被测器件435的往返时间将其在时间上向后延迟。延迟允许比较逻辑456对来自被测器件435的响应数据与驱动数据413a、预期响应数据41 和数据屏蔽位413c中的一个进行比较。另外,往返FIFO 485使来自动作表450的事务表号 423延迟,以与捕获逻辑475内的比较结果数据459对准。往返FIFO 485使预期固定数据信号422b延迟,以在比较逻辑456内与来自接收器434的响应数据进行比较。协议生成电路370的流控制的下一功能为“保持或树”(HOLD OR tree)4650 “保持或树”(HOLD OR tree)465从为被协议生成电路370或若干组成组协议生成电路370模拟的协议分组的每个通道的1/0逻辑妨4和比较逻辑456接收保持信号和使能信号。“保持或树” (HOLD OR tree) 465的“保持”(Hold)输出493被传送到协议执行状态机405和捕获逻辑475,以确保在测试被测器件435过程中模拟正确的协议流。从动作表450输出到被测器件435然后经“保持或树”(HOLD OR tree) 465返回到协议执行状态机405的循环时间设置被测器件的最高频率。比较逻辑456的其中一个输出为事务拒绝信号457,该信号被传送到事务拒绝或树(OR tree)4700事务拒绝信号457提供信号,表明被测器件435在特定位事务时间发生的一个或多个事务中失败。为被协议生成电路370或若干组成组协议生成电路370模拟的协议分组的每个通道的所有事务拒绝信号457是事务拒绝或树(OR tree)470的输入。事务拒绝或树(OR tree) 470的输出494是协议执行状态机405的输入,用来提供对测试被测器件435所需协议的生成进度的条件指示。捕获逻辑475从比较逻辑456接收比较结果数据信号459,该信号描述了将来自被测器件435的响应数据与预期数据41 进行比较的状态。比较逻辑还从往返FIFO 485 接收延时事务表号486a和延时存储信号486b。捕获逻辑475从比较结果数据信号459捕捉读数据,以便在以后用于Read/Modify/Write (读/修改/写)操作。捕获逻辑475存储具有时间戳和表号486a的比较结果数据信号459,以与其他协议生成电路370进行数据关联。具有时间戳和表号486a的比较结果数据信号459被传送到DRAM 220。如上所述,协议执行状态机405提供一系列时序循环,该时序循环基于由时钟408 同步的操作码定义指定器件协议的操作动作。时序循环信号被传送到协议定义表410。表位置位491从协议执行状态机405传送到加法器407,进而传送到协议定义表410,以存取用于形成生成要发送到被测器件的激励信号的协议的事务数据,并接收和评估来自被测器件的响应。协议执行状态机405的其他功能包括提供用来与主机通信的标志497。协议执行状态机405可以设置有限数量的标志的任意组合或与之进行比较。标志497的操作数将包含屏蔽位、写位或比较标志。在多个协议生成电路370成组的情况下,只有一个协议执行状态机405用于标志,其他协议执行状态机405将从主部件接收状态。延迟同步信号线(ISL) 498被主协议执行状态机405用来在所有协议执行状态机 405之间分配特定协议动作的启动。图5为包括具有图1、2或4A和4B的协议生成控制370的协议专用电路50 .....
505η的其中一个实施例的多个实例的自动测试设备系统500的框图。自动测试设备系
统500具有连接到多个管脚电子单元510a.....510η的协议专用电路50 .....505η的
多个通道。如上所述,多个管脚电子单元510a.....510η中的每一个在被测SOC器件MO
和自动测试设备系统500之间通过负载适配器的物理互连提供电接口 50 .....502η
和50 .....50如。协议专用电路50 .....505η中的每一个连接到多个管脚电子单元
510a.....510η中的至少一个,以向被测SOC器件540提供测试激励信号,并从其接收测试
响应信号。每一个协议专用电路50 .....505η具有协议生成电路370,该协议生成电路与
协议生成电路370的剩余电路配合,起到如图1、2或4Α和4Β中所述的作用。协议专用电路50^ι、. . . ,505η的每一个协议生成电路370与其指定DRAM 520a、. . .、520η通信,以提供测试命令并记录被测SOC器件540的运行的测试结果。在具有大量管脚的协议中,协议专用电路50 .....505η协调对命令的解码并生
成同步模拟预期响应的测试响应信号。为了同步模拟预期响应,协议专用电路50 .....
505η通过同步通信接口 525在协议专用电路505a、. . .、505n中可以配合的电路之间通信。同步通信接口 525包含来自事务拒绝或树(OR tree)的事务拒绝信号和来自“保持或树” (HOLD OR tree)的“保持” (Hold)信号。这种配合可以影响操作的延迟,因此通信被结
构化以将协议专用电路50 .....505η之间交叉通信的影响最小化。例如,协议生成电路
505a.....505η的其中一个状态机(图5中未示出)可以充当主机,并从相邻协议专用电
路50 .....505η直接接收测试激励信号以解码。主协议引擎控制器(未示出)然后分配
正确的指令,以构造协议指定的测试响应信号的结构和时序,同时使操作的延迟的影响最小化。延迟同步信号线(ISL) 535被主协议引擎控制器(未示出)用来在所有多个协议专用电路50 .....505η之间分配特定协议动作的启动。 自动测试设备系统500可具有多个主振荡器530a和530b,用于生成由协议专用电
路50 .....505η确定的不同时序。对于自动测试设备系统500的确定性操作尤其如此。
在自动测试设备系统500的非确定性操作中,可以将主振荡器530a和530b用于涉及确定性操作的测试的那些部分,同时可以将来自被测SOC器件MO的外部时序在非确定性操作中用于协议引擎控制器(未示出)。 现在参见图6,该图为描述符合以太网管理数据输入/输出(MDIO)协议规范的信号和时序的示例性示意图。MDIO为两管脚串行总线协议,其中总线上的一个工作站充当主工作站,总线上的所有其他工作站充当从工作站。主工作站为总线生成时钟信号,并且由主工作站传输的操作为READ操作和WRITE操作。每个协议包的开端开始于前同步码652,然后是帧头653和操作码6M的开端。固定数据650包括每一个这种码,并且被定义为存储在协议定义表中。即使存在单独的操作码,也只有两个码定义操作码。把它们放入协议定义表使得可以存储在测试模式中。物理地址657和目的地址658通过执行测试模式来生成,以生成协议,进而生成存储在独特驱动数据FIFO内的独特驱动和预期数据655。周转时间位 660取决于正在执行的事务的类型,但其组合非常少,并且被视为固定数据且存储在协议定义表内。地址/数据位665为要存储在独特驱动数据FIFO内的独特驱动数据。空闲时间位时间670实际提供将被设为将管脚电路的驱动器强制推到高阻抗状态的命令。图7为由操作动作发展的、用来定义指定器件协议的示例性操作码的表。 Opcode (操作码)在这里为“简写”命令语言,其为自动测试设备内的协议生成电路指定供每个管脚执行协议的时序和信号。本实例的操作码为用于生成协议的时序和数据结构的事务定义。示例性操作码定义还包括引擎更新操作码(Engine Update Opcode),用来使自动测试设备的主机为协议生成电路提供直接指令。流控制操作码(Flow control Opcode)在若干组成组协议生成电路、测试模式发生器或自动测试设备的主机之间提供通信,以控制测试模式流。协议生成电路利用以下事实对于任何给定的协议,只有一小组动作(例如,如图3中所示)可以在每个位时间发生。由这些动作,可以为协议的每个管脚组合一系列动作,从而生成协议。该串动作包含在协议定义表内。动作被结构化为定义事务类型(read、 write, read until等)的一组操作码。协议定义表内的表号通知状态机多个事务定义中的哪一个适用于该特定事务。预期响应数据为从自动测试设备角度的读事务中包含的独特数据。驱动激励数据为用于写事务和读事务的独特数据(在读事务内可以有独特驱动数据例如地址)。协议执行状态机为根据操作码和表号选择的事务检索协议定义;操作码在动作表内被解码成具体的使能位;这些使能位在通道逻辑内与驱动激励和预期响应数据组合,逐位生成正确的事务。当事务完成时,协议执行状态机前进到下一操作码、表号和数据。 宽度大于一位的操作码通过在多个位上复制协议生成电路来生成。参见图1和2,在一个实施例中,协议控制定义表310或360提供协议定义存储装置。协议控制存储表370提供用于从协议定义存储表360中选择和检索协议定义的装置。 协议特有数据存储表315是用于递送测试数据以测试DUT的装置。在一些实施例中,动作表 350可以被设置为使用所选协议定义作为提供用于测试DUT的测试数据的装置的一部分。如本领域的技术人员所理解,可以制造包含重构指令码的程序存储装置,该重构指令码可以在连接到诸如现场可编程门阵列的可重构集成电路的计算装置上执行。重构指令码在执行时将可重构集成电路的内部电路构造为形成如图1、2或4A和4B所述的协议生成电路。可重构集成电路在构造后执行过程,以生成符合用于在自动测试设备和被测器件之间通信的指定器件协议的信号和时序。应当理解,如本文所用,术语“表”可包括包含已存储和可检索信息的存储装置或具有这种功能的其他装置。虽然已经结合其实施例部分地示出和描述了本发明,但本领域的技术人员将会理解,在不脱离本发明精神和范围的前提下,可以在形式和细节上进行各种修改。
权利要求
1.一种用于自动测试设备的协议引擎电路,所述协议引擎电路包括协议生成电路,所述协议生成电路被构造成检索协议特有数据,并用与被测器件相对应的所选协议定义格式化所述协议特有数据,以测试所述被测器件。
2.根据权利要求1所述的协议引擎电路,还包括协议定义表,其中所述协议生成电路被构造成从所述协议定义表检索所述所选协议定义。
3.根据权利要求2所述的协议引擎电路,其中所述协议生成电路包括协议控制电路。
4.根据权利要求3所述的协议引擎电路,其中所述协议控制电路包括协议控制存储表,所述协议控制存储表与主机设备通信以接收和存储操作码和协议定义位置号。
5.根据权利要求4所述的协议引擎电路,其中所述协议生成电路还包括动作表,所述动作表连接用于接收来自所述协议定义表的固定协议数据和来自所述协议控制存储表的操作码,以生成包括用于测试所述被测器件的动作信号数据的固定协议数据。
6.根据权利要求4所述的协议引擎电路,其中所述协议生成电路包括协议特有数据存储表。
7.根据权利要求6所述的协议引擎电路,其中所述协议特有数据存储表包括a)驱动数据表,所述驱动数据表包含用于所述被测器件的协议特有数据;以及b)预期数据表,所述预期数据表包含预期作为来自所述被测器件的响应的所述协议特有数据。
8.根据权利要求6所述的协议引擎电路,其中所述协议生成电路包括事务状态机,所述事务状态机与所述协议控制存储表通信,以提供用来基于所述操作码定义指定器件协议的操作动作的一系列时序循环。
9.根据权利要求8所述的协议引擎电路,其中所述协议控制存储表包括a)操作码存储装置,所述操作码存储装置用于存储所述操作码并将所述操作码顺序传送到所述事务状态机;以及b)事务位置存储装置,所述事务位置存储装置用于存储所述协议定义位置号并将所述协议定义位置号传送到所述事务状态机。
10.根据权利要求9所述的协议引擎电路,其中所述协议生成电路还包括动作表,所述动作表连接用于接收来自所述协议定义表的固定协议数据和来自所述协议控制存储表的操作码,以生成包括用于测试所述被测器件的动作信号数据的固定协议数据。
11.根据权利要求10所述的协议引擎电路,其中所述操作码包括用于在所述协议引擎电路与所述主机设备之间管理命令和控制的指令。
12.根据权利要求11所述的协议引擎电路,还包括流控制电路,并且其中所述操作码包括用于管理多个协议引擎电路之间的流控制的指令。
13.根据权利要求2所述的协议引擎电路,其中所述协议定义表包括动作信号数据。
14.根据权利要求1所述的协议引擎电路,还包括协议定义表,所述协议定义表包括用于所述被测器件的多个协议定义。
15.根据权利要求1所述的协议引擎电路,还包括协议定义表,所述协议定义表包括用于多个被测器件的多个协议定义。
16.一种用于自动测试设备的协议引擎电路,所述协议引擎电路包括a)协议控制存储表,所述协议控制存储表与主机设备通信,以用于接收和存储包括操作码和协议定义位置号的测试模式;b)事务状态机,所述事务状态机与所述协议控制存储表通信,以提供用来基于所述操作码定义指定器件协议的操作动作的一系列时序循环;c)协议定义表,所述协议定义表响应所述事务状态机,以便为与所述协议定义位置号相对应的被测器件提供固定协议数据;d)动作表,所述动作表响应所述事务状态机,以提供与所述操作码相对应的动作数据;以及e)协议特有数据存储表,所述协议特有数据存储表与所述主机设备通信,以用于接收和存储包括预期数据和驱动数据的测试模式,所述协议特有数据存储表响应所述一系列时序循环,以向管脚电路提供与所述固定协议数据和动作数据相对应的协议特有数据,以测试所述被测器件。
17.一种用于生成符合用于在自动测试设备和被测器件之间通信的指定器件协议的信号和时序的方法,所述方法包括a)接收用于所述被测器件的固定协议数据;b)接收协议特有数据;以及c)将所述固定协议数据和所述协议特有数据组合成用于测试所述被测器件的所述指定器件协议。
18.根据权利要求17所述的方法,还包括a)接收协议定义位置号;b)从由所述协议定义位置号指示的表位置为所述指定器件协议选择所述固定协议数据;以及c)使用所述指定器件协议内的所述固定协议数据和所述协议特有数据测试所述被测器件。
19.根据权利要求18所述的方法,还包括接收操作码并从与所述操作码相对应的表位置检索动作数据,以及将所述动作数据与用于测试被测器件的所述指定器件协议内的所述固定协议数据和所述协议特有数据一起提供。
20.根据权利要求18所述的方法,其中为所述指定器件协议检索所述固定协议数据的操作包括检索动作数据,并且其中测试包括使用所述动作数据。
21.根据权利要求18所述的方法,还包括顺序存储和提供协议定义位置号、操作码和协议特有数据。
22.根据权利要求18所述的方法,其中接收所述协议定义位置号和检索所述固定协议数据的操作包括使用状态机。
23.根据权利要求22所述的方法,其中接收所述协议定义位置号的操作包括从协议控制存储表接收所述协议定义位置号,并且还包括使用所述状态机从协议定义表选择所述固定协议定义。
24.根据权利要求23所述的方法,还包括使用所述状态机从所述协议控制存储表接收操作码并从与来自所述协议控制存储表的所述操作码相对应的动作表选择动作数据。
25.根据权利要求M所述的方法,其中测试包括提供来自协议特有数据存储表的所述协议特有数据。
26.根据权利要求25所述的方法,还包括向管脚电路逻辑电路提供所述固定协议数据、所述动作数据和所述协议特有数据。
27.根据权利要求沈所述的方法,还包括将测试模式命令加载到所述协议控制存储表和所述协议特有数据存储表内。
28.根据权利要求18所述的方法,其中接收所述协议定义位置的操作包括从主机设备接收所述协议定义位置号。
29.一种通用协议引擎,包括a)协议定义存储装置,所述协议定义存储装置包括用于DUT的协议定义;b)用于从所述协议定义存储装置选择和检索协议定义的装置;以及c)用来使用用于测试DUT的所述协议定义提供测试数据的装置。
30.根据权利要求四所述的通用协议引擎,其中所述协议定义存储装置包括协议定义表,所述协议定义表包括对DUT进行功能测试所需的所述协议定义。
31.根据权利要求30所述的通用协议引擎,其中所述用来提供测试数据的装置包括数据存储表和动作表。
32.根据权利要求四所述的通用协议引擎,其中用于从成组已存储协议定义选择和检索所述协议定义的所述装置包括协议控制存储表和协议定义表,并且其中用来使用所选协议提供测试数据的装置包括数据存储表和选择器。
全文摘要
在一个实施例中,本发明提供了一种用于自动测试设备的协议引擎电路,所述协议引擎电路包括协议生成电路,所述协议生成电路被构造成检索协议特有数据,并用与被测器件相对应的所选协议定义格式化所述协议特有数据以测试所述被测器件。所述协议生成电路可以被构造成能从协议定义表检索所述所选协议定义。
文档编号G01R19/00GK102341717SQ201080010873
公开日2012年2月1日 申请日期2010年3月12日 优先权日2009年3月13日
发明者乔治·康纳 申请人:泰拉丁公司