2005. 1.11 販売代理店リンク追加
2004.12. 2 走り書き
2004. 8.16 公開

Xilinx Spartan3 Starter Kit


 Xilinxが販売しているSpartan3搭載のスターターキットです。

 内容物はサポートページにある通り様々なインターフェースを持ったFPGAボードと、ダウンロードケーブル、電源まで付属していて、パラレルポートを持ったPCさえあれば、FPGAのデザイン作業を一通り行うことが可能です。

 サポートページからは、サンプルや回路図、関連資料等が誰でもダウンロード出来るようになっていて、ユーザーならずとも、いろいろ参考になります。
 特に、「Spartan-3 スタータ キット ボード ユーザー ガイド」には、VGAやPS2のタイミング、キーコード表へのリンクなどの情報が満載でお勧めです。

 値段も$99と破格なので、販売促進が主な目的だと思われます。そのため買えるときに買っておかないと、あっという間に無くなってしまうかもしれません。
 私はメメックジャパン(株)さんから購入しましたが、スポット的に数量限定販売をされているようです。
 その他、国内では、 菱洋エレクトロ(株)、 でも扱われているようです。
 米国Xilinxのオンラインストアでも、日本語版のSpartan3 StartarKitが選択出来ますが、日本から直接購入できるのかどうかは知りません。
 基板とダウンロードケーブルは DIGILENT社製で、こちらからも直接購入できるようですが、基板単品で$99+送料と割高になります。

 完全なる入門者の場合、自分のデザインをボードで実行させるプロセスを収得するのに一苦労なのですが、StarterKitには残念ながらチュートリアルが入ってません。

 無償開発ツールであるWebpackの操作や一連の作業については、FPGA Informationさんがザイリンクス社のwebpackを使ってというところで丁寧に説明されていますので、入門者の方は一読しましょう。
 ただし、古いバージョンで、特に下記の点が異なっている事に注意が必要です。
  1.ピン定義ファイル*.ucfは、プロジェクトに追加する必要がある。
  2.ダウンロードと書き込みの操作方法は現在のバージョンでは大きく違なる。

 その辺を踏まえたうえで、入門者としてのステップを考えてみました。

ステップ1:とりあえず何でもいいから動かす。

 ボード上のコンフィグROMには出荷時デザインが書き込み済で、電源を入れると自己診断プログラム+サンプルが動くと書いてある。
 早速やってみると、VGA画面にボタン、スイッチの表示が出て、7セグメントLEDにも表示、RS232Cにもメッセージが出力されます。
 このデザインを流用すれば、PS2ポートを除く、全ての付属デバイスをすぐにでも手がけることが出来ます。

ステップ2:サンプルのデザインをコンパイルしてダウンロードして実行する。

 出荷時デザインを流用しようと、付属のリソースCDを覗きますがデザインのソースがありません。
 XilinxのサポートページからはROMに書き込むMCSファイルのみがダウンロード可能になってます、なんでだ?
 答えは"EDK 6.2"という有償ツールを使っているからです、ということで、出荷時デザインからはStartできません。

 仕方なく、サポートページから他のサンプルを探します。
 3つが用意されていているうち、EDKを使わない「デジタル クロック PCB モニタ」、「多重化された 7 セグメント表示使用のデジタル クロック」の2つが利用できます
 残念ながら、どちらもPS2キーボードとVGA出力をサポートしません。
 VGAもPS2も難しい物では無いので、インターフェースの解説マニュアルの前に、サンプルを用意してほしい所です。

 Webpackをインストール後、サンプルのプロジェクトを開き、インプリメントして、ダウンロード、実行します。
 ダウンロード実行の場合、起動クロックをJTAGにするのをお忘れ無く
 PicoBlazeコアは、ライセンス承諾の上、別途ダンロードする必要があるようです。

ステップ3:サンプルのデザインを適当に変更して実行する。

 速度を2倍にするとか...適当にやってみましょう。

ステップ4:自前のデザインをゼロから構築して動作させる。

 最初からプロジェクトを立ち上げる場合、ピン配置を定義ファイル(*.ucf)をプロジェクトのTOPデザインに追加するのを必ず忘れないようにします。
 ピン配置ファイルが抜けてしまうと、ピン配置が適当に配置されるため、出力が衝突したりすると、最悪デバイスを壊してしまうことがあります。

 基板上のデバイス全てを使うなら、「MicroBlaze マスター システム」に含まれるsystem.ucfを流用すると、ピン配置ファイルを入力する手間が省けます。
 デザインの定番としては、やはりLED点滅とかでしょうか。
 ボタンを押すと倍速になるとか,,,適当にやってみましょう

 ここでつまずくようなら、動作確認の済んでいるサンプルプロジェクトを流用してデザインしてみましょう。

ステップ5:コンフィグROMに書き込んで、スタンドアロン実行させる。

 注意点としては、デザイン構築時に起動クロックをCCLKに戻すことです。
 また、iMPactによるROM書き込み方法も、直ダウンロードとは操作が異なります。
 iMPactで一旦*.MCSファイルに変換してから、JTAG経由でコンフィグROMに書き込みます。

 ここまでできれば、最低限の作業の流れは分かるはずです。

おまけ1:VerilogHDL用サンプル

 私自身のウォーミングアップとして書いたものです。
 内容としては、
1.VGAに画面出力して、画面右側にカラーバーが表示されます。
2.画面最上行にタイトルを表示
3.PS/2キーボードのスキャンコードを受信して画面に表示
4.7セグメントに1秒のカウンタを表示

ダウンロード:sp3_vsmpl.lzh

 ちなみに、デザインはいい加減で手抜きの限りを尽くしているので、あくまでもサンプルであり、そのまま流用しようなどとは考えないで下さい。

おまけ2:ダウンロードケーブルを流用する。

 スターターキット付属のダウンロードケーブルはJTAG3という一般的なパラレルケーブル3コンパチケーブルです
 価格は$18.95と安価ですが、レベルコンバータ搭載で、回路がJTAGコネクタ側にモールド実装されているため、コンパクトな上、意外に高性能です。
 ピン配置が6ピンと独自なので、6ピン->10ピン変換アダプタを作れば、他のボードにも幅広く使えます。

おまけ3:具体的な使用例
 偽X1にて、クラシック8ビットパソコンを再現しています。