在使用FPGA时,我已经实现了差分曼彻斯特解码器,但是现在,我面临时钟恢复方面的一些问题。
背景是曼彻斯特代码的时钟是40 MHz,而我只能实现5的过采样。因此,我在FPGA内的时钟是200 MHz。 由于一些失真,数据流有时会受到一些额外峰值的干扰。到目前为止,我每次都直接通过传入的数据流更新恢复的时钟。
但是由于存在一些峰值,时钟恢复失败。我没有可能使用一些训练序列进行时钟恢复。 对于这种情况,没有PLL的时钟恢复是否有最佳实践甚至实现?
澄清:
馈入FPGA的信号来自一个非常快的比较器(上升时间约为4ns)。比较器通过一些小的滞后来区分信号是大于还是等于零。滞后很小但不能增加。
答案 0 :(得分:1)
您可以在FPGA内部使用PLL电路。您可以查看一个documentation,希望这会有所帮助。
答案 1 :(得分:0)
您可以尝试通过正确的终止来清理模拟信号,这可以减轻模拟信号的峰值。
但你也应该看看循环动态。我的设计不清楚,但您不能直接将恢复的时钟调整到任何进入的边缘。你需要一个循环,利用它的动态,采取每一个传入的变化,稍微改善重建时钟,最终达到稳定状态。
另外,您是否考虑在时钟的下降沿计时。我不知道你的目标是什么技术,但如果它支持两个边缘,你可以进行10倍过采样。
亲切的问候