Смоделировать можно в чем угодно, но надо знать, что именно моделировать. Я уже перерыл кучу статей по этому вопросу. Если брать примеры для ПЛИС, то они делятся на два вида. Серьезные проекты - когда сигнал делают квадратурным с помощью фильтра Гильберта, затем идет квадратурный фазовый детектор с кучей математики. Тут такое не надо. Или простые проекты, где в ПЛИС засунут фазовый детектор на триггерах, на выходе которого - двоичный сигнал, а мне нужен код. Еще часто с помощью PLL синхронизируют внутренний NCO, это обратная задача, она проще и я такое делал. Из всех источников нашел только одну статью "A FPGA implementation of a PLL for DC motor control", где сделано именно то, что мне надо. Но вопрос продления характеристики там решен криво, полумерами. Похоже, я все-таки проблему решил, взяв логику работы детектора на логике, но вместо двоичного сигнала получаю сразу многоразрядный код фазы. Основным препятствием было непонимание работы таких детекторов. Насколько удалось понять, они не восстанавливают нормальную работу после того, как частота вышла из захвата и вернулась вновь. Требуется как минимум один такт выхода частоты в другую сторону, иначе машина состояний работать не может. Если я это правильно понял, то детектор готов. Во всяком случае, как-то уже работает, скоро напишу подробней.
Reply
Leave a comment