SSブログ

FPGA で PSK31 (DE0 Nano 編 送信 その3) [Digital Mode]

 どうも拾ってきた NCO の Verilog ソースにバグがある様で、ちゃんと設定した周波数のパルスが出ません。

そこで、自分で簡単な NCO を作ってみました。

NCO の原理は位相アキュムレータです。
ノートに書いたメモを載せておきます。
① が基本原理です。
② はレジスタを Modulo n のカウンターに変更し、周波数設定の自由度を改善しています。
nco_memo.jpg

で、これを元に Verilog ソースを書いてシミュレーションしてみました。
Modulo n は 9、ステップは 2 です。 つまり、レジスタは 9 パルスで一周し、その間に 2 パルスが発生します。

シミュレーション結果はこちらです。
simple_nco.jpg

ちゃんと 9 パルスで 2 パルス出ています。
simple_nco_pulse.jpg

これをもうちょっと条件を変えて動作確認して見る予定です。

nice!(4)  コメント(2)  トラックバック(0) 
共通テーマ:趣味・カルチャー

nice! 4

コメント 2

ja1nuh

今晩は、Verilog使いこなされてますね。 うらやましいです。
by ja1nuh (2014-03-07 22:52) 

ktm

いえいえ、
うちの若い衆に比べたら使いこなすと言えるまでにはまだまだ修行が必要です。
FPGA への合成では、いまだタイミング制約とかが書けません。
Verilog は TTL でロジック回路を作っていた経験があれば、C を書くよりは取っつきやすい気がします。

by ktm (2014-03-08 13:13) 

コメントを書く

お名前:[必須]
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0