微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > DFT scan chain

DFT scan chain

时间:10-02 整理:3721RD 点击:
大家好,有没有做过DFT的,小弟有问题请教下。
谢谢。

是这样,设计中时钟的正沿和反沿都用到了。而且正沿逻辑要影响到反沿逻辑,这样即使把反沿的flop串到前面,在capture phase 的时候,有些反沿触发的flop还是会抓到新的数据。
有大虾知道怎么解决这样的问题吗。
小弟不胜感激啊。

你的这个正反都用到的是违反dft规则的,一般的做法是用scanmode信号吧反沿的信号在scan 模式时调整为正沿的,



    没办法,design里就这么写的,而且改不了,能说下具体怎么做吗?
    非常感谢!

不需要改变用户模式的逻辑电路,就是加一个scanmode的控制信号,在 scan的时候,把不符合scan要求的电路变为符合scan要求的格式,和用户路径没关系。你说的不能改逻辑,那就是你们的project manage的问题,你们既然要用scan,你说的明显是不符合scan要求的逻辑,除非你这部分电路不做scan,不然就要改逻辑,把它变成可scan化的,这种都是项目管理的基本问题。



   谢谢,我要去向老大反应下。呵呵。
顺便问下,如果可以把所有反沿逻辑放到整个设计的最后端,这样可以做scan吗?



    串到不同的链上去,DFTC中设置成mix_clock_not_mix_edge。
DFT中式要避免出现同一链上出现双沿时钟的

you can split scan chain into 2 group.
group #1 is using positive edge clock and other one is using negative edge clock.
DFT tool can support this kind of function.

同学习了

分成2条scan这样是不是还要定义不同的scan clock,还有就是反向沿的DFF工具会自动认识吗?然后把反向沿的串一条chain,不然如果有很多是不是要脚本里面指定?
没用过这样的,不过lockup cell的方式是用过,前提是clock domain划分的很清楚的。不然可能会加很多lock up cell,不知道是不是这样?



    非常感谢。
    现在确定不要反沿那部分逻辑的coverage了,老大说改逻辑有风险,不让改。
    谢谢您了,我刚做DFT,以后有什么问题还要请教你。



    谢谢。
     但是你这种方式解决不了我这个问题。可能是你没明白我的问题,我说的是capture phase 时候,flop会抓到新的数据,造成flop之前的组合逻辑测试不到。
     你的这个方法只能保证scan shift phase 时候是正确的。



    thank you!
    but you misunderstand my question.I mean during capture phase ,falling flop can capture new data.
    your measure can only guarantee scan shift is correct.

这个要学习了,MARK一下



    感谢捧场。

关于反沿的问题,有两个办法解决:
1. 照前面提到的,把正沿和反沿的触发器放在不同的扫描链上,不过这样会造成chain length不balance
2.记得可以加lock-up latch,用来把chain shift过程的信号打半拍避免shift过程的hold violation
小编碰到的问题是capture的时候负沿抓正沿输出存在hold,
其实这个问题是function 模式下的问题,有两种情况:
1.本身在function模式下设计就有hold,这个sta应该能查出来,这是设计问题,timing 不满足
2.function mode下正负沿之间是false path, 没有查出来,在scan mode下反而成了timing path
解决办法是尽量在修timing的时候按照同步来修干净,无论是否为false path.
有一个建议是function mode和scan mode下的时钟通路和沿属性尽量保持一致,这样时序关系尽量保证,修timing 一致性比较好



    非常感谢,受教了。



     还有个问题请教。
     这样把所用的正反沿之间的hold都修掉,可能会影响到原有的function吧?



     再请教大侠个问题,生成的test pattern 是不是应该等pr做完,反标时序后在进行simulation?
     望抽空解答!
     非常感谢!

一般设计的时候就要考虑对DFT的clock/rst等可控,这种可控一般指外部管脚把芯片设置成某种test mode的时候,相应的clock/rst都要按照DFT的规范选择test clock。比如在scan enable模式下,都要选用scan clock代替正常工作时的clock

top层追加了专用的scan_clk,scan_en,test,和rst2, 综合的con需要约束这些端子吗?怎么约束

做DFT时,数字前端设计人员最好能做一部分工作,不然DFT工程师就比较麻烦,如LZ的问题。
前端设计人员的工作就是通过scan_en信号将所有的时钟和复位全不切换到外部可控时钟,这样对于以后的ATP也有好处。



    需要,要告诉tool那些端口是和test有关的,还有就是其有效电平。
    可以用 set_dft_signal 这个指令,具体参数参见dft complier user guide。



    你好:
        看到你的回复,提到的把正沿触发器和负沿触发器放到两个不同的的scan chain上面去,不知道具体是用哪个命令实现的呢?另外,DFTC应该也有命令指定可以将具体的哪一个触发器放到哪一个chain 上的什么位置去吧,不知道命令是什么呢?
        刚刚学DFT,不知道有什么书籍可以推荐的么。
        大家在跑DFT DRC的时候,如果有violation了,自己想去改,有一个想法了,但是不知道用哪一个命令的时候,怎么查找这个命令呢?man 的话只能查你已经知道的这个命令的功能。
       谢谢。

学习了

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

网站地图

Top