2012年2月12日日曜日

FUNCTION GENERATORの作成 16

FUNCTION GENERATORにDRAM上の任意の領域のデータをDACに出力する機能を追加した。
MicroBoardは64MByteのLPDDR-SDRAMを搭載しており、LPDDRコントローラは昨年の11月~12月に作成した。DRAMからデータをリードして出力する部分はこれまで何度も作っているVGA表示用のラインバッファモジュールをベースにした。このモジュールの名称だがFUNCTION GENERATOの機能モジュールとして作ったのでラインバッファという名称は適当でない気がするのだが、他に適当な名前が思いつかないため、fg_lbufという名称にした。 fg_lbufが扱うデータフォーマットは16bitモードと1bitモードを持たせた。このモードはDRAM上の16bitをそのままDACに出力する。(今回使用しているDACは14bit幅なので、正確には、上位14bitがDACに出力される。) また、1bitモードはDRAM上の1bitを16bitに変換してDACに出力する。つまり、1bitの0, 1それぞれに対応するDAC値をレジスタで設定しておき、DRAMからリードした値に応じて対応するレジスタ値を出力する。 DACは50MHzで動作させており、DRAMの容量は64MByteなので、理論上は16bitモードの場合670msec、1bitモードの場合10.7sec分のデータをDRAMに持つことが出来る。(ただし、現状DRAMにアクセスする手段はUSB経由のUART I/Fなので転送に非常に時間がかかる。) この1bitモードは、I2CやUART等シリアルI/Fの通信波形の再生等に使えると思う。

以下はシミュレーションの様子
DAC出力が2CHあるので、fg_lbufも2つ持っている。


fg_lbufを2CHもっているので、リサージュ図形で任意の幾何学図形を描画させることができる。


この波形をXY表示させると・・・☆になる。




調子にのって、漫画を描いてみた。
通常の波形としてみるとこんな波形だが・・・


XY表示にするとこんな絵になる。


異星から地球に到達する信号もこんな感じの信号だったら面白い。
オシロスコープでXY表示させてみたら、そこに現れたのは・・・・
「ヤッホー」ていう文字だったりして。。。 なーんていう妄想をしてしまった。

一応、これでFUNCTION GENERATORは完成ということで、
このプロジェクトを終えようと思う。 \(^_^)/ 


RTL一式はいつも通り以下に置いた。
http://www.hi-ho.ne.jp/bravo-fpga/

0 件のコメント:

コメントを投稿

自作CPUで遊ぶ 25

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