Использует FPGA и реализовал дифференциальный декодер manchester, но прямо сейчас я столкнулся с некоторыми проблемами с восстановлением часов.Восстановление часов для дифференциального кода manchester на FPGA
Фон состоит в том, что часы кода manchester составляют 40 МГц, в то время как я могу достичь только передискретизации 5. Таким образом, мои часы внутри FPGA составляют 200 МГц. Из-за некоторых искажений поток данных иногда нарушается с некоторым дополнительным пиком. До сих пор я обновлял восстановленные часы каждый непосредственно потоком входящих данных.
Но поскольку некоторые пики присутствуют, восстановление часов завершается с ошибкой. У меня нет возможности использовать некоторую тренировочную последовательность для восстановления часов. Есть ли наилучшая практика или даже реализация для восстановления часов без PLL для такого случая?
Пояснение:
сигнала, подаваемого в FPGA от очень быстрого компаратора (около 4ns время нарастания). Компаратор отличает, является ли сигнал большим или равным нулю с небольшим гистерезисом. Гистерезис очень мал, но не может быть увеличен.
Я изменил изображение википедии, чтобы визуализировать пик.
Очень неясно, о каких «пиках» вы говорите. –