2016-08-19 20 views
0

FPGAを使用していて、差動マンチェスターデコーダを実装していますが、今はクロックリカバリに問題があります。FPGA上の差動マンチェスターコードのクロックリカバリ

マンチェスターコードのクロックは40MHzですが、オーバーサンプリングは5回しかできません。したがって、FPGA内部のクロックは200MHzです。 いくつかの歪みのために、データストリームは時にはいくつかの追加のピークで妨害されることがあります。これまでは、受信したデータストリームごとに回復したクロックを直接更新しました。

しかし、いくつかのピークが存在するため、クロックの回復は失敗します。私は、クロック回復のためのトレーニングシーケンスを使用する可能性はありません。 このような場合のPLLを使用しないクロックリカバリのベストプラクティスまたは実装ですか?

解明:

FPGAに供給される信号は、(4nsの立ち上がり時間程度)非常に高速コンパレータからのものです。コンパレータは、ヒステリシスを小さくして信号がゼロより大きいか等しいかを区別します。ヒステリシスは非常に小さいが、増大させることはできない。

ピークを視覚化するためにウィキペディア画像を修正しました。 enter image description here

+0

あなたが話している「ピーク」が何ではっきりしていません。 –

答えて

0

アナログ信号のピークを緩和する適切な終端処理によって、アナログ信号をクリーンアップすることができます。

しかし、ループのダイナミクスも見ておく必要があります。あなたのデザインは私には分かりませんが、回復したクロックを着信エッジに直接調整することはできません。入ってくるすべての変更を取り込み、最終的に安定した状態に達するように再構築されたクロックをわずかに改善するためには、ダイナミクスを伴うループが必要です。

また、時計の立ち下がりでクロックを考慮しましたか?どの技術をターゲットにしているのか分かりませんが、両方のエッジをサポートしている場合は、10倍のオーバーサンプリングが可能です。

種類について

+0

ターゲットプラットフォームはアルテラのMax 10 FPGAです。これまではザイリンクスのみを使用していたため、両エッジをサポートしているかどうかはわかりません...データシートを調べました。 – steffenmauch

1

FPGA内部でPLL回路を使用することができます。 documentationをチェックすることができます。うまくいけば、これは参考になります。

関連する問題