- 締切済み
PLLでのクロック分周について
現在Quartus 8.1でFPGAを開発しているものです。 FPGAボード上の水晶発振器のクロック48MHzをメガファンクションの ALTPLLで100KHz(0.1MHz)と30KHz(0.03MHz)を作って使用したいと考えているのですが、赤い英文字で 「cannot implement the requested PLL Cause Post divider max count exceeded」 と出てしまいます。 (周波数下げすぎ?) そのまま無視して進めていくと何となく100KHzの周波数のPLL出力クロックは出来ているのですが、このまま利用すると何かジッタ等の問題があるのでしょうか? また、もしダメな場合、どのように48MHzから100KHzと30KHzのクロックを作ればよいのでしょうか?
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- takepon256
- ベストアンサー率41% (391/936)
ANo1さんの案に賛成です。 100KHzと30KHzをどういった使い方するのか分かりませんが、周波数を落とす場合はPLLがもったいないので普通はカウンタで作ります。 カウンタも、LE数を節約するためにまず80カウントして600khzを作成します。 この600khzを3カウント⇒1/2分周して100KHzを作成、 600khzを10カウント⇒1/2分周して30KHzを作成します。 (最後の1/2分周はデューティ50%にするために入れてます) 容量の小さいCPLDを使うわけではないので、ここまでカスタマイズする必要ないかもしれませんが・・・
48MHzから100Khz,30Khzまで落とすことが出来ないでも、その2,4,8,16倍...の周波数出力は実現可能のはずです。 それを1/2,1/4,1/8,1/16倍にdowncountする方が容易に実現出来ると思われます。
- tadys
- ベストアンサー率40% (856/2135)
>「cannot implement the requested PLL Cause Post divider max count exceeded」 分周器の設定可能な範囲を超えているという警告です。 おそらく勝手な周波数で発振し、それにロックはずれの変な制御信号のせいでわけのわからない周波数になるでしょう。 100kHz = 48MHz÷480 30kHz = 48MHz÷1600 なので1/480、1/1600 のカウンターを作れば良いです。 デューティ50%のクロックが欲しい時は上記の半分のカウンタを作ってそれを1/2にすれば良いです。