Atmel 社製FPSLIC(AT94Kシリーズ)
および開発ツール(System Designer)使用時のTips

このページの内容は担当者の私見に基づいたものであり、Atmel社の正式見解ではありません。
このページの内容によってこうむるいかなる損害についても、作成者は責任を負いません。
引用してあるメールは匿名化してあります。文中のメールアドレスにメールを送っても届きません。
ご注意ください。

0.AT94Kを使って開発してみたいのですが

まずスタータキット ATSTK94 を購入されて、欠点、利点を実際に経験されることをお勧めします。
個人でしたら、 Digikey から通販で購入するのが手軽です(65,000 円くらいです。2003/1 現在)。
開発する場合、チップ単体や Configure EEPROM(AT17LV010) も同様に Digikey から入手できます。

ATSTK94 には 4ヶ月間の System Designer のライセンス(申請が必要)がついてきます。
実際にはライセンス認証が必要なのは System Designer の一部(Leonardo Spectrum , ModelSym)です。

ライセンスはいわゆるMACアドレスによるノードロック 式ですので注意が必要です。
パラレルドングルの方がいいという方は Atmel から別途購入できます。

FPGA コンフィギュレーションのためにパラレルポートのついたPCが必要です。
この手のキットはたいていそうですが、多分USB-パラレル変換では動作しないでしょう。

また、FPGA ロジックを快適に Configure するためには PentiumIII-1GHz 以上の
マシンパワーが必要だと感じます。開発ツール System Designer2.1 は、
Windows2000,WindowsXP で動作することを確認していますが、下でものべているように
エラーがでて起動しない場合があります(マニュアルにも記述されています)。

エラーがでた場合、でない場合、どちらも経験しましたが、私の場合、マニュアル記述の方法で
回避できました。 ハマるのは ライセンスキー ドライバのインストールと、SystemDesigner の
起動のところでしょうか。

1.SystemDesignerライセンスの取得

a.スタータキットの場合

Atmel のページから取得できるが、Altera のライセンスのようにすぐにはメールの返事はきませんでした。
(翌日にはついていましたた)
HOST ID は Ethernet Card の MAC Address でよいようです。
MAC Address でよいかどうかは、念のため、lmtools で確認するとよいです。

2003/3 現在、FPSLIC 関連ページは PRODUCTS>MICRO CONTROLLERS に分類されている。
PROGRAMMABLE LOGIC の分類ではないことに注意!!

b.恒久ライセンス、もしくは1年ライセンスの場合

Atmel のページから同様に取得します。
このときの HOST ID は、パラレルドングルを買った場合にはシールで張ってある
FLEXID を入れて送ればいいようです。

心配なら、下項の「インストール」を行ってから、flexlm プログラムで HOST ID が
正常に認識されていることを確認するとよいと思います。
正常な場合「FLEXID=X-XXXXXXXXXXXX」という行が表示されているはずです。
この行が表示されない場合、 ドライバのインストールに失敗している可能性があります。

さて、私の場合、恒久ライセンス(ATDS94KSW2)を購入したので、
これに基づいて申請をしても、6ヶ月先までのライセンスしか送られてきませんでした。
ライセンスに関するやりとりの全文(匿名化済み)はここを参照。
2003/1現在、 6ヶ月先までのライセンスしか発行できないとのことです。



2.インストール

SystemDesigner と CPS(ライタ)のインストールは開発に必須です。
まず、最新バージョンであることを確かめてから(パッチは後であてられますが)
添付CDからインストールしてください。

ライセンスインストールはライセンスが到着しないとできないので、ライセンスのインストールステージでは
Skip を選択し、あとで スタートメニューから MentorGraphics Licensing > Configure Licensing を使って
アトメルから送付されたライセンスファイルをどこかにコピーし、その位置を指定して行ってください。

パラレルドングルライセンス(2通りの選択肢があるようだが、私の場合DS1410Eだった)の場合、
ドライバのインストールも同時に行う必要があります(WindowsNT 系)。

このとき、ドライバのディレクトリを聞かれるが、すんなりいかないときは、
テキストボックスをよく見ましょう。

要は CDROM の ds1410.sys のあるディレクトリを指定すればよいのですが、
勝手に "Drivers" だかなんだかの文字列を補完してくれるため、失敗した経験があります。
失敗すると lmtools で FLEXID の項が表示されません。

また、Drivers ディレクトリに DS1410 ドライバのインストールプログラムなるものが添付されてきて、
sys を system32 にコピーし、なんとか.exe を起動せよ、みたいな Readme がついているが、
このとおりにやっても lmtools では FLEXID (ライセンスマネージャが認識するドングルのID)を
認識してくれなかった。私のやり方がわるいのかもしれないが、ドライバはインストールプログラム
(MentorGraphics Licensing)の Setup から行うことをお勧めします。

