一种三态内容可寻址存储器的测试电路及其方法与流程

文档序号:11868133阅读:236来源:国知局
一种三态内容可寻址存储器的测试电路及其方法与流程
本发明涉及集成电路设计制造领域,具体来说,但不仅限于,内容可寻址存储器的测试方法。

背景技术:
通常的存储器(RAM或ROM)使用地址来指示存储单元的位置,并且输出该位置存储单元中的数据。与此相对,三态内容可寻址存储器(TCAM)则接收外部检索数据,比较该检索数据与TCAM中存储的数据是否匹配,并且输出该匹配数据在CAM中的地址。由于与检索数据相一致的字不限于一个,因此,当TCAM中有多个字与检索数据相一致时,需要优先级编码器对匹配信号进行编码,并返回优先级最高的地址信号。附图1是传统TCAM基本单元的结构图。TCAM的值被存储在SRAM中。如果D为0,DB为1,TCAM存储的值为0;如果D为1,DB为0,TCAM存储的值为1;如果D和DB都为0,TCAM存储的值为X。在搜索数据时,搜索数据会通过搜索线SL和SLB施加到比较管。搜索0时,SL为1,SLB为0;搜索1时,SL为0,SLB为1;搜索X时,SL和SLB为0。匹配线ML会被预充到1。在搜索操作时,如果检索数据与存储的数据匹配,ML保持为1。如果不匹配,ML则会被下拉到0。存储的数据或者搜索的数据为X时,表示匹配,ML保持为1。附图2是由附图1所示基本单元组成的芯片的结构图。单元阵列中存储着数据。搜索数据通过搜索线(SL,SearchLine)发送到CAM单元阵列,与存储在单元阵列中的数据进行比较。如果所存储的数据匹配搜索数据,则匹配线(ML,MatchLine)的逻辑电平设为高,反之则为低。匹配线灵敏放大器(MLSA,MatchLineSensorAmplifier)检测匹配线电平。优先级编码器(PE,PriorityEncoder)接收所有匹配线检测放大器的输出(MLSO),计算出优先级最高的匹配的字的地址。一般说来阵列中每个字(word)会有一个有效位(validbit)来控制,只有在有效位为高时,该字才会参与比较,否则该字的匹配线放大器的输出一直是不匹配。随着集成电路的特征尺寸越来越小,规模越来越大,芯片失效的几率也越大。每颗芯片在正常工作前,都需要被完全测试。为了减少对自动测试设备(ATE)的依赖,降低成本,提高故障覆盖率,通常会在芯片内部加入自测试电路(BIST,Built-inSelfTest)。对于存储芯片,通常还会加入自我修复电路(BISR,Built-inSelfRepair),用冗余的行或列来替换失效的存储单元。TCAM芯片中SRAM部分和读写的电路测试和普通SRAM芯片一致,可以利用EDA工具自动生成BIST电路。而搜索部分电路的BIST电路则需要专门添加。附图3是TCAM基本单元比较管常见的失效模型。其中图中的(A)部分发生了SOP(stuckopen)断路故障,ML没有放电通道,只能一直保持在匹配状态,即不匹配的功能不正确。图中的(B)部分则发生了SON(stuckon)短路故障,ML一直放电,只能保持在不匹配状态,即匹配的功能不正确。传统的测试方案,TCAM阵列部分和优先级编码器部分是分开分别测试的。附图4是TCAM阵列部分BIST的一种实现方式。对TCAM施加不同的测试激励,直接判断MLSA比较的结果是否正确并分析失效的位置。这种方式虽然能够直观快速的对比较结果进行分析判断,但是由于需要对所有字的结果进行处理,其面积的开销是十分巨大的。附图5则另一种实现方式,即将所有MLSA输出的结果通过扫描链(ScanChain),逐位移出,然后进行分析。这种实现方式虽然降低了面积,但是需要将并行数据转成串行数据输出,这大大增加了测试的时间。上述两种测试方法都是对匹配放大器的输出进行压缩分析,实际使用的时候一般还有优先级编码器,而且通常也只有优先级编码器的输出是可以利用的。而目前还缺少针对其是否有效的测试方案。同时,随着集成电路的特征尺寸越来越小,规模越来越大,集成芯片失效的几率也越大,而目前,TCAM搜索电路,特别是包含优先级编码器的搜索电路还缺少有效的测试方案,以能够在电路面积,测试时间及测试覆盖率之间取得优化。

