发明名称 一种基于测试向量相容的测试向量编码压缩方法
摘要 本发明公开了一种基于向量相容的测试向量编码压缩方法。它包括测试向量的压缩和编码后的解压缩两部分,首先确定测试向量的编码,从测试向量集中取出向量t1,通过与t1相容性最大的向量合并,并确保整体压缩率的提升,完成对测试向量的分组并对测试向量组编码。解码时将编码移入到被测电路保存,重复对编码解码,直到还原被压缩之前的向量组。本发明根据相容性最大的关系把测试向量集分组,并将测试向量组内的向量合并编码,不相容的位置用标记码标出,极大的减少了用地址信息标记所需的位数,在编码两端分别插入组头信息和组分割码。解码时,将测试向量组的编码移入被测电路保存,可以重复利用,极大地降低了测试机与被测电路的带宽。
申请公布号 CN101604001B 申请公布日期 2011.05.18
申请号 CN200910100309.7 申请日期 2009.07.02
申请人 浙江大学 发明人 潘赟;万民永;严晓浪
分类号 G01R31/3183(2006.01)I;G01R31/317(2006.01)I 主分类号 G01R31/3183(2006.01)I
代理机构 杭州求是专利事务所有限公司 33200 代理人 张法高
主权项 1.一种基于向量相容的测试向量编码压缩方法,其特征在于包括测试向量的压缩和编码后的解压缩两部分,测试向量的压缩包括如下步骤:1)确定测试向量的编码;2)由被测电路得到第一测试向量集R,选取第一测试向量集R中任一个第一向量t<sub>1</sub>,将第一向量t<sub>1</sub>从第一测试向量集R中移出,放入测试向量组S中,测试向量组S内的向量个数m为1,设第二测试向量集H,第二测试向量集H与第一测试向量集R相同;3)从第二测试向量集H中找出与第一向量t<sub>1</sub>相容性最大的第二向量t<sub>2</sub>,并将第二向量t<sub>2</sub>从第二测试向量集H中移出;4)若n<sub>2</sub>大于n<sub>max</sub>,并且第二测试集H不是空集,则返回步骤3),若第二测试集H为空集,则到步骤7)完成分组,若n<sub>2</sub>小于n<sub>max</sub>,则到步骤5),其中,n<sub>max</sub>为测试向量之间不相容位的最大个数,n<sub>max</sub>的值自定义,n<sub>2</sub>为第一向量t<sub>1</sub>与第二向量t<sub>2</sub>不相容位的个数;5)将第二向量t<sub>2</sub>移入测试向量组S中,向量个数m的值增加1,求出第一向量t<sub>1</sub>与第二向量t<sub>2</sub>相容后的第四向量t<sub>4</sub>;6)对测试向量组S编码,计算第一测试向量组S的压缩率λ和第二向量t<sub>2</sub>的压缩率λ<sub>comp</sub>,判断第二向量t<sub>2</sub>是否要从测试向量组S移出,若第二测试向量集H为空集,则到步骤7),若第二测试向量集H不为空集,则到步骤3);7)完成对测试向量组S的分组,对测试向量组S编码,得到表示测试向量组S内向量个数m的编码M、表示不相容位个数n的编码N以及表示不相容位上值信息的编码Q,由第一向量t<sub>1</sub>得到第六向量t<sub>6</sub>,第六向量t<sub>6</sub>的编码为T6_code,从第一测试向量集R中移出测试向量组S内的向量;8)若第一测试向量集R为空集,则分组结束,若第一测试向量集R不为空集,则回到步骤2)开始下一测试向量组;编码后的解压缩包括如下步骤:9)将表示测试向量组S内向量个数m的编码M、不相容位个数n的编码N和不相容位上值的信息的Q输入到被测电路保存,然后输入第六向量t<sub>6</sub>的编码T6_code到被测电路;10)对第六向量t<sub>6</sub>的编码T6_code进行解码,当遇到码字“00”时,将“00”之前的码字解码后的最后一位用步骤9)保存过的不相容位上的值替换,还原 一个被压缩的向量,编码M的值减1;11)若编码M的值不为0,则回到步骤10)继续对T6_code解码,若编码M的值为0,则对测试向量组S解码完成;所述步骤1)包括:a)码字由前缀和后缀组成,将码字分组,设编码组为A<sub>k</sub>,其中k为组号,码字的前缀和后缀的位数均为k;b)码字前缀最后一位为“0”,其余位为“1”,第k组有2<sup>k</sup>个码字后缀,每个码字后缀由“0”、“1”组合组成;c)第一编码组A<sub>1</sub>只有一个码字“01”用于游程“0”的编码,码字“00”用于标记不相容位的位置;d)对于长度为l的“0”的游程,落在哪一个编码组是由如下公式决定的:<img file="FSB00000383133800021.GIF" wi="354" he="136" />e)测试集中“0”的游程最长的值加1的编码的前缀作为测试向量组与测试向量组的分割码Sep_code;所述步骤6)包括:j)由第四向量t<sub>4</sub>得到第五向量t<sub>5</sub>,t<sub>4</sub>(h)和t<sub>5</sub>(h)分别为第四向量t<sub>4</sub>和第五向量t<sub>5</sub>第h个位置的元素;<img file="FSB00000383133800022.GIF" wi="783" he="135" />k)对第五向量t<sub>5</sub>进行编码,在编码解码后包含第四向量t<sub>4</sub>中“c”的位置的码字之前插入标记码“00”,得到第五向量t<sub>5</sub>的编码T5_code,编码长度为lcode;1)测试向量组S中向量个数m和不相容位个数n<sub>1</sub>由M和N位二进制信息表示,测试向量组S中不相容位上的值由Q位二进制表示,其中n<sub>1</sub>的值为第四向量t<sub>4</sub>内值“c”出现的次数,也即第一向量t<sub>1</sub>与第二向量t<sub>2</sub>不相容位的个数,<img file="FSB00000383133800023.GIF" wi="344" he="136" /><img file="FSB00000383133800024.GIF" wi="340" he="145" />Q=m×n<sub>1</sub>;m)计算测试向量组S的压缩率λ和第二向量t<sub>2</sub>的压缩率λ<sub>comp</sub>,将第二向量t<sub>2</sub>中的值“x”变为“0”后进行编码,编码后的长度为l<sub>2</sub>,L为向量的长度;<img file="FSB00000383133800031.GIF" wi="634" he="108" /><img file="FSB00000383133800032.GIF" wi="279" he="107" />n)若测试向量组S的压缩率λ小于第二向量t<sub>2</sub>的压缩率λ<sub>comp</sub>,则将第二向量t<sub>2</sub>从测试向量组S中移出,m减1,若λ大于λ<sub>comp</sub>,则第二向量t<sub>2</sub>留在测试向量组S中,第一向量t<sub>1</sub>取第四向量t<sub>4</sub>的值;o)若第二测试向量集H为空集,则到步骤7),若第二测试向量集H不为空集,则到步骤3);所述步骤7)包括:p)由第一向量t<sub>1</sub>得到第六向量t<sub>6</sub>,t<sub>1</sub>(d)和t<sub>6</sub>(d)分别为第一向量t<sub>1</sub>和第六向量t<sub>6</sub>第d个位置的元素,<img file="FSB00000383133800033.GIF" wi="791" he="135" />q)对第六向量t<sub>6</sub>进行编码,在编码解码后包含第一向量t<sub>1</sub>中“c”的位置的码字之前插入标记码“00”,得到t<sub>6</sub>的编码T6_code;r)测试向量组S中向量个数m和不相容位个数n由M和N位二进制信息表示,测试向量组S中不相容位上的值由Q位二进制表示,其中n的值为第一向量t<sub>1</sub>内值“c”出现的次数即不相容位个数;<img file="FSB00000383133800034.GIF" wi="344" he="136" /><img file="FSB00000383133800035.GIF" wi="323" he="137" />Q=m×ns)在T6_code之前插入(M+N+Q)位的组头信息,并在T6_code的末尾插入组分割码Sep_code,完成对测试向量组S的编码。
地址 310027 浙江省杭州市浙大路38号