SystemDesigner がうまく起動しないときは、マニュアルにも記述がありますが、
つぎの2つの設定を試してみてください。

1)コントロールパネル>フォント>ツール>フォルダオプション>TrueTypeフォントで
 「コンピュータ上のプログラムに TrueType フォントのみを表示する」を設定。PC再起動。

これでだめな場合は

2) SystemDesigner/bin/ 下にある、dfact_bak.opt を dfact.opt にリネーム(PC再起動の必要は無い)。

ただし、1)をやってしまうと、フォントが変に(小さく)なってしまいます。

フォントサイズの変更の方法はリファレンスに書いてあるものの、SystemDesignerから起動する
すべてのソフトのフォントが(IDS等)それで設定できるわけではないので、
1)、2)を試みて一旦正常に起動するようになったら、1)を元にもどす(TrueTypeのチェックをはずず)
ことを試してみるとよいです。うまくいく場合もあります。

 

3.アップデート

どちらもアップデートがあります。CPS(ライタ)は最新バージョンが落とせます。

2003/3 現在、

CPSの最新版は PRODUCTS>PROGRAMMABLE LOGIC>FPGA CONFIGRATION MEMORY の Tools & Softwares にあります(CPSINSTALL.EXE)。

System Designer のアップデートは PRODUCTS>MICROCONTROLLERS>FPSLIC>
Tools & Software > SystemDesigner
ページにあります(System Designer 2.1 Update)。

SystemDesignerを起動して、HELP>Update via File から SysdesUpdate.pat を選択すればよい。
このとき IDS のアップデートに関するガイドも同時に表示されるようだ。

System Designder 本体はスタータキットもしくはライセンス購入時に付属してきた
CD のものを使用するのだが、アップデートと本体付属のもののバージョンが違うときは
Atmel に問い合わせましょう。

ライセンス申請のときにコメントとして書いておくとよいと思われる。
ほこりがつもっているような店のを買うと、 System Designer のバージョンが古いことがある。
手間をかけたくなければ、あらかじめスタータキット購入前に添付のSystem Designerのバージョンを
確認したほうがよいと思われます。

どうでもいいことですが、Atmel のサイトはリニューアルされてからほしいものが探しにくいです。

 

4.AT94K/SystemDesigner 使用に関する問題

a.いったい何からつくればいいのかわからないよ!ママン!

ATSTK94 を購入すると、図つきの丁寧なチュートリアルがついていますので、
わけのわかんない方はいきなり恒久ライセンスを購入したりせず(普通しないと思いますが)、
ATSTK94を買ってみることをお勧めします。Digikey に在庫があればすぐに購入できます。

以下はチュートリアルに書いてあることの要約になりますが、

1.プロジェクトの作成 Project>New

  FPGA部の入力は Verilog , VHDL から選択できます。
  プロジェクト作成時に聞かれますので間違えないようにしましょう。

2.FPGAロジックの開発、論理合成、フィッティング

  1でプロジェクトの作成後、あるいはプロジェクトセーブ後に再ロードした場合には、
   チップの絵をクリックすると、各ツールの起動ボタンの画面になります。

  ロジック開発で確実に使用しないといけないのは、

 a. "AT94K Device Option" (PROGRAM-RAM/DATA-RAM の領域の分割オプション)
 b. "AVR-FPGA Interface" (FPGA部 - AVR部 の内部結線の設定ツール)
 c. "Synthesis Tool" (Leonardo Spectrum for Atmel, 論理合成ツール)
 d. "Figaro IDS" (AT94K にフィッティングするツール)
 e. "Bitstream Generation" (AT17EEPROM ライタ、CPS で焼けるファイルを作成するツール)

  の5点です。私はシミュレータは使い方がよくわかってません。IDSのフィッティングが遅いためカットアンドトライをするには TAT かかります。 私の場合、以前 Altera を使用していましたので、ロジックの検証はそっちでやってしまいました。Verilog で開発しましたが、トップモジュール以外はそのまんま AT94Kにもってこれました。ただし、各FPGA特有の機能を使用したりしていると面倒でしょう。

 System Designer付属の Leonardo Spectrum に限った話ではありませんが、Leonardo の出力ファイル (.edf) 名には気をつけましょう。foo.edf がすでに存在する場合には foo_0.edf などと連番がつけられ、何度変更してもロジックが変更できないと思ったら .edf ファイル名が変わっていた、ということがありました。また、プロジェクトに新規ファイルを追加したらその名前になってしまったりして気づかなかったこともあります。

