CN110502374A - 识别自动测试时设备故障的根本原因的流量捕获调试工具 - Google Patents

识别自动测试时设备故障的根本原因的流量捕获调试工具 Download PDF

Info

Publication number
CN110502374A
CN110502374A CN201910223342.2A CN201910223342A CN110502374A CN 110502374 A CN110502374 A CN 110502374A CN 201910223342 A CN201910223342 A CN 201910223342A CN 110502374 A CN110502374 A CN 110502374A
Authority
CN
China
Prior art keywords
dut
test
module
programmable logic
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201910223342.2A
Other languages
English (en)
Inventor
林登·许
本·罗杰尔-法维拉
迈克尔·琼斯
杜安·尚普
梅-梅·苏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Duke Of Philosophy
Advantest Corp
Original Assignee
Duke Of Philosophy
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Duke Of Philosophy filed Critical Duke Of Philosophy
Publication of CN110502374A publication Critical patent/CN110502374A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/273Tester hardware, i.e. output processing circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/2832Specific tests of electronic circuits not provided for elsewhere
    • G01R31/2834Automated test systems [ATE]; using microprocessors or computers
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/31704Design for test; Design verification
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/31705Debugging aspects, e.g. using test circuits for debugging, using dedicated debugging test circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2257Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using expert systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2273Test methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/24Marginal checking or other specified testing methods not covered by G06F11/26, e.g. race tests
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/25Testing of logic operation, e.g. by logic analysers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/261Functional testing by simulating additional hardware, e.g. fault simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/263Generation of test inputs, e.g. test vectors, patterns or sequences ; with adaptation of the tested hardware for testability with external testers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/366Software debugging using diagnostics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0631Management of faults, events, alarms or notifications using root cause analysis; using analysis of correlation between notifications, alarms or events based on decision criteria, e.g. hierarchy, tree or time analysis
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/04Processing captured monitoring data, e.g. for logfile generation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/50Testing arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0028Serial attached SCSI [SAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0032Serial ATA [SATA]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/12Network monitoring probes

Abstract

公开了一种用于使用自动测试设备诊断故障的根本原因的方法。所述方法包括使用多个捕获模块来监视与在自动测试设备中测试被测设备(DUT)相关联的数据流量,其中所述多个捕获模块被编程到可编程逻辑设备上,其中可编程逻辑设备由系统控制器控制并且可用于生成命令和数据以测试DUT,其中所述多个捕获模块可用于选择性地捕获要监视的数据流量,并且其中数据流量包括DUT和可编程逻辑设备之间的流量流。所述方法还包括将与监视相关联的结果与所述多个捕获模块中的每一个相关联地保存在相应的存储器中。此外,所述方法包括根据请求将结果传输到在系统控制器上执行的应用程序。

Description

识别自动测试时设备故障的根本原因的流量捕获调试工具
技术领域
本公开总体地涉及电子设备测试系统领域,并且更具体地涉及用于测 试被测设备(DUT)的电子设备测试装置的领域。
背景技术
自动测试设备(ATE)可以是对半导体设备或电子组件进行测试的任 何测试组件。ATE组件可用于执行自动化测试,以快速进行测量并生成可 随后进行分析的测试结果。ATE组件可以是从耦合到仪表的计算机系统到 复杂的自动测试组件的任何组件,自动测试组件可以包括定制的专用计算 机控制系统和能够自动测试电子部件和/或半导体晶片测试(诸如片上系统 (SOC,system-on-chip)测试或集成电路测试)的许多不同的测试器器。ATE系统既减少了为了确保设备按设计运行而在测试设备上所花费的时间 量,又用作诊断工具,以在给定设备到达消费者之前确定该设备内是否存 在故障组件。
传统ATE的缺点之一是它们通常仅报告通过/未通过结果。换句话说, ATE仅报告一个或多个被测设备(DUT)通过还是未通过正在执行的相应 测试。ATE未被配置为识别在资格测试期间发生的设备故障的根本原因。 通常,ATE不会内置有使工程师能够轻松诊断DUT的问题的任何基于硬 件或软件的工具。
在典型的测试环境中,操作ATE的工程师将需要通过收集数据日志和 对日志进行分析来手动地识别故障原因。这种方法是劳动密集型的,容易 出错且不可扩展。还可能无法产生期望的结果,因为可能没有足够的信息 可供工程师确定要分析哪些数据日志或如何在数据日志中找到设备故障的 根本原因。此外,传统的ATE系统不包含内置于硬件中的任何智能,其将 帮助工程师捕获并自动解释和分析与测试有关的诊断信息。
发明内容
因此,需要一种ATE,该ATE包括基于硬件的流量捕获模块,其收集 和监视在测试器和被测设备(DUT)之间正在交换的数据,以便收集关于 测试器随着时间的状态的有价值信息,以及测试器与DUT之间正在交换的 数据。此外,需要对设备故障前兆进行监视的基于硬件的逻辑模块,该设 备故障前兆提供关于可能出故障的设备的信息。最后,需要使工程师可以 更容易地解释所收集的数据的基于硬件和软件的工具。
在一个实施例中,提出了一种用于使用自动测试设备诊断故障的原因 的方法。所述方法包括使用多个捕获模块来监视与在自动测试设备中测试 被测设备(DUT)相关联的数据流量,其中所述多个捕获模块是可编程的 并且集成在可编程逻辑设备中,其中可编程逻辑设备由系统控制器控制并 且可用于生成命令和数据以测试DUT,其中所述多个捕获模块可用于选择 性地捕获要监视的数据流量,并且其中数据流量包括DUT与可编程逻辑设备之间的流量流。所述方法还包括将与监视相关联的结果与所述多个捕获 模块中的每一个相关联地保存在相应的存储器中。此外,所述方法包括根 据请求将结果传输到在系统控制器上执行的应用程序。
在另一个实施例中,公开了一种用于使用自动测试设备诊断故障的根 本原因的装置。所述装置包括计算机系统,该计算机系统包括系统控制器, 其中系统控制器通信地耦合到包括测试器处理器和可编程逻辑设备的站点 模块板,其中系统控制器可用于向测试器处理器和可编程逻辑设备传输指 令以对被测设备(DUT)进行测试。所述装置还包括可编程逻辑设备,该 可编程逻辑设备通信地耦合到DUT并且可用于生成用于对DUT进行测试的命令和数据,并且其中可编程逻辑设备包括多个可编程捕获模块,其中 所述多个可编程捕获模块在可编程逻辑设备上被编程并可用于:(a)监 视与测试DUT相关联的数据流量;(b)选择性地捕获要监视的数据流量, 其中数据流量包括DUT和可编程逻辑设备之间的流量流;(c)将与监视 数据流量相关联的结果与所述多个捕获模块中的每一个相关联地保存在相 应的存储器中;以及(d)根据请求将结果传输到在系统控制器上执行的 测试器应用程序。
在不同的实施例中,公开了一种测试器。所述测试器包括系统控制器, 用于控制用于测试多个DUT的测试程序。此外,系统控制器包括多个模块, 其可用于与所述多个DUT接口连接并测试所述多个DUT,所述多个模块 耦合到系统控制器,其中每个模块包括站点模块板,并且其中每个站点模 块板包括:(a)测试器处理器,其被耦合成与系统控制器通信,以根据 测试程序从其接收指令和数据;以及(b)多个可编程逻辑设备,其被耦 合到测试器处理器,每个可编程逻辑设备可用于生成用于应用于相应DUT 的测试数据,还可用于接收和比较由相应DUT生成的测试数据,并且进一 步还可操作为被编程为以与相应DUT兼容的通信协议与相应DUT通信, 并且其中每个可编程逻辑设备包括多个捕获模块,其中所述多个捕获模块 在可编程逻辑设备上被编程并且可用于:(i)监视与测试相应DUT相关 联的数据流量;(ii)选择性地捕获要监视的数据流量,其中数据流量包 括相应DUT和系统控制器之间的流量流;(iii)将与监视数据流量相关联 的结果与所述多个捕获模块中的每一个相关联地保存在相应的存储器中; 以及(iv)根据请求将结果传输到在系统控制器上执行的测试器应用程序。
以下详细描述连同附图将提供对本发明的本质和优点的更好理解。
附图说明
在附图中,通过示例而非限制的方式示出了本发明的实施例,并且附 图中相似的附图标记是指相似的元件。
图1是根据本发明的一个实施例的可以在其上实现本发明的自动测试 系统的实施例的计算机系统。
图2示出了典型的测试环境,其中DUT被放置在受控环境室中。
图3是示出测试器片及其与系统控制器和DUT的互连的示例性实施例 的详细示意性框图。
图4是示出根据本发明实施例的本发明的流量捕获模块收集与自动测 试有关的诊断信息的方式的高级框图。
图5是示出根据本发明的实施例对本发明的流量捕获模块进行编程的 方式的框图。
图6示出了根据本发明一个实施例的用于在自动设备测试过程中捕获 关键信息以便确定设备故障的根本原因的示例性计算机实现过程的流程图。
图7示出了根据本发明一个实施例的用于在自动设备测试期间使用捕 获模块来监视数据流量和诊断问题的示例性计算机实现过程的流程图。
在附图中,具有相同名称的元件具有相同或相似的功能。
具体实施方式
现在将详细地参考本公开的各种实施例,其示例在附图中被示出。虽 然结合这些实施例进行了描述,但是应该理解,它们并不旨在将本公开限 制于这些实施例。相反,本公开旨在覆盖可以被包括在由所附权利要求限 定的本公开的精神和范围内的替代、修改和等同物。此外,在本公开的以 下详细描述中,阐述了许多具体细节以便提供对本公开的透彻理解。然而, 应该理解,可以在没有这些具体细节的情况下实践本公开。在其他情况下,没有详细描述公知的方法、过程、组件和电路,以免不必要地模糊本公开 的各方面。
以下详细描述的一些部分是根据对计算机存储器内的数据位的操作的 过程、逻辑块、处理和其他符号表示来呈现的。这些描述和表示是数据处 理领域的技术人员用来最有效地将他们的工作的实质传达给本领域其他技 术人员的手段。在本申请中,过程、逻辑块、处理等被认为是导致期望结 果的自相一致的步骤或指令序列。这些步骤是利用物理量的物理操纵的步 骤。通常,尽管不是必须的,但这些量采用能够在计算机系统中存储、传输、组合、比较和以其他方式操纵的电信号或磁信号的形式。有时,主要 出于通用的原因,将这些信号称为事务、位、值、元素、符号、字符、样 本、像素等已经证明是方便的。
然而,应该记住,所有这些和类似术语都与适当的物理量相关联,并 且仅仅是应用于这些量的方便标签。除非在以下讨论中明确指出,否则应 当理解,在整个本公开中,利用诸如“配置”、“提供”、“执行”、 “传输”、“获得”、“实现”、“编程”、“分配”、“关联”、“设置”、“访问”、“检索”、“保存”、“捕获”、“生成”、“完成”、 “监视”、“控制”、“确定,“识别”、“缓存”、“维护”、“比 较”、“去除”、“读取”、“写入”等术语的讨论,指的是计算机系统 或类似的电子计算设备或处理器(例如,图1的系统110)的动作和处理 (例如,图7的流程图700)。计算机系统或类似的电子计算设备操纵和 变换计算机系统存储器、寄存器或其他这样的信息存储设备、发送或显示 设备内表示为物理(电子)量的数据。
可以在驻留在由一个或多个计算机或其他设备执行的某种形式的计算 机可读存储介质(例如程序模块)上的计算机可执行指令的一般情形下, 讨论本文描述的实施例。通过示例而非限制的方式,计算机可读存储介质 可包括非暂时性计算机可读存储介质和通信介质;非暂时性计算机可读介 质包括除暂时性传播信号之外的所有计算机可读介质。通常,程序模块包 括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数 据结构等。在各种实施例中,可以根据需要组合或分发程序模块的功能。
计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程 序模块或其他数据之类的信息的任何方法或技术实现的易失性和非易失性 的可移动和不可移动介质。计算机存储介质包括,但不限于,随机存取存 储器(RAM)、只读存储器(ROM)、电可擦除可编程ROM (EEPROM)、闪存或其他存储技术、光盘ROM(CD-ROM)、数字通 用光盘(DVD)或其他光存储器、磁带盒、磁带、磁盘存储设备或其他磁 存储设备或者可用于存储所需信息并可访问以检索该信息的任何其他介质。
通信介质可以体现计算机可执行指令、数据结构和程序模块,并且包 括任何信息传递介质。通过示例而非限制的方式,通信介质包括诸如有线 网络或直接有线连接的有线介质,以及诸如声学、射频(RF)、红外和其 他无线介质的无线介质。任何上述的组合也可以被包括在计算机可读介质 的范围内。
图1是能够支持基于硬件和软件的流量捕获和调试工具的测试器控制 系统110的示例的框图,该流量捕获和调试工具帮助识别设备故障的根本 原因。例如,系统110可以连接到基于FPGA的测试器模块,其中FPGA 包括捕获逻辑,以收集关于测试器的状态的信息以及在相应的FPGA和连 接的DUT之间正在交换的信息。测试器控制系统110广泛地表示能够执行 计算机可读指令的任何单处理器或多处理器计算设备或系统。控制系统 110的示例包括,但不限于工作站、膝上型计算机、客户端终端、服务器、 分布式计算系统、手持设备或任何其他计算系统或设备。在其最基本的配 置中,控制系统110可以包括至少一个处理器114和系统存储器116。
处理器114通常表示能够处理数据或解释和执行指令的任何类型或形 式的处理单元。在某些实施例中,处理器114可以从软件应用或模块接收 指令。这些指令可以使处理器114执行这里描述和/或示出的一个或多个示 例实施例的功能。
系统存储器116通常表示能够存储数据和/或其他计算机可读指令的任 何类型或形式的易失性或非易失性存储设备或介质。系统存储器116的示 例包括,但不限于RAM、ROM、闪存或任何其他合适的存储器设备。虽 然不是必需的,但是在某些实施例中,控制系统110可以包括易失性存储 器单元(例如,系统存储器116)和非易失性存储设备(例如,主存储设 备132)。
除了处理器114和系统存储器116之外,测试器控制系统110还可以 包括一个或多个组件或元件。例如,在图2的实施例中,控制系统110包 括存储器控制器118、输入/输出(I/O)控制器120和通信接口122,它们 中的每一个可以经由通信基础设施112互连。通信基础设施112通常表示 能够促进计算设备的一个或多个组件之间的通信的任何类型或形式的基础 设施。通信基础设施112的示例包括,但不限于,通信总线(例如工业标 准架构(ISA),外围设备组件互连(PCI),PCI Express(PCIe)或类似 总线)和网络。
存储器控制器118通常表示能够处理存储器或数据或控制控制系统110 的一个或多个组件之间的通信的任何类型或形式的设备。例如,存储器控 制器118可以经由通信基础设施112控制处理器114、系统存储器116和 I/O控制器120之间的通信。
I/O控制器120通常表示能够协调和/或控制计算设备的输入和输出功 能的任何类型或形式的模块。例如,I/O控制器120可以控制或促进控制系 统110的一个或多个元件之间的数据传输,所述元件例如为处理器114、 系统存储器116、通信接口122、显示适配器126、输入接口130和存储接 口134。
通信接口122广泛地表示能够促进示例控制系统110与一个或多个附 加设备之间的通信的任何类型或形式的通信设备或适配器。例如,通信接 口122可以促进控制系统110与包括附加控制系统的私有或公共网络之间 的通信。通信接口122的示例包括,但不限于,有线网络接口(例如网络 接口卡)、无线网络接口(例如无线网络接口卡)、调制解调器和任何其 他合适的接口。在一个实施例中,通信接口122经由到诸如因特网的网络 的直接链路提供到远程服务器的直接连接。通信接口122还可以通过任何 其他合适的连接间接地提供这种连接。
通信接口122还可以表示主机适配器,其被配置为促进经由外部总线 或通信信道的控制系统110与一个或多个附加网络或存储设备之间的通信。 主机适配器的示例包括,但不限于,小型计算机系统接口(SCSI)主机适 配器、通用串行总线(USB)主机适配器、IEEE(电气和电子工程师协会) 1394主机适配器、串行高级技术附件(SATA)和外部SATA(eSATA)主机适配器、高级技术附件(ATA)和并行ATA(PATA)主机适配器、 光纤通道接口适配器、以太网适配器等。通讯接口122还可以允许控制系 统110参与分布式或远程计算。例如,通信接口122可以从远程设备接收 指令或者将指令发送到远程设备以供执行。
如图1所示,控制系统110还可以包括经由显示适配器126耦合到通 信基础设施112的至少一个显示设备124。显示设备124通常表示能够可视 地显示由显示适配器126转发的信息的任何类型或形式的设备。类似地, 显示适配器126通常表示被配置为转发图形、文本和其他数据以在显示设 备124上显示的任何类型或形式的设备。
如图1所示,控制系统110还可以包括经由输入接口130耦合到通信 基础设施112的至少一个输入设备128。输入设备128通常表示能够提供 (计算机或人工生成的)输入到控制系统110的任何类型或形式的输入设 备。输入设备128的示例包括,但不限于,键盘、指向设备、语音识别设 备或任何其他输入设备。
如图1所示,控制系统110还可以包括主存储设备132和经由存储接 口134耦合到通信基础设施112的备份存储设备133。存储设备132和133 通常表示能够存储数据和/或其他计算机可读指令的任何类型或形式的存储 设备或介质。例如,存储设备132和133可以是磁盘驱动器(例如,所谓 的硬盘驱动器)、软盘驱动器、磁带驱动器、光盘驱动器、闪存驱动器等。 存储接口134通常表示用于在存储设备132和133与控制系统110的其他 组件之间传输数据的任何类型或形式的接口或设备。
在一个示例中,数据库140可以存储在主存储设备132中。数据库140 可以表示单个数据库或计算设备的部分,或者它可以表示多个数据库或计 算设备。例如,数据库140可以表示(存储在)控制系统110的一部分和/ 或图2中的示例网络架构200(下面)的部分。可选地,数据库140可以表 示(存储在)能够被计算设备(例如控制系统110和/或网络架构200的部 分)访问的一个或多个物理上分离的设备。
继续参照图1,存储设备132和133可以被配置为从可移动存储单元读 取和/或写入,该可移动存储单元被配置为存储计算机软件、数据或其他计 算机可读信息。合适的可移动存储单元的示例包括,但不限于,软盘、磁 带、光盘、闪存设备等。存储设备132和133还可以包括其他类似的结构 或设备,用于允许将计算机软件、数据或其他计算机可读指令加载到控制 系统110中。例如,存储设备132和133可以被配置为读取和写入软件、 数据或其他计算机可读信息。存储设备132和133也可以是控制系统110 的一部分,或者可以是通过其他接口系统访问的分离的设备。
许多其他设备或子系统可以连接到控制系统110。相反,图1中示出 的所有组件和设备不需要存在以实践本文描述的实施例。上面提及到的设 备和子系统也可以以不同于图1中所示的方式互连。控制系统110还可以 采用任何数量的软件、固件和/或硬件配置。例如,这里公开的示例实施例 可以被编码为计算机可读介质上的计算机程序(也称为计算机软件、软件 应用、计算机可读指令或计算机控制逻辑)。
可以将包含计算机程序的计算机可读介质加载到控制系统110中。然 后可以将存储在计算机可读介质上的计算机程序的全部或一部分存储在系 统存储器116和/或存储设备132和133的各个部分中。当由处理器114执 行时,加载到控制系统110中的计算机程序可以使处理器114执行和/或是 用于执行本文描述和/或示出的示例实施例的功能的手段。附加地或可选地, 这里描述和/或示出的示例实施例可以在固件和/或硬件中实现。
图2示出了典型的测试环境,其中DUT可以放置在受控环境室10或 “烘箱”中。DUT连接到测试头20的测试器片。许多DUT可以连接到单 个测试器片40。测试器片包含测试电路,该测试电路根据测试计划对DUT 进行测试。每个测试头20可以有许多测试器片。当插入到烘箱10中时, DUT被放置在托盘30中。在典型的环境室中,多个测试器片在锁定步骤 中操作,对多个DUT进行相同的测试计划。此外,测试头通常由单个控制 器计算机系统(例如测试器控制系统110)控制,该计算机系统直接连接 到测试头,并且以这种方式控制测试头20的所有片。控制器计算机通常通 过单个用户对DUT执行单个测试计划来操作。如下面将进一步描述的,每 个测试器片包括FPGA,本发明的流量捕获和调试模块可以被编程到FPGA上。例如,FPGA可以使用逻辑和缓冲器进行编程,这些逻辑和缓冲器可 以收集与FPGA的状态有关的信息以及FPGA与任何连接的DUT之间正在 交换的数据。
图3是示出测试器片及其与系统控制器和DUT的互连的示例性实施例 的详细示意性框图。
参照图3,每个测试器片包括站点模块。在一个实施例中,站点模块 可以机械地配置到测试器片340A340N上,其中每个测试器片包括至少一 个站点模块。在某些典型实施例中,每个测试器片可包括两个站点模块和 两个设备电源板。在其他实施例中,测试器片可包括更多或更少的站点模 块和/或电源板。例如,图3的测试器片340A包括站点模块310A和310B 以及设备电源板332A和332B。然而,对于可以配置到测试器片上的设备 电源板或站点模块的数量没有限制。测试器片340通过网络交换机302连 接到系统控制器301。网络交换机302可以用32位宽的总线连接到每个站 点模块。
在一个实施例中,系统控制器301可以是计算机系统,例如,为ATE 的用户提供用户界面以加载测试程序并运行连接到ATE 300的DUT的测试 的个人计算机(PC)。AdvantestStylus操作系统是通常在设备测试期间使 用的测试软件的一个示例。它为用户提供了图形用户界面,可以从该图形 用户界面中配置和控制测试。它还可以包括控制测试流程、控制测试程序 的状态、确定正在运行哪个测试程序以及日志测试结果和与测试流程相关 的其他数据的功能。在一个实施例中,系统控制器可以连接到多达512个 DUT并控制多达512个DUT。
在一个实施例中,系统控制器301可以通过网络交换机(例如以太网 交换机)连接到站点模块板310A至310B。在其他实施例中,网络交换机 可以与不同的协议兼容,所述协议例如为光纤通道、802.11或ATM。
可以从站点模块310A至310B中的一个控制设备电源板332A至332B 中的每一个。在测试器处理器304上运行的软件可以被配置为将设备电源 分配给特定站点模块。在一个实施例中,站点模块310A至310B和设备电 源332A至332B被配置为使用高速串行协议彼此通信,所述协议例如为外 围组件互连快速(PCIe)、串行AT附件(SATA)或串行连接SCSI(SAS)。
在一个实施例中,每个站点模块配置有两个FPGA,如图3所示。图3 的实施例中的FPGA 316和318中的每一个由测试器处理器304控制。测试 器处理器304可以使用如图3中的系统总线330和332所示的诸如PCIe的 8通道高速串行协议接口与每个FPGA通信。在其他实施例中,测试器处 理器304还可以使用诸如串行AT附件(SATA)或串行连接SCSI(SAS) 的不同的高速串行协议与FPGA通信。
FPGA 316和318分别连接到存储器模块308和304。存储器模块可以 与FPGA设备和测试器处理器304二者耦合并且可以由其控制。
FPGA 316和318可以分别通过总线352和354连接到负载板380上的 DUT 372A至372M。负载板380是物理线束,其允许在现场模块端处的通 用高速连接,其与用于与在线线路352和354上的DUT通信的协议无关。 然而,在DUT端,负载板需要设计为具有特定于DUT使用的协议的连接 器。
应该注意,图3仅示出了测试器片的示例性实施例。此外,注意,本 发明的实施例不仅限于图3中所示的测试器片的类型。本发明的实施例可 以包括许多不同类型的测试器片和基元。然而,每个测试器片将包括 FPGA,无论测试器片的配置如何,本发明的流量捕获和调试模块都可以 被编程到FPGA上。
在本发明的一个实施例中,DUT 372A至372M被装载在负载板380上, 负载板380放置在热腔室390内以进行测试。DUT 372A至372M和负载板 380从设备电源332A和332B获得电力。
可以连接到每个FPGA的DUT的数量取决于FPGA中的收发器的数量 和每个DUT所需的I/O通道的数量。在一个实施例中,FPGA 316和318各 自可以包括32个高速收发器,并且总线352和354各自可以是32位宽, 然而,根据应用可以实现更多或更少。例如,如果每个DUT需要8个I/O 通道,则在这样的系统中,只有4个DUT可以连接到每个FPGA。
测试器处理器304通过总线312连接到系统控制器301并可以与系统 控制器301通信。在一个实施例中,测试器处理器304通过分离的专用总 线(例如,分别为330和332)与FPGA设备316和318中的每一个通信。 在一个实施例中,测试器处理器304可以在将最小的处理功能分配给 FPGA设备的情况下通过FPGA透明地控制DUT 372A至372N的测试。在 该实施例中,总线330和332的数据流量容量可以快速耗尽,因为测试器 处理器生成的所有命令和数据需要通过总线传送到FPGA设备。在其他实 施例中,测试器处理器304可以通过将控制DUT的测试的功能分配给 FPGA设备来共享处理负载。在这些实施例中,减少了通过总线330和332 的流量,因为FPGA设备可以生成其自己的命令和数据。
在一个实施例中,每个FPGA设备(例如,316和318)连接到其自己 的专用存储器块,例如308和304。尤其是,这些存储器块可以用于存储 写出到DUT的测试图案数据等。在一个实施例中,每个FPGA设备可以包 括两个或更多个实例化FPGA测试器块(未示出),其具有用于执行包括 通信协议引擎和硬件加速器的实现的功能的功能模块。
此外,系统中的DUT 372A至372M中的每一个可以在“每个DUT的 测试器”配置中连接到专用的实例化FPGA测试器块,其中每个DUT获得 其自己的实例化的测试器块。这允许为每个DUT单独执行测试。这种配置 中的硬件资源被设计为以最小的硬件共享支持各个DUT的方式。这种配置 还允许并行测试许多DUT,其中每个DUT可以连接到FPGA内其自己的专用FPGA测试器模块,并运行不同的测试程序。
图3中描绘的本发明实施例的架构具有若干优点。首先,它消除了系 统中对协议专用总线适配器插座和卡的需要,因为通信协议模块可以直接 被编程在FPGA设备内的实例化的FPGA测试器模块上。实例化的测试器 块可以被配置为在DUT支持的任何协议中与DUT通信。因此,如果需要 测试具有不同协议支持的DUT,则可以将它们连接到同一系统,并且, FPGA可以通过支持相关协议进行重新编程。结果,可以轻松地配置一个 ATE主体来测试支持许多不同类型协议的DUT。
在一个实施例中,可以通过从系统控制器301上的高速缓存器的简单 比特流下载直接下载新协议并将其安装在FPGA上,而无需任何一种硬件 交互。FPGA通常包括可配置的接口核(或IP核),其可编程以提供用于 DUT的一个或多个基于协议的接口的功能,并且可编程为与DUT接口连 接。例如,ATE设备中的FPGA 316和318将包括接口核心,该接口核心可以配置有PCIe协议以最初测试PCIe设备,并且随后经由软件下载重新 配置以测试SATA设备。此外,如果发布了新协议,FPGA可以经由比特 流下载轻松地配置该协议,而无需物理切换系统中的所有硬件总线适配卡。 最后,如果需要实现非标准协议,则FPGA仍然可以配置为实现这样的协 议。
在另一个实施例中,FPGA可以被配置为运行一个以上的通信协议, 其中这些协议也可以从系统控制器301下载并通过软件配置。换句话说, 每个FPGA实现自定义固件和软件映像,以在单个芯片中实现一个或多个 基于PC的测试器的功能。所需的电信令和基于协议的信令由FPGA中的 片上IP核提供。如上所述,每个FPGA都可通过预验证接口或IP核进行编程。这确保了根据给定接口标准的合规性和兼容性。FPGA的可编程性 质用于从SSD、HDD和其他基于协议的存储设备优化存储测试应用的灵活 性、成本、并行性和可升级性。
例如,FPGA 316内的实例化FPGA测试器块可以被配置为运行PCIe 协议,而同一FPGA 316内的不同实例化FPGA测试器块可以被配置为运 行SATA协议。这允许测试器硬件同时测试支持不同协议的DUT。现在可 以连接FPGA 316以测试支持PCIe和SATA协议二者的DUT。可选地,它 可以被连接来测试两个不同的DUT,一个DUT支持PCIe协议,另一个 DUT支持SATA协议,其中FPGA内的每个实例化功能模块被配置有协议, 以测试它连接的相应DUT。
在一个实施例中,FPGA中的接口或IP核可以从第三方供应商获得, 但是可能需要一些定制以与这里描述的实施例兼容。在一个实施例中,接 口核提供两种功能:a)将存储命令包装到标准协议中以便在物理信道上 传输;2)是电信号发生器和接收器。
图4是示出根据本发明实施例的本发明的流量捕获模块收集与自动测 试有关的诊断信息的方式的高级框图。
如图4所示,每个测试器420(或测试器片)包括与至少一个DUT 410 通信的至少一个FPGA 430。如图3所示,通常每个FPGA将与多个DUT 通信。
本发明的实施例将流量捕获逻辑模块添加到FPGA,例如450A, 450B,......450N,451A......451M和452A,以便随时间收集诸如测试器 420的状态的信息(包括FPGA 430)和在测试器420和DUT之间随时间 交换的数据。流量捕获逻辑模块是完全可编程的,并且可以被编程执行一 系列功能。使用流量捕获模块允许测试器有利地收集与测试器固件本身内的缓冲器和模块内的设备故障有关的信息。应当注意,本发明不限于 FPGA,本发明的捕获模块也可以被编程到其他类型的可编程逻辑设备上。
目前,正在测试行业中开发调试工具以更容易地解释所收集的数据。 这些工具大多是基于软件的,旨在以上下文相关的方式组织收集的数据, 从而使专家能够更容易地识别问题。然而,这些方法仍然是相当费力的, 因为它们需要工程师手动审查测试日志和文件。
本发明的实施例有利地在硬件的逻辑模块内(例如在FPGA内部)添 加分析能力。例如,可以对捕获逻辑模块和缓冲器进行编程以监视设备故 障前兆。故障前兆提供关于可能会出故障的DUT的指示。以前,工程师必 须查看多个日志以确定与即将发生的设备故障有关的信息。本发明的实施 例有利地建立了识别和警告工程师关于固件内潜在设备故障的能力。流量 捕获模块实时分析调试数据。此外,流量捕获模块识别可疑情况并在进行 日志记录以供人检查或在稍后的时间分析软件时标记它们。
在一个实施例中,本发明的流量捕获和调试工具包括FPGA逻辑(固 件)和基于软件的工具的集合,其有利地一起工作以帮助识别设备故障的 原因,例如根本原因。编程到FPGA上的逻辑模块监视和捕获:(1)在测 试器和相应DUT之间交换的流量或流量的代理;(2)用于配置测试器或相 应DUT的配置命令;以及(3)与测试器的状态。此外,在测试过程中,偶 尔会在FPGA内发生错误或不可预见的行为,这些可由捕获模块捕获。此 外,捕获模块内的逻辑还会检查故障前兆,并在对它们进行日志记录时标 记它们。软件440中包括的基于软件的自动化调试工具可以从捕获模块 (例如,450A至450N、451A至451M等)提取捕获结果,组织该数据并 显示根本原因。
在典型的测试配置中,FPGA 430将预定图案写入DUT 410,从DUT 410读回图案,并比较两者以便确定DUT是否正常工作。如参照图3所提 到的,每个FPGA可以被配置为执行不同的协议,例如PCIe协议,并且还 可以被配置为生成命令和数据以测试一个或多个连接的DUT。
本发明的捕获模块允许捕获和监视FPGA和DUT之间的数据和命令的 交换以检查像差。FPGA 430可以同时与一个或多个DUT通信。因此,每 个FPGA可以包括在第一级的多个捕获模块,例如450A至450N,每个捕 获模块被配置为与离散的DUT(例如DUT 496A、DUT496B......DUT 496N)通信。从DUT采集到的信息可以通过一级或多级向上游流动,直 到它被传送到软件440。
例如,图4中示出的FPGA包括三级。数据在第一级中从DUT传送到 捕获模块,例如450A至450N。随后,数据流过包括示例性捕获模块451A 至451M的第二级。从那里,数据在传送到软件之前通过包括捕获模块 452A的最后一级。应该注意,本发明的实施例不限于特定数量的级或特定 数量的捕获模块。FPGA可以包括一级或多级,每级包括一个或多个捕获模块,这取决于要执行的测试和FPGA的复杂性。然而,通常,使用多级 捕获模块和缓冲器将从DUT捕获的数据上游传送到软件440。
FPGA内的每级中的捕获模块通常具有与其他级中的捕获模块不同的 配置。例如,第一级中的捕获模块,例如图4中所示的FPGA的450A至 450N,将被配置为直接与DUT通信并从DUT收集数据。第二级中的捕获 模块(例如,451A至451M)被配置为具有与开关类似的特性,因为它们 将从DUT采集到的数据路由到软件块440。最后,FPGA 495的第三级中 的捕获模块被配置将从DUT采集到的信息传送到软件模块440,并且进一 步将数据和命令从软件440下游传送到DUT。在整个FPGA中传播捕获模 块可以轻松地捕获和分析FPGA的任何错误或无法预料的行为。
在一个实施例中,捕获单元可用于在DUT 496A至496N与软件440之 间传送信息。例如,软件440可通过捕获模块链向DUT下游发送命令和数 据。此外,DUT可以通过捕获模块链向上游发送响应到软件440。捕获模 块是可编程的,并具有必要的逻辑,以识别和标记在通信的任何阶段期间 可能发生的任何错误情况。例如,在向上游传输信息时,捕获模块451M 可能回遇到错误情况。捕获模块451M可以包含逻辑电路,以确定错误情 况是否与从其接收到信息的DUT有关,或者错误是否与编程到捕获模块 451M中的开关有关。
可选地,捕获模块451M可以被编程为分析从连接的DUT(例如, 469N)接收到的数据,并识别设备故障前兆。换句话说,捕获模块451M 可以被编程为使用从DUT采集到的数据来指示DUT将立即出故障。然后, 捕获模块451M可以标记错误情况或潜在错误情况,并将与错误有关的信 息中继到软件440,从而可以警告用户。
在一个实施例中,捕获模块还可以包含逻辑电路并且被编程为分析捕 获的信息并识别错误的根本原因。例如,捕获模块可以用规则检查器编程, 该规则检查器在收集到的信息上运行。换句话说,规则检查器可以解析所 捕获的所有故障相关信息,以通过对所捕获的信息运行一组规则来识别故 障的一些可能原因。
在一个实施例中,可以存在编程到FPGA中的若干不同类型的捕获逻 辑模块,其中每个捕获模块被编程为用于不同目的。
例如,如果DUT是PCIe设备,则捕获模块中的一个或多个可以包括 事务层分组(TLP)捕获模块。使用PCIe协议在主机和客户端之间(或在 测试器和被测设备之间)交换事务层分组,并且FPGA中的捕获模块可以 例如捕获这些TLP以进一步检查并收集故障相关信息。
另一种类型的捕获模块可以被编程为链路训练状态状态机(LTSSM) 捕获模块。LTSSM捕获模块包括对LTSSM事件进行日志记录的FPGA逻 辑。LTSSM定义PCIe协议中物理和链路层状态通过的状态机,以便从一 个端点到另一个端点进行通信。可以使用FPGA内的捕获模块逻辑捕获和 分析这些状态。例如,捕获模块能够识别和捕获FPGA的IP核在执行PCIe协议时正在转变的不同状态。如果在转变到预期状态时有故障,或者,如 果在处理特定状态时发生故障,则捕获模块将捕获该信息并将其发送到软 件440以进行进一步分析。可选地,在一个实施例中,捕获模块可以包含 另外的逻辑电路以例如使用规则检查器来分析错误情况并确定错误的根本 原因。然后可以将诊断信息传输到软件440以中继给用户。
另一种类型的捕获模块可包括NAK捕获模块。NAK是否定确认或未 确认的缩写。它是数字通信中用来确保以最少的错误接收数据的信号。一 种类型的捕获模块包括对NAK事件进行日志记录的逻辑。
在一个实施例中,捕获模块可以包括活动捕获模块。活动捕获模块包 括对活动检测事件进行日志记录的FPGA逻辑。如果在输入或输出线路上 检测到任何活动,则活动检测捕获模块将对此类事件进行日志记录以呈现 给用户。
在一个实施例中,捕获模块可包括均衡捕获模块。均衡捕获模块对均 衡事件进行日志记录。通过调整发射器和接收器上的信号,可以对PCIe协 议执行均衡,从而可以保持所传送的数据的完整性。捕获模块将监视PCIe IP核以确定均衡正在进行的方式。换句话说,捕获模块将监视IP核以确定 正在请求和使用哪些设置以实现均衡以及它们是否正在被接受。如果存在 可疑活动或设置了任何非法值,则可以通过软件模块440捕获并标记活动 并向用户报告。
在一个实施例中,捕获模块可以包括完成捕获模块。完成捕获模块被 设计成对读取请求和读取完成之间的延迟进行日志记录。
在一个实施例中,捕获模块可以包括增强型高级错误报告(AER)捕 获模块。该捕获模块包括报告高级错误报告(AER)事件的发生次数的逻 辑。高级错误报告是PCIe协议的特征,因此,这将是一种在运行PCIe协 议的FPGA中可编程的捕获模块。
在一个实施例中,捕获模块可以包括寄存器访问捕获模块。寄存器访 问捕获模块包括FPGA逻辑,其对控制和状态寄存器的读/写访问进行日志 记录。
在一个实施例中,捕获模块可以包括流量过滤捕获模块。流量过滤捕 获模块选择地减少TLP捕获模块将收集到的流量的量。因为FPGA内部的 缓冲空间是有限的,所以流量过滤捕获模块可以与TLP捕获模块结合使用, 以过滤或选择性地选择用户最感兴趣的分组的子集用于诊断目的。
在一个实施例中,捕获模块可以包括流量触发捕获模块。流量触发捕 获模块包括FPGA逻辑,其基于检测到的事件来停止捕获。换句话说,如 果用户想要在检测到特定情况后停止捕获流量,则可以将流量触发捕获模 块编程到FPGA上。
在一个实施例中,捕获模块可以包括增强数据日志记录捕获模块。该 捕获模块包括FPGA逻辑,其比较预期数据和接收数据,并通过将结果发 送到软件块440来将结果显示给用户。
在另一实施例中,捕获模块可包括LTSSM规则检查模块。PCIe设备 中的这种类型的捕获模块使用FPGA逻辑进行编程,以确定LTSSM状态 转变是否正常。在使用软件而不是硬件模块进行规则检查可能更有效的情 况下,LTSSM规则检查能力也可以被编程到后处理软件中(例如,在软件 440内)。
图5是示出根据本发明的实施例的编程本发明的流量捕获模块的方式 的框图。应该注意,图5中所示的捕获块550是示例性的。可以根据其功 能不同地编程或配置不同类型的捕获模块。
典型的捕获模块(例如,捕获模块550)可包括一个或多个输入。例 如,监视器1555A到监视器N 555N中的每个输入是与捕获块被编程为监 视的数据流量、状态(state)或状况(status)有关的离散输入。
捕获块的获取逻辑520选择并捕获关于流量、状态或状况的信息,并 以期望的顺序(基于编程)将它们格式化,使得其可以保存在捕获存储器 530中。获取逻辑块520还可以选择性地捕获期望的数据。换句话说,获 取逻辑块可以被编程为仅采集通过监视信号555A至555N输入的数据子集。 某些配置位可以被编程到获取块逻辑中,该逻辑指定应该捕获多少输入数 据,例如,在某些情况下,可能仅需要捕获输入分组的报头。
在一个实施例中,捕获模块可以仅捕获某些类型的数据,例如具有特 定位配置的数据分组。获取逻辑520可以被编程为选择性地仅捕获期望的 数据分组而忽略其余的数据分组。在一个实施例中,可以将预滤波模块 (未示出)添加到捕获块之前,捕获块在获取逻辑块520之前并且选择性 地过滤输入数据。
结果,获取逻辑块520可以访问所收集的数据的格式。此外,获取逻 辑块520还可以执行状态跟踪,例如,用于LTSSM事件。如上所述, LTSSM定义了PCIe协议中的物理层和链路层状态经过的状态机,以便从 一个端点到另一个端点进行通信。
由获取逻辑块520获取的信息可以被传送到捕获存储器530,其中存 储在存储器530中的每个条目570伴随有地址571。如前所述,获取逻辑块 520可以访问被监视信息的格式,并且可以使用它来创建要存储在存储器 530中的条目。通常,获取逻辑520将确定存储器530内的地址571以保存 信息。在一个实施例中,在每个时钟周期期间捕获离散信息,并且为每个 时钟周期创建进入存储器530的条目。例如,TLP捕获块可以在每个时钟 周期捕获TLP分组,并在存储器模块中为每个TLP分组创建新条目。另一 方面,由于每个TLP分组可以包括256个比特,因此每个TLP分组可以存 储在捕获存储器530中的多个条目上。
在不同实施例中,某些类型的数据可能需要多个时钟周期来捕获。因 此,当已经收集了关于特定事件的所有数据时,在存储器530中为这种类 型的数据创建条目。
在一个实施例中,获取逻辑块520可以包括简单状态机,该简单状态 机格式化来自监视器的数据以生成要存储在存储器530中的条目和地址。 状态机进一步递增用于下一条目的的地址。取决于捕获模块的类型,状态 机还可以具有附加状态。例如,流量触发捕获块可以具有与事件的触发相 关的附加状态。
在一个实施例中,存储器530可以包括循环缓冲器,以存储从获取逻 辑模块520接收到的条目和伴随地址。条目数量及其频率取决于捕获块的 类型。例如,类似于TLP捕获的捕获模块可能需要为每个事务层分组在存 储器530中存储条目。另一方面,正在监视状态的捕获块可以仅在检测到 状态改变时创建条目。通常,当时间戳保存在捕获存储器530中时,时间 戳与每个条目相关联。这允许容易地对数据进行分类。在将来自FPGA中 的各种捕获模块的数据传送到软件505之后,这是特别方便的。可以使用 时间戳对时间戳数据进行分类,这使得工程师可以容易地按照时间顺序查 看结果并诊断任何问题。除了数据和时间戳之外,在某些情况下,元数据 还可以与包含关于事件的附加细节的条目一起存储。例如,如果捕获模块 存储关于状态改变事件的信息,则关于状态改变事件的类型的元数据可以与每个条目一起保存在存储器模块530中。
在一个实施例中,每个捕获模块使用传输接口540将收集的信息传送 到测试器软件505.通常,每个捕获模块将包括传输接口块以将捕获的数据 传送到软件505。传输接口块540可以分别使用地址线572和数据线573访 问捕获存储器530。状况信号574向传输接口提供关于信息存储在存储器 530中的位置的信息以及关于数据格式的任何进一步信息。控制信号575允 许传输接口块540控制到软件505的数据流并设置关于控制到软件505的 数据流的任何其他偏好。
在一个实施例中,在捕获模块仅捕获状态信息而不是捕获存储器530 的情况下,缓冲器通常仅包括用于存储状态信息的寄存器。
在一个实施例中,捕获模块可以被编程为确定事件之间的时间滞后。 例如,捕获模块可以是完成捕获模块,其对读取请求和读取请求的完成之 间的等待时间进行日志记录。因此,(例如,使用监视器1 555A)被监视 的信号之一将是读取请求,而捕获模块(例如,使用监视器N 555N)正在 监视的另一信号将是响应于完成读取请求而发送的完成分组。捕获模块可 以使用时间戳来监视读取请求和完成之间的时间延迟,或者确定是否根本 没有完成。捕获模块的获取逻辑520通常需要用来自规范(例如,PCIe规 范)的关于典型读取请求时间以及需要标记读取请求失败的最长时间的信 息编程。捕获模块可以在捕获存储器530中记录关于读取请求时间的信息 或任何故障信息,并通过软件505将其报告给用户。
在一个实施例中,用户可以控制应该将多少和哪种类型的捕获模块编 程到特定FPGA中。因为FPGA可以被容易地重新编程,所以用户不一定 限于固定配置。例如,用户可以基于在FPGA上模拟的协议类型或基于正 在使用FPGA的设计类型来选择不同数量和类型的捕获模块。当设计人员 正在构建要编程到FPGA中的位文件时,可以在命令行界面指定要添加到 任何特定FPGA的捕获模块的数量和类型。换句话说,在编程FPGA时, 某些构建选项允许用户轻松地选择要包含在设计中的捕获模块的数量和类 型。
图6示出了根据本发明一个实施例的用于在自动设备测试过程中捕获 关键信息以便确定设备故障的根本原因的示例性计算机实现过程的流程图。
在步骤601,针对特定测试启用捕获。这通常涉及设置流量捕获,其 包括设置各种配置以启用和开始测试。例如,用户必须对FPGA进行编程, 并确定要包含在FPGA中的捕获模块的类型和数量。
在步骤602,开始测试。在步骤603,如果检测到故障,则在步骤605 停止测试。随后,在步骤606停止捕获。如果未检测到故障,则允许测试 运行直到其在步骤604结束。随后,在步骤606停止捕获。
此后,使用测试器软件在步骤607检索并保存捕获的结果。例如,捕 获的结果可以被保存并下载到软件505中。
一旦采集到数据,在步骤608,就可以手动或自动地分析数据,例如, 使用规则检查器。
在步骤609,生成与测试有关的日志。在步骤612,如果没有更多数据 要处理并且测试完成,则测试在步骤620结束。然而,如果有更多数据要 处理,则在步骤610对数据运行后处理分析。在一个实施例中,后处理分 析通常涉及分析日志以确定设备故障的根本原因,如在2018年3月8日提 交的标题为“A LOG POST PROCESSOR FOR IDENTIFYING ROOTCAUSES OF DEVICE FAILURE DURING AUTOMATED TESTING” (“用于识别自动测试期间的设备故障的根本原因的日志后处理器”)的 相关美国专利申请第15/916,126号中所解释的。然而,也可能对数据进行 其他类型的后处理。例如,与具有时间戳的附加元数据一起存储在捕获模 块存储器530中的数据可以不是用户容易辨别的格式。步骤609的后处理 可以将从捕获模块检索的信息转换为用户可以容易地理解和使用的格式。
在步骤611,生成关于测试的报告。例如,报告可以识别设备故障的 根本原因或者警告用户关于可能即将发生故障的任何设备。
图7示出了根据本发明一个实施例的用于在自动设备测试期间使用捕 获模块来监视数据流量和诊断问题的示例性计算机实现过程的流程图。
在步骤702,将多个捕获模块编程到可编程逻辑设备(例如FPGA)中 以监视与FPGA上的测试相关联的数据流量。FPGA,例如FPGA 495连接 到多个DUT,例如,待测试的DUTS496A至496N。此外,FPGA还连接 到系统控制器,例如系统控制器301,其执行用于协调测试的测试器软件 应用程序。如上所述,用户可以在下载用于编程FPGA的位文件之前选择 捕获模块的类型和数量以编程到逻辑器件中。
在步骤704,使用捕获模块监视FPGA中的数据流量。捕获模块包括 获取逻辑电路520,其确定要捕获和监视的相关数据。
在步骤706,将与监视相关联的结果保存在多个捕获模块中的每个捕 获模块内的相应存储器中。
最后,在步骤708,将结果传输到在系统控制器上执行的测试器软件 应用程序。
出于解释的目的,已经参考特定实施例描述了前述描述。然而,上面 的示范性讨论并非旨在穷举或将本发明限制于所公开的精确形式。鉴于上 述教导,许多修改和变化都是可能的。选择和描述实施例是为了最好地解 释本发明的原理及其实际应用,从而使得本领域的其他技术人员能够最好 地利用本发明和具有可能适合于预期的特定用途的各种修改的各种实施例。

