第1回 FPGA設計のスタートラインにつく(ソフトウェアのインストールとLEDチカチカ)
それにつけても オイラーの公式
\(e^{i\theta}=\cos\theta+i\sin\theta\)は重要です

内 容


このドキュメントは http://icrus.org/fpga_atlys_design/ 上にあります.

1-1. ソフトウェアのインストール

本日はISEのインストールと『LEDチカチカ』を実行します.

これらは,前準備段階です.インストール及び接続が終了して,LEDチカチカプログラムを入力し,コンパイル→FPGAボードデータ転送を行い,LEDチカチカが動作した状態がスタートラインです.本日はスタートラインまでの準備体操といったところです.

以下を参考にして,各自でダウンロード・インストールを行って下さい


Xilinx社ダウンロードサイト

http://japan.xilinx.com/products/design-tools/ise-design-suite/ise-webpack.htm

(Xilinx社開発ソフトウェアISE WebPACK紹介ページ)

http://japan.xilinx.com/support/download/index.html/content/xilinx/ja/downloadNav/design-tools.html

から

Vendor 14.7 で

『 Windows 用フル インストーラー (TAR/GZIP - 6.18GB)』をダウンロードする.

登録IDでログオンする(id:t??y?? pw:h**4)

(ダウンロード時にログインを要求されますので各自でXilinxサイトにユーザ登録して下さい)

得られたファイルXilinx_ISE_DS_Win_14.7_1015_1.tar

解凍してディレクトリに展開しておく.


http://www.digilentinc.com/ より

左側のProductsから

Software→Adept 2 から(Adept 2 for Windows:)

Adept 2.16.1 System, 32/64-bit Windows

をダウンロードして得られたファイル

digilent.adept.system_v2.16.1.exe

必要なファイル

  1. Xilinx_ISE_DS_Win_14.7_1015_1 (ディレクトリ)
  2. digilent.adept.system_v2.16.1.exe (インストールファイル)

ISEを各自のコンピュータにインストールします

64ビット版は条件により動かない場合があるので,今回は32ビット版をインストールします.

以下のディレクトリを辿って

Xilinx_ISE_DS_Win_14.7_1015_1\bin\nt

の下の

xsetup.exe

をダブルクリックで起動します.

以下ではダイアログ表示とクリックするところ中心に示します
(ウィルス対策ソフトが働いている場合は一時的にOFFにするとインストールが速いです)(OSのバージョンやインストール済みのプログラムの関係でインストール手順に若干の違いが生じる場合があります)(詳しく記述していますが特に難しいインストールでは内ので経験豊富な人は経験にしたがい自己責任でやってもらって構いません.動かない場合はアンインストール→再インストールしてください.筆者の経験上インストールが悪さしてOSが可笑しくなることはないようです)

ISE 14.7 Installer

Welcom [Next>]


Accept License Agreements (1 of 2)

□I accept and agree to the terms and conditions above

□I also aceept and agree to the following terms and conditions

にνマーク [Next>]


Accept License Agreements (2of 2)

□I accept and agree to the terms and conditions above

にνマーク [Next>]


Select Products to Install

Editon Listの下

○ ISE WebPACK

を選ぶ [Next>]


Select Installation Options

そのまま [Next>]


Select Destination Directory

そのまま [Next>]


Installation Options Summary

そのまま [Install]


インストールには,しばらく時間がかかる.(15分間?)

(コンピュータウィルスチェックソフトが動作していると時間がかかる)


次からの記述はOSやインストール履歴などによって途中で出現する場合がある

Microsoft Visual C++ 2008 Redistributalbe Setup

[Next>]

Licence Terms

□I have read and accept the license terms.

にνマーク [Install>]

Setup Complete

[Finish]


プログラム互換性アシスタント

WipPcap installer CACE technologies

→[ヘルプ情報を使用せずにプログラムを実行する(R)]


WipPcap 4.1.1 Setup

[Next>]

Welcom to the WinPcap 4.1.1 Setup Wizard

[Next>]

License Agreement

[I Agree]

Installation options

[Install]

Completing the WinPcap 4.1.1 Setup wizard

[Finish]


Xilinx Software Setup

Driver installation falled. Please check the Install

Directory/.xinstall/install.log file for more information on the cause of the installation failure.

[OK]


Cable Driver Installer

Please disconnect all Xillinx Platform cable USB or Evalution Platform

JTAG cables from this system before continuing.

[OK]


Windowsセキュリティ

このデバイスソフトウェアをインストールしますか?

名前:Jungo

発売元:Jungo LTD

□”Jungo LTD”からのソフトウェアを常に信頼する

のVをはずす.

[インストール]


Windowsセキュリティ

このデバイスソフトウェアをインストールしますか?

名前:Xilinx,Inc

発売元:Xilinx

□”Xilinx”からのソフトウェアを常に信頼する

のVをはずす.

[インストール]


場合によって出現するダイアログはここまで.


Xilinx License Configuration Manager

が起動する

○ Get Free Vivado/ISE WebPack liense/

を選び [Next]

