Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

15.06.27 実録 ソフトウェア開発者が FPGAを独習した最初の3歩@RTLを語る会(9)

10,983 views

Published on

http://www.zusaar.com/event/14047005 RTLを語る会(9)でのLT資料です

Published in: Technology
  • Dating for everyone is here: ❤❤❤ http://bit.ly/36cXjBY ❤❤❤
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Dating direct: ❤❤❤ http://bit.ly/36cXjBY ❤❤❤
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

15.06.27 実録 ソフトウェア開発者が FPGAを独習した最初の3歩@RTLを語る会(9)

  1. 1. 実録 ソフトウェア開発者が FPGAを独習した最初の3歩 RTLを語る会(9) 2015/06/27 @muo_jp
  2. 2. 自己紹介(@muo_jp) ソフトウェア系 Webな人(Java, ActionScript2/3, JavaScript, PHP, MySQL)→Androidプログラマ(Java)→Android/iOSなひ と(Java, Objective-C, C++, C#) 仕事: スクールアイドル系プログラマ 好きな言語: C#
  3. 3. ソフトウェア開発者が FPGAを独習する最初の3歩
  4. 4. 第-2歩
  5. 5. 第-2歩: 暗黒の時代 サーバにFPGA統合を妄想していた-2010ぐらい 2010年にDE0を買った Hello, world!的なものから先にほぼ進まなかった 学び: VHDL流派の人々とVerilog流派の人々、入り乱れて るので両方読めないと話が始まらなさそう
  6. 6. 第-1歩
  7. 7. 第-1歩: 文明のきざし 2013-2014付近。ZedBoardにすごい未来を感じる あんまりお金かけたくないな、と思って2014年の夏にMicroZed を購入した ZedBoardのチュートリアルを軽くやっていけばどうにかなる じゃろ→圧倒的なI/O力差で挫折 学び: 初心者はMicroZedよりも大人しくZedBoard買ったほうが いい。結局JTAGケーブル買ったら大差ない値段
  8. 8. 第0歩
  9. 9. 第0歩: 型を学ぶ ARM Cortex-A9×2! ZynqでワンチップLinux on FPGA (Design Wave) – 2014/11/12 出た当初はこの本高いなぁ、Web上にある情報でなんとかならないかなぁ、と思っ ていた→諦めて買った ほんと多彩なトピックをカバーしてる。結果は http://www.muo.jp/2015/02/arm- cortex-a92-zynqlinux-on-fpga150.html に書いた(誤植多かったので別途まとめた) 学び: ツール群の扱い方がざっくりと身につかないと、他のことが頭に入ってこな い。まずはこういう本に従ってひと通りを体験するの大事(しかしISEベース...!)
  10. 10. 学び: Zynq方面の雰囲気 「ARM無しのFPGA単体で使いたいんですけど?」→「Artixでも使えば^^」 Linuxを使うか否かは別として、チュートリアル的にARMは普通使うぽい http://news.mynavi.jp/articles/2012/02/22/zynq-7020/002.html ARM側の電力削りたければ100MHzでも10MHzでも好きにクロック落とせ Cortex-R系はひとまずやる気ない(後にMPSoCではCortex-A53ベースと Cortex-R5ベースの2ラインに割れたのも面白いところ) RTOSが必要ならSMPではなくAMP構成にしてARM側の1コアを低クロッ ク動作させて使え
  11. 11. 第0.5歩 MicroZedにはGPIOが足りないので自分で補う
  12. 12. パーツ集め MicroZedの拡張ヘッダは100pinsの高周波回路用 DigiKeyに売っていたので輸入 さすがにいきなり基板起こすのは大変なのでユニバー サル化の変換基板を探した→サンハヤトのがあった
  13. 13. 形になった ハンダが荒い
  14. 14. 学び: やっぱりMicroZedよりも ZedBoardを買ったほうがいい
  15. 15. 今のところテスタを当てて 電圧測ってキャッキャしてます
  16. 16. 第0.75歩
  17. 17. 第0.75歩: Verilogに馴染む Verilog-HDL基礎文法最速マスター を読む 「CPUの創りかた」で紹介されるIC群を作ろうというざっくり した話 わかりやすい。怖がらずにVerilogを読めるようになる HDL設計入門 - Verilog HDL キーワードを漏らさず知れる 学び: 構文的な話はWebでいいかな、という読みで大体okだっ た。実践的なVerilogの書き方についての本欲しい
  18. 18. 第1歩
  19. 19. 第1歩: 公式リソースで学ぶ http://zedboard.org/sites/default/files/documentations/ MicroZed_GettingStarted_v1_1.pdf QSPIやmicroSDからLinuxを起動し、PS側に生えてい るGPIOを叩いてLED/スイッチ制御を試した 学び: Railsの「5分でこれ出来るよ!!」という甘い レールに乗ってる感覚。ここと実用物は直結しない
  20. 20. 第2歩
  21. 21. 第2歩: 続 公式リソースで学 ぶ Avnetのチュートリアル(PDF)に従ってARM側にELFのバイ ナリを転送して実行する Xilinx SDKへ出した先は普通のCで嬉しい!となる。hw connect armやると本当にCPU止まるところで感動。な お、まだHDL出てこない 学び: Xilinx SDKへ出力後の叩き方は普通にCなのでとて も助かる。名前付けも参考になる。Zynq本も生きてくる
  22. 22. 第3歩
  23. 23. 第3歩: PS側からLチカする Linux上だと何かと大変というのが前段で分かってい るのでCPUを生で触る 第2歩でXilinxのヘッダやサンプル実装をあちこち眺め た分、MIOの叩き方イメージなどが湧いていた 試行錯誤
  24. 24. MicroZed_HW_UG_v1_6.pdfより
  25. 25. 第3歩: サンプルであっさり 解決 XilinxのZynq向けBSP、今のところとても素直な動きをするので 好み Xilinx SDKから普通にブレークポイント止まるしメモリダンプも 効くので、AndroidのNDKより楽 MIOのバンク(0-15, 16-53)とXGpioPsのバンク配置が違うのは 学び: ようやく「試行錯誤すればどうにかゴールへ り着ける」 感じになってきた。後はXilinxのanswersでどうにかなりそう
  26. 26. 目下やっていること
  27. 27. ARMv8機能のバックポート 時代はARMv8 Zynq UltraScale+ MPSoCあたりだとCortex-A53積ん でいるの、よいですね ZedBoardシリーズはCortex-A9系、当然ARMv7 ARMv7でもAESアクセラが欲しい!
  28. 28. C#からの高位合成 Vivado HLS側でほどよく他言語利用の枠組みを提供してほし い・・・ LLVM-backend相当の作りになっていてほしい(情報を集め中) C#をC++に変換するアプローチで良いのかも 自社が出しているOSSの一部にC#→C++変換ツールがたまたま ある このアプローチだと、sourcemapっぽいのは必須
  29. 29. まとめ 素人はMicroZedよりもZedBoardを買うべき Vivadoベースの入門書整備されるとよさそう RTLの独習はできるけれど実用面の壁ありそう VivadoHLSにC#コード食べさせたい

×