南無ちゃんのブログ    https://namva.net

天下御免の夢中人=南無ちゃんは、今日も元気で明るく楽しく逞しく生きてゆく。

FPGAの学習(分周器を作る)

2020-03-27 17:30:12 | 電子工作
 GPSDOを作るために周波数カウンタが必要なので、FPGAで実現しようとしています。マイコン内蔵のカウンターではビット数が足りなかったりするので、どうしてもFPGAで作りたいのです。
 昨日までに、FPGA開発ツールの簡単な使い方がマスターできたので、次は、VHDLで回路を記述していきたいと思います。まぁしかし、VHDLの勉強をしたのは20年以上前のことなので、殆ど記憶が消去されています。かと言って、一からVHDLの教科書を読むのもかったるいので、ネットでカンニングしながら、簡単なところから記述して、試して行きたいと思います。
 WINGONEERのCyclonII FPGAボードには、EEPROMの他、50MHzのクリスタルオシレータや3つのLEDおよび押しボタンスイッチが実装されています。これらのリソースを使って、周波数カウンターで必要となる1秒のゲート信号を作成するために、50MHzクロックから1Hz(正確に言うと0.5Hz)への分周回路を実験しました。
 動作状態を確認するために、1秒毎にON/OFFを繰り返す信号をLED(PIN3)に出力します。カウンターのビット数は定義していませんが、rangeを指定することで、コンパイラーは何ビットのカウンターが必要なのか分かるんでしょうね。カウンターの出力が49999999になるのは一瞬(20ns)ですが、ちゃんと期待通りに動作しました。下手にif (CNT >= 49999999) thenなどと記述すると、コンパレータ以外の余分な回路が合成されたりするかもしれないと思って、わざと省略しています。
 VHDLでの記述は次の通りです。

 Pin Plannerでのピンアサインは次の通りです。

コメント    この記事についてブログを書く
« FPGA開発ツールのお勉強 | トップ | ESP32にNokiaの液晶パネル »
最新の画像もっと見る

コメントを投稿

電子工作」カテゴリの最新記事