推 zxvc:之前我不太了解"at speed testing",現在再看一次Acme大的文 08/19 22:24
→ zxvc:章終於了解問題的所在。問題在funcational mode(也就是Acme大 08/19 22:25
→ zxvc:所謂的normal (mode)),internally generated clock可能會無 08/19 22:28
→ zxvc:法產生active edge,使得接到該generated clock的flip-flop 08/19 22:29
→ zxvc:無法capture。 08/19 22:29
→ zxvc:如果只給一個capture clock,頂多讓"除2 clock"會有active 08/19 22:32
→ zxvc:edge。 08/19 22:32
推 zxvc:雖然TetraMAX可以設定多個capture clocks,但上限只有10個。 08/19 22:36
推 zxvc:我前面有打錯字:funcational,應該是functional。 08/19 22:41
→ zxvc:謝謝Acme大。 08/19 22:42
推 TripleC:這一系列可以收精華區了 08/19 22:51
推 zxvc:不過,我剛才又想到,好像有解決的方法,只是我不知道 08/19 22:51
→ zxvc:DFT Compiler & TetraMAX支不支援。就是,在除頻clocks加Muxs 08/19 22:53
→ zxvc:。這些2-to-1 Mux一個source是接到functional mode的clocks, 08/19 22:55
→ zxvc:另一個source是接launch/capture訊號。 08/19 22:55
推 zxvc:抱歉,我上面忘了考量到scan clock。所以需要3-to-1 muxs。 08/19 22:58
→ zxvc:test_mode可能是兩個bits的port,比如00是functional mode, 08/19 22:59
→ zxvc:01是scan mode,10是launch/capture mode。 08/19 23:00
→ zxvc:不知這樣有沒有問題。 08/19 23:01
→ ViewMoon:不同chain可以有相同DFT clk,也可以同一chain混不同DFT 08/20 23:11
→ ViewMoon:clk,但要用 lockup latch之類的方式解決潛在的skew問題 08/20 23:13
→ ViewMoon:at-speed在capture時是用normal clock,此時並不限制 08/20 23:14
→ ViewMoon:normal clk 需為PLL,是generated clock 也不是不能作 08/20 23:15
→ ViewMoon:fixing clock 指的是讓它可 controllable 08/20 23:17
→ ViewMoon:以zxvc例子,10時,讓除頻clock能在capture_en時送出 08/20 23:20
→ ViewMoon:test procedure 能辨認的 clock pulse 即 可 08/20 23:21
→ ViewMoon:BTW,當clock tree fanouts 越大, generated clock 比起 08/20 23:23
→ ViewMoon:gated clock 會顯得缺點較多,又當chip要作ATPG的話 08/20 23:24
→ ViewMoon:ripple counter的好處都不存在了,反而顯得麻煩 08/20 23:25
→ ViewMoon:沒事不要用 ripple counter,除非不作ATPG 08/20 23:26
→ ViewMoon:也不作FPGA 08/20 23:26
推 zxvc:ViewMoon大,為什麼clock tree fanout愈大,generated clock 08/21 12:02
→ zxvc:會比gated clock缺點多? 08/21 12:02
→ ViewMoon:gating clock可以選擇在 clock tree 靠近 source 端作 08/21 13:26
→ ViewMoon:或靠近FF作(ICG),但generated clock只能選靠近source 08/21 13:27
→ ViewMoon:另外是因為generated clock FF/CK 不是 sink pin 08/21 13:28
→ ViewMoon:當fanout 太大造成latency很大時,APR有時怪怪的 08/21 13:29
→ ViewMoon:說真的,若是single phase design,generated clock 都可以 08/21 13:32
→ ViewMoon:簡單用 gated clock 取代, double phase design 也行 08/21 13:33
→ ViewMoon:只是麻煩多了,不然 FPGA 怎麼作...還好 synplify pro 08/21 13:34
→ ViewMoon:新版都有 support 這類轉換 08/21 13:35
推 zxvc:ViewMoon大上面所說的"怪怪"的是什麼問題? 08/21 14:21
→ ViewMoon:timing 無法滿足,有點像是APR放棄那個CTS了 08/21 15:08
推 zxvc:我之前也聽過這種說法,似乎用sync counter(也就是我之前一直 08/21 15:23
→ zxvc:所說的DFF除頻器)在APR時處理skew有點困難,只是不知原因為何 08/21 15:25
→ zxvc:,也不知道是否是tool能力限制的問題。 08/21 15:26
→ zxvc:那若改用PLL作除頻器會比較容易CTS嗎?原因為何? 08/21 15:28
→ ViewMoon:和 source clock / generated clock 有關, 和 source 08/21 16:01
→ ViewMoon:是否為 PLL 無關 08/21 16:02
→ ViewMoon:skew 部分, 可以去看 ICG 的好處, 大概就可以知道不用 08/21 16:03
→ ViewMoon:ICG 的壞處了, 不過我覺得 fanout F/F 若只有兩三千個的 08/21 16:04
→ ViewMoon:話, 應還不致於要使用到 ICG 08/21 16:04
→ ViewMoon:PLL作除頻器如前面我推文說的,指的應不是IC 08/21 16:36
→ ViewMoon:generated clock 若要和 source clock 同一 clock group 08/21 16:36
→ ViewMoon:應是確認它在同一 global clock, FPGA 用 PLL 作除頻 08/21 16:37
→ ViewMoon:也是可以,但請考量FPGA上的PLL是有限的,我覺得會有這種 08/21 16:38
→ ViewMoon:說法應是未正確設定成同一 clock group, 導致 FPGA 有 08/21 16:39
→ ViewMoon:skew 問題, 又找不出原因, 最後發現用PLL除頻解決了skew 08/21 16:40
→ ViewMoon:問題,才會有除頻用PLL比FF好的說法 08/21 16:40
→ ViewMoon:至於IC上,若2^N除頻明明用幾個FF就兜得出來的東西 08/21 16:41
→ ViewMoon:就不會想要用PLL去除頻了,因為,PLL cost也很高,power也高 08/21 16:42
推 zxvc:謝謝ViewMoon的回答。 08/23 08:11