Spartan-3A スタータキット

〜VerilogHDLプログラミング〜


2007/04/17

あなたは 人目のお客様です.

では,いよいよ VerilogHDL を書いてみよう. まずはISE9.1iで新規プロジェクトを作成する.

スイッチをそのままLEDに接続するだけの VerilogHDL を作成する. スイッチやLEDの情報については, Xilinxのページ のSpartan-3Aスタータキットのページの 「Spartan-3A スタータキット ユーザーガイド」(ug330.pdf) を参考にする. これはいまのところ英語版しかないが, Spartan-3Eスタータキットのユーザーガイド(ug230.pdf)ならば, 日本語版(j_ug230.pdf)がある. Spartan-3EスタータキットとSpartan-3Aスタータキットは,ピン配置などは異なるが, 乗っているデバイスはだいたい似ているので,参考にはなる. ただし細かい点は違ったりするので,やはり最終的には ug330.pdf のほうを 見なければならないし,日本語訳もそれほど良くは無い.まあ参考程度だけど, デバイスのだいたいの動きを知りたいときは参考になる.

制約ファイル(Constraints File:どのピンをどの信号に割り当てるかの設定ファイル) は, Xilinxのページ のSpartan-3Aスタータキットのページの リファレンスデザインから, s3astarter.ucf というのがダウンロードできるので,それをそのまま使う. これはISEの Project メニューの Add Source で s3astarter.ucf を追加すればよい.

ただし Constraints File は不要なNETを削除しないと, 論理合成のときにエラーになってしまうようだ. なので不要なNETは全部削除.

とりあえずこんなかんじ.

switch.v
switch.ucf

で,論理合成する.*.bit ファイルを作成する際に, Generate Programming File を実行する前に,右クリックして Properties を選択, Startup Options で Start-Up Clock を JTAG Clock にしておく. (これをしないで CCLK にしたままでも,iMPACTが自動的に JTAG Clock に 変更するので問題は無いが,一応設定しておく)

iMPACTを起動し,メインウインドウで右クリック,Initialize Chain を選択する. 読み込むファイルを聞いてくるので,*.bitファイルを指定する. その後にもうひとつファイルを指定するように要求してくるが無視してCancelする.

(後日談)ファイルを2つ聞いてくるのは,FPGAとフラッシュROMの2つのデバイスが 認識されているから.読み込むファイルを順に聞かれるが,そのときに対象と なっているデバイスは緑色にマークされているので注意.(2007/04/19)

メインウインドウの xc3s700a を右クリック,Program を指定する. ここで Verify のチェックを外しておく.これをしておかないと, なぜか *.msk ファイルが無いと言われて失敗してしまう.

で,FPGAにダウンロード.

うまく動作しているようだ.

スライドスイッチ(ボードの最下端中央)が4つ全部ともONになっているので, LED×8(スライドスイッチのすぐ上)の左4つが点灯している. デモプログラムを動かした直後なので, LCDにメッセージが残ってしまっているけどご愛敬.


スライドスイッチの上下(左からOFF,ON,OFF,ON)に合わせてLEDが点灯している.


押しボタンスイッチを押したところ.左から3番目のLEDが点灯している.


押しボタンスイッチを押したところ.左から2番目のLEDが点灯している.

とりあえず VerilogHDL でプログラミングして,無事に実行させることができた. (HDLでは「プログラミング」とか「実行」とかは言わないのかしら.まあいいや)


メールは kozos(アットマーク)kozos.jp まで