Hatena::ブログ(Diary)

何でも屋さんの備忘録 RSSフィード Twitter

2013-02-21

100MHzでDDRクロック出力

100MHz以上でデューティーサイクルを確実に50%にするには、CLKINのクロックが50%でもDCMのデューティーサイクル調整機能を使用する必要がある。クロック転送でCLK0,CLK90,CLK180,またはCLK270,出力を使用する場合は、DUTY_CYCLE_CORRECTION属性を TRUEに設定する。DCMのその他の出力は通常デューティーサイクルが50%に調整される。


特に200MHz以上では以下の様な回路の使用が推奨される。DCMからCLKx及びCLKx180出力を両方使用し、DDR出力フリップフロップ(ODDR2)のC0及びC1入力それぞれを駆動する。DDRフリップフロップのD0入力はVcc、D1入力にはGNDに接続する。各DCM出力は個別にグローバルバッファを駆動しており、デューティーサイクルの歪みが最小限に抑えられる。高周波数では、1つのクロックを使用してDDRフリップフロップ内で1つの入力を反転すると、約150psのデューティーサイクルの歪みが発生しするので推奨されない。

f:id:Michael_e29:20130221155410p:image:w420


250MHz以上の周波数では、LVDSなどの差動信号規格を使用してクロックを分配する。最高のパフォーマンスを達成するには、クロック入力とクロックフィードバックパスに差動グローバルバッファ(IBUFGDS/OBUFDS)を使用する必要がある。IBUFGDSを使用すると、ディバイスの一辺にあるグローバルバッファ入力がすべて使用されてしまうが、高周波数のクロック転送で最良のクロックが得られる。


参考

Spartan-3 ジェネレーシ ョ ン FPGA ユーザー ガイド v1.4

marseemarsee 2013/02/22 09:25 これってクロック出力はどこから取りますか?もう1つ近くにODDR2をインスタンスして、そこからですか?
ザイリンクスの資料名を教えて下さい。よろしくお願いします。

Michael_e29Michael_e29 2013/03/15 17:08 クロック出力は、差動出力バッファのOBUFDSです。ODDR2は1つだけインスタンシエーションしています。
図3-44のようにODDR2の出力をOBUFDSで作動信号にしています。

資料はSpartan-3 ジェネレーシ ョ ン FPGA ユーザー ガイ ド UG331 (v1.4) の141ページです。

実はチャント動いていません。動作確認してから返事を書こうと思っていたら遅くなってしまいました。別の仕事が一段落したらデバッグを進める予定です。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/Michael_e29/20130221/1361429666