作者zxvc (众生都是未来佛)
看板Electronics
标题Re: [问题] design compiler後counter(计数器)总是 …
时间Thu Aug 19 09:03:12 2010
※ 引述《zxvc (众生都是未来佛)》之铭言:
: [恕删]
: : 推 zxvc:所以你的意思是说若用PLL产生的clock,可以避开DFF除频器被串 08/14 21:18
: : → zxvc:成scan chain的问题!? 08/14 21:18
: : → Acme:嗯,因为PLL是类比module,scan不会测它,但scan会串DFF.. 08/14 21:19
: : → zxvc:这样讲有些道理。但依我直觉这问题应该可以用EDA tools设定 08/14 21:20
: : → zxvc:就能解决,也就是可能有指令告诉DFT Compiler哪个是DFF除频器 08/14 21:21
: : → zxvc:,不要把它串成scan chains。我再找找DFT Compiler说明书看看 08/14 21:22
: : → Acme:同意,但不串会降coverage,若硬要串,定要多一些额外电路来解 08/14 21:24
: 刚才看了一下"DFT Compiler Scan User Guide",其实就如Acme大所说的
: DFT Compiler对DFF除频器真的有些限制。
: 例如[1] p.p. 1-47:
: If uncontrollable clock signals are generated on-chip, as in frequency
: dividers, you cannot control the state of the sequential cells driven by
: these signals. If your design includes internally generated,
: uncontrollable clock signals, use AutoFix or provide
^^^^^^^^^^^^^^^^^^
: another way to bypass these signals during testing.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
最近刚好去上CIC开的DFT Compiler & TetraMAX课程,
发现我之前对DFT Compiler有说明书有些误解。
像上面这一句应该是说"有两种方法解决这internal (generated) clock的问题",
一种是用DFT Compiler AutoFix,另一种是想办法bypass掉这些clock讯号。
第二种作法可能的作法如"手动加多工器"。
而事实上DFT Compiler AutoFix并不是我之前所误解的"会bypass
掉那些generated clock驱动的cell",原文也不是这样说。
原文是说"bypass these signals",
"these signals"指的是generated clock signals。
: internally generated uncontrollable clock就如DFF除频器,
: 如DFT Compiler遇到它可以用AutoFix bypass掉,但也就测不到相关的电路,
: 也就是Acme大说的coverage会降。
: 又[1] p.p. 4-9说:
: A system or test clock used during scan testing must be generated in a
: single tester cycle. The clock pulse applied at the clock port must
: reach the sequential cells in the same tester cycle. DFT Compiler does
: not support sequential gating of clocks, such as clock divider circuitry.
: 似乎就是说DFT Compiler不支援DFF除频器。
^^^^^^
这里所谓的不支援指的是在作"scan testing"时不支援而已,
也就是在scan testing时不能有DFF当除频器,只能当shift registers。
但这并不是说电路中有DFF除频器,DFT Compiler就完全无法处理、测不到。
事实上可以如何处理呢,在下面解释。
: 看来DFT Compiler是可以办识所谓的internally generated uncontrollable clock
: 的存在,只是不知为何不支援它的scan chain DFT。
: 我在想为何DFT Compiler不能把同一clock domain的DFF串在同一个chain!?
: 比如说A、B DFFs用clock 1,C、D DFFs用clock 2(是clock 1的DFF除频器的除频),
: 那AB串成一条、CD串成另一条,这样不就能增加coverage了!?
: 但目前看来DFT Compiler是会忽略C、D DFFs。
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
上面这一句话不正确。事实上DFT Compiler真的可以产生这种各clock domain
各自串scan chain的方法。也就是这个指令:
set_scan_configuration -clock_mixing no_mix
(要配合这使用:
set_dft_configuration -fix_clock enable
)
然後DFT Compiler会帮不同的chain各自产生一个toplevel port,
作为不同clock的输入。
那些clock ports是要接到如测试机台的clock generator,
也就是说在testing时,除频的clock不是chip内部DFF除频器产生的。
而这些clocks是用多工器接到原先
functional mode circuit的clock pins上。
比如说有个DFF,在functional mode是用内部DFF除频器作clock,
在testing mode是用测试机台的clock,所以要用多工器去选。
所以说DFT Compiler并不是完全不能处理DFF除频器。
: [1] Synopsys Inc., "DFT Compiler Scan User Guide,"
: Version C-2009.06, July 2009.
--
信佛的人要知道:佛绝不会说谎。但请把握时光。
法灭尽经:
http://www.cbeta.org/result/normal/T12/0396_001.htm
共勉之。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.115.73.168