CN117093430A - 一种测试方法、装置、计算设备及存储介质 - Google Patents

一种测试方法、装置、计算设备及存储介质 Download PDF

Info

Publication number
CN117093430A
CN117093430A CN202311309489.6A CN202311309489A CN117093430A CN 117093430 A CN117093430 A CN 117093430A CN 202311309489 A CN202311309489 A CN 202311309489A CN 117093430 A CN117093430 A CN 117093430A
Authority
CN
China
Prior art keywords
test
memory
chain
dft
scanning
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.)
Granted
Application number
CN202311309489.6A
Other languages
English (en)
Other versions
CN117093430B (zh
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.)
Phytium Technology Co Ltd
Original Assignee
Phytium Technology Co Ltd
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 Phytium Technology Co Ltd filed Critical Phytium Technology Co Ltd
Priority to CN202311309489.6A priority Critical patent/CN117093430B/zh
Publication of CN117093430A publication Critical patent/CN117093430A/zh
Application granted granted Critical
Publication of CN117093430B publication Critical patent/CN117093430B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • 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/2247Verification or detection of system hardware configuration
    • 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
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7839Architectures of general purpose stored program computers comprising a single central processing unit with memory
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本说明书实施例提供了一种测试方法、装置、计算设备及存储介质,该测试方法通过第一配置指令,使得微控制器可以在内存测试模式下,使能所述内存自测试模块对所述存储器进行内存自测试;通过第二配置指令,使得微控制器可以在链扫描模式下,对所述链扫描模块的DFT扫描链进行链扫描测试,实现了复用微控制器在不同模式下进行链扫描和内存自测试的目的,节省了在测试过程中所需的硬件资源,降低了测试成本。

Description

