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 件のコメント:

コメントを投稿

ERROR: Failed to spawn fakeroot worker to run ...

なにかと忙しくてなかなか趣味の時間を確保できない。 ...orz  家の開発機のOSはLinux Mintなのだが、最近バージョンを22に更新したところ、myCNC用のpetalinuxをビルドできなくなってしまった。ビルドの途中で ERROR: Failed to spawn ...