2013-01-01から1年間の記事一覧
なかなか挑発的なタイトルのlsを読まずにプログラマを名乗るな!を読みました。タイトルとは違って、lsの実装を丁寧に説明してあって勉強になりました。lsのソースコードを読みながら、システムコール、アルゴリズム、多言語化等の幅広い話題に触れることがで…
たのしいバイナリの歩き方を読んだので感想を簡単に。 内容 第一章と第二章は、ゆるふわバイナリ入門です。ツールを使って、逆アセ、メモリダンプを行いながら、アセンブラの雰囲気をつかんでいきます。第三章のバッファオーバーフローから一気に難易度が上…
FPGA-Based Prototyping Methodology Manual(日本語)がシノプシスからダウンロードできます。 http://www.synopsys.com/Systems/FPGABasedPrototyping/FPMM/Pages/default.aspx ASICの検証手法としてFPGAプロトタイピングを行う時の注意点が書いてあります。…
これもよく見る形ですね。 (define (chapter1-scheme) (define (toplevel) (display (evaluate (read) env.global)) (toplevel) ) (toplevel) )
初期値やデフォルトで使える関数を、Global environment に追加するマクロ (define env.global env.init) (define-syntax definitial (syntax-rules () ((definitial name) (begin (set! env.global (cons (cons 'name 'void) env.global)) 'name ) ) ((defi…
Lisp In Small Piecesの1.6のまとめ。スコープの所が良くわかっていない。(自作処理系の)関数の実装には、(Schemeの)関数を使うのがよい。最も簡単な実装。 (define (invoke fn args) (if (procedure? fn) (fn args) (wrong "Not a funstion" fn))) 練習…
Lisp In Small Piecesの1.4のまとめ。 special form について 厳密にはformで無くてもspecial formと呼ぶ。 この本によると、Schemeは、quote if set! lambda の4つ。Common Lispは30以上のspecial formを持つ。気になって、Scheme処理系の言語リファレンス…
やっぱり Lisp In Small Piecesを読むことにしました。評価機の最初の一歩です。Lispの基本的なルールはこの2つです。 変数はシンボルによって表現される 関数適用は、最初の項が適用する関数を表していて残りがその関数に適用する引数を表しているリストで…
(define -ayalog ’())に良い刺激を受けて、ずっと積ん読になっていた最新コンパイラ構成技法を読み始めました。以前読んだときは、最初の練習問題で転んでいたのですが、右手に実践F#、左手にPurly Functional Data Structureで突破できました。関係無いので…
コーディングを支える技術 ~成り立ちから学ぶプログラミング作法を読んでもやもやしていた所があるのですが、いったん思っていることをアウトプットしてみます。 本の紹介 コーディングを支える技術は、世の中で人気のある(プログラミング)言語を比較しな…
OpenCoresで公開されているEthmacを使って、ボード上に載っているPHYのレジスタを読み出す方法をまとめました。配布ファイルのテストベンチethmac/trunk/bench/verilog/tb_ethernet.vから、MIIレジスタの読み書き部分だけ動作させています。アクセスに使用す…
FPGA本ラッシュの最後の本、FPGAキットで始めるハード&ソフト丸ごと設計: CPUと周辺回路を作り込んでCプログラミングを読みました。とても面白かったので紹介します。全体的にソフトウェアの方が説明少なめで、ハードウェア(特にシステムアーキテクチャ)は…
全てはここからなんちゃらかんちゃら window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementById(id)) return t; js = d.createElement(s); js.id = id; js.src = "https://platform…
西尾さんのFPGAでライフゲームを作りましたに反応しました。 ライフゲームの生死判定を3通りの方法で書いて、合成、比較してみました。生死判定の前後にレジスタが入っているのは動作速度を比較したかったためです。結論を先に書いておくと、どう書いてもた…
FPGAスタータ・キットで初体験!オリジナル・マイコン作りの紹介です。タイトルはオリジナル・マイコン作りになってますが、正確にはオリジナル・マイコンシステム作りです。マイコン(CPU)はオリジナルではなく、Nios IIを使っています。目次の通り進めれ…
FPGAボードで学ぶ組込システム開発入門(Xilinx編)が良い本だったので紹介します。 全体を通して丁寧にわかりやすく説明があり、一歩一歩動かしていくのにちょうどよい難易度になっています。また、代理店に聞かないと分からないような情報も書かれており、無…
簡単に作るVerilogテストベンチの続きです。Opencores で公開されているEthmacに、WishboneのBFMを接続してみました。標準でついてくるWishboneのBFMがVHDLだったので、必要な機能だけVerilogで書き直しました。 Wishbone BFMはここから。http://opencores.o…
Perlについて語ろうをKindleで読んだので感想を。 Perl自体はすっかりご無沙汰していますが、お値段が手頃だったので購入し、電車の中でゆっくりと読みました。もともとメールマガジンで連載されていた物をまとめなおしたもので、一つのトピックが短くて読み…
人が作ったVerilogソースや、書き立てほやほやのVerilogソースを簡単にテストしたい時ってありますよね。OpenCoresで公開されているEthmacを使って、簡単にテストベンチを作る方法をまとめてみました。目標はできるだけ楽に動作を確認することですが、初心者…
OpenCoresで公開されれいるEthermacを動かそうとしています。 http://opencores.org/project,ethmac RTLシミュレーションを実行してみたのですが、trunkにあるテストベンチは上手く動きません。調査がてらEthermacのI/Oポートを調べてみました。 Host Interf…
Wishbone のバスサイクルをまとめました。一次資料はここからダウンロードできます。翻訳じゃないので、実際に使うときは規格書読んでください。 http://opencores.org/opencores,wishbone 現在の最新版は、 Revision B4 です。 転送サイクルの開始 MASTERは…
Wishboneで使われる信号をまとめました。一次資料はここからダウンロードできます。 http://opencores.org/opencores,wishbone 現在の最新版は、 Revision B4 です。翻訳じゃないので、実際に使うときは規格書読んでください。 SYSCON Module が使う信号 SYS…
Wishboneは、IPコア間の共通のI/Fとして開発された規格です。Opencoreにある気合いの入ったライブラリはWishboneをサポートしているので少しまとめて見ました。一次資料はここからダウンロードできます。 http://opencores.org/opencores,wishbone 現在の最…
FPGAでエクストリームなコンピューティングの会という謎の勉強会に呼ばれたので参加してきました。僕も発表する予定だったのですが、時間が取れず今回は発表無しでした。時系列gdgdで感想を。 FPGAで証券取引の話がとても面白かったです。話を聞くまでは…
DE0で8bit CPUのデコーダを動かす1を見てなんとなく思ったことを書いてみます。 単に僕だったらこう書くなぁというだけで、こうした方が良いという話では無いです。 デコーダから信号を切りだそう。 ぱっとみて思ったのがalways @(code) begin〜endまでが長…
An Introduction to Functional Programming Through Lambda Calculusを読んでいたら、最初の章に functional language の歴史が書かれていたので、簡単にまとめて見ました。 Propositional calculus Propositional calculus Systemで「命題計算系」です。19…
はじめてのOSコードリーディング ~UNIX V6で学ぶカーネルのしくみ読みました。 全体の半分程度読んだ時点での感想です。期待していたよりもずいぶんと固い内容で驚きました。表紙の色合いとは裏腹に、大手メーカさんのデータシートを読んでいるようなそんな…
写真から作る3次元CG 3.5から 直交行列 行列Mが を満たすとき、Mは直交行列である。 回転行列Rも を満たすので直交行列である。 確認作業 回転行列が直交行列であることを、手を動かして確認してみる。任意の回転は、3つの軸に対する回転の合成で表すことが…
コンピュータビジョンの勉強をしていると、ふとprojectiveは投影なのか射影なのか自分でも良くわからなくなることがありました。ふと見たコンピュータビジョンの訳者まえがきに、この本での使い分けが書いてありました。自分へのメモとして残しておきます。 …
半年以上かかりましたが、Multiple View Geometry in Computer Visionを当初予定していた14章まで読みました。本の雰囲気などは、こちらの方にも書いてあります。http://natu.txt-nifty.com/natsutan/2012/12/multiple-view-g.html 本の内容 この本の内容を…