CN110082672A - 一种芯片内逻辑模型的测试方法及装置 - Google Patents
一种芯片内逻辑模型的测试方法及装置 Download PDFInfo
- Publication number
- CN110082672A CN110082672A CN201810072807.4A CN201810072807A CN110082672A CN 110082672 A CN110082672 A CN 110082672A CN 201810072807 A CN201810072807 A CN 201810072807A CN 110082672 A CN110082672 A CN 110082672A
- Authority
- CN
- China
- Prior art keywords
- test vector
- ram
- test
- write
- read
- 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
Links
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/317—Testing of digital circuits
- G01R31/31718—Logistic aspects, e.g. binning, selection, sorting of devices under test, tester/handler interaction networks, Test management software, e.g. software for test statistics or test evaluation, yield analysis
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Tests Of Electronic Circuits (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
Abstract
本发明涉及芯片技术,特别涉及一种芯片内逻辑模型的测试方法及装置。用以在不占用大量逻辑资源的前提下,提高逻辑模型的测试效率和故障覆盖率。该方法为:按照预设的棋盘格式生成测试向量集合,并通过在待测试的逻辑模型中的RAM内写入和读取所述测试向量集合中的测试向量,来完成对RAM的故障测试;其中,在RAM内,每一个存储位均采用了取值相反的两种逻辑值进行了读和写的覆盖,这样,无需对FPGA芯片进行重配置即可以实现RAM检测,并且采用的检测电路结构简单易实现,且占用较少的逻辑资源,从而可以在不占用大量逻辑资源的前提下,准确、全面地检测逻辑模型中的RAM的各类故障,进而提高测试效率和故障覆盖率。
Description
技术领域
本发明涉及芯片技术,特别涉及一种芯片内逻辑模型的测试方法及装置。
背景技术
已有技术中,数字通信基带芯片内的数据链路存在大量的先入先出(Fisrt InFirst Out,FIFO)模型,用于进行流控反压及跨时钟域处理,FIFO模型的故障会直接影响通信信号传输,因此,需要采用有效手段对各类芯片内的FIFO模型进行测试。
目前,现场可编程门阵列(Field-Programmable Gate Array,FPGA)芯片是一种常用的数字通信基带芯片,FPGA芯片制造基于静态随机存取存储器(Static RandomAccess Memory,SRAM)结构,具有在线灵活可配置性,其基本单元由查找表(Look-UpTable,LUT),寄存器(Register),随机存取存储器(Random-Access Memory,随机存取存储器)RAM等构成,相对于专用芯片(ASIC),其更易受单粒子翻转(Single Electron Upset,SEU)产生软失效。因此设备厂商在使用FPGA芯片时,都会对FPGA芯片进行测试。
在FPGA芯片内部,数据链路大量使用FIFO模型进行流量控制和跨时钟域处理,例如,参阅图1所示,图1中展示的是一种FIFO模型,包括块存储器(Block RAM),写地址指针控制器,简称写指针(Write Pointer),读地址指针控制器,简称读指针(Read Pointer),写状态指示逻辑(Write Status Flag Logic)和读状态指示逻辑(Read Status Flag Logic)等五部分。
FIFO模型通常情况下会发现以下几类故障:1、RAM的固定型故障(如,SA0故障、SA1故障);2、RAM中图形敏感故障;3、RAM中相邻bit耦合故障;4、RAM的读写地址耦合故障(CF);5、RAM的寻址故障(AF)。
可见,FIFO模型使用的主要逻辑资源是RAM及周边控制电路,因此,FIFO模型发生的故障都是围绕RAM产生的。
已有技术下,最常采用的测试方法,根据是否基于应用场景,分为应用无关测试方法和应用相关测试方法。
1、应用无关测试方法。
通常是指针对逻辑资源进行全检。采用应用无关测试方法时,会预先生成一组或几组配置参数,针对FPGA芯片内部的LUT、Register和RAM等逻辑资源,分别采用测试算法进行充分测试。
以配置成RAM形式的逻辑资源为例,可以采用March算法进行测试,如,一种March算法的执行方式如下:
↑↓(w0);↑(r0,w0);↑(r1,w0)
↓(r0,w1);↓(r1,w0);↑↓(r0)
其中,箭头表征对RAM地址增减的方向,w表征写操作,r表征读操作,w/r后面的数值表征写操作/读操作的逻辑值。
上述March算法是通用的主流面向RAM的测试方法,覆盖故障类型多,故障覆盖率高。
然而,采用应用无关测试方法,虽然能够分别检测每一类逻辑资源的有效性,但是由于针对逻辑资源进行的是全检操作,因此不使用的逻辑资源也会被测试到,同时还需要单独加载测试配置文件,从而大量地占用了***启动时间和内存资源,进而造成检测效率低下;并且当各类逻辑资源配置成具有特殊功能的逻辑模型后(如,FIFO模型)时,无法准确地检测出逻辑模型的有效性。
因此,应用无关检测方法具有其应用局限性。
2、应用相关测试方法。
通常是指针对与应用相关的逻辑模型中的各个逻辑资源设置边界扫描链,在FPGA芯片下载配置参数后,加载专用的测试向量对与应用相关的逻辑模型进行测试。如,针对FPGA芯片内的寄存器资源,将寄存器资源配置成链式结构,将测试向量从第一级载入,从最末级收集,从而能够有效识别寄存器资源的栓锁故障。
然而,采用应用相关测试方法,虽然可以有针对性地对不同逻辑模型进行测试,但是由于逻辑资源的数目有限,在搭建了逻辑模型后,还需要使用剩余的逻辑资源设置边界扫描链,因此,设置的边界扫描链的数量也受到了限制,从而无法对逻辑模型中的各个环节进行全方位覆盖测试,并且,也会占用过多的可用于业务配置的逻辑资源。
有鉴于此,需要提供一种新的芯片内部的逻辑模型的测试方法,以克服上述缺陷。
发明内容
本发明实施例提供一种芯片内逻辑模型的测试方法及装置,用以在不占用大量逻辑资源的前提下,提高逻辑模型的测试效率和故障覆盖率。
本发明实施例提供的具体技术方案如下:
一种芯片内逻辑模型的测试方法,包括:
生成测试向量集合,其中,每一个测试向量的长度等于待测试的逻辑模型的数据位宽,在相邻生成的测试向量之间,处于同一比特位的数据的逻辑值取值相反,以及在同一测试向量中,相邻比特位的数据的逻辑值取值相反;
在所述测试向量集合中读取各个测试向量,写满所述逻辑模型中的随机访问存储器RAM,并从所述RAM中读取写入的各个测试向量进行正确性判断,以完成故障测试,其中,所述RAM内的每一个存储位,至少写入两次取值相反的逻辑值。
可选的,在所述测试向量集合中读取各个测试向量,写满所述逻辑模型中的RAM,并从所述RAM中读取写入的各个测试向量进行正确性判断,以完成故障测试,其中,所述RAM内的每一个存储位,至少写入两次取值相反的逻辑值,包括:
在所述测试向量集合中读取各个测试向量,通过写指针写满所述逻辑模型中的RAM;
通过读指针,从所述RAM中每读取出两个写入的测试向量,通过写指针,再次从所述测试向量集合中读取一个测试向量并写入所述的RAM内,直到所述RAM清空为止;其中,针对同一存储地址,通过写指针再次写入的测试向量,与通过读指针读取的测试向量之间,位于同一比特位的逻辑值取值相反;
针对读取出的测试向量进行正确性判断。
可选的,所述RAM清空之后,进一步包括:
通过写指针,从所述测试向量集合中每读取两个测试向量写入所述的RAM内,通过读指针,从所述RAM中读取出一个写入的测试向量,直到所述RAM写满为止;其中,针对同一存储地址,通过写指针再次写入的测试向量,与通过读指针读取的测试向量之间,位于同一比特位的逻辑值取值相反;
针对读取出的测试向量进行正确性判断。
可选的,针对读取出的测试向量进行正确性判断,包括:
判断读取出的测试向量是否满足以下条件:
读取出的同一测试向量内,相邻比特位的逻辑值相反;
读取出的相邻的测试向量之间,同一比特位的逻辑值满足:按位与为0,按位或为1;
确定不满足时,判定所述RAM内发生内容类故障。
可选的,进一步包括:
判断读取出的相邻的测试向量是否一致,确定一致时,判定所述RAM发生地址类故障。
可选的,进一步包括:
采用预设的响应分析ORA逻辑电路对读取出的测试向量进行正确性判断。
一种芯片内逻辑模型的测试装置,包括:
生成单元,用于生成测试向量集合,其中,每一个测试向量的长度等于待测试的逻辑模型的数据位宽,在相邻生成的测试向量之间,处于同一比特位的数据的逻辑值取值相反,以及在同一测试向量中,相邻比特位的数据的逻辑值取值相反;
测试单元,用于在所述测试向量集合中读取各个测试向量,写满所述逻辑模型中的随机访问存储器RAM,并从所述RAM中读取写入的各个测试向量进行正确性判断,以完成故障测试,其中,所述RAM内的每一个存储位,至少写入两次取值相反的逻辑值。
可选的,在所述测试向量集合中读取各个测试向量,写满所述逻辑模型中的RAM,并从所述RAM中读取写入的各个测试向量进行正确性判断,以完成故障测试,其中,所述RAM内的每一个存储位,至少写入两次取值相反的逻辑值时,所述测试单元用于:
在所述测试向量集合中读取各个测试向量,通过写指针写满所述逻辑模型中的RAM;
通过读指针,从所述RAM中每读取出两个写入的测试向量,通过写指针,再次从所述测试向量集合中读取一个测试向量并写入所述的RAM内,直到所述RAM清空为止;其中,针对同一存储地址,通过写指针再次写入的测试向量,与通过读指针读取的测试向量之间,位于同一比特位的逻辑值取值相反;
针对读取出的测试向量进行正确性判断。
可选的,所述RAM清空之后,所述测试单元进一步用于:
通过写指针,从所述测试向量集合中每读取两个测试向量写入所述的RAM内,通过读指针,从所述RAM中读取出一个写入的测试向量,直到所述RAM写满为止;其中,针对同一存储地址,通过写指针再次写入的测试向量,与通过读指针读取的测试向量之间,位于同一比特位的逻辑值取值相反;
针对读取出的测试向量进行正确性判断。
可选的,针对读取出的测试向量进行正确性判断时,所述测试单元用于:
判断读取出的测试向量是否满足以下条件:
读取出的同一测试向量内,相邻比特位的逻辑值相反;
读取出的相邻的测试向量之间,同一比特位的逻辑值满足:按位与为0,按位或为1;
确定不满足时,判定所述RAM内发生内容类故障。
可选的,所述测试单元进一步用于:
判断读取出的相邻的测试向量是否一致,确定一致时,判定所述RAM发生地址类故障。
可选的,所述测试单元进一步用于:
采用预设的响应分析ORA逻辑电路对读取出的测试向量进行正确性判断。
综上所述,本发明实施例中,生成测试向量集合,其中,每一个测试向量的长度等于待测试的逻辑模型的数据位宽,在相邻生成的测试向量之间,处于同一比特位的数据的逻辑值取值相反,以及在同一测试向量中,相邻比特位的数据的逻辑值取值相反;在所述测试向量集合中读取各个测试向量,写满所述逻辑模型中的RAM,并从所述RAM中读取写入的各个测试向量进行正确性判断,以完成故障测试,其中,所述RAM内的每一个存储位,至少写入两次取值相反的逻辑值。这样,在RAM内,每一个存储位均采用了取值相反的两种逻辑值进行了读和写的覆盖,因而,无需对FPGA芯片进行重配置即可以实现RAM检测,并且采用的检测电路结构简单易实现,且占用较少的逻辑资源,从而可以在不占用大量逻辑资源的前提下,准确、全面地检测逻辑模型中的RAM的各类故障,进而有效降低了实现及运维成本,同时,又可以提高测试效率和故障覆盖率。
附图说明
图1为已有技术中芯片内FIFO模型架构示意图;
图2为本发明实施例中针对芯片内的逻辑模型进行测试流程示意图;
图3A为本发明实施例中棋盘格式测试向量示意图;
图3B为本发明实施例中测试向量生成电路示意图;
图4A-图4C为本发明实施例中采用读二写一方式测试RAM示意图;
图5A和图5B为本发明实施例中采用写二读一方式测试RAM示意图;
图6为本发明实施例中ORA电路逻辑示意图;
图7为本发明实施例中测试装置功能结构示意图。
具体实施方式
为了在不占用大量逻辑资源的前提下,提高逻辑模型的测试效率以及故障覆盖率,本发明实施例中,按照预设的棋盘格式生成测试向量集合,并通过在待测试的逻辑模型中的RAM内写入和读取所述测试向量集合中的测试向量,来完成对所述RAM的故障测试。
这样,无需单独下载单独的测试配置文件,能够在芯片复位初始化阶段完成针对逻辑模型的内建自测试,占用资源少,并且覆盖到逻辑模型可以产生的主要故障模式。
本发明实施例中,以待测试的逻辑模型为FIFO模型为例,对FPGA芯片的内部测试流程进行详细介绍。
首先,在FIFO模型中,RAM的读写地址由地址指针控制器决定,外部电路无法直接控制RAM的读写地址,从而无法直接检测到RAM的地址故障,这便导致了已有技术下针对RAM进行测试时使用的March算法无法在FIFO模型中直接应用。
本发明实施例中,设计了针对FIFO模型的内建自测试方法,包含了自动测试向量生成(Automatic Test Pattern Generation,ATPG),激励加载和响应分析(Outputresponse analyzer,ORA)三部分,用于覆盖FIFO模型中的各类故障。
以下实施例中,将一个比特在一个测试向量中所占用的位置称为比特位,以及将RAM内的一个存储地址中用于保存一个比特的位置称为存储位。
参阅图2所示,本发明实施例中,对芯片内的模型进行测试的详细流程如下:
步骤200:生成测试向量集合,其中,每一个测试向量的长度等于待测试的逻辑模型的数据位宽,在相邻生成的测试向量之间,处于同一比特位的逻辑值取值相反,以及在同一测试向量中,相邻比特位的逻辑值取值相反。
与March算法类似,本发明在ATPG阶段,即针对FIFO模型生成测试向量时,也需完全覆盖存储资源。
可选的,本发明实施例中,使用一种棋盘格式生成测量向量,以充分激活FIFO模型内嵌的RAM的各类故障。
例如,参阅图3A所示,在已生成的棋盘格式的测试向量集合中,灰色和白色代表不同的逻辑值,如,灰色代表1,白色代表0,或者,灰色代表0,白色代表1。每一行表征一个测试向量,一个测试向量的长度是FIFO模型的数据位宽(DATA_WIDTH);本发明实施例中,数据位宽为8bits,即一个测试向量包含有8个比特位。
如图3所示,在测试向量集合中,集合的深度(即depth)表征测试向量的数目,本发明实施例中,一个测试向量集合中包含有16个测试向量。
相邻生成的测试向量之间,处于同一比特位的逻辑值翻转,即取值相反,一个取值为1,另一个取值为0。
进一步地,针对对于数据位宽为DATA_WIDTH的FIFO,可选的使用DATA_WIDTH个触发器构成移位寄存器生成测试向量。
例如,参阅图3B所示,假设DATA_WIDTH为8bits,则设置8个触发器,每一个触发器生成测试向量中一个比特位的逻辑值,每当时钟触发时,8个触发器各自生成相应的逻辑值,从而组成一个包含8个bits的测试向量,如“10101010”,或“01010101”,多次生成测试向量后,则组成如3A所示的棋盘格式的测试向量集合。
进一步地,测试向量的数目视具体应用环境而灵活配置,在此不再赘述。
步骤210:在所述测试向量集合中读取各个测试向量,写满所述逻辑模型中的RAM,并从所述RAM中读取写入的各个测试向量进行正确性判断,以完成故障测试,其中,所述RAM内的每一个存储位,至少写入两次取值相反的逻辑值。
本发明实施例中,由于是针对FIFO模型中的RAM进行测试,与单纯针对RAM进行测试的最大的区别在于地址控制。RAM支持地址随机访问,地址线状态可以通过外部电路控制和测试,而在FIFO模型中的RAM,只能通过数据的读写间接改变地址,并诊断故障。
因此,本发明实施例中,针对棋盘格式的测试向量集合,设计一种特殊的激励加载方法(即测试向量读写方法),以保证FIFO模型中的RAM的能够被测试向量全部覆盖。
具体的,即是采用测试向量集合中的测试向量,写满RAM,边写入边读出,判断写入的测试向量和读出的测试向量是否相同,从而判断RAM中是否存在故障,其中,测试向量的写入次数和读出次数可以根据具体应用环境而灵活设置,只需要最低限度地保证每一个存储位至少需要写入两次取值相反的逻辑值,即可以及时发现RAM中的存储地址是否发生故障。
例如,参阅图4A所示,可以采用棋盘格式的测试向量集合写满FIFO模型可的RAM,由于测试向量的长度等于FIFO模型的DATA_WIDTH,因此,在FIFO模型中的RAM内,一个测试向量可以占满一行,并且,由于在测试集合内,相邻生成的测试向量之间,位于同一比特位置的逻辑值取值相反,因此,依次读取每一个测试向量写入FIFO模型中的RAM后,在写入的相邻测试向量之间,位于同一比特位置的逻辑值取值亦相反。
如,假设在图3A所示的测试向量集合中,灰色表示“0”,而白色表示“1”,那么,读取出第一个测试向量“01010101”,通过写指针直接写入FIFO模型中的RAM内的第一行,即“0X5A”,接着,再读取出第二个测试向量“10101010”,通过写指针直接写入FIFO模型中的RAM内的第二行,即“0XA5”,然后,继续重复上述过程,不断读取出“01010101”和“10101010”,相间隔地通过写指针写入FIFO模型中的RAM内,直到写满为止。
然后,采用读二写一的方式,通过读指针,从所述RAM中每读取出两个写入的测试向量,通过写指针,再次从测试向量集合中读取一个测试向量并写入所述的RAM内,直到所述RAM清空为止;其中,针对同一存储地址,通过写指针再次写入的测试向量,与通过读指针读取的测试向量之间,位于同一比特位的逻辑值取值相反。
进一步地,针对从RAM内读取出的各个测试向量,均需要进行正确性判断,即判断是否同时满足以下条件:1、读取出的同一测试向量内,相邻比特位的逻辑值相反;2、读取出的相邻的测试向量之间,同一比特位的逻辑值满足:按位与为0,按位或为1;确定不能同时满足上述条件时,判定所述RAM内发生内容类故障。
由于FIFO模型是先入先出模型,因此,测试向量的写入顺序和读取顺序均是固定的,即读写顺序为先入先出且读写内容具有相邻访问的特点。
例如,参阅图4B所示,由于是读二写一,因此,读指针的读取速度要快于写指针的写入速度,当读指针遍历了整个RAM时,写指针只写到了一半的位置。
如图4B所示,与图4A相比较,当读指针读取了RAM中的某一行的测试向量时,写指针再次写入的测试向量与已读取的测试向量之间,位于同一比特位的逻辑值取值相反,即,若在图4A中,某一行写入的是“01010101”,收在读二写一过程中,读指针读取出“01010101”之后,写指针再次写入的是“10101010”。
参阅图4C所示,继续读二写一操作,直到写指针到达RAM的底部时,读指针也再次经过一次遍历而同时到达RAM底部,此时,RAM中的测试向量均已清空。
采用这种方式写入和读出测试向量,可以保证RAM内的每一行中的每一个存储位均写入过“0”和“1”两种不同的取值,并且每一个存储位无论当前写入何种取值,均和前后相邻比特位写入的取值相反。
这样,从而可以有效排查出RAM的内容类故障,如,RAM的固定型故障(如,SA0故障、SA1故障)、RAM中图形bit敏感故障、RAM中相邻bit耦合故障。
例如,针对RAM的固定型故障,如果RAM内的某一个存储位固定输出“0”(即SA0故障)或固定输出“1”(即SA1故障),那么,由于一个存储位至少被写入过“0”和“1”两种不同的取值,因此,在读取出测试向量后,可以有效地测试出哪一个存储位发生了SA0故障或SA1故障。
又例如,针对RAM中图形敏感故障,由于一个存储位至少被写入过“0”和“1”两种不同的取值,因此,无论RAM中的某个存储地址是针对“10”图形敏感而容易发生输出错误,还是针对“01”图形敏感而容易发生输出错误,均可以有效地被检测出来。
又例如:针对RAM中相邻bit耦合故障,无论RAM中任何位置的相邻bit经耦合而固定输出何种固定值(如,00、01、10和11),由于一个存储位至少被写入过“0”和“1”两种不同的取值,并且每一个存储位无论当前写入何种取值,均和前后相邻比特位写入的取值相反,因此,任何类型的耦合故障均可以有效地被检测出来。
上述三种故障均是RAM的内容类故障,采用本发明实施例提供的方案可以实现百分之百故障全覆盖。
当然,可以在通过读指针从所述RAM中读取测试向量的过程中,每读取一个测试向量,便进行一次正确性判断,也可以在读取出部分或全部测试向量后,统一进行正确性判断,判断方式可以根据硬件配置或应用环境而灵活设置,在此不再赘述。
在执行读二写一操作将所述RAM清空之后,为了能够进一步检测出所述RAM的地址类故障,本发明实施例中,可以继续采用写二读一的方式,通过写指针,从测试向量集合中每读取两个测试向量写入所述的RAM内,通过读指针,从所述RAM中读取出一个写入的测试向量,直到所述RAM写满为止;其中,针对同一存储地址,通过写指针再次写入的测试向量,与通过读指针读取的测试向量之间,位于同一比特位的逻辑值取值相反。
进一步地,针对从RAM内读取出的各个测试向量,均需要进行正确性判断,即判断是否同时满足以下条件:1、读取出的同一测试向量内,相邻比特位的逻辑值相反;2、读取出的相邻的测试向量之间,同一比特位的逻辑值满足:按位与为0,按位或为1;确定不能同时满足上述条件时,判定所述RAM内发生内容类故障。
由于FIFO模型是先入先出模型,因此,测试向量的写入顺序和读取顺序均是固定的,即读写顺序为先入先出且读写内容具有相邻访问的特点。
例如,参阅图5A所示,由于是写二读一,因此,写指针的写入速度要快于读指针的读取速度,当写指针遍历了整个RAM时,读指针只读到了一半的位置。
参阅图5B所示,继续写二读一操作,直到读指针到达RAM的底部时,写指针也再次经过一次遍历而同时到达RAM底部,此时,RAM中的测试向量已写满。
可见,写指针在所述RAM共遍历写入两遍测试向量,才将所述RAM写满,其中,可图5A与图5B相比较,写指针再次写入的测试向量与已读取的测试向量之间,位于同一比特位的逻辑值取值相反,即,在图5A中,若写指针在某一行初次写入的是“01010101”,则在后续过程中,读指针读取出“01010101”之后,写指针再次写入的是“10101010”。
这样,从而可以有效排查出RAM的地址类故障,如,RAM的读写地址耦合故障、RAM的寻址故障。
例如,针对RAM的读写地址故障和RAM的寻址故障,由于先执行读二写一操作,再操作写二读一操作,这样,会令读指针和写指针的执行速度发生改变,那么,若所述RAM存在地址类故障,则读取出的相邻的测试向量会发生取值一致的情况;例如,在所述RAM中,若从相邻存储地址中先后读取出的测试向量均为“01010101”,则可以准确地判定出所述RAM内的这一相邻存储地址存在地址类故障。
基于上述技术方案,可选的,本发明实施例中,可以采用预设的ORA在对测试向量进行正确性判断时。
本发明实施例中,FIFO模型是先入先出模型,由于使用的测试向量集合为棋盘格式,所以读取出的相邻的测试向量之间,同一比特位的逻辑值应当满足按位与为0,按位或为1,而同一测试向量内,相邻比特位的逻辑值相反。
例如,针对一个测试向量进行测试时,可以采用如图6所示的ORA逻辑电路,具体的,可以将一个测试向量输入上述ORA逻辑电路中,其中,D_out_delay和D_out表征输出的一个测试向量中的相邻比特位的逻辑值,经过按位与和按位或运算后,可以判断相邻比特位的逻辑值是否相反。
又例如,针对读取出的相邻的测试向量进行测试时,也可以采用如图6所示的ORA逻辑电路,具体的,可以将ORA逻辑电路的数量设置为DATA_WIDTH,一个ORA逻辑电路用于判断一个比特位,其中,D_out_delay表征先读取出的测试向量中的一个比特位的逻辑值,D_out表征后读取出的相邻的测试向量中的同一比特位的逻辑值,经过按位与和按位或运算后,可以判断相邻读取出的测试向量之间,同一比特位的逻辑值是否满足:按位与为0,按位或为1。
基于上述实施例,参阅图7所示,本发明实施例中,测试装置至少包括生成单元70和测试单元71,其中,
生成单元70,用于生成测试向量集合,其中,每一个测试向量的长度等于待测试的逻辑模型的数据位宽,在相邻生成的测试向量之间,处于同一比特位的数据的逻辑值取值相反,以及在同一测试向量中,相邻比特位的数据的逻辑值取值相反;
测试单元71,用于在所述测试向量集合中读取各个测试向量,写满所述逻辑模型中的RAM,并从所述RAM中读取写入的各个测试向量进行正确性判断,以完成故障测试,其中,所述RAM内的每一个存储位,至少写入两次取值相反的逻辑值。
可选的,在所述测试向量集合中读取各个测试向量,写满所述逻辑模型中的RAM,并从所述RAM中读取写入的各个测试向量进行正确性判断,以完成故障测试,其中,所述RAM内的每一个存储位,至少写入两次取值相反的逻辑值时,测试单元71用于:
在所述测试向量集合中读取各个测试向量,通过写指针写满所述逻辑模型中的RAM;
通过读指针,从所述RAM中每读取出两个写入的测试向量,通过写指针,再次从所述测试向量集合中读取一个测试向量并写入所述的RAM内,直到所述RAM清空为止;其中,针对同一存储地址,通过写指针再次写入的测试向量,与通过读指针读取的测试向量之间,位于同一比特位的逻辑值取值相反;
针对读取出的测试向量进行正确性判断。
可选的,所述RAM清空之后,测试单元71进一步用于:
通过写指针,从所述测试向量集合中每读取两个测试向量写入所述的RAM内,通过读指针,从所述RAM中读取出一个写入的测试向量,直到所述RAM写满为止;其中,针对同一存储地址,通过写指针再次写入的测试向量,与通过读指针读取的测试向量之间,位于同一比特位的逻辑值取值相反。
针对读取出的测试向量进行正确性判断。
可选的,针对读取出的测试向量进行正确性判断时,测试单元71用于:
判断读取出的测试向量是否满足以下条件:
读取出的同一测试向量内,相邻比特位的逻辑值相反;
读取出的相邻的测试向量之间,同一比特位的逻辑值满足:按位与为0,按位或为1,
确定不满足时,判定所述RAM内发生内容类故障。
可选的,测试单元71进一步用于:
判断读取出的相邻的测试向量是否一致,确定一致时,判定所述RAM发生地址类故障。
可选的,测试单元71进一步用于:
采用预设的响应分析ORA逻辑电路对读取出的测试向量进行正确性判断。
综上所述,本发明实施例中,生成测试向量集合,其中,每一个测试向量的长度等于待测试的逻辑模型的数据位宽,在相邻生成的测试向量之间,处于同一比特位的数据的逻辑值取值相反,以及在同一测试向量中,相邻比特位的数据的逻辑值取值相反;在所述测试向量集合中读取各个测试向量,写满所述逻辑模型中的RAM,并从所述RAM中读取写入的各个测试向量进行正确性判断,以完成故障测试,其中,所述RAM内的每一个存储位,至少写入两次取值相反的逻辑值。这样,可以确保在逻辑模型中的RAM内,每一个存储位均采用了取值相反的两种逻辑值进行了读和写的覆盖,因此,可以有效检测出RAM内的内容类故障,如,SA0故障、SA1故障、耦合故障等均得到了覆盖。
进一步地,又可以采用读二写一和写二读一的方式进行测试向量的加载以及读取,这样,若输入地址控制出现故障,则将连续读取出相同的数据,从而,RAM内的地址类故障也得到了覆盖。
这样,无需对FPGA芯片进行重配置,采用的检测电路结构简单易实现,且占用较少的逻辑资源,从而可以在不占用大量逻辑资源的前提下,准确、全面地检测逻辑模型中的RAM的各类故障,进而有效降低了实现及运维成本,同时,又可以提高测试效率和故障覆盖率。
本领域内的技术人员应明白,本发明的实施例可提供为方法、***、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (12)
1.一种芯片内逻辑模型的测试方法,其特征在于,包括:
生成测试向量集合,其中,每一个测试向量的长度等于待测试的逻辑模型的数据位宽,在相邻生成的测试向量之间,处于同一比特位的数据的逻辑值取值相反,以及在同一测试向量中,相邻比特位的数据的逻辑值取值相反;
在所述测试向量集合中读取各个测试向量,写满所述逻辑模型中的随机访问存储器RAM,并从所述RAM中读取写入的各个测试向量进行正确性判断,以完成故障测试,其中,所述RAM内的每一个存储位,至少写入两次取值相反的逻辑值。
2.如权利要求1所述的方法,其特征在于,在所述测试向量集合中读取各个测试向量,写满所述逻辑模型中的RAM,并从所述RAM中读取写入的各个测试向量进行正确性判断,以完成故障测试,其中,所述RAM内的每一个存储位,至少写入两次取值相反的逻辑值,包括:
在所述测试向量集合中读取各个测试向量,通过写指针写满所述逻辑模型中的RAM;
通过读指针,从所述RAM中每读取出两个写入的测试向量,通过写指针,再次从所述测试向量集合中读取一个测试向量并写入所述的RAM内,直到所述RAM清空为止;其中,针对同一存储地址,通过写指针再次写入的测试向量,与通过读指针读取的测试向量之间,位于同一比特位的逻辑值取值相反;
针对读取出的测试向量进行正确性判断。
3.如权利要求2所述的方法,其特征在于,所述RAM清空之后,进一步包括:
通过写指针,从所述测试向量集合中每读取两个测试向量写入所述的RAM内,通过读指针,从所述RAM中读取出一个写入的测试向量,直到所述RAM写满为止;其中,针对同一存储地址,通过写指针再次写入的测试向量,与通过读指针读取的测试向量之间,位于同一比特位的逻辑值取值相反;
针对读取出的测试向量进行正确性判断。
4.如权利要求2或3所述的方法,其特征在于,针对读取出的测试向量进行正确性判断,包括:
判断读取出的测试向量是否满足以下条件:
读取出的同一测试向量内,相邻比特位的逻辑值相反;
读取出的相邻的测试向量之间,同一比特位的逻辑值满足:按位与为0,按位或为1;
确定不满足时,判定所述RAM内发生内容类故障。
5.如权利要求4所述的方法,其特征在于,进一步包括:
判断读取出的相邻的测试向量是否一致,确定一致时,判定所述RAM发生地址类故障。
6.如权利要求4所述的方法,其特征在于,进一步包括:
采用预设的响应分析ORA逻辑电路对读取出的测试向量进行正确性判断。
7.一种芯片内逻辑模型的测试装置,其特征在于,包括:
生成单元,用于生成测试向量集合,其中,每一个测试向量的长度等于待测试的逻辑模型的数据位宽,在相邻生成的测试向量之间,处于同一比特位的数据的逻辑值取值相反,以及在同一测试向量中,相邻比特位的数据的逻辑值取值相反;
测试单元,用于在所述测试向量集合中读取各个测试向量,写满所述逻辑模型中的随机访问存储器RAM,并从所述RAM中读取写入的各个测试向量进行正确性判断,以完成故障测试,其中,所述RAM内的每一个存储位,至少写入两次取值相反的逻辑值。
8.如权利要求7所述的装置,其特征在于,在所述测试向量集合中读取各个测试向量,写满所述逻辑模型中的RAM,并从所述RAM中读取写入的各个测试向量进行正确性判断,以完成故障测试,其中,所述RAM内的每一个存储位,至少写入两次取值相反的逻辑值时,所述测试单元用于:
在所述测试向量集合中读取各个测试向量,通过写指针写满所述逻辑模型中的RAM;
通过读指针,从所述RAM中每读取出两个写入的测试向量,通过写指针,再次从所述测试向量集合中读取一个测试向量并写入所述的RAM内,直到所述RAM清空为止;其中,针对同一存储地址,通过写指针再次写入的测试向量,与通过读指针读取的测试向量之间,位于同一比特位的逻辑值取值相反;
针对读取出的测试向量进行正确性判断。
9.如权利要求8所述的装置,其特征在于,所述RAM清空之后,所述测试单元进一步用于:
通过写指针,从所述测试向量集合中每读取两个测试向量写入所述的RAM内,通过读指针,从所述RAM中读取出一个写入的测试向量,直到所述RAM写满为止;其中,针对同一存储地址,通过写指针再次写入的测试向量,与通过读指针读取的测试向量之间,位于同一比特位的逻辑值取值相反;
针对读取出的测试向量进行正确性判断。
10.如权利要求8或9所述的装置,其特征在于,针对读取出的测试向量进行正确性判断时,所述测试单元用于:
判断读取出的测试向量是否满足以下条件:
读取出的同一测试向量内,相邻比特位的逻辑值相反;
读取出的相邻的测试向量之间,同一比特位的逻辑值满足:按位与为0,按位或为1;
确定不满足时,判定所述RAM内发生内容类故障。
11.如权利要求10所述的装置,其特征在于,所述测试单元进一步用于:
判断读取出的相邻的测试向量是否一致,确定一致时,判定所述RAM发生地址类故障。
12.如权利要求10所述的装置,其特征在于,所述测试单元进一步用于:
采用预设的响应分析ORA逻辑电路对读取出的测试向量进行正确性判断。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810072807.4A CN110082672B (zh) | 2018-01-25 | 2018-01-25 | 一种芯片内逻辑模型的测试方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810072807.4A CN110082672B (zh) | 2018-01-25 | 2018-01-25 | 一种芯片内逻辑模型的测试方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110082672A true CN110082672A (zh) | 2019-08-02 |
CN110082672B CN110082672B (zh) | 2020-09-11 |
Family
ID=67412022
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810072807.4A Active CN110082672B (zh) | 2018-01-25 | 2018-01-25 | 一种芯片内逻辑模型的测试方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110082672B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110990204A (zh) * | 2019-11-24 | 2020-04-10 | 苏州浪潮智能科技有限公司 | 内存压力测试方法、装置、设备及计算机可读存储介质 |
CN112098770A (zh) * | 2020-08-20 | 2020-12-18 | 深圳市宏旺微电子有限公司 | 针对动态耦合故障模拟极端环境下的测试方法和装置 |
CN112988491A (zh) * | 2021-05-20 | 2021-06-18 | 新华三半导体技术有限公司 | 一种内存测试方法、装置及内存控制器 |
CN112992264A (zh) * | 2021-02-05 | 2021-06-18 | 上海华虹宏力半导体制造有限公司 | 芯片的测试方法 |
CN113223597A (zh) * | 2021-05-28 | 2021-08-06 | 北京集创北方科技股份有限公司 | 闪存测试方法、装置、存储介质和终端设备 |
CN113848454A (zh) * | 2021-09-09 | 2021-12-28 | 海光信息技术股份有限公司 | 一种芯片测试方法及芯片测试机 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5167020A (en) * | 1989-05-25 | 1992-11-24 | The Boeing Company | Serial data transmitter with dual buffers operating separately and having scan and self test modes |
GB2282682B (en) * | 1993-10-07 | 1998-03-18 | Fujitsu Ltd | An apparatus for and a method of detecting a malfunction of a FIFO memory |
CN1317797A (zh) * | 2000-02-04 | 2001-10-17 | 惠普公司 | 磁-电阻性存储器阵列的自测试 |
US20020138797A1 (en) * | 2001-02-21 | 2002-09-26 | Stmicroelectronics S.A. | Method of testing a sequential access memory plane and a corresponding sequential access memory semiconductor device |
CN1427420A (zh) * | 2001-12-20 | 2003-07-02 | 华为技术有限公司 | Ram高速测试控制电路及其测试方法 |
US20040187053A1 (en) * | 2003-03-20 | 2004-09-23 | Sailer Philip M. | First-in/first-out (FIFO) information protection and error detection method and apparatus |
CN1619705A (zh) * | 2003-11-19 | 2005-05-25 | 华为技术有限公司 | 一种多端口存储器的测试方法 |
CN1744052A (zh) * | 2002-03-11 | 2006-03-08 | 华为技术有限公司 | 存储器在板测试方法 |
JP2008521159A (ja) * | 2004-11-18 | 2008-06-19 | メンター・グラフィクス・コーポレーション | プログラマブル・メモリ・ビルト・イン・セルフ・テスト(mbist)の方法及び装置 |
CN101692351A (zh) * | 2009-11-02 | 2010-04-07 | 华为技术有限公司 | 存储器测试方法及装置 |
CN102034554A (zh) * | 2010-11-24 | 2011-04-27 | 钰创科技股份有限公司 | 增加芯片老化扫描效率的方法 |
CN106847343A (zh) * | 2016-12-08 | 2017-06-13 | 上海精密计量测试研究所 | 基于自动测试设备的mram存储器的测试方法 |
-
2018
- 2018-01-25 CN CN201810072807.4A patent/CN110082672B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5167020A (en) * | 1989-05-25 | 1992-11-24 | The Boeing Company | Serial data transmitter with dual buffers operating separately and having scan and self test modes |
GB2282682B (en) * | 1993-10-07 | 1998-03-18 | Fujitsu Ltd | An apparatus for and a method of detecting a malfunction of a FIFO memory |
CN1317797A (zh) * | 2000-02-04 | 2001-10-17 | 惠普公司 | 磁-电阻性存储器阵列的自测试 |
US20020138797A1 (en) * | 2001-02-21 | 2002-09-26 | Stmicroelectronics S.A. | Method of testing a sequential access memory plane and a corresponding sequential access memory semiconductor device |
CN1427420A (zh) * | 2001-12-20 | 2003-07-02 | 华为技术有限公司 | Ram高速测试控制电路及其测试方法 |
CN1744052A (zh) * | 2002-03-11 | 2006-03-08 | 华为技术有限公司 | 存储器在板测试方法 |
US20040187053A1 (en) * | 2003-03-20 | 2004-09-23 | Sailer Philip M. | First-in/first-out (FIFO) information protection and error detection method and apparatus |
CN1619705A (zh) * | 2003-11-19 | 2005-05-25 | 华为技术有限公司 | 一种多端口存储器的测试方法 |
JP2008521159A (ja) * | 2004-11-18 | 2008-06-19 | メンター・グラフィクス・コーポレーション | プログラマブル・メモリ・ビルト・イン・セルフ・テスト(mbist)の方法及び装置 |
CN101692351A (zh) * | 2009-11-02 | 2010-04-07 | 华为技术有限公司 | 存储器测试方法及装置 |
CN102034554A (zh) * | 2010-11-24 | 2011-04-27 | 钰创科技股份有限公司 | 增加芯片老化扫描效率的方法 |
CN106847343A (zh) * | 2016-12-08 | 2017-06-13 | 上海精密计量测试研究所 | 基于自动测试设备的mram存储器的测试方法 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110990204A (zh) * | 2019-11-24 | 2020-04-10 | 苏州浪潮智能科技有限公司 | 内存压力测试方法、装置、设备及计算机可读存储介质 |
CN112098770A (zh) * | 2020-08-20 | 2020-12-18 | 深圳市宏旺微电子有限公司 | 针对动态耦合故障模拟极端环境下的测试方法和装置 |
CN112992264A (zh) * | 2021-02-05 | 2021-06-18 | 上海华虹宏力半导体制造有限公司 | 芯片的测试方法 |
CN112988491A (zh) * | 2021-05-20 | 2021-06-18 | 新华三半导体技术有限公司 | 一种内存测试方法、装置及内存控制器 |
CN112988491B (zh) * | 2021-05-20 | 2021-08-06 | 新华三半导体技术有限公司 | 一种内存测试方法、装置及内存控制器 |
CN113223597A (zh) * | 2021-05-28 | 2021-08-06 | 北京集创北方科技股份有限公司 | 闪存测试方法、装置、存储介质和终端设备 |
CN113848454A (zh) * | 2021-09-09 | 2021-12-28 | 海光信息技术股份有限公司 | 一种芯片测试方法及芯片测试机 |
Also Published As
Publication number | Publication date |
---|---|
CN110082672B (zh) | 2020-09-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110082672A (zh) | 一种芯片内逻辑模型的测试方法及装置 | |
US20050204232A1 (en) | Technique for combining scan test and memory built-in self test | |
CN101627370B (zh) | 估计待测器件的扫描链中的固定型缺陷的位置 | |
US20100312517A1 (en) | Test Method Using Memory Programmed with Tests and Protocol To Communicate between Device Under Test and Tester | |
CN108062267B (zh) | 一种可配置寄存器文件自测试方法及生成装置 | |
US20130019130A1 (en) | Testing electronic memories based on fault and test algorithm periodicity | |
KR20100086024A (ko) | 스캔 체인을 분석하고, 스캔 체인에서의 홀드 타임 결함의 수 또는 위치를 판정하는 방법 | |
US10685730B1 (en) | Circuit including efficient clocking for testing memory interface | |
CN110120242A (zh) | 存储器测试方法、装置、计算机设备以及存储介质 | |
US7219287B1 (en) | Automated fault diagnosis in a programmable device | |
JP5206487B2 (ja) | 半導体集積回路の制御方法および半導体集積回路 | |
US20220253375A1 (en) | Systems and methods for device testing to avoid resource conflicts for a large number of test scenarios | |
CN114398848A (zh) | 一种测试向量生成方法、装置及存储介质 | |
CN101839962A (zh) | 一种处理器芯片频率的筛选方法 | |
CN106291313A (zh) | 用于测试集成电路的方法和设备 | |
CN110347595A (zh) | 一种fpga内部资源甄别与定位方法及*** | |
US7617428B2 (en) | Circuits and associated methods for improved debug and test of an application integrated circuit | |
US20020188904A1 (en) | Efficiency of fault simulation by logic backtracking | |
US6944806B2 (en) | Method and apparatus to data log at-speed March C+ memory BIST | |
CN108693466A (zh) | 一种边界扫描器件、装置及控制方法和扫描方法 | |
US6876934B2 (en) | Method for determining fault coverage from RTL description | |
KR101060243B1 (ko) | 이중 포트 메모리를 위한 프로그래머블 메모리 자체 테스트회로 생성기 및 그 생성 방법 | |
US10222418B2 (en) | Scan cell for dual port memory applications | |
US5483544A (en) | Vector-specific testability circuitry | |
JP2001222897A (ja) | 半導体試験装置 |
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 |