46
46

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

はじめてのUltra96  FPGAのはじめかた(2018~2021年版)

Last updated at Posted at 2018-10-20

#FPGAのはじめかた(2018~2021年版)
zynqmp.jpg

ここ数年、FPGAが話題になることが多くなってきました。マイクロソフトがFPGAを採用した、インテルが巨大FPGAメーカであるアルテラを買収した、機械学習ではFPGAがいいらしい。話題にことつきません。
では、FPGAをやってみたいけど、何処から始めていいの?となると、困ってしまいます。
グーグルでFPGAと検索すると、たくさん情報はあります。FPGAメーカーであるXILINX(ザイリンクス)社、インテル社にはたくさん情報があるけど、何がなんなの?
FPGAをやってみたいけど、何処から始めたらわからない。
よく聞く話です。
多くの情報は、なになに(明言はない)の知識が必要で、その知識のある人向けに書かれているからです。FPGAを仕事としている人さえ、難しいなと思う資料が多いですから。というより、単なる勉強不足かもしれませんが。。。

#おいしいハンバーグが食べたい。
わかりやすい例でハンバーグを食べたいとします。ハンバーグにしたのは私がただ、食いしん坊だからです。
Hamburg_steak.jpg

ハンバーグを食べる方法はいろいろあります。
「びっくりドンキー」「フォルクス」に行けば、お金を払えば、ハンバーグを出してくれて、気軽にハンバーグが食べれます。
いやいや、もっとおいしいハンバーグが食べたい。。という人は、高級ホテルのレストランの何千円、何万円?のハンバーグを頼んでもいいでしょう。とてもおいしい。。。?

お家で食べたい人もいるでしょう。最近コンビニのハンバーグ、おいしいです。下手なお店よりいいのでは?
やっぱりハンバーグはお家で手作りだよね。。という人もいると思います。お肉(ひきにく)とハンバーグの素を買ってきて、混ぜて焼けば、気軽にできます。もうちょっと、おいしいのがいい人は、「クックパッド」においしそうなハンバーグのレシピ掲載しています。
やっぱり作りからにはもっと時間かけておいしいものつくろうよ、、と塊のお肉を買ってきて包丁で細かくたたいて、玉ねぎをみじん切りにして、何時間も炒めて、ワイン使っておいしいソースをつくってこそハンバーグだよね。(ちなみに私はここをやりたいタイプです)
やっぱり、究極のハンバーグ食べたいから、おいしいレストランで、何年か修業して、高級食材買ってきて、作るんだという人もいるでしょう(ナンカチガウ?)

FPGAに話を戻します。
今までのFPGAを使うには(少なくても2013年前の段階では)、少なくても塊のお肉を買って玉ねぎを何時間も炒めて、というレベルの知識と根性?が必要だったのです。今は少し緩和されましたが、それでも使うためには、勉強しないといけない量は多いです。

#Ultra96ボードの紹介
2018年にAVNET(アヴネット)社から、入門用FPGAボードとして、Ultra96ボードが発売されました。
そして、このボードは私の主観的予測ですが、4~5年に一度の入門用FPGAボードとして、取り上げられます。
TNN24070_0.png

Ultra96は XILINX社のFPGAの一つで、Zynq(ジンク) UltraScale+(ウルトラスケールプラス)が使われているFPGAボードです。
CPU付FPGAになりまして、ARM社のCortexーA534,Cortex-R52というCPUにFPGAの機能が一体化されています。

4~5年の一度のFPGA入門ボードと言われる理由は、次ことがあるからです。

  • 旬のデバイスが使われていること
  • 性能のわりに値段が安いこと 
  • メーカーが力をいれていること
  • 情報が多いこと 

Zynq UltraScale+(16nm)はやっと安定供給されてきた感じがあります。それまでは買いたくても、買えなかった。
Ultra96は値段が約3万円。通販サイトで、ここに使われているFPGAデバイス単体の値段が$404ドル、約4万5千円(2018年10月現在)。なぜか、デバイスより安い。
発売元のAVNET社はもちろん、XILINX社、そして、96boardsを通して、ARM社からも紹介されていて、情報も多い感じです。
グーグル検索でUltra96はもうすぐ10万件(2018年10月現在)。Zynq UltraScale+の先行ボードである、ZCU102よりはるかに多く、規格元である96boardsでの検索数に追いつくのでは、、、というぐらいの勢いです。ユーザーからの情報が多いのも特徴です。

こういう条件がそろったボードは爆発的に売れて、情報も一気に増えますね。RaspberryPiは、その典型です。FPGAでは、ZYBOというボード、DE0というボードにそういう現象が見られました。

Ultra96の情報としては、次のところから、見ることができます(英語)
http://zedboard.org/product/ultra96
http://zedboard.org/support/design/24166/156
https://www.96boards.org/product/ultra96/
https://www.96boards.ai/products/ultra96/

また、各個人や法人のホームページ、トレーニングも開催してますので、参照てください。

