CN116643140A - 集成电路及集成电路的测试方法 - Google Patents
集成电路及集成电路的测试方法 Download PDFInfo
- Publication number
- CN116643140A CN116643140A CN202210138952.4A CN202210138952A CN116643140A CN 116643140 A CN116643140 A CN 116643140A CN 202210138952 A CN202210138952 A CN 202210138952A CN 116643140 A CN116643140 A CN 116643140A
- Authority
- CN
- China
- Prior art keywords
- test
- memory
- option
- read
- configuration sequence
- 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
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 722
- 230000015654 memory Effects 0.000 claims abstract description 282
- 238000000034 method Methods 0.000 claims description 16
- 238000010998 test method Methods 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 6
- 239000004065 semiconductor Substances 0.000 abstract description 4
- 239000013598 vector Substances 0.000 description 16
- 238000010586 diagram Methods 0.000 description 11
- 230000004048 modification Effects 0.000 description 10
- 238000012986 modification Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 9
- 238000004519 manufacturing process Methods 0.000 description 7
- 238000004458 analytical method Methods 0.000 description 6
- 230000004044 response Effects 0.000 description 6
- KNMAVSAGTYIFJF-UHFFFAOYSA-N 1-[2-[(2-hydroxy-3-phenoxypropyl)amino]ethylamino]-3-phenoxypropan-2-ol;dihydrochloride Chemical compound Cl.Cl.C=1C=CC=CC=1OCC(O)CNCCNCC(O)COC1=CC=CC=C1 KNMAVSAGTYIFJF-UHFFFAOYSA-N 0.000 description 5
- 238000012545 processing Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 230000000630 rising effect Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/2832—Specific tests of electronic circuits not provided for elsewhere
- G01R31/2834—Automated test systems [ATE]; using microprocessors or computers
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/3181—Functional testing
- G01R31/3183—Generation of test inputs, e.g. test vectors, patterns or sequences
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Tests Of Electronic Circuits (AREA)
Abstract
本申请提供一种集成电路及集成电路的测试方法,涉及半导体技术领域,使得集成电路在上电后需要进行测试,而此时的集成电路中的处理器还未正常运行时,可以根据实际的测试需求修改从只读存储器中获取的测试配置序列中的一个或多个测试选项。该集成电路包括只读存储器、输出电路以及至少一个可编程存储器;只读存储器存储第一测试配置序列,第一测试配置序列包括多个测试选项的测试值;至少一个可编程存储器存储多个测试选项中的目标测试选项的编程值;输出电路,被配置为在上电后读取第一测试配置序列;输出电路,还被配置为读取目标测试选项的编程值;输出电路,还被配置为根据第一测试配置序列以及目标测试选项的编程值生成第二测试配置序列。
Description
技术领域
本申请涉及半导体技术领域,尤其是涉及一种集成电路及集成电路的测试方法。
背景技术
内建自测试(build in self test,BIST)是指电路有自行生成测试向量,并自行检查测试结果的自测试功能,通常是通过在电路中内置与测试相关的功能电路来实现BIST。随着半导体产业的迅速发展,越来越多的集成电路中也使用BIST,并且,绝大多数的集成电路是通过在集成电路中内置BIST控制器以实现控制集成电路中的待测模块进行自测试。
在集成电路的设计中,BIST控制器通常会挂载到测试访问端口(test accessport,TAP)控制器下,TAP控制器接收测试配置序列,测试配置序列中包括多个测试选项,TAP控制器将多个测试选项传输至BIST控制器,以使得BIST控制器根据多个测试选项控制集成电路中的待测模块进行自测试。示例性的,在集成电路生产过程中,集成电路中的联合测试工作组(joint test action group,JTAG)管脚开启,可以将集成电路自动测试机(automatic test equipment,ATE)连接至JTAG管脚,以使得ATE将生成的测试配置序列通过JTAG管脚传输至TAP控制器,此时,ATE可以根据当前的测试需求修改测试配置序列中的一个或多个测试选项。在集成电路生产制造完成以后,为了确保集成电路的安全,一般会将集成电路中的JTAG管脚封闭。那么在集成电路通电并正常运行时,可以使用集成电路中的处理器传输测试配置序列至TAP控制器。如果该集成电路在上电后需要进行测试,然而此时的集成电路中的处理器还未正常运行,并且该集成电路中的JTAG管脚也被封闭,那么只能通过将集成电路中的只读存储器(read-only memory,ROM)中预置的测试配置序列传输至TAP控制器。但是,只读存储器ROM中预置的测试配置序列是不能更改的,使得该集成电路在上电后需要进行测试,而此时的集成电路中的处理器还未正常运行时,不能根据实际的测试需求修改从只读存储器ROM中获取的测试配置序列中的一个或多个测试选项。
发明内容
本申请实施例提供一种集成电路及集成电路的测试方法,使得该集成电路在上电后需要进行测试,而此时的集成电路中的处理器还未正常运行时,可以根据实际的测试需求修改从只读存储器中获取的测试配置序列中的一个或多个测试选项。
为达到上述目的,本申请实施例采用如下技术方案:
第一方面,本申请实施例提供了一种集成电路,包括:只读存储器、输出电路以及至少一个可编程存储器;只读存储器用于存储第一测试配置序列,第一测试配置序列包括多个测试选项的测试值;至少一个可编程存储器用于存储多个测试选项中的目标测试选项的编程值;输出电路,被配置为在上电后读取第一测试配置序列;输出电路,还被配置为读取目标测试选项的编程值;输出电路,还被配置为根据第一测试配置序列以及目标测试选项的编程值生成第二测试配置序列。在上述的集成电路中,输出电路在上电后读取只读存储器中存储的第一测试配置序列,第一测试配置序列中有多个测试选项,并且输出电路也读取至少一个可编程存储器中存储的目标测试选项的编程值,由于目标测试选项就是第一测试配置序列中需要修改的测试选项,在输出电路获取到第一测试配置序列以及目标测试序列的编程值以后,输出电路可以根据第一测试配置序列以及目标测试选项的编程值,生成第二测试配置序列,那么在输出电路将第二测试配置序列发送至测试设备时,测试设备即可根据第二测试配置序列对待测模块进行测试,使得该集成电路在上电后需要进行测试,而此时的集成电路中的处理器还未正常运行时,可以根据实际的测试需求修改从只读存储器中获取的测试配置序列中的一个或多个测试选项。
可选的,至少一个可编程存储器包括第一存储区域和第二存储区域,第一存储区域用于存储目标测试选项在只读存储器中的位置,第二存储区域用于存储目标测试选项的编程值;输出电路,还被配置为读取目标测试选项在只读存储器中的位置;输出电路,具体被配置为根据第一测试配置序列、目标测试选项在只读存储器中的位置以及目标测试选项的编程值生成第二测试配置序列。在该可选方案中,至少一个可编程存储器包括两个存储区域,两个存储区域中的第一存储区域存储目标测试选项在只读存储器中的位置,第二存储区域用于存储目标测试选项的编程值,那么在集成电路上电后,输出电路可以从第一存储区域中读取目标测试选项在只读存储器中的位置,也可以从第二存储区域中读取目标测试选项的编程值,由于目标测试选项就是第一测试配置序列中需要修改的测试选项,那么输出电路可以根据目标测试选项在只读存储器中的位置明确第一测试配置序列中的哪些测试选项需要被修改,并且输出电路根据第一测试配置序列、目标测试选项在只读存储器中的位置以及目标测试选项的编程值生成第二测试配置序列。
可选的,输出电路包括翻转器和选择器;翻转器,具体被配置为根据目标测试选项在只读存储器中的位置和其他位置生成使能信号;其中使能信号在目标测试选项在只读存储器中的位置处为第一状态,使能信号在其他位置处为第二状态,其他位置包括第一配置序列中除目标测试选项以外的其他测试选项在只读存储器中的位置;选择器,用于在使能信号为第一状态时获取第二存储区域中的目标测试选项的编程值,在使能信号为第二状态时获取其他测试选项的测试值,根据目标测试选项的编程值以及其他测试选项的测试值生成第二测试配置序列。在该可选方式中,翻转器根据可编程存储器中的目标测试选项在只读存储器中的位置生成使能信号,使能信号中的第一状态表示目标测试选项在只读存储器中的位置,使能信号的第二状态表示多个测试选项中除目标测试选项以外的其他测试选项在只读存储器中的位置,以使得选择器可以根据使能信号的不同状态准确获取到目标测试选项的编程值以及除目标测试选项外的其他测试选项的测试值,进而生成第二测试配置序列。
可选的,至少一个可编程存储器包括第一可编程存储器和第二可编程存储器;第一可编程存储器提供第一存储区域,第二可编程存储器提供第二存储区域。在该可选方式中,可以将目标测试选项的编程值与目标测试选项在只读存储器中的位置存储在不同的可编程存储器中,以扩大存储空间,使得该集成电路可以对更多的目标测试选项进行修改。
可选的,多个测试选项包括:待测模块列表,测试强度参数以及测试配置。
可选的,目标测试选项包括以下一项或多项:待测模块列表,测试强度参数以及测试配置。
第二方面,提供了一种集成电路的测试方法,集成电路包括:只读存储器、输出电路以及至少一个可编程存储器;只读存储器用于存储第一测试配置序列,第一测试配置序列包括多个测试选项的测试值;至少一个可编程存储器用于存储多个测试选项中的目标测试选项的编程值;集成电路的测试方法包括:在上电后读取第一测试配置序列;读取目标测试选项的编程值;根据第一测试配置序列以及目标测试选项的编程值生成第二测试配置序列。
可选的,至少一个可编程存储器包括第一存储区域和第二存储区域,第一存储区域用于存储目标测试选项在只读存储器中的位置,第二存储区域用于存储目标测试选项的编程值;集成电路的测试方法还包括:读取目标测试选项在只读存储器中的位置;则根据第一测试配置序列以及目标测试选项的编程值生成第二测试配置序列具体包括:根据第一测试配置序列、目标测试选项在只读存储器中的位置以及目标测试选项的编程值生成第二测试配置序列。
可选的,根据第一测试配置序列、目标测试选项在只读存储器中的位置以及目标测试选项的编程值生成第二测试配置序列,具体包括:根据目标测试选项在只读存储器中的位置和其他位置生成使能信号;其中使能信号在目标测试选项在只读存储器中的位置处为第一状态,使能信号在其他位置处为第二状态,其他位置包括第一配置序列中除目标测试选项以外的其他测试选项在只读存储器中的位置;在使能信号为第一状态时获取第二存储区域中的目标测试选项的编程值,在使能信号为第二状态时获取其他测试选项的测试值;根据目标测试选项的编程值以及其他测试选项的测试值生成第二测试配置序列。
可选的,多个测试选项包括:待测模块列表,测试强度参数以及测试配置。
可选的,目标测试选项包括以下一项或多项:待测模块列表,测试强度参数以及测试配置。
第三方面,提供了一种电子设备,包括印刷电路板以及设置于印刷电路板上的如上述第一方面任一项所述的集成电路。
第四方面,提供了一种计算机可读存储介质,包括计算机指令,当计算机指令在电子设备上运行时,使得电子设备执行上述第二方面任一项所述的方法。
第五方面,提供了一种计算机程序产品,当计算机程序产品在电子设备上运行时,使得电子设备执行上述第二方面任一项所述的方法。
其中,第二方面至第五方面中任一种可能实现方式中所带来的技术效果可参见上述第一方面任一项不同的实现方式所带来的技术效果,此处不再赘述。
附图说明
图1为本申请的实施例一提供的集成电路的结构示意图;
图2为本申请的实施例二提供的集成电路的结构示意图;
图3为本申请的实施例二提供的BIST的结构示意图;
图4为本申请的实施例三提供的集成电路的一种结构示意图;
图5为本申请的实施例三提供的集成电路的另一种结构示意图;
图6为本申请的实施例三提供的集成电路的再一种结构示意图;
图7为本申请的实施例四提供的集成电路的结构示意图;
图8为本申请的实施例五提供的集成电路的结构示意图;
图9为本申请的实施例六提供的集成电路的测试方法的流程示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。
除非另有定义,否则本文所用的所有科技术语都具有与本领域普通技术人员公知的含义相同的含义。在本申请中,“至少一个(层)”是指一个(层)或者多个(层),“多个(层)”是指两个(层)或两个(层)以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,a和b,a和c,b和c或a、b和c,其中a、b和c可以是单个,也可以是多个。另外,在本申请的实施例中,“第一”、“第二”等字样并不对数量和次序进行限定。
此外,本申请中,“上”、“下”等方位术语是相对于附图中的部件示意置放的方位来定义的,应当理解到,这些方向性术语是相对的概念,它们用于相对于的描述和澄清,其可以根据附图中部件所放置的方位的变化而相应地发生变化。
需要说明的是,本申请中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其他实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
以下对本申请的实施例中的技术术语说明如下:
联合测试工作组(joint test action group,JTAG)是一种国际标准测试协议(与IEEE1149.1标准兼容),主要用于集成电路内部测试。其基本工作原理是:在集成电路内部定义一个测试访问端口(Test Access Port,TAP)控制器,通过与JTAG调试器传输符合IEEE1149.1标准的测试配置序列至TAP控制器,TAP控制器根据测试配置序列可以实现对集成电路内部的寄存器的访问,例如向集成电路内部的寄存器写入数据或读取集成电路内部的寄存器中的数据,并且JTAG调试器还可以根据写入到集成电路内部的寄存器的数据和/或读取到的集成电路内部的存储器的数据,对集成电路的功能进行测试和调试。
内建自测试(build in self test,BIST)是指电路有自行生成测试向量,并自行检查测试结果的自测试功能,通常是通过在电路中内置与测试相关的功能电路来实现BIST。随着半导体产业的迅速发展,越来越多的集成电路中也使用BIST,并且,绝大多数的集成电路是通过在集成电路中内置BIST控制器以实现控制集成电路中的待测模块进行自测试。
参照图1所示,本申请的实施例提供了集成电路100的结构示意图,该集成电路100包括处理器101、只读存储器(read-only memory,ROM)102、测试设备103以及待测模块104。其中,处理器101用于生成测试配置序列,只读存储器102中存储有测试配置序列,上述的测试配置序列包括多个测试选项。在集成电路100中的待测模块需要进行自测试时,测试设备103可以接收处理器101中的测试配置序列或者接收只读存储器102中存储的测试配置序列,以便测试设备103根据测试配置序列对待测模块104进行测试。
参照图2所示,图2提供了集成电路200的原理结构示意图,在该集成电路200中,包括JTAG管脚201、处理器202、只读存储器(read-only memory,ROM)203、选择器204、TAP控制器205以及BIST控制器206,其中,JTAG管脚201、处理器202以及只读存储器203都连接至选择器204,选择器204还连接至TAP控制器205,TAP控制器205连接至BIST控制器206。其中,BIST控制器206包括BIST控制器206a、BIST控制器206b以及BIST控制器206c,每一个BIST控制器中包含逻辑内建自测试(logic built in self test,LBIST)2061和/或存储器内建自测试(memory build in self test,MBIST)2062。JTAG管脚201包括测试数据输入(testdata input,TDI)管脚、测试模式选择(test mode selection input,TMS)管脚、测试时钟输入(test clock input,TCK)管脚以及测试数据输出(test data output,TDO)管脚,这四个管脚是IEEE1149.1标准规定的必选管脚。其中,JTAG管脚201也可以传输测试配置序列。
示例性的,选择器204以及TAP控制器205构成测试设备103,BIST控制器206中的每一个MBIST或LBIST构成待测模块104。
示例性的,图2所示的集成电路中可以有更多或更少的BIST控制器,每一个BIST控制器中可以只包括LBIST2061,也可以只包括MBIST2062,还可以包括LBIST2061以及MBIST2062,或者还可以包括其他的功能电路,本申请的实施例对BIST控制器206的个数以及BIST控制器中包括的功能电路不做限定。
在集成电路100处于不同的状态时,选择器204可以选中JTAG管脚201、处理器202或者只读存储器203中的任一个传输符合IEEE 1149.1标准的测试配置序列至TAP控制器205。
具体的,在集成电路生产制造的最后一步,一般会将集成电路自动测试机(automatic test equipment,ATE)连接至JTAG管脚201,此时选择器204选中JTAG管脚201传输ATE生成的符合IEEE 1149.1标准的测试配置序列至TAP控制器,测试配置序列中包括多个测试选项,TAP控制器将多个测试选项传输至BIST控制器,以使得BIST控制器根据多个测试选项进行自测试。
示例性的,上述的测试配置序列中还包括ATE传输至TDI管脚的TDI控制信号,ATE传输至TMS管脚的TMS控制信号,以及ATE传输至TCK管脚的TCK控制信号,ATE通过将TDI控制信号、TMS控制信号以及TCK控制信号传输至TAP控制器205,使得TAP控制序列实现对集成电路内部的寄存器的访问。其中,TAP控制器是将选定的一个寄存器连接到TDI管脚和TDO管脚之间,然后由TCK控制信号驱动,通过TDI管脚传输TDI控制信号,TDI控制信号包括需要写入到选定的一个寄存器中的数据,以实现将需要写入到选定的一个寄存器中的数据写入至选定的这个寄存器中,或者实现将选定的一个寄存器中的数据通过TDO管脚读取出来。
具体的,集成电路内部的寄存器包括指令寄存器(instruction register,IR)以及数据寄存器(data register,DR),在ATE传输的TMS控制信号保持高电平并且传输TCK控制信号包括至少5个选通脉冲(一个选通脉冲是TCK控制信号先变高电平再变低电平)后,TAP控制器205处于测试逻辑复位状态(test logic reset),然后TAP控制器205根据TCK控制信号的上升沿驱动状态的转移,根据TMS控制信号选择下一次转换的状态,可以进入运行测试空闲状态(Run-Test-Idle)、选择数据寄存器扫描状态(Select-DR-Scan)、捕获数据寄存器状态(Capture-DR)、移位数据寄存器状态(Shift-DR)、退出数据寄存器状态1(Exit1-DR)、暂停数据寄存器状态(Pause-DR)、退出数据寄存器状态2(Exit2-DR)、更新数据寄存器状态(Update-DR)、选择指令寄存器扫描状态(Select-IR-Scan)、捕获指令寄存器状态(Capture-IR)、移位指令寄存器状态(Shift-IR)、退出指令寄存器状态1(Exit1-IR)、退出指令寄存器状态1(Exit1-IR)、退出指令寄存器状态2(Exit2-IR)、更新指令寄存器状态(Update-IR)中的任一个。并且在上述的16个状态之间的进行切换时,TAP控制器即可实现选定指令寄存器,向指令寄存器中写入数据,读取指令寄存器中的数据,选定数据寄存器,向数据寄存器中写入数据,读取数据寄存器中的数据等不同的功能。需要说明的是,TAP控制器的16个状态之间的切换具体可以实现的功能可以参考现有的TAP控制器的功能描述,在此不赘述。
示例性的,在JTAG管脚201中包括测试复位(test reset input,TRST)管脚时,则ATE通过JTAG管脚201传输的符合IEEE 1149.1标准的测试配置序列还包括传输至TRST管脚的TRST控制信号,并且TAP控制器205在TRST控制信号为高电平时处于测试逻辑复位状态。
另外,在集成电路中,数据寄存器还包括一些用户自定义数据寄存器(userdefined data register),TAP控制器205可以利用上述的16个状态之间的切换访问用户自定义数据寄存器。示例性的,参照图2所示,选择器204选中JTAG管脚201传输ATE生成的符合IEEE 1149.1标准的测试配置序列至TAP控制器,该测试配置序列还包括多个测试选项,TAP控制器205通过上述的16个状态的切换实现对集成电路内部的用户自定义寄存器的访问。其中,TAP控制器通过TDI管脚传输多个测试选项,将多个测试选项写入至不同的用户自定义寄存器中,然后,TAP控制器205控制该用户自定义数据寄存器,以实现将用户自定义寄存器中写入的测试选项传输至BIST控制器206,进而使得BIST控制器根据多个测试选项进行自测试。
参照图3所示的BIST的结构示意图,其中,无论是逻辑内建自测试(logic builtin self test,LBIST)2061,还是存储器内建自测试(memory build in self test,MBIST)2062,其中都包含测试向量生成模块301、被测电路302以及输出响应分析模块303,并且,测试向量生成模块301连接至被测电路302,被测电路302连接至输出响应分析模块303。其中,测试向量生成模块301包括线性反馈移位寄存器(linear feedback shift register,LFSR),测试向量生成模块301可以根据测试选项生成测试向量,将生成的测试向量传输至被测电路302。示例性的,在LBIST2061中,该测试向量可以是控制集成电路中的逻辑功能电路模块的信号;在MBIST2062中,该测试向量可以是往集成电路的存储器中存储的存储信息。被测电路302根据测试向量生成输出值,示例性的,在LBIST2061中,该被测电路302可以是集成电路中的任何逻辑功能电路模块;在MBIST2062中,该被测电路302具体可以是集成电路中的任一个存储器。输出响应分析模块303包括多输入特征寄存器(multiple-inputsignature register,MISR),多输入特征寄存器MISR从被测电路302中获取输出值,并生成一个压缩的输出向量,该输出向量被称为特征,并且输出响应分析模块303将这个特征与一个已知的从无故障待测模块中得到的特征进行对比,根据对比结果确定被测电路302的正确性,生成测试结果。
示例性的,在集成电路200中,输出响应分析模块303生成的测试结果传输至BIST控制器206,BIST控制器206还连接至集成电路中的用户自定义寄存器,则ATE可以通过控制TAP控制器205以使得与BIST控制器206连接的用户自定义寄存器获取BIST控制器206中的输出响应分析模块303生成的测试结果,并且将测试结果通过TDO管脚传输至ATE。
通常,ATE传输至TAP控制器205的测试配置序列中的多个测试选项包括待测模块列表、测试强度以及测试配置等内容。并且,ATE可以根据实际的测试需求修改测试配置序列中的一个或多个测试选项,以使得BIST控制器206的自测试更加灵活。
以上说明了在集成电路生产制造的最后一步,将ATE连接至JTAG管脚201,选择器204选中JTAG管脚201传输ATE生成的符合IEEE 1149.1标准的测试配置序列至TAP控制器,该测试配置序列包括多个测试选项,BIST控制器根据多个测试选项进行自测试。需要说明的是,在集成电路生产制造完成以后,集成电路中的JTAG管脚201会被封闭,其目的是为了避免集成电路在应用过程中受到恶意破坏。
参照图2所示,如果集成电路200通电并正常运行时,此时选择器204可以选中处理器202传输处理器202生成的符合IEEE 1149.1标准的测试配置序列至TAP控制器205,该测试配置序列包括多个测试选项,BIST控制器根据多个测试选项进行自测试。并且,处理器202可以根据实际的测试需求修改测试配置序列中的一个或多个测试选项,以使得BIST控制器206的自测试更加灵活。
示例性的,上述的处理器202可以是中央处理器(central processing unit,CPU)、通用处理器网络处理器(network processor,NP)、数字信号处理器(digital signalprocessing,DSP)、微处理器、微控制器、可编程逻辑器件(programmable logic device,PLD)或它们的任意组合。处理器202还可以是其它任意具有处理功能的装置,如电路、器件或软件模块,本申请实施例对处理器的具体形式不做特殊限制。
参照图2所示,如果集成电路200在上电后需要进行测试,但是此时的集成电路200中的处理器202还未正常运行,并且该集成电路200中的JTAG管脚201也被封闭,那么,选择器204可以选中只读存储器203传输符合IEEE 1149.1标准的测试配置序列至TAP控制器205,该测试配置序列包括多个测试选项,BIST控制器根据多个测试选项进行自测试,通常,在集成电路生产制造完成时,会在只读存储器203中预置的符合IEEE 1149.1标准的测试配置序列,还会将只读存储器203中预置的测试配置序列中的多个测试选项的存储位置和测试值在集成电路的生产说明书中详细示出。但是,只读存储器203中预置的测试配置序列是不能更改的,使得该集成电路在上电后需要进行测试,而此时的集成电路中的处理器还未正常运行时,不能根据实际的测试需求修改从只读存储器ROM中获取的测试配置序列中的一个或多个测试选项。
其中,集成电路刚上电时进行的自测试也被称为上电内建自测试(power-onBIST)。
为了解决集成电路在上电后需要进行测试,而此时的集成电路中的处理器还未正常运行,不能根据实际的测试需求修改从只读存储器ROM获取的测试配置序列中的一个或多个测试选项的问题,本申请的实施例提供了一种集成电路,参照图4所示,该集成电路400包括:只读存储器401、输出电路403以及一个可编程存储器402;只读存储器401用于存储第一测试配置序列,第一测试配置序列包括多个测试选项的测试值;可编程存储器402用于存储目标测试选项的编程值;输出电路403,被配置为在上电后读取第一测试配置序列;输出电路403,还被配置为读取目标测试选项的编程值;输出电路403,还被配置为根据第一测试配置序列以及目标测试选项的编程值生成第二测试配置序列。
示例性的,只读存储器401中存储的第一测试配置序列,是集成电路400生产制造完成时,在只读存储器401中预置的符合IEEE 1149.1标准的测试配置序列,并且集成电路400的生产说明书会将详细示出只读存储器401中预置的测试配置序列中的多个测试选项的存储位置和测试值。其中,该多个测试选项包括:待测模块列表,测试强度以及测试配置,待测模块列表用于指示需要对那些待测模块进行测试,测试强度包括:测试覆盖率,测试向量数以及测试时间等,其中,测试覆盖率表示能测试到的待测模块的百分比,例如测试目标覆盖为100%表示将待测模块全部测试,测试向量数表示测试的数据,测试时间表示多长时间完成测试;测试配置包括:线性反馈移位寄存器LFSR种子、开启时钟域、多输入特征寄存器MISR比对值以及测试算法等,其中线性反馈移位寄存器LFSR种子表示线性反馈移位寄存器的初始值,开启时钟域表示在时钟信号处于上升沿或是下降沿是开启测试,多输入特征寄存器MISR比对值表示无故障待测模块中得到的特征值,测试算法包括March算法,Checkerboard算法。其中,测试值具体用来限定相应的测试选项的内容或范围。例如,测试选项可以是待测模块列表,测试值可以为LBIST或MBIST的标识;又例如测试选项可以是测试时间,则测试值为具体的时间范围。
示例性的,在集成电路400的安全等级、上电启动时间要求、应用场景、测试功耗等因素发生改变时,可以根据不同的测试需求更改只读存储器401中存储的多个测试选项中的一个或多个测试选项的测试值,目标测试选项就是需要更改的测试选项,目标测试选项包括:待测模块列表,测试强度以及测试配置。可编程存储器402用于存储多个测试选项中的目标测试选项的编程值。其中,编程值具体用来限定相应的测试选项更改为的内容或范围,例如测试选项是测试时间,测试值为5秒,那么编程值可以是10秒,表示当前的测试时间由5秒更改为10秒。
需要说明的是,目标测试选项可以是一个也可以是多个,本申请的实施例对此不做限定。其中,可编程存储器402包括以下一种或多种存储器:可编程只读存储器(programmable read-only memory,PROM)、电可改写只读存储器(electricallyalterable read only memory,EAROM)、可擦可编程只读存储器(erasable programmableread only memory,EPROM)、电可擦可编程只读存储器(Electrically erasableprogrammable read only memory,EEPROM)、一次编程只读存储器(one timeprogrammable read only memory,OTPROM)以及电子保险丝(electric-fuse,EFUSE)。
输出电路403,被配置为在上电后读取第一测试配置序列;输出电路403,还被配置为读取目标测试选项的编程值;输出电路403,还被配置为根据第一测试配置序列以及目标测试选项的编程值生成第二测试配置序列。
示例性的,在集成电路400中不包括测试设备和待测模块时,输出电路403可以将第二测试配置序列通过标准接口传输至待测设备,而后待测设备根据第二测试配置序列对待测模块进行测试。
在集成电路400中包括测试设备404以及待测模块405,那么输出电路403可以将第二测试配置序列传输至测试设备404,以使得测试设备404根据第二测试配置序列对待测模块405进行测试。
在上述的集成电路中,输出电路在上电后读取只读存储器中存储的第一测试配置序列,第一测试配置序列包括多个测试选项,并且输出电路也读取至少一个可编程存储器中存储的目标测试选项的编程值,由于目标测试选项就是第一测试配置序列中需要修改的测试选项,在输出电路获取到第一测试配置序列以及目标测试选项的编程值以后,输出电路可以根据第一测试配置序列以及目标测试选项的编程值,生成第二测试配置序列,那么在输出电路将第二测试配置序列发送至测试设备时,测试设备即可根据第二测试配置序列对待测模块进行测试,使得该集成电路在上电后需要进行测试,而此时的集成电路中的处理器还未正常运行时,可以根据实际的测试需求修改从只读存储器中获取的测试配置序列中的一个或多个测试选项。
示例性的,可编程存储器402可以包括第一存储区域和第二存储区域,第一存储区域用于存储目标测试选项在只读存储器中的位置,第二存储区域用于存储目标测试选项的编程值;则输出电路403,还被配置为读取目标测试选项在只读存储器401中的位置;输出电路403,具体被配置为根据第一测试配置序列、目标测试选项在只读存储器401中的位置以及目标测试选项的编程值生成第二测试配置序列。
其中,在需要根据不同的测试需求更改只读存储器401中存储的多个测试选项中的一个或多个测试选项的测试值,可以根据集成电路400的生产说明书记录的内容查找目标测试选项在只读存储器401中的位置以及测试值,然后,在可编程存储器402的第一存储区域中存储目标测试选项在只读存储器401中的位置,在可编程存储器402的第二存储区域中存储目标测试选项的编程值。
示例性的,当目标测试选项的数量比较少时,可以只设置一个可编程存储器402,将该可编程存储器402的存储空间分为第一存储区域和第二存储区域,在第一存储区域中存储目标测试选项在只读存储器401中的位置,在第二存储区域中存储目标测试选项的编程值。
示例性的,当目标测试选项的数量比较多时,可以设置两个可编程存储器,分别是第一可编程存储器和第二可编程存储器,参照图5所示,集成电路400中的可编程存储器402包括第一可编程存储器4021和第二可编程存储器4022,第一可编程存储器4021提供第一存储区域,并且在第一可编程存储器4021中存储目标测试选项在只读存储器401中的位置;第二可编程存储器4022提供第二存储区域,在第二可编程存储器4022中存储目标测试选项的编程值。
当然在目标测试选项的数量更多时,可以设置更多的可编程存储器,第一存储区域由多个可编程存储器提供,第二存储区域由多个可编程存储器提供,第一存储区域存储目标测试选项在只读存储器401中的位置,第二存储区域存储目标测试选项的编程值。本申请的实施例对可编程存储器的数量不做限定。
那么,输出电路403,还被配置为读取目标测试选项在只读存储器401中的位置;输出电路403,具体被配置为根据第一测试配置序列、目标测试选项在只读存储器401中的位置以及目标测试选项的编程值生成第二测试配置序列。具体的,集成电路400上电后,输出电路403可以从第一存储区域中读取目标测试选项在只读存储器中的位置,也可以从第二存储区域中读取目标测试选项的编程值,由于目标测试选项就是第一测试配置序列中需要修改的测试选项,那么输出电路403可以根据目标测试选项在只读存储器401中的位置明确第一测试配置序列中的哪些测试选项需要被修改,并且输出电路403根据第一测试配置序列、目标测试选项在只读存储器中的位置以及目标测试选项的编程值生成第二测试配置序列。
示例性的,参照图6所示,输出电路403包括翻转器4031和选择器4032;翻转器4031,具体被配置为根据目标测试选项在只读存储器401中的位置和其他位置生成使能信号;其中使能信号在目标测试选项在只读存储器中的位置处为第一状态,使能信号在其他位置处为第二状态,其他位置包括第一配置序列中除目标测试选项以外的其他测试选项在只读存储器401中的位置;选择器4032,用于在使能信号为第一状态时获取第二存储区域中的目标测试选项的编程值,在使能信号为第二状态时获取其他测试选项的测试值,根据目标测试选项的编程值以及其他测试选项的测试值生成第二测试配置序列。
示例性的,参照图7所示,本申请的实施例提供了集成电路400中的具体结构示意图,第一可编程存储器4021提供第一存储区域,第二可编程存储器4022提供第二存储区域。需要说明的是,依据图7所摆放的方向,图7中的只读存储器401以及第二可编程存储器4022中的比特位数的次序是按照从右至左的方向,从1开始每次增大1的顺序进行排序的,图7中的第一可编程存储器4021的存储地址的次序是按照从右至左的方向,从1开始每次增大1的顺序进行排序的。其中,只读存储器401中存储有24位二进制数据,分别是“010101000111001101110010”,每一位二进制数据为1比特(bit),该24位二进制数据就是第一测试配置序列。第一测试配置序列中包括多个测试选项,如图所示,该24位二进制数据中第3比特位至第6比特位是第一测试选项的测试值“0101”,该24位二进制数据中第11比特位至第13比特位是第二测试选项的测试值“110”,该24位二进制数据中第19比特位至第23比特位是第三测试选项的测试值“11001”,除上述3个测试选项的编程值以外,其他的比特位可以是其他的测试配置序列,也可以是TDI控制信号、TMS控制信号以及TCK控制信号等,其中,多个测试选项中需要修改的测试选项为第一测试选项、第二测试选项以及第三测试选项,该三个测试选项就是目标测试选项。那么需要先在集成电路400的生产说明书中找到目标测试选项的位置,然后在第一可编程存储器4021中存储目标测试选项在只读存储器401中的位置。示例性的,第一可编程存储器4021中的每8位二进制位数被当做一个存储地址(如图7所示的8’即代表8位二进制数据),并且每一个存储地址的存储值为该8位二进制数据转换的十进制数字(如图7所示的d2就表示十进制数字2)。参照图7所示,图7中的第一可编程存储器4021中包括7个存储地址,并且第一个存储地址存储的二进制数据为“00000010”,表示的是十进制数字2,因为在只读存储器401中,前两个比特位中的测试值“01”是不需要修改的;第二个存储地址存储的二进制数据为“00000100”,表示的是十进制数字4,因为在只读存储器401中,第3比特位至第6比特位是第一测试选项的测试值“0101”,该第一测试选项的测试值需要被修改;第三个存储地址存储的二进制数据为“00000100”,表示的是十进制数字4,因为在只读存储器401中,第7比特位至第10比特位的测试值“0001”是不需要修改的;第四个存储地址存储的二进制数据为“00000011”,表示的是十进制数字3,因为在只读存储器401中,第11比特位至第13比特位是第二测试选项的测试值“110”,该第二测试选项的测试值需要被修改;第五个存储地址存储的二进制数据为“00000101”,表示的是十进制数字5,因为在只读存储器401中,第14比特位至第18比特位的测试值“01101”是不需要修改的;第六个存储地址存储的二进制数据为“00000101”,表示的是十进制数字5,因为在只读存储器401中,第19比特位至第23比特位是第三测试选项的测试值“11001”,该第三测试选项的测试值需要被修改;第七个存储地址存储的二进制数据为“00000001”,表示的是十进制数字1,因为在只读存储器401中,第24比特位的测试值“0”是不需要修改的。
在第二可编程存储器4022中,第1比特位至第4比特位存储的是第一测试选项的编程值“1101”,第5比特位至第7比特位存储的是第二测试选项的编程值“010”,第8比特位至第12比特位存储的是第三测试选项的编程值“01010”。
也就表示,在第一可编程存储器4021中,存储地址的存储值依次分别代表“只读存储器401中需要修改的比特位数,只读存储器401中不需要修改的比特位数,只读存储器401中需要修改的比特位数,只读存储器401中不需要修改的比特位数…”的规律,存储目标测试选项在只读存储器401中的位置。第二可编程存储器中存储目标测试选项的编程值。
然后,在集成电路400上电时,输出电路403中的翻转器4031,根据目标测试选项在只读存储器中的位置,生成使能信号,该使能信号的高电平状态(也就是上述的第一状态)对应于只读存储器401中需要修改的比特位数,也就是目标测试选项在只读存储器401中的位置,并且高电平的比特位长度等于需要修改的比特位数;使能信号的低电平状态(也就是上述的第二状态)对应于只读存储器中不需要修改的比特位数,也就是除目标测试选项以外的其他测试选项在只读存储器401中的位置,并且低电平的比特位长度等于需要不修改的比特位数。具体的,图7所示的使能信号为2个比特位长度的低电平,4个比特位长度的高电平,4个比特位长度的低电平,3个比特位长度的高电平,5个比特位长度的低电平,5个比特位长度的高电平,1个比特位长度的低电平。
然后输出电路403中的选择器4032,在使能信号为低电平时,获取与低电平的比特位长度相等的第一测试配置序列中除目标测试选项外的其他测试选项的测试值,在使能信号为高电平时,获取与高电平的比特位长度相等的第二可编程存储器4022中的目标测试选项的编程值。根据目标测试选项的编程值以及除目标测试选项外的其他测试选项的测试值生成第二测试配置序列。也就是说,在使能信号为2个比特位长度的低电平时,选择器4032获取只读存储器401中的第1比特位至第2比特位的值作为一个测试值“01”,在使能信号为4个比特位长度的高电平时,选择器4032获取第二可编程存储器4022中的第1比特位至第4比特位的值作为一个编程值“1101”,在使能信号为4个比特位长度的低电平时,选择器4032获取只读存储器401中的第7比特位至第10比特位的值作为一个测试值“0001”,在使能信号为3个比特位长度的高电平时,选择器4032获取第二可编程存储器4022中的第4比特位至第6比特位的值作为一个编程值“010”,在使能信号为5个比特位长度的低电平时,选择器4032获取只读存储器401中第14比特位至第18比特位的值作为一个测试值“01101”,在使能信号为5个比特位长度的高电平时,选择器4032获取第二可编程存储器4022中的第8比特位至第12比特位的值作为一个编程值“01010”;在使能信号为1个比特位长度的低电平时,选择器4032获取只读存储器401中的第24比特位的值作为一个测试值“0”,依次生成第二测试配置序列“011101000110101101010100”。也就证明只读存储器401是在使能信号的每一个比特位长度内将1位二进制数据传输至选择器4032,而第二可编程存储器4022是在使能信号的一个高电平比特位长度内将1位二进制数据传输至选择器4032。
示例性的,翻转器4031可以按照将第一可编程存储器4021中的第奇数个存储地址的存储值翻转为低电平,将第一可编程存储器4021中的第偶数个存储地址的存储值翻转为高电平的规律生成使能信号,并且使能信号的低电平/高电平的比特位长度也就等于与之对应的第一可编程存储器4021中的存储地址的存储值。其中,第一可编程存储器4021中的每一个存储地址的存储值是当前存储地址存储的二进制数字对应的十进制数字。例如,只读存储器401中,总共包括1000个比特位,并且第1比特位至第5比特位的测试值是不需要修改,第6比特位至第996比特位的测试值是需要修改的,第997比特位至第1000比特位的测试值是不需要修改,那么也就表示,第一可编程存储器4021中需要存储十进制数字5,991,4。第一可编程存储器4021中的每8位二进制位数被当做一个存储地址,8位二进制数字全为1时是“11111111”,其对应的十进制数字为255,需要修改的比特位数为991大于255,并且,3*255<991<=4*255,因此,在第一可编程存储器中,第一个存储地址存储的二进制数字为“00000101”对应十进制数字5,是不需要修改的比特位数;第二个存储地址存储的二进制数字为“11111111”对应十进制数字255,是需要修改的比特位数;第三个存储地址存储的二进制数字为“00000000”对应十进制数字0,是不需要修改的比特位数;第四个存储地址存储的二进制数字为“11111111”对应十进制数字255,是需要修改的比特位数;第五个存储地址存储的二进制数字为“00000000”对应十进制数字0,是不需要修改的比特位数;第六个存储地址存储的二进制数字为“11111111”对应十进制数字255,是需要修改的比特位数;第七个存储地址存储的二进制数字为“00000000”对应十进制数字0,是不需要修改的比特位数;第八个存储地址存储的二进制数字为“11100010”对应十进制数字226是需要修改的比特位数;第九个存储地址存储的二进制数字为“00000100”对应十进制数字4,是不需要修改的比特位数。以此实现在第一可编程存储器3021中存储目标测试选项在只读存储器401中的位置。
示例性的,翻转器4031可以按照将第一可编程存储器4021中的第奇数个存储地址的存储值翻转为低电平,将第一可编程存储器4021中的第偶数个存储地址的存储值翻转为高电平的规律生成使能信号,并且使能信号的低电平/高电平的比特位长度也就等于与之对应的第一可编程存储器4021中的存储地址的存储值。其中,第一可编程存储器4021中的每一个存储地址的存储值是当前存储地址存储的二进制数字对应的十进制数字。例如,只读存储器401中,总共包括1000个比特位,并且第1比特位至第550比特位的测试值是不需要修改,第551比特位至第790比特位的测试值是需要修改的,第791比特位至第1000比特位的测试值是不需要修改,那么也就表示,第一可编程存储器4021中需要存储十进制数字550,240,210。第一可编程存储器4021中的每8位二进制位数被当做一个存储地址,8位二进制数字全为1时是“11111111”,其对应的十进制数字为255,需要修改的比特位数为991大于255,并且,2*255<991<=3*255,因此,在第一可编程存储器中,第一个存储地址存储的二进制数字为“11111111”对应十进制数字255,是不需要修改的比特位数;第二个存储地址存储的二进制数字为“00000000”对应十进制数字0,是需要修改的比特位数;第三个存储地址存储的二进制数字为“11111111”对应十进制数字255,是不需要修改的比特位数;第四个存储地址存储的二进制数字为“00000000”对应十进制数字0,是需要修改的比特位数;第五个存储地址存储的二进制数字为“00101000”对应十进制数字40,是不需要修改的比特位数;第六个存储地址存储的二进制数字为“11110000”对应十进制数字240,是需要修改的比特位数;第七个存储地址存储的二进制数字为“11010010”对应十进制数字210,是不需要修改的比特位数。以此实现在第一可编程存储器3021中存储目标测试选项在只读存储器401中的位置。
需要说明的是,图7是以第一可编程存储器4021中的每一个存储地址都包含8bit为例进行说明的,在实际的应用中,第一可编程存储器4021的每一个存储地址包含的比特数可以是任何正整数个比特位,本申请的实施例对比不做限定。
示例性的,翻转器4031可以按照将第一可编程存储器4021传输至翻转器4031的第奇数个十进制数字翻转为低电平,将第一可编程存储器4021传输至翻转器4031的第偶数个十进制数字翻转为高电平的规律生成使能信号,并且使能信号的低电平/高电平的比特位长度也就等于对应的第一可编程存储器4021传输至翻转器4031的十进制数字。例如,只读存储器401中,总共包括1000个比特位,并且第1比特位至第500比特位的测试值是不需要修改,第501比特位至第754比特位的测试值是需要修改的,第755比特位至第1000比特位的测试值是不需要修改,那么也就表示,第一可编程存储器4021中需要存储十进制数字500,254,246。其中,第一可编程存储器4021中的每8位二进制位数被当做一个存储地址,并且,第一可编程存储器4021中的一个存储地址所能存储的最大十进制数字为254,例如,第一可编程存储器4021的第n个存储地址存储的二进制数字为“11111111”时,也就表示第n个存储地址存储的二进制数字全为“1”,其中,高7位二进制数字是“1”表示第n个存储地址存储的二进制数字实际是“11111110”,对应十进制数字254,低1位二进制数字是“1”表示当前的第n个存储地址与第n+1个存储地址是连续的,在第n+1个存储地址存储的二进制数字为“00101010”,对应十进制数字42,第一可编程存储器4021将第n个存储地址存储的十进制数字加上第n+1个存储地址存储的十进制数字,也就是254+42,将十进制数字296传输至翻转器4031。
在第一可编程存储器4021中需要存储十进制数字500,254,246时,在第一可编程存储器中,第一个存储地址存储的二进制数字为“11111111”对应十进制数字254,第二个存储地址存储的二进制数字为“11110110”对应十进制数字246,由于第一个存储地址存储的二进制数字为“11111111”,因此第一可编程存储器4021将十进制数字254+246,也就是500传输至翻转器4031,以使得翻转器4031将十进制数字500翻转为500个比特位长度的低电平,表示500个比特位数不需要修改;第三个存储地址存储的二进制数字为“11111110”对应十进制数字254,第一可编程存储器4021将十进制数字254传输至翻转器4031,以使得翻转器4031将十进制数字254翻转为254个比特位长度的高电平,表示254个比特位数需要修改;第四个存储地址存储的二进制数字为“11110110”对应十进制数字246,第一可编程存储器4021将十进制数字246传输至翻转器4031,以使得翻转器4031将十进制数字246翻转为246个比特位长度的低电平,表示246个比特位数不需要修改。示例性的,在集成电路400上电时,输出电路403中的翻转器4031,根据目标测试选项在只读存储器中的位置,生成使能信号,也可以是该使能信号的低电平状态对应于只读存储器401中需要修改的比特位数,也就是目标测试选项在只读存储器401中的位置处,并且低电平的比特位长度等于需要修改的比特位数;使能信号的高电平状态对应于只读存储器中不需要修改的比特位数,也就是除目标测试选项以外的其他测试选项在只读存储器401中的位置,并且高电平的比特位长度等于需要不修改的比特位数。然后输出电路403中的选择器4032,在使能信号为高电平时,获取与高电平的比特位长度相等的第一测试配置序列中除目标测试选项外的其他测试选项的测试值,在使能信号为低电平时,获取与低电平的比特位长度相等的第二可编程存储器4022中的目标测试选项的编程值。根据目标测试选项的编程值以及除目标测试选项外的其他测试选项的测试值生成第二测试配置序列。
示例性的,参照图8所示,本申请的实施例提供了集成电路800的原理结构示意图,在图8中,集成电路800在上电后需要进行测试,但是此时的集成电路800中的处理器802还未正常运行,并且该集成电路800中的JTAG管脚801也被封闭,那么,选择器803可以选中选择器4032传输的符合IEEE 1149.1标准的第二测试配置序列至TAP控制器804,其中,翻转器4031,根据目标测试选项在只读存储器401中的位置,生成使能信号,该使能信号的高电平状态对应于只读存储器401中需要修改的比特位数,也就是目标测试选项在只读存储器401中的位置处,并且高电平的比特位长度等于需要修改的比特位数;使能信号的低电平状态对应于只读存储器中不需要修改的比特位数,也就是除目标测试选项以外的其他测试选项在只读存储器401中的位置,并且低电平的比特位长度等于需要不修改的比特位数。只读存储器401中存储第一测试配置序列,第一测试配置序列包括多个测试选项的测试值,只读存储器401是在使能信号的每一个比特位长度内(无论是1个高电平比特位长度还是一个低电平比特位长度)将1位二进制数据传输至选择器4032。第二可编程存储器4022存储目标测试选项的编程值,并且第二可编程存储器4022是在使能信号的一个高电平比特位长度内将1位二进制数据传输至选择器4032。选择器4032在使能信号为低电平时,获取与低电平的比特位长度相等的第一测试配置序列中除目标测试选项外的其他测试选项的测试值,在使能信号为高电平时,获取与高电平的比特位长度相等的第二可编程存储器4022中的目标测试选项的编程值。并且根据目标测试选项的编程值以及除目标测试选项外的其他测试选项的测试值生成第二测试配置序列,将第二测试配置序列传输至TAP控制器804,其中第二测试配置序列包括TDI控制信号、TMS控制信号、TCK控制信号以及多个测试选项,其中,TAP控制器804根据TMS控制信号以及TCK控制信号选中集成电路中的用户自定义数据寄存器,并且通过TDI管脚传输多个测试选项,将多个测试选项写入至选中的用户自定义寄存器中,然后,TAP控制器804根据TMS控制信号以及TCK控制信号将用户自定义寄存器中写入的测试选项传输至BIST控制器805,进而使得BIST控制器805根据多个测试选项进行自测试。
并且,在图8所示的集成电路800生产制造的最后一步,可以将ATE连接至JTAG管脚801,选择器804则选中JTAG管脚801传输ATE生成的符合IEEE 1149.1标准的测试配置序列至TAP控制器804,该测试配置序列包括TDI控制信号、TMS控制信号、TCK控制信号以及多个测试选项,其中,TAP控制器804根据TMS控制信号以及TCK控制信号选中集成电路中的用户自定义数据寄存器,并且通过TDI管脚传输多个测试选项,将多个测试选项写入至选中的用户自定义寄存器中,然后,TAP控制器804根据TMS控制信号以及TCK控制信号将用户自定义寄存器中写入的测试选项传输至BIST控制器805,进而使得BIST控制器805根据多个测试选项进行自测试。需要说明的是,在集成电路生产制造完成以后,集成电路中的JTAG管脚801会被封闭,其目的是为了避免集成电路在应用过程中受到恶意破坏。
参照图8所示,如果集成电路800通电并正常运行时,此时选择器803可以选中处理器802传输处理器802生成的符合IEEE 1149.1标准的测试配置序列至TAP控制器804,该测试配置序列包括TDI控制信号、TMS控制信号、TCK控制信号以及多个测试选项,其中,TAP控制器804根据TMS控制信号以及TCK控制信号选中集成电路中的用户自定义数据寄存器,并且通过TDI管脚传输多个测试选项,将多个测试选项写入至选中的用户自定义寄存器中,然后,TAP控制器804根据TMS控制信号以及TCK控制信号将用户自定义寄存器中写入的测试选项传输至BIST控制器805,进而使得BIST控制器805根据多个测试选项进行自测试。
示例性的,本申请的实施例提供了一种集成电路的测试方法,其中,该集成电路包括:只读存储器、输出电路以及至少一个可编程存储器;只读存储器用于存储第一测试配置序列,第一测试配置序列包括多个测试选项的测试值;至少一个可编程存储器用于存储目标测试选项的编程值。参照图9所示,该集成电路的测试方法包括:
901、在上电后读取第一测试配置序列。
902、读取目标测试选项的编程值。
903、根据第一测试配置序列以及目标测试选项的编程值生成第二测试配置序列。
通常,在步骤903之后,可以将第二测试配置序列传输至测试设备,以使得测试设备根据第二测试配置序列对待测模块进行测试。
其中,至少一个可编程存储器包括第一存储区域和第二存储区域,第一存储区域用于存储目标测试选项在只读存储器中的位置,第二存储区域用于存储目标测试选项的编程值;集成电路的测试方法还包括在步骤903之前读取目标测试选项在只读存储器中的位置。
则步骤903具体包括:根据第一测试配置序列、目标测试选项在只读存储器中的位置以及目标测试选项的编程值生成第二测试配置序列。
其中,集成电路中的输出电路包括翻转器和选择器,则上述步骤903具体包括:
9031、根据目标测试选项在只读存储器中的位置和其他位置生成使能信号。
其中使能信号在目标测试选项在只读存储器中的位置处为第一状态,使能信号在其他位置处为第二状态,其他位置包括第一配置序列中除目标测试选项以外的其他测试选项在只读存储器中的位置。
9032、在使能信号为第一状态时获取第二存储区域中的目标测试选项的编程值,在使能信号为第二状态时获取其他测试选项的测试值。
9033、根据目标测试选项的编程值以及其他测试选项的测试值生成第二测试配置序列。
其中,该多个测试选项包括:待测模块列表,测试强度以及测试配置,待测模块列表用于指示需要对那些待测模块进行测试,测试强度包括:测试覆盖率,测试向量数以及测试时间等,其中,测试覆盖率表示能测试到的待测模块的百分比,例如测试目标覆盖为100%表示将待测模块全部测试,测试向量数表示测试的数据,测试时间表示多长时间完成测试;测试配置包括:线性反馈移位寄存器LFSR种子、开启时钟域、多输入特征寄存器MISR比对值以及测试算法等,其中线性反馈移位寄存器LFSR种子表示线性反馈移位寄存器的初始值,开启时钟域表示在时钟信号处于上升沿或是下降沿是开启测试,多输入特征寄存器MISR比对值表示无故障待测模块中得到的特征值,测试算法包括“March算法,Checkerboard算法。目标测试选项是多个测试选项中的一个或多个需要修改的测试选项。目标测试选项包括以下一项或多项:待测模块列表,测试强度参数以及测试配置
示例性的,本申请的实施例提供了一种电子设备,该电子设备包括印刷电路板(printed circuit board,PCB)以及设置于所述PCB上的集成电路,该集成电路可以是前述任一个集成电路,该电子设备包括例如手机、平板电脑、个人数字助理(personal digitalassistant,PDA)、车载电脑等。本申请实施例对电子设备的具体形式不做特殊限制。并且在该电子设备上电后,该电子设备中的集成电路即可执行上述的集成电路的测试方法。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序代码,当电子设备执行该计算机程序代码时,电子设备执行上述实施例中的集成电路测试方法。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read only memory,ROM)、随机存取存储器(random accessmemory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本申请的实施例还提供了一种计算机程序产品,当该计算机程序产品在电子设备上运行时,使得电子设备执行上述相关步骤,以实现上述实施例中集成电路的测试方法。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。以上内容,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
尽管结合具体特征及其实施例对本发明进行了描述,显而易见的,在不脱离本发明的精神和范围的情况下,可对其进行各种修改和组合。相应地,本说明书和附图仅仅是所附权利要求所界定的本发明的示例性说明,且视为已覆盖本发明范围内的任意和所有修改、变化、组合或等同物。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (14)
1.一种集成电路,其特征在于,包括:只读存储器、输出电路以及至少一个可编程存储器;
所述只读存储器用于存储第一测试配置序列,所述第一测试配置序列包括多个测试选项的测试值;
所述至少一个可编程存储器用于存储所述多个测试选项中的目标测试选项的编程值;
所述输出电路,被配置为在上电后读取所述第一测试配置序列;
所述输出电路,还被配置为读取所述目标测试选项的编程值;
所述输出电路,还被配置为根据所述第一测试配置序列以及所述目标测试选项的编程值生成第二测试配置序列。
2.根据权利要求1所述的集成电路,其特征在于,所述至少一个可编程存储器包括第一存储区域和第二存储区域,所述第一存储区域用于存储所述目标测试选项在所述只读存储器中的位置,所述第二存储区域用于存储所述目标测试选项的编程值;
所述输出电路,还被配置为读取所述目标测试选项在所述只读存储器中的位置;
所述输出电路,具体被配置为根据所述第一测试配置序列、所述目标测试选项在所述只读存储器中的位置以及所述目标测试选项的编程值生成第二测试配置序列。
3.根据权利要求2所述的集成电路,其特征在于,
所述输出电路包括翻转器和选择器;
所述翻转器,具体被配置为根据所述目标测试选项在所述只读存储器中的位置和其他位置生成使能信号;其中所述使能信号在所述目标测试选项在所述只读存储器中的位置处为第一状态,所述使能信号在其他位置处为第二状态,所述其他位置包括所述第一配置序列中除所述目标测试选项以外的其他测试选项在所述只读存储器中的位置;
所述选择器,用于在所述使能信号为第一状态时获取所述第二存储区域中的所述目标测试选项的编程值,在所述使能信号为第二状态时获取所述其他测试选项的测试值,根据所述目标测试选项的编程值以及所述其他测试选项的测试值生成第二测试配置序列。
4.根据权利要求2所述的集成电路,其特征在于,
所述至少一个可编程存储器包括第一可编程存储器和第二可编程存储器;
所述第一可编程存储器提供所述第一存储区域,所述第二可编程存储器提供所述第二存储区域。
5.根据权利要求1-4任一项所述的集成电路,其特征在于,
所述多个测试选项包括:待测模块列表,测试强度参数以及测试配置。
6.根据权利要求1-4任一项所述的集成电路,其特征在于,
所述目标测试选项包括以下一项或多项:待测模块列表,测试强度参数以及测试配置。
7.一种集成电路的测试方法,其特征在于,所述集成电路包括:只读存储器、输出电路以及至少一个可编程存储器;
所述只读存储器用于存储第一测试配置序列,所述第一测试配置序列包括多个测试选项的测试值;
所述至少一个可编程存储器用于存储所述多个测试选项中的目标测试选项的编程值;
所述集成电路的测试方法包括:
在上电后读取所述第一测试配置序列;
读取所述目标测试选项的编程值;
根据所述第一测试配置序列以及所述目标测试选项的编程值生成第二测试配置序列。
8.根据权利要求7所述的集成电路的测试方法,其特征在于,所述至少一个可编程存储器包括第一存储区域和第二存储区域,所述第一存储区域用于存储所述目标测试选项在所述只读存储器中的位置,所述第二存储区域用于存储所述目标测试选项的编程值;
所述集成电路的测试方法还包括:
读取所述目标测试选项在所述只读存储器中的位置;
则根据所述第一测试配置序列以及所述目标测试选项的编程值生成第二测试配置序列具体包括:根据所述第一测试配置序列、所述目标测试选项在所述只读存储器中的位置以及所述目标测试选项的编程值生成第二测试配置序列。
9.根据权利要求8所述的集成电路的测试方法,其特征在于,
所述根据所述第一测试配置序列、所述目标测试选项在所述只读存储器中的位置以及所述目标测试选项的编程值生成第二测试配置序列,具体包括:
根据所述目标测试选项在所述只读存储器中的位置和其他位置生成使能信号;其中所述使能信号在所述目标测试选项在所述只读存储器中的位置处为第一状态,所述使能信号在其他位置处为第二状态,所述其他位置包括所述第一配置序列中除所述目标测试选项以外的其他测试选项在所述只读存储器中的位置;
在所述使能信号为第一状态时获取所述第二存储区域中的所述目标测试选项的编程值,在所述使能信号为第二状态时获取所述其他测试选项的测试值;
根据所述目标测试选项的编程值以及所述其他测试选项的测试值生成第二测试配置序列。
10.根据权利要求7-9任一项所述的集成电路的测试方法,其特征在于,
所述多个测试选项包括:待测模块列表,测试强度参数以及测试配置。
11.根据权利要求7-9任一项所述的集成电路的测试方法,其特征在于,
所述目标测试选项包括以下一项或多项:待测模块列表,测试强度参数以及测试配置。
12.一种电子设备,其特征在于,包括印刷电路板以及设置于所述印刷电路板上的如权利要求1-6任一项所述的集成电路。
13.一种计算机可读存储介质,其特征在于,包括计算机指令,当计算机指令在电子设备上运行时,使得电子设备执行上述权利要求7-11中的任一项所述的方法。
14.一种计算机程序产品,其特征在于,当计算机程序产品在电子设备上运行时,使得电子设备执行上述权利要求7-11中的任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210138952.4A CN116643140A (zh) | 2022-02-15 | 2022-02-15 | 集成电路及集成电路的测试方法 |
PCT/CN2022/128643 WO2023155480A1 (zh) | 2022-02-15 | 2022-10-31 | 集成电路及集成电路的测试方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210138952.4A CN116643140A (zh) | 2022-02-15 | 2022-02-15 | 集成电路及集成电路的测试方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116643140A true CN116643140A (zh) | 2023-08-25 |
Family
ID=87577451
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210138952.4A Pending CN116643140A (zh) | 2022-02-15 | 2022-02-15 | 集成电路及集成电路的测试方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN116643140A (zh) |
WO (1) | WO2023155480A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117805596A (zh) * | 2024-02-29 | 2024-04-02 | 牛芯半导体(深圳)有限公司 | 用于测试芯片的方法、装置、电子设备及存储介质 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2764716B1 (fr) * | 1997-06-13 | 2001-08-17 | Bull Cp8 | Procede de modification de sequences de code et dispositif associe |
JP3480721B2 (ja) * | 2001-02-22 | 2003-12-22 | Necパーソナルプロダクツ株式会社 | 電源オン/オフシーケンス制御装置 |
JP3603045B2 (ja) * | 2001-05-25 | 2004-12-15 | 松下電器産業株式会社 | 半導体記憶装置およびその検査治具並びに検査方法 |
US6928638B2 (en) * | 2001-08-07 | 2005-08-09 | Intel Corporation | Tool for generating a re-generative functional test |
US7152193B2 (en) * | 2002-08-13 | 2006-12-19 | Lsi Logic Corporation | Embedded sequence checking |
US7603604B2 (en) * | 2007-04-09 | 2009-10-13 | Advantest Corporation | Test apparatus and electronic device |
US8341491B2 (en) * | 2007-07-16 | 2012-12-25 | Cadence Design Systems, Inc. | System and method for providing data integrity in a non-volatile memory system |
US9196381B2 (en) * | 2012-11-01 | 2015-11-24 | Futurewei Technologies, Inc. | Technique to operate memory in functional mode under LBIST test |
US20140237263A1 (en) * | 2013-02-19 | 2014-08-21 | Kabushiki Kaisha Toshiba | Nonvolatile semiconductor memory device and memory system using the same |
JP6917819B2 (ja) * | 2017-07-28 | 2021-08-11 | ローム株式会社 | シーケンスコントローラおよび電子機器 |
WO2021247074A1 (en) * | 2020-06-04 | 2021-12-09 | Futurewei Technologies, Inc. | Resumable instruction generation |
-
2022
- 2022-02-15 CN CN202210138952.4A patent/CN116643140A/zh active Pending
- 2022-10-31 WO PCT/CN2022/128643 patent/WO2023155480A1/zh unknown
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117805596A (zh) * | 2024-02-29 | 2024-04-02 | 牛芯半导体(深圳)有限公司 | 用于测试芯片的方法、装置、电子设备及存储介质 |
CN117805596B (zh) * | 2024-02-29 | 2024-04-26 | 牛芯半导体(深圳)有限公司 | 用于测试芯片的方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2023155480A1 (zh) | 2023-08-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6594802B1 (en) | Method and apparatus for providing optimized access to circuits for debug, programming, and test | |
US6574762B1 (en) | Use of a scan chain for configuration of BIST unit operation | |
US6557129B1 (en) | Method and apparatus for selectively compacting test responses | |
US20040006729A1 (en) | Hierarchical test methodology for multi-core chips | |
US5768289A (en) | Dynamically controlling the number of boundary-scan cells in a boundary-scan path | |
US6826101B2 (en) | Semiconductor device and method for testing the same | |
US7352169B2 (en) | Testing components of I/O paths of an integrated circuit | |
US7437645B2 (en) | Test circuit for semiconductor device | |
US8756467B2 (en) | Methods and apparatus for testing multiple-IC devices | |
US5761489A (en) | Method and apparatus for scan testing with extended test vector storage in a multi-purpose memory system | |
US7877655B2 (en) | Method for performing a test case with a LBIST engine on an integrated circuit, integrated circuit and method for specifying an integrated circuit | |
JP3287539B2 (ja) | テスト機構を有する処理システム | |
WO2011116116A2 (en) | Logic built-in self-test programmable pattern bit mask | |
US20030074618A1 (en) | Dual mode ASIC BIST controller | |
JP2001523005A (ja) | アドレス依存型命令を有する境界走査システム | |
US20030074619A1 (en) | Memory bist employing a memory bist signature | |
US7447962B2 (en) | JTAG interface using existing I/O bus | |
JP3576457B2 (ja) | 1チップマイクロコンピュータおよびその制御方法、ならびにそれを用いたicカード | |
US7088627B1 (en) | Column redundancy scheme for non-volatile flash memory using JTAG input protocol | |
WO2023155480A1 (zh) | 集成电路及集成电路的测试方法 | |
US20030074620A1 (en) | Configurable asic memory bist controller employing multiple state machines | |
US20030074617A1 (en) | ASIC BIST employing stored indications of completion | |
CN116881067A (zh) | 一种生成vcd文件的方法、装置、设备及存储介质 | |
US20030074614A1 (en) | Utilizing slow ASIC logic BIST to preserve timing integrity across timing domains | |
KR20060055595A (ko) | 칩 테스트를 위한 테스트 억세스 포트의 간소화 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |