pynq 祭り: pmod のプログラミング

Post on 12-Apr-2017

682 Views

Category:

Technology

5 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Pmod のプログラミング( 有 ) シンビー

PYNQ 祭り 2017/3/4

自己紹介

著者です

PYNQ を使うモチベーション• Python で簡単に FPGA を使いたい

Python で簡単に FPGA を使いたい• Python を使う利点– 学習コスト低め– 資料がいっぱい– きれいにかける

• 簡単に !!– L チカも結構ハードル高い• やりたいことは L チカじゃない。

Python で簡単に FPGA を使いたい• FPGA 流行ってきてます?

いいものが手に入りましたぜ

おおこれ

は !!

FPGA 業界の怪しいやり取りの図

PYNQ の I/O• Pmod と Arudino 互換の I/O

Pmod

Arduino 互換

https://forums.xilinx.com/から借用

他のボードにも Pmod

http://store.digilentinc.com/ から借用

Pmod ってなに?• Peripheral modules らしい• ピン数の違うものがある

http://store.digilentinc.com/pmod-modules/から借用

PYNQ の Pmod

123456

789101112

基板上の配置も規約で決まっています

Digilent-Pmod_Interface_Specification.pdfから抜粋

Pmod 対応の機器• とりあえずいろいろ買ってみる ( 無目的に )

12Pin のSD カード用6 pin の I2S

Audio Out

6pin/12pin の Pmod は PYNQ で使用可能だが

Audio Outあるじゃん

Audio Out:I2S は PYNQ のデザインでサポートされていないようだSD の Pmod も対応されていない

FPGA だから工夫すれば使えます !! 純粋なソフトウェアの人はすぐに使えない。使いたくない

もう少し買ってみる

I2C の温度センサ I2C のなにか

I2C は 8pin の Pmod だった

FPGA だから工夫すれば使えます !! 純粋なソフトウェアの人はすぐに使えない。使いたくない

Digilent-Pmod_Interface_Specification.pdf

念のために PYNQ のデザイン確認

I2C 使えるような気がする

8pin をどうさしたらいいかわからない 純粋なソフトウェアの人はすぐに使えない。使いたくない

じゃすぐに使える Pmod って何よ?• SPI

• GPIO

UART とかモータとかもあるみたいだ。手元にないから確認できない。

Digilent-Pmod_Interface_Specification.pdf

GPIO

16進のキーパッド

HP 16 C アゲイン !!

Wikipedia から

Ambient Light Sensor(SPI)

なんかのセンサー何に使うか不明

OLED(SPI)

128 x 32 Pixel グラフィック表示可能

詳しい使い方は FPGA マガジン No.16 みてねPYNQ じゃないけど

おまけ定規も買ってみた(なくしたので画像はウェブから)

http://store.digilentinc.com/digilent-pcb-ruler/

ただの無駄遣い報告になっていませんか? 心配するな。今から使う。3/2( 木 ) AM 0:28 記す

無駄使いの報告なら実はまだまだある

Jupyter だからすぐに使えるpynq というホスト名

Samba で名前解決をしているただし、 IP 直接の方が安定している。

いろいろサンプルが“すぐ”使える

ALS のサンプル発見

ALS のサンプル

当然 Python で書かれている

とりあえずシャットダウンたぶん、活性挿抜はできない

ソフト屋さんはこういうところを慎重にしよう取り扱いを間違えると100 万超の CPU を瞬殺することも

装着するPMODBをつかう

12 ピンの上に装着

Python のコードを実行ボタンをクリックすることで順次実行

実行中は [*] マーク終了すると [1] などの数字

Mathmatica 風

結果をグラフ化できる

部屋の電気オン部屋の電気オフ

ALS は照明などの周りの明るさを感知するセンサーだった

TeX とかとも連携できるらしいぞ

後始末動作中

クリックで終了

Python としてのポイント

FPGA のバイナリをダウンロードPmod_ALS を

PMODB に

センサーから読み込む

一気にはやって一気に儲けている人の特徴

