CPLDやFPGAを使用した回路と、その開発
デジタル回路が複雑になったり、高速性が要求されるようになると、どうしてもCPLDやFPGAに頼ることになる。筆者は以下のような回路に利用している。
FPGAやCPLDを使う場合の追加の注意:
Quartusで設計ファイルのコンパイルを更新する際の注意:この章の設計ファイル(CPLDやFPGA関係)を更新する際に新しいproject folderに、旧ファイル群をコピーして名前を変え、新しい設計フォルダーとしてコンパイルすることがある。その際、以下の点に注意。昔、Quartusでコンパイルしたオブジェクトファイル(pofやjicは昔のプロジェクトフォルダーの、それらのファイルにリンクされている。したがって、それらのオブジェクトを書き込んでも、昔の変更前のコンパイルフェイルが書き込まれるのみで、新しい設計は反映されない。故に、なぜか、新しい更新が反映されないことになる。これは、相当に筆者を悩ました。Quartusのバージョンがバグを含んでいるかと思って、種々のバージョンを試したが、全てダメ。要するに、新規のコンパイルオブジェクトの指定が昔のままだったため。書込オブジェクトの更新は、まず、書込ウィンドで書込ファイルを削除(Remove)する。その後、正しい、新しいフォルダー内の書込ファイルを"Add File”で選択し、それを書き込むことで正しく更新される。
(1)全デジタル方式、パルスジェネレーター(4チャンネルのパルスパターンも発生、デジタル型ディレイジェネレーター付)。
ここやここに回路例がある。CPLDを使ったのは、遅延時間の見積もりが容易であるためである。詳細はその解説を参照されたい。
また、任意信号発生器(シグナルジェネレーター)にFPGAを応用した例をこちらのページの(2)に示す。
(2)FIRフィルター
こちらに例を示す。学生にデジタルフィルターの例を示すのに使用したり、実際にロボットで複数の光通信周波数から、狭帯域フィルターで個別のチャンネルを弁別する際に使用している。
(3)FFT
高速フーリエー変換をFPGAに実装した例をこちらに示す。
(4)グラフィック液晶の制御
別ページに多くの例を示してある。また、ロジックアナライザーを自作した例もこちらにある。
(5)VGA出力の発生
DE0ボードで行った例を示す。たしか、これでバーパターンのようなものが出たと思う。(昔のモジュールなので忘れた。)