Lattice FPGA LFXP2-5EでLチカ

投稿日 2014/02/01

CQ出版のデジタル・デザイン・テクノロジ No.1 2009年 Spring付録のFPGA基板 CQ-FRK-LXP2でLチカを試してみました。

 

この本は購入してずっと放置してあったのですが、そろそろFPGAにトライしようと本棚からおろしました。

 

FPGA基板のCQ-FRK-LXP2には、Lattice社のFPGA LFXP2-5EとLED 2個、リセットSW等が搭載されており、JTAG/ISP Interfaceの信号も取り出せるようになっています。その他、部品は未搭載ですが、オプション回路のパターンも用意されています。

FPGA_Lattice_LFXP25E_1.jpg

デジタル・デザイン・テクノロジ No.1付録のFPGAボードCQ-FRK-LXP2 Lattice LFXP2-5E搭載と
パラレルポート用自作書き込み器

 

基板には最低必要な追加部品として、

 

10ピンのピンヘッダ 書き込み器接続 JTAG/ISP用
4ピンのピンヘッダ 電源用
LM317レギュレータ 5V入力を3.3Vに変換する
電解コンデンサ 10uF レギュレータ入力側用
タクト・スイッチ リセット用

 

電源を3.3Vで供給する場合はLM317や電解コンデンサは不要です。

 

ところで、このFPGA基板を使用するには、2つの問題があります。

 

①書き込み器を自作する必要がある.(純正品は高価なようです)

 

②本の発刊から時間がたっているので、付属CD-ROMに入っている開発ツールが古い


 

①については、Lattice FPGAの書き込み器についてネットを調べると「ispDOWNLOAD Cable」というタイトルの資料が見つかります。この資料の回路図はデジタル・デザイン・テクノロジ No.1 p24にも載っています。

 

ボード側を見ると、必要な信号線は4本(TDO, TDI, TMS, TCK)で、その他電源VCCJとGNDの計6本のみです。

 

回路図を見ると74HC244のほかにANDゲートもあり、面倒くさそうですが、FPGAボードが信号ispENやRESETを使っていないので、ANDゲートは無視して、必要な4本の信号がスルーで通るようにしてしまえば、おそらく動くだろうということで、以下の回路のアダプタを作りPCのパラレルポートとつなぎました。

FPGA_Lattice_LFXP25E_2.jpg

書き込み器の回路図


 

資料に記載されている回路の必要な部分のみ残したような回路になっています。

 

動作は予想通りOK。シンプルな回路ですがとりあえず書き込みができました。

 

書き込んだのは、CD-ROMで提供されているサンプル hdl_example.jed Lチカプログラムです。


 

②については、CD-ROMで提供されている開発ツールが、ispLEVERという統合開発環境ソフトのみで、開発に必須の論理合成ソフトが提供されていないことが問題です。ネットの入念に調べれば論理合成ソフトのメーカ(Lattice社ではない)がまだ提供してくれているかも知れないのですが、古いソフトを使うと後々面倒なので、今回はLatice DIAMONDを使いました。このDIAMONDを使えば、論理合成も含め、一通りの開発作業(全部試してはいませんが)ができ、書き込みも、①で作ったPCのパラレルポートを使用する書き込み器で書き込みができました。(なお、ispLEVER Clasicとうのもありますが、XP2をサポートしていないようで、使えませんでした。レガシーなFPGA等のみサポートしているようです。)

 

気になるのはDIAMONDが、デジタル・デザイン・テクノロジ No.1で使い方が説明されているispLEVERとは、オペレーションが異なる点です。

 

この点についてはネットを検索しながら少しずつ勉強していくしかなさそうです。

 

とりあえずDIAMONDを使用して、Lチカサンプル・プログラムをコンパイルし、書き込むまでの様子を示します。

 

●DIAMONDを起動し、プロジェクトを作る

 

Project名 = "hdl_example"
Location = 適当なフォルダを指定
Add Source = CD-ROMに入っている3つのソース(ddthdltop.vhd, clkengen.vhd, ledcntrl.vhd)をフォルダにコピーしておき、追加操作で認識させる
Device Family = Lattice XP2
Device = LFXP2-5E
Performance grade = とりあえず5
Package Type = TFQP144
Operating Conditions = Commercial


 

●LEDとRST(リセット)ポートのピンを割り当てる
ProcessウインドのTranslate Designを選択しておき、ProcessメニューのRunをクリック
ToolsメニューのSpreadsheet Viewをクリックしてスプレッドシートを表示し、77番ピンにLED, 74番ピンにRSTを割り当てる。Port Typeは、LVCMOS33にしておく。

 

●論理合成を行う
ProcessウインドウのJEDEC fileを選択しておき、ProcessメニューのRunをクリック

FPGA_Lattice_LFXP25E_3.jpg

論理合成後の画面

 

●書き込み
ToolsメニューのProgrammerをクリック
Cable SettingのCableをLATTICE(パラレルポート)にし、Portを0x0378(PCによって異なる場合がある)をセットする。
DesignメニューのProgramをクリック
 これで書き込みが開始される。

 

即実行されDL3(GREEN LED)がリズミカルに点滅する。

FPGA_Lattice_LFXP25E_4.jpg

書き込み完了直後の画面


これで、とりあえず開発環境ができ、ボードへの書き込みができることが確認できました。

 

P.S
部品箱からスタティック駆動の50セグメントもある固定表示LCDが出てきました。PIC等のマイコンで制御するには制御ピンが多く対応しにくいので、FPGAで制御回路を作っておけば、あとはマイコンから簡単に使えるようになりそうです。FPGAの応用として試してみる予定です。




 

(JF1VRR)