PYNQに関して誤認識が更に広まっているようだけどもあれは★ただの★「ARM搭載型FPGAチップ」ボードとデモンストレーション用のLinux、Jupyter環境が提供されているだけで、別にPYNQ自体が(現時点で)Pythonからの高位合成をサポートしているわけじゃないからな。
2017-02-01 11:04:15PYNQでできること「ここにFPGAがある。このFPGAに出来合いのビットストリーム(ファームウェア)ファイルを書き込んで、このアドレスにこういう書き込みをするとLED点灯させられる。でも面倒じゃろ?ほら、Jupyterで実行したら同等操作ができるようにしておいたぞ」
2017-02-01 11:05:21それでもPYNQで有り難いのはJupyterから操作できるようにするために、FPGA側のデモンストレーション用回路に対するドライバ・ソフトウェアがPythonモジュールで用意されていること。これだけでHDMIが扱える hdmi=HDMI('in') hdmi.start()
2017-02-01 11:07:16PYNQにはHDMIのIN/OUT端子があっても、別にこれは標準でLinuxのフレームバッファドライバとあわせて動くように作られているわけではない。なので、GPUなし(自分で回路作ればFBとして使えそう)、RTCなし、USBポート1個、FPGA有りのラスパイだと思えばいい
2017-02-01 11:09:18DNN関連でPython->C->HDLと高位合成できるという記事が最近出回っているけども、あれは一週間でファミコンエミュレータをFPGAに実装するようなちょースキル高い人が「だれでもすぐできる」的に書いてあるだけで、今の時点で普通の人に available な訳じゃないからな。
2017-02-01 11:10:18PYNQでPythonコードをハードウェア化できるような記事をQiitaにあげている人もいるけど、別にPYNQ上じゃなくても手元のWindows/Mac PCでPythonコードを特定ツールに食わせたら、別途検証が必要なVerilog HDLコードを吐くという所でとまっている
2017-02-01 11:12:17あの記事はPYNQに搭載されているXilinx ZYNQチップでPS(ARMプロセッサ)とPL(FPGAロジック部分)を接続する所までの面倒どころかその回路をZYNQ向けに論理合成するまでの手順すらカバーしていなくてただFPGA上のCPUで言語コンバーター動かしたってだけだからな
2017-02-01 11:13:38ソフトウェア屋にとってPYNQに独自回路を作り込もうとすると現時点ではSDSoCというツールを使うのが現実的だけども、このSDSoCというのは正式にはPYNQボードには対応していないのである程度工夫が必要。色々努力して自力で動かせる人がぽろぽろ出てきている程度の状態。
2017-02-01 11:15:17ソフトウェア屋が何も考えずにFPGA上にCソースからロジックへのオフロードを試したいんだったら素直にDigilent ZedboardやZYBOとSDx(SDSoC)を組み合わせてC言語ソース内の特定関数を自動的にHDLに変換させてSDカードイメージ作らせるのが一番簡単
2017-02-01 11:16:18ちなみにPYNQのHDMIコネクタにHDMI信号入力すると、いまデモ用に出ているupstreamのレポジトリのHDLやddでSDカードに書き込めるデモ用イメージでは、絶対に動かないから。私(もしくは他の人)が手元で修正しているIPを使わないと絶対動かないから。
2017-02-01 11:19:27ChainerPaintじゃないけどもPYNQはPYNQで間違いが間違いを呼んでどんどん現実と世の中のイメージにギャップができているように感じる。
2017-02-01 11:25:29CPUからFPGAへのオフロードして処理を速くしたい派はDRAMが16bit接続のPYNQでもがくよりも、32bit接続になっているZYBO試したほうがいいよ。まじで。クロックあたりのバンド幅2倍やで。SDxでも現時点でサポートされてるし。
2017-02-01 11:28:28ところでFPGAにのっければ本当に速くなるかってのはきちんと考えたほうがいい。FPGAパッケージ内にあるメモリは数百KB〜数十MB程度のSRAMだし大容量RAMを使いたいようなケースだとほんときっついぞ。FPGA内にデータ流し込んで、そのまま変換機っぽく受け取れるのが理想。
2017-02-01 11:35:12どう考えたってターンアラウンドタイムや開発所要期間などソフトウェアのほうが全然はやいので、ソフトウェアレベルでアルゴリズムや命令構成を追い込んだ上でニーズにマッチしない処理をFPGAにもっていく発想でやらんと、たぶん、いつまでたっても目的達成できないぞ。
2017-02-01 11:37:12もうひとつの用途は、PYNQにのっているZYNQのようなARM搭載FPGAは、普通のCPUでは処理できないようなI/Oモジュールをポン付けできる。これは現時点で量産になっているIntelプロセッサにはできない。そもそもソフトウェア系の人はこの必要性を発想しないと思うけども。
2017-02-01 11:41:30先日後輩に聞かれて話したんだけどFPGAの使い方って2種類あると思うんだよね。ひとつめが、ソフトウェア業界でよく語られがちな「CPUで処理すると遅い処理をハードウェアに」。ただ3GHz越CPUに対してせいぜい数百MHzのFPGAはパイプラインで並列化ではじめてメリットでてくる
2017-02-01 11:40:10Intel CPUにHDMIキャプチャ搭載しようとしても無理だが、ZYNQなら、工夫でHDMIキャプチャー&HDMIスプリッター搭載のLinuxが動くARM CPUが作れる。そこそこの性能のCPUにインターフェース部分を後付けできるのは楽しいぞ。Intelと性能で戦う必要もない
2017-02-01 11:42:57