2-0 最初に(使用したFPGAやインターフェースなど)
写真はDE0 FPGAボード(左側)と40-pinフラットケーブルで接続されたインターフェースボード(IF board、右側)一番右にあるのがGraphic LCDで、その下にAVR ATMega168がプリ板上に実装してあり、グラフ表示を制御している。IF boardの左側にはオーディオアンプとADC (SPI I/F)およびDACがあり、マイクから入力された音声信号をFPGAの制御下でデジタル変換し、FPGAに転送して処理し、結果をFPGA制御下でDACに出力してイヤフォーンをドライブする構成になっている。FFT等の信号処理では、FPGAからAVRにコマンドとデーターが発行され、AVRによってグラフがLCDに描画される。
使用したFPGAボードと外部に接続したインターフェースについて記す。この章に続く2-1と2-2章で使用するのはTerasic社のDE0ボードである。そのボードの40-pinコネクターにフラットケーブルで外部インターフェースをつなぎ、種々の事を実現している。この構成は授業に使用しており、その解説の一部を添付する。これを読めば、2-1と2-2章で、どのようなことが実現されているかが分かる。外部インターフェースボードは16-bit SPI I/F ADCを持ち、オーディオマイクからの音声信号をAD変換してFPGAに転送する。また、8-bit parallel DACを搭載し、FPGAによってデジタル信号処理されたデーターを受信してDACによってオーディオ信号を再生し、スピーカーアンプで出力できる。さらに、FFT処理等のデーターはATMega168の制御下にあるGraphic LCDによってグラフ表示することが出来る。
その外部インターフェスの回路図とパターン図を参考に添付する。また、DE0との通信をATMega168との間で行うBASCOMプログラムを記す。使用したGraphic LCDはこちらに述べたLM6063である。
2-1、2-2章でも使うADCインターフェースに関するFPGAモジュール(ADtestS1)を添付しておく。Quartusのメニュー、settings/filesからリンクを張ること。
2-0 ~ 2-2章のQuartus projectは、わざとブロックダイアグラム的な回路図で記述してある。学生の理解度を上げるためで、必要な所以外、Verilogでは書いていない。(Verilogなどで記述した方が簡単に記述できる所もあるが。)
外部インターフェースボードの部品入手先
LM6063 graphic LCD:共立デジット
AD7685 ADC:RS-components
AD558 DAC:トーカイ
NJM386 or LM386 audio AMP:共立
OP484 4-channel rail-to-rail OPAMP:RS-components
系が3.3Vなので、AVRの書込器として、ATMEL AVR ISP MK-IIが必要。(共立にあり)
プリント板:松電子に発注。
本章以外にも別種のインターフェースボードの形態もあり、ここに詳細を示す。
FPGAやCPLDを使う場合の追加の注意:
Quartusで設計ファイルのコンパイルを更新する際の注意:この章の設計ファイル(CPLDやFPGA関係)を更新する際に新しいproject folderに、旧ファイル群をコピーして名前を変え、新しい設計フォルダーとしてコンパイルすることがある。その際、以下の点に注意。昔、Quartusでコンパイルしたオブジェクトファイル(pofやjicは昔のプロジェクトフォルダーの、それらのファイルにリンクされている。したがって、それらのオブジェクトを書き込んでも、昔の変更前のコンパイルフェイルが書き込まれるのみで、新しい設計は反映されない。故に、なぜか、新しい更新が反映されないことになる。これは、相当に筆者を悩ました。Quartusのバージョンがバグを含んでいるかと思って、種々のバージョンを試したが、全てダメ。要するに、新規のコンパイルオブジェクトの指定が昔のままだったため。書込オブジェクトの更新は、まず、書込ウィンドで書込ファイルを削除(Remove)する。その後、正しい、新しいフォルダー内の書込ファイルを"Add File”で選択し、それを書き込むことで正しく更新される。