一种测试方法、装置、计算设备及存储介质
技术领域
本说明书涉及计算机应用技术领域,具体地说,涉及计算机应用技术领域下的测试技术,更具体地说,涉及一种测试方法、装置、计算设备及存储介质。
背景技术
在片上系统(Systemon Chip,SoC)等具有运算和存储能力的系统中,系统内硬件的功能是否正常对于系统能否正常运行具有重要意义。因此,目前通常通过对系统的测试来保证硬件的功能正常。但目前,系统的测试方法的成本较高。
发明内容
本说明书实施例提供了一种测试方法、装置、计算设备及存储介质,通过复用微控制器在不同模式下分别对链扫描模块的DFT扫描链进行链扫描测试和使能内存自测试模块对存储器进行内存自测试的方式,实现了在测试过程中节省硬件资源,从而降低测试成本的目的。
为实现上述技术目的,本说明书实施例提供了如下技术方案:
第一方面,本说明书的一个实施方式提供一种测试方法,应用于微控制器,所述微控制器与链扫描模块和内存自测试模块分别建立有通信连接,所述链扫描模块包括设计可测试性DFT扫描链,所述微控制器与所述DFT扫描链建立有通信连接,所述DFT扫描链包括多个依次串接的寄存器;所述内存自测试模块包括多个存储器;所述测试方法包括:
响应于第一配置指令,在内存测试模式下,使能所述内存自测试模块对所述存储器进行内存自测试;
响应于第二配置指令,在链扫描模式下,对所述链扫描模块的DFT扫描链进行链扫描测试。
本说明书实施例提供的测试方法,通过第一配置指令,使得微控制器可以在内存测试模式下,使能所述内存自测试模块对所述存储器进行内存自测试;通过第二配置指令,使得微控制器可以在链扫描模式下,对所述链扫描模块的DFT扫描链进行链扫描测试,实现了复用微控制器在不同模式下进行链扫描和内存自测试的目的,节省了在测试过程中所需的硬件资源,降低了测试成本。
在一个实施方式中,所述内存自测试模块还包括:内存控制器和多个比较器,一个所述存储器和一个所述比较器构成一个测试单元,所述比较器的第一输入端与所述存储器的输出端连接,所述比较器的第二输入端用于接收所述内存控制器输出的测试输入数据;所述存储器的输入端用于接收所述测试输入数据;
所述使能所述内存自测试模块进行内存自测试包括:
向所述内存控制器发送测试指令;所述测试指令,用于指示所述内存控制器控制多个所述测试单元对各自包括的所述存储器进行内存自测试;
所述内存自测试包括:所述比较器根据所述测试输入数据和所述测试输出数据对所述存储器进行测试。
在本实施方式中,单个内存控制器可以与多个测试单元建立通信连接,如此,在内存自测试过程中,微控制器可以通过测试指令指示所述内存控制器控制多个所述测试单元对各自包括的所述存储器进行内存自测试,从而通过单个内存控制器即可实现对多个存储器进行内存自测试的目的,无需为每个存储器都单独布置一个内存控制器,有利于降低资源占用,降低成本,同时也有利于减少对路径延迟的影响。
在一个实施方式中,所述内存自测试具体包括:所述比较器比较所述存储器的测试输入数据和所述存储器的测试输出数据,并根据比较结果输出测试信息;所述测试信息用于指示所述存储器是否正常。
在本实施方式中,通过测试信息可以获悉存储器的状态是否正常,从而实现对存储器的内存自测试的测试结果的获悉。
在一个实施方式中,所述测试信息携带有所述存储器的身份标识;
所述测试信息包括:第一取值和第二取值;所述第一取值用于标识所述存储器的身份标识指示的所述存储器存在异常,所述第二取值用于标识所述存储器的身份标识指示的所述存储器正常。
在本实施方式中,由于所述测试信息携带有所述存储器的身份标识,如此,可以根据所述测试信息的具体取值实现对异常存储器的定位,有利于在发现异常存储器后的问题定位与修复。
在一个实施方式中,所述测试指令,还用于指示所述内存控制器接收多个所述测试单元输出的所述测试信息,在任一所述测试信息包括所述第一取值时,返回错误信息;
所述错误信息用于提示所述多个测试单元中至少存在一个所述测试单元包括异常的存储器;
所述测试方法还包括:
在接收到所述错误信息时,输出所述错误信息或终止启动过程。
在本实施方式中,当与内存控制器连接的任意一个测试单元中存在异常的存储器时,内存控制器都会向微控制器发送一个错误信息,以提醒微控制器有存储器异常,以便微控制器及时输出错误信息或终止系统的启动过程。
在一个实施方式中,所述测试指令,还用于指示所述内存控制器接收多个所述测试单元输出的所述测试信息;
所述测试方法还包括:
向所述内存控制器输出错误定位指令,所述错误定位指令,用于指示所述内存控制器输出异常测试信息,所述异常测试信息的取值为所述第一取值;
接收所述异常测试信息,根据所述异常测试信息定位异常存储器,所述异常存储器为所述异常测试信息携带的所述存储器的身份标识指示的存储器。
在本实施方式中,微控制器可以通过向内存控制器发送错误定位指令的方式指示内存控制器将异常测试信息输出,以使微控制器可以根据该异常测试信息定位异常存储器,实现异常存储器的定位,有利于帮助异常存储器的修复。
在一个实施方式中,所述内存控制器的数量为多个,所述多个测试单元划分为多个子测试单元组,所述多个子测试单元组中的每个子测试单元组包括至少一个测试单元,所述多个内存控制器中的任意一个内存控制器分别与一个所述子测试单元组建立有通信连接,所述子测试单元组中所包含的存储器的物理特性相同。
通过将包含同一中物理特性的存储器的测试单元分到一个子测试单元组中的方式,使得各内存控制器连接的子测试单元组中包含的存储器的物理特性相同,从而保证了与同一个内存控制器建立有通信连接的存储器的物理特性相同。
在一个实施方式中,所述物理特性包括:接口数量。
通过接口数量可以快捷方便地确定存储器的物理特性。
在一个实施方式中,所述测试指令携带有所述存储器对应的属性信息,所述存储器对应的属性信息用于指示所述存储器的物理特性;
所述向所述内存控制器发送测试指令包括:
向多个目标内存控制器发送所述测试指令,所述多个目标内存控制器分别与多个目标子测试单元组分别建立有通信连接,所述多个目标子测试单元组中所包含的存储器的物理特性相同。
在本实施方式中,可以对与多个目标内存控制器连接的目标自测试单元组中的存储器同时进行内存自测试,有利于缩短内存自测试所需的时间,提高测试效率。
在一个实施方式中,所述测试单元还包括选择器,所述选择器包括测试通路;
所述测试指令具体用于:指示所述内存控制器控制所述选择器进入测试模式,在所述测试模式中,所述选择器用于将所述测试通路接收的数据传输给与所述选择器连接的所述存储器;通过所述选择器的测试通路,向所述存储器传输所述测试输入数据;获取所述比较器根据所述测试输入数据和所述测试输出数据对所述存储器进行测试的测试结果。
在本实施方式中,通过选择器是否处于测试模式,从而实现将测试输入数据或正常工作数据传输给存储器的目的,如此可以在占用存储器的一个引脚的情况下,实现不同数据的输入,满足存储器在测试和正常工作时的数据输入需求,有利于降低对存储器的硬件要求。
在一个实施方式中,所述对所述链扫描模块的DFT扫描链进行链扫描测试包括:
向所述DFT扫描链发送所述测试信号,读取各所述寄存器的测试值并返回;所述测试值为所述寄存器在接收所述测试信号后的寄存器值;
接收所述DFT扫描链中各所述寄存器的测试值,根据接收到的所述测试值,确定异常的寄存器。
在本实施方式中,所述测试方法通过微控制器向所述DFT扫描链发送所述测试信号,读取各所述寄存器的测试值并返回,并根据接收到的所述测试值,确定异常的寄存器,实现了在对DFT扫描链进行测试的过程中,确定异常寄存器的目的,有利于异常寄存器的定位与修复。
在一个实施方式中,所述第二配置指令具体用于配置所述微控制器处于链扫描模式,指示所述微控制器按照所述寄存器的顺序信息,依次向所述DFT扫描链中的寄存器发送所述测试信号,并按照所述寄存器的顺序信息,依次读取所述DFT扫描链中的寄存器的测试值;
所述顺序信息包括所述寄存器在所述DFT扫描链中的串接顺序。
可以使得测试信息的每位数据与测试值的每位数据一一对应,有利于简化根据测试值确定异常存储器的过程。
在一个实施方式中,所述接收所述DFT扫描链中各所述寄存器的测试值,根据接收到的所述测试值,确定异常的寄存器包括:
接收测试值向量,所述测试值向量包括按照所述顺序信息排列的所述测试值;
根据所述测试值向量中,异常测试值在所述测试值向量中的位置,确定异常的寄存器。
通过该方法确定异常测试值,进而确定异常的寄存器具有简便、易行的特点。
在一个实施方式中,所述测试值向量包括第一向量和第二向量;所述测试信号包括初始化信号和第一信号;所述初始化信号包括N个第一值数据,所述第一信号包括N个第二值数据;所述第一值数据与所述第二值数据不同;N等于所述DFT扫描链中的寄存器数量;
所述第二配置指令具体用于,配置所述微控制器处于链扫描模式,按照所述寄存器的顺序信息,依次将所述初始化信号中的N个第一值数据写入所述DFT扫描链中的寄存器,并按照所述寄存器的顺序信息,依次读取所述DFT扫描链中的寄存器的测试值,以获得所述第一向量;所述第一向量中,取值为第二值的测试值为所述异常测试值;
按照所述寄存器的顺序信息,依次将所述第一信号中的N个第二值数据写入所述DFT扫描链中的寄存器,并按照所述寄存器的顺序信息,依次读取所述DFT扫描链中的寄存器的测试值,以获得所述第二向量;所述第二向量中,取值为第一值的测试值为所述异常测试值。
在本实施方式中,将初始化信号发送给DFT扫描链的目的是将DFT扫描链中的各寄存器的值进行初始化,以使DFT扫描链中的值为确定的已知值。之后对DFT扫描链进行第一次读取,以获得第一向量,根据第一向量可以进行一次异常测试值的确定。
之后,将第一信号输入给DFT扫描链,并进行第二次读取获得第二向量,根据第二向量可以进行第二次异常测试值的确定,通过两次异常测试值的确定,可以避免单次链扫描可能造成的测试误差。
在一个实施方式中,所述链扫描模块包括多个硬件模块,每个所述硬件模块中包括一个所述DFT扫描链,所述DFT扫描链包括多个DFT扫描子链,多个所述DFT扫描子链依次串接。
在本实施方式中,通过将一个硬件模块中的多个DFT扫描子链串接为一个长链(即DFT扫描链),可以在一次链扫描测试过程中对多个DFT扫描子链进行测试,有利于简化测试方法,同时也可减少对微控制器的资源占用,无需要求微控制器针对每个DFT扫描子链都发送一次第二配置指令。
在一个实施方式中,所述第二配置指令还用于,配置目标DFT扫描链进入测试模式;所述目标DFT扫描链为多个所述DFT扫描链中的一个;
所述第二配置指令指示所述微控制器向所述DFT扫描链发送所述测试信号,读取各所述寄存器的测试值并返回具体用于:指示所述微控制器向所述目标DFT扫描链发送所述测试信号,读取所述目标DFT扫描链中各所述寄存器的测试值并返回。
在本实施方式中,通过将多个DFT扫描链中的一个作为目标DFT扫描链,可以满足在对目标DFT扫描链进行测试时,其他DFT扫描链中的值不变的测试需求,保证了链扫描测试的正常进行。
第二方面,本说明书实施方式提供了一种测试装置,应用于微控制器,所述微控制器与链扫描模块和内存自测试模块分别建立有通信连接,所述链扫描模块包括设计可测试性DFT扫描链,所述微控制器与所述DFT扫描链建立有通信连接,所述DFT扫描链包括多个依次串接的寄存器;所述内存自测试模块包括多个存储器;所述测试装置包括:
第一测试模块,用于响应于第一配置指令,在内存测试模式下,使能所述内存自测试模块进行内存自测试;
第二测试模块,用于响应于第二配置指令,在链扫描模式下,对所述链扫描模块的DFT扫描链进行链扫描测试。
第三方面,本说明书实施方式提供了一种计算设备,包括:微控制器、链扫描模块和内存自测试模块,所述微控制器与链扫描模块和内存自测试模块分别建立有通信连接,所述链扫描模块包括设计可测试性DFT扫描链,所述微控制器与所述DFT扫描链建立有通信连接,所述DFT扫描链包括多个依次串接的寄存器;所述内存自测试模块包括多个存储器;
所述微控制器被配置为:响应于第一配置指令,在内存测试模式下,使能所述内存自测试模块对所述存储器进行内存自测试;
响应于第二配置指令,在链扫描模式下,对所述链扫描模块的DFT扫描链进行链扫描测试。
第四方面,本说明书实施方式提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时,实现如上述的测试方法。
第五方面,本说明书实施方式提供了一种计算机程序产品或计算机程序,所述计算机程序产品包括计算机程序,所述计算机程序存储在计算机可读存储介质中;所述计算机设备的处理器从所述计算机可读存储介质读取所述计算机程序,所述处理器执行所述计算机程序时实现上述的测试方法的步骤。
从上述技术方案可以看出,本说明书实施例提供的测试方法,通过第一配置指令,使得微控制器可以在内存测试模式下,使能所述内存自测试模块对所述存储器进行内存自测试;通过第二配置指令,使得微控制器可以在链扫描模式下,对所述链扫描模块的DFT扫描链进行链扫描测试,实现了复用微控制器在不同模式下进行链扫描和内存自测试的目的,节省了在测试过程中所需的硬件资源,降低了测试成本。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本说明书的一个实施方式提供的一种可行的应用场景的系统架构图。
图2为本说明书的一个实施方式提供的另一种可行的应用场景的系统架构图。
图3为本说明书的一个实施方式提供的一种测试方法的流程示意图。
图4为本说明书的一个实施方式提供的一种链扫描模块的结构示意图。
图5为本说明书的一个实施方式提供的一种内存控制器与内存自测试模块的连接关系示意图。
图6为本说明书的一个实施方式提供的一种系统的结构示意图。
图7为本说明书的一个实施方式提供的另一种系统的结构示意图。
图8为本说明书的一个实施方式提供的又一种系统的结构示意图。
图9为本说明书的一个实施方式提供的一种测试设备的结构示意图。
图10为本说明书的一个实施方式提供的另一种测试设备的结构示意图。
图11为本说明书的一个实施方式提供的又一种测试设备的结构示意图。
图12为本说明书的一个实施方式提供的再一种测试设备的结构示意图。
图13为本说明书的一个实施方式提供的另一种测试方法的流程示意图。
图14为本说明书的一个实施方式提供的再一种系统的结构示意图。
图15为本说明书的一个实施方式提供的一种可选地系统的结构示意图。
图16为本说明书的一个实施方式提供的另一种可选地系统的结构示意图。
图17为本说明书的一个实施方式提供的一种测试装置的结构示意图。
图18为本说明书的一个实施方式提供的一种计算设备的结构示意图。
具体实施方式
除非另外定义,本说明书实施例使用的技术术语或者科学术语应当为本说明书所属领域内具有一般技能的人士所理解的通常意义。本说明书实施例使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来避免构成要素的混同而设置的。
除非上下文另有要求,否则,在整个说明书中,“多个”表示“至少两个”,“包括”被解释为开放、包含的意思,即为“包含,但不限于”。在说明书的描述中,术语“一个实施例”、“一些实施例”、“示例性实施例”、“示例”、“特定示例”或“一些示例”等旨在表明与该实施例或示例相关的特定特征、结构、材料或特性包括在本说明书的至少一个实施例或示例中。上述术语的示意性表示不一定是指同一实施例或示例。
下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本说明书保护的范围。
概述
存储器和寄存器是片上系统(Systemon Chip,SoC)等系统的重要组成部分,在片上系统中,存储器是存储指令和相关数据的关键组成部分,寄存器是一种高速的存储单元,用于暂时存储和访问数据,寄存器具有极快的读写速度,可以提供高效的数据访问和处理能力。
综上,保障存储器和寄存器处于正常的工作状态对于系统正常运行具有重要意义。因此,在众多的片上系统等具有运算能力的系统中,通常通过系统测试来检查寄存器和存储器的状态检查。
在片上系统等具有计算和存储能力的系统的测试和使用过程中,可能会需要对系统内的存储器和寄存器进行测试,以保证系统的整体功能正常。例如,在系统出厂前的测试场景或者系统重启后的自检场景中,都可以对系统内的存储器和寄存器进行测试,以确保存储器和寄存器的功能正常。
以片上系统为例,在系统出厂前,可以通过ATE(Automatic Test Equipment,自动测试设备)以针测的方式对系统的存储器和寄存器分别进行测试,根据测试结果判断存储器和寄存器是否正常,若存储器或寄存器异常,则可及时拦截不良品出厂。而在片上系统投入使用后,存储器和寄存器也可能会在使用过程中出现异常,因此也可以在系统开机或重启时,对系统中的存储器和寄存器进行自检,根据自检结果判断存储器和寄存器是否正常,若存储器或寄存器异常,则可报错或阻止系统启动,避免使用异常的存储器或寄存器导致系统运行出现异常。
通过上面的描述可知,对系统的存储器或寄存器进行测试,对于保障系统性能正常具有重要意义。但目前针对存储器和寄存器进行测试需要针对存储器和寄存器的测试逻辑各自布置对应的测试硬件,存在成本较高的问题。
为了解决这一问题,通过分别研究存储器和寄存器的测试逻辑发现,可以通过复用部分硬件实现对存储器和寄存器的分时测试,从而可以实现在测试过程中节省硬件资源,从而降低测试成本的目的。
进一步的,通过研究发现,可以通过设置微控制器的模式从而实现对存储器和寄存器的分时测试,具体地,可以通过复用微控制器在不同模式下分别对链扫描模块的DFT扫描链进行链扫描测试和使能内存自测试模块对存储器进行内存自测试的方式,实现了在测试过程中节省硬件资源,从而降低测试成本的目的。
基于上述的构思,本说明书实施方式提供了一种测试方法,下面将结合附图,对本说明书实施方式提供的测试方法进行示例性描述。
场景示例
参考图1,图1示出了本说明书实施方式提供的测试方法的一种可行的应用场景,该应用场景具体可以是系统10出厂之前的测试场景,ATE20通过探针与系统10内部的微控制器11建立通信连接,微控制器11分别与内存自测试模块12和链扫描模块13建立有通信连接。ATE20通过控制微控制器11的模式,来实现对内存自测试模块12和链扫描模块13的分时测试。
参考图2,图2示出了本说明书实施方式提供的测试方法的另一种可行的应用场景,该应用场景具体可以是系统10投入使用之后的启动场景,系统10中的微控制器11与计算设备30中的控制器建立有通信连接,微控制器11分别与内存自测试模块12和链扫描模块13建立有通信连接。控制器可以通过控制微控制器11的模式,来实现对内存自测试模块12和链扫描模块13的分时测试。在一些实施方式中,图1中的ATE20和上述控制器均可以称为外部控制器31。图1和图2中的系统10均可以为片上系统等具备微控制器11、内存自测试模块12和链扫描模块13的系统。在图1和图2中,内存自测试模块12可以包括待测试的多个存储器,链扫描模块13可以包括DFT(Design for Testability,设计可测试性)扫描链,所述DFT扫描链可以包括多个依次串接的寄存器。
示例性方法
以应用于图1或图2所示的微控制器11为例,所述微控制器11与链扫描模块13和内存自测试模块12分别建立有通信连接,所述链扫描模块13包括设计可测试性DFT扫描链,所述微控制器11与所述DFT扫描链建立有通信连接,所述DFT扫描链包括多个依次串接的寄存器;所述内存自测试模块12包括多个存储器;本说明书实施方式提供了一种测试方法,如图3所示,所述测试方法包括:
S301:响应于第一配置指令,在内存测试模式下,使能所述内存自测试模块对所述存储器进行内存自测试。
所述第一配置指令可以是外部控制器发送给微控制器的指令,该指令可以将微控制器配置于内存测试模式下,并使能所述内存自测试模块对所述存储器进行内存自测试。
S302:响应于第二配置指令,在链扫描模式下,对所述链扫描模块的DFT扫描链进行链扫描测试。
类似的,所述第二配置指令可以是外部控制器31发送给所述微控制器11的指令,该指令可以将微控制器11配置于链扫描模式下,并对链扫描模块13的DFT扫描链131进行链扫描测试。如此,通过不同的配置指令将所述微控制器11配置为不同的模式,从而在不同模式下分别对所述链扫描模块13的DFT扫描链131进行链扫描测试和使能所述内存自测试模块12对所述存储器进行内存自测试,实现了复用微控制器11在不同模式下进行链扫描和内存自测试的目的,节省了在测试过程中所需的硬件资源,降低了测试成本。
所述内存自测试模块12中的存储器例如可以作为系统的内存,为系统提供各种存储能力。在一些实施方式中,所述存储器例如可以是SRAM(Static Random Access Memory,静态随机存取存储器)或DRAM(Dynamic Random Access Memory,动态随机存取存储器),本说明书对所述存储器的具体类型并不做限定,具体视实际情况而定。
所述链扫描模块13的中的DFT扫描链131可以参考图4,在链扫描模块13中,可以包括至少一个DFT扫描链131,在DFT扫描链131中,寄存器的串接方式可以包括:第一个寄存器的SI引脚用于接收链扫描测试过程中输入到DFT扫描链131的数据,第一个寄存器的Q引脚与第二个寄存器的SI引脚连接,以使第一个寄存器通过Q引脚输出的数据作为第二个寄存器的输入数据从SI引脚输入;对于其他的寄存器,则满足上一个寄存器的Q引脚与下一个寄存器的SI引脚连接的连接关系,对于最后一个寄存器的Q引脚用于连接内存控制器。对于寄存器来说,D(Data)引脚是输入引脚,用于将数据输入到寄存器中。SI(Serial In)引脚也是输入引脚,在串行输入模式下使用。SI引脚用于逐位序列的向寄存器输入数据,在每个时钟脉冲期间,输入的数据位被移位进入寄存器。SE(Serial Enable)引脚是输入引脚,在串行输入模式下使用。SE引脚用于控制输入数据的加载时间,当SE引脚为高电平时,输入数据才会被加载到寄存器中。Q引脚是输出引脚,用于将寄存器中存储的数据输出。通过Q引脚,可以读取寄存器中的数据。除此之外,寄存器还包括一个时钟引脚,该使用引脚用于接收时钟信号CLK。
为了提高内存自测试的效率,在一些实施方式中,参考图5,所述内存自测试模块12还包括:内存控制器121和多个比较器125,一个所述存储器124和一个所述比较器125构成一个测试单元122,所述比较器125的第一输入端In1与所述存储器124的输出端O1连接,所述比较器125的第二输入端In2用于接收所述内存控制器121输出的测试输入数据;所述存储器124的输入端I1用于接收所述测试输入数据;
所述使能所述内存自测试模块12进行内存自测试包括:
向所述内存控制器121发送测试指令;所述测试指令,用于指示所述内存控制器121控制多个所述测试单元122对各自包括的所述存储器124进行内存自测试;
所述内存自测试包括:所述比较器125根据所述测试输入数据和所述测试输出数据对所述存储器124进行测试。
在图5中,示出了内存控制器121与多个测试单元122的连接关系示意图,并示出了虚线框中内存控制器121与测试单元122中的存储器124以及比较器125之间的连接关系示意图。在本实施方式中,单个内存控制器121可以与多个测试单元122建立通信连接,如此,在内存自测试过程中,微控制器11可以通过测试指令指示所述内存控制器121控制多个所述测试单元122对各自包括的所述存储器124进行内存自测试,从而通过单个内存控制器121即可实现对多个存储器124进行内存自测试的目的,无需为每个存储器124都单独布置一个内存控制器121,有利于降低资源占用,降低成本,同时也有利于减少对路径延迟的影响。
在一个可行的实施方式中,仍然参考图5,所述内存自测试具体包括:所述比较器125比较所述存储器124的测试输入数据和所述存储器124的测试输出数据,并根据比较结果输出测试信息;所述测试信息用于指示所述存储器124是否正常。
在本实施方式中,通过测试信息可以获悉存储器124的状态是否正常,从而实现对存储器124的内存自测试的测试结果的获悉。
为了实现对异常存储器124的定位,在一个可选的实施方式中,所述测试信息携带有所述存储器124的身份标识;
所述测试信息包括:第一取值和第二取值;所述第一取值用于标识所述存储器124的身份标识指示的所述存储器124存在异常,所述第二取值用于标识所述存储器124的身份标识指示的所述存储器124正常。
在本实施方式中,由于所述测试信息携带有所述存储器124的身份标识,如此,可以根据所述测试信息的具体取值判断特定存储器124是否出现异常。例如,仍然参考图5,图5中的mb_fail信号表示所述测试信息,可以通过mb_fail信号的信号名称来实现对不同存储器124的区分,即将mb_fail信号的信号名称作为存储器124的身份标识。具体地,例如存储器0的身份标识可以为mb_fail0,存储器1的身份标识可以为mb_fail1,如此,当mb_fail0的取值为第一取值时,表征存储器0的状态异常,而当mb_fail0的取值为所述第二取值时,表示存储器0的状态正常,如此,可以实现对异常存储器124的定位,有利于在发现异常存储器124后的问题定位与修复。
为了实现对于内存控制器121建立有通信连接的多个存储器124的内存自测试管理,在一个实施方式中,参考图6,所述测试指令,还用于指示所述内存控制器121接收多个所述测试单元122输出的所述测试信息,在任一所述测试信息包括所述第一取值时,返回错误信息;
所述错误信息用于提示所述多个测试单元122中至少存在一个所述测试单元122包括异常的存储器124;
所述测试方法还包括:
在接收到所述错误信息时,输出所述错误信息或终止启动过程。
在本实施方式中,当与内存控制器121连接的任意一个测试单元122中存在异常的存储器124时,内存控制器121都会向微控制器11发送一个错误信息,以提醒微控制器11有存储器124异常,以便微控制器11及时输出错误信息或终止系统的启动过程。
在图6中,各测试单元122分别向内存控制器121发送表征存储器124是否异常的测试信息,即mb_fail0、mb_fail1……mb_failn,内存控制器121根据这些测试信息的取值来判断是否存在任意一个或多个存储器124异常。例如,当mb_fail0的取值为第一取值时,表示mb_fail0表征的存储器124存在异常;当mb_fail0和mb_fail1的取值均为第一取值时,表示mb_fail0和mb_fail1表征的存储器124均存在异常;在这些情况下,内存控制器121会向微控制器11发送一个错误信息,以及时提醒微控制器11存在异常的存储器124。
除了可以根据测试信息确定多个测试单元122中是否存在异常的存储器124之外,还可以根据测试信息对异常存储器124进行定位,以帮助异常存储器124的快速定位和修复。例如在一个实施方式中,仍然参考图6,所述测试指令,还用于指示所述内存控制器121接收多个所述测试单元122输出的所述测试信息;
所述测试方法还包括:
向所述内存控制器121输出错误定位指令,所述错误定位指令,用于指示所述内存控制器121输出异常测试信息,所述异常测试信息的取值为所述第一取值;
接收所述异常测试信息,根据所述异常测试信息定位异常存储器124,所述异常存储器124为所述异常测试信息携带的所述存储器124的身份标识指示的存储器124。
在本实施方式中,微控制器11可以通过向内存控制器121发送错误定位指令的方式指示内存控制器121将异常测试信息输出,以使微控制器11可以根据该异常测试信息定位异常存储器124,实现异常存储器124的定位,有利于帮助异常存储器124的修复。例如,仍然以图6所示的系统为例,当mb_fail0的取值为第一取值时,表示mb_fail0表征的存储器124存在异常,内存控制器121可以将mb_fail0返回给所述微控制器11,以使微控制器11根据mb_fail0确定异常存储器124的位置;还例如当mb_fail0和mb_fail1的取值均为第一取值时,表示mb_fail0和mb_fail1表征的存储器124均存在异常,内存控制器121可以将mb_fail0和mb_fail1作为异常测试信息返回给所述微控制器11,以使所述微控制器11根据mb_fail0和mb_fail1确定异常存储器124的位置。
为了保障系统10的可靠运行,在本说明书的一个实施方式中,参考图7,所述内存控制器121的数量为多个,所述多个测试单元122划分为多个子测试单元组,所述多个子测试单元组中的每个子测试单元组包括至少一个测试单元122,所述多个内存控制器121中的任意一个内存控制器121分别与一个所述子测试单元组建立有通信连接,所述子测试单元组中所包含的存储器124的物理特性相同。
一般情况下,不同存储器124的物理特性可能有所差异,为了保证同一个内存控制器121连接的测试单元122中的存储器124的物理特性相同,避免内存控制器121与不兼容的存储器124之间可能会出现的数据传输错误的问题,在本实施方式中,通过将包含同一中物理特性的存储器124的测试单元122分到一个子测试单元组中的方式,使得各内存控制器121连接的子测试单元组中包含的存储器124的物理特性相同,从而保证了与同一个内存控制器121建立有通信连接的存储器124的物理特性相同。在一些实施方式中,所述子测试单元122中所包含的存储器124的物理特性和与其建立有通信连接的所述内存控制器121相匹配,如此可以避免内存控制器121与存储器124之间出现数据传输错误的情况,有利于提高系统10的运行可靠性。
所述存储器124的物理特性可以包括存储器124的电气和时序特性,例如可以包括供电电压、时钟速率和数据带宽等中的至少一项,而存储器124的物理特性的外在表现通常包括接口数量,通过接口数量可以快捷方便地确定存储器124的物理特性。所述接口数量可以包括用于传输时钟信号的接口数量、用于传输数据的接口数量等等。在一些实施方式中,所述物理特性还可以包括接口类型。本说明书对此并不做限定。
在系统10内部存在多个内存控制器121,每个内存控制器121都与至少一个测试单元122建立有通信连接的情况下,为了提高内存自测试效率,在本说明书的一个实施方式中,仍然参考图7,所述测试指令携带有所述存储器124对应的属性信息,所述存储器124对应的属性信息用于指示所述存储器124的物理特性;
所述向所述内存控制器121发送测试指令包括:
向多个目标内存控制器121发送所述测试指令,所述多个目标内存控制器121分别与多个目标子测试单元组分别建立有通信连接,所述多个目标子测试单元组中所包含的存储器124的物理特性相同。
在本实施方式中,可以对与多个目标内存控制器121连接的目标自测试单元122组中的存储器124同时进行内存自测试,有利于缩短内存自测试所需的时间,提高测试效率。以图7为例,假设子测试单元组0和子测试单元组1中所包含的存储器124的物理特性相同,而子测试单元组N与子测试单元组0中所包含的存储器124的物理特性不相同,则在本实施方式中,可以将与子测试单元组0和子测试单元组1建立有通信连接的内存控制器121作为目标内存控制器121,向这两个目标内存控制器121发送测试指令,可以同时启动这两个目标内存控制器121对子测试单元组0和子测试单元组1的内存自测试,从而缩短测试所需耗时,提高测试效率。
为了减少占用存储器124的引脚,在本说明书的一个实施方式中,仍然参考图5,所述测试单元122还包括选择器123,所述选择器123包括测试通路;
所述测试指令具体用于:指示所述内存控制器121控制所述选择器123进入测试模式,在所述测试模式中,所述选择器123用于将所述测试通路接收的数据传输给与所述选择器123连接的所述存储器124;通过所述选择器123的测试通路,向所述存储器124传输所述测试输入数据;获取所述比较器125根据所述测试输入数据和所述测试输出数据对所述存储器124进行测试的测试结果。
在本实施方式中,通过选择器123是否处于测试模式,从而实现将测试输入数据或正常工作数据传输给存储器124的目的,如此可以在占用存储器124的一个引脚的情况下,实现不同数据的输入,满足存储器124在测试和正常工作时的数据输入需求,有利于降低对存储器124的硬件要求。在图5中,CLK表示时钟信号,rst表示复位信号,MBIST_EN表示使能信号,所述测试指令可以包括该使能信号,选择器123在接收到该使能信号时进入测试模式。mb_data_in表示测试输入信号,data_in表示存储器124正常工作时的数据信号。
对于内存自测试的具体可行的过程,本说明书的一个实施方式提供了一种示例性的测试过程,参考图8,在图8中,外部控制器31通过JTAG(Joint Test Action Group,联合测试工作组)总线与微控制器11连接,该测试过程可以包括:
S1、给定微控制器11的参考时钟clk_ref,然后释放por_n复位信号,在por_n复位信号释放后,微控制器11进入调试模式。por_n复位信号可以用于控制调试模式的生成以及测试过程的开始和结束。
S2、外部控制器31通过JTAG总线配置微控制器11内部的硬件调试模块,该配置过程例如可以包括:通过JTAG总线写硬件调试模块中的时钟控制寄存器,切换到高频时钟以满足测试要求;写硬件调试模块中的复位控制寄存器,释放系统中各部件的复位信号,使能各部件中的内存自测试模块12进行存储器124的内存自测试。在内存自测试过程中,内存控制器121生成不同的测试方法来检测存储器124的不同错误或异常,内存控制器121对与其连接的多个存储器124依次进行测试,多个内存控制器121之间可以并行进行内存自测试,以提高测试效率。上述的各时钟信号、por_n复位信号和外部控制器31通过JTAG总线对硬件调试模块进行配置的指令可以全部或部分包含在第一配置指令中。
S3、测试完成后,内存自测试模块12会返回一个完成信号给微控制器11内部的硬件调试模块,通过JTAG总线通知外部控制器31内存自测试完成。
对于一个测试单元122也可以称为一个测试设备,在一些情况下,如果将测试设备中的比较器125集成于存储器124中,可能会导致存储器124在设计、制造时,需要兼容比较器的器件制程、工艺等因素,导致测试设备所需晶圆尺寸较大、成本较高。为了避免这一问题,本说明书的一个实施方式提供了一种测试设备,参考图9,所述测试设备包括:彼此独立封装的比较器125和存储器124;所述比较器125的第一输入端In1与所述存储器124的输出端O1连接,所述比较器125的第二输入端In2用于接收测试输入数据;所述存储器124的输入端I1用于接收所述测试输入数据;其中,
所述存储器124,用于接收所述测试输入数据,并向所述比较器输出测试输出数据;
所述比较器125,用于接收所述测试输入数据和所述测试输出数据,根据所述测试输入数据和所述存储器的测试输出数据对所述存储器进行内存自测试。
在本实施方式中,通过将比较器125和存储器124彼此独立封装的方式,使得存储器124在制备时无需考虑兼容比较器125的器件制程与工艺等因素,有利于缩小存储器124所需的晶圆尺寸,从而降低存储器124成本。相应的,比较器125制备时也无需考虑兼容存储器124的器件制程与工艺等因素,有利于缩小比较器125的整体尺寸,使得所述测试设备在能够实现测试功能的基础上,缩小设备整体尺寸,降低设备成本。
在一个可选的实施方式中,参考图9和图10,所述测试设备还包括:选择器123,所述选择器123、所述比较器125和所述存储器124彼此独立封装;
所述选择器123包括测试模式和测试通路,所述选择器123被配置为:在所述测试模式中,将通过所述测试通路接收的数据传输给与所述选择器123连接的所述存储器124。
通过设置选择器123,可以减少占用的存储器124的引脚,通过选择器123所处的模式设置,可以选择将不同的数据输入给存储器124,从而降低对存储器124的硬件要求。
在一个可选的实施方式中,仍然参考图10,所述选择器123还包括:工作模式和工作通路;
所述选择器123还用于,在接收到的使能信号为第一状态时,切换为所述测试模式,在接收到的所述使能信号为第二状态时,切换为所述工作模式;
在所述工作模式中,将通过所述工作通路接收的数据传输给与所述选择器123连接的所述存储器124。
使能信号可以是内存控制器发送给选择器的信号,通过使能信号可以控制选择器自身的模式,从而实现将不同通路的数据输入到存储器124的目的。所述使能信号可以是电平信号,此时所述使能信号的第一状态和第二状态可以分别是高低电平状态。
在本实施方式中,通过选择器123是否处于测试模式,从而实现将测试输入数据或正常工作数据传输给存储器124的目的,如此可以在占用存储器124的一个引脚的情况下,实现不同数据的输入,满足存储器124在测试和正常工作时的数据输入需求,有利于降低对存储器124的硬件要求。
在一个可行的实施方式中,参考图11,所述选择器还包括:使能信号输入端EN、第一信号输入端Input1、第二信号输入端Input2和信号输出端Out1;其中,
所述使能信号输入端EN,用于接收所述使能信号;
所述信号输出端Out1与所述存储器124的输入端连接;
所述第一信号输入端Input1至所述信号输出端Out1构成所述测试通路;
所述第二信号输入端Input2至所述信号输出端Out2构成所述工作通路。
通过不同信号输入端作为测试通路和工作通路的输入数据的输入端,有利于减少不同数据之间的干扰。
在一个可行的实施方式中,所述比较器125还用于:输出对所述存储器124进行内存自测试的测试结果。
所述比较器125输出的测试结果可以传输给内存控制器,以使内存控制器获悉存储器124的测试结果进而采取相应的控制策略。
在一个可选的实施方式中,仍然参考图11,所述比较器125的第一输入端与所述存储器的输出端连接,用于接收所述测试输出数据;
所述比较器125的第二输入端In2与内存控制器的输出端连接,用于接收所述测试输入数据;
所述比较器125的输出端用于连接内存控制器,所述测试结果通过所述比较器125的输出端向所述内存控制器传输。
在本实施方式中,通过多端口接收和输出数据,可以降低比较器125通过单个端口接收多个数据而可能导致的异常,有利于提高设备的鲁棒性。
在一个可选地实施方式中,所述比较器还用于根据所述测试结果输出测试信息;所述测试信息用于指示所述存储器是否正常。
在一个可选地实施方式中,所述测试信息携带有所述存储器的身份标识;
所述测试信息包括:第一取值和第二取值;所述第一取值用于标识所述存储器的身份标识指示的所述存储器存在异常,所述第二取值用于标识所述存储器的身份标识指示的所述存储器正常。
关于测试信息、身份标识的功能以及相关有益效果的描述可以参考上文中的相关描述,本说明书在此不做赘述。
在一个可选地实施方式中,参考图12,所述测试设备还包括:电路板126;
所述电路板126包括互联线路,所述电路板126用于承载所述比较器125和存储器124,所述比较器125和所述存储器124通过所述互联线路电连接。
通过电路板126承载比较器125和存储器124,并通过电路板上的互联线路连接比较器125和存储器124有利于规划和布局硬件位置,并保障各硬件之间的良好通信。
在本说明书的一个实施方式中,还提供了一种包括上述的测试设备的计算设备,该计算设备可以包括:内存控制器和多个测试设备,所述测试设备包括:彼此独立封装的比较器和存储器;
所述内存控制器,用于响应于测试指令,控制多个所述测试设备对各自包括的所述存储器进行内存自测试;
所述内存自测试包括:所述比较器根据所述存储器的测试输入数据和所述存储器的测试输出数据对所述存储器进行测试。
在一个可选地实施方式中,所述多个测试设备划分为多个测试设备组,所述多个测试设备组中的每个测试设备组包括至少一个所述测试设备,所述内存控制器的数量为多个,所述多个内存控制器中的任意一个内存控制器分别与一个所述测试设备组建立有通信连接,所述测试设备组中所包含的存储器的物理特性相同。
关于测试设备和测试设备组的描述可参考上文中关于测试单元和子测试单元组的相关描述,本说明书在此不做赘述。
下面对链扫描的可行过程进行示例性说明。
为了实现异常的寄存器的定位,在本说明书的一个实施方式中,参考图13和图14,所述对所述链扫描模块13的DFT扫描链131进行链扫描测试包括:
S1301:向所述DFT扫描链发送所述测试信号,读取各所述寄存器的测试值并返回;所述测试值为所述寄存器在接收所述测试信号后的寄存器值。
S1302:接收所述DFT扫描链中各所述寄存器的测试值,根据接收到的所述测试值,确定异常的寄存器。
参考图14,图14示出了对链扫描模块进行链扫描测试时的结构框图,微控制器通过向DFT扫描链131中的第一个寄存器的SI引脚发送测试信号的方式,实现将测试信号送入DFT扫描链131的目的。微控制器11可以通过DFT扫描链131中寄存器的Q引脚读取各所述寄存器的测试值。
在本实施方式中,所述测试方法通过微控制器向所述DFT扫描链发送所述测试信号,读取各所述寄存器的测试值并返回,并根据接收到的所述测试值,确定异常的寄存器,实现了在对DFT扫描链进行测试的过程中,确定异常寄存器的目的,有利于异常寄存器的定位与修复。在硅后问题分析时,也可以通过接收到的测试值帮助问题定位。
在一些实施方式中,可以通过外部控制器31向所述微控制器11发送携带有测试信号的第二配置指令,以指示所述微控制器执行步骤S1301以及S1302。
在本说明书的一个可行的实施方式中,所述第二配置指令具体用于配置所述微控制器11处于链扫描模式,指示所述微控制器11按照所述寄存器的顺序信息,依次向所述DFT扫描链中的寄存器发送所述测试信号,并按照所述寄存器的顺序信息,依次读取所述DFT扫描链中的寄存器的测试值;
所述顺序信息包括所述寄存器在所述DFT扫描链131中的串接顺序。
参考图15,以DFT扫描链131中包括四个依次串接的寄存器为例,这四个寄存器按照串接先后顺序分别为寄存器0、寄存器1、寄存器2和寄存器3;那么在测试信息为“0000”时,每位测试信息按照顺序依次输入给寄存器0、1、2、3,在读取测试值时,也按照顺序依次读取寄存器0、1、2、3的测试值,如此,可以使得测试信息的每位数据与测试值的每位数据一一对应,有利于简化根据测试值确定异常存储器的过程。
例如,在一个可选地实施方式中,所述接收所述DFT扫描链131中各所述寄存器的测试值,根据接收到的所述测试值,确定异常的寄存器包括:
接收测试值向量,所述测试值向量包括按照所述顺序信息排列的所述测试值;
根据所述测试值向量中,异常测试值在所述测试值向量中的位置,确定异常的寄存器。
在图15中,所述测试值向量例如可以是“0001”,测试值向量中的每位数据(测试值)都对应一个寄存器,且该位数据在测试值向量中的排列顺序和其对应的寄存器在DFT扫描链131中的串接顺序一致。例如测试值向量:“0001”中的第一位数据即为寄存器0的测试值。
异常测试值可以是指与测试信息中对应位置的数据不同的测试值。例如在图15中,测试值向量中的第四位数据为“1”,而输入到寄存器3中的测试信息为“0”,则第四位的测试值可以认定为异常测试值。通过该方法确定异常测试值,进而确定异常的寄存器具有简便、易行的特点。
为了避免DFT扫描链131中的初始值不同而导致的测试结果有误,在本说明书的一个实施方式中,所述测试值向量包括第一向量和第二向量;所述测试信号包括初始化信号和第一信号;所述初始化信号包括N个第一值数据,所述第一信号包括N个第二值数据;所述第一值数据与所述第二值数据不同;N等于所述DFT扫描链中的寄存器数量;
所述第二配置指令具体用于,配置所述微控制器处于链扫描模式,按照所述寄存器的顺序信息,依次将所述初始化信号中的N个第一值数据写入所述DFT扫描链中的寄存器,并按照所述寄存器的顺序信息,依次读取所述DFT扫描链中的寄存器的测试值,以获得所述第一向量;所述第一向量中,取值为第二值的测试值为所述异常测试值;
按照所述寄存器的顺序信息,依次将所述第一信号中的N个第二值数据写入所述DFT扫描链中的寄存器,并按照所述寄存器的顺序信息,依次读取所述DFT扫描链中的寄存器的测试值,以获得所述第二向量;所述第二向量中,取值为第一值的测试值为所述异常测试值。
在本实施方式中,将初始化信号发送给DFT扫描链131的目的是将DFT扫描链131中的各寄存器的值进行初始化,以使DFT扫描链131中的值为确定的已知值。之后对DFT扫描链131进行第一次读取,以获得第一向量,根据第一向量可以进行一次异常测试值的确定。
之后,将第一信号输入给DFT扫描链,并进行第二次读取获得第二向量,根据第二向量可以进行第二次异常测试值的确定,通过两次异常测试值的确定,可以避免单次链扫描可能造成的测试误差。
举例来说,仍然以图15中的DFT扫描链131为例,初始化信号可以包括“0000”,当初始化信号输入到DFT扫描链131中之后,寄存器0~3的值应当为“0”,即读取的第一向量应当为“0000”,如果第一向量中哪一位数据为“1”,则表示该位数据为异常测试值。在读取了第一向量之后,向DFT扫描链131输入第一信号,此时第一信号可以为“1111”,第一信号输入到DFT扫描链131之后,寄存器0~3的值应当为“1”,即读取的第二向量应当为“1111”,如果第二向量中哪一位数据为“0”,则表示该位数据为异常测试值。
一般情况下,硬件模块中会有大量的寄存器,为了提高对硬件模块的链扫描测试的效率,在本说明书的一个实施方式中,参考图16,所述链扫描模块包括多个硬件模块,每个所述硬件模块中包括一个所述DFT扫描链131,所述DFT扫描链131包括多个DFT扫描子链,多个所述DFT扫描子链依次串接。
在本实施方式中,通过将一个硬件模块中的多个DFT扫描子链串接为一个长链(即DFT扫描链131),可以在一次链扫描测试过程中对多个DFT扫描子链进行测试,有利于简化测试方法,同时也可减少对微控制器11的资源占用,无需要求微控制器11针对每个DFT扫描子链都发送一次第二配置指令。在一些实施方式中,所述DFT扫描链131可以包括硬件模块中所有的寄存器,如此可以在一次链扫描测试过程中实现对硬件模块中所有寄存器的测试。
所述硬件模块可以是指系统中包括寄存器或需要对寄存器进行链扫描测试的模块,这些模块例如可以是处理器、内存控制器、I/O控制器等等,本说明书对此并不做限定,具体视实际情况而定。
为了避免不同DFT扫描链131之间同时进行链扫描测试而可能导致的系统异常,在本说明书的一个实施方式中,所述第二配置指令还用于,配置目标DFT扫描链进入测试模式;所述目标DFT扫描链为多个所述DFT扫描链中的一个;
所述第二配置指令指示所述微控制器向所述DFT扫描链发送所述测试信号,读取各所述寄存器的测试值并返回具体用于:指示所述微控制器向所述目标DFT扫描链发送所述测试信号,读取所述目标DFT扫描链中各所述寄存器的测试值并返回。
在本实施方式中,通过将多个DFT扫描链131中的一个作为目标DFT扫描链,可以满足在对目标DFT扫描链进行测试时,其他DFT扫描链131中的值不变的测试需求,保证了链扫描测试的正常进行。
在本说明书的一个实施方式中,提供了一种具体地将目标DFT扫描链配置为测试模式的方法:
S10:外部控制器31可以通过配置微控制器的内部寄存器,停止各硬件模块的时钟信号;
S20:外部控制器31通过配置微控制器的内部寄存器,打开目标硬件模块内的目标DFT扫描链内的门控时钟;
S30:外部控制器31配置微控制器的硬件调试模块,使能链扫描模块进行链扫描测试。
关于链扫描测试的具体可行过程可参考上文中的相关描述。
示例性装置
在本说明书的一个示例性实施例中,还提供了一种测试装置,如图17所示,应用于微控制器,所述微控制器与链扫描模块和内存自测试模块分别建立有通信连接,所述链扫描模块包括设计可测试性DFT扫描链,所述微控制器与所述DFT扫描链建立有通信连接,所述DFT扫描链包括多个依次串接的寄存器;所述内存自测试模块包括多个存储器;所述测试装置包括:
第一测试模块1701,用于响应于第一配置指令,在内存测试模式下,使能所述内存自测试模块进行内存自测试;
第二测试模块1702,用于响应于第二配置指令,在链扫描模式下,对所述链扫描模块的DFT扫描链进行链扫描测试。
关于测试装置的具体限定可以参见上文中关于测试方法的限定,在此不再赘述。上述测试装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中,也可以以软件形式存储于计算机设备中,以便于处理器或控制器调用执行以上各个模块对应的操作。
示例性计算设备
本申请另一实施例还提出一种计算设备,参见图18所示,本说明书的一个示例性实施例还提供了一种计算设备30,包括:微控制器11、链扫描模块13和内存自测试模块12,所述微控制器11与链扫描模块13和内存自测试模块12分别建立有通信连接,所述链扫描模块13包括设计可测试性DFT扫描链,所述微控制器11与所述DFT扫描链建立有通信连接,所述DFT扫描链包括多个依次串接的寄存器;所述内存自测试模块12包括多个存储器;
所述微控制器11被配置为:响应于第一配置指令,在内存测试模式下,使能所述内存自测试模块对所述存储器进行内存自测试;
响应于第二配置指令,在链扫描模式下,对所述链扫描模块的DFT扫描链进行链扫描测试。
关于内存自测试和链扫描测试的具体可行执行过程及有益效果,可参考上文中关于测试方法的相关描述,本说明书在此不做赘述。
在一些实施方式中,所述计算设备30还可以包括与微控制器11连接的外部控制器,所述外部控制器可以通过JTAG总线与所述微控制器11建立通信连接。
本领域技术人员可以理解,图18中示出的结构,仅仅是与本说明书方案相关的部分结构的框图,并不构成对本说明书方案所应用于其上的计算设备的限定,具体的计算设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
示例性计算机程序产品和存储介质
除了上述方法和设备以外,本说明书实施例提供的测试方法还可以是计算机程序产品,其包括计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本说明书各种实施例的测试方法中的步骤。
所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本说明书实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
此外,本说明书实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行本说明书上述“示例性方法”部分中描述的根据本说明书各种实施例的测试方法中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本说明书所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本说明书的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本说明书实施例提供的方案范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本说明书构思的前提下,还可以做出若干变形和改进,这些都属于本说明书的保护范围。因此,本说明书专利的保护范围应以所附权利要求为准。