ダイアログボックスが表示されるので [Connet Now]

ログインが継続している場合はユーザのプロパティが表示されるので [Next]

それ以外は登録したユーザIDとパスワードで再ログインする

ライセンスファイルの取得

Certificate Based Licenses で

□ ISE WebPACK License

をVチェックして

[Generate Node-Locked License]をクリック


ダイアログが表示されるので

3COMMENTS に

自分のIDなどメモを入力して [Next]


4REVIEW LICENSE REQUEST を確認して [Next]

成功する登録したメールアドレスに、Xilinx.lic(ライセンスファイル)がメールに添付されて送られてくる


Web上での表示


Congratulations 
Your new license file has been successfully generated and e-mailed to ???@m.dendai.ac.jp. You can also view the license file under the Manage Licenses tab.
Please add this sender (xilinx.notification@entitlenow.com) to your address book.

表示ダイアログ


License File DetailsNode License
Host ID: ANY

ProductsISE WebPACK License (No Charge): 1 seats

ライセンスの設定

メールで送られてきたXilinx.licを

C:\Xilinx\14.7

の下にコピーする


Xilinx license Configuration Managerの

Acquire a Licenseタグから

○ Locate Existing License(s) を 選択し [Next]

[Load License...] をクリックしコピーしたXilinx.licを選ぶ

License installation was successful.が表示されたら [OK] クリック


ウィンドウ下方の[Refresh]をクリックし

Expiration Dateが変わったことを確認して [Close]


ISE 14.7 Installerを

[Finish] で終了する (まだ閉じていなかった場合)

参考 Xilinxライセンスマネジャーの位置

ライセンスマネジャーが起動しなかったときや閉じたときは以下より起動できる

C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Xilinx Design Tools\ISE Design Suite 14.7\Accessories

Windows7は スタート → すべてのプログラム → Xilinx Design Tools → ISE Design Suite 14.7 → Accessories → Manage Xilinx Licenses

Digilent Adeptのインストール

ダウンロード済みのファイル digilent.adept.system_v2.16.1.exe をダブルクリック実行してインストール


ユーザーアカウント制御

次のプログラムにこのコンピュータへの変更を許可しますか?

[はい(Y)]


Digilent Adept Setup

Welcom

[Next>]


License Agreement

[I Agree]


Choose Components

そのままで

[Next>]


Shortcut options

□create Quck Launch shortcuts?

にνマーク

[Next>]


Choose Install Location

そのままで

[Install]


Installation Complete

[Next>]


Completing the Digilent Adept Setup Wizard

そのまま

[Finish]


説明PDFファイルが立ち上がるが終了しておく.


Digilent Adeptが立ち上がることを確認して,それを終了する.


以上でインストール完了.

ショートカットの作成

デスクトップ上にISE Design suite 14.7のショートカットがない場合は

c:\Xilinx\14.7\ISE_DS\ISE\bin\nt

の下の

ise.exeのショートカットをデスクトップに作る.

 ←このショートカットを使って,Xilinx開発環境の"ISE"を立ち上げる


デスクトップ上にAdeptのショートカットがない場合は

c:\Program files(x86)\digilent\adept

の下の

Adept.exeのショートカットをデスクトップ上に作る.

 ←このショートカットを使って,回路データ転送用ソフト"Adept"を立ち上げる.

ソフトウェア説明

 ISEはFPGA用の開発環境を提供します.基本的な部分は無料で利用できます.この環境でプログラミングを行い,デバッグしてFPGA用の回路データを作成します.作成した回路データはAdeptを使ってUSBケーブルを通してATLYSに転送します.転送が完了しますと自動的に回路が動作を始めます.インストールが完了したら早速,「LEDチカチカ」を動作させましょうか.

 プログラムは簡単です.しかしこのプログラムにより結構複雑な回路がISE により自動的に生成されます.実際にFPGA上に作成される回路図を見ることも出来ます. ここで使うアプリケーションソフトは次の通りです

  1. ISE (Xilinx社製 FPGAメーカー)
    FPGA用開発環境
  2. Adept(Digilent社製 FPGA評価ボードメーカー)
    ATLYS用データ転送ユーティリティー

1-2. LEDチカチカ(システムテスト)

簡単Verilogプログラム「LEDチカチカ」の作成手順

① ISEを起動

デスクトップ上のISE Design Suite 14.7をダブルクリック

② File→New Project

New Project Wizardが立ち上がる

Name: test

(注意 Location:をc:\Users\***\Documents\verilogなどのように決めておくとプログラムを見失わない.)

[Next]

Project Settings

Family → Spartan6

Device → XC6SLX45

Package → CSG324

Preterred Language → Verilog

[Next]→[Finish]

③ Project → New source

Select source type : Verilog Module

Filename : test

[Next]→[Next]→[Finish]

test.vのひな形が作成される

④ Project → New source

Select Source type : Implementation Constraints File

File Name : test

[Next]→[Finish]

test.ucfのひな形が作成される

⑤ いったんここでISEを終了し,再び起動する

