XilinxのFPGA評価ボードを購入して動かしてみました。
最新のSpartan-7が搭載されて、カメラやHDMIと多くのIFと接続できるボードです。
開発環境の構築からFPGAの書き込み方法まで分かりやすく紹介します。
XilinxのFPGAの評価ボードを購入してみた。Spartan7に入門!
XilinxのFPGAの評価ボードを購入しました!
ボードメーカーは「Seeed」で、型式は「Spartan Edge Accelerator Board」です。
最新のFPGAの「Spartan7」が搭載されています。
実際に開発環境(Vivado)を構築して、VerilogでLチカまで確認しました。
Vivadoのインストールから、FPGAの書き込みまで詳細の手順を紹介します。
XilinxのFPGAを選んでみる
以前に下記記事で「Intel(旧Altera)」製のFPGAの動作テストを行いました。
FPGA入門用おすすめ評価ボード 初心者向けの始め方・使い方
今回は別の大手メーカである「Xilinx」製のFPGAの評価ボードの使い方を紹介します。
最近のXilinxのFPGAの選択肢は多くあります。
FPGA単体の「7シリーズ」、CPUと一体になっている「Zynq」などがあります。
7シリーズのスペック順としては「Spartan7<Artix7<Kintex-7<Virtex-7」となります。
FPGAの入門用としては一番低コストのSpartan7でも、基本的には問題ないと思われます。
ちなみに今回使用したのは「Spartan7」の中でも一番容量が小さい「XC7S15」です。
個人のテストレベルならば十分に動作できています。
FPGAからHDMIディスプレイに画像出力する方法も紹介しています。(リンク先はこちら)
Spartan7の評価ボードだとArty S7が有名処
Spartan7だとArty S7が一番メジャーな評価ボードだと思います。
DigilentというXilinxの製品を多く扱っているベンダー製で安心できるボードです。
1万~2万程度で購入でき、USB経由で簡単にFPGAをプログラミングできます。
FPGA初心者は有名な評価ボードを購入した方がベター
今回筆者は有名なArty S7ではなく、別メーカのFPGAの評価ボードを購入しました。
メーカーは「Seeed」で、型式は「Spartan Edge Accelerator Board」です。
機能・IFが多く搭載されており、色々と遊べると考えたためです。(公式のURLはこちら)
本当にFPGAが初めての方は少しハードルが高いかもしれません。
FPGA初心者の方は有名処の評価ボードを購入した方が良い理由を紹介します。
結局コストはそこまで変わらない
今回使用したボード単体としては約5000円以下で購入可能で、Arty S7より安く購入できます。
しかし基本的にUSB接続でFPGAには直接プログラミングはできません。
Xilinx専用のFPGAの接続ケーブルが欲しくなり、結果的にコストは変わらなかったです。
Arty S7などのDigilent製のボードは特殊なICを使っているのでUSBから直接書き込めます。
今回の評価ボードもかなり特殊な方法ですがUSBから書き込むことが可能です。
下記記事をご参考お願い致します。(リンク先はこちら)
また今回の評価ボードは中国からの輸送費も掛かっています。
もし実際に購入を検討する方は下記記事を参考にお願いします。
結局1万~2万程度の有名な評価ボードを購入するのとほぼ同等になってしまいました。
評価ボードの情報が少ない
有名処でない評価ボードを購入すると、ネットでの情報が非常に少なくなります。
FPGAの入門では躓く所が多いので、初心者にとって結構足枷になります。
もちろん今回の評価ボードに日本語の丁寧な説明書などはありません。
英語か中国語の情報はそれなりにありました。参考になったURLは下記です。
技適の対応が必要なケースもある
今回のFPGAボードもですが無線機能が付いているものがあります。(ESP32が搭載されていました)
必要に応じて技適の対応を取る必要があります。
正式に日本の手続きで取られて、技適認証されているものならば特に対応は必要有りません。
しかし未認証で使う分には、自己責任で総務省に技適の特例制度の申請をする必要があります。
今回筆者も下記記事のようにネットで申請しました。
JTAGの配線も必要なケースがあり
今回の評価ボードでFPGAのプログラミングをする上ではXilinxの専用ケーブルを使います。
但し今回の評価ボードでは直接は接続できずジャンパー線を飛ばす必要がありました。
ジャンパー接続は毎回するのは結構面倒です。
Arty S7のようにUSB1本で接続できた方が楽かと思います。
今回の配線含めて、XillinxのFPGAのJTAGケーブルに関してはまた別記事で紹介します。
FPGAの評価ボードは用途・目的にあったものをおすすめします
FPGAの評価ボードは有名メーカから海外の無名なものまで数多くあります。
また各FPGAの評価ボードでコスト・機能で特徴があります。
「入門用」なのか、「何か目的」があるのかで購入すべき評価ボードは違ってきます。
もしFPGAが初めてで「入門用」の目的ではArty-S7のような有名処のボードが良いと考えます。
FPGAで画像処理を安く始めてみたい方におすすめ
筆者が使用した「Spartan Edge Accelerator Board」はカメラ・HDMIのIFが搭載されています。
そのため「FPGAで画像処理を安く初めてみたい」方におすすめするボードです。
簡単な画像入力・画像出力のFPGA設計が試すことができます。
SUGOi(SeeedJP UG Online)情報交換会で紹介させてもらいました
今回の評価ボードをSeeedJP User Groupの情報交換会で紹介させていただきました。
XilinxのFPGAの評価ボードでも面白い製品である旨を説明しました。
その際の発表資料は下記となっています。よろしければ一緒にご覧ください。
XilinxのFPGAの開発環境 Vivadoをインストールする
使う評価ボードは色々ありますが、FPGAの開発ステップとしてはどれでも基本同じです。
XillinxのFPGAの開発環境のインストールします。「Vivado」というソフトです。
無料版(Vivado HL WebPACK)をインストール可能です。
インストーラーをダウンロードする
まずはインストーラーをXilinxのHPからダウンロードします。(リンク先はこちら)
Xilinxのアカウントを所持していない場合は、最初に登録が必要です。
必要箇所を記入してアカウントを作成します。その後ダウンロードできるようになります。
インストーラーを実行する
インストーラーを実行して、「NEXT」を押して進めていきます。
アカウント作成時に決定したユーザーIDとパスワードを入力する箇所があります。
また直ぐにインストールするか、ダウンロードのファイルを一度保存するか選択できます。
ダウンロードのファイルを残す場合、デフォルトの設定で容量が「30GB」ほど必要でした。
さらにインストールで「20GB~30GB」ほど使います。
PCの容量は予め余裕をもって確保しておくようにしましょう。
Vivado HL WebPACKをインストールします
インストーラーを進めると、何をインストールするか選択します。
「Vivado」を選択します。
その次にVivadoの何をインストールかを選択します。
無料版の「Vivado HL WebPACK」を選択します。
ツールやデバイスを選択もできますが、基本的にはデフォルト設定で大丈夫です。
後は基本的に「Next」を押していけばインストールが終了します。
デスクトップの「Vivado」のアイコンをダブルクリックします。
「Vivado」と「Vivado HLS」の2つが出来ますが、今回は「Vivado」を起動します。
無事XilinxのFPGAの開発環境を起動することができました。
Vivadoの使い方。Verilogを簡単に書いてみる。
Vivadoを使って簡単にFPGAのプログラミングをしてみます。
あくまで筆者の一例ですが、基本的には他の評価ボードでも同じ手順のはずです。
今回は評価ボードの定番であるLチカ(SWを押してLEDを点灯)させます
Vivadoでプロジェクトを作成する
まずはプロジェクトを作成します。「Create Project」を選択して「Next」をクリックします
タブの「File」⇒「Project」⇒「New」でも大丈夫です。
次にプロジェクトの名前とフォルダ場所を決定します。
「Create Project…」はチェック入れておいた方が楽です。フォルダが自動で作られます。
自由に決めてもらえれば構いません。「Next」で進めます。
プロジェクトタイプに関しては「RTL Project」を選択します。
新規の場合はAdd Sourcesも特に何も選ばず「Next」を選択すればOKです。
※既にFPGAのプログラムがある場合はこの時点でも入れれます。(後でも可)
Add Constraintsも新規は特に何も選ばず「Next」を選択します。
※既にピン配置の設定などのファイルがある場合に使います。(後でも可)
Default Partで使用するFPGAの選択を行います。
各評価ボードに記載されているFPGAの型番を選べばOKです。
今回の評価ボードでは「xc7s15ftgb196-1」を選択します。
(今回使う評価ボードの英語のWikiに記載がありました。リンク先はこちら)
どの評価ボードでも使用する型番の記載はあるはずですので、確認をお願いします。
あとは「Summary」で「Finish」を選択すればプロジェクトが完成するはずです。
VivadoでVerilogを書いてみる
プロジェクトを作成できたら、VerilogでFPGAのプログラムを作成します。
(FPGAの言語にはVHDLやVerilogなどが多数あり、選択できます)
「Add Sources」を選択して真ん中の「Add or create design sources」を選択します。
その後「Create File」をクリックすると、何の言語でFPGAをプログラムするのか確認されます。
今回は「Verilog」で選択してファイル名を決めます。
(もしVHDLで書きたい場合は「VHDL」で設定します)
その後の「Define Module」INPUT、OUTPUTのポートの定義が可能です。
※特にここで定義しなくても、後からVerilogに直接記載が可能です
今回は評価ボード内のクロック、SW2個、LED2個、SW2個を使います。
今回はINPUT(入力)でCLK,SW1,SW2、OUTPUT(出力)でLED1,LED2を定義しました。
プロジェクトの「Sources」にファイルが作成されます。
「~~.v」のファイルを開くと先ほど定義したポート名が既に入っています。
Verilogの記述の仕方に関しては概要だけ記載します。
ポートの宣言をして、回路の記述をしていきます。
今回の評価ボードではSW・LEDが2つあるので、下記のようにプログラムしました。
・入力SW1は「1」のとき、出力LED1「1」
・入力SW2は「1」のとき、出力LED2「0」
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
module test( input CLK, input SW1, input SW2, output reg LED1, output reg LED2 ); always @(posedge CLK)begin if(SW1) LED1 <= 1'b1; else LED1 <= 1'b0; if(SW2) LED2 <= 1'b0; else LED2 <= 1'b1; end endmodule |
Vivadoでピン配置のxdcファイルを作成する
Verilogのプログラムは書き終わりましたら、次は制約ファイル(.xdc)を作成します。
制約ファイルによりFPGAのピン配置・信号レベルなどを割り当てします。
FPGAの評価ボードの回路図を確認する
まず評価ボードの「スイッチ」と「LED」、また「FPGAのクロック」のピン配置を確認します。
基本的に各評価ボードの回路図はマニュアル・Wikiなどに記載されています。
(今回の評価ボードの回路図が載っているWikiの英語のリンク先はこちら。)
回路図の概略イメージ図と記載すると下記形でした。
あくまで今回の例のイメージ図のため、詳細は各評価ボードの回路図で確認をお願いします
・スイッチ…3.3VのプルアップでFPGA(C3,M4)に接続
・LED…LEDがFPGA(J1,A13)に接続
・FPGAのクロック…3.3Vの発振器100MHzからFPGA(H4)に接続
ピン配置・信号レベルを制約ファイルに記述する
ピン配置が分かりましたら、制約ファイル(.xdc)を記述します。
「Add Sources」から「Add or create constrains」を選択します。
「Create File」を選択して、デフォルトの「XDC」でファイル名を決めればOKです。
ファイル作成後はxdcのファイルに記述すれば大丈夫です。
制約ファイルの詳細の書き方は細かい設定含めると色々ありますので省略します。
また簡単な記載方法に関しては別記事で紹介したいと思います。
今回は各SW・LED・クロックが「3.3V」で「何処のピン」を使うかを定義しています
1 2 3 4 5 6 7 8 9 10 |
set_property IOSTANDARD LVCMOS33 [get_ports CLK] set_property IOSTANDARD LVCMOS33 [get_ports SW1] set_property IOSTANDARD LVCMOS33 [get_ports SW2] set_property IOSTANDARD LVCMOS33 [get_ports LED1] set_property IOSTANDARD LVCMOS33 [get_ports LED2] set_property PACKAGE_PIN H4 [get_ports CLK] set_property PACKAGE_PIN C3 [get_ports SW1] set_property PACKAGE_PIN M4 [get_ports SW2] set_property PACKAGE_PIN J1 [get_ports LED1] set_property PACKAGE_PIN A13 [get_ports LED2] |
Vivadoでコンパイルしてみる
本来はシミュレーションなどする必要があるのですが、今回は簡単なテストのため省略します。
Vivadoでコンパイルして。作成したVerilog・制約ファイルが問題ないか確認します。
「Generate Bitstream」を選びます。ポップアップが出ますが気にせずOKを押して進めます。
もう一度、論理合成や配線の実行を聞かれますがデフォルトでOKで進めます。
暫く待つとコンパイル成功した場合には「~successfully completed」と表示されます。
選択子がありますが、いったんキャンセルを押してもらえれば大丈夫です。
VivadoからFPGAに書き込む(コンフィグレーション)
FPGA評価ボードにプログラムを書き込みます。(コンフィグレーションとも呼ばれます)
各評価ボードへのケーブル接続方法に関しては各マニュアルを参考ください。
今回はUSB-JTAGケーブル+ジャンパーで対応しています。
JTAG-USBケーブルの詳細に関しては下記記事を参考ください(リンク先はこちら)
正しくケーブルを接続した後、評価ボードの電源を入れます。
その後「Open Target」を選択して「Auto Connect」を選びます。
その後「Program Device」⇒「Program」を選べばFPGAに書き込まれます。
FPGAでLED点滅のテストしてみる
プログラムがFPGAに無事書き込まれたので、動作テストを行います
Verilogのプログラム通りかを動作確認
何もSWを押していないときは緑色LEDのみ点灯します。仕様通りでOKです。
(SWはプルアップされているため、押されていないとONになります)
- SW1_ON⇒LED1(緑)_ON
- SW2_ON⇒LED1(赤)_OFF
SW1のみ押している場合は緑赤LEDの両方が消灯します。仕様通りでOKです。
- SW1_OFF⇒LED1(緑)_OFF
- SW2_ON⇒LED1(赤)_OFF
SW2のみ押している場合は緑赤LEDの両方が点灯します。仕様通りでOKです。
- SW1_ON⇒LED1(緑)_ON
- SW2_OFF⇒LED1(赤)_ON
FPGAに書き込みからテストまでの動画
プログラム書き込み後の実際の動作に関しては下記動画が一番分かりやすいかと思います。
プログラム書き込み前後含めて紹介しています。
まとめ
今回はXilinxのFPGAの使い方に関して紹介させていただきました。
記事をまとめますと下記になります。
XilinxのFPGAの入門用ボードとしてはArty S7でも大丈夫です。
また今回の少し通好みのボードの「Spartan Edge Accelerator Board」を選らんでもOKです。
ぜひ皆さまもXilinxの評価ボードを購入してFPGAを始めてみて下さい。
次の記事ではFPGAからHDMIのディスプレイに画像出力しています。
よろしければ一緒にご覧ください(リンク先はこちら)
コメント
貴重は情報ありがとうございます。
私も先日購入して少しづつ進めております。
一点ご質問です。
SW1,2がFPGA(C3,C4)に接続と記載しておりますが、C3, M4ではないでしょうか?
お世話になっております。管理人のミソジです。
コメントありがとうございました。
ご指摘の通り誤記です。C3,M4に修正させていただきました。
どうかよろしくお願いいたします。
失礼します。
Vivado 2020.3でやっているのですが、Default Partの中にxc7s15ftgb196-1がありません。
何を選択したら良いでしょうか?
また、Generate Bitstreamの項目が無く、Generate Device Imageになっています。
こちらも何を選択したら良いでしょうか?
別ページで解説されている.bitファイルが生成されず、microSDに書き込めません。
質問が多く、すみません。
よろしくお願いします。
連投失礼します。
2020.3インストーラだと出来なくて、2020.2インストーラを使い、出来ました。
もし宜しければ2020.3だと出来ない、等の記載があると今後僕みたいにつまずかないかも⋯と思いました。
[…] エンジニアの電気屋さん XilinxのFPGAの評価ボードを購入してみた。 […]