Claims (19)

1.一种测试方法,其特征在于,应用于微控制器,所述微控制器与链扫描模块和内存自测试模块分别建立有通信连接,所述链扫描模块包括设计可测试性DFT扫描链,所述微控制器与所述DFT扫描链建立有通信连接,所述DFT扫描链包括多个依次串接的寄存器;所述内存自测试模块包括多个存储器;所述测试方法包括:
响应于第一配置指令,在内存测试模式下,使能所述内存自测试模块对所述存储器进行内存自测试;
响应于第二配置指令,在链扫描模式下,对所述链扫描模块的DFT扫描链进行链扫描测试。
2.根据权利要求1所述的方法,其特征在于,所述内存自测试模块还包括:内存控制器和多个比较器,一个所述存储器和一个所述比较器构成一个测试单元,所述比较器的第一输入端与所述存储器的输出端连接,所述比较器的第二输入端用于接收所述内存控制器输出的测试输入数据;所述存储器的输入端用于接收所述测试输入数据;
所述使能所述内存自测试模块进行内存自测试包括:
向所述内存控制器发送测试指令;所述测试指令,用于指示所述内存控制器控制多个所述测试单元对各自包括的所述存储器进行内存自测试;
所述内存自测试包括:所述比较器根据所述测试输入数据和所述存储器的测试输出数据对所述存储器进行测试。
3.根据权利要求2所述的方法,其特征在于,所述内存自测试具体包括:所述比较器比较所述存储器的测试输入数据和所述存储器的测试输出数据,并根据比较结果输出测试信息;所述测试信息用于指示所述存储器是否正常。
4.根据权利要求3所述的方法,其特征在于,所述测试信息携带有所述存储器的身份标识;
所述测试信息包括:第一取值和第二取值;所述第一取值用于标识所述存储器的身份标识指示的所述存储器存在异常,所述第二取值用于标识所述存储器的身份标识指示的所述存储器正常。
5.根据权利要求4所述的方法,其特征在于,所述测试指令,还用于指示所述内存控制器接收多个所述测试单元输出的所述测试信息,在任一所述测试信息包括所述第一取值时,返回错误信息;
所述错误信息用于提示所述多个测试单元中至少存在一个所述测试单元包括异常的存储器;
所述测试方法还包括:
在接收到所述错误信息时,输出所述错误信息或终止启动过程。
6.根据权利要求4所述的方法,其特征在于,所述测试指令,还用于指示所述内存控制器接收多个所述测试单元输出的所述测试信息;
所述测试方法还包括:
向所述内存控制器输出错误定位指令,所述错误定位指令,用于指示所述内存控制器输出异常测试信息,所述异常测试信息的取值为所述第一取值;
接收所述异常测试信息,根据所述异常测试信息定位异常存储器,所述异常存储器为所述异常测试信息携带的所述存储器的身份标识指示的存储器。
7.根据权利要求2所述的方法,其特征在于,所述内存控制器的数量为多个,所述多个测试单元划分为多个子测试单元组,所述多个子测试单元组中的每个子测试单元组包括至少一个测试单元,所述多个内存控制器中的任意一个内存控制器分别与一个所述子测试单元组建立有通信连接,所述子测试单元组中所包含的存储器的物理特性相同。
8.根据权利要求7所述的方法,其特征在于,所述物理特性包括:接口数量。
9.根据权利要求7所述的方法,其特征在于,所述测试指令携带有所述存储器对应的属性信息,所述存储器对应的属性信息用于指示所述存储器的物理特性;
所述向所述内存控制器发送测试指令包括:
向多个目标内存控制器发送所述测试指令,所述多个目标内存控制器分别与多个目标子测试单元组分别建立有通信连接,所述多个目标子测试单元组中所包含的存储器的物理特性相同。
10.根据权利要求2所述的方法,其特征在于,所述测试单元还包括选择器,所述选择器包括测试通路;
所述测试指令具体用于:指示所述内存控制器控制所述选择器进入测试模式,在所述测试模式中,所述选择器用于将所述测试通路接收的数据传输给与所述选择器连接的所述存储器;通过所述选择器的测试通路,向所述存储器传输所述测试输入数据;获取所述比较器根据所述测试输入数据和所述测试输出数据对所述存储器进行测试的测试结果。
11.根据权利要求1所述的方法,其特征在于,所述对所述链扫描模块的DFT扫描链进行链扫描测试包括:
向所述DFT扫描链发送测试信号,读取各所述寄存器的测试值并返回;所述测试值为所述寄存器在接收所述测试信号后的寄存器值;
接收所述DFT扫描链中各所述寄存器的测试值,根据接收到的所述测试值,确定异常的寄存器。
12.根据权利要求11所述的方法,其特征在于,所述第二配置指令具体用于配置所述微控制器处于链扫描模式,指示所述微控制器按照所述寄存器的顺序信息,依次向所述DFT扫描链中的寄存器发送所述测试信号,并按照所述寄存器的顺序信息,依次读取所述DFT扫描链中的寄存器的测试值;
所述顺序信息包括所述寄存器在所述DFT扫描链中的串接顺序。
13.根据权利要求12所述的方法,其特征在于,所述接收所述DFT扫描链中各所述寄存器的测试值,根据接收到的所述测试值,确定异常的寄存器包括:
接收测试值向量,所述测试值向量包括按照所述顺序信息排列的所述测试值;
根据所述测试值向量中,异常测试值在所述测试值向量中的位置,确定异常的寄存器。
14.根据权利要求13所述的方法,其特征在于,所述测试值向量包括第一向量和第二向量;所述测试信号包括初始化信号和第一信号;所述初始化信号包括N个第一值数据,所述第一信号包括N个第二值数据;所述第一值数据与所述第二值数据不同;N等于所述DFT扫描链中的寄存器数量;
所述第二配置指令具体用于,配置所述微控制器处于链扫描模式,按照所述寄存器的顺序信息,依次将所述初始化信号中的N个第一值数据写入所述DFT扫描链中的寄存器,并按照所述寄存器的顺序信息,依次读取所述DFT扫描链中的寄存器的测试值,以获得所述第一向量;所述第一向量中,取值为第二值的测试值为所述异常测试值;
按照所述寄存器的顺序信息,依次将所述第一信号中的N个第二值数据写入所述DFT扫描链中的寄存器,并按照所述寄存器的顺序信息,依次读取所述DFT扫描链中的寄存器的测试值,以获得所述第二向量;所述第二向量中,取值为第一值的测试值为所述异常测试值。
15.根据权利要求11所述的方法,其特征在于,所述链扫描模块包括多个硬件模块,每个所述硬件模块中包括一个所述DFT扫描链,所述DFT扫描链包括多个DFT扫描子链,多个所述DFT扫描子链依次串接。
16.根据权利要求15所述的方法,其特征在于,所述第二配置指令还用于,配置目标DFT扫描链进入测试模式;所述目标DFT扫描链为多个所述DFT扫描链中的一个;
所述第二配置指令指示所述微控制器向所述DFT扫描链发送所述测试信号,读取各所述寄存器的测试值并返回具体用于:指示所述微控制器向所述目标DFT扫描链发送所述测试信号,读取所述目标DFT扫描链中各所述寄存器的测试值并返回。
17.一种测试装置,其特征在于,应用于微控制器,所述微控制器与链扫描模块和内存自测试模块分别建立有通信连接,所述链扫描模块包括设计可测试性DFT扫描链,所述微控制器与所述DFT扫描链建立有通信连接,所述DFT扫描链包括多个依次串接的寄存器;所述内存自测试模块包括多个存储器;所述测试装置包括:
第一测试模块,用于响应于第一配置指令,在内存测试模式下,使能所述内存自测试模块进行内存自测试;
第二测试模块,用于响应于第二配置指令,在链扫描模式下,对所述链扫描模块的DFT扫描链进行链扫描测试。
18.一种计算设备,其特征在于,包括:微控制器、链扫描模块和内存自测试模块,所述微控制器与链扫描模块和内存自测试模块分别建立有通信连接,所述链扫描模块包括设计可测试性DFT扫描链,所述微控制器与所述DFT扫描链建立有通信连接,所述DFT扫描链包括多个依次串接的寄存器;所述内存自测试模块包括多个存储器;
所述微控制器被配置为:响应于第一配置指令,在内存测试模式下,使能所述内存自测试模块对所述存储器进行内存自测试;
响应于第二配置指令,在链扫描模式下,对所述链扫描模块的DFT扫描链进行链扫描测试。
19.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时,实现如权利要求1~16任一项所述的测试方法。
CN202311309489.6A 2023-10-11 2023-10-11 一种测试方法、装置、计算设备及存储介质 Active CN117093430B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311309489.6A CN117093430B (zh) 2023-10-11 2023-10-11 一种测试方法、装置、计算设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311309489.6A CN117093430B (zh) 2023-10-11 2023-10-11 一种测试方法、装置、计算设备及存储介质

