微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 朋友们,有提高DFT coverage的好办法没

朋友们,有提高DFT coverage的好办法没

时间:10-02 整理:3721RD 点击:
不到90%,太低了点,代码肯定没法改,好像ATPG untestable (AU), Not detected (ND)太多了,大家有何良策啊,谢谢

autofix 可以吗?

是有点低,最好的办法是修改代码,肯定是设计代码的时候没考虑DFT的功能。

通常test coverage比较低由以下原因造成,当然假定你的设计比较规范:
1。Memory比较多, 而且没有做bypass logic
2. IP比较多,也没有做bypass logic
3.pad controller有很多分支,在测试模式下无法全测到
小编说代码没法改,估计是主体逻辑设计没法改,建议把memory的bypass logic加上,增加几个点还是可能的。

    谢谢啊。你说的3点全中。呵呵,不过memory有bist控制模块,还有不少fifo...另外bypass logic 没做过,能给个实例吗,多谢



    bypass logic具体我也没有做过,想了解了解!

我理解memory的bypass logic就是一套用于测试的总线,当选中的时候,可以通过
这套总线对memory进行读写的测试?

那不就是BIST模块吗,这个一般来说对于MEMORY是必须的

学习学习了

bypass 顧名思義就是把 input bypass 到 output 阿,
這樣做可以增加 observability and controlabilty 。
只要可以 control input pattern 和 觀察結果就是可以測。

针对pll, adc, memory这些模块,scan-insertion的时候通常视为black-box, 里面的逻辑是没法测的,这些block的端口以及相关逻辑都没法测。
所谓bypass logic,就是把这些black-box的输入和输出在scan mode下关联起来,做法如下:
1。把所有的输组合成一个向量invector
2。把invector每N个bit一组,异或之后用时钟打一拍,这样得到一个invector_d的向量,
3。假定你的输出为DOUT, 写成 assign DOUT = scan ? { invector_d} : DOUT_org;
其中大括号里面需要把invector_d复制,使得和DOUT_org宽度匹配
再声明一点,在atpg的时候,如果能考虑写memory aptg model, bypass logic也可以不加,不过我做过的项目都加了。当然也用了memory atpg model.

    谢了啊

学习一下

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top