読者です 読者をやめる 読者になる 読者になる

xorshift

Google Chromeが採用した、擬似乱数生成アルゴリズム「xorshift」の数理 – びりあるの研究ノート開発中のプログラムで動くように書いてみた。長ったらしいのは xor を持っていないから。そもそも、ビット幅が特定できない、、、print もないしなぁ、、、 ((:…

eta(η) reduction

((:fix ((even? (x) (:if (:= x 0) :#t (odd? (:- x 1)))) (odd? (x) (:if (:= x 0) :#t (even? (:- x 1))))) (even? 997))) 典型的な交互に呼び合う非効率であるけど偶数奇数判定機。cps 変換すると (:FIXH ((EVEN? (|sym2| X) (:FIXS ((|sym3| (|sym4|) (:…

cps 変換したものを reorder

Unfortunately, the problem of reordering directed acyclic graphs for optimal register allocation is NP-complete. だそうなので、10 命令でも 10! 回計算しないといけなさそう。ということで、ヒューリスティックな方法で解きます。 (:FIXH ((|:G0| (G…

openocd と sama5d4

ちょっと前進。MEM-AP を探せないとおっしゃっている。MEM-AP がなにかは不明。 Open On-Chip Debugger 0.10.0-dev-00189-g554313b (2016-01-07-23:46) Licensed under GNU GPL v2 For bug reports, read http://openocd.org/doc/doxygen/bugs.html debug_le…

libusb とか

libusb0.1 と libusb1.0 というのが cygwin のぱけーじにあって、どうやら API が違うらしい。作者が同じかどうかもわからない、、、最新の openocd では libusb0.1 はねむいさんのぶろぐによると使わないらしい。libusb1.0 を使いましょう。あと、hidapi と…

OpenOCD を自前でコンパイル

openocd> ./bootstrap + aclocal + libtoolize --automake --copy + autoconf configure.ac:12: error: possibly undefined macro: AC_MSG_WARN If this token and others are legitimate, please use m4_pattern_allow. See the Autoconf documentation. co…

マヨイドーロを解いてみた

マイドーロでもマヨロードでもない。マヨイドーロ。scheme で解いてみた。 (define (myload0) `((Z C B))) (define (myload1) `((Y A 'B) (Y A B 'C B))) (define (myload n) (cond ((= n 0) (myload0)) ((= n 1) (append (myload1) (myload0))) (else (mylo…

git の bare の branch の HEAD の変更

Gitでよく使うコマンドまとめ - Qiitaclone 元の remote bare repository で % git symbolic-ref HEAD refs/heads/XXX しておく

フルスタック

昨日、この本(下のリンク)の作者が J-Wave に出ていた。「先生はお金に執着していなくて、、、」うんぬんかんぬん。ん?それじゃ だめなのでは?と疑問に思 そういえば今年ノーベル賞をとった大村智(益次郎を想起させてで印象が悪いが、、、偏屈で聞かぬ奴…

NETGEAR の ReadyNAS を使う

WD の 3T を2使って ReadyNAS 102 にインストール。最初、HD を入れるときにセットの仕方がわからなくて難儀した。1 でボタンを押すと 2 のコネクタがスライドして外れるようになっている。そして、スライドさせて HD を入れる。まずは DHCP で立ち上げた。…

Dell のなんか脆弱性

Win32/CompromisedCert.Cという脆弱性があるというアラートが Windows 8.1 で表示された。詳細を見ると C:\Program Files\Dell\Dell Foundation Services\Dell.Foundation.Agent.Plugins.eDell.dll C:\Program Files\Dell\Dell Foundation Services\Dell.Fou…

ghdl で ieee 2008

ghdl で numeric_std を使う方法。結論から書くと --std=08 を使う。ghdl のライブラリの下の list は次の通り。 ieee/ Makefile.inc README std/ vital2000/ ieee2008/ mentor/ redist1164/ synopsys/ vital95/普通に ghdl xxx_tb.vhdl とかすると ieee が…

ghdl で Xilinx の unimacro とか

Xilinx の unimacro と unisims を ghdl でコンパイル。ghdl の使い方を 100 % 把握していないのですが、なんとかなった。まず -i で Import ghdl -i --ieee=synopsys --work=unisim unisims/*.vhd ghdl -i --ieee=synopsys --work=unisim unisims/primitive…

ghdl 再び

hanzer/gVHDL · GitHub 昨日失敗した ghdl のコンパイル。上の github のソースをもってきて gcc-4.9.3 を指定するといまのところコンパイルがうまくいっている。 You need to download and untar the sources of gcc version 4.9.2 [do not modify this lin…

ghdl

cygwin で ghdl をコンパイルするも結局できなかった。おそらく 32bit 環境ならできる。 vhdl/ortho-lang.c がコンパイルできなかった。[追記] 最終的にうまくいったryos36.hatenablog.com以下ダメだった記録。cygwin で ada をインストール。gnatmake が動…

C# で画面キャプチャ

画面をキャプチャする: .NET Tips: C#, VB.NET キャプチャーで来た。

gs で png 出力

gs -dNOPAUSE -dBATCH -sDEVICE=pngalpha -sOutputFile="o.png" screen4.epsgs で DEVICE を pngalpha にすると png 出力になることがわかった。png256 とかもあるのか。 http://ghostscript.com/doc/current/Devices.htm なんだ tiff もできるじゃん。とい…

cygwin postscript で漢字

本当は gs なんだけど。 Cygwin + Ghostscript + Windows TrueTypeフォント - you/uni のとおりに ln -s /cygdrive/c/Windows /usr/share/mswin で /usr/share/ghostscript/ver/Resource/Init/cidfmap に追加 /MS-Gothic << /FileType /TrueType /Path (/usr…

chicken scheme + postscript

postscheme というものを使用して scheme で postscript の出力をしてみた。 h8gi/postscheme · GitHub おかげで postscript がわかりかけてきた。SICP の wave は面白い結果を生む。

tinyclos

tinyclos でプログラミングできつつある。 これは楽。純粋な Lisper じゃない私向き。 define-generic は2回呼ぶとそれまでの登録を消してしまうことがわかった。 #;1> (load "test.scm") ; loading test.scm ... ; loading /usr/lib/chicken/7/tinyclos.im…

tinyclos

Scheme でも CLOS が使える。tinyclos 。1992 に Xerox の人が書いている。たぶんThe Art of the Metaobject Protocol の作者。 読んで解説を書いてる人がいる。http://practical-scheme.net/wiliki/wiliki.cgi?Scheme%3ATinyCLOS複雑そうなのに 1000 行に満…

chicken-install

FreeBSD には alloca.h がない。man alloca とすると stdlib.h を必要とすると書いてある。なぜか chicken の readline は alloca.h を include している。そこで > chicken-install -r readline readline/readline-egg.c を編集 > sudo chicken-install -t …

介護保険制度はレンタルが原則

なんで、介護保険制度はレンタルが原則なのか?例えば、うちのばあい amazon で 12,000 円程度で購入できるトイレの手すりを月 2,000 円で借りている。おおむね6カ月でもともとの金額に達する。レンタルは大体こんなもんだ。なぜレンタルが原則なのかは不明…

scheme でもうすこしできた。

(define last-data10b '()) (define count-in 0) (define count-out 0) (define (line-scaler data10b last-flag) ;; (if (= count-in count-out) (assert (null last-data10b))) (print `(,count-in ,count-out)) (let ((new-value12b (if (= count-in coun…

scheme でなんかできた

(define-syntax count-down00 (ir-macro-transformer (lambda (form inject compare?) (let ((data-n (cadr form)) (sp (caddr form)) (body (cdddr form))) (let ((sp-list-rv (list? sp))) (let ((key-word (if sp-list-rv (car sp) sp)) (num (if sp-list…

スクランブルドNRZ

SDI RX の入力はスクランブルドNRZになっている。なぜか、某社の実装がパラレル。いやパラレルでいいのだけど。NRZ なのでシリパラするときにデコードした方がいい気がするぞ。

SDI の xyz を VHDL で書いてみる

SDI の規格の xyz を VHDL で書いてみた。f は P なら常に0になる(I なら交互に 0/1)。 st2018-2-2011.pdf という資料がわかりやすかった。 function create_xyz(f: std_logic; v: std_logic; h: std_logic) return std_logic_vector is variable xyz: std_…

vivado の target_lang

AR# 63564 - 2014.x Vivado IP Flows - In non-project mode my VHDL IP core is being generated as a Verilog IP, why?xpr には Option で TargetLang が VHDL (あるいは Verilog) と書かれている。tcl で制御するには set_property を使う set_property t…

xsdb

xsdb% source lpg.tcl PL AXI slave ports access is not allowed xsdb% mrd 0x43d00000 PL AXI slave ports access is not allowed xsdb% mrd 0x43e00000 43E00000: 00000000 vivado 側でちゃんとアドレス設定しないとアクセス時にガードがかかります。

PolyPhony (Python で高位合成)

Python で高位合成ができるツールを作ってみました。 Introduction of PolyPhony 「もうHDLで複雑な状態マシンを書く必要はありません。」は言い過ぎだと思います。

書評

書評を書き始めた。目標は100冊といいたいけど、まずは10冊。 僕の智となり肉となった

xsdb のキャッシュ

xsdb をつかって eclipse で main で止めて、xsdb の mrd/mwr を使っていたのだが、どうも、キャッシュをみているらしい(ほんとかどうかは不明)。main まで走っているのがまずいのかも。vdma で転送した値がなんかのタイミングで見れたり見れなくなったり…

タイミングのチェック

できれば Vivado の Constrants Wizard を使ってチェックした方がよい。癖のある Wizard だけど、ちゃんとチャックしてくれる。Altera にはもともとあって(たぶん)ここは相当進んでる気がした(つかったことない。ウェブで見ただけ)自分で書いたら、名称に…

tcl

これを機会に xmd から xsdb に変更した。tcl が使える。あと、hw_server で順序を整理してくれるので、ダウンロード中に mrd しても大丈夫。逆に、xsdb でメモリをファイルに落とすなんて分単位でかかることをすると、vivado 側でなにもできなくなる。まぁ…

GTX のクロック

GTX のクロック。Zynq では 4つの GTX がひとつのかたまりになって、PLL が個々についている。加えて qpll なるものが1個ありこれ全部の GTX に供給される。 1.485MHz と 1.485MHz/1.001 の2つを供給して、TX では切り替えられるようにする。RX は qpll を…

AR# 61656 - 2014.2 - Vivado_DRC : (REQP-52) - 「GTXE2_CHANNEL cell gtxe_xx: Use of the GTGREFCLK is reserved for test purposes only. This has the lowest performance of the available clocking methods and can degrade transceiver performance.…

PJTAG

PJTAG through EMIO gives critical warning - Community ForumsPJTAG を EMIO にだすとき、 vivado が間違ったコードを吐き出すみたい。 ##################################################​########################## # PJTAG constraints # ##########…

boards files のパス

2014.4 までは set_param project.boardPartRepoPaths で2015.1 以降は set_param board.repoPaths なめてんのか orz

EMIO にだした SDIO の CLK_FB

Vivado 推論してくれるのはいいけど、すべての外部端子を自動的に作っちゃう。SD に必要なのは SD の端子だけなんだ。(SD 用のチップというのもあるみたい) あと power とその選択もオープンにしたい。PMOD の SD スロットを使うと、power は PMOD の通常の …

むいてねー

「こんなに辛いとは思っていなかった」=>当たり前 「自由がありません」=> 当たり前 Mark Zuckerberg とか Paul Graham だしちゃだめ。別格だから 「失敗します」=> 当たり前 100戦99敗1分お金が動機 => あほです 製品や技術 =>うむむ 社会的影響力 => あほ…

SDIO を EMIO にだす。

Zynq で2つめの SD を EMIO 経由で外側に出すことにした。pmod の SD カードアダプタがあるのでそれを使う。 http://www.digilentinc.com/Products/Detail.cfm?Prod=PMOD-SD だしてみると、SD の端子以上にピンがある。 Xilinx のARに次の記述がある。 AR# …

Linux と RTOS

Linux から RTOS 読んで通信させることができるようになった。スゲー大変。ネットワークじゃないよ。共有メモリを使って2つの CPU Core の通信。

S ビット

MMU の S ビットをオフにしたら CPU0 では 1 を書きこんでいるのに CPU1 では 0 のままであることを確認した。

環境設定

etc//makerules.sysdepend を適切に作る。各 build に のディレクトリを作って Makefile もつくる。include/sys/sysdepend/type-cpu もつくって *.h も読み込まれるように更新cortex-a9 の定義がないからエラーになるけどね。include/tk/sysdepend も対象。

自分のモジュールの登録

いままでやってきたようい asdf で書いておいて、xxx.asd とかファイルを作っておく。そうして ~/quicklisp/local-projects に追加しておけばよい。いたって簡単。Quicklisp で 自前プロジェクトを ql:quickload。 - ほんとのこと知りたいだけなのに。 (ql:r…

quick lisp

windows で sbcl + quick lisp できた。 ==== quicklisp installed ==== To load a system, use: (ql:quickload "system-name") To find systems, use: (ql:system-apropos "term") To load Quicklisp every time you start Lisp, use: (ql:add-to-init-file…

VDMA のデバッグ設定

generic で定義されているもので GUI に対応していないものはここで変更が可能みたいだ。 http://fpga.blog.jp/archives/2014-01-09.html こんなの裏技過ぎてわからないだろう。

uramdisk

Uboot 用のイメージを作る方法 > mkimage -A arm -T ramdisk -C gzip -d ramdisk.image.gz uramdisk.image.gz逆に uramdisk から 普通に ramdisk にしてマウントする方法 > dd if=uramdisk.image.gz bs=64 skip=1 of=ramdisk.image.gz > gunzip ramdisk.imag…

PL330 のアセンブラ

最初、ハンドアセンブルしていた。コンパイラを作ろうとも思ったけど、そこまでする必要もないと思い、gas のマクロでなんちゃってのをつくる。でもって、適当にはできた。 pl330_test_instr: DMAMOV sar, rbuffer DMAMOV dar, 0x7AA00004 //DMAMOV dar, wbu…

axi_rlast のタイミングを arvalid より先立てて長くしてしまって動かなくなるケースがある。1clock 遅れで 再確認した動くソースをコメントアウトして元のつくりに直しても うまく動くことを確認した。 -- if ( axi_araddr( 5 downto 2 ) = "0001" ) then -…