2012年1月4日水曜日

LinuxからAvnet Spartan-6 LX9 MicroBoardをプログラミングする

Avnet Spartan-6 LX9 MicroBoardのでかいほうのUSBの口にはAtmelのマイコンがぶらさがっていて、Digilentのfirmwareが乗っている。つまり、DigilentのUSB-jtagデバイスに見える。

これを操作するためのコマンドやライブラリーのたぐいは
/opt/Xilinx/13.4/ISE_DS/ISE/bin/lin/digilent/
に移動して(「13.4」はインストールしてあるISEのバージョン番号に置き換える)
./install_digilent.sh
を実行するとインストールできる(本来はISEのインストール時にインストールされるのかもしれないが未確認)。

Digilentから公開されている新しいファイルなどの情報は以下。
http://lighttomorrow.wordpress.com/2011/12/18/how-to-install-digilent-cable-driver-for-xilinx-design-suite-on-ubuntu-11-10/

bitstream(.bit)をMicroBoardに流し込むには、バッチファイルを作って、impactに渡す。

impact -batch foobar.impact

foobar.impactの中身はこんな感じ。

setMode -bscan
setCable -port auto
identify
assignfile -p 1 -file foobar.bit
program -p 1
quit

この時点ではfpgaのRAMに書かれているだけなので、リセットや電源を切ると忘れてしまう。

フラッシュROMイメージ.mcsの生成には以下のようなバッチファイルを使う。

setMode -pff
setPreference -pref StartupClock:Auto_Correction
setSubmode -pffspi
addDesign -version 0 -name "0"
addDeviceChain -index 0
addDevice -spi N25Q128 -p 1 -file foobar.bit
generate -format mcs -generic -spi -fillvalue FF -output foobar.mcs
quit

フラッシュROMイメージ.mcsの書き込みには以下のようなバッチファイルを使う。

setMode -bs
setCable -port auto
Identify -inferir
attachflash -position 1 -spi N25Q128
assignfiletoattachedflash -position 1 -file foobar.mcs
Program -p 1 -dataWidth 1 -spionly -e -v -loadfpga
quit
といってもimpcatを使ったROMイメージの書き込みはものすごく遅い。WindowsであればDigilentのSerial Flash Utilityを使ったほうがお手軽のようだ。そのへんのまとめが発売元の掲示板にあって参考になる。

0 件のコメント:

コメントを投稿