📌 景芯训练营 · DFT答疑
Lockup Latch到底该插在哪一边?
学生问:"老师,跨clock domain串scan chain要插lockup latch,课本说插在launch端。但我做题选了capture端,错了。到底为什么?"
这个问题训练营群里被问过二十多次。下面四个子问题,你能想明白才算真懂。
❶ 为什么function mode没有hold问题,scan mode下突然冒出来了?
两个domain的flop在function mode下没有path,CTS各自独立长tree。scan mode下被串到同一条chain共用scan clock,一条全新timing path凭空出现,skew可能高达几ns。
❷ 课本说插在launch端,插capture端为什么修不掉?
假设Domain1 latency小,Domain2 latency大。把latch插capture端和Domain2 balance,Domain1→latch这段skew还是原来那么大,hold一点没改善。插launch端,latch利用timing borrow把数据往后推半个周期,capture端有充足margin。
❸ 正沿串正沿插低电平latch,那负沿串负沿呢?正沿串负沿还要不要插?
核心原则:latch必须在clock无效电平期间透明。正沿flop无效电平是低电平→插低电平有效latch;负沿flop无效电平是高电平→插高电平有效latch。正沿串负沿、负沿串正沿,天然有半个周期margin,不需要插。
❹ 有人说"插buffer也能修hold",什么情况下这个说法是错的?
假设hold violation 1.5ns,buffer delay约50ps,要插30个buffer。面积功耗爆炸不说,OCV下buffer delay在不同corner变化±30%,worst corner刚修好的hold,best corner setup可能被挤爆。Lockup latch的半个周期delay由clock周期决定,与PVT无关。
🔐完整答案+波形图解+Tcl脚本已整理至知识星球