发明内容
本申请实施例的目的在于提供一种芯片测试方法、装置、电子设备及存储介质,用以提高对芯片的检测效率。
第一方面,本申请实施例提供一种芯片测试方法,包括:
接收测试数据并将所述测试数据存储至存储区域;
接收测试信号,从所述存储区域中获取所述测试数据;
基于所述测试数据对寄存器进行逻辑操作,得到寄存器信息,所述寄存器信息表征寄存器地址与待测试芯片管脚的对应关系;
根据所述寄存器信息确定所述待测试芯片输出与所述测试数据对应的测试波形的管脚,生成所述待测试芯片的输出波形索引并将所述输出波形索引发送至所述待测试芯片;
接收由所述待测试芯片基于所述输出波形索引输出的所述测试波形,以检测所述待测试芯片的性能。
在上述实现过程中,通过将测试数据向量进行处理生成波形输出,并基于波形输出对芯片的性能进行测试,能够避免在对不同存储器芯片的测试过程中对测试系统的设计架构进行调整,从而能够提高对存储芯片的检测效率,节省测试成本。
可选地,所述存储区域包括第一存储区域和第二存储区域,在所述接收测试数据并将所述测试数据存储至存储区域之前,所述方法包括:
接收定义数据,根据所述定义数据确定将所述测试数据中的线性数据存储至所述第一存储区域,将所述测试数据中的非线性数据存储在第二存储区域。
在上述实现过程中,通过对数据向量进行分类,分别使用不同的存储区域存储一个类别的数据向量,可以实现根据数据向量的特征设置不同的存储器,从而可以提高测试芯片的灵活性。
可选地,所述根据所述测试信号从所述存储区域中获取所述测试数据包括:
根据所述测试信号从所述第一存储区域或所述第二存储区域中获取所述测试数据,基于所述测试数据确定下一条测试数据的存储位置。
在上述实现过程中,通过对数据向量进行计算从而确定下一条数据向量的存储位置,并对下一条数据向量进行处理的方式,能够实现对存储器芯片的自动化测试,从而能够提升测试效率。
可选地,所述定义数据包括数据向量类型,所述第一存储区域为外接存储器,所述第二存储区域为支持向量机,所述根据所述定义数据确定将所述测试数据中的线性数据存储至所述第一存储区域,将所述测试数据中的非线性数据存储在第二存储区域包括:
根据所述数据向量类型将所述测试数据中的线性数据向量存储至所述外接存储器中,将所述测试数据中的非线性数据向量存储至所述支持向量机中。
在上述实现过程中,基于数据的线性运行或非线性运行对测试数据进行分类,并分别存储至能够运行线性数据的外部存储器以及具有高速随机读写能力的支持向量机中,从而能够提高数据读写速度,提高芯片检测效率。
可选地,所述基于所述目标测试数据对寄存器进行逻辑操作,得到寄存器信息包括:
根据所述待测试芯片的地址管脚对所述寄存器的每一个位进行赋值,确定所述寄存器地址与所述待测试芯片输出管脚的对应关系,以得到所述寄存器信息。
在上述实现过程中,通过匹配芯片管脚与寄存器的位值,能够实现芯片管脚输出波形的自由切换,可以通过对寄存器进行逻辑操作改变寄存器的位值,从而切换输出波形,能够提高测试芯片的灵活性。
可选地,所述生成所述待测试芯片的输出波形索引并将所述输出波形索引发送至所述待测试芯片之前,所述方法包括:
基于匹配机制组合所述寄存器的位置值和所述测试数据,以生成输出波形索引。
第二方面,本申请实施例提供一种芯片测试装置,包括:
存储模块,用于接收测试数据并将所述测试数据存储至存储区域;
信号接收模块,用于接收测试信号,从所述存储区域中获取所述测试数据;
逻辑操作模块,用于基于所述测试数据对寄存器进行逻辑操作,得到寄存器信息,所述寄存器信息表征寄存器地址与待测试芯片管脚的对应关系;
输出波形选择模块,用于根据所述寄存器信息确定所述待测试芯片输出与所述测试数据对应的测试波形的管脚,生成所述待测试芯片的输出波形索引并将所述输出波形索引发送至所述待测试芯片;
测试模块,用于接收由所述待测试芯片基于所述输出波形索引输出的所述测试波形,以检测所述待测试芯片的性能。
在上述实现过程中,通过将测试数据向量进行处理生成波形输出,并基于波形输出对芯片的性能进行测试,能够避免在对不同存储器芯片的测试过程中对测试系统的设计架构进行调整,从而能够提高对存储芯片的检测效率,节省测试成本。
可选地,芯片测试装置还可以包括:
接收模块,用于在接收测试数据并将所述测试数据存储至存储区域之前,接收定义数据,根据所述定义数据确定将所述测试数据中的线性数据存储至所述第一存储区域,将所述测试数据中的非线性数据存储在第二存储区域。
在上述实现过程中,通过对数据向量进行分类,分别使用不同的存储区域存储一个类别的数据向量,可以实现根据数据向量的特征设置不同的存储器,从而可以提高测试芯片的灵活性。
可选地,信号接收模块可具体用于:
根据所述测试信号从所述第一存储区域或所述第二存储区域中获取所述测试数据,基于所述测试数据确定下一条测试数据的存储位置。
在上述实现过程中,通过对数据向量进行计算从而确定下一条数据向量的存储位置,并对下一条数据向量进行处理的方式,能够实现对存储器芯片的自动化测试,从而能够提升测试效率。
可选地,所述定义数据包括数据向量类型,所述第一存储区域为外接存储器,所述第二存储区域为支持向量机,信号接收模块还可用于:
根据所述数据向量类型将所述测试数据中的线性数据向量存储至所述外接存储器中,将所述测试数据中的非线性数据向量存储至所述支持向量机中。
在上述实现过程中,基于数据的线性运行或非线性运行对测试数据进行分类,并分别存储至能够运行线性数据的外部存储器以及具有高速随机读写能力的支持向量机中,从而能够提高数据读写速度,提高芯片检测效率。
可选地,逻辑操作模块可具体用于:
根据所述待测试芯片的地址管脚对所述寄存器的每一个位进行赋值,确定所述寄存器地址与所述待测试芯片输出管脚的对应关系,以得到所述寄存器信息。
在上述实现过程中,通过匹配芯片管脚与寄存器的位值,能够实现芯片管脚输出波形的自由切换,可以通过对寄存器进行逻辑操作改变寄存器的位值,从而切换输出波形,能够提高测试芯片的灵活性。
可选地,输出波形选择模块还可用于:
在生成所述待测试芯片的输出波形索引并将所述输出波形索引发送至所述待测试芯片之前,基于匹配机制组合所述寄存器的位置值和所述测试数据,以生成输出波形索引。
可选地,芯片测试装置还可以包括寄存器置乱(Scramble)模块,用于根据预设逻辑实时分析管脚状态,从而针对特殊存储器测试特殊存储器的管脚间逻辑关系。
可选地,所述芯片测试装置中每个模块同步进行工作,以基于流水线操作模式检测所述待测试芯片的性能。
由此可见,本申请实施例提供的芯片测试装置可以根据流水线操作的模式对待测试芯片进行测试,所有模块同步进行,从而不断生成测试数据向量对芯片进行测试,能够提高芯片测试的效率。
第三方面,本申请实施例提供一种电子设备,所述电子设备包括存储器和处理器,所述存储器中存储有程序指令,所述处理器读取并运行所述程序指令时,执行上述任一实现方式中的步骤。
第四方面,本申请实施例还提供一种计算机可读存储介质,所述可读取存储介质中存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行上述任一实现方式中的步骤。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。例如,附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
申请人在研究的过程中发现,在对存储器进行测试时,需要遍历存储器的所有存储单元进行检测存储单元的读写功能,记录存在错误的存储单元地址及错误类型,但对于存储器芯片而言,其中的数据量庞大且重复性高,普通的芯片测试系统由于内存限制无法测试存储器芯片。
目前普遍使用算法图形发生器(Algorithmic Pattern Generator,ALPG)实时生成测试向量的方法对存储器芯片进行测试,但ALPG设计架构固定,每次对不同存储器芯片进行测试时需要进行调整,存在测试效率低的问题。
有基于此,本申请实施例的目的在于提供一种芯片测试方法,使用存储器芯片测试选项(Memory Test Options,MTO)的方式对存储器芯片进行测试,基于自动生成测试向量的方式对存储器芯片进行测试,从而不需要对设计架构进行调整,能够提高存储器芯片测试效率。请参看图1,图1为本申请实施例提供的芯片测试方法的步骤示意图,芯片测试方法的流程可以包括如下步骤:
在步骤S11中,接收测试数据并将所述测试数据存储至存储区域。
其中,测试数据为从上位机下发的数据流,上位机可以是具有联网功能的电子设备,该电子设备可以是工程设备的配置器、手机、平板电脑、计算机、个人数字助理等。本申请实施例中提供的方法可以应用于现场可编程逻辑门阵列(Field Programmable GateArray,FPGA)中。FPGA可以设置在硬件板卡上。
在步骤S12中,接收测试信号,从所述存储区域中获取所述测试数据。
其中,测试信号可以由测试人员基于上位机发出,也可以设置为在接收到测试数据之后的固定时间发送测试信号,以对存储器芯片进行测试。
在步骤S13中,基于所述测试数据对寄存器进行逻辑操作,得到寄存器信息,所述寄存器信息表征寄存器地址与待测试芯片管脚的对应关系。
具体地,逻辑操作可以是对寄存器的每一位(bit)进行赋值或对寄存器的多个位进行直接赋值,如本申请实施例中使用XA寄存器,将XA寄存器第0-7bit分配给存储器芯片的地址管脚0-7。
在步骤S14中,根据所述寄存器信息确定所述待测试芯片输出与所述测试数据对应的测试波形的管脚,生成所述待测试芯片的输出波形索引并将所述输出波形索引发送至所述待测试芯片。
其中,待测试芯片可以为存储器芯片,存储器芯片具体可以为E-flash芯片、Nor-flash芯片、Nand-flash芯片和DDR存储芯片等,可以通过将寄存器信息和测试数据向量进行组合,生成输出波形索引。
在步骤S15中,接收由所述待测试芯片基于所述输出波形索引输出的所述测试波形,以检测所述待测试芯片的性能。
其中,可以使用TG芯片生成波形,通过将生成的输出波形索引输入至TG芯片,从而选择输出对应的波形,可以基于输出的波形判断存储器芯片的性能,如芯片的数据读入速度以及数据输出速度等。
由此可见,本申请实施例通过将测试数据向量进行处理生成波形输出,并基于波形输出对芯片的性能进行测试,能够避免在对不同存储器芯片的测试过程中对测试系统的设计架构进行调整,从而能够提高对存储芯片的检测效率,节省测试成本。
在一可选的实施例中,在步骤S11之前,本申请实施例中提供的方法还可以包括对测试数据进行分类的步骤,在接收测试数据并将所述测试数据存储至存储区域之前,所述方法可以包括:
接收定义数据,根据所述定义数据确定将所述测试数据中的线性数据存储至所述第一存储区域,将所述测试数据中的非线性数据存储在第二存储区域。
具体地,定义数据可以是基于编译器定义的管脚连接、波形定义和测试数据向量,编译器可以是UI软件Aitest,在定义完成后,可以基于有线或无线的连接方式将定义数据发送至FPGA中,在FPGA接收到定义数据时,根据定义数据将数据向量分类保存,将线性数据向量保存在第一存储区域中,将非线性数据向量保存在第二存储区域中,并在此时加载控制寄存器、PDS表、scramble表以及channel匹配表。
由此可见,本申请实施例通过对数据向量进行分类,分别使用不同的存储区域存储一个类别的数据向量,可以实现根据数据向量的特征设置不同的存储器,从而可以提高测试芯片的灵活性。
在一可选的实施例中,在对芯片进行测试时,特别是对存储器芯片进行测试时,需要使用大量数据对存储器芯片进行重复测量,因此,在本申请实施例提供的方法中还可以包括实现自动化测试的步骤,该步骤可以为:
根据所述测试信号从所述第一存储区域或所述第二存储区域中获取所述测试数据,基于所述测试数据确定下一条测试数据的存储位置。
具体地,可以通过Sequence模块对测试数据进行解析,在接收到开始测试的测试信号时,可以基于预设的顺序依次从第二存储区域中取出非线性向量进行解析,确定下一条数据向量的位置在第一存储区域或是在第二存储区域,并依次进行解析以及确定下一条数据向量位置的步骤,以实现对存储器芯片的自动化测试。
由此可见,本申请实施例通过对数据向量进行计算从而确定下一条数据向量的存储位置,并对下一条数据向量进行处理的方式,能够实现对存储器芯片的自动化测试,从而能够提升测试效率。
在一可选的实施例中,第一存储区域可以为外接存储器,第二存储区域可以为支持向量机,在本申请实施例提供的保存测试数据的步骤中可以包括:
根据所述数据向量类型将所述测试数据中的线性数据向量存储至所述外接存储器中,将所述测试数据中的非线性数据向量存储至所述支持向量机中。
其中,外部存储器可以是LVM模块,LVM模块具体为64M大小的第二代双倍速率同步动态随机存储器(Double Data Rate 2,DDR2)外部存储器,该存储器根据数据线性进行顺序读写,但由于DDR2为外部存储,在测试中具有较大的物理延时,因此,在本申请实施例中仅采用DDR2存储线性运行的测试向量,而非线性的测试向量存储至FPGA的块存储空间中,具体地,该存储空间可以为支持向量机(Support Vector Machine, SVM),该SVM可以为8K大小的FPGA块存储空间,其具有数据高速随机读写能力,因此,可以将所有非线性的测试向量存储至SVM中。
由此可见,本申请实施例基于数据的线性运行或非线性运行对测试数据进行分类,并分别存储至能够运行线性数据的外部存储器以及具有高速随机读写能力的支持向量机中,从而能够提高数据读写速度,提高芯片检测效率。
在一可选的实施例中,针对步骤13,本申请实施例提供一种对寄存器进行逻辑操作的实现方式,具体地,所述基于所述测试数据对寄存器进行逻辑操作,得到寄存器信息可以包括:
根据所述待测试芯片的地址管脚对所述寄存器的每一个位进行赋值,确定所述寄存器地址与所述待测试芯片输出管脚的对应关系,以得到所述寄存器信息。
其中,可以基于算术逻辑单元(Arithmetic and Logic Unit,ALU)对寄存器进行操作,对每一个位进行赋值,寄存器为多bit寄存器,可以基于分配(PDS)模块将寄存器的位值分配给芯片的地址管脚,可以通过匹配芯片管脚与寄存器的位值,得到寄存器信息,将寄存器信息发送至寄存器,从而决定存储芯片的每个引脚输出什么波形。
由此可见,本申请实施例通过匹配芯片管脚与寄存器的位值,能够实现芯片管脚输出波形的自由切换,可以通过对寄存器进行逻辑操作改变寄存器的位值,从而切换输出波形,能够提高测试芯片的灵活性。
在一可选的实施例中,在步骤S15之前,本申请实施例还提供一种生存输出波形索引的实现方式,具体地,在选择所述待测试芯片的输出波形索引之前,本申请实施例提供的方法还可以包括:
基于匹配机制组合所述寄存器的位置值和所述测试数据,以生成输出波形索引。
示例性地,可以通过波形选择(Channel)模块对每一个管脚进行输出/输入比较的波形选择,将4bit地址和4bit的测试数据组成8bit寻址预设波形,在本申请实施例中可以基于匹配机制实现4bit值选择,即16种波形,除去一种默认波形外,测试人员可自定义15种波形。将8bit波形索引发送至TG芯片中,选择出操作人员提前定义好的波形,以此来波形输出的功能。
另外,本申请实施例还可以设置寄存器置乱(Scramble)模块,通过Scramble模块根据预设逻辑实时分析管脚状态,从而针对特殊存储器测试特殊存储器的管脚间逻辑关系。
应当理解的是,上述SVM、Sequence模块、ALU模块、PDS模块、Channel模块和Scramble模块均是利用硬件描述语言在FPGA内部逻辑实现的。
基于同一发明构思,本申请实施例提供一种芯片测试装置20,请参看图2,图2为本申请实施例提供的芯片测试装置的示意图,该芯片测试装置20可以包括:
存储模块21,用于接收测试数据并将所述测试数据存储至存储区域。
信号接收模块22,用于用于接收测试信号,从所述存储区域中获取所述测试数据。
逻辑操作模块23,用于基于所述测试数据对寄存器进行逻辑操作,得到寄存器信息,所述寄存器信息表征寄存器地址与待测试芯片管脚的对应关系。
输出波形选择模块24,用于根据所述寄存器信息确定所述待测试芯片输出与所述测试数据对应的测试波形的管脚,生成所述待测试芯片的输出波形索引并将所述输出波形索引发送至所述待测试芯片。
测试模块25,用于接收由所述待测试芯片基于所述输出波形索引输出的所述测试波形,以检测所述待测试芯片的性能。
可选地,芯片测试装置20还可以包括:
接收模块,用于在接收测试数据并将所述测试数据存储至存储区域之前,接收定义数据,根据所述定义数据确定将所述测试数据中的线性数据存储至所述第一存储区域,将所述测试数据中的非线性数据存储在第二存储区域。
可选地,信号接收模块22可具体用于:
根据所述测试信号从所述第一存储区域或所述第二存储区域中获取所述测试数据,基于所述测试数据确定下一条测试数据的存储位置。
可选地,所述定义数据包括数据向量类型,所述第一存储区域为外接存储器,所述第二存储区域为支持向量机,信号接收模块22还可用于:
根据所述数据向量类型将所述测试数据中的线性数据向量存储至所述外接存储器中,将所述测试数据中的非线性数据向量存储至所述支持向量机中。
可选地,逻辑操作模块23可具体用于:
根据所述待测试芯片的地址管脚对所述寄存器的每一个位进行赋值,确定所述寄存器地址与所述待测试芯片输出管脚的对应关系,以得到所述寄存器信息。
可选地,输出波形选择模块24还可用于:
在生成所述待测试芯片的输出波形索引并将所述输出波形索引发送至所述待测试芯片之前,基于匹配机制组合所述寄存器的位置值和所述测试数据,以生成输出波形索引。
可选地,芯片测试装置20还可以包括寄存器置乱(Scramble)模块,用于根据预设逻辑实时分析管脚状态,从而针对特殊存储器测试特殊存储器的管脚间逻辑关系。
可选地,所述芯片测试装置20中每个模块同步进行工作,以基于流水线操作模式检测所述待测试芯片的性能。
其中,每个模块通过流水线的操作模式,所有模块同步运行,可以重复且有规律的测试存储器芯片,可以根据几千条微指令生成数十亿以上的测试数据向量,从而实现测试存储器这种重复性高,有规律的器件。
由此可见,本申请实施例提供的芯片测试装置可以根据流水线操作的模式对待测试芯片进行测试,所有模块同步进行,从而不断生成测试数据向量对芯片进行测试,能够提高芯片测试的效率。
基于同一发明构思,本申请实施例还提供一种电子设备,所述电子设备包括存储器和处理器,所述存储器中存储有程序指令,所述处理器读取并运行所述程序指令时,执行上述任一实现方式中的步骤。
基于同一发明构思,本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行上述任一实现方式中的步骤。
所述计算机可读存储介质可以是随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-OnlyMemory,PROM),可擦除只读存储器(Erasable Programmable Read-Only Memory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-Only Memory,EEPROM)等各种可以存储程序代码的介质。其中,存储介质用于存储程序,所述处理器在接收到执行指令后,执行所述程序,本发明实施例任一实施例揭示的过程定义的电子终端所执行的方法可以应用于处理器中,或者由处理器实现。
在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
再者,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
可以替换的,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。
所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。