|
Digital PLL, детали реализации на FPGA |
|
|
|
Feb 28 2011, 10:33
|
Частый гость
 
Группа: Свой
Сообщений: 82
Регистрация: 7-02-07
Из: Беларусь, г. Минск
Пользователь №: 25 149

|
Здравствуйте товарищи форумчане. Помогите пожалуйтса разрешить проблемку. Имеется FPGA Spartan6 (xc6slx100), на вход которой приходит word_clock = (28KHz-200KHz) - частота сэмплиролвания аудиоданных. Внутри FPGA необходимо залочиваться на этот сигнал и генерировать bit_clock = word_clock*128, т.е. частоту индивидуальных битов в сэмлпах. По сути классический PLL - Phase Locked Loop. Вроде бы ничего сложного. Берём внутренний PLL настраиваем как надо и готово. Но сразу же возникают нюансы. В Spartan6 для DCM минимальная входная частота 0,5Mhz, для PLL - 19MHz. Т.е. этот вариант отпадает, т.к. диапазон частот входного сигнала 28KHz-200KHz. Я тогда начал гуглить в сторону Digital PLL, т.е. фактически имплементации PLL на FPGA. Вроде бы даже накопал те же application notes от Xilinx: xapp854 "Digital Phase-Locked Loop (DPLL)", xapp250 "Clock and Data Recovery with Coded Data Streams". Вот структурная схемка DPLL из xapp854: [attachment=53823:DPLL_xapp854.png]
Вроде бы всё понятно: детектор фазы, фильтр, осциллятор и обратная связь. НО осциллятор (VCO) - внешний по отношению к FPGA. В других виденных мною решениях этот блок (VCO - Voltage Control Oscillator или NCO/DCO - Numerical/Digital Control Oscillator) тоже был или внешний, или основывается на принципе задержки сигнала в цепочке соединённых логических элементов (ring oscillato): [attachment=53824:DCO.png] Но по-моему такую штуку не очень то получится сделать в FPGA. Для этого нужно как-то учитыавть задержки индивидуальных LUT-ов и рутинга, и "зафиксировать" результат , чтобы он не менялся от раскладки к раскладке (partition? mapping constraints?).
Так вот собственно вопросы: 1. Правильно ли я вообще рассуждаю и в том ли направлении копаю? 2. Можно ли сделать DPLL только средствами FPGA, без использования внешних микросхем VCO/DCO. 3. Может можно как-то заставить работать встроенные DCM/PLL на более низких входных частотах?
Т.е. собственно главная задача это залочиться на входную частоту сэмплирования word_clock = (28KHz-200KHz) и сгенерировать сигнал с частотой x128 для индивидуальных битов в сэмпле.
Please help...
|
|
|
|
|
 |
Сообщений в этой теме
Vengin Digital PLL Feb 28 2011, 10:33  DmitryR Цитата(Lmx2315 @ Feb 28 2011, 14:19) ..на... Feb 28 2011, 11:51 Vengin Цитата(DmitryR @ Feb 28 2011, 12:42) Надо... Feb 28 2011, 12:00  DmitryR Цитата(Vengin @ Feb 28 2011, 15:00) Данны... Feb 28 2011, 12:13 Shtirlits А на плате еще какие-то источники клока есть? Feb 28 2011, 12:11 Vengin Цитата(Shtirlits @ Feb 28 2011, 14:11) А ... Feb 28 2011, 12:51  DmitryR Цитата(Vengin @ Feb 28 2011, 15:51) Есть,... Feb 28 2011, 13:26 Shtirlits Имея высокую частоту можно получить "битовую... Feb 28 2011, 12:59 stoker Цитата(Vengin @ Feb 28 2011, 13:33) 1. Пр... Feb 28 2011, 13:13 Vengin Цитата(stoker @ Feb 28 2011, 15:13) 2. Ду... Feb 28 2011, 14:23 Shtirlits Какая погрешность устроит?
Можно ли применять тако... Feb 28 2011, 15:00 stoker Цитата(Vengin @ Feb 28 2011, 17:23) Кстат... Feb 28 2011, 15:57 Vengin Цитата(stoker @ Feb 28 2011, 17:57) ...А ... Mar 1 2011, 13:22
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|