XilinxFPGA/CPLD 組み込み 実装 設計製作 VHDL 開発 | |||
SPARTAN-3E STARTER KIT を入手しました。
本品は REV D となっています。
電源を入れて動作させてみた報告です。
Spartan-3E スタータ キット は
キット : HW-SPAR3E-SK-J
キット+EDK付 :HW-SPAR3E-EDK
の二種類があります。
ISEはWebPACKが使えます。付属しているディスクはDVDです。
二種類のキットの違いはEDKが付いているかどうかの違いです。
HW-SPAR3E-EDK は EDK単体で購入するよりも安く購入できます。
この基板の仕様は以下のとおり
ザイリンクス デバイス :
Spartan-3E (XC3S500E-4FG320C)
CoolRunner?-II (XC2C64A-5VQ44C)
Platform Flash (XCF04S-VO20C)
クロック :
50MHz クリスタル クロック オシレータ
メモリ :
128M ビット パラレル Flash
16M ビット SPI Flash
64M バイト DDR SDRAM
コネクタとインターフェイス :
イーサネット 10/100 PHY
JTAG USB ダウンロード
9 ピン RS-232 シリアル ポート X 2
PS/2 スタイル
マウス/キーボード ポート
プッシュ ボタン付きロータリ エンコーダ
スライド スイッチ X 4
LED 出力 X 8
モメンタリ プッシュ スイッチ X 4
100 ピン拡張接続ポート(ヒロセ電機製)
6 ピン拡張コネクタ X 3
ディスプレイ : 16 キャラクタ - 2 ライン LCD
といった内容で、メモリやイーサネットを備えており、FPGA内にMicroBlazeを組み込んで動作させるのにちょうどよい内容となっています。
一セット目は キット+EDK付 :HW-SPAR3E-EDKのを購入することをオススメします。
HW-SPAR3E-SK-Jでも EDKの60日ライセンスは付いていますので評価はできます。
英語版
http://direct.xilinx.com/bvdocs/userguides/ug230.pdf
日本語版
http://direct.xilinx.com/bvdocs/userguides/j_ug230.pdf
これらの資料のリンク元
ACアダプタを接続して、 ACアダプタ付近の パワースイッチをONします。
LCDの上段には "SPARTAN-3E STARTER KIT"、下段には"www.xilinx.com/s3estarter"がエンドレスに横スクロールします。
ロータリースイッチを押すと動作モードが切り替わります。
動作モード1:ロータリースイッチモニタ
ロータリースイッチの回転にあわせてLD0〜LD7が点灯/消灯します。
動作モード2:スイッチモニタ
SW0〜SW3 ロータリースイッチの周りにある4つのBTNのON/OFFにあわせてLD0〜LD7が点灯/消灯します。
ISEをインストールしてあれば自動的にUSB接続を行います。
LEDが赤く点灯したのは初回のみでした。
このダイアログは初回のみ出ました。
接続完了すればUSBコネクタ横の緑LEDが点灯。
今回搭載しているSpartan3Eのチップは XC3S500E-4FG320Cです。ピン数が320本あるので、これをいちいち設定しているだけでも膨大な時間がかかってしまいます。また、ピンの設定を間違うとデバイスの破損などを引き起こしますので Xilinx社のサンプルを元に作り上げていくこととします。
XilinxのホームページではSpartan-3E スタータ キットのサンプルプログラムを紹介しています。
URLは http://www.xilinx.co.jp/products/boards/s3estarter/reference_designs.htm
この中で PicoBlazeとMicroBlazeを使うものは今回はやめておきます。
この中では
Rotary Encoder Interface
を選択しました。 Files をダウンロードします。
s3esk_rotary_encoder_interface.zip
というファイルがダウンロードされるので解凍します。
ファイルは以下のとおり
ファイル名 | |
install_left_right_leds.bat | Spartan3EStarterKITのSP3Eにダウンロードするためのバッチファイル |
left_right_leds.bit | ダウンロードするバイナリファイル |
left_right_leds.ucf | ピンタイミング制約ファイル |
left_right_leds.vhd |
VHDLソースファイル |
Rotary_Encoder_Interface_for_Spartan-3E_Starter_Kit_rev2.pdf | 解説 |
Rotary_Encoder_Interface_for_Spartan-3E_Starter_Kit_rev2.pdf
基板に電源が入っていて、USBが正しく接続されていれば
install_left_right_leds.bat
を実行すると、自動的に Spartan3にleft_right_leds.bitをダウンロードします。
実行中のメッセージは以下のようになります。実際には表示が早くて確認できません。
ISEがインストールされていれば自動実行されるはずですが、コマンドプロンプトのPATHが通っていない場合には impact.exeを実行できないためエラーとなります。
この場合には環境変数を変えるか、 install_left_right_leds.batの内容を変更します。
・環境変数を追加する方法
この場合 は環境変数に の
変数名 PATH
変数値 impact.exeがある場所をフルパスで指定。
※通常 c:\xilinx\bin\nt 下のスクリーンショットでは C:\XilinxWP82\Bin\nt としています。
・install_left_right_leds.batの内容を変更するやり方
install_left_right_leds.batの最後の行
impact -batch impact_batch_commands.cmd
のimpactの前に impact.exeがあるフォルダのフルパスをつけます。
<例>
C:\XilinxWP82\Bin\nt\impact -batch impact_batch_commands.cmd
赤字のように追加して、実行します。
この場合は impact.exeは c:\XilinxWP82\Bin\ntにある例です。
impact.exeはISEのインストールフォルダ+\Bin\ntにあります。
■ダウンロードメッセージ
先頭に>がついた行はバッチファイルのコマンド。それ以外はアプリケーションが出力したメッセージです。
>REM ##########################################################################
>REM # This will create theiMPACT CMD file and then run iMPACT to program #
>REM # the Spartan-3E device on the Starter Kit board. #
>REM ##########################################################################
>impact -batch impact_impact -batch impact_batch_commands.cmd
batch_commands.cmd
Release 8.2.02i - iMPACT I.33
Copyright (c) 1995-2006 Xilinx, Inc. All rights reserved.
// *** BATCH CMD : setMode -bs
// *** BATCH CMD : setCable -port auto
AutoDetecting cable. Please wait.
Connecting to cable (Parallel Port - LPT1).
Checking cable driver.
Driver windrvr6.sys version = 7.0.0.0. LPT base address = 0378h.
ECP base address = FFFFFFFFh.
Cable connection failed.
Connecting to cable (Parallel Port - LPT2).
Checking cable driver.
Driver windrvr6.sys version = 7.0.0.0.Cable connection failed.
Connecting to cable (Parallel Port - LPT3).
Checking cable driver.
Driver windrvr6.sys version = 7.0.0.0.Cable connection failed.
Connecting to cable (Parallel Port - LPT4).
Checking cable driver.
Driver windrvr6.sys version = 7.0.0.0.Cable connection failed.
Connecting to cable (Usb Port - USB21).
Checking cable driver.
Driver xusbdfwu.sys version: 1021 (1021).
Driver windrvr6.sys version = 7.0.0.0.Calling setinterface num=0, alternate=0.
DeviceAttach: received and accepted attach for:
vendor id 0x3fd, product id 0x8, device handle 0x19f0038
Cable PID = 0008.
Max current requested during enumeration is 280 mA.
Cable Type = 3, Revision = 0.
Setting cable speed to 6 MHz.
Cable connection established.
Firmware version = 1021.
CPLD file version = 0012h.
CPLD version = 0012h.
// *** BATCH CMD : addDevice -p 1 -file ".\left_right_leds.bit"
'1': Loading file '.\left_right_leds.bit' ...
done.
INFO:iMPACT:1777 -
Reading C:/XilinxWP82/spartan3e/data/xc3s500e.bsd...
WARNING:iMPACT:2257 - Startup Clock has been changed to 'JtagClk' in the
bitstream stored in memory,
but the original bitstream file remains unchanged.
INFO:iMPACT:501 - '1': Added Device xc3s500e successfully.
----------------------------------------------------------------------
----------------------------------------------------------------------
// *** BATCH CMD : addDevice -position 2 -part "xcf04s"
INFO:iMPACT:1777 -
Reading C:/XilinxWP82/xcf/data/xcf04s.bsd...
INFO:iMPACT:501 - '2': Added Device xcf04s successfully.
----------------------------------------------------------------------
----------------------------------------------------------------------
// *** BATCH CMD : addDevice -position 2 -part "xcf04s"
INFO:iMPACT:501 - '2': Added Device xcf04s successfully.
----------------------------------------------------------------------
----------------------------------------------------------------------
// *** BATCH CMD : ReadIdcode -p 1
Chain TCK freq = 10000000.
Chain TCK freq = 10000000.
Validating chain...
Boundary-scan chain validated successfully.
'1': IDCODE is '00000001110000100010000010010011'
'1': IDCODE is '01c22093' (in hex).
Version is 0000
'1': : Manufacturer's ID =Xilinx xc3s500e, Version : 0
Elapsed time = 0 sec.
// *** BATCH CMD : program -p 1
Chain TCK freq = 10000000.
Chain TCK freq = 10000000.
Validating chain...
Boundary-scan chain validated successfully.
'1':Programming device...
done.
'1': Reading status register contents...
CRC error : 0
Decryptor security set : 0
DCM locked : 1
DCI matched : 1
legacy input error : 0
status of GTS_CFG_B : 1
status of GWE : 1
status of GHIGH : 1
value of MODE pin M0 : 0
value of MODE pin M1 : 0
value of MODE pin M2 : 0
value of CFG_RDY (INIT_B) : 1
DONEIN input from DONE pin : 1
IDCODE not validated while trying to write FDRI : 0
write FDRI issued before or after decrypt operation: 0
Decryptor keys not used in proper sequence : 0
INFO:iMPACT:2219 - Status register values:
INFO:iMPACT - 0011 0111 0001 1000 0000 0000 0000 0000
INFO:iMPACT:579 - '1': Completed downloading bit file to device.
INFO:iMPACT:580 - '1':Checking done pin ....done.
'1': Programmed successfully.
Elapsed time = 1 sec.
// *** BATCH CMD : quit
----------------------------------------------------------------------
----------------------------------------------------------------------
----------------------------------------------------------------------
----------------------------------------------------------------------