« LATTICE XP2用JTAGプログラマをリリースしました | トップページ | ボードコンピュータ展に出展します »

2009.04.12

Lattice XP2のC-SRAM書き込みモードに対応しました

LatticeのXP2は、4種類くらいのコンフィギュレーション方法があります。
① 普通のモード・・内蔵フラッシュROMに書く
② SPIモード・・外付けのSPIフラッシュROMに書く
③ スレーブSPIモード
④ C-SRAMモード・・FPGAのロジックセルだけを書き換える(フラッシュを書き換えない)

このうち、スレーブSPIモードは、FPGAがSPIスレーブデバイスとなるモードのようです。Latticeの純正書き込みツール(ispVM)では、JTAG信号をうまくSPI信号にみせるやり方で、この方法を実現しているようです。
XILINXに喩えればSlaveSerial、ALTERAならPSでしょうか。

SPIモードは、外付けのSPI ROMにデータを格納する方法ですが、ispVMでは、まずFPGAのC-SRAMを消去した後、プライベート・インストラクションを注入するようです。すると、JTAG端子と外付けSPI用端子がFPGA内部でつながって、JTAGポート経由でSPIの書き込み信号を流しこむような形で、外付けSPI ROMに書き込むらしいです。
(もし、JTAGデバイスがチェーン接続されていて2個のFPGAがあったら・・とか考えると悩みます)

ispVMでSPIモードのコンフィギュレーションを行うには、どうやらJEDファイルをあらかじめBitファイルに変換しておかないと、うまくいかないようです。まだ成功していません。
これら2つの方法は複雑なので、私が作っているツールでは実装しないことにします。

今日実装したのは、C-SRAMモードです。
このモードでは、FPGAのフラッシュROMを書き換えることなく、揮発性のメモリ素子のみを書き換えます。
(LFXP2はフラッシュROMの耐久性は10000回と書かれているので、普通の開発で何度書き換えてもフラッシュROMが劣化するようなことは考えにくいのですが、書き込みに失敗して変なデータが残ったときにも安全に復帰できるよう、このモードを実装しました。)

C-SRAMモードを使うには、xp2jtagのコマンドラインで-csramオプションを指定してください。

DOSのプロンプトで次のように入力します。
xp2jtag -csram -auto e:\DATA\tutorial\hdl_example\hdl_example.jed

やはりフラッシュROMの書き込み時間を待たないでもよいせいか、若干、高速です。
USB-JTAGで消去→書き込み→ベリファイをすると、66秒くらいです。
書き込みだけなら28秒です。

パラレルポートなら12秒くらいでしょうか。

ダウンロードはこちらにあります
http://www.nahitech.com/nahitafu/trg78k/78kjtag.html

では皆様,、どうぞよろしくお願いします。

あと、基板上のLEDがPWMでじわじわと光るサンプルも作りました。内蔵オシレータを使うので、外付け部品は不要です。
「jiwa.lzh」をダウンロード

|

« LATTICE XP2用JTAGプログラマをリリースしました | トップページ | ボードコンピュータ展に出展します »

コメント

皆様はザイリンクスだアルテラだラティスだと各FPGA
メーカーを渡り歩いてるのでしょうか?
私はザイリンクスのみでSP2とSP3で開発をしてます。
確かに各社のいいとこ取りをしたらいのでしょうが、
とてもそんな余裕がありません。

投稿: kenken | 2009.04.12 23:05

こんばんは

私はXILINX派です。
これから少しLatticeもやってみようと思っています。
将来的にはDAPDNAを極めたいです。

投稿: なひたふ | 2009.04.13 02:40

こんにちは
おかげさまで、私もサンプルを書き込むところまでできました。ありがとうございます。
xp2jtagではザイリンクスケーブルを使いました。

投稿: Sim | 2009.04.15 00:20

コメントを書く



(ウェブ上には掲載しません)




« LATTICE XP2用JTAGプログラマをリリースしました | トップページ | ボードコンピュータ展に出展します »