Claims (20)

1.一种用于使用自动测试设备(ATE)诊断故障的原因的方法,所述方法包括:
使用多个捕获模块监视与在所述自动测试设备中测试被测设备(DUT)相关联的数据流量,其中所述多个捕获模块集成在可编程逻辑设备中,其中所述可编程逻辑设备由系统控制器控制并且可用于生成命令和数据以测试所述DUT,其中所述多个捕获模块是可编程的并且可用于选择性地捕获要监视的数据流量,并且其中所述数据流量包括所述DUT与所述可编程逻辑设备之间的流量流;
将与所述监视相关联的结果与所述多个捕获模块中的每个相关联地保存在相应的存储器中;以及
根据请求将所述结果传输到在所述系统控制器上执行的应用程序。
2.根据权利要求1所述的方法,其中,可编程逻辑设备是场可编程门阵列(FPGA)。
3.根据权利要求1所述的方法,其中,所述数据流量还包括所述DUT与所述系统控制器之间的流量流,并且还包括用于配置所述自动测试设备的配置命令。
4.根据权利要求1所述的方法,其中,所述数据流量还包括在所述可编程逻辑设备上进行编程的状态机转变的状态,以便配置和执行要在所述DUT上运行的测试。
5.根据权利要求1所述的方法,其中,所述可编程逻辑设备被配置为模拟要在测试所述DUT中执行的协议。
6.根据权利要求5所述的方法,其中,所述协议选自由以下项构成的组:外围组件互连快速(PCIe)、串行AT附件(SATA)或串行连接SCSI(SAS)。
7.根据权利要求1所述的方法,其中,使用一级或多级将所述多个捕获模块编程到所述可编程逻辑设备上,其中所述多个捕获模块中的每级执行离散功能。
8.根据权利要求7所述的方法,其中,所述多个捕获模块中的第一级与所述DUT通信并直接从所述DUT捕获测试相关信息。
9.根据权利要求8所述的方法,其中,所述多个捕获模块的至少一级可用于从一个或多个捕获模块捕获与所述监视相关联的结果并进行传输。
10.根据权利要求8所述的方法,其中,所述多个捕获模块的至少一级可用于将测试相关流量从第一级路由到后续级。
11.根据权利要求1所述的方法,其中,所述监视还包括:
分析所述DUT与所述系统控制器之间的流量流;以及
标记与所述DUT相关的错误情况。
12.根据权利要求11所述的方法,其中,所述标记还包括标记与所述DUT相关联的即将发生的故障情况。
13.一种用于使用自动测试设备(ATE)诊断故障的原因的装置,所述装置包括:
计算机系统,其包括系统控制器,其中所述系统控制器可通信地耦合到包括测试器处理器和可编程逻辑设备的站点模块板,其中所述系统控制器可用于向所述测试器处理器和所述可编程逻辑设备传输指令以对被测设备(DUT)进行测试;以及
所述可编程逻辑设备,其可通信地耦合到所述DUT并且可用于生成用于对所述DUT进行测试的命令和数据,并且其中所述可编程逻辑设备包括多个可编程捕获模块,所述多个可编程捕获模块被编程在所述可编程逻辑设备上并且可用于
监视与测试所述DUT相关联的数据流量;
选择性地捕获要监视的数据流量,其中所述数据流量包括所述DU与所述可编程逻辑设备之间的流量流;
将与所述监视数据流量相关联的结果与所述多个捕获模块中的每个相关联地保存在相应的存储器中;以及
根据请求将所述结果传输到在所述系统控制器上执行的测试器应用程序。
14.根据权利要求13所述的装置,其中,所述可编程逻辑设备是场可编程门阵列(FPGA)。
15.根据权利要求13所述的装置,其中,所述数据流量还包括所述DUT与所述系统控制器之间的流量流,并且还包括用于配置所述自动测试设备的配置命令。
16.根据权利要求13所述的装置,其中,所述数据流量还包括在所述可编程逻辑设备上编程的状态机转变的状态,以便配置和执行要在所述DUT上运行的测试。
17.根据权利要求13所述的装置,其中,所述可编程逻辑设备被配置为模拟在测试所述DUT中要执行的协议。
18.根据权利要求17所述的装置,其中,所述协议选自由以下项构成的组:外围组件互连快速(PCIe)、串行AT附件(SATA)或串行连接SCSI(SAS)。
19.一种测试器,包括:
系统控制器,用于控制用于测试多个DUT的测试程序;
多个模块,可用于与所述多个DUT接口连接并测试所述多个DUT,所述多个模块耦合到系统控制器,其中每个模块包括站点模块板,并且其中每个站点模块板包括:
测试器处理器,其被耦合成与所述系统控制器通信,以根据所述测试程序从所述系统控制器接收指令和数据;以及
多个可编程逻辑设备,其被耦合到所述测试器处理器,每个可编程逻辑设备可用于生成用于应用于相应DUT的测试数据,并还可用于接收和比较由相应DUT生成的测试数据,并且又还可用于被编程以与相应DUT兼容的通信协议与相应DUT通信,并且其中所述可编程逻辑设备中的每个包括多个捕获模块,其中所述多个捕获模块被编程在所述可编程逻辑设备上并且可用于:
监视与测试相应DUT相关联的数据流量;
选择性地捕获要监视的数据流量,其中所述数据流量包括相应DUT与所述系统控制器之间的流量流;
将与所述监视所述数据流量相关联的结果与所述多个捕获模块中的每个相关联地保存在相应的存储器中;以及
根据请求将所述结果传输到在所述系统控制器上执行的测试器应用程序。
20.根据权利要求19所述的测试器,其中,所述可编程逻辑设备是场可编程门阵列(FPGA)。
CN201910223342.2A 2018-05-16 2019-03-22 识别自动测试时设备故障的根本原因的流量捕获调试工具 Pending CN110502374A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/981,634 US10929260B2 (en) 2018-05-16 2018-05-16 Traffic capture and debugging tools for identifying root causes of device failure during automated testing
US15/981,634 2018-05-16

