正弦波発振ブロック



【概要】

Xilinx社のProgramable Logicである「XC95XXX」を使って、6ビット、7ビット、
8ビット分解能のそれぞれの正弦波を発生する正弦波発振ブロック用の
VHDLを作ってみました。
CPLDの中にVHDLでROMデータを形成させるのには、VHDLの配列の特殊な
テクニックが必要です。
このテストのために作成したものです。


【全体の構成】

全体は正弦波の1周期分のバイナリデータを保持するROMと、アドレス用のカウンタ
出力のラッチと簡単な構成です。
下図がその構成となります。すべてclockに同期して動作し、カウンタは単純なアップ
カウンタでその出力がROMデータの配列のインデックスとなります。そして指定された
正弦波データが呼び出されて、ラッチに保持されます。







【VHDLの内容】

実際のVHDLの内容です。
それぞれは単純な構造ですので、6ビットの場合のVHDL全体を載せておきます。
その他、7ビット、8ビットの場合のVHDLリストを下記からダウンロードできるので
お使い下さい。

  ★ 6ビット用正弦波ジェネレータ
  ★ 7ビット用正弦波ジェネレータ
  ★ 8ビット用正弦波ジェネレータ

《6ビット用正弦波ジェネレータVHDL全体リスト》

まずarchitectureの最初のところで、配列の多重定義を使って正弦波データ
をROM定数として定義しています。
あとはclockで同期する6ビットカウンタ、romadrs とそれを配列のインデックス
として呼び出された正弦波データ SINEを保持するラッチ latch をプロセス文
として記述します。
配列のromadrsのデータをインデックスとして使うためにIntegerに型変換して
います。










  目次ページに戻る