PYNQ で fibonacci (完結編)

前回までのあらすじ Polyphony で高位合成をして fib.py を verilog に落とし、ついでにインタフェース情報も JSON で吐き出したものを yml に(python で)書き直し、それを手で書き直したものをつかい vivado のシミュレーションに成功。さらに IPXACT 化し…

polyphony + msgpack-rpc を試す(なんかシミュレーションはうまくいきましたよ変)

自動生成の json とか yml とかに間違いが いろいろ自動生成に間違いがありインタフェース名がまずかったようで、そこをなおしたら動いた。 以前より性能がよくなっているじゃん。def fib じゃなくて def fibonacci にすべきだったんだね。 とりあえずは手で…

Polyphony + msgpack-rpc をつかってみる(未達成編)

Python base の高位合成と msgpack-rpc をつかって処理をやってみようという話 元記事は フィボナッチを求める回路をPolyphonyとMessagePack-RPCでFPGAに実装してみた(シミュレーション編) - Qiita あと、PYNQ 祭りの資料 Pynq祭り資料 msgpack-rpc を使うモ…

Python の Parser

訳があって Python の Parser をしらべていたら、Python のコードがかなり整理されていることに気が付いた。文法もどうやら、adsl という形でちゃんと定義されている。ソース内(https://github.com/python/cpython)には Grammar/Grammar というファイルと Pa…

cygwin を更新したら、、、vim の動きが変わりましたよ

毎度のことだが、cygwin を更新したら、デフォルトの vim の動きが変わってしまった。 /etc/vimrc を読むらしい。 勝手に以前に編集した(直前に編集した)場所に戻るようになってしまった。 これが原因らしいよ。 if has("autocmd") augroup fedora autocmd…

Polyphony の開発の位置づけ

とりあえず master が clone されることが多いので stable 版になります。いまは 2.1.0。 最新版は branch を切って開発。現時点で 0.3.0 です。 pip3 でインストールされるのは現時点で 2.2.0 です。整理は必要ですが、現時点ではこんな感じ。あー自分のメ…

Polyphony で tests suite を試す。

Polyphony で tests suite を試す方法を記します。 Linux とか cygwin とか まず Python 3 の環境 + pip3 の環境をいれてください。ubuntu なら apt-get でインストールできます。 > sudo apt-get install python3-pipその後 pip3 でインストール > sudo pip…

Polyphony で SPI

Vivado HLS でいろいろ試していたのですが、結局、この手のは Python で書いて、Polyphony で Verilog に落とすことにしました。polyphony のバージョンは 0.3.0 を使用。 GitHub - ktok07b6/polyphony: Polyphony is Python based High-Level Synthesis com…

hls::stream + axiu + SDSoC の実験

SDSoC (2016.2) のサンプルで pacektize して minmax を使うものがある。Xilinx/SDSoC/2016.2/samples/platforms/zc702_axis_io/samples/streamこれに自分の stream を差し込んでみた。xilinx のサンプルは ap_axiu を直接つかっていて hls::stream を使って…

Yocto に関するメモ

Linux Kernel において .config がどのようにつくられるか?Yocto は特殊なことをしているようだ。Yocto 的には普通みたいだけど。Linux の Kernel を構築するときよく使われる手法は次みたいな感じ。 make ARCH=arm xilinx_zynq_defconfig昔は「make の使い…

sigboost のために DAC 購入

zynq + DAC できますかね?これで。 たとえば、Perfume の右チャンネルだけとりだしてフィルターかけて、リズム取り出すとかね。それにクオンタイズするように MIDI を再生するとか。妄想だけど。

sigboost で go!

MAX が生成したスクリプト(というのかどうかしらない)を高位合成して Zynq の FPGA に展開して MIDI の楽器、あるいはエフェクターになるという素晴らしい製品の sigboost 。 音楽は私の専門じゃなくてわからないけど、これは面白い。 とりあえず、今の、Kis…

Polyphony : Python によるコンパイラ

GitHub - ktok07b6/polyphony: Polyphony is Python based High-Level Synthesis compiler.とりあえず本家から fork してみる。っていうか、本家って言っても隣で K 君が開発してるんだけどね。なにやら SSA Book なるものを読んでいて、開発の時なんだかす…

Min Caml コンパイラ その4

一向に Min Caml にたどり着かない。 今日は予備知識The Essence of Compiling with Continuations https://slang.soe.ucsc.edu/cormac/papers/pldi93.pdf何やら有益なことが書いてあるらしい。どういうわけか、誰かが(大和谷さんという人)が和訳していた…

Zybo で Jupyter + PYNQ のソース を動かす。

Zybo でも PYNQ で採用しているシステムが動いた。gpio と HDMI_OUT はできた。HDMI_IN は出来なかった。環境が悪いのか、どっかでしくじったのかは不明。以下、作業備忘録 PYNQ の base.tcl から Vivado で合成(この時点では PYNQ のシステム) デザインか…

Min Caml コンパイラ その3

引き続き、コンパイラの社内研究会開催。ざっくりと概要は読み終わった。K 正規化とα変換で SSA と同等なことが達成ているのではないかと。A 正規化はインラインが楽。でもインラインしないなら、結局 K 正規化しないといけなさそう。HLS ではクロージャ変換…

PYNQ のデザインを合成してみた

2016.1 ようだったが、無理やり 2016.2 に変えて合成してみた。結構時間がかかると思ったら、単純なデザインではなかった。その上、なぜかタイミングエラーですが。気にせず、先に進みます。右下には audio や iop1 iop2 io3 というブロックがあります。iop …

Min Caml コンパイラ その2

速攻MinCamlコンパイラ概説 をみればいいだけだったりして。ML の解説まで書いてある。 あと OCaml の参考書としては「プログラミング in OCaml」という本を読んでいる。Kindle版はあるが、紙の本の方は絶版だ。いい本だけに残念。「MinCamlはMLのサブセット…

Kiss4 の環境作り

Kiss4 という Zynq のボードのために、環境作り。Yocto で環境を作っている。krogoth という branch を使用。 poky meta-xilinx meta-openembedded と zybo からぱくった meta-kiss4 まちがえて meta-openembedded の branch を master にしたら、 python-db…

Mini Caml コンパイラ その1

github.comここにある pdf をみながら、社内でコンパイラ(型推論)の勉強会を開く。 http://esumii.github.io/min-caml/jpaper.pdf いま、見たら tutorial-minicaml.doc なんてのがあった。最初から躓くよね。「単相性」ってなによ。K くんの指摘で「多相型が…

Docker + WordPress 試してみた

Docker を試してみた。FreeBSD の jail みたいなものと理解している。というより、技術的なものは一切理解せずに使っている。 Docker のインストール qiita.com この辺のを見てインストールした。単に Docker からシェルプロを wget して(記事の中では curl …

vivado の dbg_hub ではまったのでメモ

Vivado で波形を見ようと mark debug したときにはまったのでそのメモ。やろうとしたことは AXI Stream の波形を見ようとしていた。AXI Stream のクロックは Zynq から供給される。なので、そのクロックに合わせて Setup Debug を設定した。しかし、bit stre…

SSLv3 のエラーだが apache.conf で解決

SSL を導入して通常のブラウザからはうまく https が見えるのだが、Smart HTTP(git-http-backend) 経由で Eclipse から import しようとするとエラーが出る。 [Wed Jul 06 15:01:32.119075 2016] [ssl:info] [pid 11614] [client 192.xxx.xxx.xxx:63694] AH0…

g++ あやまったリンクをした際の残骸

あやまったリンクをした際の残骸 記録として残してある。 reent.c void *_impure_ptr; newlib のリエントラントな構造を保持するための大域変数。 newlib 内の実装に必要。 libstdc++ を --use-newlib でコンパイルすると、exception の unwind に この変数…

C++ を embedded な環境でつかう

結局、素の C++ を使うのがベスト。うっかりすると素ではなくていろんなものに依存するので注意。たとえば arm-xilinx-linux-gnueabi-gcc/g++ これは当然、Linux 環境に依存する。だから単純に printf とかすると Linux の /usr/include/stdio.h の printf …

ARM の EABI とか newlib とか

あまりまとまっていないけど最近の成果をメモ。わすれちゃうからね。Xilinx の SDK 用の gcc。gdb だけ再コンパイルしようとしたけどだめだった。もう全部コンパイルしないといけないみたい。結構めんどくさい。とはいえ、シェルプロがあるようなのでそれを…

usb_modeswitch と FS01BU

FS01BU は普通に USB Host につなぐと 1c9e:98ff で Mass Storage と認識される。usb-modeswitch を使うとモードを変えることが出来る。usb_modeswitch の本家からusb-modeswitch-data をとってくると 1c9e:98ff のデータがある。それを使う。 > usb_modeswi…

メモ:DNS の設定で警告

権威DNSサーバーの設定不備による情報流出の危険性と設定の再確認について(2016年1月12日公開) jprs.jp から警告を受けたのでoptions に allow-transfer を追加 allow-transfer { 192.168.0.XX; };セカンダリだけにトランスファをするのが正しいらしい。

FS01BUからSIMカードが外せなかった、、、

検索すると FS01BUからSIMカードが外せなかったので、分解して取り出す – まつぼ x Web がひかかった。ここまでわかれば分解しなくても外せそう。ということで、ノートを切って隙間に差し込むと nanosim のひっかかりがなくなり、ちゃんと外せました。分解し…

CPS のメモ

CPS で APPLY が出てくることろで、割り込みをチェックして、割り込みルーチンに飛ばす。そして、その中でレジスタの切り替えとコンテキストの切り替えをすれば、VM 上でうまくマルチタスクが出来そう。割り込み性能が落ちる。がそれはそれ、そもそも VM で …