本发明涉及芯片测试,更具体地说是一种单端口传输芯片的测试方法及系统。
背景技术
在目前的集成电路设计中,可测试性设计已经作为设计流程中重要的一环,芯片中集成的逻辑单元如微处理器、存储器、数字信号处理器(digitalsignalprocessors,dsps)普遍都带有自建测试模块(bist),以及需要对芯片内部某些重要模拟单元进行测试等等,普遍采用的方法是对芯片设定多种工作模式,将测试引脚或者通过jtag连接到芯片io上,在各个模式下分别测试。
上述这些原因不仅导致了芯片io数量的增加,而且导致在对单颗芯片测试时,需要的总的测试向量个数变得越来越大,从而导致集成电路设计中,测试成本占有芯片成本的比例越来越大。而测试成本和测试时间是成正比的,即单颗芯片测试时间越长,则测试成本就越高。
技术实现要素:
本发明的目的在于克服现有技术的不足,提供一种单端口传输芯片的测试方法及系统。
为实现上述目的,本发明采用以下技术方案:一种单端口传输芯片的测试方法,所述方法包括:
测试主机获取芯片的单端口数据传输控制权;
通过单端口对芯片内部待测模块进行测试配置;
根据测试配置读取待测模块的测试数据,并将读取到的测试数据通过单端口发送给测试主机。
其进一步技术方案为:所述通过单端口对芯片内部待测模块进行测试配置的步骤,具体包括以下步骤:
通过单端口串行总线输入相应待测模块寄存器地址;
对寄存器地址进行处理;
输入写控制命令;
根据控制命令以及寄存器地址将控制数据写入相应待测模块中。
其进一步技术方案为:所述对寄存器地址进行处理的步骤,具体包括以下步骤:
异步处理;
异步处理后进行串并转换处理。
其进一步技术方案为:所述根据测试配置读取待测模块的测试数据,并将读取到的测试数据通过单端口发送给测试主机的步骤,具体包括以下步骤:
进行芯片内部总线读操作;
测试主机释放单端口数据传输控制权;
芯片获取单端口传输控制权;
读取待测模块寄存器中的数据。
一种单端口传输芯片的测试系统,所述系统包括获取单元、配置单元以及读取单元;
所述获取单元,用于测试主机获取芯片的单端口数据传输控制权;
所述配置单元,用于通过单端口对芯片内部待测模块进行测试配置;
所述读取单元,用于根据测试配置读取待测模块的测试数据,并将读取到的测试数据通过单端口发送给测试主机。
其进一步技术方案为:所述配置单元包括输入模块、处理模块、命令模块以及写入模块;
所述输入模块,用于通过单端口串行总线输入相应待测模块寄存器地址;
所述处理模块,用于对寄存器地址进行处理;
所述命令模块,用于输入写控制命令;
所述写入模块,用于根据控制命令以及寄存器地址将控制数据写入相应待测模块中。
其进一步技术方案为:所述处理模块包括异步子模块以及串并转换子模块;
所述异步子模块,用于异步处理;
所述串并转换子模块,用于异步处理后进行串并转换处理。
其进一步技术方案为:所述读取单元包括读模块、释放模块、获得模块以及读取模块;
所述读模块,用于进行芯片内部总线读操作;
所述释放模块,用于测试主机释放单端口数据传输控制权;
所述获得模块,用于芯片获取单端口传输控制权;
所述读取模块,用于读取待测模块寄存器中的数据。
本发明与现有技术相比的有益效果是:本发明一种单端口传输芯片的测试方法及系统通过单端口对芯片内部待测模块进行测试配置,根据测试配置读取待测模块的测试数据,并将读取到的测试数据通过单端口发送给测试主机。实现了多个待测模块同时进行测试,测试主机可读取到各个待测模块的测试结果以及状态,进而大大节省了测试时间。而且只需要通过单端口便可实现同时对多个待测模块进行测试,减少了芯片io引脚数量,节约了芯片的生产成本。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明技术手段,可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征及优点能够更明显易懂,以下特举较佳实施例,详细说明如下。
附图说明
图1为本发明一种单端口传输芯片的测试方法具体实施例的流程图;
图2为本发明一种单端口传输芯片的测试方法具体实施例中测试配置的流程图;
图3为本发明一种单端口传输芯片的测试方法具体实施例中对寄存器地址进行处理的流程图;
图4为本发明一种单端口传输芯片的测试方法具体实施例中读取待测模块的测试数据并发送给测试主机的流程图;
图5为本发明一种单端口传输芯片的测试系统具体实施例的结构图;
图6为本发明一种单端口传输芯片的测试系统具体实施例中配置单元的结构图;
图7为本发明一种单端口传输芯片的测试系统具体实施例中处理模块的流程图;
图8为本发明一种单端口传输芯片的测试系统具体实施例中读取单元的流程图;
图9为本发明单端口传输编码图。
具体实施方式
为了更充分理解本发明的技术内容,下面结合具体实施例对本发明的技术方案进一步介绍和说明,但不局限于此。
应当理解,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体/操作/对象与另一个实体/操作/对象区分开来,而不一定要求或者暗示这些实体/操作/对象之间存在任何这种实际的关系或者顺序。
还应当理解,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
如图1-4、9所述,本发明提供了一种单端口传输芯片的测试方法,该方法包括:
s10、测试主机获取芯片的单端口数据传输控制权;
s20、通过单端口对芯片内部待测模块进行测试配置;
s30、根据测试配置读取待测模块的测试数据,并将读取到的测试数据通过单端口发送给测试主机。
具体的,单端口即单个端口,本实施例中,芯片的单端口为双向串行端口,所谓“双向”,指的是既可作为输入端口,又可作为输出端口。单端口一端通过芯片引脚输出芯片外,另一端则为总线控制端口,可实现芯片内部逻辑单元的读写操作。本发明只需一个双向端口,便可对芯片内的多个待测模块同时进行测试,显著地减少了芯片io引脚以及芯片测试时间。本发明只采用1个芯片引脚,而现有技术中jtag配置引脚需要5个,如芯片中有四个待测模块都带有jtag,则总共需要20个引脚,而采用本发明总共只需要1个引脚;如四个待测模块分别测试时间为n,则总共需要4n时间,而主要通过串转总线控制逻辑,对多个逻辑单元同时进行配置,同时进行测试,则时间最短可缩短为n,大大缩短了测试时间。
在某些实施例中,步骤s20具体包括以下步骤:
s201、通过单端口串行总线输入相应待测模块寄存器地址;
s202、对寄存器地址进行处理;
s203、输入写控制命令;
s204、根据控制命令以及寄存器地址将控制数据写入相应待测模块中。
具体的,通过单端口串行总线输入相应待测模块寄存器地址流程,当完成输入后,继续以单端口串行模式输入写控制命令,然后根据控制命令以及寄存器地址将控制数据写入相应待测模块中(在此之前,以对寄存器地址信息进行了处理),主机已经完成待测模块寄存器配置,配置完成之后,则可进入自测程序。
在某些实施例中,步骤s202具体包括以下步骤:
s2021、异步处理;
s2022、异步处理后进行串并转换处理。
具体的,因为待测芯片内部工作频率与外部测试主机工作时钟不同,因此需要进行异步处理,以避免数据信号的出错以及避免芯片的亚稳态的产生。串并转换处理主要是将串行总线数据转换为并行数据,具体的转换方式是:根据设定的串行数据次序,当接收到寄存器地址数据,则发送给读写地址模块存储;当接收到写数据后,发送给读写数据模块存储;当需读数据时,则读取数据模块中的数据,且将并行数据转换为串行数据输出。
在某些实施例中,步骤s30具体包括以下步骤:
s301、进行芯片内部总线读操作;
s302、测试主机释放单端口数据传输控制权;
s303、芯片获取单端口传输控制权;
s304、读取待测模块寄存器中的数据。
具体的,进行芯片内部总线读操作,此时测试主机已经释放双向单端口的控制权,芯片获取了双向单端口传输的控制权,当读取完待测模块寄存器中的数据后,将读取的数据以单端口串行形式输出给测试主机,测试主机可以通过此读流程,读取芯片内部待测试模块自测的状态。
进一步的,图9为单端口传输编码图,其中编号401为读操作的单端口串行传输编码,初始状态时,单端口传输信号为低电平,传输开始时,以高电平作为开始指示信号,后续读控制指令为低电平,后续包括32位的寄存器地址,而对应的32位数值,即为32位寄存器地址对应的数据,最后以低电平结束传输。编号502为写操作的单端口串行传输编码,初始状态时,单端口串行传输信号为低电平,传输开始时,以高电平作为开始指示信号,后续写控制指令为高电平,后续包括32位的寄存器地址,以及寄存器对应的32位数值,最后以低电平结束传输。编号503为读操作后读取的数据单端口串行传输编码,为主机进行读操作后,从机输出读数据,初始状态时,单端口串行传输信号为低电平,传输开始时,以高电平作为开始指示信号,后续即跟随32为数值,最后以低电平结束传输。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
对应于上述实施例所述的一种单端口传输芯片的测试方法,本发明提供了一种单端口传输芯片的测试系统,如图5-9所示,该系统包括获取单元1、配置单元2以及读取单元3;
获取单元1,用于测试主机获取芯片的单端口数据传输控制权;
配置单元2,用于通过单端口对芯片内部待测模块进行测试配置;
读取单元3,用于根据测试配置读取待测模块的测试数据,并将读取到的测试数据通过单端口发送给测试主机。
具体的,单端口即单个端口,本实施例中,芯片的单端口为双向串行端口,所谓“双向”,指的是既可作为输入端口,又可作为输出端口。单端口一端通过芯片引脚输出芯片外,另一端则为总线控制端口,可实现芯片内部逻辑单元的读写操作。本发明只需一个双向端口,便可对芯片内的多个待测模块同时进行测试,显著地减少了芯片io引脚以及芯片测试时间。本发明只采用1个芯片引脚,而现有技术中jtag配置引脚需要5个,如芯片中有四个待测模块都带有jtag,则总共需要20个引脚,而采用本发明总共只需要1个引脚;如四个待测模块分别测试时间为n,则总共需要4n时间,而主要通过串转总线控制逻辑,对多个逻辑单元同时进行配置,同时进行测试,则时间最短可缩短为n,大大缩短了测试时间。
在某些实施例中,配置单元2包括输入模块21、处理模块22、命令模块23以及写入模块24;
输入模块21,用于通过单端口串行总线输入相应待测模块寄存器地址;
处理模块22,用于对寄存器地址进行处理;
命令模块23,用于输入写控制命令;
写入模块24,用于根据控制命令以及寄存器地址将控制数据写入相应待测模块中。
具体的,通过单端口串行总线输入相应待测模块寄存器地址流程,当完成输入后,继续以单端口串行模式输入写控制命令,然后根据控制命令以及寄存器地址将控制数据写入相应待测模块中(在此之前,以对寄存器地址信息进行了处理),主机已经完成待测模块寄存器配置,配置完成之后,则可进入自测程序。
在某些实施例中,处理模块22包括异步子模块221以及串并转换子模块222;
异步子模块221,用于异步处理;
串并转换子模块222,用于异步处理后进行串并转换处理。
具体的,因为待测芯片内部工作频率与外部测试主机工作时钟不同,因此需要进行异步处理,以避免数据信号的出错以及避免芯片的亚稳态的产生。串并转换处理主要是将串行总线数据转换为并行数据,具体的转换方式是:根据设定的串行数据次序,当接收到寄存器地址数据,则发送给读写地址模块存储;当接收到写数据后,发送给读写数据模块存储;当需读数据时,则读取数据模块中的数据,且将并行数据转换为串行数据输出。
在某些实施例中,读取单元3包括读模块31、释放模块32、获得模块33以及读取模块34;
读模块31,用于进行芯片内部总线读操作;
释放模块32,用于测试主机释放单端口数据传输控制权;
获得模块33,用于芯片获取单端口传输控制权;
读取模块34,用于读取待测模块寄存器中的数据。
具体的,进行芯片内部总线读操作,此时测试主机已经释放双向单端口的控制权,芯片获取了双向单端口传输的控制权,当读取完待测模块寄存器中的数据后,将读取的数据以单端口串行形式输出给测试主机,测试主机可以通过此读流程,读取芯片内部待测试模块自测的状态。
进一步的,图9为单端口传输编码图,其中编号401为读操作的单端口串行传输编码,初始状态时,单端口传输信号为低电平,传输开始时,以高电平作为开始指示信号,后续读控制指令为低电平,后续包括32位的寄存器地址,而对应的32位数值,即为32位寄存器地址对应的数据,最后以低电平结束传输。编号502为写操作的单端口串行传输编码,初始状态时,单端口串行传输信号为低电平,传输开始时,以高电平作为开始指示信号,后续写控制指令为高电平,后续包括32位的寄存器地址,以及寄存器对应的32位数值,最后以低电平结束传输。编号503为读操作后读取的数据单端口串行传输编码,为主机进行读操作后,从机输出读数据,初始状态时,单端口串行传输信号为低电平,传输开始时,以高电平作为开始指示信号,后续即跟随32为数值,最后以低电平结束传输。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述系统的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的实施例中,应该理解到,所揭露的系统和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明实施例各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。
上述仅以实施例来进一步说明本发明的技术内容,以便于读者更容易理解,但不代表本发明的实施方式仅限于此,任何依本发明所做的技术延伸或再创造,均受本发明的保护。本发明的保护范围以权利要求书为准。