「 Python で簡単に FPGA を使いたい」のポイント• 誰かがつくった FPGA のバイナリを使用– ビットストリーム?←きにしない

• 誰かがつくった Python のライブラリを使用– Pmod_ASL (PYNQ で標準に用意されている )

• 目的に集中– だって「やりたいことは L チカじゃない。」

ちまちまとフルスクラッチ

OLED も使う

OLED もライブラリがあらかじめある

チャレンジ

物理的にかちあって直接は装着できず

マニュアルも見ずに書き始める

Python のシンタックスエラーを教えてくれる

そもそもライブラリがない

Pmod_GPIO なんてライブラリはない

Pmod_IO を使う

Pmod_IO を使うとなんとなく GPIO をアクセスできているようだ

達成できず (時間切れ )

Verilog のコードは見つけた

でも「やりたいことは それじゃない。」

ここまでのまとめALS ライブラリあり 〇 つかえたOLED ライブラリあり 〇 つかえたI2C ライブラリあり △ 物理的にコネクタ干渉キーパッド ライブラリ無し (GPIO はあ

る )

× 断念I2S ライブラリ無し × Audio Out を使おう

そういえば Arduino 互換のピンがある

Arudino 互換

よくみるとちょっと違う

気にしないことにする (調べてないだけ )

手元にあった Vocaloid のシールドをつけてみた

装着しただけ。出来そうだったけど PYNQ の UART のボーレートが9600 固定でうまく通信できず

Python で何がしたい?• 過去の無駄遣いの悔いを改めたい• IoT?• Deep Learning?

ただし特定の技術にロックはされたくないVer

ilog 書きたくない

回路図をみたくない

Python で何がしたい?• 過去の無駄遣いの悔いを改めたい• IoT?• Deep Learning?

ただし特定の技術にロックはされたくないVer

ilog 書きたくない

回路図をみたくない

PYNQ (FPGA) はRaspberry PI や Arduino と何が違う?

PYNQ vs Raspberry PI

• PYNQ • Raspberry PI

ARM SoCARM SoC FPGA

u-boot & Linuxu-boot & Linux

Linux Driver Linux Driver

Python Python

やりたいこと やりたいこと

値段とか消費電力とか入手性とかを無視して、ソフト的にざっくりと比較コミュニティの大きさ(情報の入りやすさ)もだいぶ違うけど、、、

FPGA の優位性• PYNQ • Raspberry PI

ARM SoCARM SoC FPGA

u-boot & Linuxu-boot & Linux

Linux Driver Linux Driver

Python Python

やりたいこと やりたいこと ここをつくると優位性あり

FPGA は難しい• PYNQ • Raspberry PI

ARM SoCARM SoC FPGA

u-boot & Linuxu-boot & Linux

Linux Driver Linux Driver

Python Python

やりたいこと やりたいこと

この辺は難しすぎてつくれん !!

だったら高位合成だ !!

• Vivado HLS/SDSoC• 高位合成の友の会– Polyphony– Veriloggen– Neon Light + IROHA– Synthesijer– Sigboost– Synverll

C/C++(Xilinx 純正 )

Python の高位合成Python の高位合成独自言語の高位合成

Java の高位合成

たぶんプレゼンテーションはこの辺で時間切れのはず

プロの音楽家用の高位合成LLVM を使った高位合成

:Python による高位合成• Polyphony– Python から Verilog 生成– HDL 知識必要なし– オープンソース

ここからは若干手前味噌な CM が含まれています。

広告

つかってみる ~その 1~L チカも簡単

つかってみる ~その 2~Jupyter からも使えたよ

http://qiita.com/ryos36/items/56ff8270674b0d0c72b8

つかってみる ~その 3~SPIもほらこのとおり

Vivado にも読み込めた

Polyphony を使うと

ARM SoC FPGA

Python

やりたいことやりたいことの大半がPython で可能

Polyphony のこれから• チュートリアルの充実– polyphony.tech という ドメインも取得した

• 早稲田大学で講演するよ• CNN への対応– Deep Learning やるよ !!

おしまい

top related