技术实现要素:
本发明的目的是提供一种通过分析优先级编码器的输出来测试TCAM比较电路的方法,通过这种方法,可以大大降低TCAMBIST电路的面积和测试的时间。同时本测试方法还可以对失效进行定位,提供位置信息给修复电路。为实现上述目的,本发明采用了以下技术方案:一种三态内容可寻址存储器的测试电路及其方法,该测试电路主要包括扫描链、向量生成电路、TCAM阵列模块、优先级编码器、测试结果分析电路和修复电路,其中:扫描链将测试图形输入到优先级编码器输入端;向量生成电路提供各种测试图形给TCAM阵列和优先级编码器;测试结果分析电路通过分析优先级编码器的输出信号来完成测试和故障定位;修复电路则根据测试结果分析电路得出的故障定位信息来修复失效的单元。同时,本发明还公开了一种利用上述测试电路来修复含优先级编码器的三态内容可寻址存储器的方法,具体包括如下步骤:步骤一:利用扫描链电路完成优先级编码器的测试:向量生成电路生成各种测试激励,由SI通过扫描链串行输入,并施加到优先级编码器的输入端,测试结果分析电路通过分析优先级编码器的输出信号来完成测试和故障定位;步骤二:在确保优先级编码器没有失效后,完成搜索不匹配时的测试和修复:利用向量生成电路生成各种测试激励,作为搜索数据施加到TCAM芯片,该数据与TCAM内部存储的数据都不匹配,通过分析优先级编码器的输出信号来完成测试和修复工作;步骤三:完成搜索匹配时的测试和修复:利用向量生成电路生成各种测试激励,作为搜索数据施加到TCAM芯片,该数据与TCAM内部存储的数据匹配,通过分析优先级编码器是否有错误的输出来完成测试和修复工作。优选地,上述步骤二中搜索不匹配时的测试和修复方法具体包括如下步骤:(1)首先用写命令将阵列初始化,使每个字具有相同值;(2)搜索数据,使搜索的数据与阵列中存储的值有1比特不匹配,此时理论上应该没有数据匹配,如果有匹配,则说明有错误;错误的单元行地址就是优先级编码器输出的地址,列地址就是搜索的数据中不匹配的那个比特;根据该地址,可以选择合适的修复方式对该失效单元进行修复;修复完成后,重复搜索操作,确保该不匹配的搜索线上,没有失效单元;(3)重复上述两个步骤,直至所有的搜索数据的每个比特都被测试及修复;(4)重复步骤(1)到(3),将初始值写成与步骤(1)中完全相反的值。优选地,上述步骤三中搜索匹配时的测试和修复方法具体包括如下步骤:(1)首先用写命令将阵列初始化,使每个字具有相同值;(2)搜索数据,使搜索的数据与阵列中存储的值相同,此时理论上应该匹配,优先级编码器应该返回优先级最高的地址;如果返回的匹配地址符合预期,则说明该地址的字没有错误,则将该字的有效位置0,使其不再参与搜索,可以使下次搜索时优先级编码器返回次高优先级的地址;如果返回的匹配地址不符合预期,则说明该预期地址的字有错误,需要被修复,此时已经可以修复该行;如果是列修复,还需要确定失效的列地址;(3)在确定失效的列地址时,可以先简单的判断该字是否可以被列修复来节省时间,将该字的所有位都设为匹配,搜索数据的所有位也都为匹配,此时理论上应该返回预期的匹配地址;如果没有返回预期的地址,说明不能被列修复;如果返回地址符合预期,说明可以被列修复,需要在下述步骤(4)中确定具体的列地址;(4)通过将该字的比特单元逐次屏蔽来确定是哪一位或哪几位失效;将该字的一个或几个比特写成X,其余比特是步骤(1)中写入的初始值,搜索数据与该字是一致的;如果优先级编码器返回符合预期的地址,则说明该比特错误,可对其进行列修复;如果优先级编码器返回地址不符合预期,则说明不是该比特错误,继续下一批比特的测试;在所有比特都被测试并修复后,将该字写成步骤(1)中的初始值,搜索该字,检查是否返回了正确的地址,确定修复是否成功;(5)重复步骤(2)至(4)直至所有的字地址都被优先级编码器逐次编码;(6)重复步骤(1)到(5),将初始值写成与(1)完全相反的值。本方法能够对含有优先级编码器的TCAM芯片进行有效的测试,并能对失效单元进行定位,提供出详细的位置信息完成电路的修复。附图4中需要对n个匹配线检测放大器输出进行分析,而本方案只需对log2(n)个匹配地址进行分析,这大大简化了电路,降低了版图的面积。同时,相比与附图5中的方法,本测试方法每施加一个测试图形后,就可对测试结果进行分析,而附图5的方法需要先花费n个时钟周期将测试结果逐位串行移出后才能分析。对本方法附图6中的步骤2,附图5方法需要n*l个周期来完成,而本方法只需要l个时钟周期就可完成。虽然在附图6的步骤3中,本方法会比附图5中的方法多出n个时钟周期,但对整个流程来说,本方法仍然大大降低了测试时间。附图说明:附图1:TCAM基本单元的结构图和有效工作模式的真值表;附图2:TCAM芯片的结构图;附图3:基本单元比较管常见失效模型;附图4:传统搜索电路BIST的一种实现;附图5:传统搜索电路BIST的另一种实现;附图6:本发明流程示意图;附图7:本发明搜索电路BIST的结构图;附图8:步骤搜索不匹配时的功能测试和修复的具体实现;附图9:步骤搜索匹配时的功能测试和修复的具体实现;附图10:附图9中字J逐位测试的一种具体实现。具体实施方式:本方法能够完成含优先级编码器的TCAM的内建自测试和对故障的定位和修复,下面结合附图对本发明的具体实施方式进行详细描述。附图6是本测试方法的主要流程图,其步骤如下:1.利用扫描链电路完成优先级编码器的测试:附图7中的向量生成电路生成各种测试激励,由SI通过扫描链串行输入,并施加到优先级编码器的输入端,通过分析优先级编码器的输出信号来完成测试和故障定位。2.在确保优先级编码器没有失效后,完成搜索不匹配时的测试和修复:利用附图7中的向量生成电路生成各种测试激励,作为搜索数据施加到TCAM芯片,该数据与TCAM内部存储的数据都不匹配,测试结果分析电路通过分析优先级编码器的输出信号来完成测试和修复工作。3.完成搜索匹配时的测试和修复:利用附图7中的向量生成电路生成各种测试激励,作为搜索数据施加到TCAM芯片,该数据与TCAM内部存储的数据匹配,测试结果分析电路通过分析优先级编码器是否有错误的输出来完成测试和修复工作。附图7是该方法所对应的BIST电路的结构图,该电路主要包括扫描链、向量生成电路、TCAM阵列模块、优先级编码器、测试结果分析电路和修复电路,其中:1.扫描链将测试图形输入到优先级编码器输入端;2.向量生成电路提供各种测试图形给TCAM阵列和优先级编码器;3.测试结果分析电路通过分析优先级编码器的输出信号来完成测试和故障定位;4.修复电路则根据测试结果分析电路得出的故障定位信息来修复失效的单元。附图8是步骤2搜索不匹配时的测试和修复方法的具体实现。1.1首先用写命令将阵列初始化,使每个字具有相同值1.2搜索数据,使搜索的数据与阵列中存储的值有1比特不匹配。此时理论上应该没有数据匹配。如果有匹配,则说明有错误。错误的单元行地址就是优先级编码器输出的地址,列地址就是搜索的数据中不匹配的那个比特。根据该地址,可以选择合适的修复方式对该失效单元进行修复。修复完成后,重复搜索操作,确保该不匹配的搜索线上,没有失效单元。1.3重复上述步骤,直至所有的搜索数据的每个比特都被测试及修复。1.4重复步骤1.1到1.3,将初始值写成与1.1中完全相反的值。附图9是步骤3搜索匹配时的测试和修复方法的具体实现。1.1首先用写命令将阵列初始化,使每个字具有相同值1.2搜索数据,使搜索的数据与阵列中存储的值相同。此时理论上应该匹配,优先级编码器应该返回优先级最高的地址。如果返回的匹配地址符合预期,则说明该地址的字没有错误,则将该字的有效位置0,使其不再参与搜索,可以使下次搜索时优先级编码器返回次高优先级的地址。如果返回的匹配地址不符合预期,则说明该预期地址的字有错误,需要被修复。此时已经可以修复该行。如果是列修复,还需要确定失效的列地址。1.3在确定失效的列地址时,可以先简单的判断该字是否可以被列修复来节省时间。即将该字的所有位都设为X(匹配),搜索数据的所有位也都为X(匹配),此时理论上应该返回预期的匹配地址。如果没有返回预期的地址,说明不能被列修复。如果返回地址符合预期,说明可以被列修复,需要在步骤1.4中确定具体的列地址。1.4通过将该字的比特单元逐次屏蔽来确定是哪一位或哪几位失效。将该字的一个或几个比特写成X,其余比特是步骤1.1写入的初始值,搜索数据与该字是一致的。如果优先级编码器返回符合预期的地址,则说明该比特错误,可对其进行列修复。如果优先级编码器返回地址不符合预期,则说明不是该比特错误,继续下一批比特的测试。在所有比特都被测试并修复后,将该字写成步骤1.1中的初始值,搜索该字,检查是否返回了正确的地址,确定修复是否成功。1.5重复步骤1.2至1.4直至所有的字地址都被优先级编码器逐次编码。1.6重复步骤1.1到1.5,将初始值写成与1.1完全相反的值。以上所述仅为本发明的较佳实施方式而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1