Saya mencari untuk menerapkan kunci fase dalam FPGA tanpa menggunakan komponen eksternal (selain ADC). Untuk kesederhanaan, penguncian ke pulsa biner sederhana sudah memadai. Frekuensi sinyal ~ 0,1-1% dari jam. Saya tidak dapat menggunakan jam PLL onboard, karena mereka biasanya:
- Tidak dapat dikonfigurasi (ditetapkan saat sintesis).
- Gelisah.
- Jangan mendukung frekuensi yang saya butuhkan.
Saya telah memilah-milah literatur dan menemukan beberapa loop fase biner terkunci. Paling menonjol desain "denyut nadi" yang bisa saya kirimi tautan jika diinginkan. Saya telah menerapkan dan mensintesis dengan beberapa keberhasilan, tetapi jangkauan jitter dan lock-nya tidak sebagus yang diiklankan. Saya juga sudah sukses menggunakan DVCO eksternal, tetapi saya lebih suka jika saya bisa menerapkan semuanya pada chip.
Desain sirkuit digital atau bahkan petunjuk ke arah yang benar akan sangat membantu (saya telah membenturkan kepala saya terhadap hal ini untuk sementara waktu), implementasi FPGA yang terbukti akan luar biasa tetapi tidak diharapkan.
TAMBAH 10-27-2010
Desain DPLL aktual yang saya gunakan memiliki "Random Walk Filter" sebagai filter loop (bukan "pulse steal" yang dijelaskan sebelumnya, menelusuri catatan saya yang tidak berfungsi dengan baik), yang kemudian mengarahkan pulsa clock ke DCO . Rentang penguncian diatur melalui pembagi di DCO. Sensitivitas loop ditetapkan dengan memvariasikan panjang jalan acak.
Makalah di mana ini ditemukan dikutip pada akhir posting ini. Setelah mengimplementasikan bagian-bagiannya sendiri, saya menemukan bahwa itu sebenarnya sudah diterapkan pada OpenCores, namun ternyata dalam beberapa bulan terakhir proyek telah dihapus tetapi saya memiliki file Verilog yang disimpan jika ada yang menginginkannya.
Yamamoto, H .; Mori, S .; , "Kinerja Biner Menguantifikasi Semua Loop Terkunci Fase Digital dengan Kelas Baru dari Sequential Filter," Komunikasi, Transaksi IEEE aktif, vol.26, no.1, hlm. 35-45, Jan 1978
doi: 10.1109 / TCOM.1978.1093972
URL: http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=1093972&isnumber=23895
Jawaban:
Bisakah Anda memposting rincian lebih lanjut tentang frekuensi target, jitter dan bandwidth loop (waktu penyelesaian yang diperlukan)? Juga, apa jenis osilator yang ingin Anda gunakan (eksternal dengan DAC, dengan / tanpa dithering ?, pada chip digital counter / akumulator)?
Jika Anda senang dengan "osilator" digital (yaitu akumulator yang melimpah) dan jitter-nya, maka sisa rangkaiannya bisa cukup sederhana:
Adapun loop bandwidth, jika tidak ditegakkan dengan menetapkan waktu, putuskan berdasarkan kontribusi kebisingan dari semua komponen.
Jika sinyal referensi termodulasi fase atau frekuensi - gunakan lebar pita loop lebih rendah dari frekuensi terkecil dari sinyal yang memodulasi referensi.
Teknik yang lebih rumit digunakan jika frekuensi output dekat atau sama dengan frekuensi clock dan / atau jika jitter rendah atau rentang penguncian yang sangat cepat diperlukan. Mungkin dalam kasus Anda mereka tidak diperlukan, selain itu mereka mungkin tidak cocok untuk implementasi FPGA.
sumber
Jika Anda dapat mentolerir sedikit jitter tetapi sebagian besar hanya perlu pencatatan waktu yang tepat terhadap jam drifty untuk pemulihan data, Anda mungkin ingin menerapkan sesuatu seperti CAN Standard PLL (dimulai pada halaman 67 dari PDF itu). Ini bekerja berdasarkan penghitung luapan yang harus disetel secara nominal dengan benar, tetapi disinkronkan hingga ke tepi dalam aliran pulsa masuk.
sumber