Publications (1)

Publication Number Publication Date
CN110502374A true CN110502374A (zh) 2019-11-26

Family

ID=68532577

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910223342.2A Pending CN110502374A (zh) 2018-05-16 2019-03-22 识别自动测试时设备故障的根本原因的流量捕获调试工具

Country Status (3)

Country Link
US (1) US10929260B2 (zh)
KR (1) KR20190131445A (zh)
CN (1) CN110502374A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113484710A (zh) * 2020-03-05 2021-10-08 爱德万测试公司 用于流量捕捉和调试工具的图形用户界面
TWI776422B (zh) * 2020-03-31 2022-09-01 日商愛德萬測試股份有限公司 多名稱空間測試系統及方法
TWI810523B (zh) * 2020-03-12 2023-08-01 日商愛德萬測試股份有限公司 自動測試裝備系統及設備、以及用於測試受測裝置的方法
US11899550B2 (en) 2020-03-31 2024-02-13 Advantest Corporation Enhanced auxiliary memory mapped interface test systems and methods

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210173010A1 (en) * 2018-05-16 2021-06-10 Advantest Corporation Diagnostic tool for traffic capture with known signature database
US20210111967A1 (en) * 2018-05-16 2021-04-15 Advantest Corporation Graphical user interface for traffic capture and debugging tool
US10948540B2 (en) * 2018-07-27 2021-03-16 Advantest Corporation Integrated protocol analyzer configured within automated test equipment (ate) hardware
US10794955B2 (en) * 2018-10-16 2020-10-06 Optimal Plus Ltd Methods and systems for testing a tester
IT201900019992A1 (it) * 2019-10-29 2021-04-29 Nplust S R L Sistema per la caratterizzazione di memorie non volatili
US11828787B2 (en) * 2020-02-28 2023-11-28 Advantest Corporation Eye diagram capture test during production
EP3882771A1 (en) * 2020-03-16 2021-09-22 Leica Microsystems CMS GmbH Control system and method for operating a system
CN111538539B (zh) * 2020-04-23 2022-07-22 苏州浪潮智能科技有限公司 存储系统启动方法、装置及计算机可读存储介质
US11836059B1 (en) 2020-12-14 2023-12-05 Sanblaze Technology, Inc. System and method for testing non-volatile memory express storage devices
US11349727B1 (en) * 2021-05-11 2022-05-31 At&T Intellectual Property I, L.P. Service level agreement management service
CN113778053A (zh) * 2021-09-08 2021-12-10 摩拜(北京)信息技术有限公司 一种电机控制器的测试装置和系统
US11921598B2 (en) * 2021-10-13 2024-03-05 Teradyne, Inc. Predicting which tests will produce failing results for a set of devices under test based on patterns of an initial set of devices under test
US11669381B1 (en) 2021-11-15 2023-06-06 International Business Machines Corporation Real-time error debugging

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140237292A1 (en) * 2013-02-21 2014-08-21 Advantest Corporation Gui implementations on central controller computer system for supporting protocol independent device testing
US20140236524A1 (en) * 2013-02-21 2014-08-21 Advantest Corporation Tester with acceleration on memory and acceleration for automatic pattern generation within a fpga block
CN104345231A (zh) * 2013-07-24 2015-02-11 爱德万测试公司 测试片与托盘间的高速测试机通信接口
US20150135026A1 (en) * 2013-11-11 2015-05-14 Advantest Corporation Seamless fail analysis with memory efficient storage of fail lists

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6173440B1 (en) 1998-05-27 2001-01-09 Mcdonnell Douglas Corporation Method and apparatus for debugging, verifying and validating computer software
US6449741B1 (en) 1998-10-30 2002-09-10 Ltx Corporation Single platform electronic tester
JP3977373B2 (ja) 2004-12-08 2007-09-19 ザイオソフト株式会社 通信端末
US7571151B1 (en) 2005-12-15 2009-08-04 Gneiss Software, Inc. Data analysis tool for analyzing data stored in multiple text files
US20070263649A1 (en) 2006-05-12 2007-11-15 Genti Cuni Network diagnostic systems and methods for capturing network messages
US7596729B2 (en) 2006-06-30 2009-09-29 Micron Technology, Inc. Memory device testing system and method using compressed fail data
US7764695B2 (en) 2006-09-25 2010-07-27 Oyadomari Randy I Arm and rollback in a multi-chassis system
EP2297742B1 (en) 2008-05-16 2013-07-24 Fusion-io, Inc. Apparatus, system, and method for detecting and replacing failed data storage
US8166340B2 (en) * 2008-06-24 2012-04-24 Litepoint Corporation Apparatus and method for testing a communication circuit
US7885277B2 (en) 2008-12-09 2011-02-08 At&T Intellectual Property I, L.P. Methods and apparatus to analyze autonomous system peering policies
US9219956B2 (en) 2008-12-23 2015-12-22 Keyssa, Inc. Contactless audio adapter, and methods
CN101924603B (zh) 2009-06-09 2014-08-20 华为技术有限公司 数据传输速率的自适应调整方法、装置及系统
WO2013061680A1 (ja) 2011-10-26 2013-05-02 インターナショナル・ビジネス・マシーンズ・コーポレーション 情報処理装置、データ・アクセス方法およびプログラム
US9495267B2 (en) 2012-07-13 2016-11-15 Spirent Communications, Inc. Method and device for quasi-proxy assisted manual device testing
US9164821B2 (en) 2012-12-14 2015-10-20 International Business Machines Corporation Performing diagnostic tracing of an executing application to identify suspicious pointer values
KR101537759B1 (ko) 2013-09-30 2015-07-22 국방과학연구소 지상무인체계 시뮬레이터 및 그 운용방법
US9958502B2 (en) 2014-08-12 2018-05-01 Globalfoundries Singapore Pte. Ltd. Defect isolation methods and systems
WO2016145405A1 (en) * 2015-03-11 2016-09-15 Protocol Insight, Llc Intelligent packet analyzer circuits, systems, and methods
US10587491B1 (en) * 2016-12-27 2020-03-10 Amazon Technologies, Inc. Testing computer networks in real time
US10379158B2 (en) 2017-02-09 2019-08-13 Advantest Corporation Real-time capture of traffic upon failure for protocol debug
EP3518441B1 (en) 2018-01-25 2023-03-22 Rohde & Schwarz GmbH & Co. KG Test troubleshooting system and method
US10955461B2 (en) 2018-05-16 2021-03-23 Advantest Corporation Smart and efficient protocol logic analyzer configured within automated test equipment (ATE) hardware

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140237292A1 (en) * 2013-02-21 2014-08-21 Advantest Corporation Gui implementations on central controller computer system for supporting protocol independent device testing
US20140236524A1 (en) * 2013-02-21 2014-08-21 Advantest Corporation Tester with acceleration on memory and acceleration for automatic pattern generation within a fpga block
CN104345231A (zh) * 2013-07-24 2015-02-11 爱德万测试公司 测试片与托盘间的高速测试机通信接口
US20150135026A1 (en) * 2013-11-11 2015-05-14 Advantest Corporation Seamless fail analysis with memory efficient storage of fail lists

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113484710A (zh) * 2020-03-05 2021-10-08 爱德万测试公司 用于流量捕捉和调试工具的图形用户界面
TWI810523B (zh) * 2020-03-12 2023-08-01 日商愛德萬測試股份有限公司 自動測試裝備系統及設備、以及用於測試受測裝置的方法
TWI776422B (zh) * 2020-03-31 2022-09-01 日商愛德萬測試股份有限公司 多名稱空間測試系統及方法
US11650893B2 (en) 2020-03-31 2023-05-16 Advantest Corporation Multiple name space test systems and methods
US11899550B2 (en) 2020-03-31 2024-02-13 Advantest Corporation Enhanced auxiliary memory mapped interface test systems and methods