Publications (2)

Publication Number Publication Date
CN117093430A true CN117093430A (zh) 2023-11-21
CN117093430B CN117093430B (zh) 2024-01-26

Family

ID=88773690

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311309489.6A Active CN117093430B (zh) 2023-10-11 2023-10-11 一种测试方法、装置、计算设备及存储介质

Country Status (1)

Country Link
CN (1) CN117093430B (zh)

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6044481A (en) * 1997-05-09 2000-03-28 Artisan Components, Inc. Programmable universal test interface for testing memories with different test methodologies
US20060080585A1 (en) * 2004-10-08 2006-04-13 Naoki Kiryu Systems and methods for circuit testing using LBIST
CN101587754A (zh) * 2008-05-20 2009-11-25 卓胜微电子(上海)有限公司 基于扫描链的存储器测试装置及其使用方法
CN101996687A (zh) * 2010-10-27 2011-03-30 山东大学 基于扫描测试的多个sram的内建自测试方法
US8037377B1 (en) * 2008-05-27 2011-10-11 Altera Corporation Techniques for performing built-in self-test of receiver channel having a serializer
CN106546907A (zh) * 2016-10-27 2017-03-29 清华大学 一种低功耗扫描自测试电路以及自测试方法
US20180059183A1 (en) * 2015-04-16 2018-03-01 Renesas Electronics Corporation Semiconductor device and scan test method
CN211402637U (zh) * 2019-11-13 2020-09-01 浙江财经大学东方学院 扫描链动态重配置的确定型test-per-clock测试装置
CN112115664A (zh) * 2020-11-18 2020-12-22 北京滕华软件有限公司 一种多模式多时钟域的芯片集成控制系统
CN115981735A (zh) * 2023-03-17 2023-04-18 广州匠芯创科技有限公司 芯片的低温启动控制方法及其系统、电子设备、存储介质

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6044481A (en) * 1997-05-09 2000-03-28 Artisan Components, Inc. Programmable universal test interface for testing memories with different test methodologies
US20060080585A1 (en) * 2004-10-08 2006-04-13 Naoki Kiryu Systems and methods for circuit testing using LBIST
CN101587754A (zh) * 2008-05-20 2009-11-25 卓胜微电子(上海)有限公司 基于扫描链的存储器测试装置及其使用方法
US8037377B1 (en) * 2008-05-27 2011-10-11 Altera Corporation Techniques for performing built-in self-test of receiver channel having a serializer
CN101996687A (zh) * 2010-10-27 2011-03-30 山东大学 基于扫描测试的多个sram的内建自测试方法
US20180059183A1 (en) * 2015-04-16 2018-03-01 Renesas Electronics Corporation Semiconductor device and scan test method
CN106546907A (zh) * 2016-10-27 2017-03-29 清华大学 一种低功耗扫描自测试电路以及自测试方法
CN211402637U (zh) * 2019-11-13 2020-09-01 浙江财经大学东方学院 扫描链动态重配置的确定型test-per-clock测试装置
CN112115664A (zh) * 2020-11-18 2020-12-22 北京滕华软件有限公司 一种多模式多时钟域的芯片集成控制系统
CN115981735A (zh) * 2023-03-17 2023-04-18 广州匠芯创科技有限公司 芯片的低温启动控制方法及其系统、电子设备、存储介质

