FPGA上差分曼彻斯特码的时钟恢复

时间:2016-08-19 15:30:23

标签: vhdl fpga decoding recovery

在使用FPGA时,我已经实现了差分曼彻斯特解码器,但是现在,我面临时钟恢复方面的一些问题。

背景是曼彻斯特代码的时钟是40 MHz,而我只能实现5的过采样。因此,我在FPGA内的时钟是200 MHz。 由于一些失真,数据流有时会受到一些额外峰值的干扰。到目前为止,我每次都直接通过传入的数据流更新恢复的时钟。

但是由于存在一些峰值,时钟恢复失败。我没有可能使用一些训练序列进行时钟恢复。 对于这种情况,没有PLL的时钟恢复是否有最佳实践甚至实现?

澄清:

馈入FPGA的信号来自一个非常快的比较器(上升时间约为4ns)。比较器通过一些小的滞后来区分信号是大于还是等于零。滞后很小但不能增加。

我修改了维基百科图像以显示峰值。 enter image description here

2 个答案:

答案 0 :(得分:1)

您可以在FPGA内部使用PLL电路。您可以查看一个documentation,希望这会有所帮助。

答案 1 :(得分:0)

您可以尝试通过正确的终止来清理模拟信号,这可以减轻模拟信号的峰值。

但你也应该看看循环动态。我的设计不清楚,但您不能直接将恢复的时钟调整到任何进入的边缘。你需要一个循环,利用它的动态,采取每一个传入的变化,稍微改善重建时钟,最终达到稳定状态。

另外,您是否考虑在时钟的下降沿计时。我不知道你的目标是什么技术,但如果它支持两个边缘,你可以进行10倍过采样。

亲切的问候