2011年12月30日金曜日

FUNCTION GENERATORの作成 3

鋸波、三角波、矩形波も出力できるようになった。 これらはDDSのphase accumulatorの値や、sin tableへの入力アドレス、符号信号を利用して生成している。


FPGAのBRAMは本質的にDual Port Memoryであり、sin(x) tableのROMもDual Port ROMとして生成している。このDual Portの利点を活かして波形生成機能も2CH持つことにした。 それぞれのCHで生成波形の種別や周波数、初期位相、振幅(減衰量)を個別に設定できる。また、両CHの出力について乗算(DSB変調波形の生成)・加算が出来るようにした。

以下はCH1側にDDS1とDDS2の乗算結果を、CH2にDDS2の出力そのままを出している。



以下はDDS2で三角波、DDS1で正弦波を発生させ、両者を加算した波形をCH1に出している。


ここまでの機能のDDS部とUART I/FでSpartan3E 250E用にRTLを構築して合成したところ合成できた。


まだDAC I/F部は入っていないがここまでの機能であればSpartan3E 250Eに実装出来そうだ。

0 件のコメント:

コメントを投稿

自作CPUで遊ぶ 25

まだ制御ソフトが完成していないので今まではスピンドルを移動するために一々簡単なプログラムを書いて移動させていたのだが、非常に面倒なのでCNCペンダント的なものを作ることにした。 右側の縦に2つ並んでいるスイッチ...