Also Published As

Publication number Publication date
CN117093430B (zh) 2024-01-26

Similar Documents

Publication Publication Date Title
US6681359B1 (en) Semiconductor memory self-test controllable at board level using standard interface
US8127187B2 (en) Method and apparatus of ATE IC scan test using FPGA-based system
US6256760B1 (en) Automatic test equipment scan test enhancement
US7353442B2 (en) On-chip and at-speed tester for testing and characterization of different types of memories
US7340658B2 (en) Technique for combining scan test and memory built-in self test
US20210341537A1 (en) Test systems for executing self-testing in deployed automotive platforms
US7661048B2 (en) Apparatus and method for embedded boundary scan testing
US9097762B2 (en) Method and apparatus for diagnosing an integrated circuit
CN101329385B (zh) 一种片上系统的调测系统、调测方法以及片上系统
CN111308329B (zh) 用于众核计算芯片可测性设计的电路、装置及方法
US7203873B1 (en) Asynchronous control of memory self test
US11519961B2 (en) Extended JTAG controller and method for functional debugging using the extended JTAG controller
CN106291313B (zh) 用于测试集成电路的方法和设备
CN111366842B (zh) 一种芯片量产测试方法
US8892387B2 (en) Driving circuit of a test access port
US20040097093A1 (en) Test circuit for semiconductor device
CN116774018B (zh) 一种芯片测试方法、装置及电子设备
KR19980064249A (ko) Jtag 명령 디코드 테스트 레지스터 및 그 테스트 방법
CN117093430B (zh) 一种测试方法、装置、计算设备及存储介质
CN117095731B (zh) 一种测试设备及计算设备
KR20100076445A (ko) 제이택을 지원하는 칩의 멀티사이트 테스트용 프로브 카드
CN112585486A (zh) 扩展jtag控制器和使用扩展jtag控制器进行功能复位的方法
CN117093431A (zh) 一种测试方法、装置、计算设备及存储介质
CN117253526A (zh) 一种用于存储器的测试方法、装置、计算设备及存储介质
CN117316249A (zh) 一种寄存器的测试方法、装置、计算设备及存储介质

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
GR01 Patent grant
GR01 Patent grant