PLL測試
什么是PLL?
- PLL = Phase-Locked Loop(鎖相環)
- 它的作用就是:把低速、穩定的外部時鐘,轉換成芯片內部需要的高速時鐘。
PLL的作用
我們知道,芯片的內部不同的模塊,很可能用的不是一個頻率的時鐘,而外部又不可能輸出入多個不同的時鐘,這樣成本昂貴且設計困難。所以工程師就在芯片內部通過設計分頻電路,在芯片內部將時鐘轉化為不同的頻率,從而使芯片工作。具體如下:
外部時鐘 (50MHz)│▼[PLL1] ? 2GHz (CPU)[PLL2] ? 1.5GHz (GPU)[PLL3] ? 2.4GHz (DDR)
所以一個外部時鐘,可以通過多個PLL,生成芯片里多條高速時鐘。
PLL測試要測什么?
- 頻率是否正確(比如外部輸入100MHz,PLL放大成2GHz)
- 相位抖動(Jitter)是否在范圍內(太大導致時序失敗)
- 鎖相時間(PLL從啟動到鎖定所需的時間)
- 環路穩定性(PLL不會亂跳或發散)
也就是說:
PLL測試 = 確認芯片時鐘的「速度、穩定、精度」都在線, 一旦PLL掛了,整個芯片的高速邏輯就全癱瘓。
PLL應該怎么測試?
PLL 的測試目標一般如下:
測試目標 | 備注 |
---|---|
能鎖相 | PLL啟動后,能正確「鎖定」輸入頻率關系 |
倍頻正確 | 輸出頻率 = 輸入頻率 × N(倍頻系數) |
Jitter小 | 時鐘邊沿抖動小(影響時序) |
穩定不掉鎖 | 長時間運行也不會失鎖 |
PLL測試流程如下:
1?? ATE上電 & 配置芯片? 開啟芯片電源 & 基礎時鐘2?? 發送測試命令 ? 讓芯片啟動內部PLL3?? 等待鎖相? 檢查 PLL Lock 標志位 (Lock = 1)4?? 測量PLL輸出頻率? ATE機器用「頻率計」測量芯片時鐘輸出口5?? 檢查Jitter 和 穩定性? 高階ATE用專用模塊測Jitter? 看時鐘邊沿有沒有飄動6?? 多次開關PLL? 測試「掉鎖」情況
注意點:
1、等待鎖相時,Lock的狀態一般會通過芯片內部的寄存器或者IO輸出:
- Lock=1 ? 說明PLL「鎖住」了,工作正常
- Lock=0 ? 說明PLL失鎖,說明電路或制程問題
2、采集內部高速時鐘時,由于內部時鐘太快不好采集,所以會通過分頻從IO口再次輸出
- 例如:2GHz時鐘 ? 分頻成 100MHz,從IO輸出
- ATE用頻率計數器或者時鐘分析模塊來采集這個時鐘信號
3、檢測頻率 & Jitter,Jitter此為一些對時鐘參數比較高的芯片會檢測,主要檢測有無明顯抖動
一般來說:
- 頻率**±0.1%**以內 ? Pass
- Jitter 幾十ps以內 ? Pass
ATE測量頻率的方法:
方法 | 原理 | 特點 |
---|---|---|
計數法 | 在固定時間窗口內數脈沖個數 | 簡單快速,適合中低頻 |
時間間隔法 | 測量連續2個脈沖的時間間隔 | 精度高,適合高頻 |
具體案例如下:
項目 | 說明 |
---|---|
輸入分頻后時鐘 | 100MHz(10ns周期) |
ATE采樣窗口 | 1ms |
計數法結果 | 100,000個脈沖 ? 頻率100MHz |
時間間隔法 | 2個脈沖間隔10ns ? 頻率100MHz |
PLL調試常見問題及排查方案
常見問題 | 調試動作 |
---|---|
輸入不穩 ? PLL鎖不上 | 換頻率源、測Jitter |
電源噪聲 ? VCO失效 | 用示波器測電源抖動 |
確認是真的失鎖還是信號問題 | 看寄存器/IO口Lock位 |
溫漂導致的失鎖 | 調低/升溫 |
參數偏 ? PLL鎖定失敗 | 調試Loop Filter電容電阻 |