由於 Arria® 10 個裝置的分數 PLL (fPLL) 硬鎖偵測電路有問題,fPLL 可能會在使用分數「精確 k」模式時回報未鎖頻的狀況。
當 fPLL 處於分數模式時,回饋計數器值是 M 和 K (pll_dsm_fractional_division) 的功能。公式為「M (整數) K/2^32」。 K 的法律價值為 1 至 2^32-1
「K 規格」的定義為「pll_dsm_fractional_division/2^32」,
當 K 規格小於 0.1 或大於 0.9 時,fPLL 硬鎖偵測電路不可靠。
當 K 規格在 0.1 和 0.9 之間時,fPLL 硬鎖偵測電路是可靠的。
例子
下列範例說明當 Arria 10 fPLL 鎖定偵測電路不可靠時。
refclk (頻率) = 100MHz
N 計數器 = 1
M 計數器 = 40
K 計數器 (pll_dsm_fractional_division) = 2147483648
L 計數器 = 4
PLL 輸出 (頻率) = (refclk (頻率) / N) * (M (M ( K / 2^32) / L )
在此案例中,
PLL 輸出 (頻率) = 100 * (40 (2147483648 / 2^32) / 4 )
= 100 * (40 0.5 ) / 4)
= 100 * (40.5 / 4 )
= 100 * 10.125
= 1012.5 MHz
因為分數值為 0.5 (2147483648 / 2^32,含 K = 2147483648),而且介於 0.1 和 0.9 之間,因此鎖定訊號可靠可靠。
當分數值小於 0.1 或大於 0.9 時,fPLL 鎖定訊號不可靠。在此案例中,您可以立即輸入下列軟 IP 鎖定偵測邏輯
下載此 soft_lockppm_det.zip 檔案
soft_lckppm_det.v 檔案經過加密,但可用於合成、模擬和硬體測試。
軟鎖偵測電路檔案的埠清單與描述如下
埠名稱 | 輸入/輸出 | 描述 |
ref_clk | 輸入 | fpll 的參考頻率輸入 |
clk_low | 輸入 | 頻率從 fpll 低, 總是切換, 頻率可能關閉輸出 reg pll_locked |
dead_ref_clk | 輸出 | 表示參考 clk 切換速度不夠快,且被視為已死亡。預設臨界值由模組參數PPM_THRESHOLD_FOR_DEAD_CLK定義 |
calibration_done | 輸入 | 從 fpll cal_done。可視為次要重設 |
config_en | 輸入 | 啟用組態埠 |
config_clk | 輸入 | 設定埠頻率 |
config_data | 輸入 | 組態埠資料。當config_en高時,資料會在config_clk的上升邊緣取樣,然後移到內部收款器儲存臨界值,以達到鎖定和死頻率狀況。寄存器寬度由模組參數CLK_LOW_CNT_WIDTH定義。因此,所有資料需要轉換的總週期為 2* CLK_LOW_CNT_WIDTH週期。 移位操作從註冊的 LSB 開始,以取得鎖定狀態。2* CLK_LOW_CNT_WIDTH週期後,config_data的價值將成為dead_lock狀況的註冊 MSB |
重 置 | 輸入 | 從 fpll 重設 |