ISEのバグのために合成に失敗するのを防ぐために新しいプロジェクトを作成したときはこれを行う.

⑥ ウィンドウ左側のダグでtest.vを開きリスト1を入力しControl + S で保存

"//"以降の記述はコメント文なので入力は任意

先頭の4桁は行番号なので入力しないこと

⑦ ウィンドウ左側のダグでtest.ucfを開きリスト2を入力しControl + S で保存

⑧ ウィンドウ左下のGenerate Programming Fileを右クリック→Rerun All

これで回路の合成が始まる.

この作業には2分程度かかる.

gmaru.png(緑色)が3つ表示されればエラーなく合成完了.

test.bitファイルが出来上がる.

⑨ ATLYSとACアダプタ,ATLYSとパソコン間をUSBケーブルでつなぐ

atlys_tunagi.png

図1 Atlysの接続図

⑩ Adept起動

Adeptアイコンをダブルクリックする.

⑪ [Browse..]でtestフォルダ下のtest.bitを選択し[Program]でファイル転送と実行

成功するとLD0が1秒間隔で点滅する.ここまでうまくいけば,ATLYSやISEの動作チェックは良好である.この回路はATLYSの内部クロック100MHz(1億Hz)を利用するので99,999,999カウントのタイミングで次のカウンタ値を0にセットすることにより1Hzの信号を得る.


*.vファイルはvelilogファイルですので論理をどんどん書いてください.それがそのままFPGA の振る舞いになります.

*.ucfファイルはFPGAチップ と外の世界との接点を指定しますので,どの端子利用するかによって指定が変わります.

リスト1 test.v


000 `timescale 1ns / 1ps
001 ///////////////////////////////////////////////////////////////////////////////
002 // Create Date:    19:25:11 12/24/2012 
003 // Module Name:    test 
004 ///////////////////////////////////////////////////////////////////////////////
005 module test(
006	input wire  clk0,
007	output wire led
008 );
009
010	assign led=c[26];
011	reg[26:0] c=0;
012
013	always @( posedge clk0 )begin
014		if( c==27'd99999999 )
015			c <= 0;
016		else
017			c <= c + 1'b1;
018	end 
019 
020 endmodule

解説

短いプログラムですが,重要な要素が含まれています.解説を読みながらよく理解してください.

  1. 000 シミュレータのための記述です.今回は解説しません.
  2. 005 moduleの開始を宣言します.testがモジュール名です最終的に出来上がる回路データ*.bitファイルはこのモジュール名が使われます.
  3. 006 モジュールの入力ビットです.名前はclk0です.wire(ワイヤ)というプログラム中で変更できない変数です.wireはassign命令で設定します.ワイヤを結線するイメージです.
  4. 007 ledはモジュールの出力です.
  5. 010 ledをcの26番に結線します.
  6. 011 変数cを27ビット(26番〜0番)のレジスタ変数に設定します.0で初期化します.
  7. 013 clk0の立上がりで起動するalwaysブロックを記述します.begin〜endで囲みます.
  8. 014 cが99999999のとき,次のcを0にリセットします.
  9. 017 014の条件が成立しないときは,cを1増加します.
  10. 020 endmoduleでモジュールを終了させます.

リスト2 test.ucf


000 NET "clk0"	LOC = L15;	// CLK
001 NET "led"	LOC = U18;	// LD0

解説

  1. 000 clk0をデバイスのピンL15に接続します.これは,クロック発振器(100MHz)につながります.
  2. 001 ledをデバイスのピンU18に接続します.これはLEDのLD0(右端)につながります.

VerilogHDLによりデザインされた回路(回路図)について

ISEウィンドウ左側のgmaru.png(緑色)表示の一つ上,User Constraintsの下Floorplan Area/IO/Logic(PlanAhead)をダブルクリックし,しばらく(1分弱)待つとPlanAheadが起動する.Schematicタブをクリックすると実際に合成される回路図が表示できる.

ATLYSでの単独起動

ファイルをATLYS上のフラッシュROMに書き込むことで,ファイル転送なしでプログラムを起動できる.単独起動については後に示す.

ココまでの知識を応用する問題

  1. ボード上のLD0とLD1を同期点滅
  2. 周期1秒点滅を周期2秒の点滅に変更
  3. LD0とLD1を反転点滅(ヒント:反転演算は ~ )
  4. LD0を周期1秒,LD1を周期2秒で点滅

参考文献

atlysリファレンスマニュアル https://www.digilentinc.com/Data/Products/ATLYS/Atlys_rm_V2.pdf

VerilogHDL簡易文章書 http://icrus.org/machida/product/verilog.pdf


おつかれさまでした.以上,本日はLEDチカチカまででした.

来週はカウンタと7セグメントLED表示をします.

LEDチカチカが完成しないと次には進めませんので,このモジュールの完成を宿題としますので,解説も理解しながら実行しておいてください.


このドキュメントは http://icrus.org/fpga_atlys_design/ 上にあります.

2015,10,7

ssatoh@

足立工科大学 工学部 情報通信工学科