1. basaro_k

    Posted

    basaro_k
Changes in title
+はじめてのUltra96  FPGAのはじめかた(2018~2021年版)
Changes in tags
Changes in body
Source | HTML | Preview
@@ -0,0 +1,114 @@
+#FPGAのはじめかた(2018~2021年度版)
+![zynqmp.jpg](https://qiita-image-store.s3.amazonaws.com/0/299213/6701a5de-cb74-6ebc-c99f-25d6abfcb4b6.jpeg)
+
+ここ数年、FPGAが話題になることが多くなってきました。マイクロソフトがFPGAを採用した、インテルが巨大FPGAメーカであるアルテラを買収した、機械学習ではFPGAがいいらしい。話題にことつきません。
+では、FPGAをやってみたいけど、何処から始めていいの?となると、困ってしまいます。
+グーグルでFPGAと検索すると、たくさん情報はあります。FPGAメーカーであるXILINX(ザイリンクス)社、インテル社にはたくさん情報があるけど、何がなんなの?
+FPGAをやってみたいけど、何処から始めたらわからない。
+よく聞く話です。
+多くの情報は、なになに(明言はない)の知識が必要で、その知識のある人向けに書かれているからです。FPGAを仕事としている人さえ、難しいなと思う資料が多いですから。というより、単なる勉強不足かもしれませんが。。。
+
+#おいしいハンバーグが食べたい。
+わかりやすい例でハンバーグを食べたいとします。ハンバーグにしたのは私がただ、食いしん坊だからです。
+![Hamburg_steak.jpg](https://qiita-image-store.s3.amazonaws.com/0/299213/8da283b0-eec7-623c-8824-61d0f6c94bf1.jpeg)
+
+ハンバーグを食べる方法はいろいろあります。
+「びっくりドンキー」「フォルクス」に行けば、お金を払えば、ハンバーグを出してくれて、気軽にハンバーグが食べれます。
+いやいや、もっとおいしいハンバーグが食べたい。。という人は、高級ホテルのレストランの何千円、何万円?のハンバーグを頼んでもいいでしょう。とてもおいしい。。。?
+
+お家で食べたい人もいるでしょう。最近コンビニのハンバーグ、おいしいです。下手なお店よりいいのでは?
+やっぱりハンバーグはお家で手作りだよね。。という人もいると思います。お肉(ひきにく)とハンバーグの素を買ってきて、混ぜて焼けば、気軽にできます。もうちょっと、おいしいのがいい人は、「クックパッド」においしそうなハンバーグのレシピ掲載しています。
+やっぱり作りからにはもっと時間かけておいしいものつくろうよ、、と塊のお肉を買ってきて包丁で細かくたたいて、玉ねぎをみじん切りにして、何時間も炒めて、ワイン使っておいしいソースをつくってこそハンバーグだよね。(ちなみに私はここをやりたいタイプです)
+やっぱり、究極のハンバーグ食べたいから、おいしいレストランで、何年か修業して、高級食材買ってきて、作るんだという人もいるでしょう(ナンカチガウ?)
+
+FPGAに話を戻します。
+今までのFPGAを使うには(少なくても2013年前の段階では)、少なくても塊のお肉を買って玉ねぎを何時間も炒めて、というレベルの知識と根性?が必要だったのです。今は少し緩和されましたが、それでも使うためには、勉強しないといけない量は多いです。
+
+#Ultra96ボードの紹介
+2018年にAVNET(アヴネット)社から、入門用FPGAボードとして、Ultra96ボードが発売されました。
+そして、このボードは私の主観的予測ですが、4~5年に一度の入門用FPGAボードとして、取り上げられます。
+![TNN24070_0.png](https://qiita-image-store.s3.amazonaws.com/0/299213/1a3659b5-83df-22f9-7503-fcb0affbd79b.png)
+
+Ultra96は XILINX社のFPGAの一つで、[Zynq(ジンク) UltraScale+(ウルトラスケールプラス)](https://japan.xilinx.com/products/silicon-devices/soc/zynq-ultrascale-mpsoc.html)が使われているFPGAボードです。
+CPU付FPGAになりまして、ARM社のCortexーA53*4,Cortex-R5*2というCPUにFPGAの機能が一体化されています。
+
+4~5年の一度のFPGA入門ボードと言われる理由は、次ことがあるからです。
+
+- 旬のデバイスが使われていること
+- 性能のわりに値段が安いこと 
+- メーカーが力をいれていること
+- 情報が多いこと 
+
+こういう条件がそろったボードは爆発的に売れて、情報も一気に増えますね。RaspberryPiは、その典型です。FPGAでは、ZYBOというボード、DE10というボードにそういう現象が見られました。
+
+Ultra96の情報としては、次のところから、見ることができます(英語)
+http://zedboard.org/product/ultra96
+http://zedboard.org/support/design/24166/156
+https://www.96boards.org/product/ultra96/
+
+また、各個人や法人のホームページ、トレーニングも開催してますので、参照てください。
+
+#Ultra96のはじめかた
+Ultra96ボードは市販されています。次のところを参照にしていただければ購入できます。
+[「はじめてのUltra96 必要なもの」](https://qiita.com/basaro_k/items/e5654a0061883afea889)
+では、Ultra96は、どの層をターゲットにしているのでしょうか??
+ハンバーグでいうと、ハンバーグの素とひき肉を買ってきて、自分で焼いてくる方から、塊の肉をたたいて、何時間も玉ねぎを炒めて、作るあたりを想定しています。
+技術的にはパソコンが自由にさわれて、簡単なプログラムが書ける人レベルからの人を考えています。
+
+![slid9.png](https://qiita-image-store.s3.amazonaws.com/0/299213/0eae531a-1193-344f-d2a9-38e1d48c4269.png)
+
+上の図は2018年6月にXILINX社から出てきた資料の一つです。今後FPGAを使う人として、何処をターゲットにしているかを示しています。
+一番下がハードウェア技術者向けです。VerilogやVHDLを使う領域で、(一部C言語やIP)今までFPGAを使ってきた人にはとっかかりやすい領域になります。
+真ん中が組み込み向けエンジニアをターゲットにしています。C、C++をターゲットにしていますね。ここで、ARMやLinuxがありますね、HLS(高位合成)を使えば、CPU言語だけで、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を通して、情報を流していきたいと思います。
+まずは、Qittaで、Ultra96の情報を、FPGA初心者向けから、そこそこ使えるようになるまで、(塊のお肉でハンバーグを作れるようになるまで)暇を見つけてはご紹介できたらと思います。
+また、FPGA勉強会として、実際に手を動かすこともやっています。こちらはUltra96だけとは、限らないのですが、実際に使ってみたら、どうなるだろうと不定期開催を考えています。だいたい土日開催です。
+あとは、有料で、AVNET社主催で、毎月定期コースを行っています。Ultra96向けコンテンツを充実する予定ですので、お待ちください。
+
+今すぐ食べたい?いや、使いたいという人もいるでしょう。そのためにオリジナルトレーニングや、コンサルタントも対応しています。有料になりますが、すぐに対応したい方はお声かけください。直接でも対応可能ですし、取引の関係で直接が難しい方も、AVNET、PALTEK、HDLAB各社経由での対応も可能です。
+
+Ultra96ボードを買ってしまったら、結構情報があります。大いに情報と探して、楽しんでみましょう。
+
+#ステーキが食べたい?
+ハンバーグではなくて、ステーキがいいんだが、、、、?
+Ultra96はFPGAの中でも、小さいデバイスになってしまいました。
+なので、ハンバーグで満足しない人もいると思います。はじめてのUltra96シリーズでは残念ながら、ステーキは扱いません。
+私も別記事で書くことになると思いますし、すでに優秀な方がいくつか記事を書いていらっしゃいますので、それを参考にしていただければと思います。
+
+ここまで読んでいただきありがとうございました。