Karena masalah dengan sirkuit deteksi kunci keras Arria® 10 device fractional PLL (fPLL), fPLL dapat melaporkan kondisi tak terkunci saat menggunakan mode "precision k" fraksional.
Ketika fPLL dalam mode fraksional, nilai penghitung umpan balik adalah fungsi dari M dan K(pll_dsm_fractional_division). Rumusnya adalah "M (integer) K/2^32". Nilai hukum K adalah 1 hingga 2^32-1
"Faktor K" didefinisikan sebagai "pll_dsm_fractional_division/2^32",
Ketika Faktor K kurang dari 0,1 atau lebih besar dari 0,9, sirkuit deteksi kunci keras fPLL tidak dapat diandalkan.
Ketika Faktor K antara 0,1 dan 0,9, sirkuit deteksi kunci keras fPLL dapat diandalkan.
Contoh
Contoh di bawah ini menjelaskan kapan sirkuit deteksi kunci Arria 10 fPLL dan tidak dapat diandalkan.
refclk (frekuensi) = 100 MHz
Penghitung N = 1
Penghitung M = 40
Konter K (pll_dsm_fractional_division) = 2147483648
Penghitung L = 4
Output PLL (frekuensi) = ( refclk (frekuensi) / N) * ( (M ( K / 2^32) / L )
Dalam hal ini,
Output (frekuensi) PLL = 100 * ( 40 (2147483648 / 2^32) / 4 )
= 100 * ( (40 0,5 ) / 4)
= 100 * (40,5/4 )
= 100 * 10,125
= 1012,5 MHz
Karena nilai fraksional adalah 0,5 (2147483648 / 2^32, dengan K = 2147483648) dan antara 0,1 dan 0,9, sinyal kunci dapat diandalkan.
Ketika nilai pecahan kurang dari 0,1 atau lebih besar dari 0,9, sinyal kunci fPLL tidak dapat diandalkan. Dalam hal ini Anda dapat instantiate logika deteksi kunci IP lunak berikut
Unduh file soft_lockppm_det.zip ini
File soft_lckppm_det.v dienkripsi tetapi dapat digunakan untuk sintesis, simulasi, dan pengujian perangkat keras.
Daftar port dan deskripsi file sirkuit deteksi kunci lunak ada di bawah ini
Nama Port | Input/Keluaran | Deskripsi |
ref_clk | Input | Input clock referensi untuk fpll |
clk_low | Input | Clock rendah dari fpll, selalu toggle, frekuensi mungkin off output reg pll_locked |
dead_ref_clk | Output | Mengindikasikan clk referensi tidak cukup cepat dan dianggap sudah mati. Ambang batas bawaan ditentukan oleh parameter modul PPM_THRESHOLD_FOR_DEAD_CLK |
calibration_done | Input | cal_done dari fpll. Dapat dianggap sebagai reset sekunder |
config_en | Input | Port konfigurasi diaktifkan |
config_clk | Input | Clock port konfigurasi |
config_data | Input | Konfigurasi port data. Ketika config_en tinggi, data diambil sampelnya di tepi config_clk yang meningkat dan digeser ke register internal yang menyimpan ambang batas untuk kondisi kunci dan clock mati. Lebar register ditentukan oleh parameter modul CLK_LOW_CNT_WIDTH. Oleh karena itu, total siklus yang perlu digeser dalam semua data adalah 2* siklus CLK_LOW_CNT_WIDTH. Operasi shifting dimulai dari LSB register untuk kondisi kunci. Setelah 2* siklus CLK_LOW_CNT_WIDTH, nilai pada config_data akan menjadi MSB register untuk kondisi dead_lock |
Reset | Input | atur ulang dari fpll |