3.AVR 部のプログラム作成

 ふつーのAVRのソフトを書く要領です。ふつーのAVRのソフトがかけない人は google にいって "Atmel" "AVR" で日本語のページを検索してください。

 際立って違うのは、コードをFLASH ではなく FPGA 同様起動時に EEPROM からひっぱってくること、内蔵 EEPROM がないこと、くらいでしょうか。 また、SPI I/F がなく、TWI は内蔵されているものの 208 ピンパッケージでしか使用できないことに注意(ピンが外部にでていない)。

 GCC もつかえますが、avr-libc の include ファイルは AT94K に関しては未完のため、ビット定義そのほかを自分で書く必要があります。avr-libc の 2003/2 以前のリリースの ioat94k.h 割り込みテーブルにはバグ(FPGA割り込みと外部割込みの順序が違っている) があります。最新の avr-libc を使うか、インクルードファイルを修正してください。

 データRAMサイズを変更するようなときには、スタック位置等の内部定数をコンパイルオプションで指定してやる必要がでてきます。 詳細は avr-libc のマニュアル(WINAVR だと/doc 以下にあります)を参考にしてください。

 ・GCC(WINAVR)サンプルMakefile

 GCC,WINAVR、そのほかの AVR 関連リソース は avrfreaks からたどれます。

 GCC の場合、Intel HEX まで落としたら "Bitstream Generation" で FPGA 部の HEX ファイルと
 混ぜてやってから焼きます。ちなみに FPGA 部のデータがなくても焼け、AVR部だけでも動作します
 (しているように見えました。そういう使い方をしていいかどうかは別)。

 SystemDesigner から CPS を起動すると、ファイル名等がきちんとはいっているので楽です。

 ★WinAVR20030424 と以前のバージョン WinAVR20030312 の相違点 と注意(AT94K プロジェクトを作成する際の)

 1)avr-libc の ioat94k.h に内部レジスタビット定義が追加された(すべてかどうかは未確認)。
 2)interrupt.h にて、割り込み操作用のインライン関数が新たに定義されているのだが、
   これが ioat94k.h には EIMSK も GIMSK も GICF もないため、以下のエラーとなってしまう。

# error "No valid external interrupt control register defined."

   とりあえず ioat94k.h にて

#define EIMSK EIMF

   を追加してみた。interrupt.h に追加を加えるのが本来の姿かもしれないが、いずれにせよ配布ファイルに
   手を加えることになってしまう。

b.Leonardo Spectrum のコンパイル途中でライセンスエラーになるよ

はっきりと確かめたわけではないのですが、Altera の LeonardoSpectrum のライセンスがC:\flexlm にあったりすると起こるようです。両方のファイルを混ぜたりしてみたものの、結局おかしくなったので、同じマシンにはインストールしていません。

 

c.AT94K40AL-25 が 18 MHz 以上で正しく動作してくれないのだが

仕様です(笑)っていうか、仕様では動くはずなのですが.....
ここ参照

 

d. CPS でうまくEEPROMに焼けないぞ/AT94K が選択肢にないぞ

CPS に関してもいくつかハマりました。ATSTK94 付属の AT17xx EEPROM に焼くには、
FPGA種別(Family)を"AT40K/Cypress" にする必要があります。"FPSLIC" 等の
まぎらわしい種別がありますが無視しましょう。
焼けるのだがうまくいかない、という場合はここを確認してください。

また、ATSTK94 のバージョンにもよるのですが、ROM 焼きケーブルがどちらの方向にも
させる(ボード側がピンヘッダになっているため) ので、逆挿しに注意が必要です。

また、SystemDesigner2.1 付属の古い CPS では、一旦 "AT40K/Cypress" 以外の種別を選択
してしまうと、カーソルキーでないと"AT40K/Cypress"に戻せない、という問題がありました。
現在の CPS では改善されているようです。

マシンの速度に依存しているようなので、キャリブレーションは必ず行いましょう。
焼いている途中で止まってしまうような場合があります。原因がそれかどうかはわかりませんが、
最近の動作中に頻繁にスピードの変わるノートPCで焼くと、この現象が頻発します。

実際にボード開発する際には、手に入れやすい Configure Rom として、AT17LV010 、
および AT17LV010"A" があります。"A"は Altera 互換仕様のものです。どちらも使用できますが、
数がでるからか、"A"のほうが値段が安かったりします(ただし、最小ロット 100 だったりしますが....) 

"A"を使用するには、あらかじめクロックソースを FPGA 側に変更しておく必要があります。
CPSの "Procedure" で、"/M : Disable AT17LVxxxx Internal Clock" で
あらかじめ前処理をしておく必要があります。一旦処理した "A" は、私の使った範囲では
"A" なしと同様に使用できるようです。

★"A" バージョン処理についての追記 (2003.4.14)

EE2PROM書き込み時に
1)一度書き込む
2)/M Disable
3)再度書き込み
をしないと /M Disable がうまくいかない、という報告がありました。
また、再度書き込み時のベリファイ時にエラーが何点が出る、
いきなり/M DISABLE => 書き込みだとうまくいかない場合がある、ようです。

--

Last Updated at 2003.5.6

--

未整理資料へ

miolab.com トップへ