Also Published As

Publication number Publication date
KR20190131445A (ko) 2019-11-26
US10929260B2 (en) 2021-02-23
US20190354453A1 (en) 2019-11-21

Similar Documents

Publication Publication Date Title
CN110502374A (zh) 识别自动测试时设备故障的根本原因的流量捕获调试工具
US10955461B2 (en) Smart and efficient protocol logic analyzer configured within automated test equipment (ATE) hardware
US8997034B2 (en) Emulation-based functional qualification
US10948540B2 (en) Integrated protocol analyzer configured within automated test equipment (ate) hardware
US20210173010A1 (en) Diagnostic tool for traffic capture with known signature database
US20140236527A1 (en) Cloud based infrastructure for supporting protocol reconfigurations in protocol independent device testing systems
TW201433802A (zh) 在中央控制器電腦系統上用以支援協定獨立元件測試之圖形使用者介面實施態樣技術
US20210111967A1 (en) Graphical user interface for traffic capture and debugging tool
KR20190107183A (ko) 프로토콜 디버그를 위해 실패에 대해 트래픽을 실시간으로 캡처하는 기법
JP6653756B2 (ja) 回路設計をデバッグするための方法および回路
US8996928B2 (en) Devices for indicating a physical layer error
JP2010140487A (ja) データ処理システムにおけるトラフィックフローの統計的表示の使用
US10203371B2 (en) Methods and systems for generating functional test patterns for manufacture test
US20190278645A1 (en) Log post-processor for identifying root causes of device failure during automated testing
CN107710166A (zh) 利用符号快速错误检测的硅后验证和调试
US20200074040A1 (en) Hierarchical expression coverage clustering for design verification
CN112231163A (zh) 一种多功能计算机检测设备及其运行方法
US11200129B2 (en) Performance evaluation for an electronic design under test
US20140282327A1 (en) Cutter in diagnosis (cid) a method to improve the throughput of the yield ramp up process
CN104678292B (zh) 一种复杂可编程逻辑器件cpld测试方法和装置
US20170085460A1 (en) Benchmarking servers based on production data
US10234502B1 (en) Circuit defect diagnosis based on sink cell fault models
US10338137B1 (en) Highly accurate defect identification and prioritization of fault locations
JP6765374B2 (ja) 情報処理装置及び情報処理方法
US11200125B2 (en) Feedback from higher-level verification to improve unit verification effectiveness

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination