Successfully reported this slideshow.

PYNQ 祭り: Pmod のプログラミング

5

Share

Upcoming SlideShare
PYNQ祭りLT todotani
PYNQ祭りLT todotani
Loading in …3
×
1 of 56
1 of 56

PYNQ 祭り: Pmod のプログラミング

5

Share

Download to read offline

PYNQ 祭りで発表した:Pmod をつかってみたという報告。Python による高位合成の Polyphony の話題も少し。

PYNQ 祭りで発表した:Pmod をつかってみたという報告。Python による高位合成の Polyphony の話題も少し。

More Related Content

Related Books

Free with a 14 day trial from Scribd

See all

PYNQ 祭り: Pmod のプログラミング

  1. 1. Pmod のプログラミング (有)シンビー PYNQ 祭り 2017/3/4
  2. 2. 自己紹介 著者です
  3. 3. PYNQ を使うモチベーション • Python で簡単に FPGA を使いたい
  4. 4. Python で簡単に FPGA を使いたい • Python を使う利点 – 学習コスト低め – 資料がいっぱい – きれいにかける • 簡単に!! – Lチカも結構ハードル高い • やりたいことは Lチカじゃない。
  5. 5. Python で簡単に FPGA を使いたい • FPGA 流行ってきてます?
  6. 6. PYNQ の • Pmod と Arudino 互換の I/O Pmod Arduino 互換 https://forums.xilinx.com/ から借用
  7. 7. 他のボードにも Pmod http://store.digilentinc.com/から借用
  8. 8. Pmod ってなに? • Peripheral modules らしい • ピン数の違うものがある http://store.digilentinc.com/pmod-modules/ から借用
  9. 9. PYNQ の Pmod 123456 789101112
  10. 10. 基板上の配置も 規約で決まっています Digilent-Pmod_Interface_Specification.pdf から抜粋
  11. 11. Pmod 対応の機器 • とりあえずいろいろ買ってみる(無目的に) 12Pin の SD カード用 6pin の I2S Audio Out
  12. 12. 6pin/12pin のPmodはPYNQ で 使用可能だが Audio Out あるじゃん Audio Out:I2S は PYNQ のデザインでサポートされていないようだ SD の Pmod も対応されていない FPGA だから工夫すれば使えます!! 純粋なソフトウェアの人はすぐに使えない。 使いたくない
  13. 13. もう少し買ってみる I2C の 温度センサ I2C の なにか
  14. 14. I2C は 8pin の Pmod だった FPGA だから工夫すれば使えます!! 純粋なソフトウェアの人はすぐに使えない。 使いたくない Digilent-Pmod_Interface_Specification.pdf
  15. 15. 念のために PYNQ のデザイン確認 I2C 使えるような 気がする 8pin をどうさしたらいいかわからない 純粋なソフトウェアの人はすぐに使えない。 使いたくない
  16. 16. じゃすぐに使える Pmod って何よ? • SPI • GPIO UART とかモータとかもあるみたいだ。 手元にないから確認できない。 Digilent-Pmod_Interface_Specification.pdf
  17. 17. GPIO 16進のキーパッド HP 16C アゲイン!! Wikipedia から
  18. 18. Ambient Light Sensor(SPI) なんかのセンサー 何に使うか不明
  19. 19. OLED(SPI) 128 x 32 Pixel グラフィック表示可能 詳しい使い方は FPGA マガジン No.16 みてね PYNQ じゃないけど
  20. 20. おまけ 定規も買ってみた (なくしたので画像はウェブから) http://store.digilentinc.com/digilent-pcb-ruler/ ただの無駄遣い報告になっていませんか? 心配するな。今から使う。 3/2(木) AM 0:28 記す
  21. 21. 無駄使いの報告なら実は まだまだある
  22. 22. Jupyter だからすぐに使える pynq という ホスト名 Samba で名前解決 をしている ただし、IP 直接の方 が安定している。
  23. 23. いろいろサンプルが“すぐ”使える ALS のサンプル発見
  24. 24. ALS のサンプル 当然 Python で 書かれている
  25. 25. とりあえずシャットダウン たぶん、活性挿抜 はできない ソフト屋さんは こういうところを 慎重にしよう 取り扱いを間違えると 100万超のCPUを 瞬殺することも
  26. 26. 装着する PMODB をつかう 12ピンの上に装着
  27. 27. Python のコードを実行 ボタンをクリックす ることで順次実行 実行中は [*] マーク 終了すると[1] などの数字 Mathmatica 風
  28. 28. 結果をグラフ化できる 部屋の電気 オン 部屋の電気 オフ ALS は照明などの周りの明るさを感知するセンサーだった TeX とかとも 連携できるらしいぞ
  29. 29. 後始末 動作中 クリックで 終了
  30. 30. Python としてのポイント FPGA のバイナ リをダウンロード Pmod_ALS を PMODB に センサーから 読み込む
  31. 31. 一気にはやって 一気に儲けている人の特徴 「Python で簡単に FPGA を使いたい」のポイント • 誰かがつくったFPGA のバイナリを使用 – ビットストリーム?←きにしない • 誰かがつくったPython のライブラリを使用 – Pmod_ASL (PYNQ で標準に用意されている) • 目的に集中 – だって「やりたいことは Lチカじゃない。」 ちまちまと フルスクラッチ
  32. 32. OLED も使う OLED もライブラリが あらかじめある
  33. 33. チャレンジ 物理的にかちあって 直接は装着できず
  34. 34. マニュアルも見ずに書き始める Python のシンタックスエラー を教えてくれる
  35. 35. そもそもライブラリがない Pmod_GPIO なんて ライブラリはない
  36. 36. Pmod_IO を使う Pmod_IO を使うと なんとなく GPIO をアクセス できているようだ
  37. 37. 達成できず(時間切れ)
  38. 38. Verilog のコードは見つけた でも「やりたいことは それじゃない。」
  39. 39. ここまでのまとめ ALS ライブラリあり 〇 つかえた OLED ライブラリあり 〇 つかえた I2C ライブラリあり △ 物理的にコネクタ干渉 キーパッド ライブラリ無し(GPIOはある) × 断念 I2S ライブラリ無し × Audio Out を使おう
  40. 40. そういえば Arduino互換のピンがある Arudino 互換
  41. 41. よくみるとちょっと違う 気にしないことにする(調べてないだけ)
  42. 42. 手元にあったVocaloid のシールドを つけてみた 装着しただけ。出来そうだったけど PYNQ の UART のボーレートが 9600 固定でうまく通信できず
  43. 43. Python で何がしたい? • 過去の無駄遣いの悔いを改めたい • IoT? • Deep Learning? ただし特定の技術にロックはされたくない
  44. 44. Python で何がしたい? • 過去の無駄遣いの悔いを改めたい • IoT? • Deep Learning? ただし特定の技術にロックはされたくない PYNQ (FPGA) は Raspberry PI や Arduino と 何が違う?
  45. 45. PYNQ vs Raspberry PI • PYNQ • Raspberry PI ARM SoCARM SoC FPGA u-boot & Linuxu-boot & Linux Linux Driver Linux Driver Python Python やりたいこと やりたいこと 値段とか消費電力とか入手性とかを無視して、ソフト的にざっくりと比較 コミュニティの大きさ(情報の入りやすさ)もだいぶ違うけど、、、
  46. 46. FPGA の優位性 • PYNQ • Raspberry PI ARM SoCARM SoC FPGA u-boot & Linuxu-boot & Linux Linux Driver Linux Driver Python Python やりたいこと やりたいこと ここを つくると 優位性あり
  47. 47. FPGA は難しい • PYNQ • Raspberry PI ARM SoCARM SoC FPGA u-boot & Linuxu-boot & Linux Linux Driver Linux Driver Python Python やりたいこと やりたいこと この辺は難し すぎて つくれん!!
  48. 48. だったら高位合成だ!! • Vivado HLS/SDSoC • 高位合成の友の会 – Polyphony – Veriloggen – Neon Light + IROHA – Synthesijer – Sigboost – Synverll C/C++(Xilinx 純正) Python の高位合成 Python の高位合成 独自言語の高位合成 Javaの高位合成 たぶんプレゼンテーションはこの辺で時間切れのはず プロの音楽家用の高位合成 LLVMを使った高位合成
  49. 49. :Python による高位合成 • Polyphony – Python から Verilog 生成 – HDL 知識必要なし – オープンソース ここからは若干手前味噌なCMが含まれています。 広告
  50. 50. つかってみる ~その1~ Lチカ も簡単
  51. 51. つかってみる ~その2~ Jupyter から も使えたよ http://qiita.com/ryos36/items/56ff8270674b0d0c72b8
  52. 52. つかってみる ~その3~ SPI もほらこのと おり
  53. 53. Vivado にも読み込めた
  54. 54. Polyphony を使うと ARM SoC FPGA Python やりたいこと やりたいことの 大半が Python で可能
  55. 55. Polyphony のこれから • チュートリアルの充実 – polyphony.tech という ドメインも取得した • 早稲田大学で講演するよ • CNN への対応 – Deep Learning やるよ!!
  56. 56. おしまい

×