#Ultra96のはじめかた
Ultra96ボードは市販されています。次のところを参照にしていただければ購入できます。
「はじめてのUltra96 必要なもの」
では、Ultra96は、どの層をターゲットにしているのでしょうか??
ハンバーグでいうと、ハンバーグの素とひき肉を買ってきて、自分で焼いてくる方から、塊の肉をたたいて、何時間も玉ねぎを炒めて、作るあたりを想定しています。
技術的にはパソコンが自由にさわれて、簡単なプログラムが書ける人レベルからの人を考えています。

slid9.png

上の図は2018年6月にXILINX社から出てきた資料の一つです。今後FPGAを使う人として、何処をターゲットにしているかを示しています。
一番下がハードウェア技術者向けです。VerilogやVHDLを使う領域で、(一部C言語やIP)今までFPGAを使ってきた人にはとっかかりやすい領域になります。
真ん中が組み込み向けエンジニアをターゲットにしています。C、C++をターゲットにしていますね。ここで、ARMやLinuxがあります。HLS(高位合成)を使えば、C言語だけで、FPGAを開発できるようになってきています。
一番上にそれぞれの領域のエキスパートの人が対象になります。機械学習の部分もはいります。使う言語がPythonです。え、、FPGAはPythonで動くの?

次の表は、Ultra96でサポートしている言語と、対応ツールです。

ツール Pythonアプリ C言語アプリ C言語、OSドライバー C言語ハードウェア IP,HDL
セルフコンパイル
PYNQ
SDK
PetaLilux  
SDSoC  
Vivado    
HLS    

CPUが入って、Linuxが動くなら、Pythonが動くのは当たり前といえば、当たり前ですがFPGAにわざわざPythonを入れたのは、別の理由があります。
OverRayという仕組みを使い、FPGAの部分を書き換えをPythonで制御できるからです。あらかじめFPGAのデータが必要になりますが、FPGAの高速性をPythonで使えるようになるということです。
FPGAでPythonは、PYNQというフレームワークで実現しております。Qiitaでもいくつか紹介されていますので、PYNQというキーワードで検索してみてください。

Ultra96向けでは次のところで、紹介されています。
https://ultra96-pynq.readthedocs.io/en/latest/
https://github.com/Avnet/Ultra96-PYNQ

もちろん、Pythonだけではなくて、C言語もVerilogもVHDLもできます。

Ultra96ボードを購入してしまったら、すでにある情報をもとに、いろいろ試してみると面白いです。かなりの数のSDカードイメージが公表されており、いろいろ試すことができるようになっています。

##Ultra96と機械学習
FPGAを期待している方には、機械学習をしたいから、と言う方も多いと思います。
すでにUltra96で、機械学習の推論のデモはできており、SDカードイメージも用意されていますので、簡単にどんな具合かを試すことができます。
https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18841949/Zynq+UltraScale+MPSoC+Accelerated+Image+Classification+via+Binary+Neural+Network+TechTip

また、今後Xilinx社のほうからも、機械学習に対しては力を入れることが発表されており、そのターゲットボードとして、Ultra96も期待できる状態になっています。今後FPGAで機械学習を安価にしたい方は、情報収集してみてもいいかもしれません。

#はじめてのUltra96の今後
より多くの方にFPGAを使ってもらうために、Ultra96を通して、情報を流していきたいと思います。
まずは、Qiitaで、Ultra96の情報を、FPGA初心者向けから、そこそこ使えるようになるまで、(塊のお肉でハンバーグを作れるようになるまで)暇を見つけてはご紹介できたらと思います。
また、FPGA勉強会として、実際に手を動かすこともやっています。こちらはUltra96だけとは、限らないのですが、実際に使ってみたら、どうなるだろうと不定期開催を考えています。だいたい土日開催です。
あとは、有料で、AVNET社主催で、毎月定期コースを行っています。Ultra96向けコンテンツを充実する予定ですので、お待ちください。

今すぐ食べたい?いや、使いたいという人もいるでしょう。そのためにオリジナルトレーニングや、コンサルタントも対応しています。有料になりますが、すぐに対応したい方はお声かけください。直接でも対応可能ですし、取引の関係で直接が難しい方も、AVNET、PALTEK、HDLAB各社経由での対応も可能です。

Ultra96ボードを買ってしまったら、結構情報があります。大いに情報と探して、楽しんでみましょう。

#ステーキが食べたい?
ハンバーグではなくて、ステーキがいいんだが、、、、?
Ultra96はFPGAの中でも、小さいデバイスになってしまいました。
なので、ハンバーグで満足しない人もいると思います。はじめてのUltra96シリーズでは残念ながら、ステーキは扱いません。
私も別記事で書くことになると思いますし、すでに優秀な方がいくつか記事を書いていらっしゃいますので、それを参考にしていただければと思います。

ここまで読んでいただきありがとうございました。

46
46
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
46
46

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?