2011年12月25日日曜日

FUNCTION GENERATORの作成 2

一応、DDS部のRTL作成が終わり、シミュレーションで動作確認をしている。
以下はdds_coreをテストベンチに4つインスタンスして、1.0Hz(基本波), 1.001Hz, 1.01Hz, 1.1Hzを生成させてみている。 phase_accumulatorの小数部は12bitなので、基本波の1/1000程度の周波数までは生成できる。ただし、前回のブログに書いた通り小数の場合は誤差はあり、1mHzは実際は0.9765625mHzになる。 (上記の周波数はDACのサンプリングレートを1usecとした場合で表している。 最終的には変わるかもしれない。元々1Hzから10MHz程度の周波数を生成可能にしたいと考えていたので、1usecでは10MHzが生成できないため。 現状、1usecとしているのは開発に使用するSpartan3A StarterKitのDACのサンプリングレートが1usec位になるためだ。)

動作モードとしては単一周波数をずっと出し続けるモードの他にSweepモードも持たせようと考えている。Sweepの種別は周波数が倍々で増加するoctave モード、10倍づつ増加するdecade モード、そして設定されて増分づつ増加するstep linear モードの3種だ。

step linear mode


octave mode

0 件のコメント:

コメントを投稿

自作CPUで遊ぶ 22

今使用しているモータードライバはDM556Dというものだが、このドライバはMicro Stepが 800 [pulse/rev] 〜 40000 [pulse/rev]の範囲で設定できる。 Mi...