クリスタル発振器の説明
すべての基準となる正確な発振器です。
通常、最も精度の高いX'talを使用したタイプを使います。
発振器を内蔵したX'talOSCでもよいですし、その中でも温度保証付の高精度タイプがベストです。
しかし、ここでは発振器のテストも兼ねて、普通のX'talを使用した発振回路をSpartanII側で作ります。
外付け回路は、普通のゲート帰還型水晶発振回路で組んだら動いちゃいました。
デジタル回路では周知の回路なので、説明は不用でしょう。(自分もよく知らないし)
本来はこのクロックを基準としますが、今回はこの発振器の精度も測定するために、XSP005に搭載されている18.432MHzのオシレータをPLLの源発振として使用し、このクロックは測定対象として使用しています。
出力ポートのドライブ電流は小さい方が良好のようです。
C1にトリマコンデンサをパラに付けると周波数の微調整ができるようですが、本音はやはり温度保証された高精度X'talオシレータを使いたいです。
ここの精度が高いとVCOの絶対精度が向上しますし、このままで100MHz超の高精度周波数カウンタにもなってしまいます。
X'talの代わりに、NTSCの水平帰線帰還パルス(垂直同期部分は要調整)を910倍して4xサブキャリア(14.318MHz)を作るなんて手もありかもしれません。
クリスタル発振器の精度が確認できたなら、源発振を18.432MHzから変更してみるのも手です。その時、ソース内の分周比パラメーターの定義と、周波数カウンタの集計期間も併せて変更します。